/* Арабская локаль: шрифт и метрики строки. Подключается только на /ar/.
   Файл СОБИРАЕТСЯ scripts/ar_build_font_subset.py — правки руками затрёт.

   Сабсет IBM Plex Sans Arabic режется по арабским диапазонам Unicode целиком,
   а не по фактическому тексту: арабские буквы соединяются и меняют форму по
   месту в слове, и выборочная резка унесла бы формы связывания. Поэтому
   пополнение арабского текста пересборки НЕ требует — в отличие от китайского.

   ?v= в адресе шрифта обязателен: _headers отдаёт woff2 как immutable,
   и без смены адреса пересобранный сабсет до людей не доедет.

   Латиница и цифры сюда НЕ входят: unicode-range пускает в Plex только
   арабские диапазоны, поэтому FTX, USDT, Class 5A, Rule 3001(e) и суммы
   остаются в Unbounded и Onest. В самих файлах латинских глифов ноль —
   подмена невозможна даже при перепутанном порядке в font-family.

   Межбуквенный интервал под RTL гасится в qx-rtl.css (секция 1), здесь
   не дублируется. */

@font-face {
  font-family: 'IBM Plex Sans Arabic';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/ibmplexsansarabic-400-ar.woff2?v=b1244ef3') format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF, U+200C-200D;
}

@font-face {
  font-family: 'IBM Plex Sans Arabic';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/ibmplexsansarabic-500-ar.woff2?v=565791af') format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF, U+200C-200D;
}

@font-face {
  font-family: 'IBM Plex Sans Arabic';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/ibmplexsansarabic-600-ar.woff2?v=3173cd19') format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF, U+200C-200D;
}

@font-face {
  font-family: 'IBM Plex Sans Arabic';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/ibmplexsansarabic-700-ar.woff2?v=05c578de') format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF, U+200C-200D;
}

/* Гибрид: фирменная гарнитура первой, арабская — подхватом на те знаки,
   которых в ней нет. Селектор с атрибутом весомее :root, поэтому переопределяет
   переменные, объявленные страницей во внутреннем <style>. */
html[lang^="ar"] {
  --font-display: 'Unbounded', 'IBM Plex Sans Arabic', system-ui, sans-serif;
  --font-body: 'Onest', 'IBM Plex Sans Arabic', system-ui, -apple-system, sans-serif;
}

/* Вертикальный габарит Plex Arabic — 1,73 em против 1,546 у Onest: у арабских
   букв выносные элементы выше и ниже латинских, плюс огласовки над строкой.
   При интерлиньяже, рассчитанном под латиницу, диакритика подрезается.

   Текст: 1,85 уже достаточно, оставляем как у китайского.
   Заголовки: было 1,4 — этого мало, верхние огласовки упирались в строку.
   Поднято до 1,75, чуть выше габарита шрифта.

   Привязка к dir="rtl", а не к lang: интерлиньяж правит форма письма,
   и если рядом появится другая RTL-локаль, правило подхватится само.
   На этих страницах оба селектора совпадают.

   Про удвоенный [dir="rtl"] и !important. Интерлиньяж на главной задан
   59 правилами, 12 из них с !important; самые цепкие конкуренты —
   .claim-card:nth-child(1) p и .blog-card:nth-child(1) h3 со (0,2,1).
   Одинарный html[dir="rtl"] :is(...) даёт ровно (0,2,1) — ничья, а инлайн
   страницы идёт в <body>, то есть ПОЗЖЕ этого файла, и выигрывает.
   Удвоение атрибута поднимает до (0,3,1) и перебивает и обычные правила,
   и важные: среди !important спор тоже решает специфичность.

   Значения намеренно накрывают покомпонентные 1.55 и 1.1: они подбирались
   под латиницу и режут арабские огласовки. */
html[dir="rtl"][dir="rtl"] :is(p, li, dd, td, blockquote, .hero-sub, .modal-sub, .lead, .article-body p) {
  line-height: 1.85 !important;
}

html[dir="rtl"][dir="rtl"] :is(h1, h2, h3, h4, h5, h6, .qx-modal-h3, summary, .faq-q) {
  line-height: 1.75 !important;
}
