/* ── Титульная на арабском: письмо справа налево ──────────────────────────────────────────────────────────
   Подключается ТОЛЬКО на /ar/ и ТОЛЬКО последним листом (`build_title_i18n.rtl`). Здесь нет ни одного нового
   решения по виду: слой лишь возвращает на место то, что задано физическими сторонами, и снимает то, что
   ломает арабское письмо. Правило навыка `perevod-arabskiy`: `dir` стоит на корне, отдельным блокам его не
   ставят — иначе шапка, подвал и таблицы расходятся.

   Почему слоем, а не правкой листов: те же листы собирают пять прежних языков, и каждая правка в них — риск
   для 1580 страниц. Слой виден только арабской странице.

   Порядок разделов: письмо и шрифт · разрядка и регистр · зеркалим стороны · стрелки · числа и формулы. */

/* ── 1. Письмо и шрифт ─────────────────────────────────────────────────────────────────────────────────── */

/* Шрифт СВОЙ, не сторонний: CSP витрины держит `font-src 'self'` (`_headers`), Google Fonts браузер молча
   отклонит, и страница уедет на системный шрифт с другой шириной знака. Нарезка — `bin/make_font_subsets.py`,
   подмножество арабских знаков 79,8 КБ. Латиница, цифры и единицы остаются на Inter: по решениям навыка
   цифры западные, единицы СИ и `XADO` — латиницей. */
@font-face {
  font-family: "XADO Arabic";
  src: url("assets/IBMPlexSansArabic-Ar.woff2") format("woff2");
  /* ОБЪЯВЛЕН ПОЛНЫЙ ДИАПАЗОН, ось шрифта — 400–700. Заголовки титульной заданы насыщенностью 200 и 300; арабские
     идут 400 — ближайшим значением оси. Замер 19.09.2026: ширина строки при 200, 300 и 400 одинакова (648,1 px),
     при 700 — 699,2 px; файл с осью 200–700 (+27 КБ) картины не изменил, поэтому оставлена меньшая нарезка.
     Нужны ли арабскому тонкие заголовки — вопрос владельцу, а не вёрстке. */
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF, U+200C-200F, U+2066-2069;
}

/* НА ВСЕ ЭЛЕМЕНТЫ, а не на body: у заголовков, вкладок и карточек титульной шрифт задан своим правилом
   (`font-family:Inter,Arial,sans-serif`), наследование от body до них не доходит — первый снимок показал
   заголовки на системном арабском шрифте с засечками. Надпись ZERO COST PILOT остаётся на Anton. */
html[lang="ar"] *:not(.pilot-fleet-wordmark) {
  font-family: "XADO Arabic", Inter, system-ui, sans-serif;
}

/* У арабских знаков выносные элементы выше и ниже строки: межстрочный интервал на 0,1 больше латинского
   (правило навыка). Ставится на корне, наследуется; там, где интервал задан явно, он остаётся своим. */
html[lang="ar"] body { line-height: 1.7; }

/* ── 2. Разрядка и ПРОПИСНЫЕ ───────────────────────────────────────────────────────────────────────────── */

/* РАЗРЯДКА РАЗРЫВАЕТ ВЯЗЬ. `letter-spacing` раздвигает знаки внутри слова, а арабские буквы соединяются —
   слово рассыпается на несвязанные куски. У арабского нет и регистра, поэтому `text-transform` не делает
   ничего, кроме путаницы в разметке. Снимается у всего, кроме латинских вставок (`.lat`, единицы, `XADO`). */
html[lang="ar"] :not(.lat):not(.num):not(.unit) {
  letter-spacing: normal;
  text-transform: none;
}

/* ── 3. Стороны ────────────────────────────────────────────────────────────────────────────────────────── */

/* Физические стороны браузер НЕ зеркалит: `left`, `right`, `border-left`, `padding-right`, `text-align:left`
   и `flex-end` остаются там же, где были в раскладке слева направо. Урок макета титульной (18.09.2026):
   стрелка шага, стоявшая по `left`, вышла справа от первого номера, а ссылки подвала с `flex-end` ушли влево
   от направляющей. Здесь перечислены только те места, где это видно на странице. */

/* Текст, выключенный по краю: физический край меняется на логический. */
html[lang="ar"] [style*="text-align:left"],
html[lang="ar"] .ta-left { text-align: start; }
html[lang="ar"] .ta-right { text-align: end; }

/* Линейка-акцент слева у блоков «ХАДО предоставляет» и «От предприятия потребуется». */
/* Специфичность — как у исходного правила (`#pilot .pilot-participation .pilot-agreement>div`): с более слабым
   селектором левая линейка оставалась, и у блока выходило две линейки — слева и справа (снимок 19.09.2026). */
html[lang="ar"] #pilot .pilot-participation .pilot-agreement > div {
  border-left: 0;
  border-right: 6px solid var(--red-ui, #bf0016);
  padding-left: 0;
  padding-right: 22px;
}

/* Подвал: ссылки прижаты к правой направляющей — в RTL это начало строки. */
html[lang="ar"] .footer-links,
html[lang="ar"] .original-footer .wrap > div:last-child { justify-content: flex-start; }

/* ── 4. Стрелки ────────────────────────────────────────────────────────────────────────────────────────── */

/* Стрелка «дальше» указывает в сторону чтения: в RTL — влево. Зеркалится ЗНАК, а не смысл. Вертикальные
   стрелки роста и снижения параметра (`↑`, `↓`) не трогаются: они про величину, а не про направление. */
/* С ПРИОРИТЕТОМ: у титульной свой свежий лист, и без `!important` он перебивал разворот (урок макета 18.09.2026). */
html[lang="ar"] .link-arrow,
html[lang="ar"] .a-go svg,
html[lang="ar"] .btn-cta svg,
html[lang="ar"] .search button svg { transform: scaleX(-1) !important; }

/* СТРЕЛКА МЕЖДУ ШАГАМИ — ОТДЕЛЬНО. В исходном листе она привязана к ЛЕВОМУ краю шага
   (`left:calc(100% + 14px)` и `translateX(-50%)`), то есть стоит в просвете СПРАВА от шага. В RTL следующий шаг
   — слева: привязка переносится на правый край, сдвиг меняет знак, сама стрелка зеркалится. Общий разворот
   `scaleX(-1)` сюда нельзя: он затирал сдвиг, и стрелка первого шага уезжала за край ряда. */
html[lang="ar"] #pilot .pilot-step-arrow {
  left: auto;
  right: calc(100% + 14px);
  transform: translateX(50%) scaleX(-1) !important;
}

/* Шеврон раскрывающегося списка в шапке смотрит вниз — его не зеркалим; каретка «назад» — зеркалим. */
/* Галочка выпадающего меню собрана из двух границ и поворота на 45°:
   «вниз» одинаково в обоих направлениях письма. `transform:none`
   превращал её в угол «⌐» (замечание владельца 20.09.2026).      */
html[lang="ar"] .shared-caret { transform: rotate(45deg); }
html[lang="ar"] details[open] > summary .shared-caret { transform: rotate(225deg); }

/* ── 5. Числа, единицы, формулы ────────────────────────────────────────────────────────────────────────── */

/* ЧИСЛОВОЙ ИНТЕРВАЛ — ОТДЕЛЬНЫЙ СЛУЧАЙ. Между «3.0» и «25.0» стоит нейтральное тире: оно уходит в направление
   абзаца, и концы интервала меняются местами — читатель видит «25.0–3.0». Там, где значение ставит элемент
   целиком, лечится направлением потока; там, где значение внутри фразы, — изолятами в самой строке словаря
   (так сделано в `html.calc_electric_note` и строках диапазонов). */
html[lang="ar"] .result-number,
html[lang="ar"] .lcd-readout,
html[lang="ar"] .dial-value,
html[lang="ar"] .calc-out,
html[lang="ar"] .num,
html[lang="ar"] input[type="number"],
html[lang="ar"] td.num,
html[lang="ar"] th.num {
  direction: ltr;
  unicode-bidi: isolate;
}

/* КАЛЬКУЛЯТОР. Подсказку диапазона «0.10 — 500» скрипт собирает текстом с тире между двумя числами — в RTL концы
   менялись местами, и читалось «500 — 0.10» (снимок 19.09.2026). Ползунок браузер в RTL зеркалит (минимум справа),
   а заливку дорожки лист считает слева направо через `--range-fill` — ручка и заливка расходились. Оба элемента
   остаются в направлении слева направо: так же читаются числа в полях рядом. */
html[lang="ar"] .calc-scale,
html[lang="ar"] input[type="range"] {
  direction: ltr;
  unicode-bidi: isolate;
}
/* подсказка под ползунком выключается по тому же краю, что и сам ползунок */
html[lang="ar"] .calc-scale { text-align: left; }

/* Числовые столбцы таблиц выключаются по началу строки: в RTL это правый край, как и положено числам. */
html[lang="ar"] td.num,
html[lang="ar"] th.num { text-align: start; }

/* Переносов в арабском письме нет — словарь переносов не применяется, длинные термины сокращаются в тексте. */
html[lang="ar"] { hyphens: none; }
