/* Zbagira3x: стейт-стили видимости на замену CSS старых компонентов MODX2.
   Старые файлы (comparison, msfavorites, minishop2) не переносятся —
   здесь только правила, от которых зависит разметка темы. */

/* --- Сравнение (compare): классы compare--added/compare-mini--active
       и тексты кнопки ставит compare.js; compare.css грузится ДО этого файла --- */
.compare, .compare-mini, .compare-page {
    --compare-text-active: var(--primary-color);
    --compare-icon-active: var(--primary-color);
}
.header-icon-btn.compare-mini,
.header-icon-btn.compare-mini:hover,
.header-icon-btn.compare-mini.compare-mini--active {color: inherit;}
.product-actions-top .compare {flex-direction: row; align-items: center; gap: 4px;}
.product-actions-top .compare__button {padding: 0; align-items: center;}
.compare .compare__go {color: var(--primary-color); text-decoration: none;}
.cmp-tabs {display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px;}
/* карточка товара в шапке таблицы сравнения */
.cmp-card {display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding-right: 24px;}
.cmp-card__img-link {display: flex; align-items: center; justify-content: center; width: 100%; height: 160px; border-radius: 12px; overflow: hidden; background: #fff;}
.cmp-card__img {max-width: 100%; max-height: 100%; object-fit: contain;}
.cmp-card__title {font-weight: 600; font-size: 15px; line-height: 1.35; color: var(--text-body, #171717); text-decoration: none;}
.cmp-card__title:hover {color: var(--primary-color); text-decoration: none;}
.cmp-card__price {font-size: 16px; font-weight: 700; color: var(--text-body, #171717);}
.cmp-card__price--best {color: var(--compare-text-best, #17a417);}
.cmp-card .ms3_form {width: 100%;}
.cmp-card .btn-cart {padding: 10px 16px; font-size: 14px;}
/* полировка таблицы сравнения */
.compare-specification__cell {min-width: 240px; width: 240px;}
.compare-grid__row--item {border-bottom: 1px solid var(--neutral-100, #ececec);}
.compare-grid__row--item:last-child {border-bottom: none;}
.compare-grid__group-title {font-size: 16px; color: var(--text-body, #171717); padding-top: 20px;}
.compare-grid__remove {color: #bbb; z-index: 2;}
.compare-grid__remove:hover {color: var(--primary-color);}

/* --- Избранное (ms3Favorites): класс ms3f--active и title ставит
       favorites.js по клику и при загрузке/синхронизации --- */
:root:root {--ms3f-button-active: var(--primary-color);}
.product-action-link[data-favorites-toggle],
.product-action-btn[data-favorites-toggle] {padding: 0;}
.product-action-link[data-favorites-toggle] {display: flex;}
.ms3f-fav {cursor: pointer;}
.ms3f-fav .ms3f-text-in,
.ms3f-fav.ms3f--active .ms3f-text-add {display: none;}
.ms3f-fav.ms3f--active .ms3f-text-in {display: inline;}
.ms3f-fav.ms3f--active,
.product-action-btn.ms3f--active {color: var(--primary-color);}
/* сердце в сетке: у карточки с товаром в избранном видно без hover,
   на тач-устройствах hover нет - видно всегда */
.product-card-actions:has(.ms3f--active) {opacity: 1;}
[data-favorites-page-container] .product-card-actions {opacity: 1;}
@media (hover: none) {
    .product-card-actions {opacity: 1;}
}
/* favorites.js показывает бейдж через display:inline-block - центрируем цифру */
.header-icon-badge[data-favorites-count] {text-align: center; line-height: 16px;}

/* --- Акции: главное фото страницы акции (в теме стилей для него нет,
       без ограничения оригинал растянул бы вёрстку) --- */
.promotion-detail-main-image {
    max-width: 1000px;
    margin: 0 auto 24px;
}
.promotion-main-image {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 16px;
}

/* --- Формы publicConnector (звонок/1клик/выезд): контент модалок GetForm --- */
.form-modal-title {margin: 0 0 8px; font-size: 22px; font-weight: 700;}
.form-modal-subtitle {margin: 0 0 20px; color: #777; font-size: 14px; line-height: 1.45;}
.form-modal-product {
    margin: 0 0 20px;
    padding: 12px 16px;
    background: var(--neutral-100, #f5f5f5);
    border-radius: 12px;
}
.form-modal-product-title {font-weight: 600; font-size: 14px;}
.form-modal-product-meta {margin-top: 4px; color: #777; font-size: 13px;}
.montaz-etapy__order-btn {margin-top: 12px;}

/* --- Поиск (mSearch): вид формы возвращаем теме (msearch.css компонента
       грузится ПОСЛЕ файлов темы через regClientCSS - нужнее специфичность),
       дропдаун автокомплита подгоняем под тему --- */
.form-input.mse-input {
    padding: 12px 16px;
    border: 1px solid var(--neutral-200, #e5e5e5);
    border-radius: var(--border-radius-48, 48px);
    font-size: 14px;
    font-weight: 500;
}
.form-input.mse-input:focus {border-color: var(--primary-color);}
.mse-autocomplete {
    border-radius: 12px;
    border-color: var(--neutral-200, #e5e5e5);
    overflow: hidden;
}
.mse-autocomplete-item:hover,
.mse-autocomplete-item.active {background: var(--neutral-100, #f5f5f5);}
.mse-suggest-price-current {color: var(--primary-color);}
.srch-form {max-width: 640px; margin: 0 0 24px;}

/* --- Списки с пагинацией (видео, портфолио): на старом сайте pdoPage
       в режиме «Загрузить ещё» прятал пагинацию JS-ом. До интеграции
       pdoPage на MODX3 верхнюю скрываем, нижняя работает ссылками. --- */
#pdopage .rows > .pagination:first-child,
#pdopage .rows > :first-child:has(> .pagination) {display: none;}

/* --- Фильтры mFilter: гасим дефолтный скин mfilter.css (он для Bootstrap),
       разметка и вид - от темы (.catalog-filter-*). Селекторы специфичнее
       mfilter.css, порядок подключения не важен. --- */
.catalog-filters .mfilter-item {padding: 0; transition: opacity .2s;}
.catalog-filters .mfilter-item:hover {background: none; margin: 0; padding: 0; border-radius: 0;}
.catalog-filters .mfilter-item input[type="checkbox"] {margin: 0;}
.catalog-filters .mfilter-count {font-size: 14px; color: var(--neutral-500); padding-left: 0;}
.catalog-filters .mfilter-count::before,
.catalog-filters .mfilter-count::after {content: none;}
/* значение с нулём товаров: приглушено и не кликается;
   ОТМЕЧЕННОЕ с нулём остаётся кликабельным - иначе его не снять */
.catalog-filters .mfilter-item-empty {opacity: .5; pointer-events: none;}
.catalog-filters .mfilter-item-empty input {pointer-events: none;}
.catalog-filters .mfilter-item-empty:has(input:checked) {opacity: 1; pointer-events: auto;}
.catalog-filters .mfilter-item-empty:has(input:checked) input {pointer-events: auto;}
/* noUiSlider под инпутами от/до - в цветах темы (вместо дефолтного синего).
   right:-9px обязателен: nouislider ставит -17px под свой хэндл 34px,
   mfilter.css сжимает хэндл до 18px, но смещение не правит - ползунок съезжает */
.catalog-filters .mfilter-slider {
    margin: 14px 9px 6px;
    height: 4px;
    border: none;
    background: #e5e5e5;
    box-shadow: none;
}
.catalog-filters .mfilter-slider .noUi-connect {background: #DC4726;}
.catalog-filters .mfilter-slider .noUi-handle {
    width: 18px;
    height: 18px;
    top: -8px;
    right: -9px;
    border-radius: 50%;
    border: 2px solid #DC4726;
    background: #fff;
    box-shadow: none;
    cursor: grab;
}
.catalog-filters .mfilter-slider .noUi-handle::before,
.catalog-filters .mfilter-slider .noUi-handle::after {display: none;}
/* пустая выдача после фильтрации (показ/скрытие управляет JS mFilter) */
.catalog-empty {padding: 40px 0; text-align: center; color: var(--neutral-500);}
/* счётчик «Показано объектов»: не даём mfilter.css уменьшить шрифт */
.catalog-pagination-text .mfilter-total {font-size: inherit; color: inherit; margin: 0;}

/* --- Пагинация: гасим скин mfilter.css. Он вешает рамку и размеры на КАЖДЫЙ
       a и span внутри .mfilter-pagination - у «Назад»/«Вперёд» получалось две
       обводки (у ссылки и у вложенного span), а `color` скина перебивал белый
       текст активной страницы (тёмное на тёмном). Селекторы в два класса
       специфичнее, чем `.mfilter-pagination a`. --- */
.mfilter-pagination {gap: 12px;}
.mfilter-pagination .pagination-link,
.mfilter-pagination .pagination-link span,
.mfilter-pagination .pagination-dots {
    min-width: 0;
    height: auto;
    padding: 0;
    border: none;
    border-radius: 0;
    background: none;
}
.mfilter-pagination .pagination-link {gap: 8px; color: var(--text-body);}
.mfilter-pagination .pagination-link:hover,
.mfilter-pagination .pagination-link:hover span {color: var(--primary-color);}
.mfilter-pagination .pagination-number {
    min-width: 32px;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid var(--neutral-200);
    border-radius: 50%;
    color: var(--text-body);
}
.mfilter-pagination .pagination-number:hover {border-color: var(--primary-color); color: var(--primary-color);}
.mfilter-pagination .pagination-number-active,
.mfilter-pagination .pagination-number-active:hover {
    background: var(--neutral-900);
    border-color: var(--neutral-900);
    color: #fff;
}

/* --- Фильтры каталога: аккуратный современный вид --- */
.catalog-filters .catalog-filter-group {gap: 0;}
.catalog-filters .catalog-filter-title {
    padding: 4px 2px 14px;
    font-weight: 600;
    transition: color .15s;
}
.catalog-filters .catalog-filter-title:hover {color: #DC4726;}
.catalog-filters .catalog-filter-title:focus {outline: none;}
.catalog-filters .catalog-filter-title:focus-visible {
    outline: 2px solid #DC4726;
    outline-offset: 2px;
    border-radius: 4px;
}
.catalog-filters .catalog-filter-content {padding: 14px 2px 4px;}

/* список значений: тонкий скроллбар, отступ от него */
.catalog-filters .catalog-filter-checkbox-list {
    gap: 10px;
    padding: 2px 10px 6px 2px;
    scrollbar-width: thin;
    scrollbar-color: #d9d9d9 transparent;
}
.catalog-filters .catalog-filter-checkbox-list::-webkit-scrollbar {width: 4px;}
.catalog-filters .catalog-filter-checkbox-list::-webkit-scrollbar-track {background: transparent;}
.catalog-filters .catalog-filter-checkbox-list::-webkit-scrollbar-thumb {background: #d9d9d9; border-radius: 4px;}
.catalog-filters .catalog-filter-checkbox-list::-webkit-scrollbar-thumb:hover {background: #b9b9b9;}

.catalog-filters .catalog-filter-checkbox {
    gap: 10px;
    line-height: 1.35;
    transition: color .15s;
}
.catalog-filters .catalog-filter-checkbox:hover {color: #DC4726;}
.catalog-filters .catalog-filter-checkbox input[type="checkbox"] {
    flex-shrink: 0;
    accent-color: #DC4726;
}
.catalog-filters .catalog-filter-checkbox:has(input:checked) {color: #DC4726; font-weight: 500;}

/* счётчик значения - серая пилюля, у выбранного - в цвет темы */
.catalog-filters .catalog-filter-checkbox-count {
    flex-shrink: 0;
    font-size: 12px;
    line-height: 18px;
    color: var(--neutral-500);
    background: #f5f5f5;
    border-radius: 9px;
    padding: 0 7px;
}
.catalog-filters .catalog-filter-checkbox:has(input:checked) .catalog-filter-checkbox-count {
    background: #fdeae5;
    color: #DC4726;
}

/* --- Главная: отступ hero-баннера от шапки --- */
.hero-section {margin-top: 24px;}

/* --- Корзина: клики по иконкам +/- должны попадать в КНОПКУ
       (QuantityUI ms3 матчит e.target по селектору кнопки) --- */
.quantity-btn svg,
[data-ms3-qty] svg {pointer-events: none;}

/* --- Мобильное меню: аккуратный современный вид --- */
.header-burger:focus {outline: none;}
.header-burger:focus-visible {
    outline: 2px solid #DC4726;
    outline-offset: 2px;
    border-radius: 4px;
}

/* плавающие мессенджеры не должны лежать поверх открытого меню */
body.mobile-menu-open .floating-buttons {
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s;
}

.mobile-menu {
    padding: 20px 16px 24px;
    border-top: 1px solid var(--neutral-100);
    box-shadow: 0 16px 32px -12px rgba(0, 0, 0, .18);
    transform: translateY(-8px);
    transition: opacity .25s, visibility .25s, transform .25s;
}
.mobile-menu.active {transform: translateY(0);}

.mobile-menu .mobile-menu-list {
    gap: 0;
    padding-right: 6px;
    scrollbar-width: thin;
    scrollbar-color: #d9d9d9 transparent;
}
.mobile-menu .mobile-menu-list::-webkit-scrollbar {width: 4px;}
.mobile-menu .mobile-menu-list::-webkit-scrollbar-track {background: transparent;}
.mobile-menu .mobile-menu-list::-webkit-scrollbar-thumb {background: #d9d9d9; border-radius: 4px;}

.mobile-menu .mobile-menu-item {gap: 0;}
.mobile-menu .mobile-menu-item + .mobile-menu-item {border-top: 1px solid var(--neutral-100);}

.mobile-menu .mobile-menu-toggle {
    padding: 15px 10px;
    border-bottom: none;
    border-radius: 10px;
    transition: background .15s;
}
.mobile-menu .mobile-menu-toggle:focus {outline: none;}
.mobile-menu .mobile-menu-toggle:focus-visible {outline: 2px solid #DC4726; outline-offset: -2px;}
.mobile-menu .mobile-menu-toggle:active {background: #f7f7f7;}
.mobile-menu .mobile-menu-toggle span {
    font-size: 16px;
    font-weight: 600;
    color: var(--neutral-900);
    gap: 6px;
}
.mobile-menu .mobile-menu-toggle > svg {
    width: 18px;
    height: 18px;
    color: var(--neutral-400);
    flex-shrink: 0;
}
.mobile-menu .mobile-menu-toggle.primary span {color: var(--primary-color);}
.mobile-menu .mobile-menu-toggle.active > svg {color: var(--neutral-900);}

.mobile-menu .mobile-submenu {gap: 0; padding: 0 6px 12px;}
.mobile-menu .mobile-submenu a {
    padding: 10px 12px;
    border-radius: 8px;
    font-size: 15px;
    line-height: 1.3;
}
.mobile-menu .mobile-submenu a:first-child {font-weight: 600; color: var(--neutral-900);}
.mobile-menu .mobile-submenu a:active {background: #f7f7f7;}

/* ===== Калькулятор дымоходов ===== */
.zb3x-calc__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px 28px;
}
@media (min-width: 960px) {
    .zb3x-calc__grid {
        grid-template-columns: 1fr 1fr;
    }
    .zb3x-calc__block--wide {
        grid-column: 1 / -1;
    }
}

.zb3x-calc__label {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-500);
    margin-bottom: 8px;
}

.zb3x-calc__opts {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.zb3x-calc__opt {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 7px 14px;
    border: 1px solid var(--neutral-200);
    border-radius: 999px;
    background: #fff;
    font-size: 14px;
    line-height: 1.2;
    color: var(--neutral-900);
    cursor: pointer;
    transition: border-color 0.15s, background-color 0.15s, color 0.15s;
}

/* Радиокнопку прячем: состояние показывает сама «таблетка» */
.zb3x-calc__opt input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}

.zb3x-calc__opt:hover {
    border-color: var(--neutral-400);
}

.zb3x-calc__opt:has(input:checked) {
    border-color: var(--primary-color);
    background: rgba(220, 71, 38, 0.07);
    color: var(--primary-color);
    font-weight: 600;
}

.zb3x-calc__opt:has(input:focus-visible) {
    outline: 2px solid var(--primary-color);
    outline-offset: 2px;
}

/* Окраска: чекбокс и выбор цвета в одну строку */
.zb3x-calc__paint {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}
.zb3x-calc__paint select {
    max-width: 220px;
}

/* Карточки подобранных элементов */
.zb3x-calc__card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 12px;
    border: 1px solid var(--neutral-200);
    border-radius: 16px;
    background: #fff;
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}
.zb3x-calc__card:hover {
    border-color: var(--neutral-300, #d8d8d8);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.07);
    transform: translateY(-2px);
}

.zb3x-calc__card-img {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 132px;
    margin-bottom: 12px;
    padding: 8px;
    border-radius: 12px;
    background: #f7f7f8;
    overflow: hidden;
}
.zb3x-calc__card-img img {
    max-height: 116px;
    max-width: 100%;
    width: auto;
    object-fit: contain;
    mix-blend-mode: multiply;
}

/* Метка окраски поверх фото */
.zb3x-calc__badge {
    position: absolute;
    top: 8px;
    left: 8px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: calc(100% - 16px);
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--primary-color);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.zb3x-calc__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.75);
    flex-shrink: 0;
}

.zb3x-calc__card-title {
    font-weight: 600;
    font-size: 15px;
    line-height: 1.25;
    margin-bottom: 2px;
}
.zb3x-calc__card-art {
    font-size: 12px;
    color: var(--neutral-400, #9aa0a6);
    line-height: 1.35;
    word-break: break-word;
}
.zb3x-calc__card-spec {
    margin-top: 6px;
    font-size: 12px;
    line-height: 1.35;
    color: var(--neutral-500);
}
.zb3x-calc__card-bottom {
    margin-top: auto;
    padding-top: 12px;
}
.zb3x-calc__card-price {
    font-size: 19px;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 8px;
}
.zb3x-calc__card-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}
.zb3x-calc__card-actions input {
    width: 58px;
    height: 38px;
    padding: 0 6px;
    text-align: center;
}
.zb3x-calc__card-actions .btn-primary {
    flex: 1;
    height: 38px;
    padding: 0 12px;
    font-size: 14px;
    white-space: nowrap;
}
.zb3x-calc__card-link {
    margin-top: 8px;
    text-align: center;
    font-size: 13px;
}

/* ===== Уведомления UIkit в фирменных цветах =====
   Подключается после uikit.min.css, поэтому !important не нужен */
.uk-notification {
    width: 340px;
}
.uk-notification-message {
    position: relative;
    padding: 13px 34px 13px 46px;
    border: 1px solid var(--neutral-200);
    border-left: 3px solid var(--neutral-400, #9aa0a6);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
    color: var(--neutral-900);
    font-size: 14px;
    line-height: 1.4;
    cursor: default;
}
/* кружок со значком слева */
.uk-notification-message::before {
    content: 'i';
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--neutral-400, #9aa0a6);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    font-style: normal;
    line-height: 1;
}
.uk-notification-message .uk-notification-close {
    top: 12px;
    right: 12px;
    color: var(--neutral-400, #9aa0a6);
}

/* Успех - фирменный оранжевый вместо зелёного */
.uk-notification-message-success {
    border-left-color: var(--primary-color);
    color: var(--neutral-900);
}
.uk-notification-message-success::before {
    content: '\2713';
    background: var(--primary-color);
}

/* Ошибка */
.uk-notification-message-danger {
    border-left-color: #d92d20;
    color: var(--neutral-900);
}
.uk-notification-message-danger::before {
    content: '!';
    background: #d92d20;
}

/* Обычное сообщение */
.uk-notification-message-primary {
    border-left-color: var(--neutral-900);
    color: var(--neutral-900);
}
.uk-notification-message-primary::before {
    background: var(--neutral-900);
}

/* Разбор цены для менеджера (посетителям не отдаётся с сервера) */
.zb3x-calc__formula {
    margin-top: 12px;
    padding: 12px 14px;
    border: 1px dashed var(--neutral-300, #d8d8d8);
    border-radius: 12px;
    background: #fbfbfc;
    font-size: 13px;
}
.zb3x-calc__formula-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-500);
}
.zb3x-calc__formula-badge {
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--neutral-900);
    color: #fff;
    font-size: 10px;
    letter-spacing: 0.02em;
}
.zb3x-calc__formula-sample {
    margin-bottom: 8px;
    color: var(--neutral-500);
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
    font-size: 12px;
}
.zb3x-calc__formula-table {
    width: 100%;
    border-collapse: collapse;
}
.zb3x-calc__formula-table td {
    padding: 4px 0;
    vertical-align: top;
    line-height: 1.35;
}
.zb3x-calc__formula-table td:nth-child(2) {
    width: 70px;
    text-align: right;
    white-space: nowrap;
    color: var(--neutral-500);
}
.zb3x-calc__formula-table td:nth-child(3) {
    width: 110px;
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.zb3x-calc__formula-table tr.is-total td {
    padding-top: 8px;
    border-top: 1px solid var(--neutral-200);
    font-weight: 700;
}
.zb3x-calc__formula-note {
    color: var(--neutral-400, #9aa0a6);
    font-size: 11px;
}

/* Панель «изменить весь комплект» над составом */
.zb3x-calc__bulk {
    margin-bottom: 14px;
    padding: 12px;
    border: 1px solid var(--neutral-200);
    border-radius: 12px;
    background: #fafafb;
}
.zb3x-calc__bulk-head {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--neutral-500);
    margin-bottom: 8px;
}
.zb3x-calc__bulk-row + .zb3x-calc__bulk-row {
    margin-top: 10px;
}
.zb3x-calc__bulk-label {
    font-size: 12px;
    color: var(--neutral-500);
    margin-bottom: 5px;
}
.zb3x-calc__bulk-opts {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}
.zb3x-calc__bulk-opt {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border: 1px solid var(--neutral-200);
    border-radius: 999px;
    background: #fff;
    font-size: 12px;
    line-height: 1.35;
    color: var(--neutral-900);
    cursor: pointer;
    transition: border-color 0.15s, background-color 0.15s, color 0.15s;
}
.zb3x-calc__bulk-opt:hover {
    border-color: var(--neutral-400, #9aa0a6);
}
.zb3x-calc__bulk-opt.is-active {
    border-color: var(--primary-color);
    background: rgba(220, 71, 38, 0.08);
    color: var(--primary-color);
    font-weight: 600;
}
.zb3x-calc__bulk-opt .zb3x-calc__dot {
    border-color: rgba(0, 0, 0, 0.25);
}

/* Блок «комплект сохранён» */
.zb3x-calc__saved {
    margin-top: 12px;
    padding: 14px 16px;
    border: 1px solid rgba(220, 71, 38, 0.35);
    border-radius: 14px;
    background: rgba(220, 71, 38, 0.05);
}
.zb3x-calc__saved-head {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    font-size: 15px;
    color: var(--neutral-900);
}
.zb3x-calc__saved-head span[uk-icon] {
    color: var(--primary-color);
}
.zb3x-calc__saved-code {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
}
.zb3x-calc__saved-value {
    flex: 1;
    padding: 8px 12px;
    border: 1px dashed rgba(220, 71, 38, 0.45);
    border-radius: 10px;
    background: #fff;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--primary-color);
    text-align: center;
    user-select: all;
}
.zb3x-calc__saved-hint {
    margin-top: 8px;
    font-size: 12px;
    line-height: 1.4;
    color: var(--neutral-500);
}
/* Кнопки в столбик: в узкой колонке они одной ширины и не рвут строку */
.zb3x-calc__saved-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 12px;
}
.zb3x-calc__saved-actions .btn-primary,
.zb3x-calc__saved-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-height: 42px;
    padding: 0 14px;
    border-radius: 999px;
    font-size: 14px;
    line-height: 1.2;
    text-align: center;
}
.zb3x-calc__saved-link {
    border: 1px solid var(--neutral-200);
    background: #fff;
    color: var(--neutral-900);
    font-family: inherit;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s;
}
.zb3x-calc__saved-hint a {
    color: var(--primary-color);
}
.zb3x-calc__saved-link:hover {
    border-color: var(--primary-color);
    color: var(--primary-color);
    text-decoration: none;
}

/* Метки конфигурации: тип, размер, сталь, утепление, окраска */
.zb3x-calc__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 8px;
}
.zb3x-calc__tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 8px;
    border-radius: 6px;
    background: #f2f3f5;
    color: var(--neutral-600, #55595e);
    font-size: 11px;
    font-weight: 500;
    line-height: 1.45;
    white-space: nowrap;
}
.zb3x-calc__tag--type {
    background: #eef2ff;
    color: #3b4ea8;
}
.zb3x-calc__tag--size {
    background: #eef7ee;
    color: #3f6b3a;
}
.zb3x-calc__tag--paint {
    background: rgba(220, 71, 38, 0.1);
    color: var(--primary-color);
}
.zb3x-calc__tag .zb3x-calc__dot {
    border-color: rgba(0, 0, 0, 0.2);
}

/* Состав комплекта */
.zb3x-calc__line + .zb3x-calc__line {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--neutral-200);
}
.zb3x-calc__line-head {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.zb3x-calc__line-img {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    padding: 4px;
    border-radius: 8px;
    background: #f7f7f8;
    overflow: hidden;
}
.zb3x-calc__line-img img {
    max-width: 100%;
    max-height: 44px;
    width: auto;
    object-fit: contain;
    mix-blend-mode: multiply;
}
.zb3x-calc__line-info {
    min-width: 0;
    flex: 1 1 auto;
}
.zb3x-calc__line-title {
    font-weight: 600;
    font-size: 14px;
    line-height: 1.3;
}
.zb3x-calc__line-meta {
    font-size: 13px;
    color: var(--neutral-500);
}
.zb3x-calc__line-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
    flex-wrap: wrap;
}
.zb3x-calc__line-row input {
    width: 64px;
    text-align: center;
}
.zb3x-calc__totals {
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid var(--neutral-200);
}
.zb3x-calc__total {
    font-size: 20px;
    font-weight: 700;
    margin-top: 4px;
}

/* Каталог: списочный вид карточек (переключатель вида) */
#mse2_results.products-list > * {
    width: 100%;
}
#mse2_results.products-list .catalog-banner-wrapper {
    width: 100%;
}
.catalog-view-btn {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
}

/* Раздел «Видео»: плеер на странице ролика и заглушка карточки без обложки */
.video-single-player {
    position: relative;
    width: 100%;
    max-width: 900px;
    aspect-ratio: 16 / 9;
    margin-bottom: 24px;
    border-radius: 12px;
    overflow: hidden;
    background: #000;
}
.video-single-player iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
.video-card-image--empty {
    width: 100%;
    aspect-ratio: 16 / 9;
    background: var(--neutral-100, #f1f5f9);
}

/* Статья справочника: обложка над текстом */
.article-cover {
    margin: 0 0 24px 0;
    max-width: 720px;
}
.article-cover img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 12px;
}

/* Собственное производство: карточка камня в каталоге */
.stone-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    height: 100%;
    padding: 12px;
    border: 1px solid var(--neutral-200);
    border-radius: 16px;
    text-decoration: none;
    transition: border-color 0.2s;
}
.stone-card:hover {
    border-color: var(--neutral-400);
}
.stone-card__img {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    aspect-ratio: 1 / 1;
    background: var(--neutral-100, #f1f5f9);
}
.stone-card__img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s;
}
.stone-card:hover .stone-card__img img {
    transform: scale(1.06);
}
.stone-card__img-empty {
    width: 100%;
    height: 100%;
}
.stone-card__title {
    font-size: 15px;
    font-weight: 500;
    line-height: 1.35;
    color: var(--neutral-900);
    text-align: center;
    transition: color 0.2s;
}
.stone-card:hover .stone-card__title {
    color: var(--primary-color);
}

/* Собственное производство: страница камня */
.stone-page {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}
.stone-page__note {
    margin-top: 16px;
    padding: 14px 16px;
    border-radius: 12px;
    background: var(--neutral-50, #f8fafc);
    font-size: 14px;
    line-height: 1.6;
    color: var(--text-body);
}
.stone-page__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 20px;
}
.stone-photo {
    display: block;
    overflow: hidden;
    border-radius: 12px;
}
.stone-photo img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}

@media (min-width: 960px) {
    .stone-page {
        grid-template-columns: 1.2fr 1fr;
        gap: 40px;
        align-items: start;
    }
}

/* Список городов доставки (страница «Доставка по городам») */
.cities-list {
    margin-top: 24px;
}
.cities-list__group {
    padding: 14px 0;
    border-top: 1px solid var(--neutral-200);
}
.cities-list__group:first-child {
    border-top: none;
}
.cities-list__letter {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--primary-color);
    margin-bottom: 6px;
}
.cities-list__items {
    font-size: 14px;
    line-height: 1.7;
    color: var(--text-body);
}
.cities-list__items b {
    color: var(--neutral-900);
}

/* ============================================================
   Страница 404: крупный «остывший» код ошибки, поиск и разделы
   ============================================================ */
.e404 {
    padding-top: 32px;
}
.e404__hero {
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px;
    align-items: center;
    padding: 28px 20px;
    border: 1px solid var(--neutral-200);
    border-radius: 20px;
    background:
        radial-gradient(120% 140% at 0% 0%, rgba(234, 88, 12, 0.10) 0%, rgba(234, 88, 12, 0) 55%),
        var(--neutral-50, #f8fafc);
}
.e404__code {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 92px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.04em;
    color: var(--neutral-900);
}
.e404__ember {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 84px;
    height: 84px;
    border-radius: 50%;
    background: radial-gradient(circle at 50% 65%, #fb923c 0%, var(--primary-color) 55%, #7c2d12 100%);
    box-shadow: 0 12px 30px rgba(234, 88, 12, 0.35);
}
.e404__ember svg {
    width: 44px;
    height: 44px;
    color: #fff7ed;
}
.e404__title {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--neutral-900);
    margin: 0 0 12px 0;
}
.e404__lead {
    font-size: 16px;
    line-height: 1.6;
    color: var(--text-body);
    margin: 0 0 8px 0;
}
.e404__hint {
    font-size: 14px;
    color: var(--neutral-500, #64748b);
    margin: 0 0 20px 0;
}
.e404__search {
    max-width: 560px;
    margin-bottom: 20px;
}
.e404__search .mse-form {
    position: relative;
}
.e404__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.e404__links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 24px;
}
.e404__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 16px;
    border: 1px solid var(--neutral-200);
    border-radius: 14px;
    font-size: 15px;
    font-weight: 500;
    color: var(--neutral-900);
    text-decoration: none;
    background: #fff;
    transition: border-color 0.2s, color 0.2s, transform 0.2s;
}
.e404__link svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    color: var(--neutral-400, #94a3b8);
    transition: color 0.2s, transform 0.2s;
}
.e404__link:hover {
    border-color: var(--primary-color);
    color: var(--primary-color);
    transform: translateY(-2px);
}
.e404__link:hover svg {
    color: var(--primary-color);
    transform: translateX(3px);
}
.e404__link--accent {
    border-color: rgba(234, 88, 12, 0.35);
    background: rgba(234, 88, 12, 0.06);
}

@media (min-width: 640px) {
    .e404__code {
        font-size: 120px;
    }
    .e404__links {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 960px) {
    .e404__hero {
        grid-template-columns: minmax(280px, 380px) 1fr;
        gap: 48px;
        padding: 48px 40px;
    }
    .e404__code {
        font-size: 150px;
    }
    .e404__title {
        font-size: 36px;
    }
    .e404__links {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

/* --- Документы карточки товара (сниппет zb3x.docs, чанки zb3x.pr.doc*) --- */
.product-docs {position: relative;}
.product-docs__head {max-width: 640px; margin-bottom: 24px;}
.product-docs__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--primary-color, #DC4726);
}
.product-docs__dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--primary-color, #DC4726);
    box-shadow: 0 0 0 4px var(--primary-light, #FEE7E2);
}
.product-docs__title {
    margin: 0 0 8px;
    font-family: 'Onest', sans-serif;
    font-size: 28px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--text-dark, #171717);
}
.product-docs__note {margin: 0; font-size: 15px; line-height: 1.5; color: var(--neutral-500, #737373);}
.product-docs__groups {display: flex; flex-direction: column; gap: 28px;}
.product-docs__group-head {display: flex; align-items: center; gap: 10px; margin-bottom: 14px;}
.product-docs__group-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 36px;
    height: 36px;
    border-radius: 12px;
    background: var(--primary-light, #FEE7E2);
    color: var(--primary-color, #DC4726);
}
.product-docs__group-icon .icon {width: 18px; height: 18px; fill: currentColor;}
.product-docs__group-title {
    font-family: 'Onest', sans-serif;
    font-size: 17px;
    font-weight: 600;
    color: var(--text-dark, #171717);
}
.product-docs__group-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 7px;
    border-radius: 999px;
    background: var(--neutral-100, #f5f5f5);
    font-size: 12px;
    font-weight: 600;
    color: var(--neutral-500, #737373);
}
.product-docs__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 12px;
}

.doc-card {
    --doc-bg: var(--neutral-100, #f5f5f5);
    --doc-fg: var(--neutral-600, #525252);
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 14px;
    border: 1px solid var(--neutral-200, #e5e5e5);
    border-radius: 18px;
    background: #fff;
    text-decoration: none;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.doc-card:hover {
    border-color: var(--primary-color, #DC4726);
    box-shadow: 0 10px 26px rgba(220, 71, 38, .10);
    transform: translateY(-2px);
    text-decoration: none;
}
.doc-card--pdf {--doc-bg: #FDECE8; --doc-fg: #DC4726;}
.doc-card--doc {--doc-bg: #E8F0FE; --doc-fg: #1A73E8;}
.doc-card--xls {--doc-bg: #E6F4EA; --doc-fg: #137333;}
.doc-card--zip {--doc-bg: #F0F0F0; --doc-fg: #5F6368;}
.doc-card--image {--doc-bg: #F3EEFF; --doc-fg: #6D28D9;}
.doc-card__sheet {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 46px;
    height: 58px;
    overflow: hidden;
    border-radius: 10px;
    background: var(--doc-bg);
    color: var(--doc-fg);
}
.doc-card__sheet::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 16px;
    height: 16px;
    background: linear-gradient(225deg, #fff 0 50%, transparent 50%);
    opacity: .6;
}
.doc-card__sheet--thumb {background: var(--neutral-100, #f5f5f5);}
.doc-card__ext {font-size: 11px; font-weight: 700; letter-spacing: .04em;}
.doc-card__thumb {width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply;}
.doc-card__body {display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1 1 auto;}
.doc-card__name {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.35;
    color: var(--text-dark, #171717);
}
.doc-card:hover .doc-card__name {color: var(--primary-color, #DC4726);}
.doc-card__meta {font-size: 13px; color: var(--neutral-500, #737373);}
.doc-card__go {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 34px;
    height: 34px;
    border: 1px solid var(--neutral-200, #e5e5e5);
    border-radius: 50%;
    color: var(--neutral-400, #a3a3a3);
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.doc-card:hover .doc-card__go {
    border-color: var(--primary-color, #DC4726);
    background: var(--primary-color, #DC4726);
    color: #fff;
}

@media (max-width: 767px) {
    .product-docs__title {font-size: 22px;}
    .product-docs__grid {grid-template-columns: 1fr;}
    .doc-card {gap: 12px; padding: 10px 12px; border-radius: 16px;}
    .doc-card__sheet {width: 40px; height: 50px;}
}

/* --- Кнопки над галереей товара: видео и чертёж (zb3x.vlinks, zb3x.draw) --- */
.product-gallery-action-btn--video {
    background: var(--primary-color, #DC4726);
    border-color: var(--primary-color, #DC4726);
    color: #fff;
    box-shadow: 0 0 0 6px rgba(220, 71, 38, .18);
}
.product-gallery-action-btn--video:hover {
    background: #c73d1f;
    border-color: #c73d1f;
    color: #fff;
    box-shadow: 0 0 0 8px rgba(220, 71, 38, .24);
}
.product-gallery-action-btn--draw {
    background: var(--neutral-900, #171717);
    border-color: var(--neutral-900, #171717);
    color: #fff;
}
.product-gallery-action-btn--draw:hover {background: #000; color: #fff;}

/* --- Вкладка «Видео» карточки (сниппет zb3x.vlist, чанки zb3x.pr.vid*) --- */
.product-videos {position: relative;}
.product-videos__head {max-width: 640px; margin-bottom: 20px;}
.product-videos__title {
    margin: 0 0 8px;
    font-family: 'Onest', sans-serif;
    font-size: 28px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--text-dark, #171717);
}
.product-videos__note {margin: 0; font-size: 15px; line-height: 1.5; color: var(--neutral-500, #737373);}
.product-videos__groups {display: flex; flex-direction: column; gap: 26px;}
.product-videos__group-head {display: flex; align-items: center; gap: 10px; margin-bottom: 14px;}
.product-videos__badge {
    display: inline-flex;
    align-items: center;
    height: 26px;
    padding: 0 12px;
    border-radius: 999px;
    background: var(--neutral-900, #171717);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
}
.product-videos__group--rutube .product-videos__badge {background: #14191f;}
.product-videos__group--youtube .product-videos__badge {background: #ff0033;}
.product-videos__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 7px;
    border-radius: 999px;
    background: var(--neutral-100, #f5f5f5);
    font-size: 12px;
    font-weight: 600;
    color: var(--neutral-500, #737373);
}
.product-videos__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 16px;
}

.video-tile {display: flex; flex-direction: column; gap: 10px; text-decoration: none;}
.video-tile:hover {text-decoration: none;}
.video-tile__cover {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 16px;
    background: var(--neutral-100, #f5f5f5);
    aspect-ratio: 16 / 9;
}
.video-tile__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}
.video-tile:hover .video-tile__img {transform: scale(1.04);}
.video-tile__play {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin: -24px 0 0 -24px;
    border-radius: 50%;
    background: var(--primary-color, #DC4726);
    color: #fff;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .25);
    transition: transform .2s ease;
}
.video-tile__play svg {width: 18px; height: 18px; fill: currentColor;}
.video-tile:hover .video-tile__play {transform: scale(1.08);}
.video-tile__name {
    font-size: 14px;
    line-height: 1.35;
    color: var(--text-dark, #171717);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.video-tile:hover .video-tile__name {color: var(--primary-color, #DC4726);}

@media (max-width: 767px) {
    .product-videos__title {font-size: 22px;}
    .product-videos__grid {grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px;}
}

/* --- Быстрые ссылки категории (mFilterNav, чанки zb3x.c.nav.*) --- */
.catalog-nav-title {
    margin-bottom: 12px;
    font-family: 'Onest', sans-serif;
    font-size: 17px;
    font-weight: 600;
    color: var(--text-dark, #171717);
}
.catalog-categories-grid:empty {display: none;}
.catalog-tags--collapsed {
    max-height: 84px;
    overflow: hidden;
}
.catalog-tag--active {
    border-color: var(--primary-color, #DC4726);
    color: var(--primary-color, #DC4726);
}

/* --- Корзина на стандартном minishop3 (шаблон zb3x.cart2, чанки zb3x.cart2.*).
       Всё под скоупом .cart2 — компактная версия макета, старая корзина zb3x.cart не затрагивается. --- */
.cart2.cart-section {margin: 24px 0 48px;}
.cart2 .cart-content {gap: 16px;}
.cart2 .cart-header {gap: 12px; align-items: baseline;}
.cart2 .cart-title {font-size: 22px;}
.cart2 .cart-count-badge {padding: 3px 10px; font-size: 13px;}
.cart2 .cart-header .ms3_form {margin-left: auto;}
.cart2 .cart-header .btn-cart {padding: 7px 14px; font-size: 13px; border-radius: 8px;}
.cart2 .cart-grid {gap: 24px;}

/* Позиции */
.cart2 .cart-items-list {gap: 8px;}
.cart2 .cart-item {padding: 10px 12px; gap: 12px; border-radius: 12px;}
.cart2 .cart-item-content {gap: 12px;}
.cart2 .cart-item-image-wrap,
.cart2 .cart-item-image {width: 72px; height: 72px; border-radius: 10px;}
.cart2 .cart-item-info {gap: 8px;}
.cart2 .cart-item-details {gap: 4px;}
.cart2 .cart-item-title {font-size: 14px; line-height: 1.35; max-width: 320px;}
.cart2 .cart-item-options {font-size: 12px; color: var(--neutral-500, #737373);}
.cart2 .cart-item-option {line-height: 1.4;}
.cart2 .cart-item-action-btn {font-size: 13px;}
.cart2 .cart-item-action-btn svg {width: 16px; height: 16px;}
.cart2 .cart-item-price-block {gap: 6px; align-items: flex-end;}
.cart2 .cart-item-price-current {font-size: 16px;}
.cart2 .cart-item-price-old {font-size: 13px;}
.cart2 .cart-item-quantity {gap: 6px;}
.cart2 .cart-item-quantity .quantity-btn {width: 28px; height: 28px;}
.cart2 .cart-item-quantity .quantity-btn svg {width: 14px; height: 14px;}
.cart2 .cart-item-quantity .quantity-input {width: 48px; padding: 5px 6px; font-size: 14px; border-radius: 8px;}

/* Оформление заказа */
.cart2 .cart-checkout {gap: 24px; margin-top: 24px;}
.cart2 .cart-checkout .ms3_order_form {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.cart2 .cart-checkout-section {gap: 12px;}
.cart2 .cart-checkout-header {padding-bottom: 10px;}
.cart2 .cart-checkout-title {font-size: 16px; font-weight: 600;}
.cart2 .form-input {padding: 9px 14px; font-size: 14px; border-radius: 10px;}
.cart2 .form-textarea {min-height: 76px;}
.cart2 .cart-delivery-options {gap: 10px;}
.cart2 .cart-delivery-option,
.cart2 .cart-payment-option {padding: 10px 12px; gap: 12px; border-radius: 10px;}
.cart2 .cart-delivery-info,
.cart2 .cart-payment-info {gap: 2px;}
.cart2 .cart-delivery-name,
.cart2 .cart-payment-name {font-size: 14px;}
.cart2 .cart-delivery-price,
.cart2 .cart-payment-note {font-size: 12px; line-height: 1.4;}
.cart2 .form-radio {width: 16px; height: 16px; flex-shrink: 0;}
.cart2 .cart-delivery-address {margin-top: 12px;}
.cart2 .cart-delivery-fields {gap: 10px;}
.cart2 .cart-fields-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 10px;
}
.cart2 .cart-recipient-form {gap: 10px;}
.cart2 .cart-recipient-contacts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
}
.cart2 .cart-payment-options {gap: 10px;}
.cart2 .cart-payment-note {display: block;}
.cart2 .cart-checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--text-body, #171717);
    cursor: pointer;
}
.cart2 .cart-submit-section {gap: 12px;}
.cart2 .cart-privacy-text {font-size: 12px; line-height: 1.4;}
.cart2 .cart-submit-form .btn-primary {width: 100%; padding: 12px 24px; font-size: 15px;}

/* Ошибки валидации ms3 */
.cart2 .invalid-feedback {margin-top: 4px; font-size: 12px; color: #ef4444;}
.cart2 .invalid-feedback:empty {display: none;}
.cart2 .form-input.is-invalid,
.cart2 .form-input.ms3_field_error,
.cart2 .form-input[data-ms3-error] {border-color: #ef4444;}

/* Сводка */
.cart2 .cart-summary {padding: 14px 16px; gap: 12px; border-radius: 12px;}
.cart2 .cart-summary-title {font-size: 15px; font-weight: 600;}
.cart2 .cart-summary-list {gap: 8px;}
.cart2 .cart-summary-item {font-size: 13px;}
.cart2 .cart-summary-label-with-tooltip svg {width: 16px; height: 16px;}
.cart2 .cart-summary-value--note {font-weight: 500; font-size: 13px; color: var(--neutral-500, #737373);}
.cart2 .cart-summary-total {padding-top: 12px;}
.cart2 .cart-summary-total-label {font-size: 14px;}
.cart2 .cart-summary-total-value {font-size: 18px;}

/* «Спасибо за заказ» — вывод msGetOrder на той же странице (?msorder=) */
.cart2 .cart-done {display: flex; flex-direction: column; gap: 16px;}
.cart2 .cart-done-lead {margin: 0; font-size: 14px; color: var(--text-body, #171717);}
.cart2 .cart-done-grid {display: grid; grid-template-columns: 1fr; gap: 16px;}
.cart2 .cart-done-info {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid var(--neutral-200, #ececec);
    border-radius: 12px;
}
.cart2 .cart-done-label {font-size: 12px; color: var(--neutral-500, #737373);}
.cart2 .cart-done-value {font-size: 14px; font-weight: 500; line-height: 1.45; color: var(--neutral-900, #171717);}
.cart2 .cart-done-actions {display: flex; flex-wrap: wrap; gap: 12px; align-items: center;}
.cart2 .cart-done-actions .btn-primary {width: auto; padding: 11px 22px; font-size: 14px;}

@media (max-width: 1279px) {
    .cart2 .cart-summary-col {display: block;}
    .cart2 .cart-summary-sticky {position: static;}
}
@media (min-width: 768px) {
    .cart2 .cart-done-grid {grid-template-columns: 3fr 5fr;}
    .cart2 .cart-item-action-text {display: block;}
}
@media (min-width: 1280px) {
    .cart2 .cart-grid {grid-template-columns: minmax(0, 5fr) minmax(0, 3fr); gap: 32px;}
    .cart2 .cart-title {font-size: 24px;}
}

/* --- Уведомления iziToast (miniShop3, ms3Favorites) в фирменных цветах.
       Их CSS регистрируется через regClientCSS и грузится ПОСЛЕ этого файла,
       поэтому селекторы усилены префиксом body. --- */
body .iziToast {
    font-family: 'VelaSans', sans-serif;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(23, 23, 23, .12);
}
body .iziToast.iziToast-color-green,
body .iziToast.iziToast-color-blue {
    background: #fff;
    border-color: var(--neutral-200, #ececec);
    border-left: 4px solid var(--primary-color, #DC4726);
}
body .iziToast.iziToast-color-green > .iziToast-progressbar > div,
body .iziToast.iziToast-color-blue > .iziToast-progressbar > div {
    background: var(--primary-color, #DC4726);
}
body .iziToast.iziToast-color-green > .iziToast-body .iziToast-icon.ico-success,
body .iziToast.iziToast-color-blue > .iziToast-body .iziToast-icon.ico-info {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23DC4726' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='4 12.5 9.5 18 20 6'/%3E%3C/svg%3E") no-repeat center;
    background-size: 80%;
}
body .iziToast > .iziToast-body .iziToast-title,
body .iziToast > .iziToast-body .iziToast-message {
    color: var(--neutral-900, #171717);
    font-size: 14px;
}
body .iziToast > .iziToast-close {opacity: .55;}
body .iziToast > .iziToast-close:hover {opacity: 1;}
body .uk-notification-message-success {color: var(--primary-color, #DC4726);}

/* --- Правовые страницы (политика конфиденциальности, оферта): шаблон zb3x.legal.
       Текст приезжает из CKEditor голыми h2/h3/ul/ol, в теме такие теги внутри
       .prose не оформлены - здесь колонка нормальной ширины и ритм заголовков --- */
.legal-page {max-width: 900px;}
.legal-page__title {margin-bottom: 24px;}
.legal-page__text {color: var(--neutral-700, #3f3f46);}
.legal-page__text h2 {margin: 32px 0 12px; font-size: 24px; line-height: 1.3; font-weight: 600;}
.legal-page__text h3 {margin: 24px 0 10px; font-size: 19px; line-height: 1.35; font-weight: 600;}
.legal-page__text h2:first-child,
.legal-page__text h3:first-child {margin-top: 0;}
.legal-page__text p {margin: 0 0 14px;}
.legal-page__text ul,
.legal-page__text ol {margin: 0 0 14px; padding-left: 22px;}
.legal-page__text ul ul,
.legal-page__text ol ol,
.legal-page__text ul ol,
.legal-page__text ol ul {margin: 8px 0 8px;}
.legal-page__text li {margin-bottom: 6px;}
.legal-page__text li:last-child {margin-bottom: 0;}
.legal-page__text table {width: 100%; margin: 0 0 18px; border-collapse: collapse;}
.legal-page__text th,
.legal-page__text td {padding: 8px 12px; border: 1px solid var(--neutral-200, #e4e4e7); text-align: left; vertical-align: top;}
@media (max-width: 639px) {
    .legal-page__text h2 {font-size: 21px;}
    .legal-page__text h3 {font-size: 17px;}
}
