/* ============================================================
   SBK 2026 — правки по ТЗ (июль 2026): шапка, hero, карточка
   товара, мобильная нижняя навигация, sticky-панели, модалка
   корзины. Подключается ПОСЛЕ основных стилей в обоих layout.
   ============================================================ */

:root {
    --sbk-brand: #BF6069;
    --sbk-brand-dark: #A85F66;
    --sbk-brand-bg: #FFF3F4;
    --sbk-text: #352C28;
    --sbk-muted: #7B6D67;
    --sbk-cream: #F7F4F0;
    --sbk-tag-bg: #F5EEE9;
}

/* ---------- 1. Шапка: компактнее, меню в одну строку ---------- */

.header_center {
    padding-top: 14px;
    margin-bottom: 14px;
}

.header_center-right {
    gap: 20px;
}

/* телефон переехал в верхнюю полосу — в центре прячем */
.header_center-right_phone {
    display: none;
}

.sbk-topphone {
    font-weight: 600;
    white-space: nowrap;
}

.header_center-right_feedbacks a {
    width: auto;
    padding: 12px 22px;
    font-size: 16px;
    line-height: 22px;
}

.header_bottom {
    gap: 20px;
    padding-bottom: 12px;
}

.header_bottom .top_menu ul {
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 18px;
    overflow-x: auto;
    scrollbar-width: none;
}

.header_bottom .top_menu ul::-webkit-scrollbar {
    display: none;
}

.header_bottom .top_menu a {
    font-size: 15px;
    line-height: 24px;
    white-space: nowrap;
}

.header_bottom .top_menu a:hover {
    color: var(--sbk-brand);
}

/* активный пункт меню — визуально отличается (ТЗ правка №3);
   класс вешает sbk2026.js по совпадению pathname */
.top_menu a.sbk-menu-active {
    color: var(--sbk-brand);
    font-weight: 600;
}

@media (min-width: 1281px) {
    .header_bottom .top_menu ul {
        gap: 24px;
    }
    .header_bottom .top_menu a {
        font-size: 16px;
    }
}

/* ---------- 2. Hero (главная и «Мебель на заказ») ---------- */

.sbk-hero {
    background: var(--sbk-cream);
    border-radius: 0 0 32px 32px;
    padding: 40px 0 48px;
}

.content .sbk-hero {
    border-radius: 24px;
    padding: 40px 40px 48px;
    margin: 16px 0 0;
}

.sbk-hero__grid {
    display: flex;
    align-items: center;
    gap: 32px;
}

.sbk-hero__text {
    flex: 1 1 50%;
    min-width: 0;
    /* легаси style.css задаёт h1 { text-align: center } — сбрасываем на весь блок */
    text-align: left;
}

.sbk-hero__media {
    flex: 1 1 50%;
    min-width: 0;
}

.sbk-hero__media img {
    width: 100%;
    /* макет: 515px при сетке 1196; сетка сайта 1116 — берём пропорционально */
    height: 490px;
    object-fit: cover;
    border-radius: 24px;
    display: block;
}

h1.sbk-hero__title {
    color: var(--sbk-text);
    font-size: 38px;
    line-height: 1.2;
    font-weight: 700;
    margin: 0 0 20px;
    text-align: left;
}

h1.sbk-hero__title span,
.sbk-hero__title span {
    color: var(--sbk-brand);
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    margin-left: 0;
}

.content h1.sbk-hero__title {
    font-size: 34px;
}

.sbk-hero__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 20px;
}

.sbk-hero__tag {
    background: var(--sbk-tag-bg);
    color: var(--sbk-text);
    /* макет: 16px (замер строк «3D-проект бесплатно» = 171px) */
    font-size: 16px;
    line-height: 22px;
    padding: 7px 12px 7px 30px;
    border-radius: 8px;
    position: relative;
    white-space: nowrap;
}

.sbk-hero__tag:before {
    content: "";
    position: absolute;
    left: 10px;
    top: 50%;
    margin-top: -7px;
    width: 14px;
    height: 14px;
    background: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3e%3cpath d='M2 7.5L5.5 11L12 3.5' stroke='%23BF6069' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e") no-repeat center / contain;
}

.sbk-hero__sub {
    color: var(--sbk-text);
    /* макет: Inter Medium 18px / межстрочный 28px */
    font-size: 18px;
    line-height: 28px;
    font-weight: 500;
    margin: 0 0 28px;
}

.sbk-hero__actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

/* Вторичная кнопка первого экрана «Мебель на заказ» переключается по ширине
   экрана (ТЗ 26.07.2026): десктоп (>768) — «Перейти в каталог»,
   мобайл/планшет (≤768) — «Оставить заявку». По умолчанию (десктоп) прячем
   мобильную кнопку, показываем её в media ≤768px ниже.
   На главной обе кнопки видны всегда (без утилит), см. index.html.php. */
.sbk-only-mobile { display: none !important; }

/* макет: кнопки первого экрана 18px, паддинг 20px
   (кнопка «Рассчитать мебель на заказ» = 292px, «Перейти в каталог» = 205px) */
.sbk-hero__actions .sbk-btn {
    font-size: 18px;
    padding-left: 20px;
    padding-right: 20px;
}

/* На внутренних страницах контентная колонка уже, чем на главной, —
   даём тексту чуть больше места и ужимаем кнопки, чтобы обе
   помещались в одну строку (ТЗ правка №2: кнопки в один ряд) */
.content .sbk-hero__text {
    flex: 1 1 53%;
}

.content .sbk-hero__media {
    flex: 1 1 47%;
}

.content .sbk-hero__actions .sbk-btn {
    padding-left: 20px;
    padding-right: 20px;
}

/* CTA первого экрана «Мебель на заказ» — шрифт кнопок ТОЧНО как на главной
   (ТЗ 27.07.2026): Inter 18px, паддинг 14px 20px. white-space:nowrap держит
   текст кнопки в одну строку; если обе не влезают в ряд — переносятся
   контейнером (flex-wrap), каждая на своей строке. */
.content .sbk-hero__actions .sbk-btn {
    font-size: 18px;
    padding: 14px 20px;
    white-space: nowrap;
}

/* ---------- Кнопки ---------- */

.sbk-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    padding: 14px 26px;
    font-size: 17px;
    font-weight: 500;
    line-height: 24px;
    cursor: pointer;
    transition: 0.3s;
    border: none;
    text-align: center;
    min-height: 48px;
    box-sizing: border-box;
}

.sbk-btn--primary {
    background: var(--sbk-brand);
    color: #fff !important;
}

.sbk-btn--primary:hover {
    background: var(--sbk-brand-dark);
    color: #fff;
}

.sbk-btn--ghost {
    background: #fff;
    color: var(--sbk-brand) !important;
    border: 1px solid var(--sbk-brand);
}

.sbk-btn--ghost:hover {
    background: var(--sbk-brand-bg);
}

/* ---------- 3. Секция квиза ---------- */

.sbk-quiz {
    margin: 32px 0;
}

.sbk-quiz iframe {
    max-width: 100%;
}

/* ---------- 4. Карточка товара: правая колонка ---------- */

.sbk-prod-price {
    color: var(--sbk-text);
    font-size: 26px;
    font-weight: 700;
    line-height: 1.25;
    margin-bottom: 4px;
}

.sbk-prod-price .price {
    font-size: 26px;
    font-weight: 700;
}

.sbk-prod-price-note {
    color: var(--sbk-muted);
    font-size: 14px;
    line-height: 20px;
    margin: 0 0 12px;
}

.sbk-prod-desc {
    color: var(--sbk-text);
    font-size: 15px;
    line-height: 1.55;
    margin: 10px 0 16px;
}

.sbk-benefits {
    list-style: none;
    padding: 14px 16px;
    margin: 16px 0;
    background: var(--sbk-cream);
    border-radius: 12px;
}

.sbk-benefits li {
    position: relative;
    padding: 4px 0 4px 30px;
    color: var(--sbk-text);
    font-size: 14px;
    line-height: 20px;
}

.sbk-benefits li:before {
    content: "";
    position: absolute;
    left: 4px;
    top: 50%;
    margin-top: -8px;
    width: 16px;
    height: 16px;
    background: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3e%3cpath d='M2 7.5L5.5 11L12 3.5' stroke='%23BF6069' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e") no-repeat center / contain;
}

.sbk-prod-cta {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 16px;
}

.sbk-prod-cta .sbk-btn {
    width: 100%;
}

.sbk-prod-cta form {
    margin: 0;
}

/* H1 товара перенесён в правую колонку (ТЗ: «правая колонка… 1. Наименование
   (H1)»). Уменьшаем крупный полностраничный размер H1 под ширину колонки. */
.product_buy_form .product_page_h1 {
    font-size: 28px;
    line-height: 1.25;
    font-weight: 700;
    margin: 0 0 12px;
}

/* Характеристики видны в правой колонке и на мобильных — после описания,
   перед преимуществами (ТЗ, «Требования к адаптивной версии»). Легаси на
   ≤768px прятал их в колонке, оставляя только во вкладке «Характеристики». */
@media screen and (max-width: 768px) {
    .product_buy_form .product_page_h1 {
        font-size: 24px;
    }
    .product_buy_form .product_about_charactiristic {
        display: block;
    }
    /* Крошки на мобильном: line-height 28px при шрифте 12px давал большой
       пустой отступ до галереи (стал заметен после переноса H1 вниз). */
    .breadcrumbs {
        line-height: 1.5;
        margin-bottom: 6px;
    }
}

/* Раскладка карточки: три колонки без переноса (до правки правая
   колонка не влезала и падала под галерею на экранах ≤1530px) */
@media (min-width: 1025px) {
    .product_page .product_page_info {
        flex-wrap: nowrap;
        gap: 1.5rem;
    }
    .product_page .product_page_info .mainSwiper {
        width: 22rem;
        height: 22rem;
        flex-shrink: 0;
    }
    .product_page .product_page_info .thumbsSwiper {
        height: 22rem;
    }
    .product_page .product_page_info .product_about {
        min-width: 0;
        flex: 1 1 auto;
    }
    .product_page .product_page_info .product_info_text_block {
        flex: 0 0 16rem;
        min-width: 16rem;
    }
    .product_page .product_page_info .product_info_text {
        min-width: 0;
        width: 100%;
    }
}

/* ============================================================
   Карточка товара и шапка — правки (июль 2026)
   ============================================================ */

@media (min-width: 1025px) {
    /* Шапка: меню каталога (9 пунктов) не помещалось в контейнер и выходило
       за правый край. Делаем меню «резиновым» — оно занимает всю ширину после
       кнопки «Каталог», пункты распределяются равномерно (space-between), а
       интервал сам подстраивается: ~8px при 1025px … ~30px на широких экранах. */
    .header_bottom .top_menu { flex: 1 1 auto; min-width: 0; }
    .header_bottom .top_menu > ul {
        display: flex;
        width: 100%;
        justify-content: space-between;
        gap: 8px;
    }
    .header_bottom .top_menu > ul a { font-size: 15px; }

    /* Хлебные крошки (внутренние страницы): ровно 20px от нижней панели меню
       и 20px до контента. У .header был лишний нижний padding 20px (сверх 12px
       у .header_bottom), из-за которого крошки уходили далеко вниз — убираем его,
       а крошкам даём margin-top 20px (как в ТЗ). Итог: 20px от шапки, 20px до товара. */
    body.inner_page .header { padding-bottom: 0; }
    .breadcrumbs { margin-top: 20px; margin-bottom: 20px; }
}

/* Главное фото товара: высокое изображение прилипало к краям контейнера.
   Даём внутренний отступ 20px и вписываем по размеру (object-fit: contain) —
   фото уменьшается при нехватке места и не касается краёв. Селектор с
   .product.product_page перебивает базовое правило темы по специфичности. */
.product.product_page .product_page_info .mainSwiper .swiper-slide a {
    box-sizing: border-box;
    padding: 20px;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.product.product_page .product_page_info .mainSwiper .swiper-slide a img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Точки-индикаторы слайдера главного фото. На мобильных миниатюры скрыты и не
   видно, что фото несколько — точки показывают количество и активный слайд
   (кликабельны, строит sbk2026.js). На десктопе не нужны (есть миниатюры). */
.sbk-main-dots { display: none; }
.product_photo { position: relative; }
@media screen and (max-width: 768px) {
    /* Оверлей-«таблетка» с точками внизу по центру фото — видно, что фото
       несколько и галерею можно листать. Полупрозрачный фон для контраста. */
    .sbk-main-dots {
        display: flex;
        justify-content: center;
        gap: 6px;
        position: absolute;
        left: 50%;
        bottom: 12px;
        transform: translateX(-50%);
        padding: 6px 10px;
        border-radius: 20px;
        background: rgba(255, 255, 255, 0.78);
        box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
        z-index: 3;
    }
    .sbk-main-dot {
        width: 7px;
        height: 7px;
        padding: 0;
        border: none;
        border-radius: 50%;
        background: #c9bdb6;
        cursor: pointer;
        transition: background 0.2s ease, transform 0.2s ease;
    }
    .sbk-main-dot.active {
        background: var(--sbk-brand);
        transform: scale(1.3);
    }
}

/* Попап заявки: служебное поле «Заголовок» скрываем (форма по ТЗ —
   только имя и телефон; поле необязательное) */
.add_form.call .title_pole {
    display: none;
}

/* Модальные окна сайта (#window: «Заказать звонок» / «Заказать замер» /
   «Получить консультацию») — скругление углов 10px по ТЗ (июль 2026).
   Фирменный заголовок-подложка и остальной стиль окна сохраняются. */
#window {
    border-radius: 10px;
}

/* Модалка квиза Marquiz (попап «Рассчитать мебель на заказ») — по умолчанию
   углы прямые; скругляем 10px. Видимая «карточка» — iframe .marquiz__frame
   (белый фон); обёртка .marquiz__modal прозрачная, крестик над рамкой не режем. */
.marquiz__frame {
    border-radius: 10px;
    overflow: hidden;
}
.marquiz__modal {
    border-radius: 10px;
}
/* На телефоне/планшете Marquiz разворачивает модалку квиза на весь экран
   (100% ширины и высоты, <1024px) — скругление на полноэкранном окне не нужно
   и оставляет некрасивые уголки. Убираем радиус, пока окно во весь экран (ТЗ 26.07.2026). */
@media screen and (max-width: 1023px) {
    .marquiz__frame,
    .marquiz__modal {
        border-radius: 0 !important;
    }
}

/* Лайтбокс увеличенного фото товара (Highslide) — скругляем углы 10px. */
.highslide-image,
.highslide-wrapper {
    border-radius: 10px;
}

/* ---------- 5. Модалка «Товар добавлен» ---------- */

.sbk-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(30, 22, 18, 0.55);
    z-index: 10050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.sbk-modal {
    background: #fff;
    border-radius: 16px;
    padding: 32px 28px 28px;
    max-width: 420px;
    width: 100%;
    text-align: center;
    position: relative;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
}

.sbk-modal__close {
    position: absolute;
    top: 12px;
    right: 14px;
    border: none;
    background: none;
    font-size: 26px;
    line-height: 1;
    color: var(--sbk-muted);
    cursor: pointer;
}

.sbk-modal__icon {
    width: 52px;
    height: 52px;
    margin: 0 auto 14px;
    border-radius: 50%;
    background: var(--sbk-brand-bg) url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 14 14' fill='none'%3e%3cpath d='M2 7.5L5.5 11L12 3.5' stroke='%23BF6069' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e") no-repeat center;
}

.sbk-modal__title {
    color: var(--sbk-text);
    font-size: 20px;
    font-weight: 600;
    line-height: 1.3;
    margin: 0 0 20px;
}

.sbk-modal__actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* ---------- Согласие с политикой: чекбокс и текст в одну строку ----------
   На форме отзыва (и в формах заказа) чекбокс и подпись «Согласен(-на)…»
   разъезжались на две строки. Ставим их в один ряд. */
.confirm_check,
.confirm-check-block {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.confirm_check input[type="checkbox"],
.confirm-check-block input[type="checkbox"] {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin: 0;
}

.confirm_check label,
.confirm-check-block label {
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
    cursor: default;
}

/* ---------- Отзывы на главной (десктоп): 3 карточки без обрезки ----------
   Карточки .responce были фикс. 400px и не влезали по 3. «Настоящий» процент
   (slick variableWidth:false = контейнер/3) в этой сборке slick считается неверно
   (меряет ширину списка раньше вёрстки → кривые слайды). Поэтому ширину карточки
   адаптируем под ширину бутстрап-контейнера на каждом диапазоне десктопа
   (960 / 1116 / 1140), slick меряет карточку (variableWidth:true) — 3 влезают всегда. */
@media (min-width: 1025px) {              /* контейнер ~960 (lg) */
    .newStyleReviewsSlider .responce {
        width: 284px;
        max-width: 284px;
        margin: 0 12px;
        box-sizing: border-box;
    }
}
@media (min-width: 1200px) {              /* контейнер xl/xxl: список ~1116 в обоих */
    .newStyleReviewsSlider .responce { width: 340px; max-width: 340px; }
}

/* ---------- 6. Мобильная нижняя навигация ---------- */

.sbk-bottomnav {
    display: none;
}

.sbk-stickybar {
    display: none;
}

/* ТЗ №4: при открытой экранной клавиатуре или всплывающем окне нижние
   панели временно уезжают вниз, чтобы не перекрывать ввод / модалку.
   Класс sbk-bars-hidden ставит sbk2026.js. */
body.sbk-bars-hidden .sbk-bottomnav,
body.sbk-bars-hidden .sbk-stickybar {
    /* фикс. смещение с запасом: перекрывает и высоту панели, и её отступ
       bottom (у sticky-бара 70px), и safe-area — уводит панель полностью за экран */
    transform: translateY(240px);
    pointer-events: none;
}

@media screen and (max-width: 768px) {

    body {
        padding-bottom: 80px;
    }

    .sbk-bottomnav {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 10000;
        display: flex;
        align-items: stretch;
        justify-content: space-around;
        background: #fff;
        /* Плоская панель без скругления и тени — скругление+тень странно
           накладывались на sticky-бар с ценой, стоящий вплотную сверху. */
        border-radius: 0;
        box-shadow: none;
        border-top: 1px solid rgba(0, 0, 0, 0.08);
        height: 60px; /* итого с паддингами 70px — верх диапазона ТЗ 60–70 */
        padding: 6px 4px calc(4px + env(safe-area-inset-bottom, 0px));
        box-sizing: content-box;
        transition: transform 0.2s ease;
    }

    .sbk-bottomnav__item {
        flex: 1 1 20%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 3px;
        color: #929292;
        font-size: 11px;
        line-height: 13px;
        text-align: center;
        text-decoration: none;
        position: relative;
        min-width: 0;
    }

    .sbk-bottomnav__item svg {
        width: 23px;
        height: 23px;
        display: block;
        stroke: #929292;
    }

    .sbk-bottomnav__item span {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 100%;
        padding: 0 2px;
        font-size: 10px;
    }

    /* «Мебель на заказ» — самая длинная подпись, даём больше места */
    .sbk-bottomnav__item[data-sbk-nav="custom"] {
        flex: 1.6 1 24%;
    }

    .sbk-bottomnav__item.active {
        color: var(--sbk-brand);
    }

    .sbk-bottomnav__item.active svg {
        stroke: var(--sbk-brand);
    }

    .sbk-bottomnav__badge {
        position: absolute;
        top: 2px;
        left: calc(50% + 6px);
        min-width: 16px;
        height: 16px;
        border-radius: 8px;
        background: var(--sbk-brand);
        color: #fff;
        font-size: 10px;
        font-weight: 600;
        line-height: 16px;
        text-align: center;
        padding: 0 4px;
        box-sizing: border-box;
    }

    /* ---------- 7. Sticky-панель действий (товар / корзина) ---------- */

    .sbk-stickybar {
        position: fixed;
        left: 0;
        right: 0;
        bottom: calc(70px + env(safe-area-inset-bottom, 0px));
        z-index: 9999;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        background: #fff;
        /* Плоско, без тени — стыкуется с нижней навигацией через тонкую линию. */
        box-shadow: none;
        border-top: 1px solid rgba(0, 0, 0, 0.08);
        padding: 10px 14px;
        transition: transform 0.2s ease;
    }

    body.sbk-has-stickybar {
        padding-bottom: 156px;
    }

    /* ВАЖНО: у темы `html, body { height: 100% }`, поэтому padding-bottom у body
       «заперт» внутри 900px-бокса, а реальный контент (подвал) переполняет его —
       нижний отступ body не резервирует место, и фикс-панели (цена + меню)
       перекрывают последние строки подвала («Согласие…», «© 2026»). Резервируем
       место на самом подвале `.footer_mobile` — это последний элемент в потоке. */
    body.sbk-has-stickybar .footer_mobile {
        /* высота нижнего меню (70px) + панель «Цена/Оформить» (~70px) + зазор */
        padding-bottom: calc(120px + env(safe-area-inset-bottom, 0px));
    }

    .sbk-stickybar__price {
        color: var(--sbk-text);
        font-size: 16px;
        font-weight: 700;
        line-height: 1.25;
        min-width: 0;
    }

    .sbk-stickybar__price small {
        display: block;
        color: var(--sbk-muted);
        font-size: 11px;
        font-weight: 400;
        line-height: 14px;
    }

    .sbk-stickybar .sbk-btn {
        flex: 0 0 auto;
        padding: 12px 16px;
        font-size: 14px;
        min-height: 48px; /* ТЗ: минимальная высота кнопки 48px */
        white-space: nowrap;
    }

    /* hero на мобильных */

    .sbk-hero {
        padding: 24px 0 28px;
        border-radius: 0 0 20px 20px;
    }

    .content .sbk-hero {
        padding: 20px 16px 24px;
    }

    .sbk-hero__grid {
        flex-direction: column;
        gap: 20px;
    }

    h1.sbk-hero__title {
        font-size: 26px;
    }

    .sbk-hero__tags {
        flex-direction: column;
        align-items: flex-start;
    }

    .sbk-hero__actions {
        flex-direction: column;
        align-items: stretch;
    }

    /* ≤768: вторичная кнопка первого экрана «Мебель на заказ» — «Оставить заявку»
       вместо «Перейти в каталог» */
    .sbk-only-desktop { display: none !important; }
    .sbk-only-mobile { display: inline-flex !important; }

    .sbk-hero__actions .sbk-btn {
        width: 100%;
    }

    .sbk-hero__media img {
        height: 300px;
    }

    /* Блок «Отзывы» на мобильном: слишком большой отступ до подвала (~70–80px).
       Убираем лишнее — оставляем аккуратный зазор. */
    .homeReview {
        margin-bottom: 8px;
    }

    .homeReview .slick-dots {
        margin-top: 8px;
    }
}

/* планшет: hero колонкой, но без нижней навигации.
   В две колонки на 1024 текстовый блок ужимается до ~450px и кнопки
   ломаются на две строки — поэтому картинка уезжает под текст. */
@media screen and (min-width: 769px) and (max-width: 1024px) {
    .sbk-hero__grid,
    .content .sbk-hero__grid {
        flex-direction: column;
        align-items: stretch;
        gap: 24px;
    }

    .sbk-hero__text,
    .content .sbk-hero__text,
    .sbk-hero__media,
    .content .sbk-hero__media {
        flex: 1 1 auto;
    }

    .sbk-hero__media img {
        height: 360px;
    }

    h1.sbk-hero__title {
        font-size: 30px;
    }

    /* легаси-блок обратной связи: gap 216px + nowrap не влезают
       в контентную колонку планшета и дают горизонтальную прокрутку
       (ТЗ правка №2: прокрутки быть не должно) */
    .feedback-block {
        flex-wrap: wrap;
        gap: 24px;
    }

    .feedback-block-form {
        max-width: 100%;
    }
}

/* ---------- Калькулятор кухни (/raschet_stoimosti_kuhni.html): телефон + планшет ----------
   Десктопный интерактивный конструктор рассчитан на канвас 490px с абсолютно
   спозиционированными ползунками размеров — на узких экранах он не помещался
   и обрезался. На ≤1024 раскладываем блок в чистый столбик: превью формы +
   сетка выбора формы гарнитура + форма заявки; десктопные ползунки прячем
   (не работают на тач). Десктоп (>1024) не трогаем. (ТЗ 26.07.2026) */
@media screen and (max-width: 1024px) {
    .calculator p.tit {
        font-size: 16px;
        line-height: 1.35;
        padding: 12px 16px;
    }

    .calculator .select_form,
    .calculator .view_form {
        float: none;
        width: 100%;
        height: auto;
    }

    /* Сетка выбора формы гарнитура — 2 колонки, ничего не обрезается */
    .calculator .select_form {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        justify-content: center;
        padding: 16px 12px 4px;
        box-sizing: border-box;
    }
    .calculator .select_form p {
        flex: 0 0 100%;
        margin: 0 0 4px;
    }
    .calculator .select_form label {
        float: none;
        width: calc(50% - 6px);
        margin: 0;
        box-sizing: border-box;
    }
    .calculator .select_form label .img {
        width: 100%;
        box-sizing: border-box;
    }
    .calculator .select_form label .img img {
        width: 100%;
        height: auto;
        display: block;
    }

    /* Превью выбранной формы — по центру, компактно */
    .calculator .view_form {
        text-align: center;
    }
    .calculator .view_form .view_form_option {
        width: 100%;
    }
    .calculator .view_form .view_form_option .img {
        width: 220px;
        max-width: 80%;
        margin: 16px auto;
    }

    /* Интерактивные ползунки размеров (абс. позиционирование под 490px-канвас)
       не работают на узком/тач-экране — прячем на телефоне и планшете */
    .calculator .calc_slider_container {
        display: none !important;
    }

    /* Форма заявки — в одну колонку, поля на всю ширину */
    .add_form.calc_form table,
    .add_form.calc_form tbody,
    .add_form.calc_form tr {
        display: block;
        width: 100%;
    }
    .add_form.calc_form col {
        width: auto !important;
    }
    .add_form.calc_form td {
        display: block;
        width: 100% !important;
        padding: 0;
        box-sizing: border-box;
    }
    .add_form.calc_form tr td:first-child:not(.error):not(:empty) {
        font-weight: 500;
        margin: 12px 0 4px;
        color: #352c28;
    }
    .add_form.calc_form input[type="text"],
    .add_form.calc_form input[type="email"],
    .add_form.calc_form input[type="password"],
    .add_form.calc_form textarea {
        width: 100%;
        box-sizing: border-box;
    }
    .add_form.calc_form input[type="submit"] {
        width: 100%;
        margin-top: 14px;
    }

    /* Согласие с политикой — в одну строку */
    .add_form.calc_form .confirm_check {
        display: flex;
        align-items: flex-start;
        gap: 8px;
        margin-top: 10px;
    }
    .add_form.calc_form .confirm_check input {
        flex: 0 0 auto;
        margin: 3px 0 0;
    }
    .add_form.calc_form .confirm_check label {
        margin: 0;
        text-align: left;
    }
    .add_form.calc_form td.error {
        color: #c0392b;
        margin-top: 4px;
    }
}

/* ---------- Инлайн-квиз «Мебель на заказ»: высота под контент (телефон + планшет) ----------
   Marquiz жёстко ставит iframe height:600px и прокручивает высокие шаги ВНУТРИ
   (картиночные вопросы ~1100–1250px) → квиз «ходил» вверх-вниз. На ≤1024 растягиваем
   блок под самый высокий шаг, чтобы квиз помещался целиком без внутренней прокрутки.
   Ширину ограничиваем 380px (иначе на планшете картинки-ответы растут и высота
   «взрывается» до ~1700px+), блок центрируем. Побочный эффект фикс-высоты: на коротких
   шагах (обложка/форма контакта) снизу остаётся пустое место — полностью чистое
   решение (адаптивная высота) доступно только в кабинете Marquiz. Десктоп (>1024) НЕ трогаем.
   (ТЗ 26.07.2026) */
@media screen and (max-width: 1024px) {
    #sbk-quiz {
        text-align: center;
    }
    #sbk-quiz .marquiz__container,
    #sbk-quiz iframe {
        max-width: 360px !important;
        width: 100% !important;
        height: 1360px !important;
        margin: 0 auto !important;
    }
}

/* ================= Мобайл/планшет: чтобы ничего не выходило за край экрана (ТЗ 27.07.2026) ================= */

/* Бэкстоп от горизонтальной прокрутки на телефоне/планшете.
   overflow-x:clip (не hidden) — не создаёт скролл-контейнер и не ломает position:sticky;
   в старых браузерах откатывается к visible (как сейчас, без вреда). */
@media screen and (max-width: 1024px) {
    body {
        overflow-x: clip;
    }
}

/* Модалки .window (заказать звонок / вызвать замерщика / оставить заявку / вход):
   десктоп задаёт `#window{width:590px}` по id → на телефоне окно ШИРЕ экрана и
   обрезается (форму не заполнить). Вписываем окно в экран с полями по 12px, а
   внутренние поля — на всю ширину. (ТЗ 27.07.2026) */
@media screen and (max-width: 600px) {
    #window, #window_ring, .window {
        width: auto !important;
        max-width: none !important;
        left: 12px !important;
        right: 12px !important;
        margin-left: 0 !important;
        box-sizing: border-box !important;
    }
    #window .window_scroll,
    #window .add_form,
    #window .add_form form,
    #window .add_form table,
    #window .add_form td {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    #window .add_form input[type="text"],
    #window .add_form input[type="email"],
    #window .add_form input[type="password"],
    #window .add_form textarea,
    #window .add_form input[type="submit"] {
        width: 100% !important;
        box-sizing: border-box !important;
    }
    #window .confirm_check {
        display: flex;
        align-items: flex-start;
        gap: 8px;
    }
    #window .confirm_check input {
        flex: 0 0 auto;
        margin: 3px 0 0;
        width: auto !important;
    }
}

/* Табы карточки товара (Описание/Характеристики/…) стояли в один ряд без переноса
   (flex nowrap) → крайние вкладки уходили за край экрана. Разрешаем перенос. */
@media screen and (max-width: 768px) {
    .content_tab_nav ul {
        flex-wrap: wrap;
    }
}
