/* ============================================================
   FastSel вЂ” С‚С‘РјРЅР°СЏ РЅРµРѕРЅРѕРІР°СЏ С‚РµРјР° (СЃРёРЅРёР№ / С„РёРѕР»РµС‚РѕРІС‹Р№ / РіРѕР»СѓР±РѕР№).
   РќР°РґСЃС‚СЂРѕР№РєР° РЅР°Рґ nova.css: РїРµСЂРµРѕРїСЂРµРґРµР»СЏРµС‚ РїР°Р»РёС‚СЂСѓ Nova Рё Р·Р°РґР°С‘С‚
   СЃРѕР±СЃС‚РІРµРЅРЅСѓСЋ СЂР°Р·РјРµС‚РєСѓ РІРёС‚СЂРёРЅС‹ (fs-*): С€Р°РїРєР°, РјРµРЅСЋ РєР°С‚РµРіРѕСЂРёР№,
   Р±Р°РЅРЅРµСЂ, РїСЂРµРёРјСѓС‰РµСЃС‚РІР°, РїР»РёС‚РєРё, С„СѓС‚РµСЂ.
   ============================================================ */

@import url('/assets/fonts/fonts.css');

/* Масштаб витрины задаётся в админке (Контент → Главный баннер, «Масштаб витрины, %»)
   и выводится инлайн-стилем zoom на <html class="fs-root"> — здесь ничего не нужно. */

body.t-fastsel {
    --th-bg:        6 8 22;
    --th-surface:   13 17 42;
    --th-surface-2: 20 26 60;
    --th-ink:       236 240 255;
    --th-ink-2:     172 182 216;
    --th-muted:     118 128 168;
    --th-line:      120 150 255;
    --th-acc:       139 92 246;
    --th-acc-deep:  124 58 237;
    --th-acc-ink:   255 255 255;
    --th-acc2:      34 211 238;
    --th-bar:       7 10 26;
    --th-radius:    16px;
    --th-glow:      0 0 0 1px rgba(139,92,246,.5), 0 16px 40px -14px rgba(139,92,246,.45);

    --fs-blue:   #3b82f6;
    --fs-cyan:   #22d3ee;
    --fs-violet: #8b5cf6;
    --fs-purple: #a855f7;
    --fs-line:   rgba(88, 130, 255, .22);
    --fs-line-2: rgba(88, 130, 255, .38);
    /* Плитки/панели — токен --tile референса: hsl(228 80% 8%) */
    --fs-panel:  hsl(228 80% 8%);
    /* Дизайн-токены .fs-* компонентов (карточки, полки, кнопки) */
    --panel:   rgb(var(--th-surface));
    --panel2:  rgb(var(--th-surface-2));
    --border:  var(--fs-line);
    --border2: var(--fs-line-2);
    --muted:   rgb(var(--th-muted));
    --text:    rgb(var(--th-ink));
    --shadow-soft: 0 16px 40px -24px rgba(2 4 18 / .9);
    --fs-display: 'Russo One', 'Unbounded', 'Manrope', sans-serif;
    overflow-x: hidden;
    background-image: radial-gradient(ellipse at top, rgba(66, 40, 150, .45), transparent 62%);
    --fs-radius: 16px;
    /* Ширина контентной области — как на референсе (max-w 1640) */
    --fs-container: 1640px;

    /* Фон — как на референсе: тёмно-синие свечения + почти чёрный градиент */
    background-color: #01010a;
    background-image:
        radial-gradient(1100px 500px at 60% 0%, hsl(225 90% 12% / .55), transparent 65%),
        radial-gradient(900px 600px at 50% 70%, hsl(222 95% 9% / .6), transparent 70%),
        linear-gradient(180deg, #01010a 0%, #020618 40%, #010615 100%);
    background-attachment: fixed;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    padding-bottom: 64px;
}
@media (min-width: 768px) { body.t-fastsel { padding-bottom: 0; } }

/* ---------- Звёздное небо: мерцающие звёзды + туманности (как на референсе) ---------- */
body.t-fastsel::before {
    content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
    background-image:
        radial-gradient(1.4px 1.4px at 12% 18%, rgba(255,255,255,.75), transparent 60%),
        radial-gradient(1.4px 1.4px at 27% 72%, rgba(200,210,255,.6), transparent 60%),
        radial-gradient(2px 2px at 41% 33%, rgba(255,255,255,.8), transparent 60%),
        radial-gradient(1.4px 1.4px at 58% 84%, rgba(220,200,255,.55), transparent 60%),
        radial-gradient(1.4px 1.4px at 66% 12%, rgba(255,255,255,.65), transparent 60%),
        radial-gradient(2px 2px at 78% 56%, rgba(190,215,255,.75), transparent 60%),
        radial-gradient(1.4px 1.4px at 89% 27%, rgba(255,255,255,.6), transparent 60%),
        radial-gradient(1.4px 1.4px at 94% 88%, rgba(230,210,255,.55), transparent 60%),
        radial-gradient(1.4px 1.4px at 5% 52%, rgba(255,255,255,.5), transparent 60%),
        radial-gradient(1.4px 1.4px at 35% 95%, rgba(255,255,255,.5), transparent 60%);
    background-size: 520px 520px;
    opacity: .8;
    animation: fs-twinkle 7s ease-in-out infinite alternate;
}
body.t-fastsel::after {
    content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
    background:
        radial-gradient(90% 70% at 15% 35%, hsl(268 70% 40% / .06), transparent 75%),
        radial-gradient(90% 70% at 85% 70%, hsl(215 80% 45% / .05), transparent 75%),
        radial-gradient(1.4px 1.4px at 20% 40%, rgba(255,255,255,.4), transparent 60%),
        radial-gradient(1.4px 1.4px at 70% 30%, rgba(255,255,255,.35), transparent 60%),
        radial-gradient(1.4px 1.4px at 50% 70%, rgba(255,255,255,.35), transparent 60%);
    background-size: 100% 100%, 100% 100%, 310px 310px, 310px 310px, 310px 310px;
}
@keyframes fs-twinkle { from { opacity: .6; } to { opacity: .95; } }
@media (prefers-reduced-motion: reduce) { body.t-fastsel::before { animation: none; } }

/* ---------- Падающие звёзды ---------- */
.fs-shooting-stars { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.fs-shooting-star {
    position: absolute; width: 140px; height: 1.5px; border-radius: 9999px;
    background: linear-gradient(90deg, rgba(255,255,255,.95), rgba(180,160,255,.5) 35%, transparent);
    filter: drop-shadow(0 0 4px rgba(190,170,255,.8));
    opacity: 0; transform: rotate(-35deg) translateX(0); transform-origin: left center;
    animation-name: fs-shoot; animation-timing-function: ease-out; animation-iteration-count: infinite;
}
.fs-shooting-star::before {
    content: ""; position: absolute; left: -2px; top: 50%; width: 4px; height: 4px;
    border-radius: 9999px; background: #fff; transform: translateY(-50%);
    box-shadow: 0 0 8px 2px rgba(200,185,255,.9);
}
@keyframes fs-shoot {
    0% { opacity: 0; transform: rotate(-35deg) translateX(0) scaleX(.3); }
    1% { opacity: 1; }
    3% { opacity: 1; transform: rotate(-35deg) translateX(-28vw) scaleX(1); }
    4%, 100% { opacity: 0; transform: rotate(-35deg) translateX(-34vw) scaleX(.6); }
}
@media (prefers-reduced-motion: reduce) { .fs-shooting-stars { display: none; } }

body.t-fastsel .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.fs-skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--fs-violet); color: #fff; padding: 8px 14px; border-radius: 10px; }
.fs-skip:focus { left: 12px; }

.fs-container, .fs-container-wide { width: 100%; max-width: var(--fs-container); margin: 0 auto; padding-left: 16px; padding-right: 16px; }
@media (min-width: 1024px) { .fs-container, .fs-container-wide { padding-left: 32px; padding-right: 32px; } }
.fs-main { flex: 1; padding-top: 20px; padding-bottom: 48px; }

/* ---------- РљРЅРѕРїРєРё ---------- */
.fs-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 10px 18px; border-radius: 12px; font-weight: 700; font-size: 14px; line-height: 1.2;
    transition: transform .15s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease, color .2s ease;
    white-space: nowrap; cursor: pointer; border: 1px solid transparent;
}
.fs-btn:hover { transform: translateY(-1px); }
.fs-btn:disabled, .fs-btn.is-loading { opacity: .6; pointer-events: none; }
.fs-btn-block { display: flex; width: 100%; }
.fs-btn-seller {
    color: #fff;
    background: linear-gradient(135deg, #7c3aed 0%, #4f46e5 55%, #2563eb 100%);
    box-shadow: 0 0 0 1px rgba(167, 139, 250, .45) inset, 0 8px 22px -8px rgba(124, 58, 237, .7);
}
.fs-btn-seller:hover { box-shadow: 0 0 0 1px rgba(196, 181, 253, .7) inset, 0 10px 28px -6px rgba(124, 58, 237, .9); }
/* Компактная кнопка «Стать продавцом» в шапке. */
.fs-hd-seller { padding: 9px 15px; font-size: 13px; border-radius: 11px; gap: 7px; }
.fs-hd-seller .fa-store { font-size: 12px; }
/* 1280–1439px: появляется навигация, в шапке тесно — кнопка схлопывается в иконку, не уезжая за экран */
@media (min-width: 1280px) and (max-width: 1439px) {
    .fs-hd-seller { padding: 10px 11px; gap: 0; }
    .fs-hd-seller .fa-store { font-size: 14px; }
    .fs-hd-seller span { display: none; }
}
/* Совсем узкие экраны — кнопка в дровере (fs-btn-block, бургер виден до 1279px) */
@media (max-width: 900px) { .fs-hd-seller { display: none; } }
/* CTA-кнопка — «neon-btn» референса: горизонтальный градиент, display-шрифт, свечение */
.fs-btn-cta {
    color: #fff; font-family: 'Manrope', sans-serif; font-weight: 800; font-size: 14px; text-transform: uppercase; line-height: 1;
    gap: 12px; height: 48px; padding: 0 24px; border-radius: 12px; border: 0;
    background: linear-gradient(90deg, hsl(268 90% 64%) 0%, hsl(258 90% 62%) 45%, hsl(218 96% 60%) 100%);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .18) inset, 0 0 24px hsl(268 90% 64% / .55), 0 0 60px -10px hsl(218 96% 60% / .6);
}
.fs-btn-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .28) inset, 0 0 32px hsl(268 90% 64% / .75), 0 0 80px -6px hsl(218 96% 60% / .75);
}
@media (min-width: 1024px) { .fs-btn-cta { height: 56px; font-size: 16px; } }
.fs-btn-ghost { color: #dbe3ff; border-color: var(--fs-line-2); background: rgba(59, 130, 246, .08); }
.fs-btn-ghost:hover { border-color: rgba(139, 92, 246, .8); background: rgba(139, 92, 246, .16); color: #fff; box-shadow: 0 0 22px -6px rgba(139, 92, 246, .7); }
.fs-btn-primary { color: #fff; background: linear-gradient(135deg, #8b5cf6, #3b82f6); box-shadow: 0 10px 26px -10px rgba(139, 92, 246, .8); }
.fs-btn-danger { color: #fecdd3; border-color: rgba(244, 63, 94, .4); background: rgba(244, 63, 94, .1); }

/* Кнопки-иконки шапки — как в Header референса: p-2.5, иконка 23px, без рамок */
.fs-icon-btn {
    position: relative; display: inline-flex; align-items: center; justify-content: center;
    padding: 10px; border-radius: 12px; color: #eeeaf8; font-size: 21px; line-height: 0;
    border: 0; background: transparent;
    transition: color .15s ease, background-color .15s ease; cursor: pointer; list-style: none;
}
.fs-icon-btn svg { display: block; }
.fs-icon-btn::-webkit-details-marker { display: none; }
.fs-icon-btn:hover { color: hsl(218 96% 60%); background: hsl(228 60% 13% / .6); }
.fs-fav-btn:hover { color: hsl(292 84% 61%); }
/* Счётчик корзины: градиент violet→neon, 20px, свечение */
.fs-badge {
    position: absolute; top: -2px; right: -2px; display: flex; align-items: center; justify-content: center;
    min-width: 20px; height: 20px; padding: 0 4px; border-radius: 999px;
    background: linear-gradient(to bottom right, hsl(268 90% 64%), hsl(218 96% 60%));
    color: #fff; font-family: 'Inter', sans-serif; font-size: 11px; font-weight: 700; line-height: 1;
    box-shadow: 0 0 10px hsl(268 90% 64%);
}
.fs-badge[hidden] { display: none; }
/* Точка «есть избранное / уведомления» */
.fs-fav-dot { position: absolute; right: 4px; top: 4px; width: 10px; height: 10px; border-radius: 50%; background: hsl(292 84% 61%); box-shadow: 0 0 8px hsl(292 84% 61%); }
.fs-pill { margin-left: auto; font-size: 11px; padding: 1px 7px; border-radius: 999px; background: rgba(139,92,246,.3); color: #fff; }

/* ---------- Шапка — 1:1 с Header референса ---------- */
.fs-header {
    position: sticky; top: 0; z-index: 50;
    background: hsl(228 60% 5% / .92);
    backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px);
    border-bottom: 0; box-shadow: none; font-family: 'Inter', sans-serif;
}
.fs-header::after {
    content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
    background: linear-gradient(to right, rgba(124, 58, 237, .7), rgba(59, 130, 246, .7), rgba(124, 58, 237, .4));
}
.fs-header-row { display: flex; align-items: center; gap: 16px; height: 84px; }
.fs-logo { display: flex; align-items: center; flex-shrink: 0; min-width: 0; color: #fff; text-decoration: none; }
.fs-logo-img-wrap { position: relative; display: block; min-width: 0; transition: transform .3s ease; }
.fs-logo:hover .fs-logo-img-wrap { transform: scale(1.03); }
.fs-logo img.fs-logo-img { display: block; height: 44px; width: auto; max-width: 300px; object-fit: contain; filter: none; }
/* Подпись под логотипом: absolute bottom-0 left-[39%], 8.5px, Manrope bold uppercase */
.fs-logo-cap {
    position: absolute; bottom: 0; left: 39%; right: 3%; white-space: nowrap; text-align-last: justify;
    font-family: 'Manrope', sans-serif; font-size: 7.2px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; line-height: 1;
    color: rgba(238, 234, 248, .9); pointer-events: none;
}
/* Навигация: ml-8 gap-1 (2xl: ml-10 gap-3); пункт px-18 py-12, 15px medium, иконка 24px */
.fs-nav { display: flex; align-items: center; gap: 4px; margin-left: 32px; }
@media (min-width: 1536px) { .fs-nav { margin-left: 40px; gap: 12px; } }
.fs-nav-link {
    position: relative; display: flex; align-items: center; gap: 10px;
    padding: 12px 18px !important; border-radius: 999px !important; font-size: 15px; font-weight: 500 !important; line-height: 24px; color: #eeeaf8 !important;
    background: transparent !important; box-shadow: none !important; transform: none !important; letter-spacing: normal !important;
}
/* На body висят оба класса t-nova + t-fastsel: CTA-правило Nova для «Каталог» красит текст белым !important — перебиваем */
body.t-fastsel header nav .fs-nav-link { color: #eeeaf8 !important; }
.fs-nav-ico { position: relative; flex-shrink: 0; filter: drop-shadow(0 0 1.5px hsl(205 100% 60% / .3)); transition: transform .15s ease; }
.fs-nav-link:hover .fs-nav-ico { transform: scale(1.1); }
.fs-nav-label { position: relative; }
.fs-nav-pill { position: absolute; inset: 0; border-radius: 999px; background: radial-gradient(120% 140% at 30% 50%, hsl(225 75% 16%), hsl(226 70% 9%)); box-shadow: 0 0 10px -4px hsl(230 90% 55% / .3); }
.fs-nav-link.is-active .fs-nav-label { background: linear-gradient(to right, #c084fc, #d8b4fe); -webkit-background-clip: text; background-clip: text; color: transparent; }
@property --fs-ring-a { syntax: "<angle>"; initial-value: 0deg; inherits: false; }
.fs-nav-ring {
    position: absolute; inset: 0; border-radius: 999px; padding: 2px; pointer-events: none;
    background: conic-gradient(from var(--fs-ring-a), rgba(168, 85, 247, .18) 0deg, rgba(59, 130, 246, .18) 150deg, #3b82f6 230deg, #a855f7 300deg, #f5d0fe 345deg, rgba(168, 85, 247, .18) 360deg);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
    filter: drop-shadow(0 0 4px #a855f7) drop-shadow(0 0 2px #3b82f6);
    animation: fs-ring-spin 3s linear infinite;
}
@keyframes fs-ring-spin { to { --fs-ring-a: 360deg; } }
@media (prefers-reduced-motion: reduce) { .fs-nav-ring { animation: none; } }
/* Поиск: ml-auto w-[310px], поле h-12 rounded-xl, лупа справа */
.fs-search { position: relative; margin-left: auto; width: 310px; flex-shrink: 0; }
body.t-fastsel .fs-search-input, body.t-fastsel .fs-msearch input {
    display: block; width: 100%; height: 48px; padding: 0 48px 0 20px; border-radius: 12px !important;
    border: 1px solid hsl(218 96% 60% / .3) !important; background: hsl(228 75% 7% / .7) !important;
    color: #eeeaf8 !important; font-size: 14px; font-family: 'Inter', sans-serif; outline: none; box-shadow: none !important;
    transition: border-color .15s ease, box-shadow .15s ease;
}
body.t-fastsel .fs-search-input::placeholder, body.t-fastsel .fs-msearch input::placeholder { color: hsl(254 15% 64%); }
body.t-fastsel .fs-search-input:focus, body.t-fastsel .fs-msearch input:focus { border-color: hsl(218 96% 60% / .7) !important; box-shadow: 0 0 20px hsl(218 96% 60% / .35) !important; }
.fs-search-input::-webkit-search-cancel-button { display: none; }
.fs-search-btn { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); display: flex; color: hsl(218 96% 60%); background: none; border: 0; padding: 0; cursor: pointer; }
.fs-actions { display: flex; align-items: center; gap: 4px; margin-left: 16px; flex-shrink: 0; }
.fs-burger { display: none; }
.fs-suggest {
    position: absolute; left: 0; right: 0; top: calc(100% + 8px); min-width: 320px; z-index: 60; overflow: hidden;
    border-radius: 14px; border: 1px solid var(--fs-line-2); background: rgb(12, 16, 40); box-shadow: 0 20px 50px -12px rgba(0,0,0,.7);
}
.fs-suggest a { color: #e0e7ff; }
/* Мобильный поиск — внутри выдвижного меню (как на референсе) */
.fs-msearch { position: relative; margin: 4px 0 2px; }

@media (min-width: 768px) { .fs-msearch { display: none; } }

.fs-dropdown { position: relative; }
.fs-dropdown > summary { list-style: none; }
.fs-dropdown-menu {
    position: absolute; right: 0; top: calc(100% + 10px); width: 250px; padding: 6px; z-index: 60;
    border-radius: 14px; border: 1px solid var(--fs-line-2); background: rgb(12, 16, 40); box-shadow: 0 20px 50px -12px rgba(0,0,0,.75);
}
.fs-dropdown-head { padding: 10px 12px; font-size: 12px; color: #8ea0d6; border-bottom: 1px solid var(--fs-line); margin-bottom: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fs-dropdown-menu a, .fs-dropdown-menu button {
    display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 12px; border-radius: 10px; font-size: 14px; color: #dbe3ff; text-align: left;
}
.fs-dropdown-menu a i, .fs-dropdown-menu button i { width: 18px; text-align: center; color: #a5b4fc; }
.fs-dropdown-menu a:hover, .fs-dropdown-menu button:hover { background: rgba(139, 92, 246, .16); color: #fff; }

/* ---------- Р’С‹РґРІРёР¶РЅР°СЏ РїР°РЅРµР»СЊ ---------- */
.fs-drawer { position: fixed; inset: 0; z-index: 70; }
.fs-drawer[hidden] { display: none; }
.fs-drawer-backdrop { position: absolute; inset: 0; background: rgba(2, 4, 14, .7); opacity: 0; transition: opacity .2s ease; backdrop-filter: blur(3px); }
.fs-drawer-panel {
    position: absolute; top: 0; bottom: 0; left: 0; width: min(340px, 88vw); overflow-y: auto; padding: 16px;
    background: rgb(8, 11, 30); border-right: 1px solid var(--fs-line-2); box-shadow: 20px 0 50px -20px rgba(59, 130, 246, .5);
    transform: translateX(-100%); transition: transform .22s ease; display: flex; flex-direction: column; gap: 14px;
}
.fs-drawer.is-open .fs-drawer-backdrop { opacity: 1; }
.fs-drawer.is-open .fs-drawer-panel { transform: none; }
.fs-drawer-top { display: flex; align-items: center; justify-content: space-between; }
.fs-drawer-title { font-family: 'Unbounded', sans-serif; font-weight: 700; color: #fff; }
.fs-drawer-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.fs-drawer-nav a { padding: 10px 12px; border-radius: 10px; border: 1px solid var(--fs-line); color: #c7d2fe; font-weight: 600; font-size: 14px; }
.fs-drawer-nav a.is-active { color: #fff; border-color: rgba(168, 85, 247, .7); box-shadow: 0 0 16px -6px #a855f7; }
/* В выдвижной панели карточка категорий — по контенту, иначе список «вываливается» за её низ */
.fs-drawer .fs-side { position: static; height: auto; min-height: 0; flex-shrink: 0; }

/* ---------- РЎРµС‚РєР° РіРµСЂРѕСЏ: РјРµРЅСЋ + Р±Р°РЅРЅРµСЂ ---------- */
/* Ширина окна баннера может задаваться инлайном из админки (--fs-bw как «Xfr/остальное») */
/* Сетка «меню + баннер»: колонка 280px и верхнее выравнивание — как на референсе */
.fs-hero-grid { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 20px; align-items: start; }

/* ---------- Р‘РѕРєРѕРІРѕРµ РјРµРЅСЋ РєР°С‚РµРіРѕСЂРёР№ ---------- */
/* Панель категорий — 1:1 с CategoriesPanel референса */
.fs-side {
    position: relative; display: flex; flex-direction: column; overflow: hidden;
    border-radius: 16px; border: 1px solid rgba(21, 39, 90, .7); background: hsl(228 80% 8%);
    box-shadow: inset 0 1px 0 rgba(120, 150, 255, .06);
    padding: 10px; font-family: 'Inter', sans-serif;
}
.fs-side--flyout { overflow: visible; }
/* Заголовок «Категории ›» — ссылка на каталог, линия-градиент снизу */
.fs-side-head { position: relative; display: flex; align-items: center; gap: 12px; padding: 2px 4px 10px; font-family: 'Manrope', sans-serif; font-weight: 700; font-size: 19px; letter-spacing: -.025em; color: #eeeaf8; }
.fs-side-head::after { content: ''; position: absolute; left: 4px; right: 4px; bottom: 0; height: 1px; background: linear-gradient(90deg, rgba(29, 78, 216, .2), rgba(47, 107, 224, .8), rgba(29, 78, 216, .2)); }
.fs-side-head-arrow { margin-left: auto; color: #2d5bc4; flex-shrink: 0; }
.fs-side-empty { padding: 10px; color: #8ea0d6; font-size: 14px; }
.fs-cats { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; }
.fs-cat { position: relative; display: flex; flex-wrap: wrap; align-items: center; }
.fs-cat-link {
    flex: 1; min-width: 0; display: flex; align-items: center; gap: 12px; padding: 3px 4px; border-radius: 8px;
    color: #eeeaf8; font-weight: 500; font-size: 14px; line-height: 20px; transition: background .15s ease;
}
/* Круглая иконка категории: #0c1438 + тонкое кольцо, иконка lucide с градиентной обводкой */
.fs-cat-icon {
    --cic: #a855f7;
    position: relative; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 36px; height: 36px; border-radius: 50%; font-size: 19px;
    color: color-mix(in srgb, var(--cic) 86%, #fff);
    background: #0c1438; border: 0;
    box-shadow: inset 0 0 0 1px rgba(140, 120, 255, .14);
}
.fs-cat-icon--lg { width: 42px; height: 42px; }
.fs-cat-icon--md { width: 40px; height: 40px; }
.fs-cat-icon svg { filter: drop-shadow(0 0 1.5px color-mix(in srgb, var(--cic) 33%, transparent)); }
/* Градиентный глиф (розово-лиловый → цвет категории), как stroke-градиент иконок референса */
.fs-cat-icon > i::before {
    background: linear-gradient(135deg, color-mix(in srgb, var(--cic) 45%, #ff6ad5), var(--cic));
    -webkit-background-clip: text; background-clip: text; color: transparent;
    filter: drop-shadow(0 0 1.5px color-mix(in srgb, var(--cic) 35%, transparent));
}
.fs-cat-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fs-cat-arrow { margin-left: auto; flex-shrink: 0; color: rgba(238, 234, 248, .8); transition: transform .15s ease; }
/* Ховер — как на референсе: hover:bg-foreground/5, стрелка сдвигается */
.fs-cat-link:hover, .fs-cat.is-active > .fs-cat-link, .fs-cat:hover > .fs-cat-link { background: rgba(238, 234, 248, .05); }
.fs-cat-link:hover .fs-cat-arrow, .fs-cat:hover .fs-cat-toggle .fs-cat-arrow { transform: translateX(4px); }
.fs-cat-toggle { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 8px; color: rgba(238, 234, 248, .8); flex-shrink: 0; }
.fs-cat-toggle:hover { color: #fff; }
.fs-subcats { display: none; list-style: none; margin: 2px 0 6px 48px; padding: 0; width: 100%; }
.fs-cat.is-open > .fs-subcats { display: block; }
.fs-cat.is-open > .fs-cat-toggle .fs-cat-arrow { transform: rotate(90deg); }
.fs-subcats a { display: block; padding: 7px 10px; border-radius: 9px; font-size: 13.5px; color: #aab6e4; }
.fs-subcats a:hover { color: #fff; background: rgba(59, 130, 246, .14); }
.fs-subcats-head a { color: #c4b5fd; font-weight: 700; }

/* Р”РµСЃРєС‚РѕРї: РїРѕРґРєР°С‚РµРіРѕСЂРёРё РІС‹РїР°РґР°СЋС‚ СЃРїСЂР°РІР° РѕС‚ РјРµРЅСЋ */
@media (min-width: 1024px) {
    .fs-side--flyout .fs-subcats {
        position: absolute; left: calc(100% + 12px); top: -8px; width: 250px; margin: 0; padding: 8px; z-index: 30;
        border-radius: 14px; border: 1px solid var(--fs-line-2); background: rgb(12, 16, 40); box-shadow: 0 20px 50px -12px rgba(0,0,0,.75), 0 0 30px -12px rgba(139,92,246,.6);
    }
    .fs-side--flyout .fs-subcats::before { content: ''; position: absolute; left: -14px; top: 0; bottom: 0; width: 14px; }
    .fs-side--flyout .fs-cat:hover > .fs-subcats, .fs-side--flyout .fs-cat:focus-within > .fs-subcats { display: block; }
}

.fs-guarantee {
    display: flex; align-items: center; gap: 10px; margin-top: 12px; padding: 12px 8px; border-radius: 12px; color: #eeeaf8;
    background: hsl(226 75% 13%);
    border: 1px solid rgba(30, 58, 154, .7); box-shadow: inset 0 0 10px rgba(60, 100, 255, .12);
    transition: border-color .2s ease;
}
.fs-guarantee:hover { border-color: #3b6bff; }
.fs-guarantee b { display: block; font-size: 13.5px; font-weight: 700; white-space: nowrap; line-height: 1.25; }
.fs-guarantee small { display: block; font-size: 11.5px; color: hsl(254 15% 64%); margin-top: 2px; white-space: nowrap; line-height: 1.25; }
.fs-guarantee > span:nth-child(2) { min-width: 0; }
.fs-guarantee-arrow { margin-left: auto; flex-shrink: 0; color: #38bdf8; }

/* ---------- Р“Р»Р°РІРЅС‹Р№ Р±Р°РЅРЅРµСЂ ---------- */
.fs-banner {
    position: relative; overflow: hidden; min-height: var(--fs-bh, 400px); border-radius: 16px; isolation: isolate;
    /* --fs-bw: ширина окна в % от своей колонки (админка); >100% — окно шире ряда, уходит вправо */
    width: var(--fs-bw, 100%); justify-self: start;
    display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); align-items: center;
    border: 1px solid rgba(59, 130, 246, .22);
    background: linear-gradient(120deg, #0b0f2e 0%, #0a0c24 45%, #120a2e 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04), 0 0 0 1px rgba(168, 85, 247, .06), 0 10px 40px -12px rgba(59, 130, 246, .35);
}
/* --fs-bh/--fs-bhm = 0: высота от пропорции референса 1974:797 вместо фиксированных px */
@media (min-width: 768px) { .fs-banner--auto { aspect-ratio: 1974 / 797; min-height: 0; } }
@media (max-width: 767px) { .fs-banner--auto-m { aspect-ratio: 1974 / 797; min-height: 0; } }
.fs-banner-bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.fs-banner-grid {
    position: absolute; inset: 0;
    background-image: linear-gradient(rgba(99, 132, 255, .09) 1px, transparent 1px), linear-gradient(90deg, rgba(99, 132, 255, .09) 1px, transparent 1px);
    background-size: 38px 38px;
    mask-image: radial-gradient(ellipse 80% 90% at 70% 50%, #000 30%, transparent 80%);
    -webkit-mask-image: radial-gradient(ellipse 80% 90% at 70% 50%, #000 30%, transparent 80%);
}
.fs-orb { position: absolute; border-radius: 50%; filter: blur(60px); opacity: .7; }
.fs-orb-1 { width: 420px; height: 420px; right: 6%; top: -30%; background: rgba(139, 92, 246, .55); }
.fs-orb-2 { width: 360px; height: 360px; right: 26%; bottom: -40%; background: rgba(34, 211, 238, .35); }
.fs-orb-3 { width: 320px; height: 320px; left: -10%; top: -20%; background: rgba(37, 99, 235, .4); }
.fs-banner-beam { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: linear-gradient(90deg, transparent, #22d3ee, #a855f7, transparent); box-shadow: 0 0 18px #a855f7; }
/* Загруженная картинка баннера: во всю ширину, арт прижат вправо, текст читается за счёт scrim */
.fs-banner-photo { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
/* Картинка всегда вписывается в окно баннера ровно: широкую сжимает,
   узкую растягивает — без обрезки и без «ухода» за край. */
.fs-banner-photo img { display: block; width: 100%; height: 100%; object-fit: fill; object-position: center; user-select: none; transition: transform .5s ease; }
.fs-banner:hover .fs-banner-photo img { transform: scale(1.01); } /* group-hover:scale-[1.01] референса */
.fs-banner-scrim {
    position: absolute; inset: 0; z-index: 1; pointer-events: none;
    background: linear-gradient(90deg, rgba(7, 10, 26, .96) 0%, rgba(7, 10, 26, .85) 34%, rgba(7, 10, 26, .45) 60%, rgba(7, 10, 26, .08) 82%, transparent 100%);
}
@media (max-width: 767px) {
    .fs-banner-scrim { background: linear-gradient(180deg, rgba(7, 10, 26, .78) 0%, rgba(7, 10, 26, .55) 45%, rgba(7, 10, 26, .88) 100%); }
}
/* Режим «только кнопка»: лёгкое затемнение, чтобы кнопка читалась на любой картинке */
.fs-banner-scrim--soft { background: linear-gradient(90deg, rgba(7, 10, 26, .55) 0%, rgba(7, 10, 26, .15) 60%, transparent 100%); }
@media (max-width: 767px) {
    .fs-banner-scrim--soft { background: rgba(7, 10, 26, .35); }
}

/* ---------- Слайдер баннера ---------- */
.fs-slides { position: absolute; inset: 0; z-index: 0; }
.fs-slide { position: absolute; inset: 0; display: flex; align-items: center; opacity: 0; transition: opacity .7s ease; pointer-events: none; }
.fs-slide.is-active { opacity: 1; z-index: 1; pointer-events: auto; }
/* Слайд весь кликабелен, когда текст выключен (картинка со вшитым текстом) */
.fs-slide-link { position: absolute; inset: 0; z-index: 4; }
@media (min-width: 640px) { .fs-slide-link--m { display: none; } } /* только там, где CTA скрыт */
/* Раскладка внутри слайда без картинки: текст слева (58%), орбит-арт справа */
.fs-slide .fs-banner-content { flex: 1 1 58%; min-width: 0; }
.fs-slide .fs-banner-art { flex: 1 1 42%; min-width: 0; }
@media (max-width: 1100px) {
    .fs-slide .fs-banner-content { flex: 1 1 100%; }
}
/* Стрелки: видны при наведении на баннер */
.fs-slide-arrow {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 6;
    width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
    color: #fff; font-size: 16px; cursor: pointer;
    background: rgba(0, 0, 0, .4); border: 1px solid rgba(255, 255, 255, .15); backdrop-filter: blur(8px);
    opacity: 0; transition: opacity .25s ease, background .2s ease, border-color .2s ease;
}
.fs-banner--slider:hover .fs-slide-arrow, .fs-slide-arrow:focus-visible { opacity: 1; }
.fs-slide-arrow:hover { background: rgba(0, 0, 0, .6); border-color: rgba(168, 85, 247, .7); }
.fs-slide-prev { left: 12px; }
.fs-slide-next { right: 12px; }
/* Точки с прогрессом автолистания (как на референсе: 8px, активная вытягивается в полоску) */
.fs-slide-dots { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); z-index: 6; display: flex; gap: 8px; }
.fs-dot { position: relative; width: 8px; height: 8px; border-radius: 999px; border: 0; padding: 0; cursor: pointer; background: rgba(255, 255, 255, .4); overflow: hidden; transition: width .3s ease, background .2s ease; }
.fs-dot:hover { background: rgba(255, 255, 255, .7); }
.fs-dot.is-active { width: 36px; background: rgba(255, 255, 255, .25); }
.fs-dot > span {
    position: absolute; inset: 0 auto 0 0; width: 0; border-radius: 999px;
    background: linear-gradient(90deg, #a855f7, #3b82f6); box-shadow: 0 0 10px #a855f7;
}
.fs-dot.is-active > span { animation: fs-dot-fill var(--dot-ms, 5000ms) linear forwards; }
@keyframes fs-dot-fill { from { width: 0; } to { width: 100%; } }
@media (max-width: 767px) {
    .fs-slide-arrow { display: none; } /* на мобильном стрелок нет — как на референсе */
    .fs-slide-prev { left: 8px; } .fs-slide-next { right: 8px; }
}

.fs-banner-content { position: relative; z-index: 2; padding: 40px 0 40px 44px; }
/* Режим «только кнопка»: CTA в левом нижнем углу слайда — как на референсе */
.fs-slide .fs-banner-content--cta, .fs-banner > .fs-banner-content--cta { position: absolute; left: 5%; bottom: 20%; padding: 0; z-index: 5; }
@media (max-width: 639px) { .fs-banner-content--cta { display: none; } } /* на мобильном CTA скрыт — как на референсе */
.fs-banner-logo { display: block; height: 70px; width: auto; margin-bottom: 14px; filter: drop-shadow(0 0 16px rgba(168, 85, 247, .6)); }
.fs-banner-brand {
    font-family: var(--fs-display); font-style: italic; font-size: 26px; line-height: 1; color: #fff;
    margin-bottom: 16px; letter-spacing: .02em; text-shadow: 0 0 22px rgba(168, 85, 247, .5);
}
.fs-banner-brand span { color: #a855f7; text-shadow: 0 0 18px rgba(168, 85, 247, .9); }
.fs-banner-title {
    margin: 0; font-family: var(--fs-display); font-weight: 400; text-transform: uppercase;
    font-size: clamp(30px, 3.3vw, 50px); line-height: .98; letter-spacing: .01em; color: #fff;
    text-shadow: 0 0 30px rgba(99, 102, 241, .45);
    transform: rotate(-3.5deg); transform-origin: left center; display: inline-block;
}
.fs-banner-title span { display: block; }
.fs-banner-title .fs-line2 { font-size: .6em; margin-top: .18em; }
.fs-grad {
    background: linear-gradient(90deg, #ff6fd8 0%, #b45cff 38%, #6f8dff 68%, #30e0ff 100%);
    -webkit-background-clip: text; background-clip: text; color: transparent; text-shadow: none;
    filter: drop-shadow(0 0 20px rgba(139, 92, 246, .6));
}
.fs-banner-sub { margin: 18px 0 0; font-size: clamp(12px, 1vw, 15px); font-style: italic; font-weight: 800; letter-spacing: .03em; color: #e4e9ff; transform: rotate(-3.5deg); transform-origin: left center; }
.fs-sub-dot { color: #a85cf5; }
.fs-sub-accent { color: #7cc8ff; }
.fs-banner-chips { list-style: none; margin: 22px 0 26px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.fs-banner-chips li {
    display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 11px; font-size: 13px; font-weight: 600; color: #e0e7ff;
    background: rgba(15, 23, 64, .65); border: 1px solid rgba(96, 165, 250, .3); backdrop-filter: blur(6px);
}
.fs-banner-chips i { color: #22d3ee; text-shadow: 0 0 10px rgba(34, 211, 238, .9); }

.fs-banner-art { position: relative; z-index: 1; height: 100%; min-height: 360px; display: flex; align-items: center; justify-content: center; padding-right: 64px; }
.fs-banner-illustration { max-width: 100%; max-height: 420px; object-fit: contain; filter: drop-shadow(0 0 40px rgba(139, 92, 246, .5)); }
.fs-orbit { position: relative; width: min(390px, 100%); aspect-ratio: 1; }
.fs-ring { position: absolute; inset: 0; border-radius: 50%; border: 1px dashed rgba(129, 140, 248, .4); }
.fs-ring-2 { inset: 16%; border: 1px solid rgba(34, 211, 238, .28); box-shadow: 0 0 40px -10px rgba(34, 211, 238, .55) inset; }
.fs-ring-1 { animation: fs-spin 60s linear infinite; }
.fs-art-core {
    position: absolute; inset: 27%; border-radius: 28%; display: flex; align-items: center; justify-content: center;
    background: radial-gradient(circle at 30% 25%, rgba(168, 85, 247, .5), rgba(30, 27, 75, .9) 70%);
    border: 1px solid rgba(196, 181, 253, .55); box-shadow: 0 0 60px -6px rgba(139, 92, 246, .9), 0 0 0 10px rgba(99, 102, 241, .08);
}
.fs-art-core img { width: 82%; height: auto; filter: drop-shadow(0 0 18px rgba(168, 85, 247, .7)); }
.fs-art-core i { font-size: 64px; color: #fff; }
.fs-float {
    position: absolute; width: 58px; height: 58px; border-radius: 16px; display: flex; align-items: center; justify-content: center; font-size: 22px; color: #fff;
    background: linear-gradient(145deg, rgba(30, 41, 99, .95), rgba(15, 18, 50, .95)); border: 1px solid rgba(129, 140, 248, .55);
    animation: fs-float 6s ease-in-out infinite;
}
.fs-float-1 { left: 2%;  top: 16%; color: #a5b4fc; box-shadow: 0 0 26px -6px rgba(129, 140, 248, .9); }
.fs-float-2 { right: 4%; top: 6%;  color: #fcd34d; box-shadow: 0 0 26px -6px rgba(252, 211, 77, .8); animation-delay: -1s; }
.fs-float-3 { right: -2%; top: 46%; color: #67e8f9; box-shadow: 0 0 26px -6px rgba(34, 211, 238, .9); animation-delay: -2s; }
.fs-float-4 { right: 16%; bottom: 2%; color: #fb7185; box-shadow: 0 0 26px -6px rgba(244, 63, 94, .8); animation-delay: -3s; }
.fs-float-5 { left: 10%; bottom: 8%; color: #4ade80; box-shadow: 0 0 26px -6px rgba(74, 222, 128, .8); animation-delay: -4s; }
.fs-float-6 { left: -4%; top: 52%; color: #c084fc; box-shadow: 0 0 26px -6px rgba(192, 132, 252, .9); animation-delay: -5s; }
.fs-banner-side-text {
    position: absolute; right: 34px; top: 32px; z-index: 1; max-width: 150px; text-align: left;
    transform: rotate(-8deg);
    font-family: var(--fs-display); font-size: 20px; line-height: 1.2; letter-spacing: .04em; text-transform: uppercase;
    color: #b78cff; text-shadow: 0 0 22px rgba(168, 85, 247, .75); user-select: none;
}
@keyframes fs-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes fs-spin { to { transform: rotate(360deg); } }

/* ---------- РџРѕР»РѕСЃР° РїСЂРµРёРјСѓС‰РµСЃС‚РІ (РЅР°РїР»С‹РІР°РµС‚ РЅР° Р±Р°РЅРЅРµСЂ, С‚РµРі В«РџРѕС‡РµРјСѓ РјС‹?В» РїРѕРґ РјРµРЅСЋ) ---------- */
/* Как на референсе: полоса преимуществ — блок под hero, видна только на мобильных */
.fs-why { display: none; }
@media (max-width: 767px) { .fs-why { display: block; margin-top: 20px; } }
/* Преимущества — как WhyUs референса: панель, 1 колонка (sm: 2), иконка-орб 48px.
   --fs-fh: мин. высота, --fs-fi: размер орба — настраиваются в админке (Контент → Преимущества) */
.fs-features {
    position: relative; display: grid; grid-template-columns: 1fr; min-height: var(--fs-fh, 0); overflow: hidden;
    border-radius: 16px; border: 1px solid hsl(218 96% 60% / .22);
    background: hsl(228 75% 7% / .8); backdrop-filter: blur(4px);
    box-shadow: inset 0 1px 0 hsl(0 0% 100% / .04), 0 0 0 1px hsl(268 90% 64% / .06), 0 10px 40px -12px hsl(218 96% 60% / .25);
    font-family: 'Inter', sans-serif;
}
@media (min-width: 640px) { .fs-features { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.fs-feature { display: flex; align-items: flex-start; gap: 12px; padding: 20px; min-width: 0; animation: fs-rise .7s ease both; }
.fs-feature:nth-child(2) { animation-delay: 90ms; } .fs-feature:nth-child(3) { animation-delay: 180ms; }
.fs-feature:nth-child(4) { animation-delay: 270ms; } .fs-feature:nth-child(5) { animation-delay: 360ms; }
@keyframes fs-rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .fs-feature { animation: none; } }
.fs-feature-icon {
    display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
    width: max(48px, var(--fs-fi, 48px)); height: max(48px, var(--fs-fi, 48px)); border-radius: 50%; font-size: 22px;
    color: hsl(218 96% 60%);
    background: radial-gradient(circle at 35% 30%, hsl(218 96% 60% / .35), hsl(228 60% 13%) 70%);
    box-shadow: 0 0 18px hsl(218 96% 60% / .35), inset 0 0 0 1px hsl(218 96% 60% / .35);
    transition: transform .15s ease;
}
.fs-feature:hover .fs-feature-icon { transform: scale(1.1); }
.fs-feature-text { display: block; min-width: 0; }
.fs-feature-text b { display: block; font-size: 14px; font-weight: 700; color: #eeeaf8; line-height: 20px; }
.fs-feature-text small { display: block; margin-top: 4px; font-size: 12px; color: hsl(254 15% 64%); line-height: 1.375; }

/* ---------- РЎРµРєС†РёРё ---------- */
.fs-section { margin-top: 32px; }
.fs-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 20px; }
/* Заголовок с медиа (огонёк слева от «тайтл + подзаголовок») — как на референсе */
.fs-section-media { display: flex; align-items: center; gap: 12px; }
.fs-section-title { margin: 0; font-family: var(--fs-display); font-weight: 400; font-size: clamp(22px, 2.4vw, 28px); color: #fff; letter-spacing: .01em; }
/* Пламя-картинка из референса рядом с заголовком секции */
.fs-fire-img { height: 56px; width: auto; flex-shrink: 0; align-self: flex-end; }
.fs-fire { margin-right: 10px; font-size: .85em; color: #fb923c; text-shadow: 0 0 18px rgba(249, 115, 22, .9), 0 0 34px rgba(239, 68, 68, .6); }
.fs-section-sub { margin: 4px 0 0; color: #93a4d8; font-size: 14px; }
.fs-section-head .fs-btn-ghost { padding: 10px 16px; border-radius: 12px; font-size: 14px; color: #6ea8ff; border-color: rgba(59, 130, 246, .3); background: rgba(30, 41, 99, .5); }
.fs-section-head .fs-btn-ghost:hover { border-color: rgba(59, 130, 246, .9); box-shadow: 0 0 16px rgba(59, 130, 246, .4); color: #9cc2ff; }
.fs-admin-note { margin-top: 14px; font-size: 13px; color: #8ea0d6; padding: 10px 14px; border-radius: 12px; border: 1px dashed var(--fs-line-2); }
.fs-admin-note a { color: #c4b5fd; text-decoration: underline; }

/* ---------- РџР»РёС‚РєРё В«РџРѕРїСѓР»СЏСЂРЅС‹Рµ С‚РѕРІР°СЂС‹В» ---------- */
/* Плитки — сетка как на референсе: 2 колонки, 3 на sm, 4 на md, 8 на xl */
.fs-tiles {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px;
    padding: 8px 2px 4px; margin: -4px -2px 0; overflow: visible;
}
@media (min-width: 640px)  { .fs-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 768px)  { .fs-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1280px) { .fs-tiles { grid-template-columns: repeat(8, minmax(0, 1fr)); } }
.fs-tiles .fs-tile { width: auto; flex: none; }
.fs-tiles::-webkit-scrollbar { height: 6px; }
.fs-tiles::-webkit-scrollbar-track { background: rgba(255, 255, 255, .05); border-radius: 999px; }
.fs-tiles::-webkit-scrollbar-thumb { background: linear-gradient(90deg, #8b5cf6, #3b82f6); border-radius: 999px; }
.fs-tiles::-webkit-scrollbar-thumb:hover { background: linear-gradient(90deg, #a78bfa, #60a5fa); }
.fs-tiles-wrap { position: relative; }
.fs-tiles { user-select: none; }
.fs-tiles.is-drag { scroll-snap-type: none; cursor: grabbing; }
.fs-tiles-nav {
    position: absolute; z-index: 5; top: calc(50% - 9px); transform: translateY(-50%);
    width: 40px; height: 40px; border-radius: 50%; cursor: pointer; font-size: 14px;
    display: flex; align-items: center; justify-content: center; color: #d8ccff;
    background: rgba(32, 26, 74, .88); border: 1px solid var(--fs-line-2); backdrop-filter: blur(6px);
    box-shadow: 0 6px 18px rgba(0, 0, 0, .45), 0 0 16px -6px rgba(139, 92, 246, .9);
    transition: opacity .2s ease, transform .15s ease, border-color .2s ease;
}
.fs-tiles-nav:hover { border-color: rgba(139, 92, 246, .9); color: #fff; box-shadow: 0 6px 18px rgba(0, 0, 0, .45), 0 0 22px -4px rgba(139, 92, 246, 1); }
.fs-tiles-nav:active { transform: translateY(-50%) scale(.94); }
.fs-tiles-nav.is-prev { left: -6px; }
.fs-tiles-nav.is-next { right: -6px; }
.fs-tiles-nav[hidden], .fs-tiles-wrap.no-scroll .fs-tiles-nav { display: none; }
@media (max-width: 767px) {
    .fs-tiles-nav { width: 36px; height: 36px; font-size: 12px; }
}
.fs-tile {
    --acc: 139, 92, 246; --acc2: 59, 130, 246;
    position: relative; display: block; overflow: hidden; border-radius: 18px; color: #fff;
    flex: 0 0 auto; width: 160px; scroll-snap-align: start;
    container-type: inline-size;
    aspect-ratio: 1 / 1;
    background: linear-gradient(160deg, rgba(34, 29, 72, .9), rgba(21, 19, 46, .95));
    border: 1px solid rgba(var(--acc), .45);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), 0 16px 36px -22px rgba(var(--acc), .9);
    transition: transform .2s ease, box-shadow .25s ease, border-color .2s ease;
}
.fs-tile:hover, .fs-tile:focus-visible {
    transform: translateY(-4px); border-color: rgba(var(--acc), .95);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 22px 46px -18px rgba(var(--acc), 1), 0 0 30px -8px rgba(var(--acc), .8);
}
.fs-acc-blue   { --acc: 59, 130, 246;  --acc2: 34, 211, 238; }
.fs-acc-violet { --acc: 139, 92, 246;  --acc2: 236, 72, 153; }
.fs-acc-cyan   { --acc: 34, 211, 238;  --acc2: 59, 130, 246; }
.fs-acc-red    { --acc: 239, 68, 68;   --acc2: 244, 114, 182; }
.fs-acc-green  { --acc: 34, 197, 94;   --acc2: 34, 211, 238; }
.fs-acc-orange { --acc: 249, 115, 22;  --acc2: 239, 68, 68; }
.fs-acc-pink   { --acc: 236, 72, 153;  --acc2: 168, 85, 247; }
.fs-acc-amber  { --acc: 245, 158, 11;  --acc2: 249, 115, 22; }
.fs-tile-media {
    position: absolute; inset: 0;
    background:
        radial-gradient(circle at 50% 36%, rgb(var(--acc)) 0%, rgba(var(--acc), .34) 46%, rgba(10, 8, 26, .96) 77%);
}
.fs-tile--img .fs-tile-media { padding: 0; background: none; }
.fs-tile-media img { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.fs-tile:hover .fs-tile-media img { transform: scale(1.05); }
.fs-tile-name {
    position: absolute; z-index: 1; top: 14px; left: 6px; right: 6px; max-height: 50%; text-align: center;
    font-family: var(--fs-display); font-size: clamp(15px, 1.3vw, 19px); line-height: 1.2; letter-spacing: .03em;
    color: #fff; text-shadow: 0 2px 18px rgba(0, 0, 0, .55), 0 0 14px rgba(var(--acc), .9);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.fs-tile-media:has(.fs-tile-flag) .fs-tile-name { top: 34px; }
.fs-tile-flag { position: absolute; z-index: 3; top: 8px; left: 8px; font-size: 9.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: 3px 7px; border-radius: 999px; background: rgba(0,0,0,.55); border: 1px solid rgba(255,255,255,.25); color: #e2e8f0; }
.fs-tile-body {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
    display: flex; flex-direction: column; gap: 7px; padding: 30px 10px 10px;
    background: linear-gradient(180deg, transparent 0%, rgba(7, 5, 18, .8) 36%, rgba(7, 5, 18, .96) 100%);
}
.fs-tile-top { display: none; align-items: center; justify-content: space-between; gap: 6px; min-width: 0; }
@container (min-width: 162px) {
    .fs-tile-top { display: flex; }
}
@container (max-width: 161px) {
    .fs-tile-name { font-size: 13px; letter-spacing: .01em; }
    .fs-tile-body { padding-top: 24px; }
    .fs-tile-price { padding: 4px 9px; font-size: 12px; }
    .fs-tile-price b { font-size: 13px; }
    .fs-tile-go { width: 28px; height: 28px; font-size: 11px; }
}
@container (max-width: 132px) {
    .fs-tile-price { padding: 4px 7px; font-size: 11px; }
    .fs-tile-price b { font-size: 12px; }
    .fs-tile-go { width: 26px; height: 26px; font-size: 10px; }
}
.fs-tile-type { font-size: 11.5px; color: #9db0e6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fs-tile-tag { flex: none; font-size: 10.5px; font-weight: 700; padding: 3px 8px; border-radius: 999px; background: rgba(168, 85, 247, .32); color: #d8ccff; max-width: 55%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fs-tile-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.fs-tile-price {
    display: inline-flex; align-items: baseline; justify-content: center; flex: 1 1 auto; min-width: 0; overflow: hidden;
    gap: 4px; padding: 5px 11px; border-radius: 999px; font-size: 13px; font-weight: 700; color: #fff; white-space: nowrap;
    background: rgba(52, 44, 106, .85); border: 1px solid var(--fs-line-2); backdrop-filter: blur(4px);
}
.fs-tile-price b { font-size: 14px; font-weight: 800; }
.fs-tile-soon { flex: 1 1 auto; min-width: 0; font-size: 12px; font-weight: 700; color: #9db0e6; white-space: nowrap; overflow: hidden; }
.fs-tile-go {
    display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; font-size: 13px; color: #67e8f9; flex: none;
    background: rgba(52, 44, 106, .85); border: 1px solid var(--fs-line-2); box-shadow: 0 0 14px -6px rgba(80, 130, 255, .7);
    transition: transform .15s ease;
}
.fs-tile:hover .fs-tile-go { transform: translateX(3px); }

/* ---------- РљР°СЂС‚РѕС‡РєРё С‚РѕРІР°СЂРѕРІ Nova РІ РїР°Р»РёС‚СЂРµ FastSel ---------- */
body.t-fastsel .nv-card { border-color: var(--fs-line) !important; background: linear-gradient(180deg, rgba(16, 22, 56, .85), rgba(9, 12, 32, .95)); }
body.t-fastsel .nv-card:hover { border-color: rgba(139, 92, 246, .8) !important; box-shadow: 0 0 0 1px rgba(139,92,246,.3), 0 18px 40px -16px rgba(139, 92, 246, .8) !important; }
body.t-fastsel .nv-badge-acc { background: linear-gradient(135deg, #22d3ee, #3b82f6) !important; color: #fff !important; }
body.t-fastsel .nv-card-buy { background: linear-gradient(135deg, #8b5cf6, #3b82f6) !important; color: #fff !important; }

/* Сетка товаров на главной — колонки как на референсе: 2 / 3 / 4 / 8, gap 12 */
.fs-section .nv-grid { gap: 12px; }
@media (min-width: 640px)  { body.t-fastsel .fs-section .nv-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 768px)  { body.t-fastsel .fs-section .nv-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1280px) { body.t-fastsel .fs-section .nv-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 12px; } }
/* Карточка как на референсе: превью 16:10, цена-пилюля, круглая кнопка-шеврон внизу справа */
body.t-fastsel .fs-section .nv-card-media { aspect-ratio: 16 / 10; }
body.t-fastsel .fs-section .nv-card-body { position: relative; }
body.t-fastsel .fs-section .nv-card-foot { padding-right: 52px; }
body.t-fastsel .fs-section .nv-card-price b {
    display: inline-flex; align-items: center; padding: 9px 16px; border-radius: 999px;
    border: 1px solid rgba(139, 92, 246, .6); background: rgba(30, 27, 70, .6);
    font-size: 15px; box-shadow: inset 0 0 10px rgba(139, 92, 246, .2);
}
body.t-fastsel .fs-section .nv-card-price s { font-size: 11px; }
body.t-fastsel .fs-section .nv-card-buy {
    position: absolute; right: 12px; bottom: 12px; margin-top: 0;
    width: 40px; height: 40px; padding: 0; border-radius: 50%; font-size: 0;
    background: rgba(30, 27, 70, .6) !important; border: 1px solid rgba(139, 92, 246, .4); color: #3b8cff !important;
    box-shadow: none;
}
body.t-fastsel .fs-section .nv-card-buy i { font-size: 16px; }
body.t-fastsel .fs-section .nv-card:hover .nv-card-buy { transform: none; border-color: rgba(139, 92, 246, .8); color: #fff !important; }

/* ---------- Р¤Р»РµС€-СЃРѕРѕР±С‰РµРЅРёСЏ Рё С‚РѕСЃС‚С‹ ---------- */
.fs-flashes { margin-top: 16px; display: grid; gap: 8px; }
.fs-flash { display: flex; align-items: flex-start; gap: 10px; padding: 12px 16px; border-radius: 12px; font-size: 14px; border: 1px solid; }
.fs-flash.is-success { color: #a7f3d0; background: rgba(16, 185, 129, .1); border-color: rgba(16, 185, 129, .35); }
.fs-flash.is-error   { color: #fecdd3; background: rgba(244, 63, 94, .1); border-color: rgba(244, 63, 94, .35); }
.fs-flash.is-info    { color: #bae6fd; background: rgba(14, 165, 233, .1); border-color: rgba(14, 165, 233, .35); }
.fs-flash i { margin-top: 2px; }
.fs-toast {
    position: fixed; left: 50%; bottom: 84px; z-index: 90; transform: translate(-50%, 20px); opacity: 0;
    padding: 12px 18px; border-radius: 12px; font-size: 14px; font-weight: 700; color: #fff; pointer-events: none;
    background: rgb(15, 20, 50); border: 1px solid var(--fs-line-2); box-shadow: 0 16px 40px -12px rgba(0,0,0,.8); transition: all .25s ease;
}
.fs-toast.is-success { border-color: rgba(34, 211, 238, .6); box-shadow: 0 0 24px -6px rgba(34, 211, 238, .7); }
.fs-toast.is-error { border-color: rgba(244, 63, 94, .6); }
.fs-toast.is-shown { opacity: 1; transform: translate(-50%, 0); }
@media (min-width: 768px) { .fs-toast { bottom: 28px; } }

/* ---------- Р¤СѓС‚РµСЂ ---------- */
.fs-footer { margin-top: 40px; border-top: 1px solid var(--fs-line); background: rgba(5, 7, 20, .9); box-shadow: 0 -1px 0 rgba(59,130,246,.2); }
.fs-footer-grid { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: 28px; padding-top: 36px; padding-bottom: 28px; }
.fs-footer-brand p { margin-top: 14px; font-size: 13.5px; line-height: 1.6; color: #8ea0d6; max-width: 320px; }
.fs-footer-h { font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #c4b5fd; margin-bottom: 12px; }
.fs-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.fs-footer li { font-size: 14px; color: #93a4d8; display: flex; align-items: center; gap: 8px; min-width: 0; }
.fs-footer li a { color: #aab6e4; overflow: hidden; text-overflow: ellipsis; }
.fs-footer li a:hover { color: #fff; }
.fs-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; padding-top: 16px; padding-bottom: 20px; border-top: 1px solid var(--fs-line); font-size: 12.5px; color: #6f7fb3; }

/* ---------- Бейдж «Скачать приложение» в футере ---------- */
.fs-app-badges { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.fs-app-badge { display: inline-flex; align-items: center; gap: 10px; padding: 9px 14px; border-radius: 14px; border: 1px solid rgba(139, 92, 246, .35); background: rgba(139, 92, 246, .08); text-decoration: none; transition: border-color .18s ease, background .18s ease, transform .12s ease; }
.fs-app-badge:hover { border-color: rgba(139, 92, 246, .7); background: rgba(139, 92, 246, .16); transform: translateY(-1px); }
.fs-app-badge-ic { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 10px; font-size: 18px; color: #fff; background: linear-gradient(135deg, #34d399, #059669); box-shadow: 0 0 12px rgba(52, 211, 153, .45); flex-shrink: 0; }
.fs-app-badge-tx { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.fs-app-badge-sub { font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #8ea0d6; }
.fs-app-badge-name { font-size: 13.5px; font-weight: 800; color: #fff; }


/* ---------- РќРёР¶РЅСЏСЏ РјРѕР±РёР»СЊРЅР°СЏ РЅР°РІРёРіР°С†РёСЏ ---------- */
.fs-bottomnav {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; width: 100%;
    display: none;
    background: rgba(7, 10, 26, .96); border-top: 1px solid rgba(59, 130, 246, .3);
    box-shadow: 0 -8px 24px -12px rgba(74, 46, 201, .5); backdrop-filter: blur(14px);
    padding-bottom: env(safe-area-inset-bottom);
}
@media (max-width: 767px) {
    .fs-bottomnav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
.fs-bottomnav .fs-bn-item { position: relative; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 60px; padding: 8px 2px 6px; font-family: inherit; font-size: 11px; font-weight: 600; color: #8ea0d6; background: transparent; border: 0; cursor: pointer; transition: transform .12s ease; }
.fs-bottomnav .fs-bn-item span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fs-bottomnav .fs-bn-item:active { transform: scale(.95); }
.fs-bottomnav .fs-bn-ico { position: relative; color: hsl(225 70% 75%); }
.fs-bottomnav .is-active { color: #fff; }
.fs-bottomnav .is-active .fs-bn-ico { color: #fff; filter: drop-shadow(0 0 8px hsl(270 95% 70% / .9)); }
/* Неоновый ореол за активной иконкой — как в MobileNav референса */
.fs-bottomnav .is-active::before { content: ''; position: absolute; top: 4px; left: 50%; transform: translateX(-50%); width: 46px; height: 46px; border-radius: 50%; background: radial-gradient(circle, hsl(270 90% 65% / .45), transparent 70%); filter: blur(2px); }
.fs-bottomnav .fs-badge { top: 2px; right: calc(50% - 22px); }

/* ---------- Шиты нижнего меню (Sheet из MobileNav референса) ---------- */
.fs-sheet { position: fixed; inset: 0; z-index: 60; }
.fs-sheet-backdrop { position: absolute; inset: 0; background: rgba(5, 8, 22, .62); opacity: 0; transition: opacity .24s ease; }
.fs-sheet.is-open .fs-sheet-backdrop { opacity: 1; }
.fs-sheet-panel { position: absolute; left: 0; right: 0; background: rgba(10, 13, 34, .98); backdrop-filter: blur(18px); transition: transform .26s cubic-bezier(.2, .8, .3, 1); padding: 18px 16px; }
.fs-sheet--top .fs-sheet-panel { top: 0; transform: translateY(-102%); border-bottom: 1px solid rgba(124, 58, 237, .25); padding-bottom: 20px; }
.fs-sheet--bottom .fs-sheet-panel { bottom: 0; transform: translateY(102%); border-radius: 24px 24px 0 0; border-top: 1px solid rgba(124, 58, 237, .25); max-height: 80dvh; overflow-y: auto; padding-bottom: max(24px, env(safe-area-inset-bottom)); }
.fs-sheet.is-open .fs-sheet-panel { transform: translateY(0); }
.fs-sheet-head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.fs-sheet-head .fs-icon-btn { margin-left: auto; }
.fs-sheet-ic { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 12px; color: #fff; background: linear-gradient(135deg, #8b5cf6, #4f46e5); box-shadow: 0 0 14px rgba(139, 92, 246, .5); }
.fs-sheet-title { font-family: 'Unbounded', 'Manrope', sans-serif; font-weight: 700; font-size: 15px; color: #fff; }
.fs-sheet .fs-msearch { display: block; }
.fs-catsheet-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.fs-catsheet-item { display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: 12px; border: 1px solid rgba(124, 58, 237, .2); background: rgba(20, 25, 55, .6); font-size: 14px; font-weight: 600; color: #dfe4ff; transition: transform .12s ease; min-width: 0; }
.fs-catsheet-item:active { transform: scale(.98); }
.fs-catsheet-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fs-catsheet-all { grid-column: 1 / -1; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 12px; border-radius: 12px; background: rgba(124, 58, 237, .14); font-size: 14px; font-weight: 600; color: #c4b5fd; }
@media (min-width: 768px) { .fs-sheet { display: none; } }

/* ---------- Р’РЅСѓС‚СЂРµРЅРЅРёРµ СЃС‚СЂР°РЅРёС†С‹: РѕР±С‰РёРµ Р±Р»РѕРєРё FastSel ---------- */
/* Nova СЃС‚РёР»РёР·СѓРµС‚ Р»СЋР±РѕР№ <header> РєР°Рє СЃС‚РµРєР»СЏРЅРЅСѓСЋ С€Р°РїРєСѓ вЂ” РґР»СЏ Р·Р°РіРѕР»РѕРІРєРѕРІ СЃС‚СЂР°РЅРёС† СЃР±СЂР°СЃС‹РІР°РµРј */
body.t-fastsel header:not(.fs-header) { background: none !important; backdrop-filter: none; -webkit-backdrop-filter: none; border-bottom: 0; box-shadow: none; }
.fs-page-head { margin-bottom: 22px; }
.fs-page-title { margin: 0; font-family: 'Unbounded', 'Manrope', sans-serif; font-weight: 700; font-size: clamp(22px, 2.6vw, 32px); color: #fff; }
.fs-page-sub { margin-top: 8px; color: #93a4d8; }
.fs-breadcrumbs { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; color: #6f7fb3; margin-bottom: 10px; }
.fs-breadcrumbs a { color: #93a4d8; }
.fs-breadcrumbs a:hover { color: #fff; }
.fs-panel { border-radius: var(--fs-radius); border: 1px solid var(--fs-line-2); background: var(--fs-panel); padding: 20px; }
.fs-prose { color: #c7d2fe; line-height: 1.7; font-size: 15px; }
.fs-prose h2 { font-family: 'Unbounded', sans-serif; font-size: 19px; color: #fff; margin: 22px 0 10px; }
.fs-prose h3 { font-size: 16px; color: #fff; margin: 18px 0 8px; font-weight: 800; }
.fs-prose p { margin: 10px 0; }
.fs-prose ul, .fs-prose ol { margin: 10px 0; padding-left: 22px; }
.fs-prose ul { list-style: disc; } .fs-prose ol { list-style: decimal; }
.fs-prose li { margin: 4px 0; }
.fs-prose a { color: #a5b4fc; text-decoration: underline; }
.fs-faq details { border-radius: 14px; border: 1px solid var(--fs-line); background: rgba(13, 17, 42, .7); }
.fs-faq details + details { margin-top: 10px; }
.fs-faq summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; font-weight: 700; color: #fff; }
.fs-faq summary::-webkit-details-marker { display: none; }
.fs-faq summary i { color: #a5b4fc; transition: transform .2s ease; }
.fs-faq details[open] summary i { transform: rotate(45deg); }
.fs-faq details[open] { border-color: rgba(139, 92, 246, .6); box-shadow: 0 0 22px -10px rgba(139, 92, 246, .9); }
.fs-faq .fs-faq-a { padding: 0 18px 16px; color: #b8c3ea; line-height: 1.65; white-space: pre-line; }

/* РўР°Р±Р»РёС†Р° РєРѕСЂР·РёРЅС‹ / С„РѕСЂРј */
.fs-field { display: block; }
.fs-field > span { display: block; font-size: 13px; font-weight: 700; color: #c7d2fe; margin-bottom: 6px; }
body.t-fastsel .fs-input {
    width: 100%; padding: 11px 14px; border-radius: 12px; font-size: 14.5px; color: #eef2ff;
    background: rgba(15, 20, 52, .8); border: 1px solid var(--fs-line-2); outline: none; transition: border-color .15s ease, box-shadow .2s ease;
}
body.t-fastsel .fs-input:focus { border-color: rgba(139, 92, 246, .85); box-shadow: 0 0 0 3px rgba(139, 92, 246, .22); }
body.t-fastsel textarea.fs-input { min-height: 120px; resize: vertical; }

/* РќР°С‚РёРІРЅС‹Рµ <select>: РІС‹РїР°РґР°СЋС‰РёР№ СЃРїРёСЃРѕРє РћРЎ РїРѕ СѓРјРѕР»С‡Р°РЅРёСЋ Р±РµР»С‹Р№ вЂ” РІ С‚С‘РјРЅРѕР№
   С‚РµРјРµ РїРѕР»СѓС‡Р°РµС‚СЃСЏ В«Р±РµР»РѕРµ РЅР° Р±РµР»РѕРјВ». color-scheme С‚С‘РјРЅС‹Р№ + С‚С‘РјРЅС‹Рµ РѕРїС†РёРё. */
body.t-fastsel { color-scheme: dark; }
body.t-fastsel select { color-scheme: dark; }
body.t-fastsel select option,
body.t-fastsel select optgroup { background: #0f1637; color: #e8edff; }
body.t-fastsel select:focus { color-scheme: dark; }
.fs-hint { font-size: 12.5px; color: #8ea0d6; margin-top: 6px; }
.fs-status { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; padding: 4px 10px; border-radius: 999px; border: 1px solid; }
.fs-status.is-ok { color: #6ee7b7; border-color: rgba(16,185,129,.4); background: rgba(16,185,129,.1); }
.fs-status.is-wait { color: #fcd34d; border-color: rgba(245,158,11,.4); background: rgba(245,158,11,.1); }
.fs-status.is-bad { color: #fda4af; border-color: rgba(244,63,94,.4); background: rgba(244,63,94,.1); }
.fs-status.is-info { color: #a5b4fc; border-color: rgba(129,140,248,.4); background: rgba(129,140,248,.1); }

/* Р¤РѕРєСѓСЃ СЃ РєР»Р°РІРёР°С‚СѓСЂС‹ вЂ” Р·Р°РјРµС‚РЅС‹Р№ РЅРµРѕРЅ */
body.t-fastsel :focus-visible { outline: 2px solid #a78bfa; outline-offset: 2px; border-radius: 8px; }

/* ---------- РђРґР°РїС‚РёРІРЅРѕСЃС‚СЊ ---------- */
/* Логотип: h-11 до sm, 50px от sm (как на референсе); на очень узких — чуть меньше, чтобы влезли иконки */
@media (max-width: 639px) {
    .fs-logo img.fs-logo-img { height: 38px; }
    .fs-logo-cap { font-size: 7px; }
}
@media (max-width: 420px) {
    .fs-header-row { gap: 6px; }
    .fs-logo img.fs-logo-img { height: 32px; }
    .fs-logo-cap { font-size: 6px; }
    .fs-icon-btn { padding: 8px; }
}
@media (max-width: 1279px) {
    .fs-hide-lg { display: none !important; }
    /* Как на референсе: навигация только с xl, бургер — справа в конце ряда */
    .fs-nav { display: none; }
    .fs-burger { display: inline-flex; }
}
@media (max-width: 1100px) {
    .fs-banner { grid-template-columns: 1fr; min-height: var(--fs-bhm, 0); }
    .fs-banner-art { position: absolute; right: -60px; top: 50%; transform: translateY(-50%); width: 360px; opacity: .45; padding: 0; }
    .fs-hero-side { grid-row: auto; }
    .fs-why { grid-column: 1 / -1; }
    .fs-tile { width: 150px; }
    .fs-footer-grid { grid-template-columns: repeat(3, 1fr); }
    .fs-footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 1023px) {
    /* !important: перекрывает инлайн grid-template-columns с шириной баннера из админки */
    .fs-hero-grid { grid-template-columns: 1fr !important; }
    .fs-banner { width: 100%; } /* на мобильном окно баннера всегда во всю ширину */
    .fs-hero-side { display: none; }
    .fs-why { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
    .fs-search { display: none; }
    /* На мобильном избранное и профиль — в нижнем меню, как в MobileNav референса */
    .fs-fav-btn, .fs-user-btn, .fs-actions details.fs-dropdown { display: none !important; }
    /* Высота шапки h-16 (64px) и лого до 180px — как в Header/Logo референса;
       лого сжимается, кнопки справа (тема/корзина/меню) всегда на месте */
    .fs-header-row { height: 64px; gap: 8px; }
    .fs-logo { flex-shrink: 1; min-width: 0; }
    .fs-logo img.fs-logo-img { max-width: 180px; }
    .fs-actions { margin-left: auto; }
    .fs-main { padding-top: 14px; }
    .fs-banner { border-radius: 16px; }
    .fs-banner-content { padding: 26px 22px 28px; }
    .fs-banner-title { font-size: clamp(23px, 6.6vw, 32px); }
    .fs-banner-sub { letter-spacing: .06em; font-size: 11px; }
    .fs-banner-logo { height: 52px; }
    .fs-banner-art { width: 260px; right: -90px; opacity: .3; }
    .fs-banner-chips li { font-size: 12px; padding: 7px 10px; }
    .fs-btn-cta { width: 100%; padding: 13px 18px; }
    body.t-fastsel #cookie-consent { bottom: 84px; }
    .fs-banner-side-text { display: none; }
    .fs-tile { width: 148px; }
    .fs-tile-body { padding: 24px 9px 9px; }
    .fs-tile-name { font-size: 14px; }
    .fs-banner-brand { font-size: 21px; margin-bottom: 12px; }
    .fs-section { margin-top: 30px; }
    .fs-section-head { align-items: flex-start; flex-direction: column; }
    .fs-footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 380px) {
    .fs-tile { width: 138px; }
}
@media (prefers-reduced-motion: reduce) {
    .fs-float, .fs-ring-1 { animation: none; }
    .fs-tile, .fs-btn, .fs-guarantee { transition: none; }
}

/* ============================================================
   СВЕТЛАЯ ТЕМА — переключатель «солнце» в шапке (как на референсе).
   Класс .fs-light вешается на <html>; выбор хранится в localStorage.
   ============================================================ */
html.fs-light { color-scheme: light; }
html.fs-light body.t-fastsel {
    --th-bg:        240 244 252;
    --th-surface:   255 255 255;
    --th-surface-2: 240 243 252;
    --th-ink:       26 30 62;
    --th-ink-2:     78 86 128;
    --th-muted:     108 116 152;
    --th-line:      90 110 200;
    --th-bar:       255 255 255;
    --th-glow:      0 0 0 1px rgba(139,92,246,.35), 0 14px 34px -16px rgba(99,102,241,.35);
    --panel:   #ffffff;
    --panel2:  #f4f6fd;
    --border:  rgba(90, 110, 200, .22);
    --border2: rgba(90, 110, 200, .38);
    --muted:   rgb(var(--th-muted));
    --text:    rgb(var(--th-ink));
    --shadow-soft: 0 14px 34px -20px rgba(40 50 110 / .22);
    /* Статусные плашки nova.css — светлые значения (иначе тёмные --st-* остаются) */
    --st-ok-bg: #ecfdf5;  --st-ok-bg2: #d1fae5;  --st-ok-line: #a7f3d0;
    --st-ok-t1: #059669; --st-ok-t2: #047857;
    --st-err-bg: #fff1f2; --st-err-bg2: #ffe4e6; --st-err-line: #fecdd3;
    --st-err-t1: #e11d48; --st-err-t2: #be123c;
    --st-warn-bg: #fffbeb; --st-warn-bg2: #fef3c7; --st-warn-line: #fde68a;
    --st-warn-t1: #d97706; --st-warn-t2: #b45309;
    --st-info-bg: #f0f9ff; --st-info-bg2: #e0f2fe; --st-info-line: #bae6fd;
    --st-info-t1: #0284c7; --st-info-t2: #0369a1;
    background-color: #eef1f9;
    background-image:
        radial-gradient(1100px 500px at 60% 0%, rgba(139, 92, 246, .10), transparent 65%),
        radial-gradient(900px 600px at 50% 70%, rgba(59, 130, 246, .08), transparent 70%),
        linear-gradient(180deg, #f5f7fd 0%, #eef1f9 60%, #e9edf7 100%);
}
html.fs-light body.t-fastsel::before { opacity: 0; animation: none; } /* звёздное небо — только в тёмной */
html.fs-light body.t-fastsel::after { background: radial-gradient(90% 70% at 15% 35%, rgba(139,92,246,.05), transparent 75%), radial-gradient(90% 70% at 85% 70%, rgba(59,130,246,.05), transparent 75%); }
/* Захардкоженные тёмные утилиты nova.css — светлые версии (чат, полупрозрачные панели) */
html.fs-light body.t-fastsel .bg-slate-50\/50 { background-color: rgba(15, 23, 42, .045); }
html.fs-light body.t-fastsel .bg-slate-200 { background-color: rgb(228, 231, 237); }
html.fs-light body.t-fastsel .bg-slate-300 { background-color: rgb(206, 210, 219); }
html.fs-light body.t-fastsel .hover\:bg-slate-200:hover { background-color: rgb(228, 231, 237); }
html.fs-light body.t-fastsel .bg-white\/70 { background-color: rgba(255, 255, 255, .8); }
html.fs-light body.t-fastsel .bg-white\/90 { background-color: rgba(255, 255, 255, .92); }
html.fs-light .fs-shooting-stars { display: none; }

/* Шапка */
html.fs-light .fs-header { background: rgba(255, 255, 255, .9); }
/* Логотип: светлая версия как в референсе; кастомный — инвертируем */
html.fs-light .fs-logo img.fs-logo-img--dark { display: none; }
.fs-logo img.fs-logo-img--light { display: none; }
html.fs-light .fs-logo img.fs-logo-img--light { display: block; }
/* Кастомный логотип показывается как есть — без подложки */
html.fs-light .fs-logo-cap { color: rgba(40, 44, 80, .85); }
html.fs-light .fs-nav-link, html.fs-light body.t-fastsel header nav .fs-nav-link { color: #2b3052 !important; }
html.fs-light .fs-nav-pill { background: radial-gradient(120% 140% at 30% 50%, #ece7fe, #e8ecfb); }
html.fs-light .fs-nav-link.is-active .fs-nav-label { background-image: linear-gradient(to right, #7c3aed, #a855f7); }
html.fs-light body.t-fastsel .fs-search-input, html.fs-light body.t-fastsel .fs-msearch input {
    background: #fff !important; border-color: rgba(99, 102, 241, .35) !important; color: #1a1e3e !important;
}
html.fs-light body.t-fastsel .fs-search-input::placeholder, html.fs-light body.t-fastsel .fs-msearch input::placeholder { color: #8b93b8; }
html.fs-light .fs-icon-btn { color: #2b3052; }
html.fs-light .fs-icon-btn:hover { background: rgba(139, 92, 246, .1); }

/* Выпадающие меню / подсказки / ящик */
html.fs-light .fs-suggest, html.fs-light .fs-dropdown-menu, html.fs-light .fs-drawer-panel,
html.fs-light .fs-side--flyout .fs-subcats { background: #fff; border-color: rgba(99, 102, 241, .25); box-shadow: 0 18px 44px -14px rgba(30, 40, 90, .25); }
html.fs-light .fs-suggest a, html.fs-light .fs-dropdown-menu a, html.fs-light .fs-dropdown-menu button { color: #2b3052; }
html.fs-light .fs-dropdown-menu a i, html.fs-light .fs-dropdown-menu button i { color: #6d5bd0; }
html.fs-light .fs-dropdown-menu a:hover, html.fs-light .fs-dropdown-menu button:hover { background: rgba(139, 92, 246, .12); color: #1a1e3e; }
html.fs-light .fs-dropdown-head { color: #8b93b8; border-color: rgba(99, 102, 241, .2); }
html.fs-light .fs-drawer-backdrop { background: rgba(30, 35, 70, .4); }
html.fs-light .fs-drawer-title { color: #1a1e3e; }
html.fs-light .fs-drawer-nav a { color: #3c4370; border-color: rgba(99, 102, 241, .25); }
html.fs-light .fs-drawer-nav a.is-active { color: #7c3aed; }

/* Панель категорий */
html.fs-light .fs-side { background: #fff; border-color: rgba(99, 102, 241, .22); box-shadow: 0 10px 30px -18px rgba(30, 40, 90, .3); }
html.fs-light .fs-side-head { color: #1a1e3e; }
html.fs-light .fs-cat-icon { background: #eef0fa; }
html.fs-light .fs-cat-link { color: #2b3052; }
html.fs-light .fs-cat-link:hover, html.fs-light .fs-cat.is-active > .fs-cat-link, html.fs-light .fs-cat:hover > .fs-cat-link { background: rgba(139, 92, 246, .07); }
html.fs-light .fs-cat-arrow, html.fs-light .fs-cat-toggle { color: #8b93b8; }
html.fs-light .fs-cat-toggle:hover { color: #7c3aed; }
html.fs-light .fs-subcats a { color: #4c5480; }
html.fs-light .fs-subcats a:hover { color: #7c3aed; background: rgba(139, 92, 246, .08); }
html.fs-light .fs-subcats-head a { color: #7c3aed; }
html.fs-light .fs-guarantee { background: #eef1fd; border-color: rgba(99, 102, 241, .35); box-shadow: none; }
html.fs-light .fs-guarantee b { color: #1a1e3e; }
html.fs-light .fs-guarantee small { color: #6a739c; }

/* Преимущества (моб.) */
html.fs-light .fs-features { background: rgba(255, 255, 255, .9); border-color: rgba(99, 102, 241, .22); }
html.fs-light .fs-feature-text b { color: #1a1e3e; }
html.fs-light .fs-feature-text small { color: #6a739c; }

/* Заголовки секций / кнопки */
html.fs-light .fs-section-title { color: #1a1e3e; }
html.fs-light .fs-section-sub { color: #6a739c; }
html.fs-light .fs-section-head .fs-btn-ghost { color: #6d5bd0; border-color: rgba(124, 58, 237, .3); background: rgba(139, 92, 246, .08); }
html.fs-light .fs-section-head .fs-btn-ghost:hover { color: #5b21b6; border-color: rgba(124, 58, 237, .6); box-shadow: 0 0 14px rgba(139, 92, 246, .3); }
html.fs-light .fs-btn-ghost { color: #4c5480; border-color: rgba(99, 102, 241, .3); background: rgba(139, 92, 246, .06); }
html.fs-light .fs-btn-ghost:hover { color: #5b21b6; }
html.fs-light .fs-empty, html.fs-light .fs-banner-art, html.fs-light .fs-tile-type { color: #6a739c; }
html.fs-light .fs-slide-arrow { background: rgba(255, 255, 255, .65); color: #2b3052; }

/* Плитки «Популярные» — картиночные, остаются тёмными как карточки референса;
   светлой делаем только кнопку навигации ряда */
html.fs-light .fs-tiles-nav { background: #fff; color: #5b21b6; }

/* Карточки товаров (Nova) */
html.fs-light body.t-fastsel .nv-card { background: #fff !important; border-color: rgba(99, 102, 241, .2) !important; }
html.fs-light body.t-fastsel .nv-card:hover { border-color: rgba(139, 92, 246, .6) !important; box-shadow: 0 0 0 1px rgba(139,92,246,.2), 0 16px 34px -16px rgba(99, 102, 241, .45) !important; }

/* Футер, тост, нижняя панель */
html.fs-light .fs-footer { background: rgba(255, 255, 255, .92); border-top-color: rgba(99, 102, 241, .2); box-shadow: none; }
html.fs-light .fs-footer-brand p, html.fs-light .fs-footer li { color: #6a739c; }
html.fs-light .fs-footer li a { color: #4c5480; }
html.fs-light .fs-footer li a:hover { color: #1a1e3e; }
html.fs-light .fs-footer-h { color: #7c3aed; }
html.fs-light .fs-footer-bottom { color: #8b93b8; border-top-color: rgba(99, 102, 241, .18); }
html.fs-light .fs-app-badge { border-color: rgba(124, 58, 237, .3); background: rgba(124, 58, 237, .06); }
html.fs-light .fs-app-badge:hover { border-color: rgba(124, 58, 237, .55); background: rgba(124, 58, 237, .12); }
html.fs-light .fs-app-badge-sub { color: #8b93b8; }
html.fs-light .fs-app-badge-name { color: #1a1e3e; }
html.fs-light .fs-toast { background: #fff; color: #1a1e3e; box-shadow: 0 16px 40px -12px rgba(30, 40, 90, .35); }
html.fs-light .fs-bottomnav { background: rgba(255, 255, 255, .95); }
html.fs-light .fs-bottomnav .fs-bn-item { color: #6a739c; }
html.fs-light .fs-bottomnav .fs-bn-item .fs-bn-ico { color: #6a739c; }
html.fs-light .fs-bottomnav .is-active { color: #7c3aed; }
html.fs-light .fs-bottomnav .is-active .fs-bn-ico { color: #7c3aed; }
html.fs-light .fs-sheet-panel { background: rgba(255, 255, 255, .98); }
html.fs-light .fs-sheet-title { color: #1a1e3e; }
html.fs-light .fs-catsheet-item { background: rgba(139, 92, 246, .06); border-color: rgba(99, 102, 241, .2); color: #2b3052; }
html.fs-light .fs-catsheet-all { background: rgba(139, 92, 246, .1); color: #7c3aed; }
html.fs-light .fs-skip { background: #7c3aed; }

/* Типовые страницы (кабинет, тикеты, контент): панели, заголовки, формы */
html.fs-light .fs-page-title { color: #1a1e3e; }
html.fs-light .fs-page-sub { color: #6a739c; }
html.fs-light .fs-breadcrumbs { color: #8b93b8; }
html.fs-light .fs-breadcrumbs a { color: #4c5480; }
html.fs-light .fs-breadcrumbs a:hover { color: #7c3aed; }
html.fs-light .fs-panel { background: #fff; border-color: rgba(99, 102, 241, .22); box-shadow: 0 10px 30px -16px rgba(30, 40, 90, .2); }
html.fs-light .fs-panel .text-white,
html.fs-light .fs-panel .text-slate-100,
html.fs-light .fs-panel .text-slate-200 { color: #1a1e3e; }
html.fs-light .fs-panel .text-slate-300 { color: #4c5480; }
html.fs-light .fs-panel .text-slate-400,
html.fs-light .fs-panel .text-slate-500 { color: #6a739c; }
html.fs-light .fs-panel .border-slate-200 { border-color: rgba(99, 102, 241, .18); }
html.fs-light h1.text-white, html.fs-light h2.text-white, html.fs-light h3.text-white,
html.fs-light h4.text-white, html.fs-light b.text-white, html.fs-light strong.text-white { color: #1a1e3e; }
html.fs-light .fs-field > span { color: #4c5480; }
html.fs-light body.t-fastsel .fs-input { background: #fff; border-color: rgba(99, 102, 241, .35); color: #1a1e3e; }
html.fs-light body.t-fastsel .fs-input::placeholder { color: #8b93b8; }
html.fs-light .fs-hint { color: #6a739c; }
/* Обычные Tailwind-поля: nova.css красит их под тёмную тему — placeholder почти белый, фон прозрачный */
html.fs-light body.t-fastsel input::placeholder,
html.fs-light body.t-fastsel textarea::placeholder { color: #8b93b8; opacity: 1; }
html.fs-light body.t-fastsel input.rounded-xl,
html.fs-light body.t-fastsel select.rounded-xl,
html.fs-light body.t-fastsel textarea.rounded-xl,
html.fs-light body.t-fastsel input.rounded-lg,
html.fs-light body.t-fastsel select.rounded-lg,
html.fs-light body.t-fastsel textarea.rounded-lg { background-color: #fff; color: rgb(var(--th-ink)); }
html.fs-light body.t-fastsel input:focus,
html.fs-light body.t-fastsel select:focus,
html.fs-light body.t-fastsel textarea:focus { background-color: #fff; }
html.fs-light .fs-status.is-ok { color: #047857; border-color: rgba(16, 185, 129, .35); background: rgba(16, 185, 129, .1); }
html.fs-light .fs-status.is-wait { color: #b45309; border-color: rgba(245, 158, 11, .35); background: rgba(245, 158, 11, .1); }
html.fs-light .fs-status.is-bad { color: #be123c; border-color: rgba(244, 63, 94, .3); background: rgba(244, 63, 94, .08); }
html.fs-light .fs-status.is-info { color: #4f46e5; border-color: rgba(99, 102, 241, .35); background: rgba(99, 102, 241, .08); }
html.fs-light .fs-pill { background: #7c3aed; color: #fff; }
html.fs-light .fs-panel .hover\:text-indigo-300:hover { color: #7c3aed; }
/* select: в светлой теме нативный список тоже светлый */
html.fs-light body.t-fastsel, html.fs-light body.t-fastsel select { color-scheme: light; }
html.fs-light body.t-fastsel select option,
html.fs-light body.t-fastsel select optgroup { background: #fff; color: #1a1e3e; }

/* Флеш-уведомления — светлые варианты (тёмные цвета не читаются на белом) */
html.fs-light .fs-flash.is-success { color: #047857; background: rgba(16, 185, 129, .1); border-color: rgba(16, 185, 129, .35); }
html.fs-light .fs-flash.is-error   { color: #be123c; background: rgba(244, 63, 94, .08); border-color: rgba(244, 63, 94, .35); }
html.fs-light .fs-flash.is-info    { color: #0369a1; background: rgba(14, 165, 233, .08); border-color: rgba(14, 165, 233, .3); }

/* FAQ-аккордеон и проза (контакты, кастомные страницы) */
html.fs-light .fs-faq details { background: #fff; border-color: rgba(99, 102, 241, .22); }
html.fs-light .fs-faq summary { color: #1a1e3e; }
html.fs-light .fs-faq summary i { color: #7c3aed; }
html.fs-light .fs-faq .fs-faq-a { color: #4c5480; }
html.fs-light .fs-prose { color: #3c4370; }
html.fs-light .fs-prose h2, html.fs-light .fs-prose h3,
html.fs-light .fs-prose h4 { color: #1a1e3e; }

/* Чат поддержки и канал уведомлений: белые бордеры/фоны → светлые варианты */
html.fs-light .fs-panel .border-white\/10 { border-color: rgba(99, 102, 241, .16); }
html.fs-light .fs-panel .border-white\/5 { border-color: rgba(99, 102, 241, .1); }
html.fs-light .fs-panel .border-white\/15 { border-color: rgba(99, 102, 241, .28); }
html.fs-light .fs-panel .bg-white\/10 { background: #eef0ff; }
html.fs-light .fs-panel .bg-indigo-500\/15 { background: rgba(99, 102, 241, .08); }
html.fs-light .fs-panel .border-indigo-400\/30 { border-color: rgba(99, 102, 241, .28); }
html.fs-light .fs-panel .bg-sky-500\/10 { background: rgba(14, 165, 233, .07); }
html.fs-light .fs-panel .hover\:bg-white\/5:hover { background: rgba(99, 102, 241, .07); }
html.fs-light .fs-panel .text-slate-500 { color: #8b93b8; }
html.fs-light .fs-prose a { color: #6d28d9; }
html.fs-light .fs-prose b, html.fs-light .fs-prose strong { color: #1a1e3e; }

/* Красная ghost-кнопка и мелкие панели */
html.fs-light .fs-btn-danger { color: #be123c; border-color: rgba(244, 63, 94, .4); background: rgba(244, 63, 94, .07); }
html.fs-light .fs-btn-danger:hover { color: #9f1239; }
html.fs-light .fs-side-empty { color: #8b93b8; }
html.fs-light .fs-admin-note { color: #6a739c; }
html.fs-light .fs-admin-note a { color: #6d28d9; }

/* Баннер и плитки остаются тёмными в светлой теме — текст внутри них не ремапим */
html.fs-light .fs-banner .text-slate-300,
html.fs-light .fs-banner .text-slate-400 { color: #aab6e4; }
html.fs-light .fs-tile .fs-tile-type { color: #9db0e6; }

/* Кнопка-тоггл: солнце в тёмной, луна в светлой; поворот при наведении (как на референсе) */
.fs-ic-moon { display: none; }
html.fs-light .fs-ic-sun { display: none; }
html.fs-light .fs-ic-moon { display: inline; }
.fs-theme-toggle svg { transition: transform .3s ease; }
.fs-theme-toggle:hover svg { transform: rotate(45deg); }


/* Кастомные блоки главной (home_blocks) — стили под тему fastsel */
.fs-custom-block { margin-top: 2.5rem; }
.fs-custom-panel { border-radius: 1rem; border: 1px solid rgba(139,92,246,.22);
    background: linear-gradient(160deg, rgba(30,27,75,.72), rgba(15,23,42,.85));
    box-shadow: 0 0 0 1px rgba(139,92,246,.06), 0 10px 40px -12px rgba(99,102,241,.25);
    padding: 1.5rem; }
@media (min-width: 640px) { .fs-custom-panel { padding: 2rem; } }
.fs-custom-ic { display: flex; width: 2.75rem; height: 2.75rem; flex-shrink: 0; align-items: center;
    justify-content: center; border-radius: 1rem; color: #fff;
    background: linear-gradient(135deg, #8b5cf6, #4f46e5); box-shadow: 0 8px 20px -6px rgba(139,92,246,.6); }
.fs-custom-title { font-size: 1.25rem; font-weight: 800; color: #f1f5ff; }
@media (min-width: 640px) { .fs-custom-title { font-size: 1.5rem; } }
.fs-custom-sub { font-size: .875rem; color: #8b93b8; }
.fs-custom-text { margin-top: 1rem; font-size: .9375rem; line-height: 1.625; color: #c3c9e6; white-space: pre-line; }
.fs-custom-img { display: block; width: 100%; border-radius: 1rem; object-fit: cover;
    transition: transform .5s ease; }
.fs-custom-img:hover { transform: scale(1.01); }
html.fs-light .fs-custom-panel { background: #fff; border-color: rgba(99,102,241,.2); box-shadow: 0 10px 30px -14px rgba(30,40,90,.25); }
html.fs-light .fs-custom-title { color: #1a1e3e; }
html.fs-light .fs-custom-sub { color: #8b93b8; }
html.fs-light .fs-custom-text { color: #4c5480; }

/* ====================== Полки товаров (ProductShelf референса) ====================== */

/* Заголовок секции слева — градиентная плитка-иконка + тайтл/саб */
.fs-section-media { display: flex; gap: 14px; align-items: center; min-width: 0; }
.fs-section-ic {
    flex-shrink: 0; width: 44px; height: 44px; border-radius: 14px;
    display: grid; place-items: center;
    font-size: 19px; color: #fff;
    background: linear-gradient(160deg, #7c3aed, #6366f1);
    box-shadow: 0 10px 24px -10px rgba(124, 58, 237, .75);
}
.fs-section-media img { width: 44px; height: 44px; border-radius: 14px; box-shadow: 0 10px 24px -10px rgba(249, 115, 22, .6); }

/* Справа: стрелки + кнопка «Все» */
.fs-shelf-head { display: flex; gap: 8px; align-items: center; flex-shrink: 0; }
.fs-shelf-btn {
    width: 38px; height: 38px; border-radius: 11px;
    display: grid; place-items: center;
    border: 1px solid var(--border);
    background: var(--panel);
    color: var(--muted); font-size: 13px;
    cursor: pointer; transition: .15s;
}
.fs-shelf-btn:hover { color: var(--text); border-color: var(--border2); }

/* Горизонтальный ряд карточек со скроллом без скроллбара */
.fs-shelf {
    display: flex; gap: 16px;
    overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none;
    scroll-snap-type: x mandatory;
    padding-bottom: 6px; margin-bottom: -6px;
    cursor: grab;
}
.fs-shelf::-webkit-scrollbar { display: none; }
.fs-shelf.is-drag { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.fs-shelf.is-drag * { pointer-events: none; }
.fs-shelf > * { flex: 0 0 46%; scroll-snap-align: start; }
@media (min-width: 640px)  { .fs-shelf > * { flex-basis: 31%; } }
@media (min-width: 768px)  { .fs-shelf > * { flex-basis: 23%; } }
@media (min-width: 1280px) { .fs-shelf > * { flex-basis: 18.4%; } }
@media (max-width: 860px)  { .fs-shelf-btn { display: none; } }

/* ====================== Карточка FastSel (ProductTile референса) ====================== */

.fs-pcard {
    min-width: 0; position: relative;
    padding: 10px;
    border-radius: 18px;
    border: 1px solid var(--border);
    background: linear-gradient(168deg, rgb(var(--th-surface-2) / .94), rgb(var(--th-surface)) 72%);
    box-shadow: var(--shadow-soft);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.group:hover.fs-pcard {
    border-color: rgba(167, 139, 250, .45);
    box-shadow: 0 8px 28px -10px rgba(124, 92, 252, .35);
    transform: translateY(-2px);
}

/* Обложка: квадрат, рамка, hover-зум */
.fs-pcard-media {
    position: relative; overflow: hidden;
    border-radius: 16px;
    border: 1px solid var(--border);
    background: var(--panel2);
    box-shadow: var(--shadow-soft);
}
.fs-pcard-img { display: block; aspect-ratio: 1 / 1; }
.fs-pcard-img img {
    width: 100%; height: 100%; object-fit: fill; /* как ProductThumb референса */
    display: block;
    transition: transform .5s ease;
}
.group:hover .fs-pcard-img img { transform: scale(1.05); }
/* Заглушка без картинки — tint-градиент + иконка + имя, как ProductThumb */
.fs-pcard-noimg {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 6px; width: 100%; height: 100%; padding: 8px; text-align: center;
    color: #fff;
}
.fs-pcard-noimg svg { width: 34px; height: 34px; filter: drop-shadow(0 0 10px rgba(255,255,255,.6)); flex-shrink: 0; }
.fs-pcard-noimg b {
    font-family: 'Manrope', sans-serif; font-weight: 800; font-size: 14px; line-height: 1.25;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.group:hover .fs-pcard-noimg { transform: scale(1.05); }
.fs-pcard-noimg { transition: transform .5s ease; }

/* Нет в наличии — лента поверх обложки */
.fs-pcard-oos {
    position: absolute; top: 10px; left: 10px; z-index: 2;
    padding: 4px 10px; border-radius: 8px;
    background: rgba(6, 8, 18, .78);
    border: 1px solid var(--border);
    font-size: 11px; font-weight: 700; color: #cdd4f5;
    backdrop-filter: blur(6px);
}

/* Избранное — появляется на hover (на тачах — всегда) */
.fs-pcard-fav {
    position: absolute; top: 10px; right: 10px; z-index: 2;
    width: 32px; height: 32px; border-radius: 50%;
    display: grid; place-items: center;
    background: rgba(8, 10, 20, .72);
    border: 1px solid var(--border);
    color: #cdd4f5; font-size: 13px;
    cursor: pointer;
    opacity: 0; transform: translateY(-4px);
    transition: .18s;
}
.fs-pcard-fav:hover { color: #fb7185; border-color: rgba(251, 113, 133, .5); }
.fs-pcard-fav.is-fav { color: #fb7185; opacity: 1; transform: none; }
.group:hover .fs-pcard-fav { opacity: 1; transform: none; }
@media (hover: none) { .fs-pcard-fav { opacity: 1; transform: none; } }

/* Цена под обложкой — первая строка */
.fs-pcard-price {
    display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
    margin: 12px 0 4px;
}
.fs-pcard-price b { font-size: 1.25rem; font-weight: 800; letter-spacing: -.01em; }
.fs-pcard-price b.is-sale { color: #34d399; }
.fs-pcard-price s { font-size: 13.5px; color: var(--muted); }
.fs-pcard-disc {
    padding: 3px 9px; border-radius: 8px;
    font-size: 13px; font-weight: 800; line-height: 1.4;
}
.fs-pcard-disc--emerald { color: #34d399; background: rgba(52, 211, 153, .12); }
.fs-pcard-disc--rose    { color: #fb7185; background: rgba(251, 113, 133, .12); }
.fs-pcard-disc--sky     { color: #38bdf8; background: rgba(56, 189, 248, .12); }
.fs-pcard-disc--violet  { color: #a78bfa; background: rgba(167, 139, 250, .12); }

/* Название */
.fs-pcard-name {
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    color: var(--text); font-size: 14px; line-height: 1.4;
    text-decoration: none;
    transition: color .15s;
}
.fs-pcard-name:hover { color: #a78bfa; }

/* Рейтинг со звёздами */
.fs-pcard-rate { display: flex; align-items: center; gap: 7px; margin-top: 8px; }
.fs-stars { display: inline-flex; gap: 1px; }
.fs-star { position: relative; font-size: 11px; line-height: 1; color: rgba(148, 163, 199, .35); }
.fs-star-fill {
    position: absolute; inset: 0; overflow: hidden;
    color: #fbbf24; white-space: nowrap;
}
.fs-pcard-rate b { font-size: 13px; font-weight: 700; }
.fs-pcard-cnt { font-size: 12px; color: var(--muted); }

/* Магазин + продано */
.fs-pcard-shop {
    display: flex; align-items: center; gap: 6px;
    margin-top: 9px; font-size: 12px; color: var(--muted);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.fs-pcard-shop i { color: #38bdf8; font-size: 11px; }
.fs-pcard-shopname { overflow: hidden; text-overflow: ellipsis; }
.fs-pcard-sold { flex-shrink: 0; }

/* Карточка в светлой теме */
html.fs-light .fs-pcard { border-color: rgba(16, 24, 40, .1); }
html.fs-light .group:hover.fs-pcard { border-color: rgba(124, 58, 237, .35); box-shadow: 0 8px 28px -12px rgba(124, 58, 237, .25); }
html.fs-light .fs-pcard-media { background: #fff; border-color: rgba(16, 24, 40, .09); }
html.fs-light .fs-pcard-oos { background: rgba(255, 255, 255, .85); color: var(--muted); border-color: rgba(16, 24, 40, .14); }
html.fs-light .fs-pcard-fav { background: rgba(255, 255, 255, .9); color: var(--muted); border-color: rgba(16, 24, 40, .12); }
html.fs-light .fs-pcard-price b.is-sale { color: #059669; }
html.fs-light .fs-pcard-name:hover { color: #7c3aed; }
html.fs-light .fs-star { color: #cbd5e1; }
html.fs-light .fs-pcard-shop i { color: #0284c7; }
html.fs-light .fs-shelf-btn { background: #fff; }

/* ====================== Плитки категорий «Популярные» (PopularProducts референса) ====================== */
/* Горизонтальная лента со скроллом (не переносится на новую строку):
   тянется свайпом/драгом, края затухают, скроллбар скрыт.
   На мобильном — компактные мини-плитки. */
.fs-ptiles {
    display: flex; gap: 12px; overflow-x: auto; overscroll-behavior-x: contain;
    scroll-snap-type: x proximity; scrollbar-width: none; -ms-overflow-style: none;
    /* Внутренний отступ слева — первая плитка не заезжает под стрелку навигации.
       Справа то же самое делает ::after-спейсер (padding-right в скролл-контейнере Firefox игнорирует). */
    padding: 6px 2px 12px 18px; margin: 0 -2px; user-select: none;
    scroll-padding-left: 18px; scroll-padding-right: 18px;
    -webkit-mask-image: linear-gradient(to right, transparent, #000 20px, #000 calc(100% - 20px), transparent);
    mask-image: linear-gradient(to right, transparent, #000 20px, #000 calc(100% - 20px), transparent);
}
.fs-ptiles::after { content: ''; flex: 0 0 26px; }
/* Мобильные: стрелки прячутся/уменьшаются — большой отступ слева мёртвая зона, убираем */
@media (max-width: 767px) {
    .fs-ptiles {
        padding-left: 2px;
        scroll-padding-left: 12px; scroll-padding-right: 12px;
        -webkit-mask-image: linear-gradient(to right, transparent, #000 14px, #000 calc(100% - 14px), transparent);
        mask-image: linear-gradient(to right, transparent, #000 14px, #000 calc(100% - 14px), transparent);
    }
}
.fs-ptiles::-webkit-scrollbar { display: none; }
.fs-ptiles.is-drag { cursor: grabbing; scroll-snap-type: none; }
.fs-ptile { flex: 0 0 100px; scroll-snap-align: start; }
@media (min-width: 640px)  { .fs-ptile { flex-basis: 136px; } }
@media (min-width: 768px)  { .fs-ptile { flex-basis: 148px; } }
@media (min-width: 1280px) { .fs-ptile { flex-basis: 160px; } }

.fs-ptile {
    position: relative; display: flex; flex-direction: column;
    overflow: hidden; border-radius: 14px; text-decoration: none;
    border: 1px solid color-mix(in srgb, var(--ac, #6d5cff) 55%, transparent);
    background: var(--fs-panel);
    box-shadow: 0 0 14px -6px var(--ac, #6d5cff);
    transition: transform .3s ease, box-shadow .3s ease;
    animation: fs-ptile-in .7s ease both;
}
.fs-ptile:hover { transform: translateY(-4px); box-shadow: 0 0 22px -4px var(--ac, #6d5cff); }
@keyframes fs-ptile-in {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}
.fs-ptile-glow {
    pointer-events: none; position: absolute; inset: 0; border-radius: 14px;
    background: radial-gradient(120% 70% at 50% 100%, color-mix(in srgb, var(--ac, #6d5cff) 22%, transparent), transparent 70%);
}
.fs-ptile-media {
    position: relative; aspect-ratio: 1 / 1; overflow: hidden;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, color-mix(in srgb, var(--ac, #6d5cff) 33%, transparent), color-mix(in srgb, var(--ac, #6d5cff) 7%, transparent));
}
.fs-ptile-media img {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: fill; transition: transform .5s ease;
}
.fs-ptile:hover .fs-ptile-media img { transform: scale(1.04); }
.fs-ptile-icon { color: #fff; filter: drop-shadow(0 0 10px rgba(255,255,255,.6)); transition: transform .5s ease; }
.fs-ptile:hover .fs-ptile-icon { transform: scale(1.04); }
.fs-ptile-fade {
    pointer-events: none; position: absolute; left: 0; right: 0; bottom: 0; height: 8px;
    background: linear-gradient(to top, var(--fs-panel), transparent);
}
.fs-ptile-body { position: relative; display: flex; flex-direction: column; flex: 1; padding: 4px 12px 14px; gap: 6px; }
.fs-ptile-sub {
    font-size: 13px; font-weight: 600; line-height: 1.25;
    color: color-mix(in srgb, var(--ac, #6d5cff) 60%, #fff);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.fs-ptile-badge {
    align-self: flex-start; border-radius: 999px; padding: 2px 8px;
    font-size: 10px; font-weight: 700; text-transform: uppercase;
    border: 1px solid color-mix(in srgb, var(--ac, #6d5cff) 53%, transparent);
    color: color-mix(in srgb, var(--ac, #6d5cff) 60%, #fff);
}
.fs-ptile-price {
    margin-top: auto; display: block; border-radius: 999px; text-align: center;
    padding: 10px 12px; font-size: 15px; font-weight: 700; color: #eef1ff;
    background: hsl(226 75% 13%);
    border: 1px solid color-mix(in srgb, var(--ac, #6d5cff) 60%, transparent);
    box-shadow: inset 0 0 10px color-mix(in srgb, var(--ac, #6d5cff) 20%, transparent);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
/* В светлой теме внутренность плитки остаётся тёмной — как в dark:
   --fs-panel/--panel-2 не переопределяются, пастельный текст на тёмном читается */

/* Мини-плитки на мобильном: только картинка + короткое имя, без цены и бейджа.
   Блок стоит ПОСЛЕ базовых правил — при равной специфичности побеждает он. */
@media (max-width: 639px) {
    .fs-ptile { border-radius: 12px; }
    .fs-ptile-body { padding: 2px 8px 8px; }
    .fs-ptile-sub { font-size: 11px; -webkit-line-clamp: 1; }
    .fs-ptile-badge, .fs-ptile-price { display: none; }
}

/* ====================== Сетка «Все товары» (InfiniteProducts референса) ====================== */
.fs-allgrid {
    display: grid; grid-template-columns: repeat(2, 1fr);
    column-gap: 16px; row-gap: 28px;
}
@media (min-width: 640px)  { .fs-allgrid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .fs-allgrid { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1280px) { .fs-allgrid { grid-template-columns: repeat(5, 1fr); } }
.fs-all-done { margin-top: 32px; text-align: center; font-size: 14px; color: var(--muted); }
.fs-all-retry { margin-top: 24px; display: flex; justify-content: center; }
.fs-all-retry .fs-btn { display: inline-flex; align-items: center; gap: 8px; }

/* Варианты градиента иконки-плитки секции (iconClass ProductShelf референса) */
.fs-section-ic--sky  { background: linear-gradient(160deg, #38bdf8, #4f46e5); box-shadow: 0 10px 24px -10px rgba(56, 189, 248, .75); }
.fs-section-ic--rose { background: linear-gradient(160deg, #d946ef, #f43f5e); box-shadow: 0 10px 24px -10px rgba(217, 70, 239, .75); }
.fs-section-ic svg { width: 22px; height: 22px; }
/* Иконка «без квадрата» — голый глиф с цветом/свечением (home_blocks.icon_plain) */
.fs-section-icn { display: inline-flex; align-items: center; justify-content: center; width: 1.4em; height: 1.4em; flex-shrink: 0; line-height: 0; }
.fs-section-icn svg { width: 1em; height: 1em; }

/* Заголовок секции: прижать «Смотреть все» вправо когда нет тайтла (как в референсе) */
.fs-section-head--bare { justify-content: flex-end; }

/* Центрированный текстовый блок (align=center — CustomBlock референса) */
.fs-custom-panel--center { text-align: center; }
.fs-custom-head { display: flex; align-items: center; gap: 12px; }
.fs-custom-head--center { justify-content: center; }
.fs-custom-btn { margin-top: 16px; display: inline-flex; align-items: center; gap: 8px; }
