/* ============================================================
   zt-fonts.css — единая типографика ZIPTEH
   Создан 2026-08-04. Подключается ПЕРВЫМ, до всех остальных
   стилей шаблона, и заменяет собой:

     • assets/styles/fonts.css          (3 объявления, только .ttf)
     • assets/styles/old/fonts.css      (дубль, забытая папка)
     • header-polish.css:1948-1966      (2 объявления с чужого CDN)

   ЧТО БЫЛО (замер на боевой главной 2026-08-04):
     — 5 объявлений @font-face в 3 файлах + дубль в old/;
     — «Zipteh PT Sans Caption» грузился с cdn.jsdelivr.net
       по тегу @latest, то есть содержимое могло смениться
       без нашего ведома;
     — Inter (856 КБ) объявлен и НИ РАЗУ не загружался;
     — PT Sans Caption Bold (212 КБ) объявлен и не загружался,
       жирное начертание при этом тянулось с CDN;
     — только .ttf: в 4-5 раз тяжелее woff2;
     — ни одного font-display: при загрузке текст был невидим;
     — 63 из 268 элементов (23%) отрисовывались Arial'ом;
     — 5 начертаний (400/500/600/700/800) при 2 реальных файлах,
       то есть 500, 600 и 800 браузер подделывал сам;
     — 20+ кеглей, включая 7px, 8px, 9px, 9.5px, 10.8px.

   ЧТО СТАЛО:
     — одно семейство, один файл, все начертания;
     — Inter Variable, локально, woff2, 117 КБ на веса 100-900
       (исходный .ttf был 875 КБ);
     — никаких внешних CDN;
     — font-display: swap — текст виден сразу;
     — реальные начертания вместо синтетических.

   ============================================================
   КАК ПОМЕНЯТЬ ШРИФТ ВСЕГО САЙТА (подготовлено 06.08.2026)

   С 06.08.2026 ЭТОТ ФАЙЛ — ЕДИНСТВЕННОЕ МЕСТО СМЕНЫ ШРИФТА.
   Все font-family пакета редизайна сведены к var(--zt-font):
   reset.css, style.css, header-new, header-polish,
   sale-products, company-advantages, hero-combo, feedback-form
   и остальные модули. Жёстких семейств вне этого файла нет
   (кроме самих @font-face и иконочных шрифтов).

   Шаги смены:
     1. Положить файлы нового шрифта (.woff2, для вариативного —
        один файл) в /local/templates/zipteh/assets/fonts/.
     2. Добавить ниже @font-face нового семейства
        (обязательно font-display: swap; для вариативного —
        font-weight: 100 900; нужна кириллица!).
     3. В токене --zt-font (раздел ТОКЕНЫ) поставить новое
        семейство ПЕРВЫМ, старое сдвинуть на роль запасного.
     4. Сбросить кеш Битрикса и автокомпозит.
   Больше нигде ничего менять не нужно.

   Требования к новому шрифту: кириллица + латиница,
   реальные начертания на веса 400/500/600/700 (или
   вариативный диапазон, покрывающий их) — сайт использует
   ровно эти четыре веса, синтетика запрещена
   (font-synthesis-weight: none ниже).

   ПЕРЕКЛЮЧЕНИЕ ОБРАТНО НА PT SANS CAPTION:
   поменяйте значение --zt-font ниже на строку с PT Sans Caption.
   Оба шрифта лежат в assets/fonts/ и объявлены здесь же.
   ============================================================ */

/* ---------- Основной шрифт: Inter Variable ---------- */
@font-face {
    font-family: 'Inter';
    src: url('/local/templates/zipteh/assets/fonts/Inter-Variable.woff2') format('woff2-variations'),
         url('/local/templates/zipteh/assets/fonts/Inter-Variable.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

/* ---------- Запасной вариант: PT Sans Caption ---------- */
@font-face {
    font-family: 'PT Sans Caption';
    src: url('/local/templates/zipteh/assets/fonts/PTSansCaption-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PT Sans Caption';
    src: url('/local/templates/zipteh/assets/fonts/PTSansCaption-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* ---------- Шрифты редизайна (выбор заказчика 06.08.2026):
   Russo One — заголовки, Tektur — текст, Manrope — кнопки
   и бейджи. Локальные woff2, кириллица + латиница, OFL ---------- */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url(/local/templates/zipteh/assets/fonts/manrope-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url(/local/templates/zipteh/assets/fonts/manrope-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url(/local/templates/zipteh/assets/fonts/manrope-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url(/local/templates/zipteh/assets/fonts/manrope-latin.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+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Russo One';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/local/templates/zipteh/assets/fonts/russo-one-400-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: 'Russo One';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/local/templates/zipteh/assets/fonts/russo-one-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Russo One';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/local/templates/zipteh/assets/fonts/russo-one-400-latin.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+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Tektur';
  font-style: normal;
  font-weight: 400 900;
  font-stretch: 100%;
  font-display: swap;
  src: url(/local/templates/zipteh/assets/fonts/tektur-400-900-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: 'Tektur';
  font-style: normal;
  font-weight: 400 900;
  font-stretch: 100%;
  font-display: swap;
  src: url(/local/templates/zipteh/assets/fonts/tektur-400-900-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: 'Tektur';
  font-style: normal;
  font-weight: 400 900;
  font-stretch: 100%;
  font-display: swap;
  src: url(/local/templates/zipteh/assets/fonts/tektur-400-900-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Tektur';
  font-style: normal;
  font-weight: 400 900;
  font-stretch: 100%;
  font-display: swap;
  src: url(/local/templates/zipteh/assets/fonts/tektur-400-900-latin.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+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ============================================================
   ТОКЕНЫ ТИПОГРАФИКИ
   ============================================================ */
:root {
    /* Шрифты по ролям — выбор заказчика 06.08.2026.
       Основной текст: Tektur; заголовки: Russo One (одно начертание
       400 — сам по себе плотный); кнопки и бейджи: Manrope.
       Прежний стек Inter оставлен запасным. Роли применяются
       в zt-redesign.css (раздел «Шрифты по ролям»). */
    --zt-font: 'Tektur', 'Inter', 'PT Sans Caption', system-ui, Arial, sans-serif;
    --zt-font-head: 'Russo One', 'Tektur', 'Inter', system-ui, Arial, sans-serif;
    --zt-font-btn: 'Manrope', 'Inter', 'PT Sans Caption', system-ui, Arial, sans-serif;
    --zt-font-badge: 'Manrope', 'Inter', 'PT Sans Caption', system-ui, Arial, sans-serif;

    /* Шкала кеглей. Восемь ступеней вместо двадцати.
       Минимум — 12px: всё, что мельче, на телефоне нечитаемо. */
    --zt-fs-xs:   12px;   /* сноски, подписи, служебное */
    --zt-fs-sm:   14px;   /* вторичный текст, мета */
    --zt-fs-base: 16px;   /* основной текст */
    --zt-fs-md:   18px;   /* акцентный текст, кнопки */
    --zt-fs-lg:   22px;   /* подзаголовки */
    --zt-fs-xl:   28px;   /* заголовки разделов */
    --zt-fs-2xl:  36px;   /* заголовки страниц */
    --zt-fs-3xl:  44px;   /* герой */

    /* Начертания. Больше пяти на сайте не нужно. */
    --zt-fw-normal: 400;
    --zt-fw-medium: 500;
    --zt-fw-semi:   600;
    --zt-fw-bold:   700;

    /* Межстрочные */
    --zt-lh-tight: 1.2;   /* заголовки */
    --zt-lh-base:  1.5;   /* текст */
    --zt-lh-loose: 1.7;   /* длинные абзацы */
}

/* ============================================================
   ПРИМЕНЕНИЕ
   ============================================================ */

/* Один шрифт на весь сайт. Раньше 23% элементов доставались
   Arial'у, потому что в font-family он стоял первым. */
html,
body,
input,
select,
textarea,
button,
.zt-header,
.zt-bottombar,
.footer-2 {
    font-family: var(--zt-font);
}

body {
    font-size: var(--zt-fs-base);
    line-height: var(--zt-lh-base);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-synthesis-weight: none; /* никаких поддельных жирных */
}

/* Цифры одной ширины: цены и артикулы перестают «прыгать»
   в таблицах и списках. Для магазина запчастей это заметно. */
.zt-product-card__price,
.zt-product-card__article,
.zt-product-card__article-mobile,
.zt-bottombar__count,
.zt-header-action-count,
td,
th {
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum' 1;
}

/* ------------------------------------------------------------
   Нижняя граница читаемости.

   На главной было 6 элементов по 7px, 3 по 8px, 14 по 9px
   и 19 по 10px. Это нечитаемо даже на десктопе, а на телефоне
   превращается в серую кашу. Поднимаем всё до 12px.

   Правило намеренно широкое: точечно вычистить 40+ мест
   в 20 файлах дороже, чем поставить нижнюю границу здесь
   и снимать её по мере разбора каждого блока.
   ------------------------------------------------------------ */
body [style*="font-size: 7px"],
body [style*="font-size:7px"],
body [style*="font-size: 8px"],
body [style*="font-size:8px"],
body [style*="font-size: 9px"],
body [style*="font-size:9px"] {
    font-size: var(--zt-fs-xs) !important;
}

/* ------------------------------------------------------------
   Заголовки — единая иерархия вместо случайных размеров
   ------------------------------------------------------------ */
h1 {
    font-size: var(--zt-fs-2xl);
    line-height: var(--zt-lh-tight);
    font-weight: var(--zt-fw-bold);
}

h2 {
    font-size: var(--zt-fs-xl);
    line-height: var(--zt-lh-tight);
    font-weight: var(--zt-fw-bold);
}

h3 {
    font-size: var(--zt-fs-lg);
    line-height: var(--zt-lh-tight);
    font-weight: var(--zt-fw-semi);
}

h4,
h5,
h6 {
    font-size: var(--zt-fs-md);
    line-height: var(--zt-lh-tight);
    font-weight: var(--zt-fw-semi);
}

@media (max-width: 768px) {
    h1 { font-size: var(--zt-fs-xl); }
    h2 { font-size: var(--zt-fs-lg); }
    h3 { font-size: var(--zt-fs-md); }
}

/* ------------------------------------------------------------
   Служебные классы — чтобы новые блоки не изобретали размеры
   ------------------------------------------------------------ */
.zt-t-xs   { font-size: var(--zt-fs-xs); }
.zt-t-sm   { font-size: var(--zt-fs-sm); }
.zt-t-base { font-size: var(--zt-fs-base); }
.zt-t-md   { font-size: var(--zt-fs-md); }
.zt-t-lg   { font-size: var(--zt-fs-lg); }
.zt-t-xl   { font-size: var(--zt-fs-xl); }

.zt-fw-normal { font-weight: var(--zt-fw-normal); }
.zt-fw-medium { font-weight: var(--zt-fw-medium); }
.zt-fw-semi   { font-weight: var(--zt-fw-semi); }
.zt-fw-bold   { font-weight: var(--zt-fw-bold); }


/* ==================================================================
   П-1 аудита типографики (согласовано 06.08.2026).

   reset.css задаёт каждому элементу font-size/font-weight напрямую
   через `*`, поэтому текст в <span> без класса внутри кнопки получал
   16/400 вместо стиля кнопки. Пострадали: пункты меню шапки,
   «Все бренды», «В корзину», «Смотреть все», «Подробнее о компании»,
   «Все новости», «Все документы», «Получить скидку».

   Здесь возвращаем наследование — только внутри интерактивных
   элементов, глобально reset не трогаем.
   ================================================================== */
a span:not([class]),
button span:not([class]) {
    font: inherit;
    color: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
}

/* Подпись кнопки формы: класс есть, поэтому П-1 её не ловит,
   а свой стиль ей не нужен — она часть кнопки. */
.yellow-button .yellow-button__label {
    font: inherit;
    color: inherit;
}
