/* Ваши стили. Этот файл не перезаписывается обновлениями темы.
   Токены темы можно переопределить здесь целиком:

   :root {
       --f-accent: #d7263d;
       --f-font: "Inter", system-ui, sans-serif;
       --f-radius: 0;
   }

   ------------------------------------------------------------------
   РЕЦЕПТ: чужой плавающий виджет перекрывает кнопки

   Чат, «Подписаться», обратный звонок и прочие круглые кнопки висят
   поверх страницы и на телефоне наезжают на панель покупки. Тема
   поднимает такие блоки на высоту --f-float-safe (величина берётся из
   настройки «Место для плавающих виджетов»), но знает не про каждый
   сервис. Свой добавьте одной строкой — селектор смотрите в инспекторе
   браузера:

   .ваш-класс-виджета {
       transform: translateY(calc(-1 * var(--f-float-safe)));
       transition: transform .2s ease;
   }

   Либо повесьте на элемент виджета атрибут data-f-float-safe (например,
   из custom.js) — тогда правило темы применится само.
   ------------------------------------------------------------------
   РЕЦЕПТ: типографика длинных текстов

   Описания товаров и разделов, информационные страницы и отзывы верстает
   класс .f-usercontent. Ширину строки, кегль и межстрочный интервал
   меняют переменные и правила:

   .f-usercontent { --f-measure: 76ch; font-size: 1.125rem; line-height: 1.7; }
   ------------------------------------------------------------------
   РЕЦЕПТ: баннеры в категориях

   Тема объявляет три места (зоны), но не хранит сами кампании — их
   ставит промо-плагин или ваш custom.js:

   [data-f-zone="category-top"]    — перед товарной выдачей;
   [data-f-zone="category-feed"]   — внутри выдачи, после второго ряда;
   [data-f-zone="category-bottom"] — под выдачей, перед страницами.

   У верхней зоны есть data-category-id — по нему выбирают, что показать
   в конкретной категории. Зоны внутри выдачи приходят тем же фрагментом,
   что и товары, поэтому переживают фильтрацию и сортировку.

   Первую (верхнюю) картинку грузите приоритетно — fetchpriority="high",
   остальным ставьте loading="lazy" и указывайте width/height: иначе
   баннеры испортят LCP и сдвинут вёрстку.
   ------------------------------------------------------------------ */

/* =====================================================================
   KROSOVOK.BY — фирменные правки поверх темы.
   Тема-родитель не трогается, поэтому обновления темы (theme.css,
   shop.css) можно накатывать поверх без конфликтов — вся стилистика
   магазина держится в этом файле и в custom/*.html.
   ===================================================================== */

:root {
    /* Кнопки, чипы, размерная сетка — не полная «пилюля» родительской темы,
       а мягкий прямоугольник: ближе к макету магазина кроссовок. */
    --f-radius-pill: 8px;

    /* Шрифтовая пара редизайна: Anton для заголовков, Archivo для текста,
       JetBrains Mono — для мелких трекингованных подписей (мета-строки,
       размеры, старые цены). Шрифты подключены в head.html обеих тем. */
    --f-font: "Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --f-font-display: "Anton", var(--f-font);
    --f-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

/* --- Типографика: крупные плотные заголовки капсом шрифтом Anton, как в
   фирменном макете. Anton уже плотный и «чёрный» сам по себе — начертание
   в font-weight почти не нуждается, но 800 не мешает на нём же и не даёт
   заголовкам просесть, пока веб-шрифт ещё не догрузился. --- */
h1, h2, h3,
.f-header__logo-text,
.f-promo__title,
.f-section-head h2,
.f-hero__title,
.f-features__title,
.f-brands__item,
.f-catalog__head h1 {
    font-family: var(--f-font-display);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.02em;
}
.f-header__logo-text { font-size: 1.25rem; letter-spacing: -0.01em; }
.f-brands__item { font-size: 1.375rem; letter-spacing: 0; }

/* Логотип-картинка: в теме слот жёстко занимал 40px высоты — для полноценного
   лого со знаком и словом-маркой (как ваш) этого мало, он тонет в шапке.
   Поднимаем слот заметно выше и даём ему подрасти ещё на десктопе. Заодно
   чуть расширяем разрешённую ширину под все три варианта настройки «Размер
   логотипа», чтобы более высокий логотип не обрезался по ширине из-за
   пропорций файла. */
.f-header__logo--image { height: 52px; }
@media (min-width: 700px) {
    .f-header__logo--image { height: 68px; }
}
:root { --f-logo-w: 190px; }
:root[data-logo="compact"] { --f-logo-w: 140px; }
:root[data-logo="wide"] { --f-logo-w: 280px; }

/* --- Шапка: по умолчанию («Панель») сливается с чёрным полотном страницы.
   Другие варианты («Сливается с фоном» / «Акцент») намеренно не трогаем —
   иначе настройка «Фон шапки» в админке перестанет на что-либо влиять. */
.f-header[data-style="surface"] { background: var(--f-canvas); }
.f-header[data-style="surface"]:not(.is-stuck) { border-bottom: 1px solid var(--f-line); }

/* =====================================================================
   ГЕРОЙ ГЛАВНОЙ (заглушка, пока не заведены промо-баннеры в админке)
   Разметка — в custom/home.top.html
   ===================================================================== */
.f-hero {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 16px;
    min-height: 420px;
    margin: 0 0 var(--f-section);
    padding: 32px 24px;
    border-radius: var(--f-radius);
    overflow: hidden;
    background: #000 no-repeat right -40px center / min(60%, 420px) auto;
    color: #fff;
    isolation: isolate;
}
.f-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(90deg, #000 0%, #000 40%, transparent 78%);
}
.f-hero__title {
    margin: 0;
    font-size: clamp(2.25rem, 1.7rem + 3vw, 4rem);
    line-height: .95;
    max-width: 14ch;
}
.f-hero__subtitle {
    margin: 0;
    max-width: 34ch;
    color: var(--f-ink-soft);
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.f-hero__cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    align-self: flex-start;
    margin-top: 8px;
    padding: 14px 26px;
    background: #fff;
    color: #000;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    border-radius: var(--f-radius-pill);
}
.f-hero__cta:hover { background: #d9d9d9; color: #000; }
.f-hero__dots { display: flex; gap: 6px; margin-top: 20px; }
.f-hero__dots span { width: 22px; height: 3px; border-radius: 2px; background: rgba(255,255,255,.28); }
.f-hero__dots span:first-child { background: #fff; }
@media (min-width: 700px) {
    .f-hero { min-height: 480px; padding: 56px; }
}

/* =====================================================================
   СТРОКА БРЕНДОВ
   Из края в край: раньше был горизонтальный скролл со сжатыми в кучку
   пунктами слева — для шести официальных логотипов брендов, которыми вы
   действительно торгуете (не реплики), это не витрина, а список. Теперь
   ряд растягивается на всю ширину контейнера, логотипы распределены
   равномерно от левого края до правого, без скролла и обрезанных краёв.
   ===================================================================== */
.f-brands {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    row-gap: 20px;
    column-gap: 32px;
    margin: 0 0 var(--f-section);
    padding: 26px 20px;
    border-top: 1px solid var(--f-line);
    border-bottom: 1px solid var(--f-line);
    list-style: none;
}
.f-brands__item {
    flex: 0 1 auto;
    font-size: 1.125rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--f-ink);
    white-space: nowrap;
}
.f-brands__item a { color: inherit; text-decoration: none; }
.f-brands__item a:hover { color: var(--f-ink-soft); }
.f-brands__item--logo img {
    display: block;
    height: 34px;
    width: auto;
    max-width: 150px;
    object-fit: contain;
    /* приводим любой логотип к белому/монохромному виду, как в макете —
       чтобы разноцветные фирменные знаки не спорили друг с другом в ряд */
    filter: brightness(0) invert(1);
}
@media (min-width: 700px) {
    .f-brands__item--logo img { height: 40px; }
}

/* =====================================================================
   ПРЕИМУЩЕСТВА (4 колонки, как в макете)
   ===================================================================== */
.f-features {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 12px;
    margin: 0 0 var(--f-section);
    padding: 28px 20px;
    border-radius: var(--f-radius);
    background: var(--f-bg);
    text-align: center;
    list-style: none;
}
@media (min-width: 700px) { .f-features { grid-template-columns: repeat(4, 1fr); } }
.f-features__item { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.f-features__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--f-bg-soft);
    color: var(--f-ink);
}
.f-features__title { font-size: .875rem; }
.f-features__text { margin: 0; color: var(--f-ink-soft); font-size: .8125rem; }

/* =====================================================================
   РАЗМЕРЫ НА КАРТОЧКЕ ТОВАРА
   ===================================================================== */
.f-card__sizes {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 0 var(--f-card-pad, 16px);
    margin-top: -4px;
}
.f-card__sizes span {
    min-width: 30px;
    padding: 3px 6px;
    border: 1px solid var(--f-line);
    border-radius: 6px;
    text-align: center;
    font-size: .75rem;
    color: var(--f-ink-soft);
}

/* =====================================================================
   НИЖНЯЯ МОБИЛЬНАЯ НАВИГАЦИЯ
   ===================================================================== */
.f-tabbar {
    display: none;
}
@media (max-width: 767px) {
    :root[data-tabbar="1"] body { padding-bottom: 66px; }
    :root[data-tabbar="1"] .f-tabbar {
        display: flex;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 40;
        /* Стеклянная панель поверх контента, как в нативных приложениях, а не
           сплошная плашка: под ней при скролле мягко проступает контент. */
        background: rgba(0, 0, 0, .72);
        -webkit-backdrop-filter: blur(20px) saturate(1.4);
        backdrop-filter: blur(20px) saturate(1.4);
        border-top: 1px solid rgba(255, 255, 255, .08);
        padding: 6px max(env(safe-area-inset-right), 6px) calc(env(safe-area-inset-bottom) + 6px) max(env(safe-area-inset-left), 6px);
    }
}
.f-tabbar__item {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    padding: 8px 2px 6px;
    color: var(--f-ink-soft);
    text-decoration: none;
    font-size: .6875rem;
    text-align: center;
    position: relative;
}
.f-tabbar__item.is-current { color: var(--f-ink); }
/* Индикатор активного пункта — короткая полоска сверху, а не просто смена цвета */
.f-tabbar__item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 18px;
    height: 2px;
    border-radius: 0 0 2px 2px;
    background: #fff;
    translate: -50% 0;
    opacity: 0;
}
.f-tabbar__item.is-current::before { opacity: 1; }
.f-tabbar__item svg { width: 22px; height: 22px; }
.f-tabbar__badge {
    position: absolute;
    top: 0;
    right: calc(50% - 18px);
    min-width: 15px;
    height: 15px;
    padding: 0 3px;
    border-radius: 999px;
    background: #fff;
    color: #000;
    font-size: .625rem;
    line-height: 15px;
    text-align: center;
}


/* =====================================================================
   АНИМАЦИИ И МИКРОВЗАИМОДЕЙСТВИЯ
   Все декоративные (необязательные для работы интерфейса) анимации собраны
   внутри @media (prefers-reduced-motion: no-preference) — у людей, которые
   в настройках системы попросили поменьше движения на экране, они просто
   не запускаются, а элементы сразу оказываются в конечном, читаемом виде.
   ===================================================================== */

/* --- Дровер меню/поиска/корзины: слайд из-за края + мягкое затемнение фона ---
   Финальное положение НЕ зависит от transition, поэтому даже без анимации
   (reduced motion) шторка встаёт на место корректно — просто мгновенно. */
dialog.f-drawer {
    transform: translateX(100%);
    opacity: 0;
}
dialog.f-drawer.is-open {
    transform: translateX(0);
    opacity: 1;
}
dialog.f-drawer--top { transform: translateY(-16px); }
dialog.f-drawer--top.is-open { transform: translateY(0); }

/* Меню (гамбургер) — отдельный случай: кнопка-триггер живёт слева в шапке,
   поэтому и сама панель выезжает от левого края экрана, а не справа, как
   корзина и поиск. Специфичность класса выше общего .f-drawer, поэтому
   правило ниже переопределяет сторону и направление слайда только для меню. */
dialog.f-drawer.f-drawer--menu {
    margin: 0 auto 0 0;
    transform: translateX(-100%);
}
dialog.f-drawer.f-drawer--menu.is-open {
    transform: translateX(0);
}
dialog.f-drawer::backdrop {
    opacity: 0;
    backdrop-filter: blur(0);
    -webkit-backdrop-filter: blur(0);
}
dialog.f-drawer.is-open::backdrop {
    opacity: 1;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

/* --- Кастомный шеврон вместо системного треугольника у <details> в меню --- */
.f-menu details > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    list-style: none;
}
.f-menu details > summary::-webkit-details-marker { display: none; }
.f-menu__chevron { flex: 0 0 auto; color: var(--f-ink-soft); }
.f-menu__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--f-bg-soft);
    color: var(--f-ink-soft);
    font-size: .75rem;
}
.f-menu a { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.f-menu a:active { opacity: .6; }

@media (prefers-reduced-motion: no-preference) {
    dialog.f-drawer {
        transition: transform .42s cubic-bezier(.16, 1, .3, 1), opacity .3s ease;
    }
    dialog.f-drawer::backdrop {
        transition: opacity .35s ease, backdrop-filter .35s ease;
    }

    /* Каскадное появление пунктов верхнего уровня меню при открытии */
    dialog.f-drawer.is-open .f-menu > li {
        animation: fMenuItemIn .5s cubic-bezier(.16, 1, .3, 1) both;
    }
    dialog.f-drawer.is-open .f-menu > li:nth-child(1) { animation-delay: 0.075s; }
    dialog.f-drawer.is-open .f-menu > li:nth-child(2) { animation-delay: 0.11s; }
    dialog.f-drawer.is-open .f-menu > li:nth-child(3) { animation-delay: 0.145s; }
    dialog.f-drawer.is-open .f-menu > li:nth-child(4) { animation-delay: 0.18s; }
    dialog.f-drawer.is-open .f-menu > li:nth-child(5) { animation-delay: 0.215s; }
    dialog.f-drawer.is-open .f-menu > li:nth-child(6) { animation-delay: 0.25s; }
    dialog.f-drawer.is-open .f-menu > li:nth-child(7) { animation-delay: 0.285s; }
    dialog.f-drawer.is-open .f-menu > li:nth-child(8) { animation-delay: 0.32s; }
    dialog.f-drawer.is-open .f-menu > li:nth-child(9) { animation-delay: 0.355s; }
    dialog.f-drawer.is-open .f-menu > li:nth-child(10) { animation-delay: 0.39s; }
    dialog.f-drawer.is-open .f-menu > li:nth-child(11) { animation-delay: 0.425s; }
    dialog.f-drawer.is-open .f-menu > li:nth-child(12) { animation-delay: 0.46s; }
    dialog.f-drawer.is-open .f-menu > li:nth-child(13) { animation-delay: 0.495s; }
    dialog.f-drawer.is-open .f-menu > li:nth-child(14) { animation-delay: 0.53s; }

    /* Плавный поворот шеврона и мягкое проявление вложенного списка у <details> */
    .f-menu__chevron { transition: transform .25s ease, color .25s ease; }
    .f-menu details[open] > summary .f-menu__chevron { transform: rotate(90deg); color: var(--f-ink); }
    .f-menu details[open] > ul { animation: fMenuReveal .28s ease both; }

    /* Зум фотографии товара и лёгкий подъём карточки при наведении */
    .f-card { transition: transform .3s ease, box-shadow .3s ease; }
    .f-card:hover { transform: translateY(-4px); }
    .f-card__image img { transition: transform .5s cubic-bezier(.16, 1, .3, 1); }
    .f-card:hover .f-card__image img { transform: scale(1.06); }

    /* Нажатие на любую кнопку — лёгкое сжатие, как физический отклик */
    .f-btn, .f-iconbtn { transition: transform .15s ease, background-color .2s ease, color .2s ease, opacity .2s ease; }
    .f-btn:active, .f-iconbtn:active { transform: scale(.94); }

    /* Герой и строка брендов — мягкое проявление при заходе на главную */
    .f-hero { animation: fFadeUp .6s cubic-bezier(.16, 1, .3, 1) both; }
    .f-hero__cta { animation: fFadeUp .6s cubic-bezier(.16, 1, .3, 1) .12s both; }
    .f-brands { animation: fFadeUp .5s ease .08s both; }
    .f-features__item { animation: fFadeUp .5s ease both; }
    .f-features__item:nth-child(1) { animation-delay: .05s; }
    .f-features__item:nth-child(2) { animation-delay: .11s; }
    .f-features__item:nth-child(3) { animation-delay: .17s; }
    .f-features__item:nth-child(4) { animation-delay: .23s; }

    /* Ссылки в текстовой навигации — подчёркивание выезжает слева направо */
    .f-nav__link:not(.f-nav__more) { position: relative; }
    .f-nav__link:not(.f-nav__more)::after {
        content: "";
        position: absolute;
        left: 0;
        right: 100%;
        bottom: -2px;
        height: 1px;
        background: currentColor;
        transition: right .25s ease;
    }
    .f-nav__link:not(.f-nav__more):hover::after { right: 0; }

    /* Размерные чипы на карточке и бренд-логотипы — лёгкий отклик при наведении */
    .f-card__sizes span { transition: border-color .2s ease, color .2s ease; }
    .f-card:hover .f-card__sizes span { border-color: var(--f-ink-soft); color: var(--f-ink); }
    .f-brands__item { transition: opacity .2s ease, transform .3s cubic-bezier(.16,1,.3,1); }
    .f-brands__item--logo img { transition: filter .25s ease, transform .3s cubic-bezier(.16,1,.3,1); }
    .f-brands__item--logo:hover img { transform: scale(1.06); }
}

@keyframes fMenuItemIn {
    from { opacity: 0; transform: translateX(16px); }
    to   { opacity: 1; transform: translateX(0); }
}
@keyframes fMenuReveal {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes fFadeUp {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* =====================================================================
   ЗАСТАВКА ПРИ ЗАХОДЕ НА САЙТ (.f-splash)
   Разметка — в index.html, решение «показывать/не показывать» принимает
   блокирующий инлайн-скрипт в head (см. index.html) через атрибут
   data-splash на <html>: "show" — показываем и проигрываем анимацию,
   "done" (уже была в этой вкладке) или атрибут вовсе отсутствует
   (JS отключён) — .f-splash остаётся display:none, ничего не «зависает».
   ===================================================================== */
.f-splash {
    display: none;
}
:root[data-splash="show"] .f-splash {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
}
.f-splash__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}
.f-splash__logo {
    color: #fff;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-size: clamp(1.5rem, 1.1rem + 2.2vw, 2.5rem);
}
.f-splash__logo--image {
    max-width: min(220px, 60vw);
    max-height: 84px;
    width: auto;
    height: auto;
    object-fit: contain;
}
.f-splash__line {
    display: block;
    width: 100%;
    max-width: 140px;
    height: 2px;
    background: #fff;
}

@media (prefers-reduced-motion: reduce) {
    /* Заставка — чистое украшение: у тех, кто попросил систему поменьше двигать
       экраном, её проще не показывать вовсе, чем показывать без анимации. */
    :root[data-splash="show"] .f-splash { display: none !important; }
}

@media (prefers-reduced-motion: no-preference) {
    :root[data-splash="show"] .f-splash {
        animation: fSplashOut .6s cubic-bezier(.7, 0, .84, 0) 1.05s forwards;
    }
    :root[data-splash="show"] .f-splash__logo {
        animation: fSplashLogoIn .6s cubic-bezier(.16, 1, .3, 1) .15s both;
    }
    :root[data-splash="show"] .f-splash__line {
        width: 100%;
        animation: fSplashLine .5s cubic-bezier(.65, 0, .35, 1) .5s both;
    }
}

@keyframes fSplashLogoIn {
    from { opacity: 0; transform: scale(.88); }
    to   { opacity: 1; transform: scale(1); }
}
@keyframes fSplashLine {
    from { width: 0; }
    to   { width: 100%; }
}
@keyframes fSplashOut {
    from { opacity: 1; transform: scale(1); }
    to   { opacity: 0; transform: scale(1.04); visibility: hidden; }
}

/* =====================================================================
   ПОЯВЛЕНИЕ БЛОКОВ ПРИ ПРОКРУТКЕ (.f-reveal / .f-reveal-in)
   Класс .f-reveal добавляется в theme.js только когда JS включён,
   IntersectionObserver поддерживается и пользователь не просил систему
   поменьше двигать экраном — поэтому здесь не нужен отдельный откат
   на случай их отсутствия: без класса элемент остаётся в обычном,
   полностью видимом состоянии.
   ===================================================================== */
.f-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .6s cubic-bezier(.16, 1, .3, 1), transform .6s cubic-bezier(.16, 1, .3, 1);
}
.f-reveal-in {
    opacity: 1;
    transform: translateY(0);
}
/* Внутри товарного грида — лёгкий каскад по столбцам, а не единая волна */
.f-grid .f-card:nth-child(4n+2) { transition-delay: .05s; }
.f-grid .f-card:nth-child(4n+3) { transition-delay: .1s; }
.f-grid .f-card:nth-child(4n+4) { transition-delay: .15s; }

/* =====================================================================
   СЛОЙ 2: КИНЕМАТОГРАФИЧНАЯ ОТДЕЛКА
   Идёт последним в файле, поэтому намеренно уточняет правила выше,
   а не спорит с ними. Всё декоративное снова живёт внутри
   prefers-reduced-motion: no-preference.
   ===================================================================== */

/* --- Зернистость и виньетка: чистый чёрный на больших экранах выглядит
   «плоско», лёгкий шум и затемнение к краям дают ощущение съёмки. --- */
body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        radial-gradient(ellipse at 50% 0%, transparent 40%, rgba(0,0,0,.5) 100%);
    opacity: .7;
}
body > * { position: relative; z-index: 2; }

/* --- Герой: кинематографичный градиент, световое пятно за товаром,
   и мягкий «дыхательный» зум фона. --- */
.f-hero {
    background-size: min(62%, 460px) auto;
    box-shadow: inset 0 -80px 80px -40px rgba(0,0,0,.9);
}
.f-hero::after {
    content: "";
    position: absolute;
    right: 4%;
    top: 50%;
    width: min(55%, 460px);
    aspect-ratio: 1;
    translate: 0 -50%;
    z-index: -2;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,.16) 0%, transparent 65%);
    pointer-events: none;
}
.f-hero__title {
    text-shadow: 0 2px 40px rgba(0,0,0,.6);
}
.f-hero__cta {
    position: relative;
    overflow: hidden;
}
/* Блик, пробегающий по кнопке */
.f-hero__cta::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, transparent 20%, rgba(255,255,255,.55) 50%, transparent 80%);
    translate: -120% 0;
}

/* --- Карточка товара: стеклянная подсветка по краю при наведении --- */
.f-card {
    position: relative;
    isolation: isolate;
}
.f-card::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    border-radius: inherit;
    box-shadow: inset 0 0 0 1px transparent;
}
.f-card:hover::after {
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.22);
}

/* Скролл убрали — ряд брендов теперь на всю ширину, обрезать края не нужно */

/* --- Заголовки секций: тонкая линия, уезжающая вправо --- */
.f-section-head, .f-products__title {
    position: relative;
}

/* --- Полоса прогресса чтения вверху страницы --- */
.f-progress {
    position: fixed;
    top: 0;
    left: 0;
    height: 2px;
    width: 100%;
    z-index: 60;
    transform-origin: 0 50%;
    transform: scaleX(0);
    background: linear-gradient(90deg, rgba(255,255,255,.35), #fff);
    pointer-events: none;
}

@media (prefers-reduced-motion: no-preference) {
    /* Фон героя очень медленно «дышит» — эффект живого кадра */
    .f-hero { animation: fFadeUp .6s cubic-bezier(.16,1,.3,1) both, fHeroBreath 18s ease-in-out 1s infinite alternate; }
    .f-hero::after { animation: fGlowPulse 7s ease-in-out infinite alternate; }

    .f-hero__cta::after { transition: translate .7s cubic-bezier(.16,1,.3,1); }
    .f-hero__cta:hover::after { translate: 120% 0; }

    .f-card::after { transition: box-shadow .35s ease; }
    .f-card { transition: transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s ease; }
    .f-card:hover { transform: translateY(-6px) scale(1.012); }
    .f-card__image img { transition: transform .8s cubic-bezier(.16,1,.3,1); }
    .f-card:hover .f-card__image img { transform: scale(1.09) rotate(-1.2deg); }

    /* Заставка: лёгкий кинематографичный «пуш-ин» всей сцены после раскрытия */
    :root[data-splash="show"] body > main,
    :root[data-splash="show"] body > .f-header {
        animation: fSceneIn 1.1s cubic-bezier(.16,1,.3,1) 1.1s both;
    }

    .f-tabbar__item svg { transition: transform .25s cubic-bezier(.34,1.56,.64,1); }
    .f-tabbar__item { transition: color .25s ease; }
    .f-tabbar__item::before {
        width: 4px;
        transition: width .3s cubic-bezier(.34,1.56,.64,1), opacity .3s ease;
    }
    .f-tabbar__item.is-current::before { width: 18px; }
    .f-tabbar__item:active svg { transform: scale(.82); }
    .f-tabbar__item.is-current svg { transform: translateY(-1px); }
}

@keyframes fHeroBreath {
    from { background-size: min(62%, 460px) auto; }
    to   { background-size: min(66%, 495px) auto; }
}
@keyframes fGlowPulse {
    from { opacity: .55; }
    to   { opacity: 1; }
}
@keyframes fSceneIn {
    from { opacity: 0; transform: scale(1.03); }
    to   { opacity: 1; transform: scale(1); }
}

/* =====================================================================
   СЛОЙ 3: ИСПРАВЛЕНИЯ ПО ЖИВОМУ САЙТУ
   ===================================================================== */

/* --- Фото товара ---
   Зум при наведении убран полностью: на карточках с object-fit:contain
   увеличение выпирало за края и ломало композицию.

   Светлой подложки под фото больше нет: раньше она была нужна, потому что
   каталожные фото приходили непрозрачными JPG с белым фоном внутри самого
   файла, и белый плюс чёрная тема смотрелись как ошибка. Теперь плагин
   импорта удаляет фон (заливкой или через ИИ remove.bg) и сохраняет фото
   прозрачным PNG — кроссовку больше не на чем «сидеть» отдельным пятном,
   он должен просто парить прямо на чёрном фоне темы. Если в каталоге
   встречаются старые фото ещё с непрозрачным белым фоном внутри файла —
   это вопрос данных (нужно переимпортировать их с удалением фона), а не
   темы: тема ничего не подмешивает и не подкрашивает поверх исходного
   файла. */

/* Зум отменяем во всех ранее объявленных состояниях */
.f-card:hover .f-card__image img,
.f-card:focus-within .f-card__image img {
    transform: none !important;
}
.f-card:hover { transform: translateY(-4px) !important; }

/* --- Чипы на фото: раскладываем в колонку, чтобы «Новинка» и «Нет в наличии»
   больше не наезжали друг на друга --- */
.f-card__badges {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
}

/* --- Подвал ---
   В теме подвал — сетка из четырёх равных колонок. Пока часть колонок пустая
   (не заполнены контакты, не созданы страницы «Информация»/«Помощь»), пустые
   ячейки всё равно резервировали под себя четверть ширины — отсюда огромная
   дыра слева. Flex с переносом даёт пустым блокам нулевую ширину, и заполненные
   колонки встают слева друг за другом. */
.f-footer__cols {
    display: flex !important;
    flex-wrap: wrap;
    gap: 32px 64px;
    align-items: flex-start;
}
.f-footer__cols > * { flex: 0 1 auto; min-width: 0; }
.f-footer__contacts { flex: 1 1 260px; max-width: 380px; }

/* --- Пустая категория: убираем «светящийся» поиск, делаем спокойный блок --- */
.f-empty {
    padding: 48px 20px;
    text-align: center;
}
.f-empty form,
.f-empty .f-search {
    box-shadow: none !important;
    filter: none !important;
    max-width: 420px;
    margin-inline: auto;
}

/* --- Поиск в пустой категории: спокойная рамка вместо белого ореола --- */
.f-empty__search {
    display: flex;
    align-items: center;
    gap: 8px;
    max-width: 460px;
    margin: 20px auto 0;
    padding: 6px 6px 6px 18px;
    border: 1px solid var(--f-line);
    border-radius: 999px;
    background: var(--f-bg);
    box-shadow: none;
}
.f-empty__search input {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    background: transparent;
    color: var(--f-ink);
    outline: none;
    font-size: .95rem;
}
.f-empty__search button {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: #000;
    cursor: pointer;
}
.f-empty__title {
    display: block;
    margin-bottom: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .02em;
}
.f-empty__block { margin-top: 40px; text-align: left; }

/* --- Кинематографичная полировка --- */
.f-card__name a {
    background-image: linear-gradient(currentColor, currentColor);
    background-repeat: no-repeat;
    background-position: 0 100%;
    background-size: 0 1px;
}
.f-price { letter-spacing: -.01em; }

@media (prefers-reduced-motion: no-preference) {
    .f-card__name a { transition: background-size .35s cubic-bezier(.16,1,.3,1); }
    .f-card:hover .f-card__name a { background-size: 100% 1px; }

    /* Фото-плашка мягко светлеет при наведении — движение есть, границ не рвёт */
    /* Плашки под фото больше нет — наведение теперь не меняет фон */

    /* Кнопки в карточке проявляются вместе с подъёмом */
    .f-card .f-btn { transition: background-color .3s ease, color .3s ease, border-color .3s ease; }

    /* Чипы размеров появляются по очереди при наведении */
    .f-card__sizes span:nth-child(2) { transition-delay: .03s; }
    .f-card__sizes span:nth-child(3) { transition-delay: .06s; }
    .f-card__sizes span:nth-child(4) { transition-delay: .09s; }
    .f-card__sizes span:nth-child(5) { transition-delay: .12s; }
}

/* =====================================================================
   ЛИЧНЫЙ КАБИНЕТ — ПОЛНАЯ ПЕРЕСБОРКА
   Форма профиля приходит из ядра Webasyst ($form->html()) готовой разметкой,
   которую мы не пишем сами — только переопределяем её вид. Главный баг был
   именно тут: вложенные поля адреса (город/регион/индекс/страна) шли внутри
   .wa-field-address как float/inline-block из стилей ядра, и на широком
   контейнере съезжали в кашу вместо аккуратного столбца. !important ниже —
   осознанный выбор: перебиваем конкретно инлайновую/float-раскладку ядра,
   не трогая остальное оформление полей.
   ===================================================================== */

/* --- Жёсткий фикс раскладки: каждое вложенное поле адреса — блок на всю
   ширину карточки, снизу вверх, без плавающих соседей. --- */
.f-waform .wa-field-address,
.f-waform .wa-field-address-shipping,
.f-waform .wa-field-address-billing {
    overflow: hidden; /* обрезаем возможные остатки float-раскладки ядра */
}
.f-waform .wa-field-address .wa-field,
.f-waform .wa-field-address-shipping .wa-field,
.f-waform .wa-field-address-billing .wa-field {
    display: block !important;
    float: none !important;
    width: 100% !important;
    clear: both !important;
    margin: 0 0 16px !important;
}
.f-waform .wa-field-address .wa-name,
.f-waform .wa-field-address-shipping .wa-name,
.f-waform .wa-field-address-billing .wa-name {
    display: block !important;
    float: none !important;
    width: auto !important;
    margin: 0 0 6px !important;
    color: var(--f-ink-soft);
    font-size: .8125rem;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.f-waform .wa-field-address .wa-value,
.f-waform .wa-field-address-shipping .wa-value,
.f-waform .wa-field-address-billing .wa-value {
    display: block !important;
    float: none !important;
    margin: 0 !important;
}
.f-waform .wa-field-address .wa-value input,
.f-waform .wa-field-address .wa-value select,
.f-waform .wa-field-address-shipping .wa-value input,
.f-waform .wa-field-address-shipping .wa-value select,
.f-waform .wa-field-address-billing .wa-value input,
.f-waform .wa-field-address-billing .wa-value select {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
}

/* --- Общая отделка кабинета: карточка вместо голого текста на чёрном --- */
.f-account__body {
    background: var(--f-bg);
    border: 1px solid var(--f-line);
    border-radius: var(--f-radius);
    padding: 28px 24px;
}
@media (min-width: 700px) { .f-account__body { padding: 40px; } }
.f-account__body h1 {
    margin: 0 0 28px;
    font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem);
}
.f-account__section {
    padding-top: 24px;
    border-top: 1px solid var(--f-line);
}
.f-account__section h2 {
    margin: 0 0 14px;
    font-size: 1rem;
}

/* --- Навигация кабинета: чище и с явным активным состоянием --- */
.f-account__nav li a {
    border-radius: 999px;
    text-transform: uppercase;
    font-size: .8125rem;
    letter-spacing: .02em;
    font-weight: 700;
}

/* --- Поля формы: крупнее, аккуратнее, с мягким фокусом --- */
.f-waform .wa-name { font-size: .8125rem; text-transform: uppercase; letter-spacing: .03em; }
.f-waform .wa-value input[type="text"],
.f-waform .wa-value input[type="email"],
.f-waform .wa-value input[type="tel"],
.f-waform .wa-value input[type="password"],
.f-waform .wa-value select,
.f-waform .wa-value textarea {
    width: 100%;
    padding: 13px 16px;
    border: 1px solid var(--f-line);
    border-radius: 10px;
    background: var(--f-canvas);
    color: var(--f-ink);
    font-size: .95rem;
}
.f-waform .wa-value input::placeholder { color: var(--f-ink-soft); }
.f-waform .wa-field-address,
.f-waform .wa-field-address-shipping,
.f-waform .wa-field-address-billing {
    background: var(--f-bg-soft);
}
.f-waform__actions .f-btn,
.f-waform input[type="submit"] {
    width: 100%;
    padding: 15px 24px;
    text-align: center;
}
@media (min-width: 560px) {
    .f-waform__actions .f-btn, .f-waform input[type="submit"] { width: auto; }
}

@media (prefers-reduced-motion: no-preference) {
    .f-account { animation: fFadeUp .5s cubic-bezier(.16,1,.3,1) both; }
    .f-account__nav li a { transition: border-color .2s ease, background-color .2s ease, color .2s ease; }
    .f-waform .wa-value input,
    .f-waform .wa-value select,
    .f-waform .wa-value textarea {
        transition: border-color .2s ease, box-shadow .2s ease;
    }
    .f-waform .wa-value input:focus-visible,
    .f-waform .wa-value select:focus-visible,
    .f-waform .wa-value textarea:focus-visible {
        outline: none;
        border-color: var(--f-ink-soft);
        box-shadow: 0 0 0 3px rgba(255,255,255,.12);
    }
}

/* =====================================================================
   РЕДИЗАЙН ПО МАКЕТУ CLAUDE DESIGN — «Витрина» (главная) + «Каталог».
   Ниже по каскаду, чем блоки выше: та же специфичность селекторов,
   поэтому эти правила побеждают более ранние объявления .f-hero,
   .f-features и т.д. без !important.
   ===================================================================== */

/* --- ГЕРОЙ ГЛАВНОЙ v2: двухколоночная раскладка, крупный заголовок Anton,
   фото/заглушка справа с плавающим бейджем. Разметка — custom/home.top.html. --- */
.f-hero {
    display: grid;
    grid-template-columns: 1fr;
    align-items: center;
    gap: 28px;
    min-height: 0;
    margin: 0 0 var(--f-section);
    padding: 28px 20px;
    border-radius: var(--f-radius);
    background: #000;
    background-image: none;
    box-shadow: none;
    color: #fff;
    overflow: hidden;
    isolation: isolate;
}
.f-hero::before,
.f-hero::after { content: none; }
.f-hero__content { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.f-hero__meta {
    font-family: var(--f-font-mono);
    font-size: .6875rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--f-ink-soft);
}
.f-hero__title {
    margin: 0;
    text-shadow: none;
    font-size: clamp(2.25rem, 1.5rem + 4.5vw, 5.25rem);
    line-height: .94;
    max-width: none;
}
.f-hero__subtitle {
    margin: 0;
    max-width: 46ch;
    color: var(--f-ink-soft);
    font-size: 1rem;
    line-height: 1.6;
    text-transform: none;
    letter-spacing: 0;
}
.f-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.f-hero__cta {
    position: relative;
    overflow: hidden;
    align-self: auto;
    margin-top: 0;
}
.f-hero__cta--ghost {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255,255,255,.26);
}
.f-hero__cta--ghost:hover { background: rgba(255,255,255,.08); color: #fff; border-color: #fff; }
.f-hero__media {
    position: relative;
    aspect-ratio: 4 / 3;
    border-radius: var(--f-radius-inner);
    overflow: hidden;
    background: radial-gradient(60% 60% at 60% 45%, #1f1f1f 0%, #0a0a0a 100%);
}
.f-hero__media img { display: block; width: 100%; height: 100%; object-fit: contain; }
/* Медиа-блок героя целиком ссылка, когда бейдж «Хит недели» указывает на товар */
.f-hero__media > a { position: absolute; inset: 0; display: block; }
.f-hero__placeholder {
    position: absolute;
    inset: 6%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: 16px;
    text-align: center;
    border: 1px solid rgba(255,255,255,.1);
    background: repeating-linear-gradient(135deg, #151515 0 11px, #1d1d1d 11px 22px);
    font-family: var(--f-font-mono);
    font-size: .6875rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(255,255,255,.5);
}
.f-hero__badge {
    position: absolute;
    left: 16px;
    bottom: 16px;
    padding: 10px 16px;
    background: #fff;
    color: #000;
    font-weight: 700;
    font-size: .75rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}
@media (min-width: 860px) {
    .f-hero { grid-template-columns: 1.15fr 1fr; padding: 56px; min-height: 480px; }
}
@media (prefers-reduced-motion: no-preference) {
    /* Место старого «дыхания» фона: теперь плавно масштабируется само фото героя */
    .f-hero__media img { transition: transform 1.2s cubic-bezier(.16,1,.3,1); }
    .f-hero:hover .f-hero__media img { transform: scale(1.04); }
}

/* --- ПОЛОСА КОРОТКИХ ФАКТОВ (100% / 1–2 дня / 14 дней). Разметка — custom/home.bottom.html. --- */
.f-stats {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1px;
    margin: 0 0 var(--f-section);
    background: var(--f-line);
    border: 1px solid var(--f-line);
    border-radius: var(--f-radius);
    overflow: hidden;
    list-style: none;
}
@media (min-width: 700px) { .f-stats { grid-template-columns: repeat(3, 1fr); } }
.f-stats__item {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 26px 28px;
    background: var(--f-bg);
}
.f-stats__value { font-family: var(--f-font-display); font-size: 1.625rem; font-weight: 400; text-transform: uppercase; }
.f-stats__text { color: var(--f-ink-soft); font-size: .8125rem; line-height: 1.5; }

/* =====================================================================
   КАТАЛОГ (страница категории и результатов поиска) — остаётся тёмным,
   как весь остальной сайт (палитра `krosovok` уже задаёт нужные цвета
   глобально, отдельная светлая схема здесь не нужна). Пробовали делать
   страницу светлой по одному из вариантов макета — владелец magazина
   решил, что это не нужно, оставляем всё в одной чёрной схеме. */
.f-catalog__topbar {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 28px;
    justify-content: center;
    margin: 0 0 24px;
    padding: 10px 16px;
    background: #0a0a0a;
    color: rgba(255, 255, 255, .85);
    font-family: var(--f-font-mono);
    font-size: .6875rem;
    letter-spacing: .07em;
    text-transform: uppercase;
    border-radius: var(--f-radius-inner);
}
@media (min-width: 700px) { .f-catalog__topbar { justify-content: space-between; } }
.f-catalog__head { padding-top: 4px; }
.f-catalog__head h1 { font-weight: 400; }
.f-catalog__count {
    margin: -8px 0 20px;
    color: var(--f-ink-soft);
    font-size: .8125rem;
}

/* --- ПРОМО-БЛОК ВЕРХНЕУРОВНЕВОГО РАЗДЕЛА (макет «Каталог»): большая тёмная карточка
   сезона слева + две плашки справа. Разметка — custom/category.top.html. --- */
.f-catalog-promo {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    margin-bottom: 24px;
}
@media (min-width: 780px) { .f-catalog-promo { grid-template-columns: 2fr 1fr; } }
.f-catalog-promo__hero {
    position: relative;
    min-height: 260px;
    padding: 32px;
    display: flex;
    align-items: flex-end;
    border-radius: var(--f-radius-inner);
    overflow: hidden;
    background: #0a0a0a no-repeat center / cover;
    color: #fff;
}
.f-catalog-promo__body { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 10px; max-width: 60%; }
.f-catalog-promo__title { margin: 0; color: #fff; font-size: clamp(1.5rem, 1.1rem + 2vw, 2.25rem); }
.f-catalog-promo__text { margin: 0; color: rgba(255,255,255,.65); font-size: .875rem; }
.f-catalog-promo__hero .f-btn { align-self: flex-start; background: #fff; color: #0a0a0a; }
.f-catalog-promo__placeholder {
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        linear-gradient(90deg, #0a0a0a 0%, rgba(10,10,10,.65) 55%, transparent 100%),
        repeating-linear-gradient(135deg, #151515 0 11px, #1d1d1d 11px 22px);
}
.f-catalog-promo__side { display: flex; flex-direction: column; gap: 16px; }
.f-catalog-promo__card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 1;
    padding: 22px;
    border-radius: var(--f-radius-inner);
    background: var(--f-bg);
    box-shadow: var(--f-shadow-card);
}
.f-catalog-promo__card--outlet { background: var(--f-bg-soft); gap: 6px; justify-content: center; }
.f-catalog-promo__card-title { font-family: var(--f-font-display); font-size: 1.375rem; text-transform: uppercase; }
.f-catalog-promo__card-text { color: var(--f-ink-soft); font-size: .8125rem; }
.f-catalog-promo__sizes {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.f-catalog-promo__sizes li a,
.f-catalog-promo__sizes li span {
    display: block;
    min-width: 34px;
    padding: 7px 6px;
    text-align: center;
    border: 1px solid var(--f-line);
    border-radius: 6px;
    font-size: .75rem;
    font-weight: 600;
}
/* Размер с настоящей ссылкой на фильтр — отличим от простой подписи чуть заметным
   образом (не жирной рамкой): при наведении явно ведёт себя как кнопка. */
.f-catalog-promo__sizes li a {
    color: var(--f-ink);
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.f-catalog-promo__sizes li a:hover {
    background: var(--f-accent);
    border-color: var(--f-accent);
    color: var(--f-accent-ink);
    opacity: 1;
}
.f-catalog-promo__sizes li span { color: var(--f-ink-soft); cursor: default; }

/* =====================================================================
   ПРАВКИ ПО ОБРАТНОЙ СВЯЗИ ВЛАДЕЛЬЦА (после просмотра вживую).
   ===================================================================== */

/* --- Фото товара: сплошной белый фон вместо тёмной подложки. У фото в вашем каталоге
   свой белый фон запечён в файл (не прозрачный вырез), поэтому при несовпадении
   пропорций между рамкой и файлом раньше проступали тёмные полосы сверху/снизу —
   теперь подложка тоже белая, и полос не видно, фото сливается с рамкой в одно
   сплошное белое поле. --- */
.f-card__image,
.f-product__photo,
.f-card__noimage,
.f-hero-card__image {
    background: #ffffff;
}

/* Метка «Новинка» (и подобные светлые бейджи) раньше была почти невидима на светлом
   фото — палитра темы красит --f-highlight в белый цвет. Здесь бейджи лежат прямо
   на белом фото, поэтому красим их непрозрачно-тёмным, независимо от палитры. */
.f-badge--new { background: #0a0a0a; color: #ffffff; }

/* --- Инструменты карточки: было два кружка (избранное + сравнение) серым по серому,
   тесно и невзрачно. Сравнение убрано из списка товаров вовсе (осталось на странице
   товара — там оно не мешает). Избранное теперь одно, крупнее, на белой подложке
   с тенью — читается на любом фото, а не сливается с ним. --- */
.f-card__tools { top: 12px; right: 12px; gap: 0; }
.f-fav.f-card__tool {
    width: 38px;
    height: 38px;
    background: #ffffff;
    color: rgba(10, 10, 10, .55);
    box-shadow: 0 2px 10px rgba(0, 0, 0, .18);
}
.f-fav.f-card__tool:hover { color: #0a0a0a; transform: scale(1.08); }
.f-fav.f-card__tool.is-active { background: #0a0a0a; color: #ffffff; }
.f-fav.f-card__tool > svg { width: 19px; height: 19px; }
@media (prefers-reduced-motion: no-preference) {
    .f-fav.f-card__tool { transition: transform .2s cubic-bezier(.34,1.56,.64,1), background-color .2s ease, color .2s ease; }
    .f-fav.f-card__tool.is-active svg { animation: fFavPop .32s cubic-bezier(.34,1.56,.64,1); }
}
@keyframes fFavPop { 0% { transform: scale(.7); } 60% { transform: scale(1.15); } 100% { transform: scale(1); } }

/* --- Строка категорий в шапке: было мало пунктов слева плотной кучкой — разрежаем,
   укрупняем шрифт под фирменный Anton, добавляем внятный hover-отклик (заливка,
   не только смена цвета рамки). --- */
.f-nav__list { gap: 12px; }
.f-nav__link {
    padding: 10px 20px;
    font-family: var(--f-font-display);
    font-size: .8125rem;
    font-weight: 800;
    letter-spacing: .01em;
    text-transform: uppercase;
}
@media (prefers-reduced-motion: no-preference) {
    .f-nav__link { transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease; }
    .f-nav__link:hover { transform: translateY(-1px); }
}
.f-nav__link:hover { background: var(--f-accent); color: var(--f-accent-ink); border-color: var(--f-accent); }

/* --- Поисковая шторка (по клику на лупу): раньше растягивалась на всю ширину экрана
   плашкой сверху — тяжело и невзрачно. Теперь — компактная карточка по центру, ближе
   к верху, со своей тенью и скруглением, как палитра команд, а не полноэкранная плашка. --- */
.f-drawer--top {
    position: fixed;
    inset: 64px 0 auto 0;
    width: min(600px, calc(100% - 32px));
    height: auto;
    max-height: min(520px, calc(100dvh - 96px));
    margin: 0 auto;
    border-radius: var(--f-radius);
    box-shadow: var(--f-shadow-pop);
    overflow: hidden;
}
.f-drawer--top .f-drawer__head { border-radius: var(--f-radius) var(--f-radius) 0 0; }
@media (max-width: 480px) {
    .f-drawer--top { inset: 0; width: 100%; max-height: 100dvh; border-radius: 0; }
}
@media (prefers-reduced-motion: no-preference) {
    .f-drawer--top[open] { animation: fSearchIn .22s cubic-bezier(.16,1,.3,1) both; }
}
@keyframes fSearchIn { from { opacity: 0; transform: translateY(-10px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }

/* --- Подвал: блок юридических ссылок справа внизу, кнопками-пилюлями, а не текстовым
   столбиком — договор владельца показать их именно так. Разметка — footer.html. --- */
.f-footer__bottom { flex-wrap: wrap; gap: 12px 20px; }
.f-footer__legal-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-left: auto;
    padding: 0;
    list-style: none;
}
.f-footer__legal-links a {
    display: inline-block;
    padding: 6px 14px;
    border: 1px solid var(--f-line);
    border-radius: var(--f-radius-pill);
    font-size: .8125rem;
    color: var(--f-ink-soft);
}
.f-footer__legal-links a:hover { border-color: var(--f-accent); color: var(--f-ink); }

/* --- Общая полировка анимаций: лёгкое появление секций и подборок при прокрутке,
   мягче, чем резкое появление без перехода. Правило слушает уже существующий класс
   .f-reveal/.f-reveal-in — если IntersectionObserver в theme.js его расставляет
   на секциях страницы (герой и бренды это уже используют), эффект подхватится сам,
   без правок JS. --- */
@media (prefers-reduced-motion: no-preference) {
    .f-catalog-promo,
    .f-catalog-promo__card,
    .f-footer__cols > * {
        animation: fFadeUp .5s cubic-bezier(.16,1,.3,1) both;
    }
    .f-catalog-promo__side .f-catalog-promo__card:nth-child(2) { animation-delay: .06s; }
    .f-footer__cols > *:nth-child(2) { animation-delay: .04s; }
    .f-footer__cols > *:nth-child(3) { animation-delay: .08s; }
    .f-footer__cols > *:nth-child(4) { animation-delay: .12s; }
    .f-footer__cols > *:nth-child(5) { animation-delay: .16s; }
    .f-catalog-promo-sizes li a, .f-catalog-promo__sizes li a { transition: transform .15s ease; }
    .f-catalog-promo__sizes li a:hover { transform: translateY(-2px); }
    .f-catalog-menu .f-subcard { animation: fFadeUp .4s ease both; }
}

/* --- МЕНЮ РАЗДЕЛОВ на странице «Каталог» (пустой запрос поиска, search.html): те же
   карточки, что и у подразделов категории, крупнее заголовка списка товаров ниже —
   это первое, что видит посетитель, а не сплошная лента вообще всех товаров магазина. --- */
.f-catalog-menu { margin-bottom: 28px; }
.f-catalog-menu__title {
    display: block;
    margin-bottom: 14px;
    font-family: var(--f-font-display);
    font-size: 1.125rem;
    text-transform: uppercase;
}

/* =====================================================================
   МОБИЛЬНАЯ ВЕРСИЯ (макеты 2a/2b/2d из Claude Design) — три добавки поверх
   уже адаптивной темы: шторка фильтров нижним листом, крупное меню-шторка
   с Anton и счётчиками, строка категорий на главной — кружками-сторис.
   ===================================================================== */

/* --- Шторка фильтров нижним листом на телефоне (макет 2d).
   На широком экране (см. базовое правило .f-drawer) это по-прежнему
   боковая панель — здесь трогаем только мобильную раскладку. --- */
.f-drawer__handle { display: none; }
@media (max-width: 899px) {
    dialog.f-drawer#f-filters-drawer {
        margin: auto 0 0;
        width: 100%;
        height: auto;
        max-height: 88dvh;
        border-radius: 20px 20px 0 0;
        transform: translateY(100%);
    }
    dialog.f-drawer#f-filters-drawer.is-open { transform: translateY(0); }
    #f-filters-drawer .f-drawer__handle {
        display: block;
        width: 44px;
        height: 4px;
        margin: 10px auto 2px;
        border-radius: var(--f-radius-pill);
        background: var(--f-line);
        flex: none;
    }
    #f-filters-drawer .f-drawer__head { border-radius: 20px 20px 0 0; }
}

/* --- Меню (шторка-гамбургер): крупные пункты шрифтом Anton со счётчиком
   справа, как в макете 2d, вместо обычного текстового списка ссылок. --- */
.f-menu a,
.f-menu details > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 60px;
}
.f-menu a > span:first-child,
.f-menu__label {
    font-family: var(--f-font-display);
    font-size: 1.375rem;
    text-transform: uppercase;
    letter-spacing: -0.01em;
}
.f-menu__count {
    font-family: var(--f-font-mono);
    font-size: .75rem;
    color: var(--f-ink-soft);
}

/* --- Строка разделов на главной — кружки-сторис на телефоне (макет 2a).
   Разметка та же самая (.f-cats/.f-cat/.f-cat__dot из custom/home.top.html
   и home.html) — на мобильном экране просто перекладываем пилюлю в
   вертикальную колонку «кружок + подпись» и прячем счётчик, которому
   в сторис-формате не нашлось бы места. Широкий экран не трогаем. --- */
@media (max-width: 899px) {
    .f-cats { gap: 18px; padding-bottom: 2px; }
    .f-cat {
        flex-direction: column;
        align-items: center;
        gap: 8px;
        min-width: 72px;
        padding: 0;
        border: 0;
        background: none;
        box-shadow: none;
    }
    .f-cat__dot {
        width: 64px;
        height: 64px;
        font-size: 1.0625rem;
        border: 1.5px solid var(--f-line);
    }
    .f-cat > span:not(.f-cat__dot):not(.f-cat__count) {
        font-size: .75rem;
        font-weight: 600;
        text-align: center;
        white-space: normal;
        line-height: 1.25;
    }
    .f-cat__count { display: none; }
}
