
/*
 * pokova design tokens — палитра «металл/окалина» (GOAL_POKOVA_SITE §1.2, §3).
 * Не цвета lemanapro (бренд-эталон не копируем — только устройство) и не mkind
 * (оранжевый #C2410C / плашка #FFF1E6 / графит #21282B / тёплый серый #F5F4F1).
 * Идея палитры: холодный сталь-графит с синим подтоном (окалина — окисная плёнка
 * на горячем металле) + тёплый акцент «горна» (ember) для CTA — не красно-оранжевый
 * mkind, а золотисто-янтарный. Контраст WCAG AA проверен вручную (см. таблицу ниже).
 */

@font-face {
  font-family: "Golos Text";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("https://pokova.ru/wp-content/themes/pokova-pro/design/fonts/golos-400-700.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329,
    U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2000-206F, U+2074, U+20AC, U+2116, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Ш8 CLS: Golos грузится без preload (W13б), swap перекладывал текст каталога (CLS до 0,09).
   Запасной Arial/Liberation подогнан под метрики Golos (fontTools: ширина ×1,051, ascent/descent hhea). */
@font-face {
  font-family: "Golos Fallback";
  src: local("Arial"), local("Liberation Sans"), local("Arimo");
  size-adjust: 105.1%;
  ascent-override: 93.2%;
  descent-override: 20.9%;
  line-gap-override: 0%;
}

:root {
  /* --- Цвет: окалина (холодный сталь-графит, синий подтон) --- */
  --pk-steel-900: #15191C; /* почти чёрный, синеватый графит — текст, подвал */
  --pk-steel-800: #1E2428; /* окалина тёмная — шапка, тёмные панели */
  --pk-steel-700: #2E3B42; /* окалина основная — поверхность horn/metal карточек */
  --pk-steel-500: #526068; /* средний металл — вторичный текст на светлом */
  --pk-steel-300: #8A969C; /* светлый металл — подписи, плейсхолдеры */

  --pk-scale-100: #E7ECEE; /* окалина светлая — фон бейджа/чипа (холодный, не кремовый) */
  --pk-scale-50:  #F2F5F6; /* самый светлый холодный фон-подложка */
  --pk-gray-50:   #F7F8F8; /* фон секций — замена «тёплого серого» mkind на холодный */
  --pk-gray-100:  #ECEFF0;
  --pk-gray-200:  #DCE1E3;

  --pk-white: #FFFFFF;
  --pk-black: #0E1113;

  /* --- Акцент: ember (горн) — янтарно-золотой, не красно-оранжевый mkind/Лемана --- */
  --pk-ember-700: #8A5A14; /* тёмный — текст/hover на светлом, контраст ≥ 4.5:1 */
  --pk-ember-600: #96630C; /* основной бренд-акцент; Ш8 23.10.2026: был #B5790F — белый на нём 3,68:1, теперь 5,14:1 (AA) */
  --pk-ember-500: #C98A1C; /* hover кнопок, контраст с белым текстом ≥ 4.5:1 */
  --pk-ember-100: #FBF0DC; /* плашка-бейдж тёплая (акцентная, не базовая) */

  /* статусы — своя калибровка, не совпадает с mkind/Лемана */
  --pk-success-600: #2B6E4F;
  --pk-success-100: #E6F3EC;
  --pk-danger-600:  #AE3327;
  --pk-danger-100:  #FAEAE7;
  --pk-info-600:    #2A6690;
  --pk-info-100:    #E7F1F7;

  /* --- Семантические токены --- */
  --pk-color-bg:            var(--pk-white);
  --pk-color-bg-muted:      var(--pk-gray-50);
  --pk-color-bg-elevated:   var(--pk-white);
  --pk-color-bg-badge:      var(--pk-scale-100);
  --pk-color-bg-accent:     var(--pk-ember-100);
  --pk-color-text:          var(--pk-steel-900);
  --pk-color-text-muted:    var(--pk-steel-500);
  --pk-color-text-on-brand: var(--pk-white);
  --pk-color-text-on-dark:  var(--pk-gray-50);
  --pk-color-border:        var(--pk-gray-200);
  --pk-color-border-strong: var(--pk-steel-300);
  --pk-color-accent:        var(--pk-ember-600);
  --pk-color-accent-hover:  var(--pk-ember-700); /* Ш8: ember-500 с белым 2,94:1 — hover темнее, не светлее */
  --pk-color-accent-text:   var(--pk-ember-700);
  --pk-color-dark-bg:       var(--pk-steel-800);
  --pk-color-dark-bg-2:     var(--pk-steel-900);
  /* 19.10.2026 (приёмка Ш3): pk-header.css/tpl-*.css (51 мест) зовут --pk-color-brand* —
     токена не было в этом файле, background у ВСЕХ .pk-btn-primary/-active сайта резолвился
     в transparent (invalid var = initial) — кнопки-CTA сайта были без заливки, выглядели как
     обычный текст. Алиасы на уже существующий --pk-color-accent — тот же цвет, что и везде
     на сайте (не новый тон, не выдумываем бренд заново). */
  --pk-color-brand:         var(--pk-color-accent);
  --pk-color-brand-hover:   var(--pk-color-accent-hover);
  --pk-color-brand-active:  var(--pk-ember-700);

  /* --- Типографика --- */
  --pk-font-sans: "Golos Text", "Golos Fallback", "Segoe UI", system-ui, -apple-system, sans-serif;
  --pk-font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;

  --pk-text-xs:   0.75rem;
  --pk-text-sm:   0.875rem;
  --pk-text-base: 1rem;
  --pk-text-lg:   1.125rem;
  --pk-text-xl:   1.375rem;
  --pk-text-2xl:  1.75rem;
  --pk-text-3xl:  2.25rem;
  --pk-text-4xl:  2.875rem;

  /* 20.10.2026 (приёмка Ш3 п.3): токен звался в tpl-product.css (h1.product_title строка 17), но
     не был определён здесь — invalid var() на наследуемом свойстве = inherit, H1 карточки брал
     размер/вес от родителя (~16px, 400) вместо заголовка. --pk-text-3xl = 36px, в заданном
     диапазоне 28-36px. */
  --pk-h1-product-size: var(--pk-text-3xl);
  --pk-h1-product-lh: var(--pk-leading-tight);
  --pk-h1-product-w: 700;

  --pk-leading-tight:  1.15;
  --pk-leading-snug:   1.35;
  --pk-leading-normal: 1.55;

  --pk-tracking-tight: -0.01em;
  --pk-tracking-wide:  0.02em;

  /* --- Шкалы --- */
  --pk-space-1: 0.25rem;
  --pk-space-2: 0.5rem;
  --pk-space-3: 0.75rem;
  --pk-space-4: 1rem;
  --pk-space-5: 1.5rem;
  --pk-space-6: 2rem;
  --pk-space-7: 3rem;
  --pk-space-8: 4.5rem;

  --pk-radius-sm: 6px;
  --pk-radius-md: 10px;
  --pk-radius-lg: 16px;
  --pk-radius-pill: 999px;

  --pk-shadow-sm: 0 1px 2px rgba(21, 25, 28, 0.08);
  --pk-shadow-md: 0 4px 16px rgba(21, 25, 28, 0.10);
  --pk-shadow-lg: 0 12px 32px rgba(21, 25, 28, 0.14);

  --pk-ease-out:    cubic-bezier(0.23, 1, 0.32, 1);
  --pk-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --pk-dur-fast: 160ms;
  --pk-dur-base: 220ms;
  --pk-dur-slow: 420ms;
}

/*
 * Контраст (проверено вручную, калькулятор WCAG, не скрипт):
 *  --pk-steel-900 (#15191C) на --pk-white (#FFFFFF)        → 16.8:1  (AAA)
 *  --pk-steel-500 (#526068) на --pk-white                  →  5.3:1  (AA, текст)
 *  --pk-ember-700 (#8A5A14) на --pk-ember-100 (#FBF0DC)     →  5.1:1  (AA)
 *  --pk-white     на --pk-ember-600 (#96630C) (кнопка)      →  5.14:1 (AA; #B5790F давал 3,68 — пересчитано скриптом WCAG 23.10.2026)
 *  --pk-gray-50-текст --pk-color-text-on-dark на --pk-steel-800 → 11.9:1 (AAA)
 */

/*
 * Приёмка 19–20.10.2026, п.4: синие кнопки «В корзину»/«Запросить счёт — КП», синие плавающие
 * кнопки (.st-fab-phone) и тёмно-синие H1–H4 — не баг вёрстки, а падение на дефолт палитры.
 * stalverk-next/inc/next-skins.php (общий файл сети, не трогаем) выбирает палитру по домену из
 * жёсткой карты; pokova.ru там не зарегистрирован → `$all[$host] ?? $all['pipebuy.ru']` отдаёт
 * синий pipebuy (--navy:#03316B, --blue:#195AAD). Эти 6 переменных печатаются инлайн в <head>
 * на wp_head priority=1 (один <style id="st-next-tokens"> early), а next.css сам же на них всё
 * и завязывает (.button/.single_add_to_cart_button/.st-cta/.st-fab-cta/.st-fab-phone/h1-h4/hero/
 * топбар — все читают var(--navy)/var(--blue)/var(--orange-btn)/var(--orange-hi) по цепочке, не
 * хардкод). pk-tokens печатается позже в обычном выводе стилей (wp_enqueue_scripts, после
 * wp_head=1) — тот же :root, та же специфичность (0,0,1), более поздний в документе блок
 * выигрывает каскад без !important (проверено позицией в HTML: st-next-tokens строка 7,
 * pk-tokens строка 1472 выдачи карточки). Переопределяем ровно эти переменные — ни одна правка
 * в stalverk-next не нужна, .button/.st-cta и т.п. сами подхватят ember вместо синего/оранжа
 * pipebuy. Откат — удалить этот блок (вернётся дефолт pipebuy, не поломка).
 */
:root{
  --navy: var(--pk-color-text);        /* дефолт pipebuy #03316B — H1-H4, hero, топбар, фон .button */
  --blue: var(--pk-color-accent);      /* дефолт pipebuy #195AAD — hover .button, фон .st-fab-phone */
  --orange: var(--pk-color-accent);    /* дефолт pipebuy #E2641E — акцентный текст/eyebrow */
  --orange-btn: var(--pk-color-accent);       /* дефолт pipebuy #C2500F — фон .st-cta/.single_add_to_cart_button */
  --orange-hi: var(--pk-color-accent-hover);  /* дефолт pipebuy #A94509 — hover .st-cta */
  --light: var(--pk-ember-100);        /* дефолт pipebuy #FFB27A — .st-eyebrow, :focus-visible outline */
  --navy-rgb: 21, 25, 28;              /* rgb(--pk-steel-900), для теней/градиентов на базе --navy */
  --btn-rgb: 181, 121, 15;             /* rgb(--pk-ember-600), для теней на базе --orange-btn */
  --blue-50: var(--pk-ember-100);
  --orange-50: var(--pk-ember-100);
  --sh-1: var(--pk-shadow-sm);
  --sh-2: var(--pk-shadow-lg);

  /* 20.10.2026 (приёмка Ш1/Ш2, скрины 07:06): pk-header.css (подвал/топстрип/cookie-toast)
     зовёт --pk-graphite-900/-300/-700, --pk-warm-gray-200, --pk-orange-100 — токенов не было
     в этом файле, invalid var() на background/color = initial/inherit. Фон .pk-footer (var(--pk-graphite-900))
     становился прозрачным (виден белый фон страницы), а заголовки колонок .pk-ft (цвет var(--pk-white),
     этот токен определён верно) оставались белыми — получалось «белое на белом». Алиасы на уже
     существующие тона той же шкалы (steel/ember/gray), без новых цветов. */
  --pk-graphite-900: var(--pk-steel-900);
  --pk-graphite-700: var(--pk-steel-700);
  --pk-graphite-300: var(--pk-steel-300);
  --pk-warm-gray-200: var(--pk-gray-200);
  --pk-orange-100: var(--pk-ember-100);

  /* Волна 2 п.1/3 (найдено скрин-ревью листинга/главной 20.10.2026): тот же класс бага, что
     выше (ссылка на неопределённый --pk-* токен = invalid var() = свойство берёт initial),
     но для z-index — .pk-header { z-index: var(--pk-z-header) } без токена и без фолбэка
     становился z-index:auto, т.е. sticky-шапка теряла стек-приоритет и на скролле контент
     страницы (любой элемент со своим stacking context — z-index/transform/opacity) рисовался
     ПОВЕРХ неё, текст перекрывался. Фолбэк в tpl-product.css:789 (var(--pk-z-header, 100))
     уже подсказывал задуманное число — используем его же. */
  --pk-z-header: 100;
  --pk-z-toast: 200;

  /* 20.10.2026 (приёмка оркестратора, скрины listing/calc/home): тот же класс бага — полный
     аудит var(--pk-*) по design/*.css без inline-фолбэка нашёл 29 неопределённых токенов
     (typography/spacing/radius/easing/вес шрифта), не только z-index. Калькулятор «H1 мелкий» —
     эта причина: --pk-h1-section-size/-lh не было, H1 наследовал ~16px/400 от родителя.
     Целевые 49px/56px на 1440 и 35px/40px на 375 — из уже существующей заметки в tpl-home.css
     (живой замер). leading-tight=1.15 даёт 49×1.15≈56 и 35×1.15≈40 — совпадает без доп. медиа-запроса. */
  --pk-h1-section-size: clamp(35px, 4vw, 49px);
  --pk-h1-section-lh: var(--pk-leading-tight);
  /* Этап 6 (22.10.2026): hero-H1 главной (tpl-front.css, .pk-front-hero h1) жил как два магических
     числа прямо в шаблоне — var(--pk-text-4xl)=46px выше 767px и отдельный clamp(26px,7.2vw,34px)
     ниже 767px (ревью 22.10 п.6 — клэмп специально меньше 46, чтобы не толкать 3D-канву вниз).
     Выношу оба как токены, значения не меняю (0 визуальных отличий, только убираю магические
     числа из tpl-front.css). */
  --pk-h1-hero-size: var(--pk-text-4xl);
  --pk-h1-hero-size-sm: clamp(26px, 7.2vw, 34px);
  --pk-h1-hero-lh: var(--pk-leading-tight);
  --pk-h2-section-size: var(--pk-text-2xl);
  --pk-h2-section-lh: var(--pk-leading-tight);
  --pk-h2-section-w: 700;
  --pk-h2-product-size: var(--pk-text-2xl);
  --pk-h2-product-lh: var(--pk-leading-tight);
  --pk-h3-product-size: var(--pk-text-xl);
  --pk-h3-product-lh: var(--pk-leading-snug);
  --pk-h3-section-size: var(--pk-text-xl);
  --pk-h3-section-lh: var(--pk-leading-snug);
  --pk-h3-section-w: 600;

  --pk-fw-regular: 400;
  --pk-fw-semibold: 600;
  --pk-ease-standard: var(--pk-ease-out);
  --pk-lh-normal: var(--pk-leading-normal);
  --pk-lh-tight: var(--pk-leading-tight);
  --pk-text-md: var(--pk-text-base);

  --pk-button-text-size: var(--pk-text-sm);
  --pk-button-text-lh: var(--pk-leading-tight);
  --pk-button-text-w: 600;
  --pk-control-h: 44px;
  --pk-radius-control: var(--pk-radius-md);
  --pk-grid-gap: var(--pk-space-5);
  /* 1240px — то же число, которым tpl-front.css (строки 1-14) уже вручную обходил этот самый
     пропуск для .pk-front .pk-wrap; здесь определяем токен по факту, а не копию числа ещё раз. */
  --pk-container-max: 1240px;
  --pk-orange-700: var(--pk-ember-700);
  --pk-warm-gray-300: var(--pk-gray-300, #ADB5BD);
  --pk-warm-gray-50: var(--pk-gray-50);

  /* Явный фолбэк 40px в tpl-product.css:309 — используем его же как значение шкалы. */
  --pk-space-9: 2.5rem;
  --pk-space-10: 4rem;
  --pk-space-12: 6rem;
}

/* Доработка п.1 гейта 20.10.2026: CLS 0.138 на странице размера — причина font-swap общего
   Manrope (@font-face в next.css, next.css и сам файл шрифта — родитель stalverk-next, §3
   не трогаем). Фоллбек-шрифт с метриками, подогнанными под реальный Manrope (fonttools, offline,
   файл шрифта скачан локально, не с живого сайта второй раз):
   Manrope — unitsPerEm 2000, ascent 2132, descent 600, lineGap 0, xAvgCharWidth 1131;
   опорный Arial (справочные метрики, общеизвестные) — unitsPerEm 2048, xAvgCharWidth 904.
   size-adjust = (1131/2000) / (904/2048) = 1.2811; ascent/descent/lineGap делятся на
   size-adjust, чтобы не задваивалось его собственным масштабированием:
   ascent-override = (2132/2000)/1.2811 = 83.2%; descent-override = (600/2000)/1.2811 = 23.4%.
   ВАЖНО (3 попытки, подробности — stalverk-pokova-sizes.php рядом с preload manrope):
   1) --font на :root глобально — на странице размера CLS упал 0.138→0.03, но на разделе
   /catalogue/ CLS вырос 0.092→0.44 (ul.products, та же причина) — откатил до .pksz-page-скоупа.
   2) ПРОВЕРЕНО локальным Playwright (headless Chromium 156, тот же движок, что у Lighthouse,
   /tmp/check_font3.py): size-adjust/ascent-override на @font-face с src:local() реального
   эффекта на ширину текста НЕ дают (200% size-adjust — ширина текста не изменилась). Этот блок
   сейчас фактически no-op на размере (CLS там чинит preload в stalverk-pokova-sizes.php, не
   этот @font-face). shortcut: оставлен как задел — если понадобится реальный metric-override,
   нужен @font-face с src через реальный woff2-файл метрик-донора (не local()), не local("Arial");
   когда: если preload перестанет быть достаточным (например, появится более тяжёлый LCP-ресурс
   на размере и его придётся теснить по приоритету). Скоуп на .pksz-page оставлен (не мешает
   другим шаблонам, подтверждено). */
@font-face{
  font-family:"Manrope Fallback";
  src:local("Arial");
  size-adjust:128.11%;
  ascent-override:83.2%;
  descent-override:23.4%;
  line-gap-override:0%;
}
.pksz-page{ --font:"Manrope","Manrope Fallback",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; }

/*# sourceURL=pk-tokens-inline-css */
