/* ============================================================
   Портал адаптации · дизайн-токены
   Единственное место, где объявляются цвета, кегли и ритм.
   Остальные файлы (base/layout/nav/sections) только ссылаются.

   Смена юрлица/бренда = переопределение этого же набора имён
   в блоке :root[data-brand="..."] внизу файла. Вёрстка не трогается.
   ============================================================ */

:root {
  /* ---------- Поверхности ---------- */
  --bg-dark:      #00517D;   /* ОСНОВНОЙ цвет бренда (брендбук с.13, Pantone 302C) */
  --bg-dark-2:    #003D5E;   /* карточки на тёмном, белый текст 11.5:1 */
  --bg-dark-3:    #0A6295;   /* hover на тёмном, белый текст 6.6:1 */
  --bg-paper:     #F4F6F9;   /* основной фон страницы */
  --bg-paper-2:   #E8ECF2;   /* секционный сдвиг */
  --surface:      #FFFFFF;   /* карточки */
  --surface-alt:  #F8FAFC;   /* внутренние блоки */

  /* ---------- Текст ----------
     Все значения непрозрачные: полупрозрачный текст не читается на солнце. */
  --ink:          #1B2B36;   /* 13.4:1 к бумаге */
  --ink-2:        #405361;   /* фирменный тёмно-серый, 7.4:1 к бумаге */
  --ink-muted:    #5E7080;   /*  4.7:1 к бумаге */
  --on-dark:      #FFFFFF;   /* 14.4:1 к --bg-dark */
  --on-dark-2:    #CFE6F5;   /*  6.6:1 к --bg-dark */
  --on-dark-3:    #A6E4FA;   /*  6.1:1 к --bg-dark */

  /* ---------- Линии ---------- */
  --line:         #D8DFE8;
  --line-2:       #BCC6D3;
  --line-dark:    #0A6295;
  --line-dark-2:  #1C74AB;

  /* ---------- Акцент, расщеплённый по назначению ----------
     Один синий нельзя использовать и как заливку, и как текст:
     #4A9FE0 даёт к белому 2.87:1 — это провал AA. Поэтому три токена. */
  --accent-fill:    #0078BF;  /* «электрический синий» брендбука: заливки, полосы, иконки.
                                 4.73:1 к белому — под ним допустим белый текст */
  --accent-ink:     #00517D;  /* 8.49:1 к белому — акцентный ТЕКСТ */
  --accent-ink-hi:  #003D5E;  /* hover для --accent-ink */
  --accent-soft:    #E1F0FA;  /* подложки: eyebrow, иконки, дорожка прогресса */
  --accent-on-dark: #7FDBF8;  /* 5.41:1 к --bg-dark — акцентный текст на тёмном */
  --brand-cyan:     #32C5F4;  /* голубой брендбука: ТОЛЬКО декор, 2.0:1 — не текст */
  --brand-red:      #EE3524;  /* красный брендбука: акцент малой площади, 4.06:1 — не текст */
  --brand-grey:     #405361;  /* тёмно-серый: основной цвет дивизиона «Дороги и мосты» */

  /* ---------- Сигнальные ---------- */
  --steel:        #8A5A0B;   /* «важно» текстом на светлом */
  --steel-soft:   #F5E5C7;
  --success:      #1F6B45;
  --success-soft: #DCEAE2;
  --danger:       #A00C24;
  --danger-soft:  #FBE4E7;

  /* ---------- Фокус ----------
     Глобальное правило в base.css красит обводку этим токеном.
     На тёмных поверхностях токен переопределяется (см. nav.css). */
  --focus:        #00517D;

  /* ---------- Радиусы ---------- */
  --r-xs:   6px;
  --r-sm:  10px;
  --r:     14px;
  --r-md:  20px;
  --r-lg:  28px;
  --r-pill: 999px;

  /* ---------- Тени ---------- */
  --shadow-sm: 0 1px 2px rgba(0,61,94,.07), 0 2px 6px rgba(0,61,94,.07);
  --shadow:    0 1px 2px rgba(0,61,94,.09), 0 14px 32px -12px rgba(0,61,94,.18);
  --shadow-lg: 0 2px 4px rgba(0,61,94,.09), 0 36px 72px -24px rgba(0,61,94,.26);

  /* ---------- Шрифтовые стеки ----------
     Фолбэки метрически подогнаны (@font-face с size-adjust в base.css),
     поэтому при недогрузе файлов лейаут не прыгает и облик не меняется. */
  --sans:    "Eurostile", "Eurostile Fallback", Arial, Helvetica, sans-serif;
  --display: "Eurostile Ext", "Eurostile", "Eurostile Ext Fallback", Verdana, Arial, sans-serif;
  /* Отдельного моноширинного в брендбуке нет. Капительные подписи
     набираются тем же Eurostile с трекингом — см. .lbl в base.css. */
  --mono:    var(--sans);

  /* ---------- Шкала кегля ----------
     Нижняя граница — 13px. Ничего мельче в портале нет:
     страницу читают с телефона, на улице, часто людям 45+. */
  --fs-label: 14px;                      /* капитель с трекингом, подписи */
  --fs-meta:  15px;                      /* мета-строки, футер */
  --fs-sm:    16px;                      /* вспомогательный текст в карточках */
  --fs-base:  17px;                      /* тело: +1px против обычного, у Eurostile мелкие строчные */
  --fs-lede:  clamp(17px, 1.4vw, 19px);  /* лид секции */
  --fs-h4:    18px;
  --fs-h3:    clamp(19px, 2vw, 22px);
  --fs-h2:    clamp(27px, 3.6vw, 42px);
  --fs-h1:    clamp(28px, 6.4vw, 60px);
  --fs-h1-org: clamp(24px, 5.2vw, 48px);

  /* ---------- Ритм и оболочка ---------- */
  --maxw:  1120px;                       /* максимальная ширина контента */
  --pad:   clamp(16px, 4vw, 40px);       /* боковые поля */
  --gap:   20px;                         /* шаг сетки карточек */
  --sec-gap: clamp(40px, 6vw, 72px);     /* воздух между секциями */

  /* ---------- Навигация ----------
     --nav-h — единственный источник правды по высоте шапки.
     На него завязаны: height шапки, scroll-padding-top, отступ контента. */
  --nav-h: 72px;
  --mnav-h: 56px;                        /* нижняя панель на мобиле */

  /* ---------- Анимация ---------- */
  --ease: cubic-bezier(.2,.7,.2,1);
}

@media (max-width: 720px) {
  :root {
    --nav-h: 60px;
  }
}

/* ============================================================
   Другой бренд = ещё один блок, переопределяющий ТЕ ЖЕ имена:

     :root[data-brand="ssm-sz"] {
       --bg-dark: #123B2E; --accent-fill: #3FA37A;
       --accent-ink: #1C6247; --accent-ink-hi: #14492F;
       --accent-soft: #DDF0E7; --accent-on-dark: #7FD1AE;
     }

   Обязательные условия к любому новому бренду:
     --accent-ink     ≥ 4.5:1 к #FFFFFF   (под ним стоит белый текст)
     --accent-on-dark ≥ 4.5:1 к --bg-dark
     #FFFFFF          ≥ 7:1   к --bg-dark (основной текст hero и подвала)
   Значения по умолчанию выше проверены тестом tests/portal/test_shell.py.
   ============================================================ */
