/* ==========================================================================
   REDESIGN — ЯДРО ГЛАВНОЙ. Чистый БЭМ, БАЗОВЫЕ имена блоков, БЕЗ !important.
   --------------------------------------------------------------------------
   • Главная ИЗОЛИРОВАНА: redesign* подключаются ТОЛЬКО на site/index, и при
     этом старые CSS (bootstrap/main.style/new-design/…) на главную НЕ грузятся
     (см. AppAsset). Конфликтовать не с чем → !important не нужен.
   • Имена блоков базовые и семантичные (.page/.header/.search/.product-card…).
     На других страницах эти же имена живут на старом CSS, но главная их не
     видит (старый CSS туда не подключён). Файл — основа для переезда остальных
     страниц на новый дизайн.
   • Структура: header + (sticky search) + category-strip + main + footer.
     Секция = full-width background, контент — во вложенном .container.
   • ЕДИНЫЙ файл: ядро + шапка + подвал + модалки/виджеты — всё здесь, разделы
     помечены баннер-комментариями ниже.
   ========================================================================== */

:root {
    --accent:    #359966;
    --accent-d:  #2c7f55;
    --radius:    16px;
    --radius-sm: 10px;
    --radius-lg: 22px;
    /* Шим переменных для глобального виджета «Поддержка»: его inline-стили берут
       эти переменные из new-design.css, которого на изолированной главной нет. */
    --green: #359966; --green-h: #2c7f55; --green-light: #EAF7F1; --green-border: #B8E3D0;
    --text: #16130F; --muted: #718096; --border: #DDE0E5; --white: #fff;
    --font: 'Onest', -apple-system, 'Segoe UI', Roboto, sans-serif;
    --heading: 'Onest', -apple-system, 'Segoe UI', Roboto, sans-serif;
    --gs-font: 'Onest', -apple-system, 'Segoe UI', Roboto, sans-serif;
}

/* база (на изолированной главной старый reset/normalize не подключается) */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; }
body { background: #fff; font-family: 'Onest', -apple-system, 'Segoe UI', Roboto, sans-serif; color: #16130F; -webkit-font-smoothing: antialiased; }
/* Форм-контролы НЕ наследуют шрифт по спецификации (в Firefox кнопка = системный
   `-moz-button`, в Safari/iOS свой) — на изолированной главной нет легаси-normalize,
   поэтому задаём явно. appearance:none снимает нативный вид (iOS Safari: тень/градиент);
   на главной нет select/checkbox/radio, так что это безопасно. */
button, input, optgroup, select, textarea { font: inherit; }
button, input, textarea { -webkit-appearance: none; appearance: none; }
/* sr-only: h1/подписи для краулеров и скринридеров без визуального следа */
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

@keyframes gsPulse    { 0% { transform: scale(1); opacity: .55 } 70% { transform: scale(2.1); opacity: 0 } 100% { opacity: 0 } }
@keyframes gsSheetUp  { from { transform: translateY(100%) } to { transform: translateY(0) } }
@keyframes gsBackdrop { from { opacity: 0 } to { opacity: 1 } }

/* ── корень страницы: full-width, hero-градиент по верхней зоне (~440px) ── */
.page { background: linear-gradient(180deg, #F2F5F2 0, #fff 440px); font-family: 'Onest', -apple-system, 'Segoe UI', Roboto, sans-serif; color: #16130F; -webkit-font-smoothing: antialiased; }
.page, .page * { box-sizing: border-box; }
.page a { color: inherit; text-decoration: none; }
/* Исключение из .page a: ссылки-кнопки с акцентным фоном. Гостевые варианты
   login-btn и gs-support__submit — это <a>, и .page a (0,1,1) перебивал их
   color:#fff (0,1,0) → тёмный текст на зелёном. Возвращаем белый. */
.page a.login-btn, .page a.gs-support__submit { color: #fff; }
.page ::selection { background: rgba(53, 153, 102, .18); }

/* ── контейнер контента: 1380 (контент ≈1316 + боковые поля 32) ── */
.container { width: 100%; max-width: 1380px; margin: 0 auto; padding: 0 32px; }

.is-hidden { display: none; }

/* Легаси-виджеты из layout (не закрыты $isHome) на изолированной главной без
   своего CSS висят голыми — скрываем. Новые версии будут в новом дизайне.
   .mobile-nav — мобильная навигация; .gs-modal — гео-подтверждение города
   (на главной город меняется через свою модалку #regionModal). */
.mobile-nav { display: none; }
.gs-modal { display: none; }
/* Старый сквозной виджет поддержки (.ai-widget-container из layout) на главной не
   используем — здесь свой, в новом дизайне (FAB на десктопе + строка в меню на мобайле,
   попап #gs-support). На остальных страницах старый виджет остаётся как есть. */
.ai-widget-container { display: none; }

/* ── скрытый скроллбар (горизонт. чипы, на будущее) ── */
.gs-hscroll { scrollbar-width: none; -ms-overflow-style: none; }
.gs-hscroll::-webkit-scrollbar { display: none; }

/* ========================================================================
   ПОИСК — прилипает к верху при прокрутке (строка поиска + «часто ищут»).
   Вынесен из <header> в .page как самостоятельный блок: position:sticky
   ограничен родителем, а родитель .page = высота всей страницы → пин на всю
   ленту. На фоне hero-градиента; при «приклеивании» (JS .search--stuck) —
   белая подложка + тень.
   ======================================================================== */
.search { position: sticky; top: 0; z-index: 50; padding: 10px 0 12px; background: transparent; transition: background .2s ease, box-shadow .2s ease; }
.search--stuck { background: #fff; box-shadow: 0 6px 20px -12px rgba(40, 20, 0, .28); }
.search__scope { display: flex; gap: 28px; border-bottom: 1px solid #EFE7DD; }
.search__tab { background: none; border: 0; cursor: pointer; font-family: 'Onest', -apple-system, 'Segoe UI', Roboto, sans-serif; font-size: 15px; font-weight: 600; color: #9A9189; padding: 0 0 14px; margin-bottom: -1px; border-bottom: 2px solid transparent; }
.search__tab--active { color: #16130F; border-bottom-color: var(--accent, #359966); }
.search__form { margin-top: 16px; }
.search__bar, .search-input-wrapper { position: relative; display: flex; align-items: center; background: #fff; border: 1.5px solid #E4DCD2; border-radius: var(--radius, 16px); padding: 0 7px 0 18px; }
.search__input { flex: 1; border: 0; outline: 0; font-size: 16px; padding: 17px 0; background: none; color: #16130F; font-family: inherit; }
.search__submit { background: var(--accent, #359966); color: #fff; border: 0; border-radius: calc(var(--radius, 16px) - 5px); padding: 13px 32px; font-weight: 700; font-size: 15px; cursor: pointer; font-family: inherit; }
/* обёртка «Искать в:» + сегмент: на десктопе прозрачна (label скрыт), на мобайле — flex-строка */
.search__scope-row { display: contents; }

/* suggest объявлений (классы рендерит adverts-suggest.js — НЕ переименовывать) */
.gs-svc-suggest { position: absolute; top: calc(100% + 8px); left: 0; right: 0; background: #fff; border-radius: 14px; box-shadow: 0 14px 44px -10px rgba(40, 20, 0, .3), 0 0 0 1px rgba(40, 20, 0, .05); padding: 7px; z-index: 60; max-height: 400px; overflow-y: auto; }
.gs-svc-suggest[hidden] { display: none; }
.gs-svc-suggest__item { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; background: none; border: 0; cursor: pointer; padding: 10px 12px; border-radius: 9px; font-family: inherit; font-size: 14px; color: #3E3933; }
.gs-svc-suggest__item.is-hover { background: #ECF5F0; }
.gs-svc-suggest__name { font-weight: 600; color: #16130F; }
.gs-svc-suggest__path { color: #9A9189; font-size: 13px; }
.gs-svc-suggest__count { margin-left: auto; font: 500 12px/1 'JetBrains Mono', monospace; color: #AEA498; }
.gs-svc-suggest__title { font: 500 11px/1 'JetBrains Mono', monospace; letter-spacing: .06em; text-transform: uppercase; color: #AEA498; padding: 8px 12px 4px; }
/* мобайл: длинный путь (особенно у услуг) сжимал пункт в одну строку — раскладываем
   в 2 строки: [название … count] сверху, путь категории — строкой ниже */
@media (max-width: 640px) {
    .gs-svc-suggest__item { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "name count" "path path"; align-items: baseline; column-gap: 8px; row-gap: 2px; }
    .gs-svc-suggest__name { grid-area: name; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .gs-svc-suggest__count { grid-area: count; margin-left: 0; }
    .gs-svc-suggest__path { grid-area: path; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

/* ── «часто ищут» — внутри .search, прилипает вместе со строкой ── */
.search-hints { padding: 14px 0 0; }
.search-hints__row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.search-hints__label { font-size: 13px; color: #9A9189; }
.hint { font-size: 13px; color: #4A443D; padding: 6px 12px; background: #ECF5F0; border-radius: 999px; cursor: pointer; text-decoration: none; }
.hint:hover { background: #D6EBE0; }

/* ========================================================================
   CATEGORY-STRIP — типы ТС + категории. Отдельный блок под шапкой (в потоке).
   ======================================================================== */
/* блок внутри секции «Товары» (под section-head); border-top — разделитель между
   шапкой и полоской категорий, снизу — отступ до сетки объявлений */
.category-strip { padding: 18px 0 0; border-top: 1px solid #F2EAE1; margin-bottom: 20px; }
.category-strip__vehicles { display: flex; gap: 22px; margin-bottom: 14px; }
.vehicle-type { cursor: pointer; font-size: 14px; font-weight: 500; color: #9A9189; padding-bottom: 6px; border-bottom: 2px solid transparent; }
.vehicle-type--active { font-weight: 700; color: #16130F; border-bottom-color: var(--accent, #359966); }
.category-strip__list { display: flex; flex-wrap: wrap; gap: 7px; }
.category-pill { display: flex; align-items: baseline; gap: 8px; padding: 7px 12px; background: #ECF5F0; border-radius: 999px; font-size: 13px; font-weight: 500; cursor: pointer; color: #16130F; text-decoration: none; }
.category-pill:hover { background: #D6EBE0; }
.category-pill__count { font: 500 11px/1 'JetBrains Mono', monospace; color: #AEA498; }
/* Видимость пилюль/кнопки считает redesign.js (renderCat) для активного таба: первые
   N совпадений видимы, переполнение и несовпавшие получают .is-hidden; «Показать больше»
   снимает капу. На мобайле is-hidden перебивается (см. медиа-запрос) — все пилюли в h-scroll. */
.category-pill.is-hidden { display: none; }
.category-strip__actions { display: flex; align-items: center; gap: 16px; margin-top: 14px; }
.category-strip__more { border: 1px solid #D8E6DE; background: #fff; color: var(--accent, #359966); font-size: 13px; font-weight: 600; padding: 8px 16px; border-radius: 999px; cursor: pointer; }
.category-strip__more:hover { background: #ECF5F0; }
.category-strip__more.is-hidden { display: none; }
.category-strip__catalog { font-size: 13.5px; font-weight: 600; color: var(--accent, #359966); text-decoration: none; }
.category-strip__catalog:hover { text-decoration: underline; }

/* ========================================================================
   MAIN / секции.
   ======================================================================== */
.content { display: block; }

/* ── ПРОМО ── */
.promo { padding: 26px 0 0; }
.promo__slider { position: relative; }
.promo__viewport { overflow: hidden; }
/* трек двигает redesign.js: смещение — CSS-переменная --promo-x, ширина карточки — --promo-cw
   (непрерывные величины → не BEM-состояние); мгновенный «прыжок» бесшовного цикла = .is-instant */
.promo__track { display: flex; gap: 16px; transform: translateX(var(--promo-x, 0px)); transition: transform .5s ease; will-change: transform; }
.promo__track.is-instant { transition: none; }
.promo__track .promo-card { flex: 0 0 var(--promo-cw, 280px); max-width: var(--promo-cw, 280px); }
.promo__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border-radius: 50%; border: 1px solid #E2DBD2; background: rgba(255, 255, 255, .94); color: #16130F; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 10px rgba(40, 20, 0, .14); opacity: 0; pointer-events: none; transition: opacity .2s; z-index: 2; }
.promo__nav svg { width: 18px; height: 18px; }
.promo__slider:hover .promo__nav, .promo__nav:focus-visible { opacity: 1; pointer-events: auto; }
.promo__nav:hover { background: #fff; }
.promo__nav--prev { left: 6px; }
.promo__nav--next { right: 6px; }
.promo-card { padding: 20px 22px; border-radius: var(--radius, 16px); background: #ECF5F0; display: flex; flex-direction: column; justify-content: space-between; min-height: 118px; }
.promo-card--accent { background: color-mix(in srgb, var(--accent, #359966) 14%, #fff); }
.promo-card__title { font-size: 16px; font-weight: 700; color: #16130F; }
.promo-card__text { font-size: 13px; color: #6B635A; margin-top: 5px; line-height: 1.4; }
.promo-card__cta { font-size: 13.5px; font-weight: 700; color: #16130F; margin-top: 14px; text-decoration: none; align-self: flex-start; }
.promo-card__cta:hover { text-decoration: underline; }
.promo-card__cta--accent { color: var(--accent, #359966); }
/* доступность: без авто-движения и без анимации сдвига при reduce-motion */
@media (prefers-reduced-motion: reduce) { .promo__track { transition: none; } }

/* ── ОБЩИЙ ЗАГОЛОВОК СЕКЦИИ ── */
.section-head { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 22px; gap: 24px; }
.section-head__eyebrow { font: 500 12px/1 'JetBrains Mono', monospace; letter-spacing: .08em; text-transform: uppercase; color: #AEA498; }
.section-head__eyebrow--warm { color: #B79A7E; }
.section-head__title { margin: 9px 0 0; font-size: 27px; font-weight: 700; letter-spacing: -.02em; color: #16130F; }
.section-head__sub { margin: 7px 0 0; font-size: 14px; color: #6B635A; max-width: 560px; line-height: 1.45; }
.section-head__aside { display: flex; align-items: center; gap: 16px; flex-shrink: 0; }
.section-head__link { font-size: 14px; font-weight: 600; color: var(--accent, #359966); cursor: pointer; flex-shrink: 0; }
.section-head__link--m { display: none; }  /* «Все →» только на мобайле (товары) */
.section-head__eyebrow-row { display: flex; align-items: center; gap: 8px; }
.live.live--inline { display: none; }  /* статус «Обновляется» рядом с eyebrow — только на мобайле; компаунд, чтобы перебить .live{display:flex} ниже */

/* ── ТОВАРЫ ── */
.goods { padding: 38px 0 8px; }
.live { display: flex; align-items: center; gap: 7px; font-size: 12px; color: #9A9189; }
.live__dot { position: relative; width: 7px; height: 7px; }
.live__core { position: absolute; inset: 0; border-radius: 50%; background: #43B37D; }
.live__ring { position: absolute; inset: -3px; border-radius: 50%; border: 1.5px solid #43B37D; opacity: .5; animation: gsPulse 2s ease-out infinite; }
.toggle { display: flex; gap: 10px; }
.toggle__pill { appearance: none; border: 0; cursor: pointer; font-family: 'Onest', -apple-system, 'Segoe UI', Roboto, sans-serif; font-size: 14px; font-weight: 600; padding: 10px 17px; border-radius: 999px; transition: all .15s; background: #ECF5F0; color: #4A443D; }
.toggle__pill--active { background: var(--accent, #359966); color: #fff; }
.toggle__count { opacity: .62; font-weight: 500; margin-left: 7px; }
/* контейнер-обёртка для авто-обновления: внутри 2 набора (.goods__set), видим только .is-active;
   во время подмены набора плавно гасим/возвращаем непрозрачность (.is-fading) */
.goods__ads { position: relative; transition: opacity .3s ease; }
.goods__ads--hidden { display: none; }
.goods__price { display: none; }
.goods__price--shown { display: block; }
.pricelist { position: relative; transition: opacity .3s ease; }
.goods__ads.is-fading, .pricelist.is-fading { opacity: 0; }
.goods__set { display: none; }
.goods__set.is-active { display: grid; }
.goods__ads .goods__set { grid-template-columns: repeat(4, 1fr); gap: 18px; }
.pricelist .goods__set { gap: 12px; }
.goods__more { margin-top: 20px; }
.goods__more-link { font-size: 14px; font-weight: 600; color: var(--accent, #359966); cursor: pointer; }

.product-card { cursor: pointer; display: block; color: #16130F; text-decoration: none; }
.product-card:hover { transform: translateY(-3px); }
.product-card__media { position: relative; height: 150px; border-radius: var(--radius, 16px); overflow: hidden; background: #ECF5F0; display: flex; align-items: center; justify-content: center; }
.product-card__img { width: 100%; height: 100%; object-fit: cover; }
.product-card__badge { position: absolute; top: 10px; left: 10px; background: rgba(22, 19, 15, .7); color: #fff; font-size: 11px; font-weight: 600; padding: 3px 9px; border-radius: 999px; }
.product-card__body { padding: 12px 2px 0; }
.product-card__title { font-size: 14px; font-weight: 600; line-height: 1.32; color: #16130F; min-height: 37px; }
.product-card__price { font-size: 18px; font-weight: 800; margin-top: 7px; letter-spacing: -.01em; }
.product-card__meta { font-size: 12px; color: #9A9189; margin-top: 6px; }

.price-row { display: flex; align-items: center; gap: 18px; padding: 16px 20px; border: 1px solid #EEE7DE; border-radius: var(--radius, 16px); cursor: pointer; color: #16130F; text-decoration: none; }
.price-row:hover { border-color: #E0D5C7; background: #F4FAF7; }
.price-row__logo { width: 52px; height: 52px; border-radius: var(--radius-sm, 10px); border: 1px solid #E5E7EB; background: color-mix(in srgb, var(--accent, #359966) 12%, #fff); color: var(--accent, #359966); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 15px; flex-shrink: 0; overflow: hidden; }
.price-row__logo--img { background: #fff; }
.price-row__logo-img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.35); display: block; }
.price-row__body { flex: 1; min-width: 0; }
.price-row__name { font-size: 16px; font-weight: 700; color: #16130F; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.price-row__desc { font-size: 13px; color: #6B635A; margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.price-row__price-wrap { text-align: right; margin-right: 6px; }
.price-row__price { font: 500 13px/1.3 'JetBrains Mono', monospace; color: #16130F; }
.price-row__open { background: #16130F; color: #fff; border-radius: 999px; padding: 10px 18px; font-size: 13px; font-weight: 600; flex-shrink: 0; }

/* ── УСЛУГИ ── */
.services { margin-top: 30px; padding: 36px 0 40px; background: linear-gradient(180deg, #F1F4F0, #EDF1EC); border-top: 1px solid #E4EAE2; }
.services .section-head { margin-bottom: 18px; }
.services__cats { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 22px; }
.service-chip { font-size: 13.5px; font-weight: 500; color: #3E3933; padding: 9px 15px; background: #fff; border-radius: 999px; cursor: pointer; box-shadow: 0 1px 2px rgba(40, 20, 0, .05); text-decoration: none; }
.service-chip:hover { background: #F6F2EC; }
.service-chip.is-hidden { display: none; }
.services__more { font-size: 13px; font-weight: 600; color: var(--accent, #359966); padding: 9px 15px; background: #fff; border: 1px solid #D8E6DE; border-radius: 999px; cursor: pointer; box-shadow: 0 1px 2px rgba(40, 20, 0, .05); }
.services__more:hover { background: #ECF5F0; }
.services__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }

.company-card { display: flex; flex-direction: column; background: #fff; border-radius: var(--radius, 16px); padding: 18px; cursor: pointer; box-shadow: 0 1px 2px rgba(40, 20, 0, .05); color: #16130F; text-decoration: none; }
.company-card:hover { box-shadow: 0 10px 26px -14px rgba(40, 20, 0, .28); }
.company-card__head { display: flex; align-items: center; gap: 12px; }
.company-card__logo { width: 48px; height: 48px; border-radius: var(--radius-sm, 10px); border: 1px solid #E5E7EB; background: color-mix(in srgb, var(--accent, #359966) 12%, #fff); color: var(--accent, #359966); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 15px; flex-shrink: 0; overflow: hidden; }
.company-card__logo--img { background: #fff; }
/* лого зумим на 1.35; overflow:hidden на боксе кадрирует вылет */
.company-card__logo-img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.35); display: block; }
.company-card__info { flex: 1; min-width: 0; }
.company-card__name { display: flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 700; color: #16130F; }
.company-card__check { width: 15px; height: 15px; border-radius: 50%; background: var(--accent, #359966); color: #fff; font-size: 9px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.company-card__spec { font-size: 13px; color: #6B635A; margin-top: 2px; }
.company-card__rating { display: flex; align-items: center; gap: 9px; margin-top: 14px; font-size: 13px; }
.company-card__star { color: #E2920F; font-weight: 700; }
.company-card__reviews { color: #9A9189; }
.company-card__dot { color: #C7BDB0; }
.company-card__city { color: #9A9189; }
.company-card__foot { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; padding-top: 14px; border-top: 1px solid #F2ECE4; }
.company-card__price { font-size: 14px; font-weight: 800; color: #16130F; display: none; }
.company-card__contact { border: 1.5px solid color-mix(in srgb, var(--accent, #359966) 38%, #fff); color: var(--accent, #359966); background: #fff; border-radius: 999px; padding: 7px 16px; font-size: 13px; font-weight: 700; margin-left: auto; }
.m-services { display: none; }  /* услуги-строки только на мобайле */

/* ── ПУБЛИКАЦИИ ── */
.publications { padding: 40px 0 44px; }
.publications__grid { display: grid; grid-template-columns: 1.45fr 1fr; gap: 30px; }
.article-lead { cursor: pointer; display: block; color: #16130F; text-decoration: none; }
.article-lead__media { position: relative; height: 280px; border-radius: var(--radius-lg, 22px); overflow: hidden; background: #ECF5F0; display: flex; align-items: center; justify-content: center; }
.article-lead__img { width: 100%; height: 100%; object-fit: cover; }
.article-lead__badge { position: absolute; top: 14px; left: 14px; background: var(--accent, #359966); color: #fff; font-size: 12px; font-weight: 700; padding: 5px 12px; border-radius: 999px; }
.article-lead__eyebrow { display: none; }  /* тег-надпись лида только на мобайле */
.article-lead__title { font-size: 23px; font-weight: 700; line-height: 1.25; letter-spacing: -.015em; margin: 16px 0 0; color: #16130F; }
.article-lead__meta { font-size: 13px; color: #9A9189; margin-top: 10px; }
.publications__list { display: flex; flex-direction: column; }
.article-row { display: flex; gap: 15px; padding: 15px 0; border-bottom: 1px solid #F2ECE4; cursor: pointer; align-items: center; color: #16130F; text-decoration: none; }
.article-row__media { width: 78px; height: 64px; flex-shrink: 0; border-radius: var(--radius-sm, 10px); overflow: hidden; background: #ECF5F0; }
.article-row__img { width: 100%; height: 100%; object-fit: cover; }
.article-row__body { flex: 1; min-width: 0; }
.article-row__eyebrow { font: 500 10.5px/1 'JetBrains Mono', monospace; letter-spacing: .05em; text-transform: uppercase; color: var(--accent, #359966); }
.article-row__title { font-size: 15px; font-weight: 600; line-height: 1.32; margin-top: 6px; color: #16130F; }
.article-row__meta { font-size: 12px; color: #9A9189; margin-top: 6px; }

/* ── SEO ── */
.seo { padding: 28px 0 34px; border-top: 1px solid #F1ECE5; background: #fff; }
.seo__title { margin: 0 0 12px; font-size: 14px; font-weight: 700; color: #9A9189; letter-spacing: -.01em; }
.seo__text { margin: 0; font-size: 12.5px; line-height: 1.65; color: #A39A8F; text-align: justify; }
.seo__text p { margin: 0 0 10px; }
.seo__text p:last-child { margin-bottom: 0; }
.seo__link { color: #8A8178; cursor: pointer; }
/* кнопка-разворот — только на мобайле (см. медиа-запрос); на десктопе текст целиком */
.seo__more { display: none; }
/* ========================================================================
   ШАПКА (header) — своя у главной (у других страниц своя, старая).
   ======================================================================== */

.header { position: relative; z-index: 60; font-family: 'Onest', -apple-system, 'Segoe UI', Roboto, sans-serif; }
.header, .header * { box-sizing: border-box; }
.header a { color: inherit; text-decoration: none; }

/* --- верхняя utility-полоса (full-width белая, контент в .container) --- */
.header__bar { background: #fff; border-bottom: 1px solid #F1ECE5; }
.header__utility { display: flex; align-items: center; justify-content: space-between; padding: 9px 0; font-size: 13px; color: #6B635A; }
.header__utility-left { display: flex; align-items: center; gap: 18px; }
.header__utility-right { display: flex; align-items: center; gap: 8px; }
.header__city { display: flex; align-items: center; gap: 7px; cursor: pointer; color: #3E3933; font-weight: 500; }
.header__city-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent, #359966); }
.header__caret { color: #B7AEA3; }
.header__sep { width: 1px; height: 13px; background: #E3DBD1; }
.header__nav-link { cursor: pointer; color: #3E3933; font-weight: 500; }
.header__nav-link:hover { color: #16130F; }

/* --- hero-полоса (лого/ссылки/статистика); фон — градиент .page --- */
.header__hero { padding: 24px 0 18px; }
.header__hero-row { display: flex; align-items: center; gap: 30px; }
.header__actions { display: flex; align-items: center; gap: 22px; font-size: 14px; font-weight: 600; color: #3E3933; }
.header__action { cursor: pointer; }
.header__action-sep { width: 1px; height: 14px; background: #E3DBD1; }
.header__stats { margin-left: auto; text-align: right; font-size: 12.5px; color: #8A8178; line-height: 1.5; }
.header__stat-num { color: #16130F; font-size: 14px; }

/* --- логотип --- */
.logo { display: flex; align-items: center; flex-shrink: 0; cursor: pointer; }
.logo__img { height: 32px; width: auto; display: block; }

/* --- иконки-кнопки (сообщения/заказы/избранное) --- */
.icon-btn { position: relative; width: 36px; height: 36px; border-radius: 10px; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.icon-btn:hover { background: #ECF5F0; }
.badge { position: absolute; top: 2px; right: 2px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 999px; background: var(--accent, #359966); color: #fff; font-size: 10px; font-weight: 800; display: flex; align-items: center; justify-content: center; border: 2px solid #fff; }

/* --- дропдауны (заказы/профиль) --- */
.dropdown { position: relative; }
.menu { display: none; position: absolute; top: calc(100% + 12px); right: 0; background: #fff; border-radius: 16px; padding: 7px; z-index: 56; }
.menu--open { display: block; }
.menu--orders { width: 214px; box-shadow: 0 14px 44px -10px rgba(40, 20, 0, .3), 0 0 0 1px rgba(40, 20, 0, .05); }
.menu--profile { width: 240px; padding: 8px; box-shadow: 0 18px 50px -12px rgba(40, 20, 0, .32), 0 0 0 1px rgba(40, 20, 0, .05); }
.menu__item { display: flex; align-items: center; gap: 12px; padding: 9px 12px; border-radius: 9px; font-size: 14px; font-weight: 500; color: #3E3933; cursor: pointer; }
.menu__item:hover { background: #ECF5F0; }
.menu--orders .menu__item { padding: 10px 12px; }
.menu__item--logout { font-weight: 700; color: var(--accent, #359966); }
.menu__item--logout:hover { background: color-mix(in srgb, var(--accent, #359966) 14%, #fff); }
.menu__head { display: flex; align-items: center; gap: 12px; padding: 8px 10px 12px; }
.menu__head-text { min-width: 0; }
.menu__name { font-size: 16px; font-weight: 800; color: #16130F; letter-spacing: -.015em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.menu__sub { font-size: 12.5px; color: #9A9189; margin-top: 2px; }
.menu__sep { height: 1px; background: #F1ECE5; margin: 0 2px 6px; }
.menu__sep--mt { margin: 6px 6px; }

/* --- аватар --- */
.avatar { width: 32px; height: 32px; border-radius: 50%; background: #EDE7DF; display: flex; align-items: center; justify-content: center; flex-shrink: 0; overflow: hidden; }
.avatar--lg { width: 44px; height: 44px; box-shadow: inset 0 0 0 1px rgba(40, 20, 0, .06); }
.avatar__img { width: 100%; height: 100%; object-fit: cover; }

/* --- войти / профиль --- */
.login-btn { display: flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 999px; background: var(--accent, #359966); color: #fff; font-size: 13px; font-weight: 600; cursor: pointer; text-decoration: none; }
.login-btn:hover { background: var(--accent-d, #2c7f55); }
.profile { display: flex; align-items: center; gap: 6px; padding: 3px 6px 3px 3px; border-radius: 999px; cursor: pointer; }
.profile:hover { background: #ECF5F0; }
.profile__caret { color: #B7AEA3; }
/* ========================================================================
   ПОДВАЛ (footer) — свой у главной. Full-width тёмный фон, контент в .container.
   ======================================================================== */

.footer { background: #16130F; color: #B8B0A6; padding: 40px 0 26px; font-family: 'Onest', -apple-system, 'Segoe UI', Roboto, sans-serif; }
.footer, .footer * { box-sizing: border-box; }
.footer a { color: inherit; text-decoration: none; }
.footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr; gap: 28px; }
.footer__brand-row { display: flex; align-items: center; }
/* белый логотип под тёмный футер — отдельный файл с инвертированными цветами */
.footer__logo-img { height: 38px; width: auto; display: block; }
.footer__tagline { font-size: 13px; line-height: 1.5; margin: 14px 0 0; max-width: 260px; color: #998F84; }
/* соц-иконки под tagline — адаптированы под тёмный футер */
.footer__socials { display: flex; gap: 10px; margin-top: 18px; }
.footer__social { width: 40px; height: 40px; border-radius: 11px; background: rgba(255, 255, 255, .06); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background .15s ease, transform .15s ease; }
.footer__social:hover { background: rgba(255, 255, 255, .12); transform: translateY(-2px); }
.footer__social svg, .footer__social img { display: block; width: 22px; height: 22px; }
.footer__social-img { border-radius: 50%; object-fit: cover; }
.footer__col-title { font-size: 13px; font-weight: 700; color: #fff; margin-bottom: 12px; }
.footer__links { display: flex; flex-direction: column; gap: 9px; font-size: 13px; }
.footer__link { cursor: pointer; }
.footer__bottom { display: flex; align-items: center; justify-content: space-between; margin-top: 30px; padding-top: 20px; border-top: 1px solid #2C2720; font-size: 12.5px; color: #8A8076; }
/* ========================================================================
   МОДАЛКИ/ВИДЖЕТЫ. bootstrap.css на главной не подключён, поэтому здесь:
   1) механика модалок (Bootstrap-JS-совместимая) — чтобы скрытые модалки
      (#need_auth/#regionModal/жалоба) не висели видимыми, а открытая работала;
   2) модалка города (.region-modal__*) в новом дизайне (разметка/JS/данные —
      прежние). Модалка авторизации на главной не нужна (гость → /user/login).
   ======================================================================== */

/* --- механика модалок --- */
.modal { display: none; position: fixed; inset: 0; z-index: 1050; overflow-x: hidden; overflow-y: auto; outline: 0; }
.modal-open { overflow: hidden; }
.modal-dialog { position: relative; width: auto; margin: 1.75rem auto; max-width: 500px; pointer-events: none; }
.modal-content { position: relative; width: 100%; pointer-events: auto; background: #fff; border-radius: var(--radius, 16px); box-shadow: 0 24px 70px -18px rgba(40, 20, 0, .45); }
.modal-backdrop { position: fixed; inset: 0; z-index: 1040; background: #16130F; opacity: .5; }
.modal-backdrop.fade { opacity: 0; }
.modal-backdrop.show { opacity: .5; }
.fade { transition: opacity .15s linear; }
.fade:not(.show) { opacity: 0; }

/* --- модалка выбора города (новый дизайн) --- */
.region-modal__dialog { max-width: 760px; }
.region-modal__panel { position: relative; padding: 30px; }
.region-modal__close { position: absolute; top: 18px; right: 18px; width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; background: none; border: 0; border-radius: 10px; color: #9A9189; cursor: pointer; }
.region-modal__close:hover { background: #F1ECE5; color: #16130F; }
.region-modal__header { margin: 0 0 18px; padding-right: 40px; }
.region-modal__title { display: flex; align-items: center; gap: 9px; margin: 0; font-size: 22px; font-weight: 800; letter-spacing: -.02em; color: #16130F; }
.region-modal__title-icon { color: var(--accent, #359966); flex-shrink: 0; }
.region-modal__subtitle { margin: 7px 0 0; font-size: 13px; color: #9A9189; }
.region-modal__search { position: relative; margin-bottom: 16px; }
.region-modal__search-icon { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); color: #9A9189; display: flex; }
.region-modal__search-input { width: 100%; border: 1.5px solid #E4DCD2; border-radius: 12px; padding: 13px 16px 13px 44px; font-size: 15px; font-family: inherit; color: #16130F; outline: 0; }
.region-modal__search-input:focus { border-color: var(--accent, #359966); }
/* автокомплит поиска города (geolocation_search.js рендерит .autocomplete-items
   с пунктами .list-group-item / .active; bootstrap/legaci CSS на главной нет) */
.region-modal__search .autocomplete-items { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 5; max-height: 45vh; overflow-y: auto; overflow-x: hidden; background: #fff; border: 1px solid #EAECF0; border-radius: 12px; box-shadow: 0 12px 32px rgba(0, 0, 0, .12); }
.region-modal__search .autocomplete-items .list-group-item { display: block; padding: 10px 14px; font-size: 14px; line-height: 1.4; color: #3E3933; cursor: pointer; border: 0; background: none; }
.region-modal__search .autocomplete-items .list-group-item + .list-group-item { border-top: 1px solid #F4F1EC; }
.region-modal__search .autocomplete-items .list-group-item:hover,
.region-modal__search .autocomplete-items .list-group-item.active { background: #ECF5F0; color: #16130F; }
.region-modal__search .autocomplete-items .list-group-item strong { color: var(--accent, #359966); font-weight: 700; }
/* «Популярные города» (чипы) + эйбрау «Регионы и города» — как в дизайне */
.region-modal__pop-title { font-size: 13px; font-weight: 700; color: #16130F; margin: 2px 0 10px; }
.region-modal__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.region-modal__chip { display: inline-block; padding: 8px 14px; background: #ECF5F0; border-radius: 999px; font-size: 13.5px; font-weight: 500; color: #16130F; text-decoration: none; cursor: pointer; white-space: nowrap; }
.region-modal__chip:hover { background: #D6EBE0; }
.region-modal__list-title { font: 500 11px/1 'JetBrains Mono', monospace; letter-spacing: .08em; text-transform: uppercase; color: #AEA498; margin: 20px 0 10px; }
.region-modal__list { max-height: 50vh; overflow-y: auto; margin: 0 -6px; padding: 0 6px; }
.region-list-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; }
.region-list-grid__item { min-width: 0; }
.region-list-grid__item--all { grid-column: 1 / -1; margin-bottom: 4px; }
.region-list-link { display: block; padding: 10px 12px; border-radius: 9px; font-size: 14px; color: #3E3933; text-decoration: none; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.region-list-link:hover { background: #ECF5F0; color: #16130F; }
.region-list-grid__item--all .region-list-link { font-weight: 700; color: var(--accent, #359966); background: color-mix(in srgb, var(--accent, #359966) 8%, #fff); text-align: center; }

/* ========================================================================
   АДАПТИВ — ЭТАП 1 (основа). Планшет ≤1024 — рефлоу сеток; мобайл ≤640 — под
   мобильный дизайн (Claude Design «Мобильная»). Уникальные мобильные блоки
   (сегмент-контрол «Искать в:», промо-карусель, h-scroll категории, нижняя
   навигация, action-sheets, bottom-sheet города) — следующий этап.
   ======================================================================== */

/* ── ПЛАНШЕТ ── */
@media (max-width: 1024px) {
    .container { padding: 0 24px; }
    .goods__ads .goods__set { grid-template-columns: repeat(3, 1fr); }
    .services__grid { grid-template-columns: repeat(2, 1fr); }
    .publications__grid { grid-template-columns: 1fr; gap: 24px; }
    .footer__grid { grid-template-columns: 1.4fr 1fr 1fr; row-gap: 28px; }
    .header__stats { display: none; }
}

/* ── МОБАЙЛ ── */
@media (max-width: 640px) {
    .container { padding: 0 16px; }

    /* шапка: на мобайле прячем десктоп-ссылки/статистику (мобильная шапка — отд. этап) */
    .header__utility { padding: 8px 0; }
    .header__utility-left { gap: 10px; }
    .header__utility-left .header__nav-link,
    .header__utility-left .header__sep { display: none; }
    .header__hero { padding: 14px 0 12px; }
    .header__actions, .header__stats { display: none; }
    .logo__img { height: 28px; }

    /* поиск: контейнер в колонку — зелёная строка ВЫШЕ сегмента «Искать в:» (как в дизайне) */
    .search { padding: 8px 0 10px; }
    .search .container { display: flex; flex-direction: column; }
    .search__form { order: 1; margin-top: 0; }
    .search__scope-row { order: 2; margin-top: 12px; }
    .search-hints { order: 3; display: none; }
    .search__bar { padding: 0 5px 0 14px; }
    .search__input { min-width: 0; font-size: 14px; padding: 13px 0; }  /* min-width:0 — иначе длинный placeholder выталкивает «Найти» */
    .search__submit { padding: 9px 16px; font-size: 13px; border-radius: 11px; }

    /* категории — горизонтальный скролл (список = .category-strip__list) */
    .category-strip__list { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 9px; padding-bottom: 2px; }
    .category-strip__list::-webkit-scrollbar { display: none; }
    .category-pill { white-space: nowrap; flex-shrink: 0; }

    /* промо (десктоп-слайдер) на мобайле скрыт — здесь только остаточные правила карточек */
    .promo { padding: 18px 0 0; }
    .promo-card { min-height: auto; padding: 16px 18px; }

    /* заголовок секции — строка: eyebrow+title(+подзаголовок) слева, «Все →» справа */
    .section-head { flex-direction: row; align-items: flex-start; gap: 12px; margin-bottom: 13px; }
    .section-head__eyebrow { font-size: 10.5px; }
    .section-head__title { font-size: 19px; margin-top: 6px; }
    .section-head__sub { display: block; font-size: 12px; line-height: 1.4; margin-top: 5px; max-width: none; }
    .section-head__link { font-size: 13px; }

    /* товары — 2 колонки; на мобайле: статус «Обновляется» у eyebrow, тоггл/прайс-листы скрыты */
    .goods { padding: 18px 0 8px; }
    .goods .section-head__aside { display: none; }       /* десктоп-aside (статус+тоггл) скрыт */
    .goods .live.live--inline { display: inline-flex; align-items: center; font-size: 10.5px; }
    .goods .live.live--inline .live__dot { width: 6px; height: 6px; }
    .goods .section-head__link--m { display: block; }
    .goods__more { display: none; }
    .goods__ads .goods__set { grid-template-columns: 1fr 1fr; gap: 13px; }
    .product-card__media { height: 118px; border-radius: 14px; }
    /* цена ВЫШЕ названия (мобильный паттерн карточки) */
    .product-card__body { display: flex; flex-direction: column; padding: 9px 0 0; }
    .product-card__price { order: 1; font-size: 16px; margin-top: 0; }
    .product-card__title { order: 2; font-size: 12.5px; font-weight: 500; line-height: 1.3; min-height: 0; margin-top: 4px; }
    .product-card__meta { order: 3; font-size: 11px; margin-top: 5px; }

    /* услуги — плоский список-строки (десктоп-сетка и чипы скрыты) */
    .services { margin-top: 6px; padding: 24px 0 22px; }
    .services__cats { display: none; }
    .services__grid { display: none; }
    .m-services { display: flex; flex-direction: column; gap: 10px; }

    /* публикации — все карточки плоскими строками (детали — Chunk E) */
    .publications { padding: 18px 0 10px; }
    .publications__grid { grid-template-columns: 1fr; gap: 0; }

    /* seo: на мобайле прячем «хвост» текста под «Показать ещё» */
    .seo { padding: 24px 0 28px; }
    .seo__text { font-size: 11.5px; position: relative; max-height: 8.5em; overflow: hidden; }
    .seo__text::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 46px; background: linear-gradient(rgba(255, 255, 255, 0), #fff); pointer-events: none; }
    .seo__more { display: inline-flex; align-items: center; margin-top: 12px; border: 1px solid #E7E0D8; background: #fff; color: #8A8178; font-size: 13px; font-weight: 500; padding: 8px 18px; border-radius: 999px; cursor: pointer; }
    .seo--expanded .seo__text { max-height: none; }
    .seo--expanded .seo__text::after { display: none; }
    .seo--expanded .seo__more { display: none; }

    /* футер — 2 колонки */
    .footer { padding: 32px 0 22px; }
    .footer__grid { grid-template-columns: 1fr 1fr; gap: 22px 20px; }
    .footer__bottom { flex-direction: column; gap: 8px; align-items: flex-start; }

    /* модалка города — компактнее на узком экране */
    .region-modal__dialog { margin: 12px; max-width: 100%; }
    .region-modal__panel { padding: 22px 18px; }
    .region-list-grid { grid-template-columns: 1fr 1fr; }
}

/* мобильные-онли элементы — скрыты по умолчанию, показываются ≤640 */
.header__hero-city, .search__scope-label, .category-strip__head { display: none; }

/* ── АДАПТИВ ЭТАП 2 · Chunk A: мобильная шапка, сегмент-поиск, категории-чипы ── */
@media (max-width: 640px) {
    /* шапка: utility-полоса убрана, лого + город в одну строку */
    .header__bar { display: none; }
    .header__hero { padding: 14px 0 10px; }
    .header__hero-row { justify-content: space-between; gap: 12px; }
    .header__hero-city { display: inline-flex; align-items: center; gap: 5px; background: none; border: 0; cursor: pointer; font-family: inherit; color: #3E3933; font-size: 12.5px; font-weight: 600; }

    /* поиск: зелёная строка + сегмент-контрол «Искать в:» (label + сегмент в одну строку) */
    .search__bar { background: #ECF5F0; border-color: transparent; border-radius: 15px; }
    .search__scope-row { display: flex; align-items: center; gap: 9px; }
    .search__scope-label { display: block; font-size: 11px; font-weight: 600; color: #9A9189; white-space: nowrap; flex-shrink: 0; margin-bottom: 0; }
    .search__scope { flex: 1; border-bottom: none; background: #E4F1EA; border-radius: 11px; padding: 3px; gap: 3px; overflow: visible; }
    .search__tab { flex: 1; text-align: center; padding: 7px 4px; margin-bottom: 0; border-bottom: none; border-radius: 8px; color: #7C746B; font-size: 13px; font-weight: 600; }
    .search__tab--active { background: #fff; color: #16130F; border-bottom-color: transparent; box-shadow: 0 1px 3px rgba(40, 20, 0, .16); }

    /* категории: заголовок «Категории / Все →» + чипы-карточки (pill), типы ТС скрыты */
    .category-strip { padding-top: 14px; margin-bottom: 14px; }
    .category-strip__vehicles { display: none; }
    .category-strip__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 11px; }
    .category-strip__head-title { font-size: 14px; font-weight: 700; color: #16130F; }
    .category-strip__head-all { font-size: 12.5px; font-weight: 600; color: var(--accent, #359966); }
    .category-pill { align-items: center; background: #fff; border: 1px solid #E7E0D8; border-radius: 999px; box-shadow: 0 1px 2px rgba(40, 20, 0, .05); padding: 9px 12px; gap: 7px; font-size: 12.5px; font-weight: 600; }
    .category-pill:hover { background: #fff; }
    .category-pill::after { content: "›"; color: #C7BDB0; font-size: 15px; line-height: 0; }
    .category-pill__count { display: none; }
    /* на мобайле все пилюли видны и едут h-scroll'ом (перебиваем is-hidden от JS-капы);
       «Показать больше»/«В каталог» не нужны — в шапке полоски уже есть «Все →» */
    .category-pill.is-hidden { display: flex; }
    .category-strip__actions { display: none; }
}

/* нижняя навигация — по умолчанию скрыта, показывается ≤640 */
.m-bottomnav { display: none; }

/* ── АДАПТИВ ЭТАП 2 · Chunk B: мобильная нижняя навигация (Меню / Создать / Профиль) ── */
@media (max-width: 640px) {
    .page { padding-bottom: 78px; }  /* место под фикс-бар */
    .m-bottomnav { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 2200; align-items: flex-end; justify-content: space-around; padding: 8px 24px calc(14px + env(safe-area-inset-bottom, 0)); background: #fff; border-top: 1px solid #F1ECE5; box-shadow: 0 -4px 22px -10px rgba(40, 20, 0, .18); }
    .m-bottomnav__item { display: flex; flex-direction: column; align-items: center; gap: 5px; width: 64px; flex: 0 0 auto; background: none; border: 0; cursor: pointer; font-family: inherit; text-decoration: none; }
    .m-bottomnav__ico { width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; }
    .m-bottomnav__ico svg { width: 24px; height: 24px; }
    .m-bottomnav__ico--pic { border-radius: 50%; background: #EDE7DF; }
    .m-bottomnav__ico--pic svg { width: 18px; height: 18px; }
    .m-bottomnav__txt { font-size: 10.5px; font-weight: 600; color: #6B635A; }
    .m-bottomnav__center { display: flex; flex-direction: column; align-items: center; gap: 6px; width: 64px; flex: 0 0 auto; }
    .m-bottomnav__plus { width: 52px; height: 52px; border-radius: 50%; background: var(--accent, #359966); border: 0; display: flex; align-items: center; justify-content: center; margin-top: -16px; box-shadow: 0 8px 18px -5px rgba(53, 153, 102, .6); cursor: pointer; color: #fff; }
    .m-bottomnav__plus svg { width: 26px; height: 26px; }
    .m-bottomnav__label { font-size: 10.5px; font-weight: 700; color: #16130F; }
}

/* ── АДАПТИВ ЭТАП 2 · Chunk C: модалка города → bottom-sheet на мобайле ── */
@media (max-width: 640px) {
    .region-modal__dialog { margin: 0; max-width: 100%; position: fixed; left: 0; right: 0; bottom: 0; transform: translateY(100%); transition: transform .32s cubic-bezier(.32, .72, 0, 1); }
    .modal.show .region-modal__dialog { transform: translateY(0); }
    .region-modal__panel { border-radius: 22px 22px 0 0; max-height: 88vh; padding: 18px 16px; display: flex; flex-direction: column; min-height: 0; }
    .region-modal__panel::before { content: ""; width: 36px; height: 4px; border-radius: 4px; background: #E2E8F0; margin: 0 auto 12px; flex-shrink: 0; }
    .region-modal__body { display: flex; flex-direction: column; min-height: 0; }
    .region-modal__list { flex: 1; min-height: 0; max-height: none; }
}

/* промо-карусель (мобайл) — скрыта по умолчанию */
.m-promo { display: none; }

/* ── АДАПТИВ ЭТАП 2 · Chunk D: промо — компактная карусель-баннер (1:1, авто-ротация) ── */
@media (max-width: 640px) {
    .promo { display: none; }
    .m-promo { display: block; padding: 12px 0 4px; }
    .m-promo__slot { position: relative; height: 72px; }
    /* сетка: иконка слева на 2 строки; справа — заголовок/подпись на ВСЮ ширину (не режутся),
       CTA отдельной строкой под текстом (раньше CTA стоял справа в строке и съедал ширину) */
    .m-promo__banner { position: absolute; inset: 0; display: grid; grid-template-columns: auto 1fr; grid-template-areas: "icon text" "icon cta"; column-gap: 12px; row-gap: 2px; align-content: center; padding: 0 14px; border-radius: 16px; background: color-mix(in srgb, var(--accent, #359966) 14%, #fff); color: #16130F; text-decoration: none; box-shadow: 0 2px 12px -8px rgba(40, 20, 0, .18); opacity: 0; transition: opacity .55s ease; pointer-events: none; }
    .m-promo__banner--alt { background: #E9F1E9; }
    .m-promo__banner.is-active { opacity: 1; pointer-events: auto; }
    .m-promo__icon { grid-area: icon; align-self: center; width: 40px; height: 40px; border-radius: 11px; background: #fff; display: flex; align-items: center; justify-content: center; color: var(--accent, #359966); box-shadow: 0 1px 2px rgba(40, 20, 0, .08); }
    .m-promo__icon svg { width: 20px; height: 20px; }
    .m-promo__banner--alt .m-promo__icon { color: #1F8A5B; }
    .m-promo__text { grid-area: text; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
    .m-promo__title { font-size: 14px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .m-promo__sub { font-size: 12px; color: #6B635A; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .m-promo__cta { grid-area: cta; justify-self: start; font-size: 12.5px; font-weight: 700; color: var(--accent, #359966); }
    .m-promo__banner--alt .m-promo__cta { color: #1F8A5B; }
    /* ряд управления: стрелки по краям + точки по центру */
    .m-promo__controls { display: flex; justify-content: center; align-items: center; gap: 12px; margin-top: 10px; }
    .m-promo__arrow { width: 27px; height: 27px; flex-shrink: 0; border-radius: 50%; border: 1px solid #E2DBD2; background: #fff; color: #16130F; padding: 0; display: flex; align-items: center; justify-content: center; cursor: pointer; -webkit-tap-highlight-color: transparent; }
    .m-promo__arrow:active { background: #F2EDE6; }
    .m-promo__arrow svg { width: 15px; height: 15px; }
    .m-promo__dots { display: flex; justify-content: center; align-items: center; gap: 6px; }
    .m-promo__dot { width: 5px; height: 5px; border-radius: 999px; background: #D8D0C6; border: 0; padding: 0; cursor: pointer; transition: width .3s, background .3s; }
    .m-promo__dot.is-active { width: 16px; background: var(--accent, #359966); }
}

/* ── АДАПТИВ ЭТАП 2 · Chunk E: публикации — плоский список (все карточки = строка, 1:1) ── */
@media (max-width: 640px) {
    .publications__grid { gap: 0; }
    .article-lead, .article-row { display: flex; gap: 12px; align-items: center; padding: 11px 0; border-bottom: 1px solid #F2ECE4; }
    .article-lead__media, .article-row__media { width: 62px; height: 58px; flex-shrink: 0; border-radius: 11px; }
    .article-lead__badge { display: none; }
    .article-lead__eyebrow, .article-row__eyebrow { display: block; font: 500 9.5px/1 'JetBrains Mono', monospace; letter-spacing: .05em; text-transform: uppercase; color: var(--accent, #359966); }
    .article-lead__body { flex: 1; min-width: 0; }
    .article-lead__title, .article-row__title { font-size: 13.5px; font-weight: 600; line-height: 1.3; margin: 5px 0 0; }
    .article-lead__meta, .article-row__meta { font-size: 11px; color: #9A9189; margin-top: 5px; }
}

/* ── АДАПТИВ ЭТАП 2 · Chunk F: услуги — карточки-строки (мобайл, 1:1) ── */
@media (max-width: 640px) {
    .m-service { display: flex; align-items: center; gap: 12px; background: #fff; border-radius: 15px; padding: 13px; box-shadow: 0 1px 2px rgba(40, 20, 0, .05); color: #16130F; text-decoration: none; }
    .m-service__logo { width: 46px; height: 46px; border-radius: 12px; background: color-mix(in srgb, var(--accent, #359966) 12%, #fff); color: var(--accent, #359966); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 15px; flex-shrink: 0; }
    .m-service__body { flex: 1; min-width: 0; }
    .m-service__name { display: flex; align-items: center; gap: 5px; font-size: 14px; font-weight: 700; color: #16130F; }
    .m-service__check { width: 14px; height: 14px; border-radius: 50%; background: var(--accent, #359966); color: #fff; font-size: 8px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .m-service__spec { font-size: 12px; color: #6B635A; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .m-service__rating { font-size: 12px; margin-top: 5px; }
    .m-service__star { color: #E2920F; font-weight: 700; }
    .m-service__meta { color: #9A9189; margin-left: 2px; }
    .m-service__contact { border: 1.5px solid color-mix(in srgb, var(--accent, #359966) 38%, #fff); color: var(--accent, #359966); background: #fff; border-radius: 999px; padding: 8px 14px; font-size: 12px; font-weight: 700; flex-shrink: 0; }
}

/* ── АДАПТИВ ЭТАП 2 · Chunk G: action-sheet'ы нижней навигации (iOS-стиль, контекстные окна) ── */
.m-sheet { position: fixed; inset: 0; z-index: 2300; display: flex; flex-direction: column; justify-content: flex-end; }
.m-sheet[hidden] { display: none; }
.m-sheet__backdrop { position: absolute; inset: 0; background: rgba(20, 16, 12, .42); animation: gsBackdrop .22s ease; }
.m-sheet__dock { position: relative; padding: 8px 8px calc(12px + env(safe-area-inset-bottom, 0)); animation: gsSheetUp .3s cubic-bezier(.32, .72, 0, 1); }
.m-sheet__panel { display: none; background: rgba(255, 253, 250, .95); -webkit-backdrop-filter: saturate(160%) blur(22px); backdrop-filter: saturate(160%) blur(22px); border: 1px solid rgba(120, 98, 72, .1); border-radius: 20px; overflow: hidden; margin-bottom: 8px; box-shadow: 0 18px 50px -18px rgba(40, 20, 0, .4); }
.m-sheet__panel.is-shown { display: block; }
.m-sheet__hint { text-align: center; padding: 14px 16px 11px; font-size: 12.5px; color: #8A8178; border-bottom: 1px solid #F1E9DE; }
.m-sheet__row { display: flex; align-items: center; gap: 14px; padding: 15px 18px; cursor: pointer; border-bottom: 1px solid #F1E9DE; color: #16130F; text-decoration: none; }
.m-sheet__row--nav { padding: 14px 18px; }
.m-sheet__panel > a.m-sheet__row:last-child { border-bottom: 0; }
.m-sheet__ic { width: 32px; height: 32px; border-radius: 9px; background: #ECF5F0; color: #6B5F50; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.m-sheet__ic--accent { background: color-mix(in srgb, var(--accent, #359966) 14%, #fff); color: var(--accent, #359966); }
.m-sheet__rowbody { flex: 1; min-width: 0; }
.m-sheet__rowtitle { display: block; font-size: 16px; font-weight: 600; color: #16130F; }
.m-sheet__rowsub { display: block; font-size: 12.5px; color: #9A9189; margin-top: 2px; }
.m-sheet__ic2 { color: #5A5249; display: flex; align-items: center; flex-shrink: 0; }
.m-sheet__ic2 svg { width: 20px; height: 20px; }
.m-sheet__ic2--accent { color: var(--accent, #359966); }
.m-sheet__navlabel { flex: 1; font-size: 16px; font-weight: 500; color: #16130F; }
.m-sheet__navval { font-size: 14px; font-weight: 600; color: #9A9189; flex-shrink: 0; }
.m-sheet__badge { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--accent, #359966); color: #fff; font-size: 11px; font-weight: 800; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.m-sheet__phead { display: flex; align-items: center; gap: 13px; padding: 16px 18px; border-bottom: 1px solid #F1E9DE; }
.m-sheet__pavatar { width: 46px; height: 46px; border-radius: 50%; background: #EDE7DF; box-shadow: inset 0 0 0 1px rgba(40, 20, 0, .06); display: flex; align-items: center; justify-content: center; flex-shrink: 0; overflow: hidden; }
.m-sheet__pavatar img { width: 100%; height: 100%; object-fit: cover; }
.m-sheet__pname { font-size: 17px; font-weight: 800; color: #16130F; letter-spacing: -.015em; }
.m-sheet__psub { font-size: 12.5px; color: #9A9189; margin-top: 2px; }
.m-sheet__cancel { background: rgba(255, 255, 255, .95); -webkit-backdrop-filter: saturate(160%) blur(22px); backdrop-filter: saturate(160%) blur(22px); border: 1px solid rgba(120, 98, 72, .1); border-radius: 20px; text-align: center; padding: 16px; font-size: 17px; font-weight: 700; color: #16130F; cursor: pointer; box-shadow: 0 18px 50px -18px rgba(40, 20, 0, .4); }

/* ========================================================================
   ПОДДЕРЖКА (главная) — свой виджет вместо сквозного .ai-widget-container.
   Десктоп: плавающая пилюля-FAB (низ-право) → попап-карточка над ней.
   Мобайл: FAB скрыт, вход — строка «Поддержка» в меню-шите → bottom-sheet.
   ======================================================================== */
.gs-support-fab { position: fixed; right: 24px; bottom: 24px; z-index: 1200; display: inline-flex; align-items: center; gap: 11px; background: var(--accent, #359966); color: #fff; border: 0; padding: 10px 18px 10px 10px; border-radius: 100px; box-shadow: 0 10px 28px -8px rgba(53, 153, 102, .45); cursor: pointer; font-family: inherit; transition: transform .2s ease, background .2s ease, box-shadow .2s ease; }
.gs-support-fab:hover { transform: translateY(-2px); background: var(--accent-d, #2c7f55); box-shadow: 0 14px 34px -8px rgba(53, 153, 102, .5); }
.gs-support-fab__icon { width: 36px; height: 36px; background: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--accent, #359966); flex-shrink: 0; }
.gs-support-fab__text { font-weight: 600; font-size: 15px; white-space: nowrap; }

/* Контекстное окно поддержки = структура/вид action-sheet'а (m-sheet): dock → frosted-panel
   → hint-шапка → body → cancel. Десктоп: «прикреплено» к низу-право над FAB. */
.gs-support { position: fixed; inset: 0; z-index: 1250; display: flex; justify-content: flex-end; align-items: flex-end; pointer-events: none; }
.gs-support[hidden] { display: none; }
.gs-support__backdrop { position: absolute; inset: 0; display: none; }
.gs-support__dock { position: relative; pointer-events: auto; width: 360px; max-width: calc(100vw - 36px); margin: 0 24px 88px 0; }
.gs-support__panel { background: rgba(255, 253, 250, .95); -webkit-backdrop-filter: saturate(160%) blur(22px); backdrop-filter: saturate(160%) blur(22px); border: 1px solid rgba(120, 98, 72, .1); border-radius: 20px; overflow: hidden; box-shadow: 0 18px 50px -18px rgba(40, 20, 0, .4); animation: fadeInY .2s ease-out; }
@keyframes fadeInY { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.gs-support__hint { text-align: center; padding: 14px 16px 11px; font-size: 12.5px; color: #8A8178; border-bottom: 1px solid #F1E9DE; }
.gs-support__body { padding: 16px; }
.gs-support__lead { font-size: 13px; color: #6B635A; margin: 0 0 12px; line-height: 1.5; }
.gs-support__form { display: flex; flex-direction: column; gap: 8px; margin: 0 0 16px; }
.gs-support__input { width: 100%; border: 1px solid #E2DCD3; border-radius: 10px; padding: 11px 13px; font-size: 14px; font-family: inherit; color: #16130F; background: #fff; outline: 0; }
.gs-support__input:focus { border-color: var(--accent, #359966); }
.gs-support__input::placeholder { color: #A9A096; }
.gs-support__submit { display: block; width: 100%; border: 0; border-radius: 10px; padding: 12px; background: var(--accent, #359966); color: #fff; font-family: inherit; font-weight: 700; font-size: 14px; text-align: center; text-decoration: none; cursor: pointer; transition: background .2s ease; }
.gs-support__submit:hover { background: var(--accent-d, #2c7f55); }
.gs-support__channels { display: flex; gap: 10px; flex-wrap: wrap; }
.gs-support__ch { flex: 1; min-width: 96px; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 11px 8px; border-radius: 10px; font-weight: 600; font-size: 13px; text-decoration: none; }
.gs-support__ch img { width: 18px; height: 18px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.gs-support__ch--tg { background: #eaf4fc; color: #0088cc; }
.gs-support__ch--max { background: #fef3e5; color: #FF8C00; }
.gs-support__ch--vk { background: #e5f1ff; color: #0077FF; }
.gs-support__cancel { display: none; }

/* мобайл: FAB убираем, окно → bottom-sheet 1:1 с m-sheet (dock + panel + cancel + подложка) */
@media (max-width: 640px) {
    .gs-support-fab { display: none; }
    .gs-support { z-index: 2400; justify-content: stretch; }
    .gs-support__backdrop { display: block; background: rgba(20, 16, 12, .42); pointer-events: auto; animation: gsBackdrop .22s ease; }
    .gs-support__dock { width: auto; max-width: none; margin: 0; padding: 8px 8px calc(12px + env(safe-area-inset-bottom, 0)); animation: gsSheetUp .3s cubic-bezier(.32, .72, 0, 1); }
    .gs-support__panel { margin-bottom: 8px; animation: none; }
    .gs-support__cancel { display: block; background: rgba(255, 255, 255, .95); -webkit-backdrop-filter: saturate(160%) blur(22px); backdrop-filter: saturate(160%) blur(22px); border: 1px solid rgba(120, 98, 72, .1); border-radius: 20px; text-align: center; padding: 16px; font-size: 17px; font-weight: 700; color: #16130F; cursor: pointer; box-shadow: 0 18px 50px -18px rgba(40, 20, 0, .4); }
}
