/* ============================================================================
   ok-foundation.css — HOME-SHELL-V2 · пакет HC-02
   ----------------------------------------------------------------------------
   Фундамент: box-sizing, Manrope, базовая типографика, ссылки без подчёркивания.
   Спека: 14_CSS_JS_ARCHITECTURE §16 · 06_GLOBAL_LAYOUT_CONTRACT §3 правило 1.

   ★ ГЛАВНЫЙ ПРИНЦИП ФАЙЛА — «десктоп-регресс 0» (критерий приёмки HC-02).
     Пакет заводит ФУНДАМЕНТ, а не красит существующую вёрстку. Поэтому правила
     разведены на два уровня:

     [A] ГЛОБАЛЬНО — только то, что на боевом УЖЕ ИСТИНА (замер live 18.07.2026,
         http://localhost/okna/, headless Chrome, vp1440). Повторное объявление
         = гарантированный no-op, но делает слой самодостаточным к зачистке
         design.css в HC-19.
            • html box-sizing = border-box            → замер: УЖЕ border-box
                                                        (6394 border-box / 12 content-box)
            • body font-family = Manrope              → замер: УЖЕ Manrope

     [B] ПОД СКОУПОМ .ok-scope — вся косметика канона (кегли, цвет текста,
         подчёркивание ссылок, шрифт контролов). НЕ применяется, пока блок/шаблон
         сам не возьмёт класс .ok-scope (это делают HC-03…HC-14). До того — ноль
         визуальных изменений на сайте.

   ⚠️ ПОЧЕМУ НЕТ ГЛОБАЛЬНОГО `*{box-sizing:border-box}`:
      замер нашёл 12 элементов с content-box — это 6 пар <summary>+<div> блока
      FAQ. Жёсткий `*` перевернул бы их и поехал бы FAQ. Поэтому глобально —
      наследуемый паттерн (как в TT1), а жёсткий border-box только внутри .ok-scope.

   ⚠️ КАПКАН TT1 (известен по design.css D0-2 и okna-mobile.css): родительская
      Twenty Twenty-One грузится ПОСЛЕ наших листов и при РАВНОЙ специфичности
      перебивает ПОРЯДКОМ. Поэтому базовые правила заданы специфичностью
      `html body …` (0,0,2 / 0,0,3), а НЕ расчётом на порядок enqueue.
      `!important` не используется — специфичности достаточно.

   ЗАВИСИМОСТЬ: ok-tokens.css (должен грузиться РАНЬШЕ, deps в enqueue).
   ============================================================================ */


/* ═══ [A] ГЛОБАЛЬНЫЙ УРОВЕНЬ — проверенные no-op'ы ═══════════════════════════ */

/* 06 §3 правило 1: box-sizing:border-box глобально.
   Наследуемый паттерн: элемент с явным content-box (0,0,1) сохраняет своё —
   ровно текущее поведение сайта. */
html{ box-sizing:border-box; }
*, *::before, *::after{ box-sizing:inherit; }

/* Гайд §1: Manrope. Замер live: body УЖЕ Manrope (design.css D0-2 добился того же
   тем же приёмом) — правило дублирует достигнутое и переживёт зачистку HC-19. */
html body,
html .site{ font-family:var(--ok-font); }

html body h1, html body h2, html body h3,
html body h4, html body h5, html body h6{ font-family:var(--ok-font); }


/* ═══ [B] СКОУП .ok-scope — канон гайда, включается блоком/шаблоном ═════════ */
/* Пока ни один шаблон не несёт класс .ok-scope → секция целиком «спит».       */

.ok-scope{
  font-family:var(--ok-font);
  font-size:var(--ok-fs-body);
  line-height:var(--ok-lh-body);
  color:var(--ok-text-2);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* Внутри своего скоупа border-box гарантирован жёстко (06 §3 правило 1). */
.ok-scope *,
.ok-scope *::before,
.ok-scope *::after{ box-sizing:border-box; }

/* Гайд §15: ссылки без подчёркивания; hover — #1448aa. */
.ok-scope a{ color:var(--ok-blue); text-decoration:none; }
.ok-scope a:hover,
.ok-scope a:focus-visible{ color:var(--ok-blue-hover); }

/* Заголовки — гайд §3. margin обнулён: ритм задают .ok-stack/.ok-section (§4:
   «раскладку групп — только flex/grid + gap»). */
.ok-scope h1, .ok-scope h2, .ok-scope h3,
.ok-scope h4, .ok-scope h5, .ok-scope h6{
  margin:0;
  font-family:var(--ok-font);
  font-weight:var(--ok-fw-black);
  line-height:var(--ok-lh-heading);
  color:var(--ok-ink);
  text-wrap:balance;                  /* гайд §16 — против висячих предлогов */
}
.ok-scope h2{ font-size:var(--ok-fs-h2); letter-spacing:var(--ok-ls-h2); }
.ok-scope h3{ font-size:var(--ok-fs-h3); }
.ok-scope h4{ font-size:var(--ok-fs-h4); font-weight:var(--ok-fw-bold); }

/* Проза — гайд §17. */
.ok-scope p{ margin:0 0 16px; text-wrap:pretty; }
.ok-scope p:last-child{ margin-bottom:0; }

/* Медиа не выпирает за контейнер (06 §3 правило 10 — ноль overflow). */
.ok-scope img,
.ok-scope svg,
.ok-scope video,
.ok-scope iframe{ max-width:100%; }
.ok-scope img{ height:auto; }

/* Контролы — гайд §1 («button, input, textarea, select — тоже Manrope»)
   и §6 (font-size:16px обязателен, иначе iOS зумит форму). */
.ok-scope button,
.ok-scope input,
.ok-scope select,
.ok-scope textarea{ font-family:var(--ok-font); }

.ok-scope input,
.ok-scope select,
.ok-scope textarea{ font-size:var(--ok-fs-body); color:var(--ok-text); }

.ok-scope button{ cursor:pointer; }

/* Фокус — видимое кольцо (базовая доступность; полный a11y-проход — HC-18). */
.ok-scope :focus-visible{ outline:2px solid var(--ok-blue); outline-offset:2px; }


/* ═══ [C] РЕСПОНСИВ ФУНДАМЕНТА ═════════════════════════════════════════════ */
/* РЕЕСТР БРЕЙКПОИНТОВ — КАНОН M1, НОВЫЕ ЗНАЧЕНИЯ ЗАПРЕЩЕНЫ:
     LG 1024 · MD 768 · SM 600 · XS 480   (см. okna-mobile.css, шапка файла)  */

@media (max-width:768px){
  .ok-scope h2{ font-size:var(--ok-fs-h2-mobile); line-height:var(--ok-lh-h2-mobile); }
}
