/* ============================================================
   GiGas — оболочка сайта 2026: шапка, мегаменю «Каталог», лента разделов, мобильная шапка, тапбар, подвал, cookies.
   Эталон: 12-Design/pages/home-prototype (gen_gigas_parts.py, gen_gigas_desktop_kit.py catalog_menu_panel, gen_gigas_mobile_avito.py «C»).
   Решение заказчика 07.10.2026 (task/home-integration, B): шапка и подвал переработаны на всём сайте.
   Префикс классов gs- (gigas shell). JS-хуки темы сохранены: [data-menu-open], [data-menu], .catalog-menu-wrapper,
   [data-modal-switch]/[data-modal], [data-scroll-container]/[data-scroll-right], .js-basket-block .js-count, body.scrolled, body.menu-opened.
   Подключается с $additional=true (после template_styles.css).
   ============================================================ */

@font-face { font-family: 'Nekst'; font-weight: 400; font-style: normal; font-display: swap; src: url('/local/templates/2025/fonts/nekst/Nekst-Regular-Web.woff2') format('woff2'), url('/local/templates/2025/fonts/nekst/Nekst-Regular-Web.woff') format('woff'); }
@font-face { font-family: 'Nekst'; font-weight: 500; font-style: normal; font-display: swap; src: url('/local/templates/2025/fonts/nekst/Nekst-Medium-Web.woff2') format('woff2'), url('/local/templates/2025/fonts/nekst/Nekst-Medium-Web.woff') format('woff'); }
@font-face { font-family: 'Nekst'; font-weight: 600 900; font-style: normal; font-display: swap; src: url('/local/templates/2025/fonts/nekst/Nekst-SemiBold-Web.woff2') format('woff2'), url('/local/templates/2025/fonts/nekst/Nekst-SemiBold-Web.woff') format('woff'); }

:root {
  --gs-red: #d12e28; --gs-red-dark: #b22722; --gs-ink: #000000; --gs-graphite: #414141; --gs-graphite-dark: #2e2e2e;
  --gs-text: #4f4f4f; --gs-muted: #767676; --gs-line: #e1e1e1; --gs-line-strong: #b5b5b5; --gs-surface: #f6f6f6; --gs-surface-press: #ececec; --gs-white: #ffffff;
  --gs-brand-orange: #ff5a0a; --gs-soft: #fdf0ef; --gs-tile: #f2f1f0; --gs-m-sub: #5c5c5c; --gs-m-mute: #8f8f8f; --gs-m-line: #ebebeb;
  --gs-focus: 0 0 0 2px #ffffff, 0 0 0 4px #1e96af;
  --gs-top-row: 45px;         /* служебный ряд: уезжает при закреплении (5.2) */
  --gs-tapbar: 60px;          /* нижняя панель на ≤800: пункты 54 + отступ 6 (19.10 р.10: было 66) */
  --gs-tapbar-safe: 4px;   /* 20.10 р.13, п. 10 (видео): постоянный нижний отступ тапбара (6 + 4 = 10 px). Раньше брали системный отступ iPhone (env(safe-area-inset-bottom) − 14): он есть, когда адресная строка браузера спрятана, и 0, когда показана, — высота панели скакала на ~20 px при каждой прокрутке. Как у ВсеИнструменты: высота одна */
  --gs-m-top: 48px;           /* ≤800: верх мобильной шапки (логотип…звонок) — уезжает вместе с прокруткой */
  --gs-m-promo: 42px;         /* ≤800: видимая высота «Распродажи» (62 − 20 под поиском) — уезжает под поиск; 19.10 р.10: было 48 */
  --gs-scroll-max: 45px;      /* clamp для JS-фолбэка --gs-scroll (shell.js): высота сворачиваемых частей */
}

/* ---------- иконки системы GiGas (12-Design/icons/dist/gi.css), спрайт внешним файлом ---------- */
.gs .gi, .gs-foot .gi, .gs-tapbar .gi, .gs-cookie .gi, .catalog-menu .gi { display: inline-block; flex-shrink: 0; vertical-align: middle; color: inherit; }
.gi--16 { width: 16px; height: 16px; stroke-width: 2.25; }
.gi--20 { width: 20px; height: 20px; stroke-width: 1.8; }
.gi--24 { width: 24px; height: 24px; stroke-width: 1.5; }
.gi--32 { width: 32px; height: 32px; stroke-width: 1.25; }

/* ---------- базовые сбросы в скоупе оболочки ---------- */
.gs, .gs *, .gs *::before, .gs *::after, .gs-foot, .gs-foot *, .gs-tapbar, .gs-tapbar *, .gs-cookie, .gs-cookie * { box-sizing: border-box; }
.gs, .gs-foot, .gs-tapbar, .gs-cookie, .catalog-menu { font-family: 'Nekst', Arial, sans-serif; font-weight: 400; line-height: 1.2; color: var(--gs-ink); -webkit-font-smoothing: antialiased; }
.gs a, .gs-foot a, .gs-tapbar a, .catalog-menu a { color: inherit; text-decoration: none; }
.gs a:hover, .gs-foot a:hover, .catalog-menu a:hover { text-decoration: none; }
.gs img, .gs-foot img, .catalog-menu img { display: block; max-width: 100%; }
.gs button, .gs-foot button, .gs-cookie button, .gs-tapbar button { font-family: inherit; appearance: none; -webkit-appearance: none; border: 0; background: none; padding: 0; margin: 0; color: inherit; cursor: pointer; }
.gs input, .gs-m input { font-family: inherit; }
.gs a:focus-visible, .gs button:focus-visible, .gs input:focus-visible, .gs-foot a:focus-visible, .gs-foot button:focus-visible, .gs-tapbar a:focus-visible, .catalog-menu a:focus-visible { outline: none; box-shadow: var(--gs-focus); border-radius: 6px; }
.gs ul, .gs-foot ul { margin: 0; padding: 0; list-style: none; }
.gs ul > li, .gs-foot ul > li { margin: 0; padding: 0; }
.gs ul > li::before, .gs-foot ul > li::before { content: none; }

/* ---------- ШАПКА: контейнер и липкость ---------- */
header.header.gs { overflow-anchor: none; position: relative; display: block; margin: 0; padding: 0; background: var(--gs-white); border-bottom: 0; z-index: 200; }   /* 16.10 (заказчик): линии под шапкой нет; на ПК фон — матовое стекло (::before ниже) */
@media (min-width: 801px) {
  /* сворачивание синхронно с прокруткой (task/shell-scroll-smooth, эталон — Авито): липкость с отрицательным top —
     служебный ряд уезжает вместе со страницей ровно на величину прокрутки (0…45 px) силами браузера, без порога, таймера и JS;
     основной ряд и лента закрепляются у верха. Высота шапки и документа не меняется. */
  header.header.gs { position: sticky; top: calc(-1 * var(--gs-top-row)); }
  body.menu-opened header.header.gs { top: 0; }   /* мегаменю — шапка в исходном положении */
  body.scrolled:not(.menu-opened) .menu-header { display: block; }   /* тема прятала ленту при прокрутке — теперь уезжает только служебный ряд */
  /* 16.10 (заказчик, раунд 7, п. 1): липкая шапка — «матовое стекло»: полупрозрачный белый 0,78 + размытие того, что под ней
     (::before под содержимым), без линии border-bottom. Шлейфа размытия ниже шапки нет — край стекла и есть граница
     (вариант со шлейфом заказчику не понравился, 16.10). Мегаменю — сплошной белый. */
  header.header.gs { background: transparent; }
  header.header.gs::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background: rgba(255, 255, 255, 0.78); -webkit-backdrop-filter: blur(20px) saturate(1.4); backdrop-filter: blur(20px) saturate(1.4); }
  body.menu-opened header.header.gs::before { background: var(--gs-white); }
}
.gs .gs-wrap { width: 100%; max-width: 1348px; margin: 0 auto; padding: 0; }
@media (max-width: 1378px) { .gs .gs-wrap { padding: 0 15px; } }

/* служебный ряд */
.gs .gs-top { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: var(--gs-top-row); padding-top: 12px; padding-bottom: 14px; }
.gs .gs-top__left, .gs .gs-top__right { display: flex; align-items: center; gap: 22px; min-width: 0; }
.gs .gs-top__right { gap: 18px; flex-shrink: 0; }
.gs .gs-top__link { font-size: 13px; font-weight: 400; color: var(--gs-text); white-space: nowrap; }
.gs .gs-top__link:hover { color: var(--gs-red-dark); }
.gs .gs-top__hours { font-size: 13px; color: var(--gs-muted); white-space: nowrap; }
/* часы работы точки города: «Сегодня …» + полное расписание по наведению / фокусу (раунд 6, п. 1; по городу — раунд 7, п. 3) */
.gs .gs-hours { position: relative; display: inline-flex; align-items: center; gap: 4px; cursor: default; outline: none; }
.gs .gs-hours:focus-visible .gs-top__hours { color: var(--gs-ink); text-decoration: underline; }
.gs .gs-hours__pop {
  display: none; position: absolute; top: calc(100% + 10px); right: -12px; z-index: 50; min-width: 200px; padding: 12px 16px;
  background: var(--gs-white); border-radius: 12px; box-shadow: 0 12px 36px rgba(0, 0, 0, 0.16); flex-direction: column; gap: 6px;
}
.gs .gs-hours__pop::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }   /* мостик: курсор не теряет всплывашку */
.gs .gs-hours:hover .gs-hours__pop, .gs .gs-hours:focus-within .gs-hours__pop { display: flex; }
.gs .gs-hours:hover .gs-dd__chev, .gs .gs-hours:focus-within .gs-dd__chev { transform: rotate(180deg); color: var(--gs-red); }
.gs .gs-hours__title { font-size: 12px; color: var(--gs-muted); white-space: nowrap; }   /* адрес точки — в одну строку, окно растёт */
.gs .gs-hours__row { display: flex; justify-content: space-between; gap: 20px; font-size: 14px; line-height: 1.3; color: var(--gs-ink); white-space: nowrap; }
.gs .gs-hours__row--today { font-weight: 600; }
.gs .gs-soc { display: flex; align-items: center; gap: 6px; }
.gs .gs-soc a { display: inline-flex; }
.gs .gs-soc img { width: 24px; height: 24px; }
.gs .gs-phone { font-size: 16px; font-weight: 600; color: var(--gs-ink); white-space: nowrap; }
.gs .gs-phone:hover { color: var(--gs-red-dark); }
.gs .gs-callback { font-size: 13px; font-weight: 500; color: var(--gs-red); white-space: nowrap; }
.gs .gs-callback:hover { color: var(--gs-red-dark); }
/* регион (компонент regionality header): .location c выпадашкой темы */
.gs .location { position: relative; display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; color: var(--gs-ink); cursor: pointer; }
.gs .location { width: auto; top: 0; }
.gs .location .location-icon img, .gs .location .location-dropdown img { display: none !important; }
.gs .location .location-icon, .gs .location .location-dropdown { display: inline-flex; padding: 0; }
.gs .location .location-icon::before, .gs .location .location-dropdown::before { content: ''; display: block; background: currentColor; -webkit-mask: var(--gs-mask) center / contain no-repeat; mask: var(--gs-mask) center / contain no-repeat; }
.gs .location .location-icon::before { width: 16px; height: 16px; color: var(--gs-red); --gs-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/><circle cx='12' cy='10' r='3'/></svg>"); }
.gs .location .location-dropdown::before { width: 14px; height: 14px; color: var(--gs-muted); transition: transform .15s; --gs-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>"); }
.gs .location.active .location-dropdown::before { transform: rotate(180deg); color: var(--gs-red); }
.gs .location .location-name { padding: 0; white-space: nowrap; }
.gs .location:hover, .gs .location.active { color: var(--gs-red-dark); }
/* выпадашки темы [data-modal] внутри шапки */
.gs .gs-dd { position: relative; display: inline-flex; align-items: center; gap: 4px; cursor: pointer; }
.gs .gs-dd__chev { color: var(--gs-muted); }
.gs .gs-dd.active .gs-dd__chev { transform: rotate(180deg); color: var(--gs-red); }
.gs .modal-window { display: none; position: absolute; top: calc(100% + 10px); left: -12px; z-index: 50; min-width: 220px; padding: 10px 0; background: var(--gs-white); border-radius: 12px; box-shadow: 0 12px 36px rgba(0, 0, 0, 0.16); flex-direction: column; }
.gs .modal-window.active { display: flex; }
.gs .modal-window .modal-link { display: block; padding: 8px 16px; margin: 0; font-size: 14px; font-weight: 400; line-height: 1.2; color: var(--gs-ink); white-space: nowrap; cursor: pointer; }
.gs .modal-window .modal-link:hover, .gs .modal-window .modal-link.active { color: var(--gs-red); background: var(--gs-surface); }
.gs .modal-window .modal-link:not(:last-child) { margin-bottom: 0; }
.gs .modal-window .gs-callback { display: block; padding: 8px 16px; }

/* основной ряд */
.gs .gs-main { display: flex; align-items: center; gap: 20px; padding-top: 14px; padding-bottom: 14px; }
.gs .gs-logo { flex-shrink: 0; display: block; }
.gs .gs-logo img { height: 34px; width: auto; }
.gs .gs-catalog { flex-shrink: 0; display: inline-flex; align-items: center; gap: 10px; height: 52px; padding: 0 22px; background: var(--gs-red); color: var(--gs-white); border-radius: 999px; font-size: 15px; font-weight: 500; white-space: nowrap; cursor: pointer; }
.gs .gs-catalog:hover, .gs .gs-catalog.active { background: var(--gs-red-dark); color: var(--gs-white); }
.gs .gs-catalog__ico--close { display: none; }
.gs .gs-catalog.active .gs-catalog__ico--menu { display: none; }
.gs .gs-catalog.active .gs-catalog__ico--close { display: inline-block; }
.gs .gs-search { flex-grow: 1; display: flex; align-items: center; gap: 12px; height: 52px; padding: 0 8px 0 22px; margin: 0; background: var(--gs-surface); border-radius: 999px; min-width: 0; }
.gs .gs-search__input, .gs input.gs-search__input[type="text"], .gs input.gs-search__input[type="search"] { flex-grow: 1; min-width: 0; height: 100%; border: 0; background: transparent; padding: 0; margin: 0; box-shadow: none; font-family: inherit; font-size: 15px; color: var(--gs-ink); outline: none; appearance: none; -webkit-appearance: none; }
.gs .gs-search__input::placeholder { color: var(--gs-muted); opacity: 1; }
.gs .gs-search__btn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex-shrink: 0; border-radius: 999px; background: var(--gs-red); color: var(--gs-white); }
.gs .gs-search__btn:hover { background: var(--gs-red-dark); }
.gs .gs-nav { display: flex; align-items: center; gap: 22px; flex-shrink: 0; }
.gs .gs-nav__item { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 60px; font-size: 12px; font-weight: 400; color: var(--gs-ink); cursor: pointer; text-align: center; }
.gs .gs-nav__item:hover { color: var(--gs-red-dark); }
.gs .gs-nav__item .gi { width: 22px; height: 22px; stroke-width: 1.6; }
.gs .gs-nav__item .count, .gs .gs-nav__item .js-count { position: absolute; top: -4px; right: 10px; min-width: 18px; height: 18px; padding: 0 5px; background: var(--gs-red); color: var(--gs-white); border-radius: 999px; font-size: 11px; font-weight: 500; line-height: 18px; text-align: center; }
header.header.gs .gs-nav .gs-nav__item .count, header.header.gs .gs-nav .gs-nav__item .js-count { background: var(--gs-red) !important; color: var(--gs-white) !important; }
/* пустые счётчики не показываем (13.10): тема пишет «0» в .js-count и ставит .empted на счётчик / .counter-state--empty на сам пункт; .gs-count--zero — из shell.js */
.gs .gs-nav__item .count:empty, .gs .gs-nav__item.counter-state--empty .count, .gs .gs-nav__item .count.empted, .gs .gs-nav__item .gs-count--zero { display: none !important; }
.gs .gs-nav__link { display: flex; flex-direction: column; align-items: center; gap: 4px; color: inherit; }
/* меню «Профиль» (14.10): под пунктом по центру; мостик ::before закрывает зазор, закрытие с задержкой .25 с — меню не пропадает, пока курсор идёт вниз.
   Префикс header.header.gs перебивает header.css темы (.dropdown-menu.user-dropdown: оранжевый hover, «ВЫЙТИ» рамкой капсом) */
header.header.gs .gs-nav__item .dropdown-menu.user-dropdown { display: block; visibility: hidden; opacity: 0; transform: translateY(4px); transition: opacity .15s, transform .15s, visibility 0s linear .25s; position: absolute; top: calc(100% + 10px); left: 50%; right: auto; margin: 0 0 0 -110px; z-index: 50; width: 220px; min-width: 0; padding: 8px 0; border: 0; background: var(--gs-white); border-radius: 12px; box-shadow: 0 12px 36px rgba(0, 0, 0, 0.16); text-align: left; }
header.header.gs .gs-nav__item .dropdown-menu.user-dropdown::before { content: ''; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
header.header.gs .gs-nav__item:hover .dropdown-menu.user-dropdown, header.header.gs .gs-nav__item:focus-within .dropdown-menu.user-dropdown { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
header.header.gs .gs-nav__item .dropdown-menu.user-dropdown .user-menu-item a { display: flex; align-items: center; gap: 8px; width: auto; margin: 0 !important; padding: 10px 16px; border: 0; border-radius: 0; background: transparent; font-size: 14px; font-weight: 400; line-height: 1.3; color: var(--gs-ink); text-transform: none; text-align: left; white-space: nowrap; }
header.header.gs .gs-nav__item .dropdown-menu.user-dropdown .user-menu-item a:hover { background: var(--gs-surface); color: var(--gs-red); }
header.header.gs .gs-nav__item .dropdown-menu.user-dropdown .user-menu-item a.btn-logout { margin-top: 6px !important; border-top: 1px solid var(--gs-line); color: var(--gs-red); }
.gs .gs-nav__item .user-menu-item i.svg { display: none; }

/* лента разделов (компонент menu/header) */
.gs .menu-header { position: relative; width: 100%; max-width: 1348px; margin: 0 auto; padding: 0; }
@media (max-width: 1378px) { .gs .menu-header { padding: 0 15px; } }
.gs .gs-ribbon { display: flex; align-items: center; gap: 25.6px; padding: 2px 56px 14px 0; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; scroll-behavior: smooth; }
.gs .gs-ribbon::-webkit-scrollbar { display: none; }
.gs .gs-ribbon__item { flex-shrink: 0; font-size: 14px; font-weight: 500; color: var(--gs-ink); white-space: nowrap; }
.gs .gs-ribbon__item:hover { color: var(--gs-red-dark); }
.gs .gs-ribbon__item--sale { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; padding: 0 16px 0 12px; background: var(--gs-red); border-radius: 999px; color: var(--gs-white); line-height: 1.1; }
.gs .gs-ribbon__item--sale:hover { background: var(--gs-red-dark); color: var(--gs-white); }
.gs .gs-ribbon__item--promo { display: inline-flex; align-items: center; gap: 7px; }
.gs .gs-ribbon__item--promo .gi { color: var(--gs-red); }
.gs .gs-ribbon__item--sale .gi { fill: currentColor; }
.gs .gs-ribbon__scroll { position: absolute; top: 0; right: 0; bottom: 12px; display: flex; align-items: center; padding-left: 10px; background: none; }   /* 19.10 р.10: белая подложка была видна прямоугольником на матовой шапке — убрана */
/* текст ленты под стрелками скрываем маской с чёткой границей (не градиент), только с той стороны, где стрелка видна; 54 = 44 кнопка + 10 отступ */
.gs .menu-header:has(.gs-ribbon__scroll:not(.gs-ribbon__scroll--prev):not(.gs-ribbon__scroll--hidden)) .gs-ribbon { --gs-rb-r: 54px; }
.gs .menu-header:has(.gs-ribbon__scroll--prev:not(.gs-ribbon__scroll--hidden)) .gs-ribbon { --gs-rb-l: 54px; }
.gs .gs-ribbon { -webkit-mask-image: linear-gradient(90deg, transparent var(--gs-rb-l, 0px), #000 var(--gs-rb-l, 0px), #000 calc(100% - var(--gs-rb-r, 0px)), transparent calc(100% - var(--gs-rb-r, 0px))); mask-image: linear-gradient(90deg, transparent var(--gs-rb-l, 0px), #000 var(--gs-rb-l, 0px), #000 calc(100% - var(--gs-rb-r, 0px)), transparent calc(100% - var(--gs-rb-r, 0px))); }
@media (max-width: 1378px) { .gs .gs-ribbon__scroll { right: 15px; } }
.gs .gs-ribbon__scroll a { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--gs-line); border-radius: 50%; background: var(--gs-white); color: var(--gs-ink); }
.gs .gs-ribbon__scroll a:hover { border-color: var(--gs-graphite); }
.gs .gs-ribbon__scroll a img { display: none; }
.gs .gs-ribbon__scroll--hidden { display: none; }
@media (min-width: 801px) { .gs-mcat { display: none !important; } }
/* «назад» — зеркально слева (без градиента — брендбук); подложки нет с 19.10, текст под стрелкой скрыт маской .gs-ribbon */
.gs .gs-ribbon__scroll--prev { right: auto; left: 0; padding-left: 0; padding-right: 10px; }
@media (max-width: 1378px) { .gs .gs-ribbon__scroll--prev { right: auto; left: 15px; } }

/* ---------- МЕГАМЕНЮ «КАТАЛОГ» (компонент menu/catalog, панель под шапкой) ---------- */
.gs-backdrop { display: none; position: fixed; inset: 0; z-index: 190; background: rgba(0, 0, 0, 0.42); }
body.menu-opened .gs-backdrop { display: block; }
.catalog-menu { display: none; position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 210; }
.catalog-menu.active { display: block; }
.catalog-menu .catalog-menu-wrapper { width: 100%; max-width: 1348px; margin: 0 auto; padding: 0; }
@media (max-width: 1378px) { .catalog-menu .catalog-menu-wrapper { padding: 0 15px; } }
.catalog-menu .gs-cm { display: grid; grid-template-columns: 492px minmax(0, 1fr); align-items: start; gap: 28px; max-height: calc(100vh - 200px); overflow: auto; padding: 24px 28px; background: var(--gs-white); border-radius: 16px; box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22); }
.catalog-menu .gs-cm__left { display: flex; flex-direction: column; gap: 6px; padding-right: 20px; border-right: 1px solid var(--gs-line); }
.catalog-menu .gs-cm__caption { padding: 0 10px 2px; font-size: 12px; font-weight: 600; letter-spacing: .04em; color: var(--gs-muted); }
.catalog-menu .gs-cm__promo { display: grid; grid-template-columns: 1fr 1fr; column-gap: 8px; padding-bottom: 6px; border-bottom: 1px solid var(--gs-line); }
.catalog-menu .gs-cm__list { display: grid; grid-template-columns: 1fr 1fr; grid-auto-flow: column; column-gap: 8px; row-gap: 2px; }
.catalog-menu .gs-cm__row { display: flex; align-items: center; gap: 8px; min-height: 32px; min-width: 0; padding: 4px 10px; border-radius: 8px; font-size: 14px; font-weight: 500; line-height: 1.15; color: var(--gs-ink); }
.catalog-menu .gs-cm__row span { flex-grow: 1; min-width: 0; }
.catalog-menu .gs-cm__row .gi--chev { color: var(--gs-muted); }
.catalog-menu .gs-cm__row:hover { background: var(--gs-surface); color: var(--gs-red); }
.catalog-menu .gs-cm__row:hover .gi--chev { color: var(--gs-red); }
.catalog-menu .gs-cm__row--sale { color: var(--gs-red); }
.catalog-menu .gs-cm__row--sale .gi, .catalog-menu .gs-cm__row--promo .gi:not(.gi--chev) { color: var(--gs-red); fill: currentColor; }
.catalog-menu .gs-cm__right { position: relative; min-width: 0; }
.catalog-menu .gs-cm__pop { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
/* подразделы по наведению: панель поверх «Популярных разделов» (те остаются в потоке и держат высоту — .gs-cm не прыгает) */
.catalog-menu .gs-cm__subs { position: absolute; inset: 0; display: none; overflow: auto; background: var(--gs-white); }
.catalog-menu .gs-cm__right.is-sub .gs-cm__subs { display: block; }
.catalog-menu .gs-cm__right.is-sub .gs-cm__pop { visibility: hidden; }
.catalog-menu .gs-cm__sub-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.catalog-menu .gs-cm__title a { color: inherit; }
.catalog-menu .gs-cm__title a:hover { color: var(--gs-red); }
.catalog-menu .gs-cm__sub-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 24px; align-items: start; }
.catalog-menu .gs-cm__sub-name { display: block; font-size: 15px; font-weight: 500; line-height: 1.2; color: var(--gs-ink); }
.catalog-menu .gs-cm__sub-name:hover, .catalog-menu .gs-cm__sub-list a:hover { color: var(--gs-red); }
.catalog-menu .gs-cm__sub-list { margin: 6px 0 0; padding: 0; list-style: none; }
.catalog-menu .gs-cm__sub-list li { margin: 0; padding: 0; }
.catalog-menu .gs-cm__sub-list a { display: block; padding: 2px 0; font-size: 13px; font-weight: 400; line-height: 1.25; color: var(--gs-muted); }
.catalog-menu .gs-cm__sub-list .gs-cm__sub-more { color: var(--gs-red); }
.catalog-menu .gs-cm__row.is-sub-active { background: var(--gs-surface); color: var(--gs-red); }
.catalog-menu .gs-cm__row.is-sub-active .gi--chev { color: var(--gs-red); }
.catalog-menu .gs-cm__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.catalog-menu .gs-cm__title { margin: 0; font-family: 'Nekst', Arial, sans-serif; font-size: 26px; font-weight: 600; line-height: 1; letter-spacing: 0; color: var(--gs-ink); }
.catalog-menu .gs-cm__all { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 500; color: var(--gs-red); white-space: nowrap; }
.catalog-menu .gs-cm__all:hover { color: var(--gs-red-dark); }
.catalog-menu .gs-cm__big, .catalog-menu .gs-cm__small { display: grid; gap: 12px; align-items: start; }
.catalog-menu .gs-cm__big { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.catalog-menu .gs-cm__small { grid-template-columns: repeat(3, minmax(0, 1fr)); }
/* плитка = заголовок сверху + кадр ниже (отдельный прямоугольник, текст не лежит на товаре); фон плитки — градиент цветов границы кадра (--gs-t1..3 из template.php),
   верх кадра растворяется в нём маской — шва нет */
.catalog-menu .gs-cm__tile { position: relative; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; gap: 4px; aspect-ratio: 654 / 600; min-height: 0; padding: 14px 16px 0; background: linear-gradient(90deg, var(--gs-t1), var(--gs-t2) 55%, var(--gs-t3)); border-radius: 12px; color: var(--gs-ink); }
.catalog-menu .gs-cm__tile--small { flex-direction: row; align-items: stretch; gap: 0; aspect-ratio: 880 / 184; padding: 0 0 0 16px; background: linear-gradient(180deg, var(--gs-t1), var(--gs-t2) 50%, var(--gs-t3)); }
.catalog-menu .gs-cm__tile--dark { color: var(--gs-white); }
.catalog-menu .gs-cm__tile img { position: static; display: block; flex: 1 1 0; width: calc(100% + 32px) !important; height: auto !important; min-width: 0; min-height: 0; max-width: none; margin: 0 -16px; object-fit: cover; object-position: 50% 100%; pointer-events: none;
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 18px); mask-image: linear-gradient(180deg, transparent 0, #000 18px); }
.catalog-menu .gs-cm__tile--small img { flex: 1 1 0; width: auto !important; height: 100% !important; margin: 0; object-position: 100% 50%;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 22px); mask-image: linear-gradient(90deg, transparent 0, #000 22px); }
.catalog-menu .gs-cm__tile-name { flex: 0 0 auto; align-self: flex-start; font-size: 18px; font-weight: 600; line-height: 1.05; min-height: 2.1em; }
.catalog-menu .gs-cm__tile--small .gs-cm__tile-name { flex: 0 0 46%; align-self: center; min-height: 0; padding-right: 6px; font-size: 14px; font-weight: 500; line-height: 1.1; }
.catalog-menu .gs-cm__tile:hover { box-shadow: inset 0 0 0 2px rgba(209, 46, 40, 0.35); }
.catalog-menu .gs-cm__brands-title { font-size: 15px; font-weight: 500; color: var(--gs-ink); }
.gs-marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.gs-marquee__track { display: flex; width: max-content; animation: gs-marquee 40s linear infinite; }
.gs-marquee:hover .gs-marquee__track { animation-play-state: paused; }
.gs-marquee__tile { flex: 0 0 160px; display: flex; align-items: center; justify-content: center; height: 56px; margin-right: 10px; padding: 0 16px; background: var(--gs-surface); border-radius: 12px; }
.gs-marquee__tile img { position: static; width: auto; max-width: 100%; object-fit: contain; }
@keyframes gs-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .gs-marquee__track { animation: none; } }
@media (max-width: 1199px) {
  .catalog-menu .gs-cm { grid-template-columns: 380px minmax(0, 1fr); }
  .catalog-menu .gs-cm__big { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-menu .gs-cm__small { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-menu .gs-cm__sub-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- планшет-альбом / ноутбук 801–1199 ---------- */
@media (min-width: 801px) and (max-width: 1199px) {
  .gs .gs-top { gap: 12px; }
  .gs .gs-top__left { gap: 14px; flex-wrap: nowrap; }
  .gs .gs-top__right { gap: 14px; }
  .gs .gs-hours, .gs .gs-top .gs-soc { display: none; }   /* соцсети на 801–1199 — в подвале; ряд одной строкой, «Обратный звонок» не режется */
  .gs .gs-main { gap: 12px; }
  .gs .gs-nav { gap: 12px; }
  .gs .gs-nav__item { min-width: 48px; }
  .gs .gs-nav__item .gs-nav__label { display: none; }
  .gs .gs-nav__item .count, .gs .gs-nav__item .js-count { right: 2px; }
  .gs .gs-catalog { padding: 0 16px; }
}

/* ---------- МОБИЛЬНАЯ ШАПКА (≤800), эталон C: спокойная шапка #fdf0ef, липкий поиск, «Распродажа» ---------- */
.gs .gs-m { display: none; }
@media (max-width: 800px) {
  :root { --gs-scroll-max: 90px; }   /* = --gs-m-top + --gs-m-promo (48 + 42); литерал, а не calc(): JS-фолбэк читает число через parseFloat */
  html, body { overflow-anchor: none; }
  /* сворачивание синхронно с прокруткой (task/shell-scroll-smooth, эталон — Авито), только transform, высота документа постоянна:
     1) верх (53 px) уезжает вместе со страницей — липкость с top: −53px, силами браузера; поиск закрепляется у верха;
     2) «Распродажа» продолжает уезжать вместе со страницей ещё 60 px и прячется под поиск (поиск выше по z-index и с фоном):
        CSS scroll-driven animation (animation-timeline: scroll(), на композиторе), фолбэк — --gs-scroll из shell.js (rAF). */
  header.header.gs { position: sticky; top: calc(-1 * var(--gs-m-top)); border-bottom: 0; background: transparent; pointer-events: none; }
  header.header.gs > * { pointer-events: auto; }
  header.header.gs > .gs-m { pointer-events: none; }   /* полоса под поиском, откуда уехала «Распродажа», не перехватывает касания контента */
  body.menu-opened header.header.gs { top: 0; }
  .gs .gs-top, .gs .gs-main, .gs .menu-header, .gs .gs-backdrop, .gs .catalog-menu { display: none !important; }
  .gs .gs-m { display: block; }
  .gs .gs-m__part { position: relative; overflow: hidden; isolation: isolate; background: var(--gs-soft); pointer-events: auto; }
  .gs .gs-m__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; height: 48px; padding: 6px 16px 4px; }   /* 19.10 р.10: поиск ближе к верху (было 53 / 8 9) */
  .gs .gs-m__logo img { height: 24px; width: auto; }
  .gs .gs-m__right { display: flex; align-items: center; gap: 6px; }
  .gs .gs-m__biz { display: inline-flex; align-items: center; min-height: 36px; padding: 0 12px; margin-right: 2px; border-radius: 999px; background: var(--gs-white); font-size: 13px; font-weight: 500; color: var(--gs-red); white-space: nowrap; }
  .gs .gs-m__soc { display: inline-flex; } .gs .gs-m__soc img { width: 24px; height: 24px; }
  .gs .gs-m__phone { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--gs-white); color: var(--gs-red); }
  .gs .gs-m__search-part { position: relative; z-index: 31; padding: 4px 16px 9px; border-radius: 0 0 20px 20px; overflow: visible; -webkit-backdrop-filter: blur(20px) saturate(1.4); backdrop-filter: blur(20px) saturate(1.4); }
  /* 19.10 р.10 (заказчик): размытую полосу под поиском убрали; липкая часть при прокрутке — матовое стекло, как шапка на ПК (фон 78 % + размытие 20 px).
     Пока «Распродажа» видна — фон плотный; когда уехала — прозрачнее. scroll-driven animation, фолбэк — класс gs-m-scrolled из shell.js §1. */
  html.gs-m-scrolled .gs .gs-m__search-part { background-color: rgba(253, 240, 239, 0.78); }
  @supports (animation-timeline: scroll()) {
    .gs .gs-m__search-part { animation: gs-m-glass linear both; animation-timeline: scroll(root block); animation-range: calc(var(--gs-m-top) + var(--gs-m-promo) - 12px) calc(var(--gs-m-top) + var(--gs-m-promo) + 8px); }
  }
  .gs .gs-m__search { display: flex; align-items: center; gap: 10px; height: 46px; padding: 0 14px; margin: 0; background: var(--gs-white); border-radius: 14px; box-shadow: 0 2px 8px rgba(80, 20, 0, 0.08); color: var(--gs-m-sub); }
  .gs .gs-m__search .gi { width: 22px; height: 22px; stroke-width: 2; }
  .gs .gs-m__search input, .gs .gs-m__search input[type="search"] { flex-grow: 1; min-width: 0; height: 100%; min-height: 0; border: 0; background: transparent; padding: 0; margin: 0; box-shadow: none; font-size: 16px; color: var(--gs-ink); outline: none; appearance: none; -webkit-appearance: none; }
  .gs .gs-m__search input::placeholder { color: var(--gs-m-mute); opacity: 1; }
  .gs .gs-m__promo-part { z-index: 30; margin-top: -20px; padding: 16px 16px 6px;   /* 13.10: «Распродажа» ближе к поиску (было 34); 19.10 р.10: 22 → 16 */ border-radius: 0 0 24px 24px; will-change: transform;
    transform: translateY(calc(-1 * clamp(0px, var(--gs-scroll, 0px) - var(--gs-m-top), var(--gs-m-promo)))); }
  @supports (animation-timeline: scroll()) {
    .gs .gs-m__promo-part { transform: none; animation: gs-m-promo-out linear both; animation-timeline: scroll(root block); animation-range: var(--gs-m-top) calc(var(--gs-m-top) + var(--gs-m-promo)); }
  }
  body.menu-opened .gs .gs-m__promo-part { animation: none; transform: none; }
  @supports not (animation-timeline: scroll()) { html.gs-m-scrolled .gs .gs-m__promo-part { opacity: 0; } }
  .gs .gs-m__promo { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; color: var(--gs-ink); }
  .gs .gs-m__promo > .gi { color: var(--gs-red); fill: currentColor; }
  .gs .gs-m__promo-text { font-size: 18px; font-weight: 600; line-height: 1; white-space: nowrap; }
  .gs .gs-m__promo-text b { font-weight: 600; color: var(--gs-red); }
  .gs .gs-round { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%; background: var(--gs-red); color: var(--gs-white); }
  .gs .gs-round .gi { stroke-width: 2.2; }
  .gs .gs-m__mark { position: absolute; z-index: -1; display: block; pointer-events: none; }
  /* выезжающее меню «Ещё» темы — лёгкий рестайл */
  .menu-more { font-family: 'Nekst', Arial, sans-serif; }
  /* панель «Ещё» (09.10, правки п. 9 и 11): шапка с городом и закрытием, поиск, строки с иконками GiGas и шевроном, аккордеоны, телефоны */
  .menu-more.gs-more { padding: 0 16px calc(96px + env(safe-area-inset-bottom, 0px)); background: var(--gs-white); color: var(--gs-ink); }
  .gs-more .gs-more__head { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; gap: 12px; min-height: 60px; margin: 0 -16px; padding: 0 16px; background: var(--gs-white); }
  .gs-more .gs-more__logo { display: inline-flex; flex-shrink: 0; }
  .gs-more .gs-more__logo img { display: block; width: 100px; height: auto; }
  .gs-more .gs-more__city { margin-left: auto; position: relative; }
  .gs-more .gs-more__close { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-right: -10px; border: 0; background: none; color: var(--gs-ink); cursor: pointer; }
  .gs-more .gs-more__search { display: flex; align-items: center; gap: 10px; height: 48px; margin: 4px 0 12px; padding: 0 14px; border-radius: 12px; background: var(--gs-surface); color: var(--gs-muted); }
  .gs-more .gs-more__search input, .gs-more .gs-more__search input[type="search"] { flex-grow: 1; min-width: 0; height: 100%; min-height: 0; border: 0; background: transparent; padding: 0; margin: 0; box-shadow: none; font: inherit; font-size: 16px; color: var(--gs-ink); outline: none; appearance: none; -webkit-appearance: none; }
  .gs-more .gs-more__list { display: flex; flex-direction: column; }
  .gs-more .gs-more__row { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 0; border-bottom: 1px solid var(--gs-line); font-size: 16px; font-weight: 500; color: var(--gs-ink); text-decoration: none; cursor: pointer; list-style: none; }
  .gs-more .gs-more__row::-webkit-details-marker { display: none; }
  .gs-more .gs-more__row:hover, .gs-more .gs-more__row:active { color: var(--gs-red-dark); }
  .gs-more .gs-more__ico { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; flex-shrink: 0; border-radius: 12px; background: var(--gs-surface); color: var(--gs-graphite); }
  .gs-more .gs-more__text { flex-grow: 1; }
  .gs-more .gs-more__chev { color: var(--gs-muted); flex-shrink: 0; transition: transform .15s; }
  .gs-more .gs-more__acc[open] > summary .gs-more__chev { transform: rotate(180deg); }
  .gs-more .gs-more__sub { display: flex; flex-direction: column; padding: 4px 0 10px 48px; border-bottom: 1px solid var(--gs-line); }
  .gs-more .gs-more__sub a { padding: 9px 0; font-size: 15px; color: var(--gs-text); text-align: left; }
  .gs-more .gs-more__sub a:hover { color: var(--gs-red-dark); }
  .gs-more .gs-more__contacts { display: flex; flex-direction: column; gap: 4px; margin-top: 16px; }
  .gs-more .gs-more__phone { display: flex; align-items: center; gap: 12px; padding: 8px 0; font-size: 18px; font-weight: 600; color: var(--gs-ink); }
  .gs-more .gs-more__phone .gi { color: var(--gs-red); }
  .gs-more .gs-more__phone small { display: block; font-size: 13px; font-weight: 400; color: var(--gs-muted); }
  .gs-more button.gs-more__callback { display: flex; padding: 0 16px; align-items: center; justify-content: center; width: 100%; min-height: 48px; margin-top: 8px; border: 0; border-radius: 12px; background: var(--gs-red); color: var(--gs-white); font: inherit; font-size: 16px; font-weight: 500; cursor: pointer; }
  .gs-more .gs-more__callback:hover, .gs-more .gs-more__callback:active { background: var(--gs-red-dark); color: var(--gs-white); }
  /* мобильное меню каталога (п. 12): полноэкранная панель как «Ещё», экраны по уровням */
  .gs-mcat { position: fixed; inset: 0; z-index: 130; display: none; flex-direction: column; overflow-y: auto; padding: 0 16px calc(96px + env(safe-area-inset-bottom, 0px)); background: var(--gs-white); color: var(--gs-ink); font-family: 'Nekst', Arial, sans-serif; -webkit-overflow-scrolling: touch; }
  .gs-mcat.active { display: flex; }
  .gs-mcat .gs-mcat__head { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; gap: 8px; min-height: 60px; margin: 0 -16px 4px; padding: 0 16px; background: var(--gs-white); border-bottom: 1px solid var(--gs-line); }
  .gs-mcat .gs-mcat__title { flex-grow: 1; min-width: 0; font-size: 20px; font-weight: 600; line-height: 1.1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .gs-mcat .gs-mcat__back, .gs-mcat .gs-mcat__close { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex-shrink: 0; border: 0; background: none; color: var(--gs-ink); cursor: pointer; padding: 0; }
  .gs-mcat .gs-mcat__back { margin-left: -12px; }
  .gs-mcat .gs-mcat__close { margin-right: -10px; }
  .gs-mcat .gs-mcat__back[hidden] { display: none; }
  .gs-mcat .gs-mcat__screen { display: flex; flex-direction: column; }
  .gs-mcat .gs-mcat__screen[hidden] { display: none; }
  .gs-mcat .gs-mcat__row { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 52px; padding: 0; border: 0; border-bottom: 1px solid var(--gs-line); background: none; font: inherit; font-size: 16px; font-weight: 500; line-height: 1.2; color: var(--gs-ink); text-align: left; text-decoration: none; cursor: pointer; }
  .gs-mcat .gs-mcat__row span { flex-grow: 1; padding: 12px 0; }
  .gs-mcat .gs-mcat__row:active, .gs-mcat .gs-mcat__row:hover { color: var(--gs-red-dark); }
  .gs-mcat .gs-mcat__row--sale .gi:first-child, .gs-mcat .gs-mcat__row--promo .gi:first-child { color: var(--gs-red); fill: currentColor; }
  .gs-mcat .gs-mcat__row--promo .gi:first-child { fill: none; }
  .gs-mcat .gs-mcat__chev { color: var(--gs-muted); }
  .gs-mcat .gs-mcat__all { display: inline-flex; align-items: center; gap: 6px; padding: 16px 0; font-size: 15px; font-weight: 500; color: var(--gs-red); }
  .gs-mcat .gs-mcat__all--top { padding: 12px 0 14px; border-bottom: 1px solid var(--gs-line); }
  /* город в панели: список прижат к правому краю и не уходит за экран (п. 9) */
  .gs-more .location .modal-window { left: auto; right: 0; min-width: 0; width: max-content; max-width: calc(100vw - 32px); }
  .gs-more .location .modal-window .modal-link { white-space: normal; }
}

@keyframes gs-m-glass { from { background-color: #fdf0ef; } to { background-color: rgba(253, 240, 239, 0.78); } }
@keyframes gs-m-promo-out { from { transform: translateY(0); } 85% { opacity: 1; } to { transform: translateY(calc(-1 * var(--gs-m-promo))); opacity: 0; } }   /* 19.10 р.10: в конце гаснет — под полупрозрачным поиском не просвечивает */

/* ---------- ТАПБАР (компонент menu/mobile), только ≤800 ---------- */
.gs-tapbar { display: none; }
@media (max-width: 800px) {
  .gs-tapbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 140; display: flex; justify-content: space-evenly; align-items: flex-end; padding: 0 6px calc(6px + var(--gs-tapbar-safe)); background: var(--gs-graphite); border-radius: 20px 20px 0 0;
  }
  /* 20.10 р.13, п. 10 (видео тестировщика, Яндекс Браузер на iPhone): панель отставала от адресной строки браузера — то висела
     над ней с просветом страницы, то уходила под неё или пропадала. Причина — свой слой (translate3d / will-change, р.10)
     и анимация отступа: браузер двигает такой слой с задержкой. Теперь обычный position: fixed без слоя и анимаций, как у
     конкурентов (ВсеИнструменты) — панель едет вместе с краем окна. Подложка ниже панели закрывает страницу, если край
     окна на миг уехал ниже (просвета под панелью не видно). */
  .gs-tapbar::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 120px; background: var(--gs-graphite); pointer-events: none; }
  /* 13.10: пунктов бывает 3–6 (главная — 5, ЛК — 6, без «Поиска/Каталога» — 3): равные ширины + space-evenly → равные промежутки между иконками и до краёв, при нечётном числе средняя — по центру экрана */
  .gs-tapbar__item { flex: 1 1 0; min-width: 0; max-width: 76px; white-space: nowrap; position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-height: 54px; font-size: 11px; font-weight: 500; color: rgba(255, 255, 255, 0.9); }
  .gs-tapbar__item.active, .gs-tapbar__item:hover { color: var(--gs-white); }
  .gs-tapbar a.gs-tapbar__item.basket-link { position: relative; }   /* тема делает .basket-link static — счётчик корзины считался от всей панели и при 3–4 пунктах уезжал на соседний */
  /* графитовый фон → иконки и подписи белые при любом каскаде темы (тапбар внутри <header>, тема красит a/svg/.basket-link) */
  .gs-tapbar .gs-tapbar__item, .gs-tapbar a.gs-tapbar__item, .gs-tapbar .gs-tapbar__item > span:not(.gs-tapbar__badge), .gs-tapbar .gi { color: #fff !important; }
  .gs-tapbar .gi, .gs-tapbar .gi use { stroke: currentColor !important; fill: none !important; opacity: 1 !important; }
  .gs-tapbar__item .gi { width: 24px; height: 24px; stroke-width: 1.5; }
  .gs-tapbar__badge { position: absolute; top: 4px; left: 50%; margin-left: 4px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--gs-brand-orange); color: var(--gs-white); font-size: 11px; line-height: 18px; text-align: center; }
  .gs-tapbar__badge:empty, .gs-tapbar__badge[data-count="0"], .gs-tapbar__badge.empted, .gs-tapbar__badge.gs-count--zero { display: none !important; }
  body { padding-bottom: calc(var(--gs-tapbar) + var(--gs-tapbar-safe)); }
  .header .fixed-menu.only-mobile { display: none !important; }
}

/* ---------- ПОДВАЛ ---------- */
footer.footer.gs-foot { position: relative; z-index: 4; margin: 0; padding: 8px 0 0; background: var(--gs-white); color: var(--gs-white); }
.gs-foot .gs-wrap { width: 100%; max-width: 1348px; margin: 0 auto; padding: 0; }
@media (max-width: 1378px) { .gs-foot .gs-wrap { padding: 0 15px; } }
.gs-foot .gs-foot__card { display: flex; flex-direction: column; gap: 32px; padding: 40px 48px 32px; background: var(--gs-graphite); border-radius: 16px; margin-bottom: 24px; }
.gs-foot .gs-foot__row1 { display: flex; align-items: center; gap: 40px; padding-bottom: 28px; border-bottom: 1px solid rgba(255, 255, 255, 0.16); }
.gs-foot .gs-foot__logo img { height: 30px; width: auto; filter: brightness(0) invert(1); }
.gs-foot .gs-foot__spacer { flex-grow: 1; }
.gs-foot .gs-foot__contacts { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.gs-foot .gs-foot__phone { display: inline-flex; align-items: center; gap: 8px; font-size: 20px; font-weight: 600; color: var(--gs-white); white-space: nowrap; }
.gs-foot .gs-foot__email { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; color: var(--gs-white); }
.gs-foot .gs-foot__phone .gi, .gs-foot .gs-foot__email .gi { color: var(--gs-red); width: 18px; height: 18px; stroke-width: 2; }
.gs-foot .gs-foot__phone:hover, .gs-foot .gs-foot__email:hover { color: #ff8a86; }
.gs-foot .gs-socials { display: flex; align-items: center; gap: 8px; }
.gs-foot .gs-socials a { display: inline-flex; transition: filter .15s; }
.gs-foot .gs-socials a:hover { filter: brightness(1.18); }
.gs-foot .gs-socials img { width: 32px; height: 32px; }
.gs-foot .gs-foot__cols { display: grid; grid-template-columns: 1fr 1fr 1fr 1.3fr; gap: 40px; align-items: start; }
.gs-foot .gs-foot__col { display: flex; flex-direction: column; gap: 10px; }
.gs-foot .gs-foot__col--stack { gap: 24px; align-items: flex-start; }
.gs-foot .gs-foot__head { font-size: 15px; font-weight: 500; line-height: 1.1; color: var(--gs-white); }
.gs-foot .gs-foot__link { font-size: 14px; font-weight: 400; color: rgba(255, 255, 255, 0.7); }
.gs-foot .gs-foot__link:hover { color: var(--gs-white); }
.gs-foot .gs-foot__ask { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.gs-foot .gs-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 22px; border-radius: 12px; background: var(--gs-red); color: var(--gs-white); font-size: 15px; font-weight: 500; line-height: 1.1; white-space: nowrap; cursor: pointer; }
.gs-foot .gs-btn:hover { background: var(--gs-red-dark); color: var(--gs-white); }
.gs-foot .gs-btn--white { background: var(--gs-white); color: var(--gs-ink); }
.gs-foot .gs-btn--white:hover { background: var(--gs-surface-press); color: var(--gs-ink); }
.gs-foot .gs-foot__addr { display: flex; align-items: center; gap: 8px; font-size: 14px; color: rgba(255, 255, 255, 0.7); }
.gs-foot .gs-foot__addr .gi { color: var(--gs-red); width: 16px; height: 16px; stroke-width: 2; }
.gs-foot .gs-foot__docs { display: flex; flex-direction: column; gap: 12px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, 0.16); }
.gs-foot .gs-foot__docs-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-flow: column; grid-template-rows: auto auto; gap: 10px 40px; }
.gs-foot .gs-foot__doc { font-size: 12px; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: rgba(255, 255, 255, 0.7); }
.gs-foot .gs-foot__doc:hover { color: var(--gs-white); }
.gs-foot .gs-foot__bottom { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 40px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.16); }
.gs-foot .gs-foot__copy { display: flex; flex-direction: column; gap: 4px; }
.gs-foot .gs-foot__copy-line { font-size: 13px; color: rgba(255, 255, 255, 0.7); }
.gs-foot .gs-foot__req { font-size: 12px; line-height: 1.4; color: rgba(255, 255, 255, 0.5); }
.gs-foot .gs-pay { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.gs-foot .gs-pay__item { display: inline-flex; align-items: center; height: 36px; padding: 0 12px; background: var(--gs-white); border-radius: 8px; }
.gs-foot .gs-pay__item img { width: auto; }
.gs-foot .gs-pay__item--mir img { height: 16px; }
.gs-foot .gs-pay__item--sbp img { height: 24px; }
.gs-foot .gs-foot__m { display: none; }
/* «Наверх» (footer.php [data-to-top], клик — script.js темы). 13.10: была absolute на краю подвала, стрелка влево (тема поворачивает кружок −90°, картинку — ещё −90°).
   Стандарт сайта (решение 01.10, Q-03): одна липкая кнопка — белый круг 48, шеврон вверх, правый нижний угол; показывается после прокрутки на экран (shell.js §1б). */
.to-top.gs-totop { position: fixed; right: 24px; bottom: 24px; top: auto; z-index: 130; display: block; width: 48px; height: 48px; margin: 0; padding: 0; border: 1px solid var(--gs-line); border-radius: 50%; background: var(--gs-white) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23414141' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m18 15-6-6-6 6'/></svg>") center / 22px 22px no-repeat; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.14); transform: none; cursor: pointer; opacity: 0; visibility: hidden; transition: opacity 0.2s ease, visibility 0.2s ease; }
.to-top.gs-totop.is-shown { opacity: 1; visibility: visible; }
.to-top.gs-totop img { display: none; }
.to-top.gs-totop:hover { background-color: var(--gs-surface); border-color: var(--gs-graphite); }
.to-top.gs-totop:focus-visible { outline: none; box-shadow: var(--gs-focus); }
body:has(a.scroll-to-top) .to-top.gs-totop { display: none; }   /* если в настройках темы включат её кнопку — не дублировать */
@media (max-width: 1199px) {
  .gs-foot .gs-foot__card { padding: 32px 28px 24px; gap: 24px; }
  .gs-foot .gs-foot__cols { grid-template-columns: 1fr 1fr; gap: 28px; }
  .gs-foot .gs-foot__docs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto auto; }
  .gs-foot .gs-foot__row1 { flex-wrap: wrap; gap: 20px; }
  .gs-foot .gs-foot__spacer { display: none; }
}
/* мобильный подвал (эталон C): светлая плашка, кнопки звонка, аккордеоны */
@media (max-width: 800px) {
  footer.footer.gs-foot { padding: 0; color: var(--gs-ink); }
  .gs-foot .gs-foot__d { display: none; }
  .gs-foot .gs-foot__m { display: flex; flex-direction: column; gap: 14px; padding: 20px 16px; margin-bottom: 16px; background: var(--gs-tile); border-radius: 20px; }
  .gs-foot .gs-foot__m .gs-foot__logo img { height: 24px; filter: none; }
  .gs-foot .gs-foot__m-btns { display: flex; gap: 8px; }
  .gs-foot .gs-foot__m-btns .gs-btn { flex: 1 1 0; min-height: 48px; padding: 0 12px; border-radius: 14px; }
  .gs-foot .gs-foot__m .gs-foot__phone, .gs-foot .gs-foot__m .gs-foot__email { color: var(--gs-ink); }
  .gs-foot .gs-foot__m details { border-bottom: 1px solid rgba(0, 0, 0, 0.08); }
  .gs-foot .gs-foot__m summary { display: flex; align-items: center; justify-content: space-between; min-height: 48px; list-style: none; font-size: 16px; font-weight: 500; color: var(--gs-ink); cursor: pointer; }
  .gs-foot .gs-foot__m summary::-webkit-details-marker { display: none; }
  .gs-foot .gs-foot__m summary .gi { color: var(--gs-m-mute); transition: transform .15s; }
  .gs-foot .gs-foot__m details[open] summary .gi { transform: rotate(180deg); }
  .gs-foot .gs-foot__m .gs-foot__acc-body { display: flex; flex-direction: column; padding: 0 0 10px; }
  .gs-foot .gs-foot__m .gs-foot__acc-body, .gs-foot .gs-foot__m .gs-foot__acc-body a { text-align: left; align-items: flex-start; }   /* длинные названия документов не центрируются */
  .gs-foot .gs-foot__m .gs-foot__link { display: flex; align-items: center; min-height: 36px; font-size: 14px; color: var(--gs-m-sub); }
  .gs-foot .gs-foot__m .gs-pay__item { height: 32px; padding: 0 10px; }
  .gs-foot .gs-foot__m .gs-foot__copy-line { font-size: 12px; color: var(--gs-m-mute); }
  .gs-foot .gs-foot__m .gs-foot__req { font-size: 11px; line-height: 1.35; color: var(--gs-m-mute); }
}

/* ---------- COOKIES (одна кнопка согласия — решение заказчика 07.10) ---------- */
.gs-cookie { position: fixed; left: 24px; bottom: 24px; z-index: 3000; width: 400px; max-width: calc(100vw - 32px); padding: 16px 18px; background: var(--gs-white); border-radius: 16px; box-shadow: 0 12px 36px rgba(0, 0, 0, 0.16); display: flex; flex-direction: column; gap: 12px; }
.gs-cookie[hidden] { display: none; }
.gs-cookie__row { display: flex; gap: 12px; align-items: center; }
.gs-cookie__icon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; flex-shrink: 0; border-radius: 12px; background: #ffd250; color: var(--gs-ink); }
.gs-cookie__text { font-size: 13px; line-height: 1.4; color: var(--gs-text); }
.gs-cookie__text a { color: var(--gs-ink); text-decoration: underline; text-underline-offset: 2px; }
.gs-cookie__btn { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 44px; border-radius: 12px; background: var(--gs-graphite); color: var(--gs-white); font-size: 14px; font-weight: 500; cursor: pointer; }
.gs-cookie__btn:hover { background: var(--gs-graphite-dark); }
.gs-cookie .gs-cookie__btn:hover, .gs-cookie .gs-cookie__btn:focus, .gs-cookie .gs-cookie__btn:active { color: var(--gs-white); }   /* тема перекрашивает текст button:hover в тёмный */
@media (max-width: 800px) { .to-top.gs-totop { right: 16px; bottom: calc(var(--gs-tapbar) + var(--gs-tapbar-safe) + 12px); } }
@media (max-width: 800px) { .gs-cookie { left: 12px; right: 12px; width: auto; bottom: calc(var(--gs-tapbar) + var(--gs-tapbar-safe) + 8px); } }

/* ---------- Уведомление «добавлено в корзину» (JNoticeSurface) — бренд, на всём сайте ---------- */
.notice-surface { right: 24px; left: auto; top: auto; bottom: 24px; max-width: min(400px, calc(100% - 48px)); }
.notice-surface .notice { background: #ffffff; border-radius: 16px; box-shadow: 0 12px 36px rgba(0, 0, 0, 0.16); border: 0; font-family: 'Nekst', Arial, sans-serif; color: #000000; }
.notice-surface .notice__inner { padding: 14px 44px 14px 16px; }
.notice-surface .notice__info-wrap { margin: 0; gap: 12px; align-items: center; }
.notice-surface .notice__image-wrap, .notice-surface .notice__text-wrap { padding: 0; }
.notice-surface .notice__image { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 10px; background: #f6f6f6; overflow: hidden; }
.notice-surface .notice__image img { max-width: 86%; max-height: 86%; mix-blend-mode: multiply; }
.notice-surface .notice__text-wrap { color: #000000; }
.notice-surface .notice .notice__text-wrap .notice__title:first-child { margin-top: 0; }
.notice-surface .notice__title { display: flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 600; line-height: 1.1; color: #000000; }
.notice-surface .notice__title::before { content: ""; flex-shrink: 0; width: 18px; height: 18px; border-radius: 50%; background: #d12e28 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12l5 5 9-10'/></svg>") center / 11px no-repeat; }
.notice-surface .notice__detail { margin-top: 5px; font-size: 13px; line-height: 1.3; color: #4f4f4f; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.notice-surface .notice--link .notice__detail::after { content: "Перейти в корзину →"; display: block; margin-top: 6px; font-size: 13px; font-weight: 500; color: #d12e28; }
.notice-surface .notice__closer { top: 6px; right: 6px; width: 32px; height: 32px; border-radius: 50%; background: #f6f6f6; }
.notice-surface .notice__closer svg path { stroke: #414141; }
.notice-surface .notice__closer:hover { background: #ececec; }
@media (max-width: 800px) {
  .notice-surface { right: 12px; left: 12px; max-width: none; bottom: calc(var(--gs-tapbar) + var(--gs-tapbar-safe) + 8px); }
  .notice-surface .notice { width: 100%; }
}

/* ---------- ПОПАП «ЗАКАЗАТЬ ЗВОНОК» #gs-callback (Т/footer.php, shell.js) — эталон callback_card; общий для сайта ---------- */
.gs-modal { position: fixed; inset: 0; z-index: 10050; display: flex; align-items: center; justify-content: center; padding: 16px; font-family: 'Nekst', Arial, sans-serif; line-height: 1.2; color: var(--gs-ink); -webkit-font-smoothing: antialiased; }
.gs-modal[hidden] { display: none; }
.gs-modal, .gs-modal * { box-sizing: border-box; }
.gs-modal__backdrop { position: absolute; inset: 0; background: rgba(20, 20, 20, 0.6); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.gs-modal__card { position: relative; isolation: isolate; overflow: hidden; width: 460px; max-width: 100%; max-height: calc(100vh - 32px); overflow-y: auto; overscroll-behavior: contain; padding: 32px 32px 24px; border-radius: 24px; background: var(--gs-surface); box-shadow: 0 24px 64px rgba(0, 0, 0, 0.28); }
.gs-modal__bg { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: right top; z-index: -1; pointer-events: none; }
.gs-modal__close { position: absolute; top: 14px; right: 14px; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: var(--gs-white); color: var(--gs-ink); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12); cursor: pointer; }
.gs-modal__close .gi { width: 20px; height: 20px; stroke-width: 1.8; display: block; }
.gs-modal__title { max-width: 350px; margin: 0 0 8px; font-family: 'Nekst', Arial, sans-serif; font-size: 28px; font-weight: 600; line-height: 1.05; letter-spacing: 0; color: var(--gs-ink); }
.gs-modal__lead { max-width: 360px; margin: 0 0 16px; font-size: 15px; line-height: 1.25; color: var(--gs-text); }
.gs-modal__form { display: grid; gap: 10px; margin: 0; }   /* 16.10 (раунд 8, п. 8): компактнее — заголовок и подзаголовок в 2 строки, меньше зазоры */
.gs-modal__form[hidden] { display: none; }
.gs-modal__field { display: grid; gap: 6px; }
.gs-modal__label { display: block; margin: 0; font-size: 13px; font-weight: 500; line-height: 1.1; color: var(--gs-text); }
.gs-modal input.gs-modal__input { width: 100%; height: 48px; padding: 0 20px; margin: 0; border: 1px solid var(--gs-line); border-radius: 999px; background: var(--gs-white); box-shadow: none; font-family: 'Nekst', Arial, sans-serif; font-size: 15px; font-weight: 400; line-height: 1.2; color: var(--gs-ink); appearance: none; -webkit-appearance: none; }
.gs-modal input.gs-modal__input::placeholder { color: var(--gs-muted); opacity: 1; }
.gs-modal input.gs-modal__input:hover { border-color: #b5b5b5; }
.gs-modal input.gs-modal__input:focus { border-color: var(--gs-graphite); outline: none; box-shadow: none; }
.gs-modal input.gs-modal__input[aria-invalid="true"] { border-color: var(--gs-red); }
.gs-modal input.gs-modal__input:disabled { background: var(--gs-surface); color: #9a9a9a; }
.gs-modal__err { padding-left: 20px; font-size: 12px; line-height: 1.2; color: var(--gs-red); }
.gs-modal__err[hidden] { display: none; }
.gs-modal button.gs-modal__cta { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 48px; margin-top: 2px; padding: 14px 26px; border: 0; border-radius: 12px; background: var(--gs-red); color: var(--gs-white); font-family: 'Nekst', Arial, sans-serif; font-size: 15px; font-weight: 500; line-height: 1.1; white-space: nowrap; cursor: pointer; }
.gs-modal button.gs-modal__cta:hover { background: var(--gs-red-dark); color: var(--gs-white); }
.gs-modal__legal { margin: 0; text-align: center; font-size: 12px; line-height: 1.3; color: var(--gs-muted); }
.gs-modal__legal[hidden] { display: none; }
.gs-modal__legal a { color: inherit; text-decoration: underline; }
/* согласие на обработку ПД (компонент gigas:personal.data.consent) в попапе звонка — шрифт и цвета оболочки */
.gs-modal .gigas-consent { margin: 0; font-family: inherit; font-size: 13px; line-height: 1.4; color: var(--gs-text); }
.gs-modal .gigas-consent .gigas-consent__input { accent-color: var(--gs-red); }
.gs-modal .gigas-consent a { color: var(--gs-red-dark); }
.gs-modal .gigas-consent .gigas-consent__error { font-size: 12px; color: var(--gs-red-dark); }
/* 19.10 р.10: как в окне входа (L-088, исключение для компактных окон) — строки под ошибку нет, кнопка ближе к галочке;
   без согласия галочка и текст краснеют и вздрагивают, текст ошибки — для экранного диктора (role=alert) */
.gs-modal .gigas-consent .gigas-consent__error { position: absolute; width: 1px; height: 1px; min-height: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.gs-modal .gigas-consent:has([aria-invalid="true"]) .gigas-consent__label { color: var(--gs-red-dark); animation: gs-consent-shake .36s ease-in-out; }
.gs-modal .gigas-consent [aria-invalid="true"] { outline: 2px solid var(--gs-red); outline-offset: 1px; border-radius: 2px; }
@media (prefers-reduced-motion: reduce) { .gs-modal .gigas-consent:has([aria-invalid="true"]) .gigas-consent__label { animation: none; } }
.gs-modal__promise { display: block; margin-bottom: 0; font-size: 14px; font-weight: 500; color: var(--gs-ink); }
.gs-modal__ok { display: grid; gap: 10px; padding: 24px; border-radius: 12px; background: var(--gs-white); }
.gs-modal__ok[hidden] { display: none; }
.gs-modal__ok-icon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: rgba(209, 46, 40, 0.10); color: var(--gs-red); }
.gs-modal__ok-icon .gi { width: 20px; height: 20px; }
.gs-modal__ok-title { font-size: 18px; font-weight: 600; line-height: 1.1; color: var(--gs-ink); }
.gs-modal__ok-text { font-size: 14px; line-height: 1.3; color: var(--gs-text); }
.gi--spin { animation: gs-spin 0.9s linear infinite; }
@keyframes gs-spin { to { transform: rotate(360deg); } }
html.gs-modal-open { overflow: hidden; }
@media (max-width: 800px) {
  .gs-modal { align-items: flex-end; padding: 0; }
  .gs-modal__card { width: 100%; max-height: calc(100vh - 24px); border-radius: 20px 20px 0 0; padding: 32px 20px 24px; }
}

/* ---------- ВХОД (gigas:authorization, классы auth2025_*) — рестайл под бренд поверх style.css компонента; разметку и JS не трогаем ---------- */
body .auth2025_popup { font-family: 'Nekst', Arial, sans-serif; background-color: rgba(20, 20, 20, 0.6); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); color: var(--gs-ink); -webkit-font-smoothing: antialiased; }
.auth2025_popup .auth2025_popup__content, .auth2025_popup .auth2025_popup__content1, .auth2025_popup .auth2025_popup__content2, .auth2025_popup .auth2025_popup__content3, .auth2025_popup .auth2025_popup__content_wide { width: 440px; max-width: calc(100vw - 32px); max-height: calc(100vh - 32px); overflow-y: auto; border-radius: 24px; background: var(--gs-white); box-shadow: 0 24px 64px rgba(0, 0, 0, 0.28); }
.auth2025_popup .auth2025_popup__content_wide { width: 720px; }
.auth2025_popup .auth2025_x__ls { top: 14px; right: 14px; width: 40px; height: 40px; background: var(--gs-surface); }
.auth2025_popup .auth2025_x__ls:hover { background: var(--gs-surface-press); }
.auth2025_popup .auth2025_x__lsimg { top: 13px; left: 13px; width: 14px; filter: brightness(0); }
/* 19.10 р.11: класс дважды — вес (0,3,0) выше `.auth2025_popup p.auth2025_title` из стиля компонента (на test заголовок стал <p>, там белый цвет и margin !important) */
.auth2025_popup .auth2025_title.auth2025_title { margin: 10px 0 12px !important; padding-right: 40px; font-family: 'Nekst', Arial, sans-serif; font-size: 26px; font-weight: 600; line-height: 1.05; letter-spacing: 0; color: var(--gs-ink); text-align: left; }
.auth2025_popup .auth2025_subtext, .auth2025_popup .auth2025_text_pop1 { font-size: 15px; line-height: 1.3; color: var(--gs-text); text-align: left; }
.auth2025_popup .auth2025_subtext p, .auth2025_popup .auth2025_text_pop1 p, .auth2025_popup div > p[style] { color: var(--gs-text) !important; font-size: 14px !important; position: static !important; top: auto !important; text-align: left; }
.auth2025_popup input.auth2025_auth-input, .auth2025_popup form#smsAutForm input[type="tel"], .auth2025_popup #emailAuthForm input[type="email"], .auth2025_popup #popup_email_code input.auth2025_auth-input { width: 100%; height: 48px; margin: 0 0 10px; padding: 0 20px; border: 1px solid var(--gs-line); border-radius: 999px; background: var(--gs-white); box-shadow: none; font-family: 'Nekst', Arial, sans-serif; font-size: 15px; font-weight: 400; color: var(--gs-ink); }
.auth2025_popup input.auth2025_auth-input::placeholder { color: var(--gs-muted); opacity: 1; }
.auth2025_popup input.auth2025_auth-input:focus { border-color: var(--gs-graphite); outline: none; box-shadow: none; }
.auth2025_popup .auth2025_form-error, .auth2025_popup #codeError, .auth2025_popup #emailCodeError { color: var(--gs-red) !important; font-size: 12px; text-align: left; }
.auth2025_popup .auth2025_popup__button, .auth2025_popup button.auth2025_popup__button[style], .auth2025_popup #popup_email_code button.auth2025_auth-submit { display: inline-flex !important; align-items: center; justify-content: center; width: 100%; min-height: 48px; margin: 6px 0 0; padding: 14px 26px !important; border: 0; border-radius: 12px !important; background: var(--gs-red) !important; color: var(--gs-white) !important; font-family: 'Nekst', Arial, sans-serif; font-size: 15px !important; font-weight: 500; line-height: 1.1; letter-spacing: 0; text-transform: none; cursor: pointer; }
.auth2025_popup .auth2025_popup__button:not(:disabled):hover { background: var(--gs-red-dark) !important; }
.auth2025_popup .auth2025_popup__button:disabled, .auth2025_popup .auth2025_auth-submit:disabled { background: var(--gs-line) !important; color: var(--gs-muted) !important; cursor: default; }
.auth2025_popup .auth2025_email_end, .auth2025_popup a[data-target], .auth2025_popup a[data-target][style], .auth2025_popup #resendLink[style], .auth2025_popup #emailResendLink[style] { color: var(--gs-red) !important; font-size: 14px; font-weight: 500; text-decoration: none; }
.auth2025_popup .auth2025_email_end:hover, .auth2025_popup a[data-target]:hover { color: var(--gs-red-dark) !important; text-decoration: underline; }
/* 13.10: «Войти по почте» — заметная, но не акцентная кнопка (основное действие формы одно — красное); обработчик [data-target] компонента не меняется */
.auth2025_popup a.auth2025_email_end[data-target="popup_email_code"], .auth2025_popup a.auth2025_email_end[data-target="popup2"] { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 48px; padding: 0 20px; border: 1px solid var(--gs-line-strong); border-radius: 12px; background: var(--gs-white); color: var(--gs-ink) !important; font-size: 15px; font-weight: 500; text-decoration: none; }
.auth2025_popup a.auth2025_email_end[data-target="popup_email_code"]::before, .auth2025_popup a.auth2025_email_end[data-target="popup2"]::before { content: ""; width: 20px; height: 20px; flex-shrink: 0; background: currentColor; -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='4' width='20' height='16' rx='2'/><path d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/></svg>") center / contain no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='4' width='20' height='16' rx='2'/><path d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/></svg>") center / contain no-repeat; }
.auth2025_popup a.auth2025_email_end[data-target="popup_email_code"]:hover, .auth2025_popup a.auth2025_email_end[data-target="popup2"]:hover { border-color: var(--gs-graphite); color: var(--gs-ink) !important; text-decoration: none; }
.auth2025_popup hr { display: none !important; }   /* 13.10: линию над «Нажимая на кнопку…» убрали по замечанию заказчика */
.auth2025_popup .auth2025_bottom-text { padding: 4px 30px 22px; font-size: 12px; line-height: 1.3; color: var(--gs-muted); text-align: left; }
.auth2025_popup .auth2025_bottom-text a { color: inherit; text-decoration: underline; }
.auth2025_popup .auth2025_sms-input-row, .auth2025_popup #smsCodeInputs, .auth2025_popup #emailCodeInputs { display: flex; justify-content: center; gap: 10px; margin: 16px 0 12px; }   /* 13.10: поле кода по центру */
.auth2025_popup #codeError, .auth2025_popup #emailCodeError { text-align: center; }
.auth2025_popup .auth2025_sms-input, .auth2025_popup .auth2025_sms-input[type="text"] { width: 56px; height: 56px !important; border: 1px solid var(--gs-line); border-radius: 12px; font-family: 'Nekst', Arial, sans-serif; font-size: 24px; font-weight: 600; color: var(--gs-ink); background: var(--gs-white); }
.auth2025_popup .auth2025_sms-input:focus { border-color: var(--gs-graphite); box-shadow: none; }
.auth2025_popup .auth2025_sms-input.error { border-color: var(--gs-red); }
.auth2025_popup center, .auth2025_popup [style*="text-align: center"] { text-align: left !important; }
/* 20.10 р.13, п. 11: «Войти по номеру телефона» в окне почты — та же кнопка, что «Войти по почте», с иконкой телефона */
.auth2025_popup a.auth2025_email_end[data-target="popup2"]::before { -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384'/></svg>") center / contain no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384'/></svg>") center / contain no-repeat; }
/* 20.10 р.13, п. 16: «Сессия устарела…» и другие ошибки кода — по центру под полями кода (inline text-align у #codeError сбивало правило выше влево) */
.auth2025_popup #codeError, .auth2025_popup #codeError[style], .auth2025_popup #emailCodeError { text-align: center !important; }
.auth2025_popup .auth2025_type-card { border: 1px solid var(--gs-line); border-radius: 12px; background: var(--gs-white); }
.auth2025_popup .auth2025_type-card:hover { border-color: var(--gs-graphite); }
.auth2025_popup .auth2025_type-card input[type="radio"]:checked + .auth2025_radio-custom { border-color: var(--gs-red); background: var(--gs-red); }
.auth2025_popup .auth2025_type-card-text, .auth2025_popup .auth2025_type-card-text strong, .auth2025_popup .auth2025_type-card-text span { color: var(--gs-ink); }
.auth2025_popup .auth2025_type-card-text span { color: var(--gs-text); }
.auth2025_popup .auth2025_type-card input[type="radio"]:checked ~ .auth2025_type-card-text strong { color: var(--gs-red); }
/* 13.10: окно входа — в дизайне попапа «Заказать звонок» (фон с узором callback-bg, белый круглый крестик, заголовок 28) и чекбокс согласия вместо текста «Нажимая на кнопку…» */
.auth2025_popup .auth2025_popup__content, .auth2025_popup .auth2025_popup__content1, .auth2025_popup .auth2025_popup__content2, .auth2025_popup .auth2025_popup__content3, .auth2025_popup .auth2025_popup__content_wide { background: var(--gs-surface) url("/local/templates/.default/images/gigas-shell/callback-bg-920x1120.webp") right top / cover no-repeat; }
.auth2025_popup .auth2025_popup__content > div:first-child, .auth2025_popup .auth2025_popup__content1 > div:first-child { padding: 40px 32px 28px !important; }
.auth2025_popup .auth2025_x__ls { background: var(--gs-white); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12); }
.auth2025_popup .auth2025_x__ls:hover { background: var(--gs-white); box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2); }
/* 14.10: крестик — тонкий X 20 px (как .gs-modal__close «Заказать звонок») вместо жирного растрового /images/x.png */
.auth2025_popup .auth2025_x__ls { display: grid; place-items: center; width: 40px; height: 40px; color: var(--gs-ink); }
.auth2025_popup .auth2025_x__ls .auth2025_x__lsimg { display: none; }
.auth2025_popup .auth2025_x__ls::before { content: ''; width: 20px; height: 20px; background: currentColor; -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'><path d='M18 6 6 18M6 6l12 12'/></svg>") center / contain no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'><path d='M18 6 6 18M6 6l12 12'/></svg>") center / contain no-repeat; }
.auth2025_popup .auth2025_x__ls:hover { color: var(--gs-red); }
.auth2025_popup .auth2025_title.auth2025_title { max-width: none; margin: 0 0 10px !important; font-size: 26px; }   /* 16.10 р.9: «Введите номер телефона,» — одной строкой, «чтобы войти» — второй (было max-width 320 и 28 px → 3 строки; строка в 26 px ≈ 330 px при месте 336) */
.auth2025_popup .auth2025_subtext { margin-bottom: 20px; }
.auth2025_popup .gigas-consent { margin: 4px 0 4px; font-family: inherit; font-size: 13px; line-height: 1.4; color: var(--gs-text); text-align: left; }
.auth2025_popup .gigas-consent .gigas-consent__input { accent-color: var(--gs-red); }
.auth2025_popup .gigas-consent a { color: var(--gs-red-dark); text-decoration: underline; }
.auth2025_popup .gigas-consent .gigas-consent__error { font-size: 12px; color: var(--gs-red-dark); }
/* 16.10 р.9 (В1-а): «Войти» сразу под галочкой — строки под ошибку нет; без согласия галочка и текст краснеют и вздрагивают, текст ошибки остаётся для экранного диктора (role=alert) */
.auth2025_popup .gigas-consent { margin: 4px 0 0; }
.auth2025_popup .gigas-consent .gigas-consent__error { position: absolute; width: 1px; height: 1px; min-height: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.auth2025_popup .gigas-consent:has([aria-invalid="true"]) .gigas-consent__label { color: var(--gs-red-dark); animation: gs-consent-shake .36s ease-in-out; }
.auth2025_popup .gigas-consent [aria-invalid="true"] { outline: 2px solid var(--gs-red); outline-offset: 1px; border-radius: 2px; }
.auth2025_popup .gigas-consent + .auth2025_popup__button { margin-top: 14px; }
@keyframes gs-consent-shake { 0%, 100% { transform: translateX(0); } 20%, 60% { transform: translateX(-4px); } 40%, 80% { transform: translateX(4px); } }
@media (prefers-reduced-motion: reduce) { .auth2025_popup .gigas-consent:has([aria-invalid="true"]) .gigas-consent__label { animation: none; } }
.auth2025_popup a.auth2025_email_end[data-target="popup_email_code"], .auth2025_popup a.auth2025_email_end[data-target="popup2"] { background: var(--gs-white); }
/* 16.10 (раунд 8, п. 10): окна ввода кода (СМС и почта) — без пустоты; заголовок в одну строку; отсчёт и «Отправить код повторно» — по центру сразу под полями кода */
:is(#popup3, #popup_email_code_success) .auth2025_title { max-width: none; white-space: nowrap; }
:is(#popup3, #popup_email_code_success) .auth2025_popup__content1 > div:first-child { padding-bottom: 0 !important; }
:is(#popup3, #popup_email_code_success) .auth2025_popup__content1 > div:first-child > div:not([class]) p { margin-bottom: 0; }
:is(#popup3, #popup_email_code_success) .auth2025_sms-input-row { margin: 14px 0 8px; }
:is(#popup3, #popup_email_code_success) .auth2025_popup__content1 > div:last-child { padding: 4px 32px 24px !important; }
.auth2025_popup :is(#timerBlock, #emailTimerBlock) { margin: 0 0 8px; text-align: center !important; font-size: 13px !important; color: var(--gs-muted); }
.auth2025_popup :is(#timerBlock, #emailTimerBlock) p { margin: 0; text-align: center; color: var(--gs-muted) !important; font-size: 13px !important; }
.auth2025_popup :is(#resendBlock, #emailResendBlock), .auth2025_popup :is(#resendBlock, #emailResendBlock) center { margin: 0; text-align: center !important; }
@media (max-width: 800px) {
  body .auth2025_popup { align-items: flex-end; padding: 0; }   /* у компонента padding 15px и align-items:center (его style.css подключается позже shell.css) — шторка не доходила до краёв и низа */
  .auth2025_popup .auth2025_popup__content, .auth2025_popup .auth2025_popup__content1, .auth2025_popup .auth2025_popup__content2, .auth2025_popup .auth2025_popup__content3, .auth2025_popup .auth2025_popup__content_wide { width: 100%; max-width: 100%; max-height: calc(100dvh - 24px); margin: 0; border-radius: 20px 20px 0 0; }
  .auth2025_popup .auth2025_popup__content > div:first-child, .auth2025_popup .auth2025_popup__content1 > div:first-child { padding: 32px 20px 24px !important; }
  .auth2025_popup .auth2025_title.auth2025_title { font-size: min(24px, calc((100vw - 82px) / 13)); }   /* 16.10 р.9: 2 строки и на узких — кегль по ширине шторки (390 → 23,7, 360 → 21,4) */
}

/* ---------- КНОПКА «НАВЕРХ» темы (main.js: a#scrollToTop.scroll-to-top) — белый круг с шевроном вверх, без спрайта темы ---------- */
body a.scroll-to-top, body a.scroll-to-top.ROUND_COLOR, body a.scroll-to-top.RECT_COLOR, body a.scroll-to-top.ROUND_WHITE, body a.scroll-to-top.ROUND_GREY, body a.scroll-to-top.RECT_WHITE, body a.scroll-to-top.RECT_GREY, body a.scroll-to-top.TOUCH {
  width: 48px; height: 48px; margin: 0; border: 1px solid var(--gs-line); border-radius: 50%; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.14); font-size: 0; line-height: 0;
  background: var(--gs-white) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23414141' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m18 15-6-6-6 6'/></svg>") center / 22px 22px no-repeat !important;
}
body a.scroll-to-top:hover { background-color: var(--gs-surface) !important; border-color: var(--gs-graphite); }
body a.scroll-to-top::before, body a.scroll-to-top::after, body a.scroll-to-top > * { display: none !important; }
