/* Тема lime (#398) — перенос структуры и дизайна макета Figma
   (файл «Перенести--Copy», десктоп 1350 / планшет 960 / мобайл 380).
   Оверрайды поверх общих стилей витрины (site_base → theme.css).
   Палитра макета: текст #141f38, серый #7f7f86, акцент #0752dd,
   цена #0e4cc0, подложки #f5f7fb, линии #d6d6e5/#d0d0e1,
   градиенты #0752dd→#16459c и #0e4cc0→#1d3156, футер #032462→#0044c3. */

/* ─── Токены темы ────────────────────────────────────────────────── */
/* Токены — на `body.theme-lime` (специфичность 0,1,1): бандлы страниц
   (`faq-*.css`/`page-*.css` с базовым `:root{--c-primary}`) подключаются
   ПОСЛЕ CSS темы, при равной специфичности база перебила бы акценты темы.
   Каталоговые переопределения печатает site_base.html отдельным блоком
   с повышенной специфичностью (ADR-0070 п. 3). */
body.theme-lime {
    --c-primary: #0752dd;
    --c-accent: #0e4cc0;
    /* Тёмные роли канона (ADR-0081, #1001): стопы градиентов макета,
       которые не выводятся из основных ролей. `primary_dark` — второй
       стоп панели поиска (#0752dd→#16459c), `accent_dark` — нижний стоп
       подвала (#032462→#0044c3). Каталоговое переопределение приходит
       отдельным блоком site_base.html — роль без значения остаётся на
       этих дефолтах. */
    --c-primary-dark: #16459c;
    --c-accent-dark: #032462;
    /* Оверлей фото в CTA-баннерах: акцент, затемнённый на 60 % и взятый
       с прозрачностью 58 % (макет: rgba(9, 32, 74, .58)). Слой строится
       из токена, иначе баннер не меняет цвет вместе с акцентом каталога —
       фото остаётся под прежним тёмно-синим фильтром. Расхождение с
       макетным оттенком — ΔE2000 = 4.36: принято владельцем как
       производное от `accent` (канон не расширяется). */
    --lime-photo-overlay: color-mix(
        in srgb,
        color-mix(in srgb, var(--c-accent) 40%, #000) 58%,
        transparent
    );
    --lime-dark: #141f38;
    --lime-muted: #7f7f86;
    --lime-line: #d6d6e5;
    --lime-border: #d0d0e1;
    --lime-bg-soft: #f5f7fb;
    --lime-chip-bg: #eef2fb;
    --lime-radius: 8px;
}

body.theme-lime {
    color: var(--lime-dark);
    /* Фон страницы (#414, прожарка №4 п.7): макет — белое полотно от
       формы поиска до подвала; серые — только панели-карточки
       (marks-grid, #414 п.8). Прежний #f5f7fb по всему полотну (#401)
       съедал панель марок и затенял карточки. */
    background: #fff;
}

body.theme-lime a {
    color: var(--c-primary);
    text-decoration: none;
}

body.theme-lime a:hover {
    color: var(--c-accent);
}

body.theme-lime .wrap {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}

/* Фоны секций — от края до края (#419, макет 9:2/9:84): легаси header
   и main имеют боковые поля (padding: 0 .875rem в general.css) — фон
   topline/шапки/hero/формы не доходил до краёв (белые полосы 12px).
   Контентные поля остаются у .wrap (padding 15px выше). */
body.theme-lime header,
body.theme-lime main {
    padding-left: 0;
    padding-right: 0;
}

/* Контентные контейнеры секций: боковые поля даёт легаси main padding
   (.875rem), на десктопе .wrap (max 1200px) центрирован сам — контент
   1200 без внутренних полей макетен (#419: сохранить геометрию 1440;
   планшет ≤990 — поля 15px в MQ ниже, там .wrap упирается в края). */
body.theme-lime .wrap.container {
    padding-left: 0;
    padding-right: 0;
}

/* Контейнеры секций — колонкой (канон avenu #199, приёмка #408 пп. 3/5/7):
   легаси ui.css задаёт .container { display: flex } — заголовок и сетка
   секции вставали в одну строку («Лучший выбор», отзывы, «Нужна
   помощь?»). Ряды карточек, где они макетные (марки+«Избранный поиск»,
   группа «о компании+услуги»), заданы grid'ом явно своими правилами
   ниже (#446: канон — один .wrap.container на секцию). */
body.theme-lime .wrap.container {
    display: block;
}

/* Форма поиска — белая карточка на всю ширину, контент с полями 20px
   (макет 9:85: панель 920, контент формы от x=20; на мобилке те же
   20px — правило общее, легаси MQ-дубль ниже убран). */
body.theme-lime .search-panel .wrap.container {
    padding-left: 20px;
    padding-right: 20px;
}

/* Единая карточка панели (#488 итерация 4): карточку несёт .wrap,
   а не .search-panel-form — детальные группы фасетов (facet-controls,
   «Все фильтры») раскрываются ВНУТРИ той же белой карточки, отдельной
   визуальной панели нет ни на главной, ни в каталоге. */
body.theme-lime .search-panel .wrap.container {
    background: #fff;
    border-radius: 20px;
    padding: 40px;
    box-shadow: 0 0 5.45px rgba(25, 32, 47, 0.09);
}

/* Форма — прозрачный контент карточки: фон/рамка/тень у .wrap. */
body.theme-lime .search-panel-form {
    background: transparent;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    gap: 28px;
}

/* Подвал: боковые поля (#414 п.14, макет 320: контент не прижат к
   краям) — .container обнуляет паддинги .wrap, подвал возвращаем
   к полям контента страницы (specifity выше .container). */
body.theme-lime .footer .wrap.container {
    padding-left: 15px;
    padding-right: 15px;
}

/* Кнопки темы: синяя таблетка 8px, вторичная — рамка. */
body.theme-lime .btn-primary,
body.theme-lime .hero-btn,
body.theme-lime .find-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--c-primary);
    color: #fff;
    border-radius: var(--lime-radius);
    padding: 17px 30px;
    font: 600 16px/1.2 "Inter", system-ui, sans-serif;
    border: 0;
    cursor: pointer;
    min-height: 44px;
    /* Сброс легаси виджет-кнопки (#412): margin-top: 10px растягивал
       flex-строку с кнопками до 64px (вторичная «раздувалась»), тень
       кнопок движка — конфликт с плоским макетом. */
    margin-top: 0;
    box-shadow: none;
}

body.theme-lime .btn-primary:hover {
    background: var(--c-accent);
    color: #fff;
}

body.theme-lime .hero-btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* Светло-серый фон, как фон герой-формы (приёмка v4, #432,
       макет 9:653): легаси белый #fff отличал кнопку от формы. */
    background: var(--lime-bg-soft);
    color: var(--lime-dark);
    border: 1px solid #cbcbde;
    border-radius: var(--lime-radius);
    padding: 16px 30px;
    font: 600 16px/1.2 "Inter", system-ui, sans-serif;
    min-height: 44px;
}

body.theme-lime .hero-btn-secondary:hover {
    border-color: #9d9ec4;
    color: var(--lime-dark);
}

/* Кнопки hero — единая высота (макет 9:653: обе 340×53; приёмка #408
   п.2): разный padding давал 44 vs 54px на пустой/заполненной кнопке. */
body.theme-lime .hero-btn,
body.theme-lime .hero-btn-secondary {
    min-height: 54px;
}

/* ═══ Cookie-UI (#463): палитра и радиусы с токенов темы ═══
   Базовый слой ui.css держит steel-синий #306fae; ссылки баннера уже
   в палитре (общее правило body.theme-lime a). Здесь — кнопки, «×»
   и радиусы поверхностей. Системная токенизация базового слоя — #464. */
/* «Принять» в баннере (#463, аддендумы I/J): компактная и приглушённая —
   белая подложка, светлый контур темы, текст в приглушённом тоне.
   --lime-muted (#7f7f86) не дотягивает до 4.5:1 на белом (замер 3.98:1),
   берём более тёмный серый #55565c (≈7.3:1). Hover — мягкая подложка
   темы + primary-текст, контур не меняется (решение человека, 5-й цикл
   приёмки; иерархия CTA — положением, не заливкой). */
body.theme-lime #accept-cookies {
    background-color: #fff;
    border: 1px solid var(--lime-line);
    border-radius: var(--lime-radius);
    box-shadow: none;
    padding: .4375rem .875rem;
    color: #55565c;
}

/* border-color в hover не повторяется: idle-правило (1,1,1) уже держит
   контур против base-hover `#accept-cookies:hover` (1,0,1), ревью PR #467. */
body.theme-lime #accept-cookies:hover {
    background-color: var(--lime-bg-soft);
    box-shadow: none;
    color: var(--c-primary);
}

body.theme-lime .cookie-settings-form__save {
    background-color: var(--c-primary);
    border: 1px solid var(--c-primary);
    border-radius: var(--lime-radius);
    box-shadow: none;
}

body.theme-lime .cookie-settings-form__save:hover {
    background-color: var(--c-accent);
    border-color: var(--c-accent);
}

/* Вторичная кнопка — рамка (язык темы: «синяя таблетка 8px,
   вторичная — рамка»), текст и hover в палитре. */
body.theme-lime .cookie-settings-form__decline {
    background-color: #fff;
    border: 1px solid var(--c-primary);
    border-radius: var(--lime-radius);
    box-shadow: none;
    color: var(--c-primary);
}

body.theme-lime .cookie-settings-form__decline:hover {
    background-color: var(--c-primary);
    border-color: var(--c-primary);
    color: #fff;
}

/* «Закрыть» модалки — ghost на сером темы. */
body.theme-lime .cookie-settings-modal__dismiss {
    border-radius: var(--lime-radius);
    box-shadow: none;
    color: var(--lime-muted);
}

body.theme-lime .cookie-settings-modal__dismiss:hover {
    background: var(--lime-bg-soft);
    box-shadow: none;
    color: var(--c-primary);
}

body.theme-lime .cookie-settings-modal__panel,
body.theme-lime .cookie-notification__content {
    border-radius: var(--lime-radius);
}

/* Чекбокс категорий (#463, аддендум). */
body.theme-lime .cookie-settings-form input[type="checkbox"] {
    accent-color: var(--c-primary);
}

body.theme-lime .section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 40px;
}

body.theme-lime .section-head h2 {
    font: 700 32px/1.1 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    margin: 0;
}

body.theme-lime .section-link {
    font: 600 16px/1 "Inter", system-ui, sans-serif;
    color: var(--c-primary);
    padding: 10px;
    white-space: nowrap;
}

/* ─── Шапка ──────────────────────────────────────────────────────── */
body.theme-lime .header {
    background: #fff;
    box-shadow: 0 0 2.5px rgba(25, 32, 47, 0.07);
    position: relative;
    z-index: 20;
}

body.theme-lime .topline {
    /* Тонкая полоса над шапкой — канонический accent (макет: #0e4cc0).
       Литерал заменён токеном (#658): переопределение акцента из каталога
       должно доходить до полосы. */
    background: var(--c-accent);
}

body.theme-lime .topline-nav {
    display: flex;
    justify-content: center;
    gap: 40px;
    flex-wrap: wrap;
    padding: 5px 20px;
    font: 400 14px/1 "Inter", system-ui, sans-serif;
    color: #fff;
    /* Контент topline — по центру на десктопе (макет: шапка 1200,
       фон на всю ширину; легаси-шапка была 1500–полной ширины). */
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

body.theme-lime .topline-nav a {
    color: #fff;
    /* Боковые padding убраны (#419): 8 пунктов с gap 40 не влезали
       в одну строку на планшете (макет: topline 37px, одна строка).
       white-space: nowrap — без переноса текста внутри пункта
       (flex-сжатие при переполнении давало 2 строки в «Подбор авто»). */
    padding: 5px 0;
    border-radius: 41px;
    white-space: nowrap;
    flex-shrink: 0;
}

body.theme-lime .topline-nav a:hover {
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
}

body.theme-lime .header-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 10px 20px;
    /* Контент шапки — по центру на десктопе (фон header на всю
       ширину; #419). */
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

body.theme-lime .header-marks {
    display: flex;
    align-items: center;
    gap: 20px;
}

/* Марки шапки (#419, макет 9:25/9:30): строка ссылок по образцу
   шторки .nav-marks (uppercase 14px, акцент-цвет на hover). */
body.theme-lime .header-marks-list {
    display: flex;
    align-items: center;
    gap: 14px;
    font: 600 14px/1 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    text-transform: uppercase;
    letter-spacing: .02em;
}

body.theme-lime .header-marks-list a {
    color: var(--lime-dark);
    white-space: nowrap;
}

body.theme-lime .header-marks-list a:hover {
    color: var(--c-primary);
}

body.theme-lime .header-marks-list .header-marks-more {
    color: var(--lime-muted);
}

body.theme-lime .logo-plate {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--c-primary);
    color: #fff !important;
    border-radius: 8px;
    padding: 5px 10px;
    font: 700 20px/1 "Inter", system-ui, sans-serif;
    text-transform: uppercase;
    letter-spacing: .02em;
    min-height: 34px;
}

/* Логотип витрины из окружения (BRAND_LOGO, волна логотипов): картинка
   вместо плашки — фиксированная высота, ширина по пропорциям. Высота
   65px — крупнее (было 60px, приёмка 02.10: «ещё крупнее на 5px»),
   соразмерна логотипу подвала. */
body.theme-lime .header-marks .logo img {
    height: 65px;
    width: auto;
    display: block;
}

/* Название сайта справа от логотипа шапки (BRAND_LOGO, #461): как в
   подвале (лого футера — картинка + имя в одном ряду); без BRAND_LOGO
   имя рендерится плашкой шапки (b внутри .logo-plate). */
body.theme-lime .header-marks .logo {
    display: inline-flex;
    align-items: center;
    gap: 12px;
}

body.theme-lime .header-marks .logo-site-name {
    background: var(--c-primary);
    color: #fff;
    border-radius: 8px;
    padding: 5px 10px;
    font: 700 20px/1 "Inter", system-ui, sans-serif;
    text-transform: uppercase;
    letter-spacing: .02em;
    white-space: nowrap;
}

/* Легаси-разделитель слева от бренда (general.css header a.logo:before) —
   серая вертикальная линия 1px задумана под текстовую вывеску; с
   логотипом-картинкой смотрится как рамка — скрываем (тема lime,
   как avenu; фикс приёмки 02.10: полоска слева от лого на мобилке). */
body.theme-lime header a.logo:before {
    content: none;
}

/* Шапка прилипает при скролле (#461, приёмка 01.10): sticky-позиция
   поверх контента; тоpline тонируется своим фоном (#0e4cc0), контент
   шапки — белым (тело витрины). */
body.theme-lime .header {
    position: sticky;
    top: 0;
    z-index: 110;
    background: #fff;
}

body.theme-lime .header-city {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font: 400 12px/1 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    white-space: nowrap;
}

/* Ссылка поиска шапки — по макету (Frame 39 1:568): серое поле-текст
   (Frame 34, 210×38, radius 8) + зазор 10px + синяя плашка-лупа
   33.52×33.52 (MagnifyingGlass) СПРАВА от поля. Ранее плашка 20×20
   сидела внутри серой пилюли — вокруг иконки читалась серая
   «обводка» (дефект приёмки: «иконка обведена тенью»). Разметка
   (img, span) не меняется — порядок задаётся order: текст слева,
   плашка справа. */
body.theme-lime .header-search-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: none;
    padding: 0;
    font: 400 16px/22px "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
    white-space: nowrap;
}

body.theme-lime .header-search-link span {
    order: 1;
    background: var(--lime-bg-soft);
    border-radius: 8px;
    padding: 8px 15px;
}

body.theme-lime .header-search-link img {
    order: 2;
    width: 33.5px;
    height: 33.5px;
}

body.theme-lime .header-search-link:hover {
    color: var(--lime-dark);
}

body.theme-lime .header-contacts {
    display: flex;
    align-items: center;
    gap: 15px;
}

/* Телефон и иконки не сжимаются (#419, макет Frame 219 328×51):
   при впритык-шапке планшета номер переносился на 2 строки
   (внутренний whitespace: normal). */
body.theme-lime .header-contacts .phone {
    color: var(--lime-dark);
    display: inline-flex;
    white-space: nowrap;
    flex-shrink: 0;
}

body.theme-lime .phone-number {
    font: 600 16px/1.2 "Inter", system-ui, sans-serif;
}

body.theme-lime .phone-tip {
    display: block;
    font: 400 10px/1.2 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime .header-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    /* Общая подложка блока иконок (#419, макет Frame 10): фон/радиус
       перенесены на .header-icons, у иконок — прозрачные. */
    background: transparent;
    border: 0;
    border-radius: 0;
    cursor: pointer;
    padding: 0;
}

body.theme-lime .header-icon img {
    width: 24px;
    height: 24px;
}

/* Иконки телефон/чат — одним блоком вплотную, обе кнопки акцентные
   (приёмка #429, макет Frame 10): мягкая подложка убрана, каждая
   кнопка — синяя плитка 40×40 с белым знаком; чат — темнее
   (--c-accent) и «утоплен» (inset-тень, как нажатая). Скругления
   — по краям группы (левый — у звонка, правый — у чата), как у
   макета. flex-shrink 0 — группа не сжимается при впритык-шапке. */
body.theme-lime .header-icons {
    display: flex;
    align-items: center;
    height: 51px;
    background: none;
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
}

body.theme-lime .header-icons .header-icon {
    width: 40px;
    height: 40px;
}

/* Плитка звонка — акцент темы (светлее), плитка чата — тёмный акцент
   с inset-тенью (макет: «кнопка чата темнее, слегка утоплена»). */
body.theme-lime .header-icons a.header-icon {
    background: var(--c-primary);
    border-radius: 8px 0 0 8px;
}

body.theme-lime .header-icons button.header-icon {
    background: var(--c-accent);
    border-radius: 0 8px 8px 0;
    box-shadow: inset 0 2px 4px rgba(9, 32, 74, 0.35);
}

/* Кнопка-бургер (#401): видна только на мобайле (≤760px);
   плоская — без рамки/тени/скругления (легаси-тень кнопок general.css
   давала «рамку»; приёмка #408 п.1), цвет — акцент темы (9:636). */
body.theme-lime .burger {
    display: none;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: none;
    color: var(--c-accent);
    cursor: pointer;
}

body.theme-lime .burger svg {
    width: 32px;
    height: 32px;
}

/* Шторка-меню (#401, макет «Mobile menu» 25:77; канон ADR-0052):
   фиксированная панель под топбаром, верх — на высоте шапки
   (--drawer-top ставит menu.js), мобильная версия. */
body.theme-lime .mobile-nav {
    display: none;
}

body.theme-lime .mobile-nav.open {
    display: block;
    position: fixed;
    top: var(--drawer-top, 50px);
    left: 0;
    right: 0;
    z-index: 90;
    max-height: calc(100vh - var(--drawer-top, 50px));
    overflow-y: auto;
    background: #fff;
    border-radius: 0 0 16px 16px;
    box-shadow: 0 16px 32px rgba(25, 32, 47, 0.12);
    /* Ритм анимации шторок — канонные переменные (general.css :root,
       ADR-0052): --drawer-duration / --drawer-easing, как у avenu. */
    animation: lime-nav-in var(--drawer-duration, .24s) var(--drawer-easing, ease-out);
}

@keyframes lime-nav-in {
    from {
        opacity: 0;
        transform: translateY(-12px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

/* Блокировка скролла вьюпорта при открытой шторке (#401): класс ставит
   только мобильный menu.js и снимается при закрытии и на resize; на
   десктопе бургер/шторка скрыты CSS — класс безвреден (канон avenu). */
html.nav-open {
    overflow: hidden;
}

body.theme-lime .nav-wrap {
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

/* Марки (макет: LADA HAVAL KIA ЕЩЁ) — ссылки каталога марок. */
body.theme-lime .nav-marks {
    display: flex;
    align-items: center;
    gap: 12px;
    font: 600 14px/1 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    text-transform: uppercase;
    letter-spacing: .02em;
}

body.theme-lime .nav-marks a {
    color: var(--lime-dark);
}

body.theme-lime .nav-marks .nav-marks-more {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--lime-muted);
}

body.theme-lime .nav-marks img {
    width: 12px;
    height: 12px;
}

/* Поиск (макет 340×40): поле-ссылка на панель поиска главной. */
body.theme-lime .nav-search a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    background: var(--lime-bg-soft);
    border-radius: 8px;
    padding: 10px 14px;
    font: 400 16px/1.2 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

/* «Избранное» / «Кредитный калькулятор» — строки с иконкой в подложке. */
body.theme-lime .nav-quick {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

body.theme-lime .nav-quick a {
    display: flex;
    align-items: center;
    gap: 10px;
    font: 600 16px/1 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    padding: 4px 0;
}

body.theme-lime .nav-quick img {
    width: 40px;
    height: 40px;
    padding: 8px;
    box-sizing: border-box;
    background: var(--lime-bg-soft);
    border-radius: 50%;
    color: var(--c-accent);
}

/* Навигация колонкой (Главная, Каталог + menu_items). */
body.theme-lime .nav-links {
    display: flex;
    flex-direction: column;
}

body.theme-lime .nav-links a {
    font: 400 16px/1.2 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    padding: 8.5px 0;
    border-bottom: 1px solid var(--lime-line);
}

/* Контакты шторки: телефон + иконки звонка/чата (макет Frame 11). */
body.theme-lime .nav-contacts {
    display: flex;
    align-items: center;
    gap: 15px;
    padding-top: 14px;
    border-top: 1px solid var(--lime-line);
    margin-top: 2px;
}

body.theme-lime .nav-contacts .phone-meta {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

/* Иконки звонка/чата шторки — ЕДИНАЯ плашка как в шапке 920
   (приёмка v4, #432; добор #436: «за пример — реализацию в шапке
   на планшетах»): легаси круглые подложки --lime-bg-soft заменены
   плитками, которые образуют одну кнопку-группу — вплотную без
   разрыва, скругления по краям группы (левый — у звонка, правый —
   у чата), чат тёмнее и «утоплен» (inset-тень). Разрыв между
   кнопками НЕ требуется (макет шторки — единая плашка). */
body.theme-lime .nav-contact-buttons {
    display: inline-flex;
    align-items: center;
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
}

body.theme-lime .nav-contact-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
    padding: 0;
}

body.theme-lime .nav-contacts a.nav-contact-icon {
    background: var(--c-primary);
    border-radius: 8px 0 0 8px;
}

body.theme-lime .nav-contacts button.nav-contact-icon {
    background: var(--c-accent);
    border-radius: 0 8px 8px 0;
    box-shadow: inset 0 2px 4px rgba(9, 32, 74, 0.35);
}

body.theme-lime .nav-contact-icon img {
    width: 24px;
    height: 24px;
}

/* ─── Хиро ───────────────────────────────────────────────────────── */
body.theme-lime .hero {
    /* Фон светло-серый (#415 п.5, макет 9:585): серый идёт сверху
       (шапка+hero) и уходит под верхнюю ~1/3 белой формы поиска;
       ниже полотно белое. Глубину серого под верхом формы задаёт
       наезд .search-panel (margin-top: −70px) — серый виден на
       70px под верхом карточки (~1/3 её высоты на десктопе). */
    background: var(--lime-bg-soft);
    padding: 60px 0 120px;
}

body.theme-lime .hero-inner {
    display: flex;
    flex-direction: column;
    gap: 44px;
}

body.theme-lime .hero-text {
    max-width: 640px;
    display: flex;
    flex-direction: column;
    gap: 22px;
}

body.theme-lime .hero-kicker {
    font: 700 23px/1 "Inter", system-ui, sans-serif;
    text-transform: uppercase;
    color: var(--lime-muted);
    margin: 0;
}

body.theme-lime .hero h1 {
    font: 700 59px/1.07 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    margin: 0;
}

body.theme-lime .hero-discount {
    color: #0553e9;
}

/* Подзаголовок из канального герой-баннера (рыба-контент #398). */
body.theme-lime .hero-note {
    display: block;
    margin-top: 16px;
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime .hero-subtitle {
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
    margin: 0;
}

body.theme-lime .hero-cta {
    display: flex;
    gap: 22px;
    flex-wrap: wrap;
    /* Кнопки одной высоты по центру ряда (#412): без align-items кнопки
       растягиваются по самой высокой строке flex-контейнера (64px). */
    align-items: center;
}

/* Равная ширина кнопок героя (макет 9:653: обе 340×53) — легаси давал
   кнопки по контенту 228/170px «вразнобой» (#412): flex-доли делят
   строку поровну, max-width держит предел макета. */
body.theme-lime .hero-cta .hero-btn,
body.theme-lime .hero-cta .hero-btn-secondary {
    flex: 1 1 0;
    max-width: 340px;
    white-space: nowrap;
}

body.theme-lime .hero-trust {
    display: flex;
    gap: 40px;
    flex-wrap: wrap;
    /* Воздух под кнопками (#412): .wrap.container display:block (фикс
       #408) отключает gap .hero-inner — отступ переносится сюда (макет:
       ~40–45px между кнопками и траст-строкой). */
    margin-top: 44px;
}

body.theme-lime .hero-trust-item {
    display: flex;
    gap: 10px;
    align-items: center;
    min-width: 200px;
}

body.theme-lime .hero-trust-item img {
    width: 36px;
    height: 36px;
}

body.theme-lime .hero-trust-item b {
    display: block;
    font: 700 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime .hero-trust-item span {
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

/* ─── Панель поиска и фильтров ───────────────────────────────────── */
body.theme-lime .search-panel {
    /* Форма наезжает на серый hero на −70px (#415 п.5): серый фон
       виден по бокам её верхней ~1/3, ниже полотно белое. */
    margin-top: -70px;
    position: relative;
    z-index: 5;
}

/* Главная: секция формы лежит прямо в main (в каталоге — внутри
   article.wrap). Даём ей канон .wrap — max-width 1200 + поля 15px,
   как у остальных блоков страницы (гриль 05.10: форма была прижата
   к краям экрана до 1200px, поля появлялись только после 1200 и
   росли от нуля). */
body.theme-lime main>.search-panel {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}

body.theme-lime .search-panel-row {
    display: flex;
    gap: 40px;
    align-items: center;
    flex-wrap: wrap;
}

body.theme-lime .search-field {
    display: flex;
    align-items: center;
    gap: 15px;
}

body.theme-lime .search-field>span:first-child,
body.theme-lime .range-cap {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
    white-space: nowrap;
}

body.theme-lime .search-query input,
body.theme-lime .search-range input {
    border: 0;
    border-bottom: 1px solid var(--lime-line);
    border-radius: 3px;
    padding: 8px;
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    background: transparent;
    width: 128px;
}

body.theme-lime .search-range .range-pair {
    position: relative;
    display: flex;
    gap: 7px;
    align-items: center;
    /* Поля «от/до» растягиваются под содержимое (приёмка v3, #429):
       фиксированные 62px резали значения («2200000» вплотную к рамке),
       макет 9:98–9:119 — пара по контенту. Пара занимает своё место
       в ряду, поля делят её поровну. */
    flex: 1 1 auto;
    min-width: 150px;
}

body.theme-lime .search-range input[name="price_min"],
body.theme-lime .search-range input[name="price_max"],
body.theme-lime .search-range input[name="year_min"],
body.theme-lime .search-range input[name="year_max"] {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
}

body.theme-lime .search-range .range-pair span {
    position: absolute;
    right: 8px;
    /* Приписка ₽/г. — тем же шрифтом и кеглем, что значения в
       полях (приёмка #436, макет: единый 16px без засечек).
       Легаси font-family: inherit наследовал serif от общих стилей
       (Times New Roman, кегль 14px) — задаём явно. */
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime .range-select {
    border: 1px solid var(--lime-border);
    border-radius: 8px;
    padding: 5px 15px;
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    background: #fff;
    min-height: 34px;
}

body.theme-lime .search-panel-filters {
    align-items: flex-end;
    /* Селекты компактным рядом (приёмка v3, #429): space-between
       растаскивал их на ~92px, макет 9:123–9:141 — плотная группа;
       приёмка 28.09 — зазор 16px между селектами. */
    justify-content: flex-start;
    gap: 16px;
}

body.theme-lime .select-field {
    display: flex;
    flex-direction: column;
    gap: 10px;
    position: relative;
    /* Ширина селекта по макету 9:123–9:141 (приёмка #429): 210px,
       легаси 128px давал узкие поля (135–140px фактически). */
    min-width: 128px;
    width: 210px;
}

body.theme-lime .select-field>span {
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
    /* Подпись-лейбл над полем (макет 9:123–9:141, #419): селекты
       без видимых подписей не совпадали с макетом. */
}

body.theme-lime .select-field select {
    appearance: none;
    -webkit-appearance: none;
    border: 1px solid var(--lime-border);
    border-radius: 8px;
    padding: 5px 30px 5px 15px;
    min-height: 34px;
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    background: #fff;
    cursor: pointer;
    width: 100%;
}

body.theme-lime .select-field img {
    position: absolute;
    right: 12px;
    bottom: 8px;
    width: 18px;
    height: 18px;
    pointer-events: none;
}

body.theme-lime .search-panel-actions {
    display: flex;
    align-items: center;
    gap: 20px;
    /* Кнопки — отдельной строкой слева под селектами (макет 9:148:
       Frame 61 x=0 под рядом селектов; #419) — без прижатия вправо. */
    margin-left: 0;
}

body.theme-lime .filters-link {
    font: 600 16px/1 "Inter", system-ui, sans-serif;
    color: var(--c-primary);
    /* Компактная ссылка (макет 125×36): убран широкий padding 10px;
       контент «Все фильтры» ~108px + боковые 8px = 124 ≈ 125. */
    padding: 10px 8px;
}

/* Кнопка «Найти» — в размер с макетом (129×40, #419): легаси
   btn-primary давал «раздутый» вид (53px из-за padding 17px 40px);
   padding 8px 40px даёт ~128×40 (текст «Найти» 48px + 80px). */
body.theme-lime .find-btn {
    min-height: 40px;
    padding: 8px 40px;
    border-radius: 8px;
}

/* Селектор цвета с образцами (#419, макет 9:142–9:145): кастомный
   dropdown (js/color-select.js), поле в стиле .select-field select;
   «Любой» — градиент зелёный→лиловый (макет). */
body.theme-lime .color-field {
    min-width: 149px;
}

body.theme-lime .color-select {
    position: relative;
}

body.theme-lime .color-select-trigger {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 34px;
    border: 1px solid var(--lime-border);
    border-radius: 8px;
    padding: 5px 30px 5px 15px;
    background: #fff;
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    cursor: pointer;
    text-align: left;
}

body.theme-lime .color-select-trigger img {
    position: absolute;
    right: 12px;
    top: 8px;
    width: 18px;
    height: 18px;
    pointer-events: none;
}

body.theme-lime .color-select-value {
    flex: 1 1 auto;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.theme-lime .color-swatch {
    flex: 0 0 14px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #9aa0a6;
    display: inline-block;
}

body.theme-lime .color-swatch.swatch-any {
    background: linear-gradient(135deg, #16a34a, #7c3aed);
}

body.theme-lime .color-select-list {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 30;
    margin: 0;
    padding: 6px;
    list-style: none;
    background: #fff;
    border: 1px solid var(--lime-border);
    border-radius: 8px;
    box-shadow: 0 12px 24px rgba(25, 32, 47, 0.12);
    max-height: 240px;
    overflow-y: auto;
}

body.theme-lime .color-option {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 6px;
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    cursor: pointer;
}

body.theme-lime .color-option:hover {
    background: var(--lime-bg-soft);
}

body.theme-lime .color-option[aria-selected="true"] {
    font-weight: 600;
}

/* Нативный select цвета — только источник значения для GET
   (скрыт визуально, но остаётся в форме: JS синхронизирует выбор). */
body.theme-lime .color-select-native {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    border: 0;
    clip: rect(0 0 0 0);
    overflow: hidden;
    white-space: nowrap;
}

/* ─── «Лучший выбор» ─────────────────────────────────────────────── */
body.theme-lime .best-choice {
    padding: 60px 0 0;
}

body.theme-lime .best-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

body.theme-lime .best-card {
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 0 2.5px rgba(25, 32, 47, 0.07);
    color: var(--lime-dark);
}

body.theme-lime .best-card:hover {
    box-shadow: 0 4px 14px rgba(25, 32, 47, 0.14);
    color: var(--lime-dark);
}

body.theme-lime .best-card-media {
    height: 182px;
    background: #eef0f4;
}

body.theme-lime .best-card-media img {
    width: 100%;
    height: 182px;
    object-fit: cover;
    display: block;
}

body.theme-lime .best-card .heartadd {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 36px;
    height: 36px;
    background: var(--lime-bg-soft);
    border-radius: 8px;
    padding: 8px;
    cursor: pointer;
}

body.theme-lime .best-card .heartadd svg {
    width: 20px;
    height: 20px;
    display: block;
}

body.theme-lime .best-card .heartadd svg path {
    stroke: var(--lime-dark);
}

body.theme-lime .best-card .heartadd.favorite svg path {
    fill: var(--c-primary);
    stroke: var(--c-primary);
}

body.theme-lime .best-card-body {
    display: flex;
    flex-direction: column;
    /* Комплектация прижата к названию (приёмка v3, #429, макет):
       легаси-зазор 12px под названием убран; цена сохраняет отступ
       за счёт отрицательного margin комплектации. */
    gap: 6px;
    padding: 15px;
}

body.theme-lime .best-card h3 {
    font: 700 20px/1.25 "Inter", system-ui, sans-serif;
    margin: 0;
    color: var(--lime-dark);
}

body.theme-lime .best-card-comp {
    font: 400 12px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
    margin-top: -5px;
}

body.theme-lime .best-card-price {
    margin: 0;
    font: 700 20px/1.4 "Inter", system-ui, sans-serif;
    /* Цена — акцентный оттенок макета #0e4cc0 (#658): токен, чтобы цвет
       следовал за акцентом каталога вместе с кнопками. */
    color: var(--c-accent);
}

/* Строка платежа в карточке «Лучший выбор» (гриль 07.10): тише цены,
   сразу под ней (flex-gap 6px карточки), вторичный тон темы. Общий
   include несёт <small> (семантика вторичного текста) — размер задаёт
   макетный класс, а не дефолт браузера. */
body.theme-lime .best-card-credit {
    margin: -2px 0 0;
    font: 400 13px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime .best-card-credit small {
    font-size: inherit;
}

body.theme-lime .best-card-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 20px;
}

body.theme-lime .best-card-chips span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font: 400 12px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
    white-space: nowrap;
}

body.theme-lime .best-card-chips img {
    width: 18px;
    height: 18px;
}

/* Легаси-слайдер #products на каталоге/детальной (ревью #421 проход 2):
   фикс-ширина на 21px шире своей колонки .catalog-main (3 карточки +
   амортизация gap) — при edge-to-edge main на планшете давал
   горизонтальный скролл 6px (secR 926 при vw 920). Вписываем
   в колонку: 191×3 + 2×21 = 615 ≤ 100% — раскладка 3 в ряд
   сохраняется и на 920, и на 1440. */
body.theme-lime #products {
    max-width: 100%;
}

/* ─── Марки + «Избранный поиск» ──────────────────────────────────── */
/* Макет: карточка марок слева, синий блок «Избранный поиск» справа.
   Канон разметки (#446): секция → ОДИН .wrap.container → ряд .marks-row
   (grid 2 колонки minmax(0,1fr), зазор 40px — макет 1:327: 580+40+580;
   ≤760 — столбик с зазором 20px в MQ ниже). До #446 панели были ДВУМЯ
   .wrap.container в flex-родителе с flex-basis 46% — проценты от ширины
   окна, а не от сетки 1200 (#419/#429/#439: строка растягивалась на
   весь экран, каждому брейкпоинту — свой костыль). */
body.theme-lime .marks-choice {
    padding: 60px 0 0;
}

body.theme-lime .marks-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px;
    align-items: stretch;
}

/* Пустой каталог без марок: visible_marks пуст → панель марок не
   рендерится, «Избранный поиск» занимает весь ряд (как обещает
   комментарий шаблона mark_selector.html). */
body.theme-lime .marks-row> :only-child {
    grid-column: 1 / -1;
}

body.theme-lime .marks-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 22px 30px;
    background: var(--lime-bg-soft);
    border-radius: 15px;
    padding: 40px;
    justify-content: space-between;
    height: 100%;
    align-content: flex-start;
}

/* Заголовок и ссылка «Все марки» — ВНУТРИ серой панели (#415 п.4,
   макет 9:1129): колонка «заголовок → ссылка», затем марки. */
body.theme-lime .marks-head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
    margin-bottom: 30px;
}

body.theme-lime .marks-head h2 {
    font: 700 32px/1.1 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    margin: 0;
}

body.theme-lime .marks-head .section-link {
    padding: 0;
}

body.theme-lime .mark-btn {
    display: flex;
    flex-direction: column;
    gap: 5px;
    align-items: center;
    width: 75px;
    color: var(--lime-dark);
    font: 600 16px/1.4 "Inter", system-ui, sans-serif;
}

body.theme-lime .mark-btn:hover {
    color: var(--c-primary);
}

body.theme-lime .mark-btn img,
body.theme-lime .mark-placeholder {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 5px rgba(25, 32, 47, 0.07);
    display: flex;
    align-items: center;
    justify-content: center;
    font: 700 20px/1 "Inter", system-ui, sans-serif;
    color: var(--c-primary);
    object-fit: contain;
}

body.theme-lime .search-strip {
    /* Градиент от канонического primary (макет: #0752dd→#16459c, #658):
       второй стоп — тёмная роль `primary_dark` (ADR-0081, #1001), ровно
       макетный #16459c. Литералов нет: переопределение акцента из каталога
       доходит до обоих стопов панели поиска. */
    background: linear-gradient(180deg, var(--c-primary), var(--c-primary-dark));
    border-radius: 15px;
    padding: 40px;
    height: 100%;
}

body.theme-lime .search-strip .section-head {
    margin-bottom: 20px;
}

body.theme-lime .search-strip .section-head h2 {
    color: #fff;
}

/* «Все автомобили» на синей панели — белым (приёмка #408 п.4:
   цвет ссылки по умолчанию #0752dd — синий на синем, нечитаемо). */
body.theme-lime .search-strip .section-link {
    color: #fff;
}

body.theme-lime .search-strip-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

body.theme-lime .strip-chip {
    border: 1px solid #fff;
    border-radius: 50px;
    color: #fff;
    padding: 8px 20px;
    font: 600 16px/1.4 "Inter", system-ui, sans-serif;
}

body.theme-lime .strip-chip:hover {
    background: #fff;
    color: var(--c-primary);
}

/* ─── Преимущества ───────────────────────────────────────────────── */
body.theme-lime .features {
    padding: 60px 0 0;
}

body.theme-lime .wrap.container.features-row {
    /* 4 преимущества в один ряд (приёмка v3, #429, макет; v4, #432 —
       специфичность 0,4,1 против .wrap.container display:block 0,3,1
       (канон колонок #408): легаси блок «столбил» пункты на десктопе;
       лента планшета/столбик мобайла — ниже в MQ). */
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

/* Три позиции во всю ширину (страницы О3, макеты 2061: 1200 на 400/420/
   340): в четырёхколоночной сетке правая четверть пустовала. Модификатор
   не мешает MQ: ≤990 — лента (flex), ≤767 — столбик (1fr, ниже по
   файлу). */
body.theme-lime .wrap.container.features-row--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.theme-lime .feature-item {
    display: flex;
    gap: 15px;
    align-items: center;
    min-width: 195px;
}

body.theme-lime .feature-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--lime-bg-soft);
    border-radius: 50%;
    padding: 13px;
}

body.theme-lime .feature-icon img {
    width: 40px;
    height: 40px;
}

body.theme-lime .feature-item b {
    display: block;
    font: 700 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime .feature-item span {
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

/* ─── «О компании» + услуги ──────────────────────────────────────── */
/* Группа «о компании + услуги» (#446, канон главной lime): секция
   .cta-group → ОДИН .wrap.container → ряд .cta-group-row (grid
   60fr/40fr, зазор 24px — приёмка #429; ≤760 — столбик в MQ ниже).
   До #446 пара seo_text+services была двумя секциями и ряд делался
   grid'ом на main через :has() — проценты от ширины окна; на
   детальных страницах услуг без «о компании» grid ломался (#430).
   .about-block внутри группы — панель (отступ секции даёт .cta-group,
   не панель). */
body.theme-lime .cta-group {
    padding: 60px 0 0;
}

body.theme-lime .cta-group-row {
    display: grid;
    grid-template-columns: minmax(0, 60fr) minmax(0, 40fr);
    gap: 24px;
    /* Ряд по верху (критерий приёмки #429: tops ±2px): stretch
       держит оба элемента от верхней границы ряда. */
    align-items: stretch;
}

/* Группа без услуг (items пуст) — «о компании» во весь ряд. */
body.theme-lime .cta-group-row> :only-child {
    grid-column: 1 / -1;
}

/* .about-block вне группы (легаси seo_text главной до #446) — не
   используется витриной, но правки не ломают страницы с seo_text. */
body.theme-lime .about-block {
    padding: 60px 0 0;
}

body.theme-lime .cta-group .about-block {
    padding-top: 0;
}

body.theme-lime .about-block-inner {
    /* Фото-фон по макету (#415 п.2): фото ВО ВЕСЬ блок (cover) +
       поверх полупрозрачный тёмно-синий оверлей — фото приглушено,
       контент читаем. Ассет cta-interior.webp — из rawImages Figma.
       Оверлей и подложка — производные акцента (#658): иначе баннер
       не перекрашивается вместе с акцентом каталога. */
    background:
        linear-gradient(0deg, var(--lime-photo-overlay) 0%, var(--lime-photo-overlay) 100%),
        url("../img/cta-interior.webp") center / cover no-repeat;
    background-color: var(--c-accent);
    border-radius: 15px;
    padding: 50px 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    flex-wrap: wrap;
    color: #fff;
}

body.theme-lime .about-block-text {
    max-width: 480px;
}

body.theme-lime .about-block-text h2 {
    font: 700 32px/1.1 "Inter", system-ui, sans-serif;
    margin: 0 0 15px;
    color: #fff;
}

body.theme-lime .about-block-text p {
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    margin: 0;
    color: #fff;
}

/* Маркированный список панели (CTA FAQ, #613, макет 2061:20133:
   заголовок → список → кнопка). */
body.theme-lime .about-block-text .about-block-list {
    margin: 14px 0 0;
    padding-left: 18px;
    font: 400 15px/1.5 "Inter", system-ui, sans-serif;
    color: #fff;
}

body.theme-lime .about-block-text .about-block-list li {
    /* Легаси-правило li (тёмный цвет текста) перебивает наследие от ul. */
    color: #fff;
    margin: 0 0 4px;
}

body.theme-lime .about-block-text .about-block-list li:last-child {
    margin-bottom: 0;
}

body.theme-lime .about-block-btn {
    background: #fff;
    color: var(--c-primary);
    border: 0;
    border-radius: 8px;
    padding: 17px 40px;
    font: 600 16px/1.2 "Inter", system-ui, sans-serif;
    cursor: pointer;
    min-height: 44px;
}

body.theme-lime .about-block-btn:hover {
    color: var(--c-accent);
}

body.theme-lime .services-row {
    padding: 24px 0 0;
}

body.theme-lime .services-list {
    border-top: 1px solid var(--lime-line);
}

body.theme-lime .service-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-bottom: 1px solid var(--lime-line);
    /* Строки макета 1:587 (Frame 177): 80 / 80 / 102 / 102 — при
       тексте 22/44 косметика 16px даёт ровно макетную высоту. */
    padding: 16px 0;
    color: var(--lime-dark);
}

body.theme-lime .service-line:hover {
    color: var(--c-primary);
}

body.theme-lime .service-line-text b {
    display: block;
    font: 700 16px/1.4 "Inter", system-ui, sans-serif;
}

body.theme-lime .service-line-text span {
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime .service-line img {
    width: 24px;
    height: 24px;
}

/* Frame 180 деталки (#531, макет 1:587, y=1554): слева баннер
   «Выгода с Trade-in» (750×364, синий градиент + фото салона),
   справа услуги (410×364). */
body.theme-lime .offers-row {
    padding: 60px 0 0;
}

body.theme-lime .wrap.container.offers-row-inner {
    display: grid;
    grid-template-columns: 750px 410px;
    column-gap: 40px;
    align-items: start;
}

body.theme-lime .tradein-banner {
    position: relative;
    display: block;
    min-height: 364px;
    border-radius: 15px;
    overflow: hidden;
    padding: 40px 48px;
    color: #fff;
    background:
        linear-gradient(105deg,
            rgba(14, 76, 192, 0.94) 0%,
            rgba(29, 49, 86, 0.9) 100%),
        url("../img/banners/banner-salon.jpg") right center / cover no-repeat;
}

body.theme-lime .tradein-title {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 16px;
    font: 700 32px/1.2 "Inter", system-ui, sans-serif;
    color: #fff;
}

body.theme-lime .tradein-text {
    margin: 0 0 24px;
    max-width: 420px;
    font: 400 16px/1.5 "Inter", system-ui, sans-serif;
    color: rgba(255, 255, 255, 0.92);
}

body.theme-lime .tradein-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: var(--c-primary);
    border-radius: var(--lime-radius);
    padding: 15px 30px;
    font: 600 16px/1.2 "Inter", system-ui, sans-serif;
}

body.theme-lime .tradein-arrow {
    position: absolute;
    right: 24px;
    bottom: 24px;
}

body.theme-lime .offers-row .services-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Пункты списка услуг — вплотную: базовый отступ пунктов списка
   растягивал блок услуг против макетных строк 80/80/102/102.
   list-style снят и с li: легаси-правило li{list-style:disc} сильнее
   ul{list-style:none} — точки оставались (сверка с макетом 1:587). */
body.theme-lime .offers-row .services-list li {
    margin: 0;
    list-style: none;
}

/* ─── Отзывы ─────────────────────────────────────────────────────── */
body.theme-lime .reviews-line {
    padding: 60px 0 0;
}

/* Лента отзывов (приёмка #429, макет 9:1247): ряд карточек со
   скроллом на ВСЕХ брейкпоинтах — видно 2 карточки, свайп на тач,
   стрелки (data-reviews-scroll, js/menu.js). Карточка: фото слева
   200×360 (макет), текст/имя справа. Скрытый скроллбар как у
   best-grid (ADR-0052-стиль). */
body.theme-lime .reviews-grid {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    -ms-overflow-style: none;
    /* Под лентой — воздух под тень карточек (горизонтальный скролл
       режет нижнюю тень). */
    padding: 2px 0 8px;
}

body.theme-lime .reviews-grid::-webkit-scrollbar {
    display: none;
}

body.theme-lime .review-card {
    display: flex;
    flex: 0 0 calc(50% - 10px);
    scroll-snap-align: start;
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 0 2.5px rgba(25, 32, 47, 0.07);
}

/* Фото клиента — слева карточки, 200×360 (макет 9:1247, приёмка
   #429): легаси-колонка 140px тянула высоту карточки, фото сильно
   обрезалось. Высота задаёт фото, тело — в его ритм. */
body.theme-lime .review-photo {
    flex: 0 0 200px;
    height: 360px;
    background: #eef0f4;
}

body.theme-lime .review-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

body.theme-lime .review-body {
    display: flex;
    flex-direction: column;
    gap: 15px;
    padding: 30px;
    min-width: 0;
}

/* Стрелки ленты отзывов (приёмка #429): круглые кнопки в шапке
   секции (data-reviews-scroll, js/menu.js). */
body.theme-lime .reviews-nav {
    display: flex;
    gap: 10px;
    margin-left: auto;
}

body.theme-lime .reviews-nav-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--lime-border);
    border-radius: 50%;
    background: #fff;
    color: var(--lime-dark);
    cursor: pointer;
    padding: 0;
    box-shadow: none;
}

body.theme-lime .reviews-nav-btn:hover {
    border-color: var(--c-primary);
    color: var(--c-primary);
}

body.theme-lime .reviews-nav-btn svg {
    width: 20px;
    height: 20px;
}

body.theme-lime .review-text {
    margin: 0;
    font: 400 16px/1.5 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime .review-author {
    margin: 0;
    font: 700 17px/1.5 "Inter", system-ui, sans-serif;
    color: #272a2e;
}

/* ─── CTA ────────────────────────────────────────────────────────── */
body.theme-lime .cta-block {
    padding: 60px 0 0;
}

body.theme-lime .cta-block-inner {
    /* Фото-фон по макету (#415 п.2): фото во весь блок (cover) +
       тёмно-синий оверлей (приглушение). cta-suv.webp — rawImages.
       Оверлей и подложка — производные акцента (#658), как у about-block. */
    background:
        linear-gradient(0deg, var(--lime-photo-overlay) 0%, var(--lime-photo-overlay) 100%),
        url("../img/cta-suv.webp") center / cover no-repeat;
    background-color: var(--c-accent);
    border-radius: 15px;
    padding: 50px 60px;
    display: flex;
    flex-direction: column;
    gap: 30px;
    color: #fff;
    align-items: flex-start;
}

body.theme-lime .cta-block-text h2 {
    font: 700 32px/1.1 "Inter", system-ui, sans-serif;
    margin: 0 0 15px;
    color: #fff;
    max-width: 480px;
}

body.theme-lime .cta-block-list {
    margin: 0;
    padding-left: 24px;
}

body.theme-lime .cta-block-list li {
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: #fff;
}

body.theme-lime .cta-block-btn {
    background: #fff;
    color: var(--c-primary);
    border: 0;
    border-radius: 8px;
    padding: 17px 40px;
    font: 600 16px/1.2 "Inter", system-ui, sans-serif;
    cursor: pointer;
    min-height: 44px;
}

body.theme-lime .cta-block-btn:hover {
    color: var(--c-accent);
}

/* ─── «Нужна помощь?» ────────────────────────────────────────────── */
body.theme-lime .help-row {
    /* Макет 1:587 (1:1007, 1200×94): секция — только содержимое
       (head 339 + контакты), зазоры 60 — внешние (margin), не padding:
       padding 60/60 раздувал bbox секции до 209.6 против макетных 94. */
    padding: 0;
    margin: 60px 0;
}

body.theme-lime .help-head {
    /* Подзаголовок — ПОД заголовком (приёмка #429, макет): легаси
       flex-row с flex-end ставил подзаголовок на одну строку
       с заголовком (top подзаголовка на 14px выше заголовка). */
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 20px;
}

body.theme-lime .help-head h2 {
    font: 700 32px/1.1 "Inter", system-ui, sans-serif;
    margin: 0;
    color: var(--lime-dark);
}

body.theme-lime .help-head p {
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
    margin: 0;
    max-width: 339px;
}

/* Раскладка «Нужна помощь?» по макету (1:587/1:470/40:752):
   заголовок с подписью 339 слева, три контакта 777 справа
   (x=423 при контейнере 1200, зазор 84) одной строкой. */
@media (min-width: 992px) {
    body.theme-lime .help-row .wrap.container {
        display: grid;
        grid-template-columns: 339px minmax(0, 777px);
        column-gap: 84px;
        align-items: center;
    }

    body.theme-lime .help-head {
        margin-bottom: 0;
    }
}

body.theme-lime .help-contacts {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
}

body.theme-lime .help-contact {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 0 15px;
    min-width: 200px;
    border-right: 1px solid var(--lime-line);
}

/* Группа «Позвоните/Напишите/Приходите» — в одну строку от 761px
   (приёмка #429, макет): легаси flex-wrap переносил третий контакт
   на вторую строку при длинном адресе (bum-bum, tops 3452/3506).
   Равные колонки 1fr — текст переносится ВНУТРИ колонки. */
@media (min-width: 761px) {
    body.theme-lime .help-contacts {
        flex-wrap: nowrap;
    }

    body.theme-lime .help-contact {
        flex: 1 1 0;
        min-width: 0;
    }
}

body.theme-lime .help-contact:last-child {
    border-right: 0;
}

body.theme-lime .help-contact img {
    width: 36px;
    height: 36px;
}

body.theme-lime .help-contact b {
    display: block;
    font: 700 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime .help-contact span {
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime .help-contact a {
    color: var(--lime-dark);
}

body.theme-lime .help-link {
    border: 0;
    background: none;
    padding: 0;
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--c-primary);
    cursor: pointer;
    /* Плоская ссылка «заказать звонок» (#412): легаси-тень кнопок
       движка (0 2px 6px ...) давала объём, макет — плоская ссылка. */
    box-shadow: none;
}

/* ─── Контакты: страница по макету 60:1421 (#570) ────────────────── */
/* Шапка страницы: H1 — название салона (капс, макет), подзаголовок —
   «Автомобили с пробегом в {городе}.». */
body.theme-lime .page-head--contacts {
    margin: 32px 0 24px;
}

body.theme-lime .page-head--contacts p {
    font: 400 18px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
    margin: 0;
}

/* Блок «Контакты»: слева список (телефон/e-mail/адрес), справа карта
   (макет 60:1421). */
body.theme-lime .contacts-page {
    margin: 0 0 60px;
}

body.theme-lime .contacts-page-grid {
    display: grid;
    grid-template-columns: minmax(0, 37fr) minmax(0, 63fr);
    gap: 24px;
    align-items: start;
}

body.theme-lime .contacts-page-grid--single {
    grid-template-columns: minmax(0, 1fr);
}

body.theme-lime .contacts-page-info h2,
body.theme-lime .contacts-legal h2 {
    font: 700 24px/1.2 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    margin: 0 0 16px;
}

body.theme-lime .contacts-line-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

body.theme-lime .contacts-line {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 16px 0;
    border-bottom: 1px solid var(--lime-line);
}

body.theme-lime .contacts-line:first-child {
    padding-top: 0;
}

body.theme-lime .contacts-line:last-child {
    border-bottom: 0;
}

body.theme-lime .contacts-line img {
    width: 36px;
    height: 36px;
}

body.theme-lime .contacts-line b {
    display: block;
    font: 700 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    margin-bottom: 2px;
}

body.theme-lime .contacts-line a,
body.theme-lime .contacts-line span {
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime .contacts-line a {
    color: var(--lime-dark);
}

/* Реквизиты сеткой (макет 2061:18323, О1 #613): наименование юрлица,
   адреса слева, идентификаторы (ИНН/КПП/ОГРН) справа. */
body.theme-lime .legal-name {
    font: 700 18px/1.3 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    margin: 0 0 20px;
}

body.theme-lime .legal-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    gap: 20px 40px;
    align-items: start;
}

/* Один блок (только адреса или только идентификаторы) — на всю ширину. */
body.theme-lime .legal-grid--single {
    grid-template-columns: minmax(0, 1fr);
}

body.theme-lime .legal-address .legal-label {
    display: block;
    margin-bottom: 4px;
}

body.theme-lime .legal-address + .legal-address {
    margin-top: 14px;
}

body.theme-lime .legal-line {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 16px;
    padding: 3px 0;
}

body.theme-lime .legal-label {
    font: 400 15px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime .legal-value {
    font: 600 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

@media (max-width: 991px) {
    body.theme-lime .legal-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

body.theme-lime .contacts-map {
    overflow: hidden;
    border-radius: var(--lime-radius);
    background: var(--lime-bg-soft);
}

body.theme-lime .contacts-map .map-frame {
    display: block;
    width: 100%;
    height: 440px;
    border: 0;
}

body.theme-lime .contacts-map--link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 440px;
    padding: 24px;
}

body.theme-lime .contacts-map .map-link {
    font: 600 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--c-primary);
}

/* «Реквизиты» — под блоком контактов (макет 60:1421). */
body.theme-lime .contacts-legal {
    margin: 40px 0 0;
}

/* Абзац-фолбэк реквизитов (нераспознанный формат): :not(.legal-name) —
   иначе правило перекрывает заголовок имени юрлица сетки. */
body.theme-lime .contacts-legal p:not(.legal-name) {
    font: 400 16px/1.6 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    margin: 0;
}

@media (max-width: 991px) {
    body.theme-lime .contacts-page-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    body.theme-lime .contacts-map .map-frame {
        height: 320px;
    }

    body.theme-lime .page-head--contacts h1 {
        font-size: 28px;
    }
}

/* ─── Контентные страницы и кредитные блоки (#570) ───────────────── */
/* Единый H1 страниц темы (контентные, блог, банк, контакты). */
body.theme-lime .layout-page h1,
body.theme-lime #newshead h1,
body.theme-lime #post h1,
body.theme-lime article.wrap:has(#progress-container-credit) h1,
body.theme-lime .page-head--contacts h1 {
    font: 800 40px/1.1 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    margin: 32px 0 20px;
    /* Длинные слова («Политика конфиденциальности» — 437px при 380) не
       вылетают за вьюпорт: перенос по необходимости (ревизия 14.10, #610). */
    overflow-wrap: anywhere;
}

/* Шапка контактов (макет 60:1421): капс и меньший нижний отступ. */
body.theme-lime .page-head--contacts h1 {
    text-transform: uppercase;
    margin: 0 0 12px;
}

/* page.content: типографика дизайн-системы, читаемая ширина строки. */
body.theme-lime .layout-page-content {
    max-width: 860px;
}

body.theme-lime .layout-page-content p,
body.theme-lime .layout-page-content li {
    font: 400 16px/1.6 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    margin: 0 0 16px;
}

body.theme-lime .layout-page-content h2 {
    font: 700 24px/1.2 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    margin: 32px 0 16px;
}

body.theme-lime .layout-page-content a {
    color: var(--c-primary);
}

/* Виджеты контентных страниц: единые заголовки секций. */
body.theme-lime .partners h2,
body.theme-lime .creditcalc h2,
body.theme-lime .leadform h2 {
    font: 700 24px/1.2 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    margin: 0 0 16px;
}

/* «Банки-партнёры» / «Список партнёров»: строки с разделителями. */
body.theme-lime .bank-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

body.theme-lime .bank-list li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 24px;
    padding: 14px 0;
    border-bottom: 1px solid var(--lime-line);
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime .bank-list li b {
    font-weight: 700;
    color: var(--lime-dark);
}

body.theme-lime .disclaimer {
    margin: 12px 0 0;
    text-align: left;
}

body.theme-lime .disclaimer small {
    font: 400 13px/1.5 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

/* Кредитный калькулятор: поля, слайдер, кнопка. */
body.theme-lime .creditcalc label {
    font: 400 14px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

/* Поля — канон форм 55:2 (#602, приёмка): подчёркнутые, как у форм
   страниц и попапов (было — «коробочки» темы: рамка --lime-border,
   радиус 10). Значения — те же, что у .leadform-form input. */
body.theme-lime .creditcalc input[type="text"],
body.theme-lime .creditcalc input[type="number"],
body.theme-lime .creditcalc select {
    border: 0;
    border-bottom: 1px solid var(--lime-line);
    border-radius: 0;
    padding: 10px 14px 12px;
    font: 400 16px/1.3 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    background: transparent;
}

body.theme-lime .creditcalc input[type="text"]:focus,
body.theme-lime .creditcalc input[type="number"]:focus,
body.theme-lime .creditcalc select:focus {
    outline: none;
    border-bottom-color: var(--c-primary);
}

/* Селект «Срок»: стрелка — та же иконка, что в .select-field; здесь
   вставлена фоном (разметка виджета общая, без обёрток — шаблон не
   меняем). */
body.theme-lime .creditcalc select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 44px;
    background: url("../img/icons/caret-down.svg") no-repeat right 14px center;
    cursor: pointer;
}

/* Числовое поле «Стоимость»: браузерные спиннеры скрыты (#602). */
body.theme-lime .creditcalc input[type="number"] {
    appearance: textfield;
    -webkit-appearance: textfield;
}

body.theme-lime .creditcalc input[type="number"]::-webkit-outer-spin-button,
body.theme-lime .creditcalc input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Слайдер «Первый взнос»: без рамки/фона дефолта болванки (рамка
   #DDE3EA просвечивала — тема перекрывала только accent-color); трек
   нативный, акцент — тема. */
body.theme-lime .creditcalc input[type="range"] {
    border: 0;
    border-radius: 0;
    background: transparent;
    height: auto;
    padding: 0;
    accent-color: var(--c-primary);
}

/* Строка результата калькулятора (#602, приёмка: вариант «статусное
   разделение»): подсказка и ошибка — тихие (400/14, как hint/rate),
   результат расчёта — акцентный (600/15, тёмный). Состояние строки
   задаёт скрипт калькулятора классами is-ok/is-error (is-error —
   маркер без собственных правил: вид ошибки даёт база строки); дефолт
   болванки (600/15 на всё) делал полужирной и подсказку «Ставка банка
   не указана». */
body.theme-lime .creditcalc-result {
    font: 400 14px/1.5 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime .creditcalc-result.is-ok {
    font: 600 15px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime .creditcalc-hint,
body.theme-lime .creditcalc-rate {
    font: 400 14px/1.5 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

/* Кнопки калькулятора и формы банка — метрики кнопки макета (высота 53,
   радиус 6, primary); горизонтальный отступ 24px — кнопки не на всю
   ширину (форма банка и «Рассчитать» — по контенту).
   .rknbtn — только форма банка (:has(.car-selector); форма карточки
   приведена макетом #531 и не затрогается). */
body.theme-lime .creditcalc-submit,
body.theme-lime form.card:has(.car-selector) .rknbtn {
    border: 0;
    border-radius: 6px;
    padding: 17px 24px;
    background: var(--c-primary);
    color: #fff;
    font: 600 16px/1.2 "Inter", system-ui, sans-serif;
    cursor: pointer;
}

body.theme-lime .creditcalc-submit:hover,
body.theme-lime form.card:has(.car-selector) .rknbtn:hover {
    background: var(--c-accent);
    color: #fff;
}

/* Форма банка — согласия гейтят кнопку так же, как у форм страниц:
   вид яркий (макет), недоступность — только курсором. */
body.theme-lime form.card:has(.car-selector) .rknbtn:disabled {
    cursor: default;
}

body.theme-lime .leadform-subtitle {
    font: 400 16px/1.5 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
    margin: 0 0 16px;
}

/* ─── FAQ и отзывы: страницы (#613, макет 2061:20133) ───────────── */
/* FAQ: плоские белые карточки в две колонки (макет), иконка-статус ⊕/✕
   слева (PlusCircle → XCircle в макете: поворот плюса). Панель
   категорий макетом не предусмотрена (#613, О2). Раскрытие — канонный
   grid-трюк (как у аккордеона опций #375): 0fr→1fr + easing, reduced-motion. */
body.theme-lime .faq .faq-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    align-items: start;
}

body.theme-lime .faq .faq-item {
    background: var(--lime-bg-soft);
    border: 0;
    border-radius: 12px;
    box-shadow: none;
    padding: 20px;
    margin: 0;
    overflow: hidden;
}

/* Легаси page.css даёт строке тень на hover — плашке макета она не
   нужна (карточки — плоские #F5F7FB на белом фоне). */
body.theme-lime .faq .faq-item:hover {
    box-shadow: none;
}

/* Кнопки болванки несут тень (general.css: 0 2px 6px, hover 0 4px
   12px) и радиус (ui.css: .857rem) — кнопке-вопросу они не нужны
   (тень падала на текст ответа). */
body.theme-lime .faq .faq-question {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: none;
    padding: 0;
    font: 600 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    text-align: left;
    cursor: pointer;
}

body.theme-lime .faq .faq-question:hover {
    color: var(--c-primary);
    background: transparent;
}

body.theme-lime .faq .faq-question-text {
    flex: 1 1 auto;
    min-width: 0;
}

/* Иконка-статус по макету (2061:20133): закрытая карточка — залитый
   круг ⌀26px с белым ⊕; открытая — контурный круг с синим ✕
   (поворот плюса 45° + смена заливки и цвета полосок: PlusCircle →
   XCircle). */
body.theme-lime .faq .faq-mark {
    position: relative;
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
    box-sizing: border-box; /* обводка открытого состояния внутри ⌀26 */
    background: var(--c-primary);
    border: 0;
    border-radius: 50%;
    transition:
        transform .18s cubic-bezier(.33, 1, .68, 1),
        background-color .18s cubic-bezier(.33, 1, .68, 1);
}

body.theme-lime .faq .faq-mark::before,
body.theme-lime .faq .faq-mark::after {
    content: "";
    position: absolute;
    background: #fff;
    border-radius: 1px;
    transition: background-color .18s cubic-bezier(.33, 1, .68, 1);
}

/* Полоски плюса 12px — центрированы от центра круга (не зависят от
   обводки в открытом состоянии). */
body.theme-lime .faq .faq-mark::before {
    left: calc(50% - 6px);
    top: calc(50% - 1px);
    width: 12px;
    height: 2px;
}

body.theme-lime .faq .faq-mark::after {
    left: calc(50% - 1px);
    top: calc(50% - 6px);
    width: 2px;
    height: 12px;
}

body.theme-lime .faq .faq-question.active .faq-mark,
body.theme-lime .faq .faq-item:has(.faq-answer.open) .faq-mark {
    transform: rotate(45deg);
    background: transparent;
    border: 2px solid var(--c-primary);
}

body.theme-lime .faq .faq-question.active .faq-mark::before,
body.theme-lime .faq .faq-question.active .faq-mark::after,
body.theme-lime .faq .faq-item:has(.faq-answer.open) .faq-mark::before,
body.theme-lime .faq .faq-item:has(.faq-answer.open) .faq-mark::after {
    background: var(--c-primary);
}

/* Раскрытие — grid-трюк (#375): плавно от фактической высоты;
   легаси-переход по max-height сброшен (ёмкость 500px при контенте
   ~70px давала рывок). visibility — скрытое тело не в tab-порядке. */
body.theme-lime .faq .faq-answer {
    display: grid;
    grid-template-rows: 0fr;
    max-height: none;
    padding: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transition:
        grid-template-rows .18s cubic-bezier(.32, 0, .67, 0),
        opacity .18s cubic-bezier(.32, 0, .67, 0),
        visibility 0s linear .18s;
}

/* Внутренний блок — grid-item: без min-height: 0 контент не схлопывается
   в 0fr; вертикальный padding здесь недопустим (не схлопывается —
   воздух даёт margin абзацев). */
body.theme-lime .faq .faq-answer-inner {
    min-height: 0;
    overflow: hidden;
    padding: 0;
    font: 400 15px/1.6 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime .faq .faq-answer-inner > p:first-child {
    margin-top: 10px;
}

body.theme-lime .faq .faq-answer-inner > p:last-child {
    margin-bottom: 0;
}

body.theme-lime .faq .faq-answer.open {
    grid-template-rows: 1fr;
    opacity: 1;
    visibility: visible;
    transition:
        grid-template-rows .18s cubic-bezier(.33, 1, .68, 1),
        opacity .18s cubic-bezier(.33, 1, .68, 1),
        visibility 0s;
}

@media (prefers-reduced-motion: reduce) {
    body.theme-lime .faq .faq-answer,
    body.theme-lime .faq .faq-answer.open,
    body.theme-lime .faq .faq-mark {
        transition: none;
    }
}

/* Мобильная и планшетная ширина: карточки в одну колонку (макет —
   двухколоночная сетка только на десктопе). */
@media (max-width: 991px) {
    body.theme-lime .faq .faq-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ─── Автоблог (#570) ─────────────────────────────────────────────── */
/* H1 страниц блога — в общей группе H1 страниц (секция контентных). */

/* Категории-чипы блога. */
body.theme-lime #newshead .brand-grid {
    gap: 8px;
    margin-bottom: 24px;
}

body.theme-lime #newshead .brand-btn {
    border: 1px solid var(--lime-border);
    border-radius: 999px;
    padding: 10px 16px;
    background: #fff;
    color: var(--lime-muted);
    font: 600 14px/1.2 "Inter", system-ui, sans-serif;
}

body.theme-lime #newshead .brand-btn.active {
    background: var(--c-primary);
    border-color: var(--c-primary);
    color: #fff;
}

/* Карточки статей: компактные, без пустой зоны под отсутствующее фото. */
body.theme-lime #newslist .card {
    min-height: 0;
    padding: 20px;
    background: #fff;
    border: 1px solid var(--lime-border);
    border-radius: var(--lime-radius);
}

body.theme-lime #newslist .card b {
    font: 700 18px/1.35 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime #newslist .card time {
    font: 400 14px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime #newslist .card:hover {
    border-color: var(--c-primary);
}

/* Текст статьи. */
body.theme-lime #post .card {
    padding: 24px;
    background: #fff;
    border: 1px solid var(--lime-border);
    border-radius: var(--lime-radius);
}

body.theme-lime #post .card p,
body.theme-lime #post .card li {
    font: 400 16px/1.6 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime #post .card .button {
    display: inline-block;
    border: 0;
    border-radius: 10px;
    padding: 12px 20px;
    background: var(--c-primary);
    color: #fff;
    font: 600 15px/1.2 "Inter", system-ui, sans-serif;
    text-decoration: none;
}

body.theme-lime #post .card .button:hover {
    background: var(--c-accent);
    color: #fff;
}

/* ─── Страница банка-партнёра (#570) ──────────────────────────────── */
/* H1 страницы банка — в общей группе H1 страниц (секция контентных). */
body.theme-lime article.wrap:has(.car-selector) .progress-fill {
    background: var(--c-primary);
}

/* Годы кредита — чипы. */
body.theme-lime #credityears .button {
    border: 1px solid var(--lime-border);
    border-radius: 8px;
    background: #fff;
    color: var(--lime-muted);
    font: 600 14px/1.2 "Inter", system-ui, sans-serif;
    cursor: pointer;
}

body.theme-lime #credityears .button.active {
    background: var(--c-primary);
    border-color: var(--c-primary);
    color: #fff;
}

/* Выпадающий выбор авто. */
body.theme-lime .dropdown-trigger {
    border: 1px solid var(--lime-border);
    border-radius: 8px;
    padding: 12px 14px;
    background: #fff;
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime .credit-note {
    font: 400 14px/1.5 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

/* ─── Футер ──────────────────────────────────────────────────────── */
body.theme-lime .footer {
    /* Подвал — от канонических accent и accent_dark (макет:
       #032462→#0044c3, #658): нижний стоп — тёмная роль `accent_dark`
       (ADR-0081, #1001), ровно макетный #032462; верхний — `accent`.
       Литералов нет: переопределение акцента из каталога доходит до
       подвала. Остаточное расхождение с макетом — верхний стоп:
       ΔE2000 = 2.6 (в пределах порога 3.0), макетный #0044c3 остаётся
       производным (решение владельца: канон не расширяем). */
    background: linear-gradient(0deg, var(--c-accent-dark) 60%, var(--c-accent));
    color: #d6d6e5;
    padding: 40px 0;
}

body.theme-lime .footer-top {
    display: flex;
    justify-content: space-between;
    gap: 40px;
    flex-wrap: wrap;
    margin-bottom: 30px;
}

body.theme-lime .footer-brand {
    max-width: 339px;
}

body.theme-lime .footer-logo {
    /* Композиция лого подвала (приёмка #429, макет): серый
       квадрат-заглушка под логотип бренда (придёт каналом) и имя
       справа — крупное полужирное БЕЛОЕ на фоне подвала. Плашка
       убрана (белая плашка с цветным текстом нечитаема на синем
       фоне и не макетна; #412 — легаси-фикс той же плашки). */
    display: flex;
    align-items: center;
    gap: 14px;
    color: #fff;
}

body.theme-lime .footer-logo-mark {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border-radius: 0;
    background: #9aa0a6;
}

/* Логотип витрины в подвале (BRAND_LOGO): картинка вместо заглушки —
   высота 65px (было 60px, приёмка 02.10: «ещё крупнее»), ширина
   по пропорциям.
   Белый КОНТУР по силуэту (4 осевых drop-shadow, blur 0, сдвиг 0.25px,
   альфа 80%) — минимальная субпиксельная обводка; по приёмке 02.10
   обводка не нужна вовсе («вариант 3 на мокапе: без видимой обводки»),
   0.25px оставлен как лёгкий отделитель силуэта от фона подвала. */
body.theme-lime .footer-logo img {
    flex: 0 0 auto;
    width: auto;
    height: 65px;
    background: none;
    filter: drop-shadow(.25px 0 0 rgba(255, 255, 255, .8)) drop-shadow(-.25px 0 0 rgba(255, 255, 255, .8)) drop-shadow(0 .25px 0 rgba(255, 255, 255, .8)) drop-shadow(0 -.25px 0 rgba(255, 255, 255, .8));
}

body.theme-lime .footer-logo b {
    font: 700 32px/1.1 "Inter", system-ui, sans-serif;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: .02em;
}

body.theme-lime .footer-slogan {
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: #d6d6e5;
    margin: 15px 0 0;
}

body.theme-lime .footer-cols {
    display: flex;
    gap: 40px;
    flex-wrap: wrap;
}

body.theme-lime .footer-col b {
    display: block;
    color: #fff;
    font: 700 16px/1.4 "Inter", system-ui, sans-serif;
    margin-bottom: 15px;
}

body.theme-lime .footer-col ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Чёрные буллеты (#412): легаси ui.css вешает list-style-type: disc и
   margin-bottom на li, сброс на ul их не перебивает — сбрасываем li. */
body.theme-lime .footer-col ul li {
    list-style: none;
    margin-bottom: 0;
}

body.theme-lime .footer-col a {
    color: #d6d6e5;
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
}

body.theme-lime .footer-col a:hover {
    color: #fff;
}

body.theme-lime .footer-legal {
    /* Линия над реквизитами — как в макете футера 2061:20133
       (обе линии футера: rgba(255,255,255,.25)). */
    border-top: 1px solid rgba(255, 255, 255, 0.25);
    margin-top: 10px;
    padding-top: 10px;
}

body.theme-lime .footer-legal p {
    margin: 0 0 20px;
    font: 400 14px/1.4 "Inter", system-ui, sans-serif;
    color: #d6d6e5;
}

body.theme-lime .footer-disclaimer {
    font: 400 14px/1.4 "Inter", system-ui, sans-serif;
    color: #d6d6e5;
    margin: 0 0 20px;
}

body.theme-lime .footer-policy {
    font: 400 14px/1.4 "Inter", system-ui, sans-serif;
    margin: 0;
}

body.theme-lime .footer-policy a {
    color: #2770f8;
}

body.theme-lime .footer-policy span {
    color: #d6d6e5;
}

/* Кредитный дисклеймер (О4 #613, макет 2061:20133): под строкой политик
   линия-разделитель, затем обязательная информация банков-партнёров.
   Гэпы макета (пиксельный профиль единым порогом; политики→линия /
   линия→текст): 43/46px — из них margin/padding 41px, остальное дают
   хвост строки политик и полулидинг первой строки блока. Ссылки —
   акцент темы, текст — футерный #d6d6e5, кегль 14px/1.4. */
body.theme-lime .footer-credit {
    border-top: 1px solid rgba(255, 255, 255, 0.25);
    margin-top: 41px;
    padding-top: 41px;
}

body.theme-lime .footer-credit p {
    font: 400 14px/1.4 "Inter", system-ui, sans-serif;
    margin: 0 0 20px;
}

body.theme-lime .footer-credit p:last-child {
    margin-bottom: 0;
}

body.theme-lime .footer-credit-line a {
    color: #2770f8;
}

body.theme-lime .footer-credit-note {
    color: #d6d6e5;
}

/* ─── Каталог (движок, макет 35:2280) ────────────────────────────── */
/* Заголовок «Каталог доступных автомобилей» + город. */
body.theme-lime .catalog-head {
    display: flex;
    /* Центр строки: иконка-пин города (24px + паддинг) не выпирает
       вверх при выравнивании по низу заголовка (вижн-приёмка #488). */
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}

body.theme-lime .catalog-head h1 {
    font: 700 32px/1.1 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    margin: 0;
    /* Легаси h1 { width: 100% } растягивал заголовок в flex-строке —
       город уезжал на вторую строку (вижн-приёмка #488 итерация 2). */
    width: auto;
}

body.theme-lime .catalog-city {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font: 600 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    padding: 10px 0;
}

body.theme-lime .catalog-city img {
    width: 24px;
    height: 24px;
}

/* Лента марок каталога (макет 40:15, #488; гриль 06.10): полный список
   марок витрины в один ряд (как макет), шаг 20px = иконка 75px + зазор;
   переполнение листается нативно, стрелка прокрутки — .marks-strip-next.
   Внешняя карточка несёт фон/поля/радиус, лента внутри — прокрутку без
   видимого скроллбара. */
body.theme-lime .marks-strip-wrap {
    position: relative;
    background: var(--lime-bg-soft);
    border-radius: 15px;
    padding: 24px 40px;
    margin-bottom: 40px;
}

body.theme-lime .marks-strip {
    display: flex;
    flex-wrap: nowrap;
    gap: 20px;
    justify-content: flex-start;
    overflow-x: auto;
    scrollbar-width: none;
}

body.theme-lime .marks-strip::-webkit-scrollbar {
    display: none;
}

/* Мышиный драг ленты (гриль 11.10): фон ленты — grab, в перетаскивании —
   grabbing (включая марки: тянем, а не открываем); подписи марок не
   выделяются — жест «тянуть» не должен красить текст. */
body.theme-lime .marks-strip {
    cursor: grab;
}

body.theme-lime .marks-strip.is-dragging,
body.theme-lime .marks-strip.is-dragging .mark-btn {
    cursor: grabbing;
}

body.theme-lime .marks-strip .mark-btn {
    user-select: none;
}

/* Кнопка марки в ленте не сжимается (иначе nowrap сплющит круги). */
body.theme-lime .marks-strip .mark-btn {
    flex: 0 0 auto;
}

body.theme-lime .popular-tags {
    margin: 0 0 40px;
}

body.theme-lime .popular-tags h3 {
    font: 700 24px/1.1 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    margin: 0 0 20px;
}

body.theme-lime .facet-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

body.theme-lime .facet-chip.preset {
    border: 1px solid var(--c-primary);
    border-radius: 50px;
    color: var(--c-primary);
    background: #fff;
    padding: 8px 20px;
    font: 600 16px/1.4 "Inter", system-ui, sans-serif;
}

body.theme-lime .facet-chip.preset:hover {
    background: var(--c-primary);
    color: #fff;
}

/* Панель фильтров — белая карточка макета (единый контур движка). */
body.theme-lime .facet-panel {
    background: #fff;
    border-radius: 20px;
    padding: 32px;
    box-shadow: 0 0 5.45px rgba(25, 32, 47, 0.09);
    font-family: "Inter", system-ui, sans-serif;
}

body.theme-lime .facet-panel .facet-group-title {
    font-weight: 600;
}

body.theme-lime .facet-panel .facet-chip {
    border: 1px solid var(--lime-border);
    border-radius: 8px;
    color: var(--lime-dark);
    background: #fff;
    padding: .4rem 1rem;
    font-size: .88rem;
}

body.theme-lime .facet-panel .facet-chip:hover {
    border-color: var(--c-primary);
    background: var(--lime-bg-soft);
}

body.theme-lime .facet-panel .facet-chip.active {
    background: var(--c-primary);
    border-color: var(--c-primary);
    color: #fff;
}

body.theme-lime .facet-panel input[type="number"],
body.theme-lime .facet-panel select {
    border: 1px solid var(--lime-border);
    border-radius: 8px;
    padding: .35rem .75rem;
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

/* Пагинация и «показать ещё» — в палитре темы. */
body.theme-lime .pagination-controls button {
    border: 1px solid var(--lime-border);
    border-radius: 8px;
    background: #fff;
    color: var(--lime-dark);
}

body.theme-lime .pagination-controls button:disabled {
    color: var(--lime-muted);
}

body.theme-lime p#pageInfo input {
    border: 1px solid var(--lime-border);
    border-radius: 8px;
    color: var(--lime-dark);
}

body.theme-lime .btn-secondary {
    border: 1px solid var(--c-primary);
    color: var(--c-primary);
    border-radius: 8px;
    background: #fff;
    font: 600 16px/1.2 "Inter", system-ui, sans-serif;
    padding: 12px 28px;
}

body.theme-lime .btn-secondary:hover {
    background: var(--c-primary);
    color: #fff;
}

/* ─── Карточка товара (движок, макет 1:587) ─────────────────────── */
body.theme-lime #product.card,
body.theme-lime .card {
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 0 2.5px rgba(25, 32, 47, 0.07);
}

body.theme-lime .breadcrumbs {
    font: 400 14px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
    margin-bottom: 16px;
}

body.theme-lime .breadcrumbs ol {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

body.theme-lime .breadcrumbs a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--lime-muted);
}

body.theme-lime .breadcrumbs a img {
    display: block;
    width: 18px;
    height: 18px;
}

body.theme-lime .breadcrumbs a:hover {
    color: var(--c-primary);
}

/* Разделитель макета — косая черта (легаси «•» и <i> переведены
   на li:not(:last-child)::after, канон ADR-0045; волна #526/#527). */
body.theme-lime .breadcrumbs li:not(:last-child)::after {
    content: '/';
    font-size: 15px;
    color: var(--lime-muted);
    margin: 0 2px;
}

body.theme-lime #product h1,
body.theme-lime .pname,
body.theme-lime .product-name {
    font: 700 28px/1.2 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime .price_now,
body.theme-lime .price,
body.theme-lime .product-price {
    color: var(--c-accent);
    font-weight: 700;
}

body.theme-lime .buy-list .btn-primary,
body.theme-lime .product-cta,
body.theme-lime .order-btn {
    border-radius: var(--lime-radius);
}

body.theme-lime table.detail-specs,
body.theme-lime .chars-table {
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime table.detail-specs td:first-child,
body.theme-lime .chars-table td:first-child {
    color: var(--lime-muted);
}

/* ─── Детальная: макетная сетка (макет 1:587) ───────────────────── */
/* Карточка товара — контейнер 1200 без внутренних полей (article
   .detail-page) и без паддинга .card: галерея 700 начинается от края
   контента; колонки макета: фото 700 + зазор 40 + инфо 460. */
body.theme-lime #product.card {
    padding: 0;
    /* Плоская карточка (нюансы приёмки, макет 1:587): тень, радиус и
       рамка 1px #e6e9ef v2-блока product.css (`#product` — «Красота»
       10.09, общий для всех витрин) читались светло-серым контуром
       вокруг фото и описания — в макете карточка без рамки (приёмка
       нюансов: рамка оставалась, снята border). */
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

body.theme-lime .detail-grid {
    display: grid;
    grid-template-columns: 700px minmax(0, 1fr);
    gap: 40px;
    align-items: start;
    padding: 0;
}

/* Галерея: фото на всю колонку 700 (макет 700×525); адаптивно
   сжимается на узких экранах. Легаси-ширины базовой темы
   (`#product .gallery` = 55% и паддинг слайда 1rem) перебиты —
   иначе фото 371px и пустота справа (#488, фикс 05.10; #531:
   паддинг слайда снят с id-специфичностью — легаси 14px давал
   фото 672×462). */
body.theme-lime #product .gallery {
    width: 100%;
}

body.theme-lime #product .gallery .screen .cn-slide {
    padding: 0;
}

/* Пропорция фото 700×525 (макет) — перебивает легаси 16/11
   (`#product .gallery .screen img`) с id-специфичностью. */
body.theme-lime #product .gallery .screen img {
    width: 100%;
    height: auto;
    aspect-ratio: 700 / 525;
    object-fit: cover;
    border-radius: 10px;
}

/* Миниатюры (макет): 6 в ряд по 100×75, зазор 20. */
body.theme-lime #product .gallery .thumbs {
    margin-top: 20px;
}

body.theme-lime #product .gallery .thumbs .cn-track {
    gap: 20px;
}

body.theme-lime #product .gallery .thumbs .cn-slide {
    flex: 0 0 100px;
}

body.theme-lime .detail-gallery .cn.thumbs .cn-slide img {
    width: 100px;
    height: 75px;
    object-fit: cover;
    border-radius: 10px;
}

/* ─── Слайд-переключатели галерей (#556, третий пакет приёмки) ──────
   Макеты переключатели отдельно не рисуют: приводим их к фирменному
   стилю темы. Базовый стальной #306fae заменяется на primary #0752dd,
   неактивные состояния — на серые палитры (#7f7f86, #d6d6e5). */

/* Миниатюры галереи деталки: неактивные — мягкая линия палитры с
   лёгким приглушением (базовые .55 гасили фото сильнее), активная —
   рамка primary. */
body.theme-lime #product .gallery .thumbs .cn-slide {
    opacity: .75;
}

body.theme-lime #product .gallery .thumbs .cn-slide img {
    border-color: var(--lime-line, #d6d6e5);
}

body.theme-lime #product .gallery .thumbs .cn-slide.cn-slide-thumb-active {
    opacity: 1;
}

body.theme-lime #product .gallery .thumbs .cn-slide.cn-slide-thumb-active img {
    border-color: var(--c-primary, #0752dd);
}

/* Полоска активного снимка в карточке предложения («Смотрите также»
   деталки, каталог, категория; ADR-0016 — полоса внизу фото). */
body.theme-lime .slider-dots .dot.active {
    border-bottom-color: var(--c-primary, #0752dd);
}

/* Точки карусели («Смотрите также»; на десктопе-мыши скрыты базовым
   каноном #317 — видны на тач и мобильных): кружок 8 / ровный зазор 8
   (базовый CSS дублировал интервал gap .45rem + margin .286rem) /
   активная — таблетка 24. */
body.theme-lime .cn-dots {
    gap: 8px;
}

body.theme-lime .cn-dot {
    width: 8px;
    height: 8px;
    margin: 0;
    background: var(--lime-muted, #7f7f86);
    opacity: 1;
}

body.theme-lime .cn-dot.is-active {
    width: 24px;
    border-radius: 999px;
    background: var(--c-primary, #0752dd);
}

body.theme-lime .cn-dot:not(.is-active):hover {
    background: var(--c-accent, #0e4cc0);
}

/* Правая колонка. */
body.theme-lime .detail-info h1 {
    font: 700 32px/1.2 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    margin: 0 0 6px;
}

body.theme-lime .detail-complectation {
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
    margin: 0 0 18px;
}

body.theme-lime .detail-metrics {
    display: flex;
    gap: 30px;
    flex-wrap: wrap;
    margin-bottom: 22px;
}

body.theme-lime .detail-metric {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime .detail-metric b {
    font-weight: 600;
    color: var(--lime-dark);
}

body.theme-lime .detail-price {
    margin-bottom: 22px;
}

body.theme-lime .price-now {
    display: flex;
    align-items: baseline;
    gap: 10px;
    /* Макет 1:587: цена 38 и «от X ₽/мес» 22 — вплотную (1:671/1:678,
       y=391+38=429); легаси p{margin-bottom:1rem} добавлял 14. */
    margin-bottom: 0;
    font: 700 32px/1.2 "Inter", system-ui, sans-serif;
    color: var(--c-accent);
}

body.theme-lime .price-now [data-role="complectation-old"] {
    font-style: normal;
    font: 400 20px/1.2 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
    text-decoration: line-through;
}

body.theme-lime .price-monthly {
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
    margin-top: 0;
}

body.theme-lime .detail-cta {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    /* Макет 1:587: кнопки 53 и 56 стоят вплотную (1:680/1:682,
       y=471+53=524) — блок CTA 109, без gap и легаси-отступа. */
    gap: 0;
    margin-bottom: 24px;
}

/* Две CTA макета 1:587 (#531): «Получить одобрение» 460×53
   (primary) и «Кредитный калькулятор» 460×56 (вторичная с иконкой
   calculator) — обе на всю ширину колонки инфо. */
body.theme-lime #product .detail-cta .btn-primary {
    width: 100%;
    align-self: stretch;
    min-height: 53px;
    padding: 15px 30px;
}

body.theme-lime .detail-cta .btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: var(--c-primary);
    border: 1px solid var(--lime-line);
    border-radius: var(--lime-radius);
    padding: 17px 30px;
    font: 600 16px/1.2 "Inter", system-ui, sans-serif;
    min-height: 44px;
    cursor: pointer;
}

body.theme-lime .detail-cta .btn-secondary:hover {
    background: var(--lime-bg-soft);
}

body.theme-lime #product .detail-calc {
    display: inline-flex;
    align-items: center;
    /* Макет 1:587, Frame 16 (1:682, 460×56): «Кредитный калькулятор» —
       текстовая ссылка, иконка Calculator (1:683, 24×24) прижата к
       левому краю (x=0), текст с x=29 (gap 5); фон/рамки нет. */
    justify-content: flex-start;
    gap: 5px;
    width: 100%;
    min-height: 56px;
    /* Сброс легаси-виджета: product.css задаёт #tradein{margin-top:1rem}
       (ID-селектор) и растягивал колонку CTA против макетных 53+56 —
       отступ снимаем правилом с #product, который ID-вес перекрывает. */
    margin-top: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    /* Легаси-тень кнопок базовой темы (general.css: button) — снята:
       в макете это текстовая ссылка. */
    box-shadow: none;
    color: var(--c-primary);
    font: 600 16px/1.2 "Inter", system-ui, sans-serif;
    /* Иконка 24 при высоте ссылки 56: поля 16 сверху/снизу,
       слева иконка вплотную к краю колонки (макет). */
    padding: 16px 0;
    cursor: pointer;
}

body.theme-lime #product .detail-calc:hover {
    background: transparent;
    box-shadow: none;
    text-decoration: underline;
}

/* ─── Доступные цвета и комплектации (приёмка карточки) ─────────────
   В макете 1:587 этих блоков нет; в теме работали легаси-стили
   product.css (капсулы 42×24 с тенью general.css и кнопки #306FAE —
   без читаемого состояния выбора) — «стилизовать под тему».
   Канон выбран вижн-приёмкой (8001) из трёх вариантов: A — круглые
   образцы цвета с кольцом акцента и белые карточки-строки комплектаций
   (цена — правая колонка, выбор — рамка + лёгкий фон + галочка). */
/* Блок цветов (нюансы приёмки, итерация 2): отбивка от лейбла и до
   «Комплектации» следом увеличены (10/24 читались слипшимися); шаг
   образцов 16 — при 12 образцы цвета визуально сливались (кольцо актива
   съедает 5px зазора). Ритм блоков карточки — 28. */
body.theme-lime #product .available-colors {
    margin-bottom: 28px;
}

body.theme-lime #product .available-colors small {
    display: block;
    margin-bottom: 12px;
}

body.theme-lime #product .color-list {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 0;
}

body.theme-lime #product .color-item {
    /* −13% от 32 (приёмка нюансов): компактнее в колонке, кольцо
       актива не соприкасается с соседними образцами. */
    width: 28px;
    height: 28px;
    padding: 0;
    border: 1px solid var(--lime-line);
    border-radius: 50%;
    background: var(--bg-color);
    /* Внутренний контур: белые/светлые образцы не сливаются с белой
       карточкой (приёмка). */
    box-shadow: inset 0 0 0 1px rgba(20, 31, 56, .08);
    cursor: pointer;
}

body.theme-lime #product .color-item[aria-pressed="true"] {
    border-color: transparent;
    /* Кольцо акцента с зазором 3px (приёмка: без зазора кольцо сливалось
       с образцом цвета). */
    box-shadow: inset 0 0 0 1px rgba(20, 31, 56, .08),
        0 0 0 3px #fff, 0 0 0 5px var(--c-primary);
}

/* Б/у: образец — атрибут, не выбор (ADR-0067 п.1) — курсор без
   кликабельности (в теме .color-item по умолчанию pointer). */
body.theme-lime #product .color-list.is-static .color-item {
    cursor: default;
}

body.theme-lime #product .complectation-selector {
    margin-bottom: 28px;
}

body.theme-lime #product .complectation-selector small {
    display: block;
    margin-bottom: 12px;
}

body.theme-lime #product .complectation-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 0;
}

body.theme-lime #product .complectation-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 14px;
    background: #fff;
    border: 1px solid var(--lime-line);
    border-radius: var(--lime-radius);
    box-shadow: none;
    cursor: pointer;
}

body.theme-lime #product .complectation-item-name {
    font: 600 15px/1.2 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime #product .complectation-item-price {
    margin-left: auto; /* цена — единой правой колонкой */
    font: 400 14px/1.2 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

/* Галочка выбора — нецветовой индикатор (приёмка): слот 12px есть
   у каждой строки, поэтому цена не «прыгает» при смене варианта. */
body.theme-lime #product .complectation-item::after {
    content: "";
    flex: 0 0 12px;
    width: 12px;
    height: 6px;
    margin: 0 8px 3px 0; /* отступ от правого края (приёмка: не прилипает) */
    border-left: 2px solid transparent;
    border-bottom: 2px solid transparent;
    transform: rotate(-45deg);
}

body.theme-lime #product .complectation-item[aria-checked="true"] {
    border-color: var(--c-primary);
    background: rgba(7, 82, 221, .04);
}

body.theme-lime #product .complectation-item[aria-checked="true"]::after {
    border-left-color: var(--c-primary);
    border-bottom-color: var(--c-primary);
}

/* Чип комплектации в шапке темы — макетная строка .detail-complectation
   (над метриками, выше): отдельная пилюля не вводится. Прежний
   декоративный «переключатель одного значения» (data-single, #387 В3)
   снят вместе с правилом темы (#590). */

/* Мини-ТТХ (макет 1:587, Frame 229/230): строки по 32px, значение
   справа, без разделителей — в макете линии между строками и над
   первой отсутствуют (приёмка карточки, вижн-сверка с макетом);
   макетная высота строки = 32 (ранее 35 из-за padding 6). Строк —
   по данным оффера (макет дублирует «Привод/Передний» трижды —
   артефакт дизайна). */
body.theme-lime .detail-specs-short dl {
    margin: 0;
}

body.theme-lime .detail-specs-short dl>div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 32px;
    padding: 4px 0;
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
}

body.theme-lime .detail-specs-short dt {
    color: var(--lime-muted);
}

body.theme-lime .detail-specs-short dd {
    margin: 0;
    font-weight: 600;
    color: var(--lime-dark);
}

body.theme-lime .detail-specs-all {
    display: inline-block;
    margin-top: 14px;
    padding: 0;
    background: none;
    border: 0;
    /* Макет 1:587: «Все характеристики» — текстовая ссылка; в теме
       снимаем легаси-оформление кнопки базовой темы (general.css:
       button{box-shadow:0 2px 6px rgba(48,111,174,.22)} — «контур
       и тень» из приёмки карточки). */
    box-shadow: none;
    border-radius: 0;
    font: 400 16px/1.375 "Inter", system-ui, sans-serif;
    color: var(--c-primary);
    cursor: pointer;
}

body.theme-lime .detail-specs-all:hover {
    box-shadow: none;
    color: var(--c-accent);
    text-decoration: underline;
}

/* Карусели детальной (products/поиска/поступлений) — карточки движка. */
body.theme-lime #products h2,
body.theme-lime .catalog-section h2 {
    font: 700 32px/1.1 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

/* ─── Адаптив: планшет/мобайл (макет 960/380) ────────────────────── */
/* Ленты и форма планшета (приёмка v4, #432, макет 920): отдельный MQ
   с нижней границей 761 — мобильная раскладка (≤760) не получает
   планшетных правил (у неё свои ленты 77%/столбик, ревью PR #435). */
@media (min-width: 761px) and (max-width: 990px) {
    body.theme-lime .best-grid {
        /* «Лучший выбор» 761–990 (приёмка v4, #432, макет 920): ЛЕНТА —
           3 полноразмерные карточки 263×352 и четвёртая уходит за
           правый край (намёк на скролл); свайп, скрытый скроллбар
           (канон мобильного MQ). Легаси-сетка 4 в ряд обрезала фото
           (карточки ~207px против макетных 263). */
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        gap: 20px;
        margin: 0;
        padding: 2px 0 8px;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    body.theme-lime .best-grid::-webkit-scrollbar {
        display: none;
    }

    body.theme-lime .best-card {
        flex: 0 0 263px;
        width: 263px;
        height: 352px;
        scroll-snap-align: start;
    }

    /* Тело карточки — в размер макета (352 = фото 182 + тело 170):
       контент по верху, лёгкий воздух снизу; легаси padding 15px
       ужимал карточку до ~313px высоты. */
    body.theme-lime .best-card-body {
        padding: 24px 16px;
        gap: 10px;
        flex: 1;
    }

    /* Преимущества 761–990 (приёмка v4, #432, макет 920): горизонтальная
       лента — карточка ~33% контейнера (видно ~3, четвёртая уходит за
       правый край, намёк на скролл); свайп, скрытый скроллбар.
       Легаси-сетка 4 в ряд вытягивала пункты в одну строку без
       скролла (макет: ряд листается).
       Специфичность 0,4,1 — выше .wrap.container (0,3,1) с
       display:block (канон колонок, #408): иначе «столбик» базы
       побеждал и ленты не было. */
    body.theme-lime .wrap.container.features-row {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        gap: 20px;
        padding: 2px 0 8px;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    body.theme-lime .features-row::-webkit-scrollbar {
        display: none;
    }

    body.theme-lime .feature-item {
        flex: 0 0 33.3333%;
        min-width: 0;
    }

    /* Форма 761–990 — ряды в ОДНУ строку (приёмка v4, #432, макет 920):
       легаси flex-wrap переносил поле «Цвет» на вторую строку ряда
       селектов (4×210+3×16 = 888 > 842 доступных); поиск/цена/год
       тоже должны быть в одном ряду. Защита — nowrap + равные
       flex-доли: ряды не переносятся ни на 920, ни на узком 761. */
    body.theme-lime .search-panel-row {
        flex-wrap: nowrap;
    }

    /* Лейблы и значения полей — по ОДНОЙ базовой линии (приёмка #436,
       макет 9:98–9:119): легаси align-items center центрировал пару
       «лейбл+вводы» по высоте ряда — значения «вздёргивались» выше
       базовой линии лейбла (замер: верх пары на 13px выше верха
       лейбла). */
    body.theme-lime .search-panel-row .search-field {
        align-items: baseline;
    }

    /* Добор приёмки 29.09 (#439): у кап-лейбла (inline-flex с иконкой)
       flex-baseline приходится на низ иконки — текст лейбла вставал
       на ~6px ВЫШЕ базовой линии значений; приписка ₽/г. (absolute,
       статик-центр пары) — на ~6px НИЖЕ. Иконку уводим из потока:
       baseline контейнера задаёт текст лейбла — браузер сам сажает
       его на линию значений. Приписку поднимаем от статик-центра
       пары (−8px, калибровка по стенду: ±2px к линии значений).
       Лейбл дальше от поля «от/до»: gap 24 (легаси 15 — тесновато
       из-за иконки). */
    body.theme-lime .search-panel-row .search-range {
        gap: 24px;
    }

    body.theme-lime .search-panel-row .search-field .range-cap {
        position: relative;
        padding-left: 27px;
    }

    body.theme-lime .search-panel-row .search-field .range-cap img {
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
    }

    body.theme-lime .search-panel-row .range-pair span {
        margin-top: -8px;
    }

    body.theme-lime .search-panel-row .search-query {
        flex: 1 1 140px;
        min-width: 0;
    }

    body.theme-lime .search-panel-row .search-range {
        flex: 1 1 200px;
        min-width: 0;
    }

    body.theme-lime .search-panel-row .range-pair {
        min-width: 0;
    }

    body.theme-lime .select-field {
        flex: 1 1 0;
        width: auto;
        min-width: 0;
    }

    body.theme-lime .color-field {
        min-width: 0;
    }
}

/* Десктоп формы поиска (приёмка #446, замечание на 1350): базовые
   range-поля (#429) с flex-basis auto растут по max-content значения —
   цена из фасета («480000»/«2200000», 7 знаков) даёт 264px на поле,
   пара 535px, вся группа 616px. Вместе с полем поиска (167) и годом
   (278) ряд просит 1141px при доступных 1080 — «Год» переносился на
   вторую строку. От 991px ряд делится равными колонками (как
   «Позвоните/Напишите/Приходите» выше): поля сжимаются под
   контейнер, строка остаётся одной. */
@media (min-width: 991px) {
    body.theme-lime .search-panel-row .search-field {
        flex: 1 1 0;
        min-width: 0;
    }

    body.theme-lime .search-panel-row .range-pair {
        flex: 1 1 0;
        min-width: 0;
    }

    body.theme-lime .search-panel-row .search-range input {
        flex: 1 1 0;
        min-width: 0;
    }
}

@media (max-width: 990px) {
    body.theme-lime .hero h1 {
        font-size: 42px;
    }

    /* Отзывы — лента на всех брейкпоинтах (приёмка #429); планшетное
       сеточное правило (2 колонки) удалено — карточка 50% и скролл
       заданы базовым правилом. */

    body.theme-lime .search-panel .wrap.container {
        padding: 24px;
    }

    body.theme-lime .search-panel-actions {
        margin-left: 0;
    }

    /* Контентные контейнеры на планшете — с боковыми полями 15px
       (#419): .wrap упирается в края (≤990), легаси main-поля
       обнулены для edge-to-edge фонов — секции не должны липнуть
       к краям. На десктопе (1200 по центру) поля не нужны. */
    body.theme-lime .wrap.container {
        padding-left: 15px;
        padding-right: 15px;
    }

    body.theme-lime .detail-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    body.theme-lime .detail-gallery .cn.screen .cn-slide img {
        width: 100%;
        height: auto;
        aspect-ratio: 700 / 525;
    }

    /* Навигация topline на планшете — в ОДНУ строку (#419, макет 9:4
       высота 37px): без переноса; gap 28 на планшете (макетные 40 с
       фактической шириной пунктов темы не влезают в 920: 908+40 контента
       против 880 доступных при полях 20px; на 960 — запас 12px, на
       920 — минус 28px, конец «Контакты» резался бы скрытым скроллом;
       запас десктопа 1200px позволяет макетные 40 там). Узкие планшеты
       (≤891) — одна строка с горизонтальной прокруткой (без скроллбара;
       тексты не переносятся и не сжимаются). */
    body.theme-lime .topline-nav {
        flex-wrap: nowrap;
        gap: 28px;
        overflow-x: auto;
        scrollbar-width: none;
    }

    body.theme-lime .topline-nav::-webkit-scrollbar {
        display: none;
    }

    /* Планшет (макет 9:3/9:34): поиск-ссылка — только синяя плашка-лупа
       33.52 (Frame 39 9:34: 33.52×33.52, подложки нет; текст-поле
       «Найти автомобиль ...» скрыт в макете планшета hidden=true;
       десктоп ≥991 — поле с текстом + плашка справа, базовое правило).
       Серая подложка 40×40 убрана: она читалась «обводкой» вокруг
       иконки (дефект приёмки), в макете её нет. Плашка освобождает
       шапке место под телефон (макет Frame 219 328×51) — иначе блок
       контактов сжимался и номер переносился на 2 строки (#419). */
    body.theme-lime .header-search-link span {
        display: none;
    }

    body.theme-lime .header-search-link {
        width: 33.5px;
        height: 33.5px;
        padding: 0;
        justify-content: center;
    }

    /* Подвал на планшете (#412): колонки компактнее — 30px вместо 40,
       чтобы при 761–990px ряд бренд + 3 колонки не переносился. */
    body.theme-lime .footer-cols {
        gap: 30px;
    }
}

/* Контентные поля десктопа 991–1230px (#461, приёмка 01.10): центрирование
   .wrap (max 1200) даёт поля ≥15px только с окна 1230px — до этого
   контент прилипал к краям экрана (формы и блоки). Держим планшетные
   15px до 1230 (спецконтейнеры — search-panel 20px, footer 15px —
   перекрывают фикс своей специфичностью); шире — макетные поля
   центрирования (геометрия 1440 не меняется). */
@media (min-width: 991px) and (max-width: 1230px) {
    body.theme-lime .wrap.container {
        padding-left: 15px;
        padding-right: 15px;
    }
}

/* Навигация topline 991–1024px (#419): MQ 990 кончился, базовый gap 40
   требует ≥1009px видимой ширины — на 991–1008 пункты переносились
   на вторую строку. Держим одну строку с планшетным gap 28 и тем же
   скрытым скроллбаром (ревью #421: без него на 991–1024 появлялся
   системный скроллбар — рассинхрон с планшетным MQ). */
@media (min-width: 991px) and (max-width: 1024px) {
    body.theme-lime .topline-nav {
        flex-wrap: nowrap;
        gap: 28px;
        overflow-x: auto;
        scrollbar-width: none;
    }

    body.theme-lime .topline-nav::-webkit-scrollbar {
        display: none;
    }
}

@media (max-width: 760px) {
    body.theme-lime .topline {
        display: none;
    }

    /* Мобильная шапка 380×50 (макет 9:636 Frame 237): лого + подпись
       города слева, бургер справа; поиск/телефон/иконки скрыты. */
    body.theme-lime .header-main {
        flex-wrap: nowrap;
        gap: 10px;
        padding: 5px 16px;
        min-height: 50px;
    }

    body.theme-lime .header-marks {
        flex: 1 1 auto;
        gap: 8px;
        min-width: 0;
    }

    /* Логотип мобильной шапки (380×50): 48px — крупнее (было 44px,
       приёмка 02.10: «ещё крупнее»); топбар с паддингами вырастает
       до 58px (макет 50px — превышение принято приёмкой 02.10,
       как и при 44px → 54px). */
    body.theme-lime .header-marks .logo img {
        height: 48px;
    }

    /* Мобильный топбар 380×50: имя справа от логотипа (приёмка #461) —
       компактная плашка влезает в 50px-топбар рядом с логотипом и
       городом; базовый кегль 20px → 13px (11px статик-город). */
    body.theme-lime .header-marks .logo-site-name {
        padding: 3px 8px;
        font-size: 13px;
    }

    body.theme-lime .header-city {
        display: inline-flex;
        font-size: 11px;
    }

    body.theme-lime .header-search,
    body.theme-lime .header-contacts,
    body.theme-lime .header-marks-list {
        display: none;
    }

    body.theme-lime .burger {
        display: inline-flex;
    }

    body.theme-lime .hero {
        /* Серый идёт под верхнюю ~1/3 формы (#415 п.5, макет 9:585).
           Глубина серого под верхом белой карточки = наезд формы
           (margin-top: −130px ниже) — ~130px из ~380px высоты формы.
           Отступ сверху — больше (приёмка v4, #432, макет 380:
           воздух над кикером «ликвидация склада» глубже, чем 40px). */
        padding: 56px 0 200px;
    }

    body.theme-lime .hero h1 {
        font-size: 32px;
    }

    body.theme-lime .hero-kicker {
        font-size: 18px;
    }

    /* Вертикальный ритм героя (#414 п.1, п.2, макет 320): зазор
       kicker→заголовок 12px (было 22), заголовок→«Более 300…» 24px
       (было 16 — в макете подзаголовок дальше от заголовка). */
    body.theme-lime .hero-text {
        gap: 12px;
    }

    body.theme-lime .hero-note {
        margin-top: 24px;
    }

    body.theme-lime .hero-trust {
        gap: 20px;
    }

    /* Кнопки героя в столбик на всю ширину (макет 9:653: 340×53) —
       легаси не растягивал их: 235/175px вразнобой (#412). Воздух
       под «Более 300 … на тест-драйв» — больше (приёмка v4, #432,
       макет 380: заголовок-блок дальше от кнопок, чем gap 12px
       hero-text). */
    body.theme-lime .hero-cta {
        flex-direction: column;
        align-items: stretch;
        margin-top: 24px;
    }

    body.theme-lime .hero-cta .hero-btn,
    body.theme-lime .hero-cta .hero-btn-secondary {
        width: 100%;
    }

    /* Мобильная форма поиска (макет 9:678): строки «лейбл + контрол»
       по 44px (9:713), Цена/Год/Цвет скрыты, кнопки на всю ширину. */
    body.theme-lime .search-panel-row {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    body.theme-lime .search-field,
    body.theme-lime .select-field {
        width: 100%;
        min-width: 0;
        min-height: 44px;
    }

    body.theme-lime .select-field {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 10px;
    }

    /* Селекты формы на мобайле — воздушнее (макет, #414 п.4):
       больше внутренних полей по вертикали (44px высоты контрола). */
    body.theme-lime .select-field select,
    body.theme-lime .range-select {
        padding: 12px 14px;
        min-height: 44px;
    }

    body.theme-lime .search-query input,
    body.theme-lime .search-range input {
        padding: 10px;
    }

    body.theme-lime .select-field select {
        flex: 1 1 auto;
        width: auto;
    }

    /* Цена/Год на мобильной главной скрыты (в макете hidden; доступны
       в каталоге через «Все фильтры»); Цвет — тоже скрыт (макет 9:733). */
    body.theme-lime .search-range,
    body.theme-lime .select-field[title="Цвет"] {
        display: none;
    }

    body.theme-lime .search-panel-actions {
        flex-direction: column;
        gap: 10px;
        width: 100%;
    }

    body.theme-lime .search-panel-actions .filters-link,
    body.theme-lime .search-panel-actions .find-btn {
        width: 100%;
        justify-content: center;
    }

    /* Заголовки секций на мобайле: «Все автомобили»/«Все марки» —
       под заголовком (макеты 9:747/9:1131). */
    body.theme-lime .section-head {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    body.theme-lime .section-head .section-link {
        align-self: flex-start;
    }

    /* «Лучший выбор» на мобайле (#415 п.1, макет 9:747): горизонтальная
       карусель — первая карточка полноразмерная (~77% контейнера,
       макет 263/340), вторая частично видна за правым краем экрана;
       скролл свайпом. Сетка 2×2 (было #414 п.6) — не макетна.
       (#416 приёмка:) полоса прокрутки скрыта — свайп сохраняется,
       скроллбар не виден даже в тач-эмуляции. */
    body.theme-lime .best-grid {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        gap: 20px;
        margin: 0;
        padding: 2px 0 8px;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    body.theme-lime .best-grid::-webkit-scrollbar {
        display: none;
    }

    body.theme-lime .best-card {
        flex: 0 0 77%;
        width: auto;
        scroll-snap-align: start;
    }

    /* Отзывы — лента и на мобайле (приёмка #429): карточка на всю
       ширину, фото СЛЕВА 200×360 — планшетная раскладка; приёмка v4
       (#432, макет 380): карточка ВЕРТИКАЛЬНАЯ — фото сверху на всю
       ширину (высота 200), под ним текст и имя (легаси-раскладка
       #412/#414 удалена во v3 как немакетная для 761+, здесь она
       макетна). Видна 1 карточка, свайп листает дальше. */
    body.theme-lime .review-card {
        flex: 0 0 100%;
        flex-direction: column;
    }

    body.theme-lime .review-photo {
        flex: none;
        width: 100%;
        height: 200px;
    }

    /* Обложка фото сверху (#461, приёмка 01.10, макет 380): вертикальные
       кропы «только люди» (3:4) обрезаются cover по центру — виден
       торс (грудь/живот). Позиция от верха показывает лицо. */
    body.theme-lime .review-photo img {
        object-position: top;
    }

    body.theme-lime .review-body {
        padding: 20px;
    }

    /* Мобильная форма поиска (макет 9:678): карточка 340 (поля контейнера
       20px), внутренние поля 12px — контент ≈ макетным 280. */

    /* Поле «Поиск авто» не вылезает за панель (#410: легаси width: 128px +
       flex без min-width давали right 403 при вьюпорте 380). */
    body.theme-lime .search-query input {
        flex: 1 1 auto;
        min-width: 0;
        max-width: 100%;
        width: 100%;
    }

    /* Поля формы 20px — общее правило выше (макет 9:678/9:85). */

    /* Наезд формы на серый hero на мобайле — глубже (#415 п.5):
       форма ~390px высотой, наезд −150px даёт серый под её верхом
       ~1/3 высоты (как серый до 1/3 формы в макете 9:585). */
    body.theme-lime .search-panel {
        margin-top: -150px;
    }

    body.theme-lime .search-panel .wrap.container {
        padding: 12px;
    }

    /* Кнопки лид-панелей на всю ширину контента (макет: «Получить
       консультацию»). */
    body.theme-lime .about-block-btn,
    body.theme-lime .cta-block-btn {
        width: 100%;
    }

    /* Ряд панелей «Марки»/«Избранный поиск» на мобайле — столбик
       (макет 320: панели одна под другой, зазор 20px). */
    body.theme-lime .marks-row {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    /* Группа «о компании + услуги» на мобайле — столбик (#446,
       макет 320: панель «о компании», затем список услуг). */
    body.theme-lime .cta-group-row {
        grid-template-columns: 1fr;
    }

    body.theme-lime .marks-grid {
        padding: 16px;
        gap: 10px 12px;
    }

    /* Заголовок панели марок на мобайле — 30px (макет 9:1131). */
    body.theme-lime .marks-head h2 {
        font-size: 30px;
    }

    /* Добор приёмки 29.09 (#439): компактная компоновка на 380 —
       «Volkswagen» (92px при 16px) вылезал за кнопку 60px в
       межколоночный зазор; кнопка 78px + шрифт 13px: марки до ~11
       символов (Volkswagen ≈75px) — в одну строку, длиннее —
       аккуратный перенос (Mercedes-Benz — по дефису). */
    body.theme-lime .mark-btn {
        width: 78px;
    }

    body.theme-lime .mark-btn b {
        font-size: 13px;
        line-height: 1.3;
    }

    /* «Избранный поиск» (#414 п.9, макет 320): панель и чипы
       компактнее — больше пилюль в строке (3 против 2 до волны). */
    body.theme-lime .search-strip {
        padding: 24px;
    }

    body.theme-lime .search-strip-chips {
        gap: 8px;
    }

    body.theme-lime .strip-chip {
        padding: 5px 12px;
        font-size: 13px;
    }

    body.theme-lime .wrap.container.features-row {
        gap: 24px;
        /* Мобильная раскладка — столбик (приёмка v3, #429). */
        grid-template-columns: 1fr;
    }

    /* Преимущества (#414 п.10): воздух сверху меньше, чем 60px
       (макет 320: блок компактнее между панелями). */
    body.theme-lime .features {
        padding-top: 36px;
    }

    body.theme-lime .features+.cta-group {
        padding-top: 36px;
    }

    /* CTA «Lime Auto» на мобайле (#414 п.11, макет 320): панель выше
       контента, текст сверху, кнопка прижата к нижнему краю. */
    body.theme-lime .about-block-inner {
        flex-direction: column;
        justify-content: space-between;
        align-items: flex-start;
        gap: 24px;
        min-height: 300px;
        padding: 30px 24px;
    }

    body.theme-lime .cta-block-inner {
        padding: 30px 24px;
    }

    body.theme-lime .help-contacts {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }

    /* CTA-подвал «Нужна помощь?» (макет 9:1281): строки списком
       с горизонтальной чертой-разделителем (приёмка #408 п.7). */
    body.theme-lime .help-contact {
        border-right: 0;
        border-bottom: 1px solid var(--lime-line);
        padding: 14px 0;
    }

    body.theme-lime .help-contact:last-child {
        border-bottom: 0;
    }

    /* Колонки навигации подвала (макет 9:1306): 2 колонки по 150px,
       третья — строкой ниже; без flex-сжатия (приёмка #408 п.8).
       #412: жёсткие 150+150+40=340 не влезали в контейнер 320 (у
       подвала wrap без паддингов) — колонки гибкие от 130px. */
    body.theme-lime .footer-cols {
        display: grid;
        grid-template-columns: repeat(2, minmax(130px, 1fr));
        gap: 40px;
    }

    /* Отступы подвала на мобайле (#412): компактнее вертикальный ритм
       бренд-блок → колонки и между пунктами. */
    body.theme-lime .footer-top {
        gap: 36px;
    }

    body.theme-lime .footer-col ul {
        gap: 12px;
    }

    body.theme-lime .footer-col b {
        margin-bottom: 12px;
    }

    /* «Информация» — на всю ширину второй строки сетки (#414 п.14,
       макет 320: две колонки в ряду без пустого места справа). */
    body.theme-lime .footer-col:nth-child(3) {
        grid-column: 1 / -1;
    }

    /* Каталог на мобайле (#412, макет 35:2280): компактные марки-круги,
       чипы и панель фильтров без вылетов за 380px. Лента марок — один
       ряд с тач-прокруткой (гриль 06.10), карточка ленты компактнее. */
    body.theme-lime .marks-strip-wrap {
        padding: 16px 20px;
        margin-bottom: 24px;
    }

    /* Селектор сужен до каталога (ревью #413): без этого MQ-правило
       переопределяло секцию марок главной (60px → 52px). */
    body.theme-lime .marks-strip .mark-btn {
        width: 52px;
    }

    body.theme-lime .marks-strip .mark-btn img,
    body.theme-lime .marks-strip .mark-placeholder {
        width: 48px;
        height: 48px;
    }

    /* Компактная подложка активной и стрелка ленты — в блоке «Волна
       #488» в конце файла: здесь правила перекрывались бы каскадом. */

    /* Чипы фильтров компактнее (п.8 прожарки #412, макет 35:2280):
       панель фильтров без вылетов за пределы каталога. */
    body.theme-lime .facet-chips .facet-chip {
        padding: .4rem .8rem;
    }

    body.theme-lime .catalog-head h1 {
        font-size: 26px;
    }

    body.theme-lime .catalog-city {
        font-size: 14px;
    }

    body.theme-lime .popular-tags h3 {
        font-size: 20px;
        margin-bottom: 14px;
    }

    body.theme-lime .facet-panel {
        padding: 20px 16px;
    }

    /* Детальная на мобайле (#412): карточка впритык к краям, текст
       и кнопки читаемы. */
    body.theme-lime .detail-grid {
        padding: 16px;
        gap: 24px;
    }

    body.theme-lime .detail-info h1 {
        font-size: 26px;
    }

    body.theme-lime .detail-cta .btn-primary,
    body.theme-lime .detail-cta .btn-secondary {
        padding: 15px 20px;
    }
}

@media (max-width: 480px) {
    body.theme-lime .search-field {
        width: 100%;
    }

    body.theme-lime .search-query input {
        flex: 1 1 auto;
        width: auto;
    }
}

/* ============================================================
   Волна #488: полировка страниц Каталога по макету 40:15
   (десктоп; эталон — /cars). Баннер, марки-логотипы, CTA-блок.
   ============================================================ */

/* Иконки марок каталога (SVG темы, #488): логотип без искажений,
   белая подложка круга от .mark-btn (60px). */
body.theme-lime .marks-strip .mark-btn img.mark-icon {
    object-fit: contain;
    padding: 10px;
    box-sizing: border-box;
}

/* Стрелки прокрутки ленты (макет 40:15: стрелка справа; гриль 06.10;
   11.10 — пара стрелок, левая зеркалит правую): показываются скриптом
   (theme-lime-marks-strip) только когда есть что листать; нативный
   скролл остаётся (тачпад/тач/Shift+колесо). Цвет — тёмный: общий
   shared.css красит кнопки в белый (button, .button), на белом кружке
   иконка терялась (фидбек 07.10 «кружок без стрелки»); hover
   перекрашивает иконку в акцент. Геометрия у пары общая — расходятся
   только стороной (next — right, prev — left) и зеркальной иконкой
   (тот же шеврон поворачивается scaleX). */
body.theme-lime .marks-strip-next,
body.theme-lime .marks-strip-prev {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: var(--lime-dark);
    box-shadow: 0 0 8px rgba(25, 32, 47, 0.18);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

body.theme-lime .marks-strip-next {
    right: 12px;
}

body.theme-lime .marks-strip-prev {
    left: 12px;
}

body.theme-lime .marks-strip-prev svg {
    transform: scaleX(-1);
}

body.theme-lime .marks-strip-next[hidden],
body.theme-lime .marks-strip-prev[hidden] {
    display: none;
}

body.theme-lime .marks-strip-next:hover,
body.theme-lime .marks-strip-prev:hover {
    color: var(--c-primary);
}

/* Активная марка ленты (#488, гриль 06.10): синий круг с белым логотипом
   и подписью, как активная Lada в макете 40:15. Круг-подложка — на
   ::before: CSS-фильтр перекрашивает элемент целиком, вместе с фоном
   (синий круг + filter превращался в белый круг — инцидент приёмки
   06.10), поэтому фон отделён от фильтруемой картинки. Заглушка-буква —
   белая на подложке. */
body.theme-lime .marks-strip .mark-btn.is-active {
    position: relative;
}

body.theme-lime .marks-strip .mark-btn.is-active::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: var(--c-primary);
}

body.theme-lime .marks-strip .mark-btn.is-active img,
body.theme-lime .marks-strip .mark-btn.is-active .mark-placeholder {
    position: relative;
    /* над подложкой ::before */
    background: transparent;
    box-shadow: none;
}

body.theme-lime .marks-strip .mark-btn.is-active img {
    /* invert(1), а не brightness(0) invert(1): приёмка 11.10 — у иконок
       с белыми деталями (volvo, skoda, mercedes, faw, mini, hyundai)
       brightness(0) гасил и чёрные, и белые заливки в один белый силуэт
       («белое на белом»); invert(1) оставляет тело белым, а белые детали
       делает тёмными — читаемыми. Для иконок из чистого чёрного оба
       варианта дают одно и то же (чёрное → белое). */
    filter: invert(1);
}

body.theme-lime .marks-strip .mark-btn.is-active .mark-placeholder {
    color: #fff;
}

body.theme-lime .marks-strip .mark-btn.is-active b {
    color: var(--c-primary);
}

/* Кредитный баннер над крошками (макет 1:587, узел 1:639: первый блок
   под шапкой). Поля 15px баннеру — в медиа ≤1229: на десктопе он 1200
   внутри article.wrap; ниже 1230 (где центрирование 1200 ещё не даёт
   полей) блок прилипал к краям экрана (приёмка нюансов, ширины
   380/920–1215), а .credit-banner — не .wrap.container (канон #461). */
body.theme-lime .credit-banner {
    margin: 0 0 24px;
}

/* Внутренние поля баннера: специфичность выше общего
   .wrap.container (он 3 класса: theme-lime/wrap/container) — иначе
   padding-left/right 0 схлопывает поля на десктопе (#488 итерация 4). */
body.theme-lime .wrap.container.credit-banner-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    /* Макет 40:67 (#488 итерация 3): фон — фото салона авто из макета
       справа, поверх — синий градиент слева-светлее → справа-темнее
       (макет: светло-синий → тёмно-синий); текст слева читается на
       плотной левой части градиента, фото просвечивает справа. */
    background:
        linear-gradient(100deg,
            rgba(22, 76, 190, 0.92) 0%,
            rgba(13, 58, 160, 0.78) 52%,
            rgba(6, 36, 112, 0.52) 100%),
        url("../img/banners/banner-salon.jpg") right center / cover no-repeat;
    color: #fff;
    border-radius: 15px;
    padding: 40px 48px;
    min-height: 150px;
}

body.theme-lime .credit-banner-text h2 {
    margin: 0 0 8px;
    font: 700 26px/1.25 "Inter", system-ui, sans-serif;
    color: #fff;
    max-width: 560px;
}

body.theme-lime .credit-banner-text p {
    margin: 0;
    max-width: 520px;
    font: 400 16px/1.5 "Inter", system-ui, sans-serif;
    color: rgba(255, 255, 255, 0.92);
}

body.theme-lime .credit-banner-text p a {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 600;
}

body.theme-lime .credit-banner-text p a:hover {
    color: #dbe7ff;
}

/* Второй режим полосы-баннера (О3, макеты 2061:18497 и далее): слева
   крупное значение («100 000 ₽», 36/700), справа акционные строки
   (19/400 и 16/400); в макете значение и строки идут подряд от левого
   края (gap ~32), свободное место справа — под фото; высота плашки —
   105px макета (padding 30), а не min-height 150 полосы каталога. */
body.theme-lime .credit-banner-value {
    font: 700 36px/1.15 "Inter", system-ui, sans-serif;
    color: #fff;
    white-space: nowrap;
}

body.theme-lime .credit-banner-lines {
    max-width: 640px;
}

body.theme-lime .credit-banner-lines h2 {
    margin: 0 0 4px;
    font: 400 19px/1.35 "Inter", system-ui, sans-serif;
    color: #fff;
}

body.theme-lime .credit-banner-lines p {
    margin: 0;
    font: 400 16px/1.45 "Inter", system-ui, sans-serif;
    color: rgba(255, 255, 255, 0.92);
}

body.theme-lime .wrap.container.credit-banner-inner--value {
    justify-content: flex-start;
    gap: 32px;
    min-height: 0;
    padding: 30px 48px;
}

/* Панель фильтров каталога — единая панель главной (#488 итерация 2):
   сверху виджет search-panel (поиск/цена/год/селекты), под ним — ядро
   facet-panel (детальные группы, скрыты до «Все фильтры»); сайдбар-
   раскладка ADR-0051 отключается (механика/данные — единое ядро). */
body.theme-lime .catalog-layout--top {
    grid-template-columns: 1fr;
}

/* В каталоге нет хиро — наезд главной (−70px) отменяется. */
body.theme-lime .catalog-layout--top .search-panel {
    margin-top: 0;
}

/* Окно 768: панель — grid-элемент с min-width: auto не сжималась —
   форма шириной 1181px вылезала за экран (гриль 05.10, «полей нет
   справа»). Правило действует на всех ширинах (вне media): min-width: 0
   отдаёт сжатие рядам — они раскладываются по доступной ширине, как
   остальные блоки страницы. */
body.theme-lime .catalog-layout--top>.search-panel {
    min-width: 0;
}

/* Группы фасетов ВНУТРИ панели поиска (#488 итерация 3–5): ядро
   #filter[data-mode="catalog"] — не отдельная карточка, а раскрывающаяся
   часть .search-panel: без card-оформления, группы сеткой в стиле темы.
   id-специфика (#filter) бьёт легаси margin/padding (последний —
   display:none до «Все фильтры»: SSR-класс facet-detail-hidden ставит
   шаблон для facet_view="selects", JS открывает, снимая класс;
   рамка-разделитель не нужна, разделение — отступом). */
body.theme-lime .search-panel #filter.facet-panel[data-mode="catalog"] {
    display: none;
    background: transparent;
    box-shadow: none;
    border: 0;
    padding: 28px 0 0;
    margin: 0;
    flex-wrap: nowrap;
}

body.theme-lime .search-panel #filter.facet-panel[data-mode="catalog"]:not(.facet-detail-hidden) {
    display: block;
}

/* Шапка панели ядра (заголовок «Фильтры»/«Сбросить») здесь не нужна:
   переключение — кнопкой «Все фильтры» в search-panel-actions. */
body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-head {
    display: none;
}

/* Пары «метка + контрол» (итерация 6 #488, демо-2 G3): сетка 2 колонок
   пар-карточек на ≥768 (авто-поток даёт ровно 6 пар для 12 групп),
   числовой ряд «Характеристики» — отдельной строкой на всю ширину;
   ≤767 — столбик (метка сверху). Вижн-приёмка: лучшее сканирование
   глазами, компактнее плотной сетки. */
body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-groups {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 20px;
}

body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 7px 12px;
    border: 1px solid #eef2f7;
    border-radius: 10px;
    background: #fafbfd;
}

body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group>legend {
    flex: none;
    width: 108px;
    margin: 0;
    font: 600 13px/1.3 "Inter", system-ui, sans-serif;
    color: var(--lime-dark, #2c2d2e);
}

body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-chips,
body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-range {
    flex: 1 1 auto;
    min-width: 0;
}

/* «Характеристики» — числовой ряд значений одной строкой: обёртка
   на всю ширину панели, вложенные группы (Пробег/Мощность/Объём/
   Сортировка) — обычные столбики с меткой сверху; сверху тонкий
   разделитель от пар-карточек. */
body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group[data-facet="specs"] {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0 20px;
    border-top: 1px solid #edf1f7;
    padding-top: 14px;
    background: transparent;
    border-radius: 0;
}

body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group[data-facet="specs"]>.facet-group-title {
    grid-column: 1 / -1;
    margin-bottom: 10px;
    width: auto;
}

body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group[data-facet="specs"] .facet-group {
    display: block;
    padding: 0;
    border: 0;
    background: transparent;
}

body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group[data-facet="specs"] .facet-group>legend {
    width: auto;
    margin: 0 0 8px;
}

/* Дубликаты с компактной формой (фидбек #488 итерация 6): Марка,
   Модель, Год, Кузов, Цвет и Цена уже заданы селектами и диапазонами
   в строке поиска над панелью — на раскрытой панели их не повторяем;
   остаются уникальные: Отделка, КПП, Привод, Топливо, Назначение,
   Комплектация и ряд «Характеристики». */
body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group[data-facet="mark_slug"],
body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group[data-facet="folder_slug"],
body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group[data-facet="year"],
body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group[data-facet="body_type_slug"],
body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group[data-facet="color_tone_slug"],
body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group[data-facet="price"] {
    display: none;
}

/* Индикатор раскрытия групп (итерация 6–8 #488, фидбек): ядро рисует
   голые символы «+/−» с margin-left:auto, которые уезжают от метки
   и не вписываются в стиль карточек. Lime — бейдж-шеврон вплотную
   к метке (поворот 90° = свёрнуто). При выбранных значениях бейдж
   удлиняется: стрелка + счётчик (нейтральный фон, акцентная цифра) —
   аффорданс раскрытия всегда на виду, у группы один бейдж. */
body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group>.facet-group-title::after {
    content: '▾';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 21px;
    height: 21px;
    margin-left: 6px;
    flex: none;
    border: 1px solid var(--lime-border, #e2e8f0);
    border-radius: 4px;
    background: #fff;
    color: var(--lime-muted, #64748b);
    font: 600 12px/1 "Inter", system-ui, sans-serif;
    transition: transform .16s ease, border-color .16s ease, color .16s ease;
}

body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group>.facet-group-title:hover::after {
    border-color: var(--c-primary, #0752dd);
    color: var(--c-primary, #0752dd);
}

body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group.collapsed>.facet-group-title::after {
    transform: rotate(-90deg);
}

body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group .facet-group-count:not(:empty) {
    display: inline-flex;
    align-items: center;
    min-width: 21px;
    height: 21px;
    padding: 0 5px;
    margin-left: 4px;
    border: 1px solid var(--lime-border, #e2e8f0);
    border-radius: 4px;
    background: #f8fafc;
    color: var(--c-primary, #0752dd);
    font: 700 12px/1.2 "Inter", system-ui, sans-serif;
}

/* Счётчик: нейтральный фон, акцентная цифра + стрелка-индикатор внутри
   (фидбек #488 итерация 8–9): у группы всегда видим аффорданс раскрытия —
   без выбора бейдж-шеврон, при выборе тот же бейдж удлиняется стрелкой
   и цифрой («▾ 1» раскрыта, «▶ 1» свёрнута). Тоггл 21px/скругление 4px,
   цифра с воздухом (margin 4px) и по центру. */
body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group .facet-group-count:not(:empty)::before {
    content: '▾';
    margin-right: 4px;
    color: var(--lime-muted, #64748b);
    font: 600 11px/1 "Inter", system-ui, sans-serif;
    transition: transform .16s ease;
}

body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group.collapsed .facet-group-count:not(:empty)::before {
    transform: rotate(-90deg);
}

body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group>.facet-group-title:hover .facet-group-count:not(:empty) {
    border-color: var(--c-primary, #0752dd);
}

body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group>.facet-group-title:has(.facet-group-count:not(:empty))::after {
    display: none;
}

/* Кнопка «Найти» и состояния режима кнопки (#488 итерация 10):
   черновик — круглая точка в углу (язык D5-бейджей) + подпись
   с реальным числом офферов («Найдено N», серверный count; фидбек
   07.10 — прежняя «Показать N вариантов» считала значения черновика);
   в процессе — спиннер в углу, «Применяем…», оверлей сетки; ошибка —
   кнопка краснеет (мгновенно), подпись-ошибка, затухание к обычному
   виду (базовый transition 1.8s). */
body.theme-lime .search-panel .find-btn-wrap {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

body.theme-lime .search-panel .find-btn {
    position: relative;
    transition: background-color 1.8s ease, box-shadow 1.8s ease,
        filter 1.8s ease;
}

body.theme-lime .search-panel .find-btn .proc-lbl {
    display: none;
}

body.theme-lime .search-panel.has-draft .find-btn::after {
    content: '';
    position: absolute;
    top: 6px;
    right: 6px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 1.5px var(--c-primary, #0752dd);
    pointer-events: none;
}

body.theme-lime .search-panel.has-draft .find-btn::before {
    content: '';
    position: absolute;
    top: 9px;
    right: 9px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--c-primary, #0752dd);
    pointer-events: none;
}

body.theme-lime .search-panel .find-btn-hint,
body.theme-lime .search-panel .find-btn-error {
    display: none;
    font: 500 12px/1.3 "Inter", system-ui, sans-serif;
    white-space: nowrap;
}

body.theme-lime .search-panel.has-draft .find-btn-hint {
    display: block;
    color: var(--lime-muted, #64748b);
}

body.theme-lime .search-panel.apply-failed .find-btn {
    background: #dc2626;
    transition: none;
}

body.theme-lime .search-panel.apply-failed .find-btn-hint {
    display: none;
}

body.theme-lime .search-panel.apply-failed .find-btn-error {
    display: block;
    color: #b91c1c;
}

body.theme-lime .search-panel.is-applying .find-btn {
    pointer-events: none;
}

body.theme-lime .search-panel.is-applying .find-btn::after {
    content: '';
    position: absolute;
    top: 6px;
    right: 6px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, .45);
    border-top-color: #fff;
    background: transparent;
    box-shadow: none;
    animation: lime-spin .7s linear infinite;
}

@keyframes lime-spin {
    to {
        transform: rotate(360deg);
    }
}

body.theme-lime .search-panel.is-applying .find-btn::before {
    display: none;
}

body.theme-lime .search-panel.is-applying .find-btn .lbl {
    display: none;
}

body.theme-lime .search-panel.is-applying .find-btn .proc-lbl {
    display: inline;
}

body.theme-lime #products.is-fetching {
    position: relative;
}

body.theme-lime #products.is-fetching::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 5;
    background: rgba(255, 255, 255, .5);
    pointer-events: none;
}

body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-chip {
    border-radius: 8px;
    padding: 0.3rem 0.75rem;
    font-size: 0.83rem;
}

body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-range input[type="number"],
body.theme-lime .search-panel .facet-panel[data-mode="catalog"] select.facet-select {
    height: 34px;
    font-size: 0.83rem;
    padding: 0.25rem 0.6rem;
}

body.theme-lime .facet-panel[data-view="selects"] .facet-head {
    margin-bottom: 0;
    padding-bottom: 12px;
}

body.theme-lime .facet-panel[data-view="selects"] .facet-groups {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px 18px;
}

/* Детальная панель групп в представлении «selects» (#488): скрыта до
   клика «Все фильтры» (в макете — строка селектов и «Найти»). */
body.theme-lime .facet-panel[data-view="selects"].facet-detail-hidden .facet-groups {
    display: none;
}

/* Услуги-ссылки CTA-блока: на каталоге — 2 колонки на широких
   (макет 40:15, #488 итерация 2), на главной — 1 колонка (как принято). */
body.theme-lime .services-list--2col {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 28px;
}

/* Карточки каталога (макет 40:15): цена акцентом, кнопка заявки —
   синяя таблетка как btn-primary, «сердце» — поверх фото справа сверху.
   padding-bottom: 0 — легаси ui.css оставляет 70px под кнопку
   (#products .card — id-селектор, специфичность выше классов),
   кнопки по макету нет — «юбка» внизу карточки (#488 итерация 4);
   полная высота = фото 204 + текст 174 (макет ~380). */
body.theme-lime #products .card,
body.theme-lime .card {
    position: relative;
    padding-bottom: 0;
}

body.theme-lime .card .text {
    padding: 12px 14px 14px;
    /* Минимальная высота текстовой части — по макету 40:15 (карточка
       380 = фото 204 + низ 174, #488 итерация 4): grid-ряд выравнивает
       карточки по самой высокой, короткий контент давал пустую «юбку»
       снизу. Все карточки каталога теперь одной высоты. */
    min-height: 174px;
    box-sizing: border-box;
}

/* Строка комплектации карточки — под названием (макет 40:15, #527):
   позиция задаётся порядком flex-элементов темы; разметка карточки
   общая (ADR-0033 — тема без ветвлений в общем шаблоне). */
body.theme-lime .card .text {
    display: flex;
    flex-direction: column;
}

body.theme-lime .card .text > * {
    order: 5;
}

body.theme-lime .card .text > h3 {
    order: 1;
}

body.theme-lime .card .text > .card-complectations {
    order: 2;
}

body.theme-lime .card .text > small {
    order: 3;
}

/* Тех-данные с иконками (макет 40:15): пробег/топливо/привод — lucide-иконки
   (ядро renderOfferCard, #488), объём и мощность — текстом. Базовый
   ui.css прячет svg — тема включает. */
body.theme-lime .card-features {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    margin: 6px 0 10px;
}

body.theme-lime .card-features .card-feature {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font: 500 13px/1.35 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime .card-features .card-feature svg {
    display: block;
    width: 18px;
    height: 18px;
    color: var(--lime-muted);
}

/* Образцы цвета в каталоге показываются (решение владельца 13.10.2026,
   волна «Витрина 2.0»): прежнее скрытие по макету 40:15 отменено —
   цвет предложения нужен покупателю уже в списке, а не только на
   карточке товара. Ряд образцов оформляется базовым правилом
   .card-colors (ui.css); тема тему цвета не трогает. */

/* Кнопки карточки каталога — по макету отсутствуют: контейнер выведен
   из потока целиком (display: contents — иначе «дыра» высотой кнопки
   под комплектацией, #488 итерация 2), сама кнопка — display: none.
   Сердце (absolute поверх фото, макет 40:15) не задето. */
body.theme-lime #products .card .text .buttons,
body.theme-lime .card .text .buttons {
    display: contents;
}

body.theme-lime #products .card .text .buttons .button,
body.theme-lime #products .card .text .buttons button[data-order] {
    display: none;
}

/* «Смотрите также» деталки (#531, макет 1:587, Frame 59):
   карточка 263×352 (фото 182, текстовая часть 170), шаг ленты
   263 + зазор 20. Карусель ограничена контейнером: секция #products —
   легаси flex (.container), обёртка .cn-shell растягивалась по треку
   (3376px) и давала горизонтальный скролл документа. */
body.theme-lime #products .cn-shell {
    width: 100%;
    min-width: 0;
}

body.theme-lime #products .cn {
    width: 100%;
    min-width: 0;
}

body.theme-lime #products .cn-track {
    gap: 20px;
}

body.theme-lime #products .cn-slide {
    flex: 0 0 263px;
}

/* Карточка в слайде — на всю ширину слайда (иначе ширину «съедал»
   flex-контекст движка: карточка сжималась до ~45px, #531). */
body.theme-lime #products .cn-slide .card {
    width: 100%;
    /* Легаси #products .card{margin-bottom:1rem} растягивал
       кросс-размер строки трека: карточка и карусель выходили 366
       против макетных 352 (макет 1:587, 1:746). */
    margin-bottom: 0;
}

/* Фото-часть карточки: легаси .slider{aspect-ratio:16/12} тянул её
   до 197.25 (263 × 3/4) — макет держит ровно 182 (1:746:
   фото 182 + текстовая часть 170 = 352). */
body.theme-lime #products .cn-slide .card .slider {
    aspect-ratio: auto;
    height: 182px;
}

body.theme-lime #products .cn-slide .card img.slide-img {
    height: 182px;
    object-fit: cover;
}

body.theme-lime #products .cn-slide .card .text {
    /* Текстовая часть подборки деталки — макетные 170: высота
       фиксирована (flex-basis и height), иначе flex-растяжение от
       трека добивало колонку до 184. Селектор сужен до .cn-slide:
       карточки каталога (.text без слайда) держат свои 174 (#488). */
    flex: 0 0 170px;
    height: 170px;
    min-height: 170px;
}

body.theme-lime #products .cn-slide .card .cost small {
    /* Легаси product.css (.catalog-section … p.cost small): старая цена —
       тёмной плашкой absolute поверх фото (top/right 1rem). В макете
       1:587 цена со старой ценой — в текстовом низе карточки, на фото
       наложений нет (сверка с макетом). */
    position: static;
    background: none;
    padding: 0;
    color: var(--lime-muted);
    text-decoration: line-through;
}

/* Низ карточки подборки в макетном режиме (card_variant='detail',
   макет 1:748, #531): имя 25 / «Комплектация» 17 / цена 28 / чипы 18
   с иконками темы. Раскладка макета: паддинг 15, имя→строка 3,
   строка→цена и цена→чипы 12, чипы — две строки 18/18 с row-gap 7. */
body.theme-lime #products .text--detail {
    display: flex;
    flex-direction: column;
    padding: 15px;
}

body.theme-lime #products .text--detail h3 {
    margin: 0 0 3px;
    font: 600 21px/1.2 "Inter", system-ui, sans-serif;
}

body.theme-lime #products .text--detail .card-trim {
    display: block;
    margin: 0 0 12px;
    font: 400 14px/1.2 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime #products .text--detail .cost {
    margin: 0 0 12px;
}

body.theme-lime #products .text--detail .cost b {
    font: 700 24px/1.2 "Inter", system-ui, sans-serif;
}

body.theme-lime #products .text--detail .card-features {
    display: flex;
    flex-wrap: wrap;
    column-gap: 20px;
    row-gap: 7px;
    margin-top: auto;
}

body.theme-lime #products .text--detail .card-feature {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font: 400 14px/1.2 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime #products .text--detail .card-feature b {
    display: inline-flex;
    gap: 5px;
    font-weight: 400;
    color: var(--lime-muted);
}

body.theme-lime #products .text--detail .card-feature img {
    width: 18px;
    height: 18px;
}

/* Активное избранное — акцент темы (макет 40:15; базовое правило —
   синий базовой темы #245a8f, у lime — фирменный --c-primary). */
body.theme-lime .card .heartadd.favorite svg path {
    fill: var(--c-primary);
    stroke: var(--c-primary);
}

body.theme-lime .card .cost b,
body.theme-lime .card h5 b {
    color: var(--c-primary);
    font-weight: 700;
}

body.theme-lime .card .cost small,
body.theme-lime .card h5 small {
    color: var(--lime-muted);
    font-weight: 400;
    text-decoration: line-through;
}

body.theme-lime .card .card-complectations {
    margin: 4px 0 10px;
}

body.theme-lime .card .card-complectations small {
    font: 500 13px/1.35 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime .card .container.buttons {
    gap: 10px;
}

body.theme-lime .card .container.buttons .button,
body.theme-lime .card .container.buttons button[data-order] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--c-primary);
    color: #fff;
    border: 0;
    border-radius: var(--lime-radius);
    padding: 13px 22px;
    font: 600 15px/1.2 "Inter", system-ui, sans-serif;
    min-height: 44px;
    margin-top: 0;
    box-shadow: none;
    text-decoration: none;
    cursor: pointer;
}

body.theme-lime .card .container.buttons .button:hover,
body.theme-lime .card .container.buttons button[data-order]:hover {
    background: var(--c-accent);
    color: #fff;
}

body.theme-lime .card .heartadd {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 10px rgba(25, 32, 47, 0.14);
}

body.theme-lime .card .heartadd svg {
    width: 20px;
    height: 18px;
}

/* Карточка товара на широких экранах (#488 п.9, макет 1:587): легаси
   #398 держала .detail-grid (700px + 1fr) сбоку от .trust-strip —
   на любой ширине ≥1200 правая колонка инфо сжималась до ~65px.
   По макету: галерея 700 + колонка инфо (460), грид — на всю карточку. */
body.theme-lime #product {
    flex-wrap: wrap;
}

body.theme-lime #product .detail-grid {
    flex: 1 1 100%;
}

/* Деталка (#531, макет 1:587): контент 1200 без внутренних полей
   (галерея начинается от края контейнера); секции внутри держат
   свои поля на узких экранах (MQ ниже). */
body.theme-lime article.wrap.detail-page {
    padding-left: 0;
    padding-right: 0;
}

/* Кнопка «В каталог …» — легаси базовой темы (product.css: display:flex
   ≤600, там же крошки скрыты); в планшетном и мобильном макетах
   (31:2/32:491) кнопки нет — вместо неё хлебные крошки (приёмка #556). */
body.theme-lime #mobileback {
    display: none;
}

/* Поля крошек, карточки товара и преимуществ: это не .wrap.container —
   фикс #461 (15px до 1230) их не ловил, и на 761–1229 блоки прилипали
   к краям экрана (приёмка #556, «поля теряются от 774 до 1215»).
   Выше 1230 поля даёт центрирование .wrap (1200). */
@media (max-width: 1229px) {
    body.theme-lime .detail-page .breadcrumbs,
    body.theme-lime .detail-page #product.card,
    body.theme-lime .detail-page #productsplus,
    body.theme-lime .detail-page .credit-banner {
        padding-left: 15px;
        padding-right: 15px;
    }

    /* Мобильные 16px .detail-grid (#412) заменены контейнерными 15px —
       иначе на ≤760 получилось бы 31px. */
    body.theme-lime .detail-grid {
        padding-left: 0;
        padding-right: 0;
    }
}

/* Крошки на мобильном (макет 32:491: «Главная / Каталог / Марка /
   Модель» одной строкой): product.css скрывал их ≤600 и показывал
   легаси-кнопку #mobileback — теперь наоборот. */
@media (max-width: 600px) {
    body.theme-lime .breadcrumbs {
        display: flex;
    }
}

/* Строка доверия — отдельный блок под карточкой товара (макет 1:587,
   y=940 после карточки 620): 4 пункта в ряд по 276 с зазором 20,
   иконка в круге 66 (svg 40), справа от неё заголовок + подпись.
   Легаси-сокрытие (#488 п.9: trust дублировал преимущества) снято —
   макет показывает подписи (решение #531). */
body.theme-lime .detail-trust {
    margin-top: 60px;
}

body.theme-lime .detail-trust .trust-strip {
    display: grid;
    grid-template-columns: repeat(4, 276px);
    column-gap: 20px;
    margin: 0;
    padding: 0;
}

body.theme-lime .detail-trust .trust-item {
    align-items: flex-start;
    gap: 12px;
}

body.theme-lime .detail-trust .trust-item-icon {
    width: 66px;
    height: 66px;
    background: #eef2f7;
}

body.theme-lime .detail-trust .trust-item-icon img,
body.theme-lime .detail-trust .trust-item-icon svg {
    width: 40px;
    height: 40px;
}

body.theme-lime .detail-trust .trust-item b {
    display: block;
    font: 600 16px/1.375 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    margin-bottom: 3px;
}

body.theme-lime .detail-trust .trust-item-text {
    display: block;
    font: 400 16px/1.375 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

/* Адаптив новых блоков деталки (#531): треки Frame 180 (750+40+410)
   и trust (4×276+зазоры) рассчитаны на контейнер 1200 и не влезают
   в него уже с 1229 (порог сдвинут с 990 по ревью — на 991–1229
   секции вылетали вбок): средние ширины — trust 2×2, баннер и услуги
   в столбик; мобильный — trust в одну колонку. */
@media (max-width: 1229px) {
    body.theme-lime .detail-trust .trust-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.theme-lime .wrap.container.offers-row-inner {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 24px;
    }
}

@media (max-width: 760px) {
    body.theme-lime .detail-trust .trust-strip {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 991px) {
    body.theme-lime .services-list--2col {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {

    /* Мобильная шторка ядра (ADR-0051 п.5: #filter fixed, transform
       translateX(105%)) в каталоге lime НЕ нужна — панель раскрывается
       внутри карточки поиска (фидбек #488, итерация 5): возвращаем
       позиционирование в поток, плавающие фаб/оверлей/«Скрыть» ядра
       прячем (переключение — кнопкой «Все фильтры» панели). */
    body.theme-lime .search-panel #filter.facet-panel[data-mode="catalog"] {
        position: static;
        top: auto;
        right: auto;
        bottom: auto;
        left: auto;
        width: auto;
        max-width: none;
        transform: none;
        border-radius: 0;
        box-shadow: none;
        overflow: visible;
    }

    /* Плавающие фаб/оверлей/«Скрыть» ядра — сиблинги #filter внутри
       .search-panel (не потомки): прячем в каталоге lime (переключение —
       кнопкой «Все фильтры» панели). */
    body.theme-lime .search-panel .facet-toggle,
    body.theme-lime .search-panel .facet-overlay,
    body.theme-lime .search-panel .facet-close {
        display: none;
    }

    /* «Характеристики» на планшете/мобильном — сетка 2×2 (#488
       итерация 6); на узких (≤600) — одна колонка (ниже). */
    body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group[data-facet="specs"] {
        grid-template-columns: 1fr 1fr;
        row-gap: 14px;
        padding-top: 14px;
    }

    /* Пары-карточки на мобильном — столбик: метка сверху, контролы
       на всю ширину (итерация 6 #488, демо-2 G3). */
    body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group {
        flex-direction: column;
        align-items: flex-start;
    }

    body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group>legend {
        width: auto;
        margin-bottom: 6px;
    }
}

@media (max-width: 600px) {

    /* Специфичность выше .wrap.container (0,3,1) — поля баннера не
       схлопываются планшетным MQ на мобильном (#488 итерация 4). */
    body.theme-lime .wrap.container.credit-banner-inner {
        padding: 28px 24px;
        min-height: 0;
        /* Мобильный фон — тот же макет-ассет, что на десктопе (#488
           итерация 3): плотный градиент под текстом, фото справа. */
        background:
            linear-gradient(100deg,
                rgba(22, 76, 190, 0.95) 0%,
                rgba(13, 58, 160, 0.85) 55%,
                rgba(6, 36, 112, 0.6) 100%),
            url("../img/banners/banner-salon.jpg") right center / cover no-repeat;
    }

    /* Группы фильтров на мобильном — одна колонка (#488 итерация 3). */
    body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-groups {
        grid-template-columns: 1fr;
    }

    /* «Характеристики» на узких экранах — одна широкая колонка:
       инпуты «от/до» не должны сжиматься в половину (#488
       итерация 6, фидбек вижн-модели). */
    body.theme-lime .search-panel .facet-panel[data-mode="catalog"] .facet-group[data-facet="specs"] {
        grid-template-columns: 1fr;
    }
}

/* Мобильные правила ленты марок (#488, гриль 06.10) — ПОСЛЕ базовых
   правил секции «Волна #488»: при равной специфичности каскад выбирает
   объявленное позже, во внутреннем @media они были бы мёртвыми (ревью
   06.10). Подложка — под компактный круг 48px; стрелки скрыты (фидбек
   07.10 по 380px; 11.10 — в паре обе): на узких экранах ленту листают
   пальцем, кружки только прикрывали бы марки. */
@media (max-width: 760px) {
    body.theme-lime .marks-strip .mark-btn.is-active::before {
        width: 48px;
        height: 48px;
    }

    body.theme-lime .marks-strip-next,
    body.theme-lime .marks-strip-prev {
        display: none;
    }
}

/* ─── Модалка «Все характеристики» деталки (#531, макет 1:587) ──── */
/* #carinfo выведен из потока страницы и открывается кнопкой в
   мини-ТТХ (data-ttx-open); скрыт атрибутом hidden, скролл — внутри
   панели, фон страницы зафиксирован классом body. */
body.theme-lime .ttx-modal {
    position: fixed;
    inset: 0;
    /* Выше шапки сайта (.header z-index 110 — sticky): иначе шапка
       перекрывала верх модалки вместе с её собственным заголовком
       и крестиком (приёмка карточки). */
    z-index: 200;
    margin: 0;
    max-width: none;
    padding: 0 24px 64px;
    background: #fff;
    overflow-y: auto;
}

body.theme-lime .ttx-modal[hidden] {
    display: none;
}

body.theme-lime .ttx-modal-head {
    position: sticky;
    top: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 0 -24px 24px;
    padding: 16px 24px;
    background: #fff;
    border-bottom: 1px solid var(--lime-line);
}

body.theme-lime .ttx-modal-head h2 {
    margin: 0;
    font: 700 28px/1.2 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime .ttx-modal-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: #fff;
    border: 1px solid var(--lime-line);
    border-radius: 50%;
    color: var(--lime-dark);
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}

body.theme-lime .ttx-modal-close:hover {
    background: var(--lime-bg-soft);
}

body.theme-lime.ttx-modal-open {
    overflow: hidden;
}

/* ─── Модалка: содержимое (приёмка карточки) ────────────────────────
   Легаси-содержимое #carinfo (таблица .specs-table из product.css:
   зебра #f6f8fb, жирные серые метки, td 42%) при полноэкранной панели
   растягивалось на всю ширину вьюпорта — «размазанный» вид, пустота
   между меткой и значением, табы без активного состояния. Тема
   приводит модалку к языку карточки: колонка 1200, строки 32 с
   мягкими разделителями, табы с подчёркиванием акцента. */
body.theme-lime .ttx-modal {
    scrollbar-width: thin;
    scrollbar-color: var(--lime-line) transparent;
}

body.theme-lime .ttx-modal > .card,
body.theme-lime .ttx-modal > section {
    max-width: 1200px;
    margin: 0 auto 28px;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

/* Легаси product.css: #carinfo{display:flex; justify-content:space-between;
   flex-wrap:wrap} и #characteristics{width:calc(52% - .75rem)} — в лайм-
   модалке шапка сжималась до 387px, таблица занимала 52% (пустота слева,
   «размазанный» вид из приёмки). Канон темы: колонка на всю ширину
   панели, секции — друг под другом. */
body.theme-lime #carinfo {
    display: block;
    /* Легаси product.css: #carinfo{background:#f3f4f3; border-radius:.875rem;
       padding:2rem; overflow:hidden} — ID-селектор перебивал .ttx-modal:
       модалка выходила серым скруглённым листом с полями 28. Канон темы:
       белая панель на всю высоту, поля 24, скролл внутри панели. */
    background: #fff;
    border-radius: 0;
    padding: 0 24px 64px;
    overflow-y: auto;
}

/* display: block выше (перекрытие легаси-flex) сильнее [hidden] в
   .ttx-modal[hidden] — прячем закрытую модалку отдельным ID-правилом,
   иначе панель висит поверх страницы всегда. */
body.theme-lime #carinfo[hidden] {
    display: none;
}

body.theme-lime #carinfo > .card,
body.theme-lime #carinfo > section {
    width: 100%;
}

body.theme-lime .ttx-modal .specs-table {
    width: 100%;
    border-collapse: collapse;
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
}

body.theme-lime .ttx-modal .specs-table tbody tr {
    background: transparent; /* легаси-зебра product.css выключена */
    border-bottom: 1px solid var(--lime-line);
}

body.theme-lime .ttx-modal .specs-table td {
    padding: 6px 0;
    vertical-align: middle;
}

body.theme-lime .ttx-modal .specs-table td:first-child {
    width: 42%;
    color: var(--lime-muted);
    font-weight: 400;
}

body.theme-lime .ttx-modal .specs-table td:last-child {
    color: var(--lime-dark);
    font-weight: 600;
}

body.theme-lime .ttx-modal .specs-table td a {
    color: inherit; /* метки-ссылки (год/марка/модель) — единый цвет колонки */
}

body.theme-lime .ttx-modal .specs-table td a:hover {
    color: var(--c-primary);
    text-decoration: underline;
}

body.theme-lime .ttx-modal .tab,
body.theme-lime .ttx-modal .tabblock {
    /* Легаси product.css: .tab — серая «пилюля» (background
       rgba(152,152,152,.3), радиус .875rem) и .tabblock — белая
       карточка с паддингом; канон темы — плоские табы с нижней
       линией и подчёркиванием акцента. */
    background: none;
    border-radius: 0;
    padding: 0;
}

body.theme-lime .ttx-modal .tab {
    display: flex;
    gap: 24px;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--lime-line);
}

body.theme-lime .ttx-modal .tablinks {
    margin: 0 0 -1px;
    padding: 8px 0 12px;
    background: none;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0; /* легаси-радиус кнопок — подчёркивание строго плоское */
    box-shadow: none; /* легаси-тень кнопок general.css */
    font: 600 16px/1.2 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
    cursor: pointer;
}

body.theme-lime .ttx-modal .tablinks.active {
    color: var(--lime-dark);
    border-bottom-color: var(--c-primary);
}

/* ─── Аккордеон опций комплектации во вкладке модалки (приёмка) ────
   Разметка — канон includes/complectation_accordion.html (#375),
   базовый вид — accordion.css; тема lime поверх базового вида задаёт
   язык карточки (заголовок группы 16/600, разделители --lime-line,
   счётчик опций --lime-muted, иконка-плюс серым темы). «Рубашка»
   .accordion-card остаётся канонной (белой, accordion.css канон-тест
   test_accordion_single_card_bg) — на белой панели модалки читается
   отступами. */
/* Легаси базовой темы держал #complectation в паре с ТТХ
   (`width: calc(48% - .75rem)`, старая раскладка 48+48) — в модалке
   блок идёт во всю ширину панели, как таблица характеристик. */
body.theme-lime .ttx-modal #complectation {
    width: 100%;
    margin-bottom: 0;
    padding: 1rem .875rem 0;
}

body.theme-lime .ttx-modal [data-accordion-group] .accordion-item {
    padding: 0;
}

body.theme-lime .ttx-modal [data-accordion-group] .accordion-item+.accordion-item {
    border-top-color: var(--lime-line);
}

body.theme-lime .ttx-modal [data-accordion-group] .accordion-title {
    padding: 16px 0;
}

body.theme-lime .ttx-modal [data-accordion-group] .accordion-title span,
body.theme-lime .ttx-modal [data-accordion-group] .accordion-title span b {
    font: 600 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime .ttx-modal [data-accordion-group] .accordion-title .accordion-count {
    /* Базовый accordion.css растягивал счётчик (width: 100% от селектора
       .accordion-title span) — текст счётчика прилипал к названию группы
       («Безопасность2 опции», приёмка), а svg улетал к правому краю
       строки. Счётчик — компактная правая группа вместе с иконкой. */
    width: auto;
    margin-left: 8px;
    font: 400 14px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime .ttx-modal [data-accordion-group] .accordion-title svg {
    width: 18px;
    height: 18px;
}

body.theme-lime .ttx-modal [data-accordion-group] .accordion-title svg g {
    fill: var(--lime-muted);
}

body.theme-lime .ttx-modal [data-accordion-group] .accordion-body ul {
    list-style: none;
    margin: 0 0 12px;
    padding: 0;
}

body.theme-lime .ttx-modal [data-accordion-group] .accordion-body li {
    padding: 4px 0;
}

body.theme-lime .ttx-modal [data-accordion-group] .accordion-body li p {
    margin: 0;
    font: 400 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

/* ═══ Попапы — строгий путь (ADR-0066, #554) ═══════════════════════
   Канон макетов 55:2 «Оставьте заявку» / 56:626 (моб.) / 56:1405
   «Спасибо»: карточка с крупным скруглением, заголовок + подзаголовок,
   поля с лейблами и флаговым телефоном, сплошная акцентная кнопка. */
body.theme-lime .popup-content {
    max-width: 420px;
    padding: 36px 32px 32px;
    border-radius: 24px;
    box-shadow: 0 12px 40px rgba(20, 31, 56, 0.18);
}

body.theme-lime #popup-order .popup-content,
body.theme-lime #popup-callback .popup-content {
    padding: 36px 32px 32px;
}

body.theme-lime .popup-content h3,
body.theme-lime .popup-content h4 {
    margin: 0 0 6px;
    font: 700 22px/1.25 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime .popup .popup-hint {
    margin: 0 0 18px;
    font-size: 14px;
    color: var(--lime-muted);
}

body.theme-lime .popup-content .field {
    margin-bottom: 12px;
}

/* Канон 55:2 — поля/согласия/кнопка попапов и форм страниц (#554, #598).
   Один источник вида: попапы носят обёртку .field; у полей форм страниц
   обёртки нет — зазор между полями даёт сам input. */
body.theme-lime .popup-content input[type="text"],
body.theme-lime .popup-content input[type="tel"],
body.theme-lime .leadform-form input[type="text"],
body.theme-lime .leadform-form input[type="tel"] {
    width: 100%;
    /* Единый внутренний отступ 14px (приёмка #554: плейсхолдер «Имя»
       вплотную к краю подчёркивания) — как у флага телефона. */
    padding: 10px 14px 12px;
    border: 0;
    border-bottom: 1px solid var(--lime-line);
    border-radius: 0;
    font: 400 16px/1.3 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    background: transparent;
}

body.theme-lime .leadform-form input[type="text"] {
    margin-bottom: 12px;
}

body.theme-lime .popup-content input[type="text"]::placeholder,
body.theme-lime .popup-content input[type="tel"]::placeholder,
body.theme-lime .leadform-form input[type="text"]::placeholder,
body.theme-lime .leadform-form input[type="tel"]::placeholder {
    color: var(--lime-muted);
}

body.theme-lime .popup-content input[type="text"]:focus,
body.theme-lime .popup-content input[type="tel"]:focus,
body.theme-lime .leadform-form input[type="text"]:focus,
body.theme-lime .leadform-form input[type="tel"]:focus {
    outline: none;
    border-bottom-color: var(--c-primary);
}

/* Телефон с флагом (55:2): подчёркнутое поле, флаг слева внутри;
   отступ слева — общий канон 14px, цифры — после флага (зазор 8px). */
body.theme-lime .popup-content .phone-field,
body.theme-lime .leadform-form .phone-field {
    margin-bottom: 12px;
    padding: 0 14px;
    border: 0;
    border-bottom: 1px solid var(--lime-line);
    border-radius: 0;
}

body.theme-lime .popup-content .phone-field:focus-within,
body.theme-lime .leadform-form .phone-field:focus-within {
    border-bottom-color: var(--c-primary);
}

body.theme-lime .popup-content .phone-field input[type="tel"],
body.theme-lime .leadform-form .phone-field input[type="tel"] {
    padding-left: 0;
    border: 0;
    border-radius: 0;
}

body.theme-lime .popup-content .phone-field input[type="tel"]:focus,
body.theme-lime .leadform-form .phone-field input[type="tel"]:focus {
    border: 0;
}

body.theme-lime .popup-content .submit-wrapper,
body.theme-lime .leadform-form .submit-wrapper {
    width: 100%;
    margin-top: 22px;
}

body.theme-lime .popup-content .rknbtn,
body.theme-lime .leadform-form .rknbtn,
body.theme-lime .popup-content .success-btn {
    display: block;
    width: 100%;
    /* Метрики кнопки макета (55:2/56:626/56:1405): высота 53px
       при тексте 16/1.2 — вертикальный отступ 17px. */
    padding: 17px 16px;
    border: 0;
    border-radius: 6px;
    background: var(--c-primary);
    color: #fff;
    font: 600 16px/1.2 "Inter", system-ui, sans-serif;
    text-align: center;
    cursor: pointer;
}

body.theme-lime .popup-content .rknbtn:hover,
body.theme-lime .leadform-form .rknbtn:hover,
body.theme-lime .popup-content .success-btn:hover {
    background: var(--c-accent);
    color: #fff;
}

/* До отметки согласий кнопка не нажимается, но остаётся яркой primary —
   так в макете (13.10: бледное приглушение снято по замечанию приёмки). */
body.theme-lime .popup-content .rknbtn:disabled,
body.theme-lime .leadform-form .rknbtn:disabled {
    cursor: default;
}

/* Кнопка экрана успеха (56:1405) — ссылка: без подчёркивания. */
body.theme-lime .popup-content .success-btn {
    text-decoration: none;
}

/* Чекбоксы согласий — компактные, канон 55:2 (попапы и формы страниц). */
body.theme-lime .popup .rkn,
body.theme-lime .leadform-form .rkn {
    align-items: flex-start;
    text-align: left;
}

body.theme-lime .popup .rkncheckboxbutton,
body.theme-lime .leadform-form .rkncheckboxbutton {
    width: 20px;
    height: 20px;
    flex: none;
    /* Базовый rkn.css держит margin .5rem — при верхнем выравнивании
       подписи он уводил чекбокс вниз; вертикаль обнулена (1px — по
       первой строке подписи), зазор до текста сохранён (8px). */
    margin: 1px 8px 0 0;
    border-radius: 6px;
}

body.theme-lime .popup .rkn small,
body.theme-lime .leadform-form .rkn small {
    font-size: 12px;
    line-height: 1.45;
    color: var(--lime-muted);
}

body.theme-lime .popup .rkn a,
body.theme-lime .leadform-form .rkn a {
    color: var(--c-primary);
}

/* Экран успеха (56:1405): заголовок «Спасибо!» крупнее, кнопка «В каталог». */
body.theme-lime #popup-success .popup-content {
    padding: 40px 32px 32px;
}

body.theme-lime #popup-success .success-view p {
    margin: 4px 0;
    font-size: 15px;
    color: var(--lime-muted);
}

body.theme-lime #popup-success .success-btn {
    margin-top: 22px;
}

/* Закрыть — тонкий × по канону макета. */
body.theme-lime .popup-content svg.close {
    width: 20px;
    height: 20px;
    top: 18px;
    right: 18px;
    stroke: var(--lime-muted);
}

body.theme-lime .popup-content svg.close:hover {
    stroke: var(--lime-dark);
}

/* Мобильный (56:626): компактнее поля, карточка ближе к краям экрана. */
@media (max-width: 600px) {
    body.theme-lime .popup-content {
        max-width: none;
        width: calc(100% - 24px);
        padding: 28px 20px 24px;
        border-radius: 20px;
    }

    body.theme-lime #popup-order .popup-content,
    body.theme-lime #popup-callback .popup-content {
        padding: 28px 20px 24px;
    }
}

/* ═══ Секции-формы страниц — контур карточки (#600) ═════════════════
   Дефолт болванки (widgets.css, «Секции-формы — фон, рамка») рисует
   рамку 1px #DDE3EA секциям leadform/partners/creditcalc; в макете 55:2
   карточка без рамки (попапы темы тоже без неё, на главной контуров
   нет) — на планшете и десктопе контур снят. До 768 карточка
   сохраняется: боковые поля 15px секция получает от темы
   (.wrap.container, поля — до 1230), на мобиле форма занимает почти
   всю ширину секции — рамка выглядит цельно (приёмка на 380). Снят
   только контур; фон, паддинги, ширина и радиус не тронуты (ADR-0040
   — вид виджетов задаёт тема). */
@media (min-width: 768px) {
    body.theme-lime section.leadform,
    body.theme-lime section.partners,
    body.theme-lime section.creditcalc {
        border: 0;
    }
}

/* ─── О3: страницы формы-пакета (#613, макет 2061:18497) ────────── */
/* Секция «Как оформить»: слева H2 и кнопка заявки, справа карточки-шаги
   (нумерация в светлых кругах, последний шаг — синий круг с галочкой).
   Фон секции — мягкая подложка макета. */
body.theme-lime .steps {
    padding: 60px 0;
}

body.theme-lime .wrap.container.steps-inner {
    display: flex;
    gap: 40px;
    align-items: flex-start;
    background: var(--lime-bg-soft);
    border-radius: 24px;
    padding: 40px;
}

body.theme-lime .steps-aside {
    flex: 0 0 380px;
}

body.theme-lime .steps-aside h2 {
    font: 800 40px/1.15 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    margin: 0;
}

/* Подзаголовок шагов (макет Trade-in 2061:19811): абзац между H2 и
   кнопкой; отступ до кнопки держит сама кнопка (margin-top), чтобы
   блоки с подзаголовком и без него смотрелись одинаково. */
body.theme-lime .steps-subtitle {
    margin: 12px 0 0;
    font: 400 16px/1.45 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime .steps-aside .steps-btn {
    margin-top: 24px;
}

/* Кнопка секции — канонический primary (макет 2061:18497: синяя таблетка),
   тёмный accent — только на hover (#658). Прежняя пара была перевёрнута:
   кнопка красилась в accent, а hover — в primary. */
body.theme-lime .steps-btn {
    display: block;
    width: 100%;
    border: 0;
    border-radius: var(--lime-radius);
    background: var(--c-primary);
    color: #fff;
    font: 600 16px/1 "Inter", system-ui, sans-serif;
    padding: 18px 24px;
    cursor: pointer;
}

body.theme-lime .steps-btn:hover {
    background: var(--c-accent);
}

body.theme-lime .steps-list {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 16px;
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Сетка шагов 2×2 (Рассрочка, макет 2061:19172): карточки могут быть
   без заголовка — текст шага вплотную к номеру. */
body.theme-lime .steps-list--grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-content: start;
}

body.theme-lime .steps-list--grid .steps-text p {
    margin-top: 0;
}

body.theme-lime .steps-item {
    display: flex;
    gap: 20px;
    align-items: center;
    background: #fff;
    border-radius: 12px;
    padding: 22px 24px;
}

body.theme-lime .steps-num {
    flex: 0 0 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--lime-chip-bg);
    /* Цифры шагов — primary (макет 2061:18497), не тёмный accent (#658) */
    color: var(--c-primary);
    font: 600 20px/1 "Inter", system-ui, sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
}

body.theme-lime .steps-item--last .steps-num {
    /* Финальный круг с галочкой — тоже primary (#658, макет 2061:18497) */
    background: var(--c-primary);
    color: #fff;
}

body.theme-lime .steps-num svg {
    width: 22px;
    height: 22px;
}

body.theme-lime .steps-text b {
    font: 700 16px/1.3 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime .steps-text p {
    margin: 6px 0 0;
    font: 400 15px/1.45 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

/* Заявка с правой колонкой требований банка (aside_rows): карточка формы
   слева, гарантии справа (пары «лейбл → значение» + красный блок). */
body.theme-lime .leadform--split .leadform-grid {
    display: grid;
    grid-template-columns: minmax(0, 545px) minmax(0, 1fr);
    gap: 36px;
    align-items: start;
}

/* Форма Trade-in (макет 2061:19811): карточка шире — поля стоят по два
   в ряд (leadform-fields); правая колонка — блоки условий (aside_blocks). */
body.theme-lime .leadform--wide .leadform-grid {
    grid-template-columns: minmax(0, 660px) minmax(0, 1fr);
}

body.theme-lime .leadform-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

body.theme-lime .leadform-conditions {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

body.theme-lime .condition-block {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

body.theme-lime .condition-icon {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    padding: 8px;
    border-radius: 50%;
    background: var(--lime-bg-soft);
}

body.theme-lime .condition-title,
body.theme-lime .condition-value {
    display: block;
    font: 700 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime .condition-value {
    font-size: 24px;
    margin-bottom: 4px;
}

body.theme-lime .condition-text {
    margin: 4px 0 0;
    font: 400 15px/1.45 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

body.theme-lime .condition-list {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

body.theme-lime .condition-list li {
    position: relative;
    padding-left: 28px;
    font: 400 15px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime .condition-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 1px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--lime-chip-bg);
}

body.theme-lime .condition-list li::after {
    content: "";
    position: absolute;
    left: 4px;
    top: 6px;
    width: 10px;
    height: 5px;
    border-left: 2px solid var(--c-accent);
    border-bottom: 2px solid var(--c-accent);
    transform: rotate(-45deg);
}

/* Карточка заявки (макет 2061:18497): белая плашка с мягкой тенью,
   заголовок/подзаголовок по центру, поля с внутренним отступом 40. */
body.theme-lime .leadform--split .leadform-main {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 12px 40px rgba(16, 24, 40, 0.07);
    padding: 40px;
}

body.theme-lime .leadform-guarantees {
    margin: 0;
}

body.theme-lime .guarantee-row {
    border-bottom: 1px solid #e4e7ec;
    padding: 12px 0;
}

body.theme-lime .guarantee-row dt {
    font: 400 15px/1.3 "Inter", system-ui, sans-serif;
    color: #98a2b3;
}

body.theme-lime .guarantee-row dd {
    margin: 4px 0 0;
    font: 500 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime .guarantee-note {
    display: grid;
    grid-template-columns: 24px 1fr;
    column-gap: 12px;
    margin-top: 20px;
}

body.theme-lime .guarantee-note::before {
    content: "✕";
    height: 24px;
    border-radius: 50%;
    /* Макет 2061:18497: белый круг с красной обводкой и красным
       крестом (не сплошная заливка). */
    background: #fff;
    border: 1.5px solid #d92d20;
    color: #d92d20;
    font: 700 12px/1 "Inter", system-ui, sans-serif;
    display: flex;
    align-items: center;
    justify-content: center;
}

body.theme-lime .guarantee-note b {
    display: block;
    font: 700 16px/1.3 "Inter", system-ui, sans-serif;
    color: #d92d20;
}

body.theme-lime .guarantee-note p {
    grid-column: 2;
    margin: 6px 0 0;
    font: 400 15px/1.45 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

/* Заголовок секции FAQ (О3, макет 2061:18497): 40/800 макета; на
   странице /faq/ заголовок несёт H1 страницы (params пусты) — правило
   не срабатывает. */
body.theme-lime .faq h2 {
    font: 800 40px/1.15 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    margin: 0 0 24px;
}

/* Сетка логотипов банков-партнёров (О3, макеты 2061:18497 «Автокредит»
   и 2061:21051 «Банки-партнёры»): 6 колонок 185px, зазор 18, плашка
   #f5f5f5 со скруглением 8 — ячейка 185×80 макета. Маркер bank-partners
   ограничивает правила сетки-логотипов (не затрагивает каркасный
   виджет «Список партнёров» с тем же классом .partners). Заголовок
   секции — 40/800 макета (перебивает групповое правило 24/700
   секций-форм строго после него). */
body.theme-lime .bank-partners h2 {
    font: 800 40px/1.15 "Inter", system-ui, sans-serif;
}

body.theme-lime .bank-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 18px;
    list-style: none;
    margin: 24px 0 0;
    padding: 0;
}

body.theme-lime .bank-tile {
    height: 80px;
    border-radius: 8px;
    background: #f5f5f5;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
    /* Базовые стили списков дают li margin-bottom 0.3em — на сетке это
       лишние 4px к шагу строки (макет: строки ровно 98). */
    margin: 0;
}

body.theme-lime .bank-tile img {
    display: block;
    max-width: 100%;
    max-height: 56px;
    width: auto;
    height: auto;
}

/* Шапка страницы «Банки-партнёры» (О3, макет 2061:21051): H1 и лид
   макета слева, кнопка заявки (попап обратного звонка) справа; контент
   страницы не выводится — лид живёт здесь. */
body.theme-lime .page-head--banki {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 366px;
    column-gap: 48px;
    align-items: start;
    margin: 32px 0 0;
}

body.theme-lime .page-head--banki h1 {
    grid-column: 1 / -1;
    margin: 0 0 16px;
}

body.theme-lime .page-head--banki .page-head-lead {
    grid-column: 1;
    font: 400 16px/1.5 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    margin: 0;
    max-width: 810px;
}

body.theme-lime .page-head--banki .page-head-btn {
    grid-column: 2;
    width: 366px;
    margin-top: 12px;
}

@media (max-width: 991px) {
    body.theme-lime .page-head--banki {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 20px;
        margin-top: 24px;
    }

    body.theme-lime .page-head--banki h1,
    body.theme-lime .page-head--banki .page-head-lead,
    body.theme-lime .page-head--banki .page-head-btn {
        grid-column: 1;
    }

    body.theme-lime .page-head--banki .page-head-btn {
        width: 100%;
        margin-top: 0;
    }
}

@media (max-width: 991px) {
    body.theme-lime .wrap.container.steps-inner {
        flex-direction: column;
        gap: 24px;
    }

    body.theme-lime .steps-aside {
        flex: 0 0 auto;
    }

    body.theme-lime .leadform--split .leadform-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    body.theme-lime .bank-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* Мобильные пороги сетки банков (макет — только 1350; шаг 6→4→3→2). */
@media (max-width: 767px) {
    body.theme-lime .bank-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
    }

    body.theme-lime .bank-tile {
        height: 68px;
        padding: 8px;
    }

    /* Полоса-баннер режима value на мобиле — столбиком (значение сверху),
       иначе строка акции уходит за край. */
    body.theme-lime .wrap.container.credit-banner-inner--value {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
        padding: 24px 28px;
    }

    body.theme-lime .credit-banner-value {
        font-size: 28px;
    }

    /* Сетка шагов на мобиле — одна колонка (порог сетки банков 767) */
    body.theme-lime .steps-list--grid {
        grid-template-columns: 1fr;
    }

    /* Поля формы Trade-in на мобиле — в один столбец */
    body.theme-lime .leadform-fields {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575px) {
    body.theme-lime .bank-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* О3: заголовок и подзаголовок заявки-карточки — по центру (макет
   2061:18497); действие распространяется только на split-режим. */
body.theme-lime .leadform--split .leadform-main h2,
body.theme-lime .leadform--split .leadform-main .leadform-subtitle {
    text-align: center;
}

/* ==================================================================
   О3: страница автоподбора (макет 2061:20386)
   ================================================================== */

/* Герой страницы: синяя панель с фото-фоном (градиент слева держит
   читаемость), H1/абзац/чек-строка/кнопка — в левой колонке. */
body.theme-lime .page-hero {
    margin: 24px 0 40px;
}

/* Селектор с контейнером (.wrap.container) — намеренно: общее правило
   `body.theme-lime .wrap.container { padding-left/right: 0 }` (0,3,1)
   перебивало padding панели (0,2,1) — на 1350+ внутренние поля героя
   обнулялись, текст прижимался к краю плашки (дефект приёмки 16.10,
   прожарка `/grill-with-docs`: макет 2061:20386 — отступ 60–63px).
   Специфичность этого селектора 0,4,1 — выше контейнерной. */
body.theme-lime .wrap.container.page-hero-inner {
    position: relative;
    overflow: hidden;
    border-radius: 16px;
    padding: 56px 64px;
    color: #fff;
    /* Градиент героя — от канонического primary (#658): прежние
       литералы #0b47c9/#0752dd не реагировали на акцент каталога.
       Прозрачность стопов — color-mix с transparent (как в макете:
       94 %/42 % справа, фото просвечивает). Расхождение с макетным
       #0b47c9 — ΔE2000 = 4.1: оттенок не выводится из трёх ролей
       канала (волна 3, #658). */
    background:
        linear-gradient(
            90deg,
            var(--c-primary) 0%,
            color-mix(in srgb, var(--c-primary) 94%, transparent) 44%,
            color-mix(in srgb, var(--c-primary) 42%, transparent) 100%
        ),
        url("/static/themes/lime/img/cta-interior.webp") center / cover no-repeat
            var(--c-primary);
}

body.theme-lime .page-hero-text {
    max-width: 620px;
}

body.theme-lime .page-hero h1 {
    margin: 0 0 16px;
    font: 800 40px/1.15 "Inter", system-ui, sans-serif;
    color: #fff;
}

body.theme-lime .page-hero-lead {
    margin: 0 0 20px;
    font: 400 17px/1.5 "Inter", system-ui, sans-serif;
    color: rgba(255, 255, 255, .92);
}

body.theme-lime .page-hero-check {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 28px;
    font: 600 16px/1.4 "Inter", system-ui, sans-serif;
}

body.theme-lime .page-hero-check svg {
    flex: 0 0 24px;
}

body.theme-lime .page-hero-check svg circle {
    fill: #fff;
}

body.theme-lime .page-hero-check svg path {
    stroke: var(--c-primary);
}

/* Кнопка героя — белая с синим текстом (макет 2061:20386): синяя
   btn-primary темы сливалась бы с градиентом панели; ширина — по
   макету (~459px), на узких экранах ужимается по колонке. */
body.theme-lime .page-hero .btn-primary.page-hero-btn {
    background: #fff;
    color: var(--c-primary);
    min-width: min(459px, 100%);
}

body.theme-lime .page-hero .btn-primary.page-hero-btn:hover {
    background: rgba(255, 255, 255, .9);
}

/* Полоса трёх строк-галчонков (variant line виджета преимуществ).
   Селектор — 0,4,1, как у базовой сетки features-row: иначе её правило
   четырёх колонок (или flex-лента планшета) побеждает по специфичности
   (урок features-row--3). */
body.theme-lime .wrap.container.features-row--line {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    align-items: center;
    padding: 0;
    overflow: visible;
}

body.theme-lime .feature-line {
    display: flex;
    align-items: center;
    gap: 10px;
    font: 600 16px/1.4 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
}

body.theme-lime .feature-line svg {
    flex: 0 0 24px;
}

/* Галки: обычные строки — контурные, акцентная (в макете — последняя)
   заливная с более жирным текстом; цвета — токены темы. */
body.theme-lime .feature-line svg circle {
    fill: none;
    stroke: var(--c-primary);
    stroke-width: 1.6;
}

body.theme-lime .feature-line svg path {
    stroke: var(--c-primary);
}

body.theme-lime .feature-line--accent svg circle {
    fill: var(--c-primary);
    stroke: none;
}

body.theme-lime .feature-line--accent svg path {
    stroke: #fff;
}

body.theme-lime .feature-line--accent span {
    font-weight: 700;
}

/* Поле «Бюджет» формы автоподбора: подпись и значение, слайдер. */
body.theme-lime .leadform-budget {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

body.theme-lime .leadform-budget-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
}

body.theme-lime .leadform-budget-head label {
    font: 400 15px/1.3 "Inter", system-ui, sans-serif;
    color: var(--lime-muted);
}

/* Значение — как поле-подпись макета: обычный вес, подчёркивание,
   цифры выровнены по правому краю панели. */
body.theme-lime .leadform-budget-value {
    font: 400 17px/1.3 "Inter", system-ui, sans-serif;
    color: var(--lime-dark);
    padding-bottom: 4px;
    border-bottom: 1px solid var(--lime-line);
}

/* Трек — двухцветный как в макете: заполнение до ползунка красится
   акцентом (--budget-fill ставит budget-range.js), остаток — линией
   темы; запасное 34% — позиция значения разметки (3 599 000). */
body.theme-lime .leadform-budget input[type="range"] {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 4px;
    margin: 10px 0 4px;
    padding: 0;
    border: none;
    border-radius: 2px;
    background: linear-gradient(
        90deg,
        var(--c-primary) 0 var(--budget-fill, 34%),
        var(--lime-line) var(--budget-fill, 34%) 100%
    );
    outline: none;
}

body.theme-lime .leadform-budget input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    border: none;
    border-radius: 50%;
    background: var(--c-primary);
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .2);
}

body.theme-lime .leadform-budget input[type="range"]::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border: none;
    border-radius: 50%;
    background: var(--c-primary);
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .2);
}

/* Фокус слайдера с клавиатуры: outline снят выше — возвращаем заметный. */
body.theme-lime .leadform-budget input[type="range"]:focus-visible {
    outline: 2px solid var(--c-primary);
    outline-offset: 4px;
}

@media (max-width: 991px) {
    body.theme-lime .wrap.container.page-hero-inner {
        padding: 40px 36px;
    }
}

@media (max-width: 767px) {
    body.theme-lime .page-hero {
        margin: 16px 0 28px;
    }

    body.theme-lime .wrap.container.page-hero-inner {
        padding: 28px 24px;
    }

    body.theme-lime .page-hero h1 {
        font-size: 28px;
    }

    body.theme-lime .page-hero-lead {
        font-size: 15px;
    }

    /* Строки-галчонки — в столбик (порог мобильной сетки темы 767) */
    body.theme-lime .wrap.container.features-row--line {
        grid-template-columns: 1fr;
        gap: 14px;
    }
}
