/* ==========================================================================
   wa-v2.css — единая дизайн-система для новых страниц товара и оформления заказа
   Тема: Modus (Webasyst Shop-Script). Интеграция макетов allflow.ru.
   НЕ затрагивает header.html / footer.html — стилизованы только .product и
   .wa-order-form-wrapper (и новые компоненты с префиксом .wv2-*).

   Правила (согласованы):
   - Единая светлая палитра «ботаника»: оливка #65804d + белый.
   - Шрифт: Inter (уже есть в теме, fonts.html option 11).
   - Типографика: шкала ниже (--wv2-fs-*), базовый 14px как в теме.
   - Все брендовые акценты вынесены в переменные ниже — легко подключить к админке.
   ========================================================================== */

:root {
    /* --- Цвета (унифицировано из макета корзины) --- */
    --wv2-primary: #65804d;          /* оливка — основной брендовый */
    --wv2-primary-dark: #536b3e;     /* оливка hover */
    --wv2-primary-light: #f4f7f1;
    --wv2-primary-subtle: #eef3e8;
    --wv2-accent: #13A89E;           /* бирюза — вторичный акцент (CTA, бейджи) */
    --wv2-accent-dark: #0E8B83;
    --wv2-text: #111827;
    --wv2-text-muted: #6B7280;
    --wv2-text-soft: #9CA3AF;
    --wv2-border: #E5E7EB;
    --wv2-border-muted: #D1D5DB;
    --wv2-surface: #FFFFFF;
    --wv2-bg: #f9fafb;
    --wv2-surface-subtle: #F6F7F7;
    --wv2-error: #dc2626;
    --wv2-success: #059669;

    /* --- Типографика (Inter) --- */
    --wv2-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
    /* Mobile-first: заголовки резиновые (clamp), текст не ниже 12px.
       На ≥1024px текстовые токены возвращаются к десктопным значениям (см. ниже). */
    --wv2-fs-hero: clamp(30px, 3vw + 18px, 40px);
    --wv2-fs-h1: clamp(24px, 2vw + 16px, 30px);
    --wv2-fs-h2: clamp(20px, 1vw + 14px, 22px);
    --wv2-fs-h3: clamp(17px, .5vw + 14px, 18px);
    --wv2-fs-price: clamp(22px, 1.6vw + 16px, 28px);
    --wv2-fs-body-lg: 16px;
    --wv2-fs-body: 15px;
    --wv2-fs-body-sm: 14px;
    --wv2-fs-label: 13px;
    --wv2-fs-caption: 12px;
    --wv2-tap: 44px;                 /* минимальная зона нажатия */

    /* --- Скругления --- */
    --wv2-r-sm: 4px;
    --wv2-r-md: 8px;
    --wv2-r-lg: 12px;
    --wv2-r-xl: 16px;
    --wv2-r-full: 9999px;

    /* --- Тени (низкий контраст, без тяжёлых blur) --- */
    --wv2-shadow-1: 0 4px 16px -2px rgba(17, 24, 39, 0.05);
    --wv2-shadow-2: 0 12px 32px -4px rgba(17, 24, 39, 0.08);
}
@media (min-width: 1024px) {
    :root {
        --wv2-fs-body: 14px;
        --wv2-fs-body-sm: 13px;
        --wv2-fs-label: 12px;
        --wv2-fs-caption: 11px;
    }
}

/* ==========================================================================
   БАЗОВЫЕ УТИЛИТЫ (новые компоненты, префикс .wv2-)
   ========================================================================== */
.wv2-container { max-width: 1340px; margin: 0 auto; padding: 0 16px; }
@media (min-width: 640px)  { .wv2-container { padding: 0 24px; } }
@media (min-width: 1024px) { .wv2-container { padding: 0 32px; } }

.wv2-badge {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: var(--wv2-fs-caption); font-weight: 600; line-height: 1;
    padding: 5px 10px; border-radius: var(--wv2-r-full);
    background: rgba(19,168,158,.10); color: var(--wv2-accent);
}
.wv2-badge--olive { background: var(--wv2-primary-subtle); color: var(--wv2-primary-dark); }
.wv2-badge--stock { background: #ecfdf5; color: var(--wv2-success); border: 1px solid #a7f3d0; }

.wv2-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    font-family: var(--wv2-font); font-weight: 600; font-size: var(--wv2-fs-body);
    padding: 12px 18px; border-radius: var(--wv2-r-lg); cursor: pointer;
    border: 1px solid transparent; transition: background .2s, color .2s, border-color .2s, transform .1s;
    text-decoration: none; line-height: 1.2;
}
.wv2-btn:active { transform: scale(.99); }
.wv2-btn--primary { background: var(--wv2-primary); color: #fff; }
.wv2-btn--primary:hover { background: var(--wv2-primary-dark); color: #fff; }
.wv2-btn--accent { background: var(--wv2-accent); color: #fff; }
.wv2-btn--accent:hover { background: var(--wv2-accent-dark); color: #fff; }
.wv2-btn--outline { background: #fff; color: var(--wv2-primary); border-color: var(--wv2-primary); }
.wv2-btn--outline:hover { background: var(--wv2-primary-light); }
.wv2-btn--ghost { background: transparent; color: var(--wv2-text-muted); }
.wv2-btn--ghost:hover { background: var(--wv2-surface-subtle); color: var(--wv2-text); }
.wv2-btn--block { width: 100%; }
.wv2-btn--lg { padding: 16px 22px; font-size: var(--wv2-fs-body-lg); }

/* Степпер количества (переиспользуется) */
.wv2-stepper {
    display: inline-flex; align-items: center;
    border: 1px solid var(--wv2-border-muted); border-radius: var(--wv2-r-md);
    background: #fff; overflow: hidden;
}
.wv2-stepper button {
    width: 32px; height: 36px; border: 0; background: transparent; cursor: pointer;
    color: var(--wv2-text-muted); font-size: 16px; line-height: 1; transition: background .15s, color .15s;
}
.wv2-stepper button:hover { background: var(--wv2-surface-subtle); color: var(--wv2-text); }
.wv2-stepper input {
    width: 34px; height: 36px; border: 0; text-align: center; font-weight: 700;
    font-size: var(--wv2-fs-body-sm); color: var(--wv2-text); background: #fff;
}

/* Хлебные крошки */
.wv2-breadcrumbs { margin: 0 0 20px; }
.wv2-breadcrumbs ol {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    list-style: none; margin: 0; padding: 0; font-size: var(--wv2-fs-label); color: var(--wv2-text-soft);
}
.wv2-breadcrumbs a { color: var(--wv2-text-soft); text-decoration: none; transition: color .15s; }
.wv2-breadcrumbs a:hover { color: var(--wv2-primary); }
.wv2-breadcrumbs .sep { color: var(--wv2-border-muted); }
.wv2-breadcrumbs .current { color: var(--wv2-text); font-weight: 500; }

/* Карточка-преимущество */
.wv2-advantage {
    display: flex; align-items: flex-start; gap: 14px;
    background: #FAF9F6; border: 1px solid rgba(229,231,235,.8);
    border-radius: var(--wv2-r-lg); padding: 16px; transition: border-color .2s;
}
.wv2-advantage:hover { border-color: rgba(101,128,77,.5); }
.wv2-advantage__icon {
    width: 40px; height: 40px; flex-shrink: 0; border-radius: var(--wv2-r-lg);
    background: rgba(101,128,77,.10); color: var(--wv2-primary);
    display: flex; align-items: center; justify-content: center;
}
.wv2-advantage h4 { margin: 0 0 2px; font-size: var(--wv2-fs-label); font-weight: 700; color: var(--wv2-text); }
.wv2-advantage p { margin: 0; font-size: var(--wv2-fs-caption); line-height: 1.5; color: var(--wv2-text-muted); }

/* ==========================================================================
   СТРАНИЦА ТОВАРА (.product) — переверстка под макет
   ========================================================================== */
.product,
.wv2-modal,
.wv2-advantages,
.wa-order-form-wrapper {
    font-family: var(--wv2-font);
    color: var(--wv2-text);
}

/* Контейнер и сетка верхней части */
#js-product-page .product > .row {
    display: flex; flex-wrap: wrap; gap: 32px;
    max-width: 1340px; margin: 0 auto; padding: 16px 16px 64px;
}
@media (min-width: 640px)  { #js-product-page .product > .row { padding: 16px 24px 64px; } }
@media (min-width: 1024px) { #js-product-page .product > .row { padding: 16px 32px 64px; } }
#js-product-page .product > .row > .col-6-lg:first-child { flex: 0 0 calc(58.333% - 16px); max-width: calc(58.333% - 16px); min-width: 0; }
#js-product-page .product > .row > .col-6-lg:last-child  { flex: 0 0 calc(41.667% - 16px); max-width: calc(41.667% - 16px); min-width: 0; }
/* Колонки карточки: у темы на .row > div стоят боковые margin (по 20px) — обнуляем, отступ даёт gap */
#js-product-page .product > .row > .col-6-lg { margin: 0 !important; }
@media (max-width: 1023px) {
    #js-product-page .product > .row > .col-6-lg:first-child,
    #js-product-page .product > .row > .col-6-lg:last-child { flex: 1 1 100%; max-width: 100%; }
}

/* Галерея */
.product__gallery-image { border-radius: var(--wv2-r-xl); overflow: hidden; background: var(--wv2-surface-subtle); border: 1px solid var(--wv2-border); }
.product__gallery-image img { display: block; width: 100%; height: 480px; object-fit: cover; }
@media (min-width: 640px)  { .product__gallery-image img { height: 520px; } }
@media (min-width: 1024px) { .product__gallery-image img { height: 580px; } }
.product__gallery__more-images { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.product__gallery__more-images .image { width: 72px; height: 72px; border-radius: var(--wv2-r-lg); overflow: hidden; border: 2px solid transparent; cursor: pointer; }
.product__gallery__more-images .image img { width: 100%; height: 100%; object-fit: cover; }
.product__gallery__more-images .image.selected { border-color: var(--wv2-primary); }
.product__gallery__more-images .image:hover { opacity: .9; }

/* Заголовок и цена */
.product__price-block__header.category-name {
    font-size: var(--wv2-fs-h1); font-weight: 700; line-height: 1.3;
    margin: 0 0 8px; color: var(--wv2-text); letter-spacing: -.01em;
}
.product__articul { font-size: var(--wv2-fs-label); color: var(--wv2-text-muted); margin-bottom: 6px; }
.product__articul span { color: var(--wv2-text); font-weight: 600; }

.rating-block { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; font-size: var(--wv2-fs-label); color: var(--wv2-text-muted); }
.rating-block .rating i, .rating-block .rating .icon16 { color: #f59e0b; }
.rating-block .review-count { color: var(--wv2-text-muted); }

/* Блок цены */
.product__price-block { background: var(--wv2-surface-subtle); border: 1px solid var(--wv2-border); border-radius: var(--wv2-r-xl); padding: 20px; }
.show-price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.show-price .price { font-size: var(--wv2-fs-h1); font-weight: 800; color: var(--wv2-text); letter-spacing: -.02em; }
.show-price .compare-at-price { font-size: var(--wv2-fs-body); color: var(--wv2-text-soft); text-decoration: line-through; }
.product__bonus-info { font-size: var(--wv2-fs-caption); color: var(--wv2-success); margin-bottom: 14px; }

/* Наличие */
.stocks { font-size: var(--wv2-fs-body-sm); margin-bottom: 12px; }
.stocks .stock-high { color: var(--wv2-success); }
.stocks .stock-low, .stocks .stock-critical { color: #b45309; }
.stocks .stock-none { color: var(--wv2-error); }

/* Опции SKU / селекты */
.options { margin-bottom: 14px; }
.options .name, .options label.name { font-size: var(--wv2-fs-label); font-weight: 600; color: var(--wv2-text); margin-bottom: 6px; display: block; }
.options .inline-select { margin-bottom: 12px; }
.options .inline-select a {
    display: inline-block; min-width: 34px; padding: 7px 12px; margin: 0 6px 6px 0;
    border: 1px solid var(--wv2-border-muted); border-radius: var(--wv2-r-md); cursor: pointer;
    font-size: var(--wv2-fs-body-sm); color: var(--wv2-text); text-decoration: none; transition: all .15s;
}
.options .inline-select a.selected { border-color: var(--wv2-primary); background: var(--wv2-primary-subtle); color: var(--wv2-primary-dark); font-weight: 600; }
.options select.sku-feature {
    width: 100%; padding: 10px 12px; border: 1px solid var(--wv2-border-muted); border-radius: var(--wv2-r-md);
    font-size: var(--wv2-fs-body); color: var(--wv2-text); background: #fff;
}

/* SKU radio */
ul.skus { list-style: none; margin: 0 0 14px; padding: 0; }
ul.skus li { margin-bottom: 8px; }
ul.skus label { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid var(--wv2-border); border-radius: var(--wv2-r-md); cursor: pointer; font-size: var(--wv2-fs-body-sm); }
ul.skus label:hover { border-color: var(--wv2-primary); }
ul.skus input:checked + span { font-weight: 700; }

/* Сервисы */
.services { margin-bottom: 14px; font-size: var(--wv2-fs-body-sm); }
.services .checkbox { display: flex; align-items: center; gap: 8px; }
.services select.service-variants {
    width: 100%; padding: 8px 10px; margin-top: 6px; border: 1px solid var(--wv2-border-muted);
    border-radius: var(--wv2-r-md); font-size: var(--wv2-fs-body-sm); background: #fff;
}

/* Кнопки: количество + в корзину + избранное */
.product__purchase { margin-top: 4px; }
.product__button.add2cart { display: flex; align-items: stretch; gap: 10px; flex-wrap: wrap; }
.product__button__qty__inner {
    display: inline-flex; align-items: center; height: 48px;
    border: 1px solid var(--wv2-border-muted); border-radius: var(--wv2-r-md); background: #fff; overflow: hidden;
}
.product__button__qty__inner button {
    width: 38px; height: 100%; border: 0; background: transparent; cursor: pointer; color: var(--wv2-text-muted); font-size: 16px;
}
.product__button__qty__inner button:hover { background: var(--wv2-surface-subtle); color: var(--wv2-text); }
.product__button__qty__inner input.product__button__qty-value {
    width: 44px; height: 100%; border: 0; text-align: center; font-weight: 700; font-size: var(--wv2-fs-body); color: var(--wv2-text);
}
.product__button__btn { flex: 1 1 180px; }
.product__button__btn .btn {
    width: 100%; height: 48px; display: flex; align-items: center; justify-content: center; gap: 8px;
    background: var(--wv2-primary-dark); color: #fff; border: 0; border-radius: var(--wv2-r-lg);
    font-family: var(--wv2-font); font-weight: 700; font-size: var(--wv2-fs-body-lg); cursor: pointer; transition: background .2s;
}
.product__button__btn .btn:hover { background: var(--wv2-primary); }
.product__button__btn .btn.disabled { background: var(--wv2-border-muted); cursor: not-allowed; }
.product__button__fav {
    width: 48px; height: 48px; display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--wv2-border-muted); border-radius: var(--wv2-r-md); background: #fff; cursor: pointer; transition: all .15s;
}
.product__button__fav:hover, .product__button__fav.active { border-color: #fda4af; color: #e11d48; }
.product__button__fav svg { width: 20px; height: 20px; }

/* Кнопка «Купить в 1 клик» */
.wv2-quick-order-btn {
    width: 100%; margin-top: 10px; padding: 13px 16px;
    background: #fff; color: var(--wv2-primary); border: 2px solid var(--wv2-primary); border-radius: var(--wv2-r-lg);
    font-family: var(--wv2-font); font-weight: 700; font-size: var(--wv2-fs-body); cursor: pointer; transition: all .15s;
    display: flex; align-items: center; justify-content: center; gap: 8px;
}
.wv2-quick-order-btn:hover { background: var(--wv2-primary-light); }
.wv2-quick-order-btn .bolt { color: #f59e0b; }


/* Ссылка «к описанию» (мобильная шапка товара) */
.wv2-jump {
    display: inline-flex; align-items: center; gap: 6px; min-height: var(--wv2-tap);
    font-size: var(--wv2-fs-body-sm); font-weight: 600; color: var(--wv2-primary-dark); text-decoration: none;
}
.wv2-jump:hover { color: var(--wv2-primary); }

/* «Дополнить сюрприз к букету» (cross-selling) в правой колонке */
.wv2-surprise { margin: 24px 0 8px; }
.wv2-surprise .wv2-carousel__card { flex-basis: clamp(158px, 44vw, 200px); max-width: clamp(158px, 44vw, 200px); }

/* Характеристики внутри описания */
.wv2-features-block { margin-top: 16px; padding-top: 8px; border-top: 1px solid var(--wv2-border); font-size: var(--wv2-fs-body); }
.wv2-features-block table { width: 100%; border-collapse: collapse; }
.wv2-features-block tr { border-bottom: 1px solid var(--wv2-surface-subtle); }
.wv2-features-block tr:last-child { border-bottom: 0; }
.wv2-features-block td, .wv2-features-block th { padding: 10px 0; vertical-align: top; text-align: left; }
.wv2-features-block td.name, .wv2-features-block th { color: var(--wv2-text-muted); font-weight: 400; padding-right: 16px; }
.wv2-features-block td.value { color: var(--wv2-text); font-weight: 500; text-align: right; }

/* Липкая панель покупки (мобильные) */
.wv2-sticky-buy { display: none; }
@media (max-width: 767px) {
    .wv2-sticky-buy {
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 900;
        display: flex; align-items: center; gap: 12px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
        background: #fff; border-top: 1px solid var(--wv2-border); box-shadow: 0 -4px 16px -2px rgba(17,24,39,.08);
        transform: translateY(110%); transition: transform .25s ease; pointer-events: none;
    }
    .wv2-sticky-buy.is-visible { transform: none; pointer-events: auto; }
    .wv2-sticky-buy__price { flex: 1; min-width: 0; font-size: 20px; font-weight: 800; letter-spacing: -.01em; color: var(--wv2-text); }
    .wv2-sticky-buy__btn {
        flex: 0 0 auto; height: 48px; padding: 0 28px; border: 0; border-radius: var(--wv2-r-lg); cursor: pointer;
        background: var(--wv2-primary-dark); color: #fff; font-family: var(--wv2-font); font-size: var(--wv2-fs-body-lg); font-weight: 700;
    }
    #js-product-page { padding-bottom: 72px; }
}

/* Краткое описание / сводка */
.product__summary { margin: 0 0 20px; font-size: var(--wv2-fs-body); line-height: 1.6; color: var(--wv2-text); }

/* Блок «Описание, характеристики, доставка» (заменяет визуал аккордеона) */
.product-nav { max-width: 1340px; margin: 0 auto; padding: 0 16px; }
@media (min-width: 640px)  { .product-nav { padding: 0 24px; } }
@media (min-width: 1024px) { .product-nav { padding: 0 32px; } }
.wv2-details-grid { display: grid; grid-template-columns: 1fr; gap: 32px; }
@media (min-width: 1024px) { .wv2-details-grid { grid-template-columns: 7fr 5fr; } }
.wv2-card {
    background: #fff; border: 1px solid var(--wv2-border); border-radius: var(--wv2-r-xl); padding: 24px;
}
.wv2-card h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font-size: var(--wv2-fs-h3); font-weight: 700; color: var(--wv2-text); }
.wv2-card h3 .fa { color: var(--wv2-primary); }
.wv2-card .wv2-desc { font-size: var(--wv2-fs-body-sm); line-height: 1.65; color: var(--wv2-text-muted); }

/* Таблица характеристик (плоская) */
.wv2-features { width: 100%; border-collapse: collapse; font-size: var(--wv2-fs-body-sm); }
.wv2-features tr { border-bottom: 1px solid var(--wv2-surface-subtle); }
.wv2-features tr:last-child { border-bottom: 0; }
.wv2-features td { padding: 9px 0; vertical-align: top; }
.wv2-features td.name { color: var(--wv2-text-muted); }
.wv2-features td.value { color: var(--wv2-text); font-weight: 500; text-align: right; }

/* Список «Доставка и оплата» */
.wv2-delivery-list { list-style: none; margin: 0; padding: 0; }
.wv2-delivery-list li { display: flex; gap: 10px; margin-bottom: 14px; font-size: var(--wv2-fs-body-sm); color: var(--wv2-text-muted); line-height: 1.55; }
.wv2-delivery-list li:last-child { margin-bottom: 0; }
.wv2-delivery-list li .fa { color: var(--wv2-primary); margin-top: 2px; flex-shrink: 0; }
.wv2-delivery-list strong { display: block; color: var(--wv2-text); font-weight: 600; }

/* Полоса преимуществ */
.wv2-advantages { display: grid; grid-template-columns: 1fr; gap: 16px; max-width: 1340px; margin: 40px auto 0; padding: 0 16px; }
@media (min-width: 640px)  { .wv2-advantages { grid-template-columns: repeat(2, 1fr); padding: 0 24px; } }
@media (min-width: 1024px) { .wv2-advantages { grid-template-columns: repeat(4, 1fr); padding: 0 32px; } }

/* Заголовки секций */
.wv2-section-title { font-size: var(--wv2-fs-h2); font-weight: 700; color: var(--wv2-text); margin: 0 0 4px; letter-spacing: -.01em; }
.wv2-section-sub { font-size: var(--wv2-fs-label); color: var(--wv2-text-muted); margin: 0 0 16px; }

/* Бейдж скидки/сохранения */
.product__price-block__saving .pricepercent {
    display: inline-block; padding: 3px 8px; border-radius: var(--wv2-r-full);
    background: var(--wv2-primary-subtle); color: var(--wv2-primary-dark); font-weight: 700; font-size: var(--wv2-fs-caption);
}

/* Связанные товары — сохраняем базовые стили темы, лёгкая полировка */
.p-related__name { font-size: var(--wv2-fs-body-sm); }
.p-related__price { font-size: var(--wv2-fs-body-lg); font-weight: 700; color: var(--wv2-text); }

/* ==========================================================================
   МОДАЛКА «БЫСТРЫЙ ЗАКАЗ В 1 КЛИК»
   ========================================================================== */
.wv2-modal {
    position: fixed; inset: 0; z-index: 1000; display: none;
    align-items: center; justify-content: center; padding: 16px;
    background: rgba(17,24,39,.55); backdrop-filter: blur(4px); overflow-y: auto;
}
.wv2-modal.is-open { display: flex; }
.wv2-modal__dialog {
    position: relative; width: 100%; max-width: 512px; background: #fff;
    border-radius: 24px; border: 1px solid var(--wv2-border); padding: 28px;
    box-shadow: var(--wv2-shadow-2); margin: auto;
}
.wv2-modal__close {
    position: absolute; top: 16px; right: 16px; width: 32px; height: 32px;
    border-radius: 50%; border: 0; background: var(--wv2-surface-subtle); cursor: pointer;
    color: var(--wv2-text-muted); font-size: 14px; line-height: 1; display: flex; align-items: center; justify-content: center;
}
.wv2-modal__close:hover { background: var(--wv2-border); color: var(--wv2-text); }
.wv2-modal__header { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; padding-right: 24px; }
.wv2-modal__header .icon {
    width: 28px; height: 28px; border-radius: 50%; background: rgba(101,128,77,.1); color: var(--wv2-primary);
    display: flex; align-items: center; justify-content: center; font-size: 13px;
}
.wv2-modal__header h3 { margin: 0; font-size: var(--wv2-fs-h2); font-weight: 700; }
.wv2-modal__sub { font-size: var(--wv2-fs-label); color: var(--wv2-text-muted); margin: 0 0 16px; line-height: 1.5; }
.wv2-modal__product { display: flex; gap: 14px; align-items: center; padding: 12px; background: var(--wv2-surface-subtle); border: 1px solid var(--wv2-border); border-radius: var(--wv2-r-xl); margin-bottom: 16px; }
.wv2-modal__product img { width: 56px; height: 56px; object-fit: cover; border-radius: var(--wv2-r-lg); flex-shrink: 0; }
.wv2-modal__product .name { font-size: var(--wv2-fs-body); font-weight: 700; color: var(--wv2-text); margin: 0 0 2px; }
.wv2-modal__product .price { font-size: var(--wv2-fs-body-lg); font-weight: 800; color: var(--wv2-primary); }
.wv2-modal__product .old { font-size: var(--wv2-fs-caption); color: var(--wv2-text-soft); text-decoration: line-through; margin-left: 6px; }
.wv2-modal form { display: flex; flex-direction: column; gap: 14px; }
.wv2-modal .wv2-field label { display: block; font-size: var(--wv2-fs-caption); font-weight: 600; color: var(--wv2-text); margin-bottom: 4px; }
.wv2-modal .wv2-field label .req { color: var(--wv2-error); }
.wv2-modal .wv2-field input {
    width: 100%; padding: 11px 14px; border: 1px solid var(--wv2-border-muted); border-radius: var(--wv2-r-lg);
    font-size: var(--wv2-fs-body); font-family: var(--wv2-font); color: var(--wv2-text);
}
.wv2-modal .wv2-field input:focus { outline: none; border-color: var(--wv2-primary); box-shadow: 0 0 0 3px rgba(101,128,77,.15); }
.wv2-modal .wv2-step-badge { font-size: var(--wv2-fs-caption); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--wv2-primary); }
.wv2-modal .wv2-consent { display: flex; gap: 8px; align-items: flex-start; font-size: var(--wv2-fs-caption); color: var(--wv2-text-muted); line-height: 1.4; }
.wv2-modal .wv2-consent a { color: var(--wv2-text); }
.wv2-modal .wv2-trust { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-top: 4px; padding-top: 16px; border-top: 1px solid var(--wv2-border); text-align: center; font-size: var(--wv2-fs-caption); color: var(--wv2-text-muted); }
.wv2-modal .wv2-trust .fa { display: block; color: var(--wv2-primary); font-size: 13px; margin-bottom: 4px; }

/* ==========================================================================
   ОФОРМЛЕНИЕ ЗАКАЗА (макет macker_carrt)
   Разметку формы и корзины рендерит ядро Shop-Script (.wa-order-form-wrapper,
   .wa-order-cart-wrapper); здесь только внешний вид. Всё внутри .wv2-order.
   ========================================================================== */
.wv2-order { --o-r: 16px; max-width: 1340px; margin: 0 auto; padding: 0 16px 56px; color: var(--wv2-text); }
@media (min-width: 640px)  { .wv2-order { padding: 0 24px 64px; } }
@media (min-width: 1024px) { .wv2-order { padding: 0 32px 72px; } }

/* Шапка страницы */
.wv2-order__crumbs { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 0; padding: 16px 0 0; list-style: none; font-size: 13px; color: var(--wv2-text-muted); }
.wv2-order__crumbs a { color: var(--wv2-text-muted); text-decoration: none; }
.wv2-order__crumbs a:hover { color: var(--wv2-primary); }
.wv2-order__crumbs li + li:before { content: "/"; margin-right: 6px; color: var(--wv2-border-muted); }
.wv2-order__crumbs li:last-child { color: var(--wv2-primary-dark); font-weight: 600; }
.wv2-order__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 20px 0 28px; }
.wv2-order__title { margin: 0; font-size: 32px; line-height: 1.15; font-weight: 700; letter-spacing: -.01em; color: var(--wv2-text); }
.wv2-order__sub { margin: 6px 0 0; font-size: 15px; color: var(--wv2-text-muted); }
.wv2-order__chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 1px solid var(--wv2-border); border-radius: 10px; background: #fff; font-size: 13px; color: var(--wv2-text); }
.wv2-order__chip:before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--wv2-primary); }
@media (max-width: 639px) { .wv2-order__title { font-size: 24px; } .wv2-order__chip { display: none; } }

/* Две колонки */
.wv2-order #js-order-page { display: grid !important; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 32px; align-items: start; padding: 0 !important; max-width: none !important; width: 100%; }
.wv2-order .order-page__leftside { flex: none !important; width: auto !important; height: auto !important; margin: 0 !important; padding: 0 !important; background: transparent !important; border: 0 !important; }
.wv2-order .order-page__rightside { flex: none !important; width: auto !important; position: sticky; top: 16px; }
.wv2-order .order-page__details { display: none; }
@media (max-width: 900px) {
    .wv2-order #js-order-page { display: flex !important; flex-direction: column; gap: 16px; }
    .wv2-order .order-page__rightside { position: static; order: 0; }
    .wv2-order .order-page__leftside { order: 1; }
    .wv2-order .order-page__details { display: flex; background: #fff; border: 1px solid var(--wv2-border); border-radius: 12px; padding: 14px 16px; }
}

/* Карточки-шаги */
.wv2-order .wa-order-form-wrapper { max-width: none; margin: 0; }
.wv2-order .wa-form-body, .wv2-order .wa-form-content { padding: 0; margin: 0; }
.wv2-order .wa-form-content { counter-reset: wv2step; }
.wv2-order .wa-step-section {
    background: #fff; border: 1px solid var(--wv2-border); border-radius: var(--o-r);
    padding: 24px 28px; margin: 0 0 16px; box-shadow: 0 1px 2px rgba(17,24,39,.04);
}
.wv2-order .wa-step-section > .wa-section-header { display: flex; align-items: center; gap: 14px; margin: 0 0 20px; padding: 0; border: 0; }
.wv2-order .wa-step-section > .wa-section-header > .wa-header { margin: 0; font-size: 20px; font-weight: 700; line-height: 1.2; color: var(--wv2-text); }
.wv2-order .wa-step-section > .wa-section-header:before {
    counter-increment: wv2step; content: counter(wv2step);
    flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%;
    background: var(--wv2-primary); color: #fff; font-size: 15px; font-weight: 700;
    display: flex; align-items: center; justify-content: center;
}
.wv2-order .wa-step-section > .wa-section-header > .wa-header:before,
.wv2-order .wa-step-section > .wa-section-header > .wa-header:after { display: none !important; }
.wv2-order .wa-step-section .wa-section-body { padding: 0; margin: 0; }
.wv2-order .wa-required-text { margin: 0 0 14px; font-size: 13px; color: var(--wv2-text-muted); }
.wv2-order .wa-required { color: #dc2626; }
.wv2-order .wa-required:before { content: "*"; margin-left: 2px; }
@media (max-width: 639px) { .wv2-order .wa-step-section { padding: 18px 16px; } }

/* Поля */
.wv2-order .wa-line.wa-fields-group, .wv2-order .wa-fields-group {
    display: flex !important; flex-wrap: wrap; gap: 16px; margin: 0 !important; padding: 0;
}
.wv2-order .wa-field-wrapper { display: block; width: auto; margin: 0 0 16px; padding: 0; }
.wv2-order .wa-fields-group > .wa-field-wrapper { margin: 0; }
.wv2-order .wa-field-wrapper.size-large, .wv2-order .wa-field-wrapper.full-line, .wv2-order .wa-fields-group > .wa-field-wrapper.size-large { flex: 1 1 100%; width: 100%; }
.wv2-order .wa-fields-group > .wa-field-wrapper.size-medium { flex: 1 1 calc(50% - 8px); width: auto; min-width: 0; }
.wv2-order .wa-fields-group > .wa-field-wrapper.size-small { flex: 1 1 calc(33% - 11px); width: auto; min-width: 0; }
@media (max-width: 639px) { .wv2-order .wa-fields-group > .wa-field-wrapper.size-medium, .wv2-order .wa-fields-group > .wa-field-wrapper.size-small { flex-basis: 100%; } }
.wv2-order .wa-field-wrapper .wa-label { display: block; margin: 0 0 8px; font-size: 14px; font-weight: 600; color: var(--wv2-text); }
.wv2-order .wa-field-wrapper .wa-tooltip { display: inline; border: 0; }
.wv2-order .wa-input, .wv2-order .wa-textarea, .wv2-order .wa-field-wrapper input[type="text"],
.wv2-order .wa-field-wrapper input[type="tel"], .wv2-order .wa-field-wrapper input[type="email"], .wv2-order .wa-field-wrapper select {
    display: block; width: 100%; height: 50px; padding: 0 16px; margin: 0; box-sizing: border-box;
    border: 1px solid var(--wv2-border-muted); border-radius: 10px; background: #fff;
    font-family: inherit; font-size: 16px; color: var(--wv2-text); box-shadow: none; transition: border-color .15s, box-shadow .15s;
}
.wv2-order .wa-textarea { height: auto; min-height: 90px; padding: 12px 16px; resize: vertical; }
.wv2-order .wa-input:focus, .wv2-order .wa-textarea:focus, .wv2-order .wa-field-wrapper select:focus {
    outline: none; border-color: var(--wv2-primary); box-shadow: 0 0 0 3px rgba(101,128,77,.15);
}
.wv2-order .wa-input.error, .wv2-order .wa-textarea.error { border-color: #dc2626; }
.wv2-order .wa-error-text { margin-top: 6px; font-size: 13px; color: #dc2626; }

/* Согласие */
.wv2-order .wa-agreement-wrapper { margin: 4px 0 0; }
.wv2-order .wa-agreement-wrapper .wa-field-wrapper { margin: 0; }
.wv2-order .wa-checkbox-wrapper { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; line-height: 1.5; color: var(--wv2-text-muted); cursor: pointer; }
.wv2-order .wa-checkbox-wrapper a { color: var(--wv2-primary-dark); text-decoration: underline; }
.wv2-order .wa-checkbox-wrapper .wa-checkbox { flex: 0 0 18px; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--wv2-primary); }

/* Выбор доставки (выпадающий список) */
.wv2-order .wa-delivery-variants-section .wa-header { margin: 0 0 10px; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--wv2-text-muted); }
.wv2-order .wa-dropdown { position: relative; }
.wv2-order .wa-dropdown-toggle {
    display: flex; align-items: center; min-height: 54px; padding: 0 44px 0 16px; box-sizing: border-box;
    border: 1px solid var(--wv2-border-muted); border-radius: 12px; background: #fff;
    font-size: 15px; font-weight: 600; color: var(--wv2-text); cursor: pointer; position: relative;
}
.wv2-order .wa-dropdown-toggle:after {
    content: ""; position: absolute; right: 18px; top: 50%; width: 8px; height: 8px; margin-top: -6px;
    border-right: 2px solid var(--wv2-text-muted); border-bottom: 2px solid var(--wv2-text-muted); transform: rotate(45deg);
}
.wv2-order .wa-dropdown.is-opened .wa-dropdown-toggle, .wv2-order .wa-dropdown-toggle:hover { border-color: var(--wv2-primary); }
.wv2-order .wa-dropdown-area { border: 1px solid var(--wv2-border); border-radius: 12px; background: #fff; box-shadow: var(--wv2-shadow-2); overflow: hidden; margin-top: 6px; }
.wv2-order .wa-dropdown-item { padding: 0; border-bottom: 1px solid var(--wv2-border); cursor: pointer; }
.wv2-order .wa-dropdown-item:last-child { border-bottom: 0; }
.wv2-order .wa-dropdown-item:hover { background: var(--wv2-primary-light); }
.wv2-order .wa-delivery-variant { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; }
.wv2-order .wa-delivery-variant .wa-name { font-size: 15px; font-weight: 600; color: var(--wv2-text); }
.wv2-order .wa-delivery-variant .wa-date, .wv2-order .wa-delivery-variant .wa-price { font-size: 13px; color: var(--wv2-text-muted); white-space: nowrap; }

/* Детали доставки / самовывоза */
.wv2-order .wa-details-description { margin: 0 0 16px; font-size: 14px; line-height: 1.6; color: var(--wv2-text-muted); }
.wv2-order .wa-details-rates-section .wa-table { border: 1px solid var(--wv2-border); border-radius: 12px; overflow: hidden; margin: 0 0 16px; }
.wv2-order .wa-details-rates-section .wa-row { display: flex; gap: 16px; padding: 12px 16px; border-bottom: 1px solid var(--wv2-border); font-size: 14px; }
.wv2-order .wa-details-rates-section .wa-row:last-child { border-bottom: 0; }
.wv2-order .wa-details-rates-section .wa-cell-name { flex: 0 0 140px; color: var(--wv2-text-muted); }
.wv2-order .wa-details-rates-section .wa-cell-value { flex: 1; font-weight: 600; color: var(--wv2-text); }
.wv2-order .wa-schedule-wrapper .wa-label { margin: 0 0 8px; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--wv2-text-muted); }
.wv2-order .wa-days-wrapper { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; }
.wv2-order .wa-day-wrapper { display: flex; justify-content: space-between; gap: 8px; padding: 10px 12px; border: 1px solid var(--wv2-border); border-radius: 10px; background: var(--wv2-surface-subtle); font-size: 13px; }
.wv2-order .wa-day-wrapper .wa-date { color: var(--wv2-text-muted); }
.wv2-order .wa-day-wrapper .wa-value { font-weight: 600; color: var(--wv2-text); }

/* Способы оплаты */
.wv2-order .wa-methods-list { display: flex; flex-direction: column; gap: 12px; }
.wv2-order .wa-method-wrapper { border: 1px solid var(--wv2-border); border-radius: 12px; background: #fff; padding: 16px 18px; cursor: pointer; transition: border-color .15s, background .15s; }
.wv2-order .wa-method-wrapper:hover { border-color: var(--wv2-border-muted); }
.wv2-order .wa-method-wrapper.is-active { border-color: var(--wv2-primary); background: var(--wv2-primary-light); box-shadow: inset 0 0 0 1px var(--wv2-primary); }
.wv2-order .wa-method { display: flex; align-items: flex-start; gap: 14px; }
.wv2-order .wa-method .wa-checkbox-wrapper { flex: 0 0 auto; margin-top: 2px; }
.wv2-order .wa-method .wa-radio { width: 18px; height: 18px; margin: 0; accent-color: var(--wv2-primary); }
.wv2-order .wa-method .wa-image-wrapper img { max-height: 28px; width: auto; }
.wv2-order .wa-method-body { flex: 1; min-width: 0; }
.wv2-order .wa-payment-name, .wv2-order .wa-payment-name a { font-size: 15px; font-weight: 700; color: var(--wv2-text); text-decoration: none; pointer-events: none; }
.wv2-order .wa-method-body .wa-description { margin-top: 4px; font-size: 13px; line-height: 1.5; color: var(--wv2-text-muted); }

/* Подтверждение: комментарий, итоги, кнопка */
.wv2-order .wa-step-confirm-section .wa-flex-wrapper { display: block; }
.wv2-order .wa-comment-section { margin: 0 0 16px; }
.wv2-order .wa-comment-section .wa-link { color: var(--wv2-primary-dark); font-size: 14px; font-weight: 600; cursor: pointer; }
.wv2-order .wa-comment-section .wa-hidden { margin-top: 12px; }
.wv2-order .wa-total-section { margin: 0 0 20px; padding: 0; border: 0; }
.wv2-order .wa-total-section .wa-item { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 6px 0; font-size: 14px; color: var(--wv2-text-muted); }
.wv2-order .wa-total-section .wa-item .wa-value { font-weight: 600; color: var(--wv2-text); }
.wv2-order .wa-total-section .wa-item-total { margin-top: 8px; padding-top: 14px; border-top: 1px solid var(--wv2-border); align-items: center; }
.wv2-order .wa-total-section .wa-item-total .wa-name { font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--wv2-text-muted); }
.wv2-order .wa-total-section .wa-item-total .wa-price { font-size: 30px; font-weight: 800; color: var(--wv2-text); }
.wv2-order .wa-actions-section { margin: 0; }
.wv2-order .wa-submit-button, .wv2-order .wa-step-confirm-section .wa-submit-button {
    display: block; width: 100%; height: auto; min-height: 56px; padding: 16px 20px; margin: 0; border: 0; border-radius: 12px;
    background: var(--wv2-primary); color: #fff; font-family: inherit; font-size: 17px; font-weight: 700;
    text-transform: none; letter-spacing: 0; cursor: pointer; transition: background .2s; box-shadow: none;
}
.wv2-order .wa-submit-button:hover { background: var(--wv2-primary-dark); }
.wv2-order .wa-submit-button.is-locked, .wv2-order .wa-submit-button:disabled { opacity: .6; cursor: not-allowed; }

/* Корзина (правая колонка) */
.wv2-order .order-page__rightside .s-cart-section {
    background: #fff !important; border: 1px solid var(--wv2-border) !important; border-radius: var(--o-r);
    padding: 24px 28px !important; height: auto !important; box-shadow: 0 1px 2px rgba(17,24,39,.04);
}
.wv2-order .s-cart-section .header-container { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 12px; padding: 0; border: 0; }
.wv2-order .s-cart-section .header-container__name h2 { margin: 0 !important; font-size: 20px; font-weight: 700; color: var(--wv2-text); }
.wv2-order .s-cart-section .clear-cart { font-size: 13px; color: var(--wv2-text-muted); text-decoration: underline; text-underline-offset: 3px; }
.wv2-order .s-cart-section .clear-cart:before, .wv2-order .s-cart-section .clear-cart:after { display: none; }
.wv2-order .s-cart-section .clear-cart:hover { color: var(--wv2-primary); }
@media (max-width: 900px) { .wv2-order .order-page__rightside .s-cart-section._show { padding: 18px 16px !important; margin: 0; } }

.wv2-order .wa-order-cart-wrapper { background: transparent; border: 0; padding: 0; }
.wv2-order .wa-order-cart-wrapper .wa-product { padding: 16px 0; border-bottom: 1px solid var(--wv2-border) !important; }
.wv2-order .wa-order-cart-wrapper .wa-product:last-child { border-bottom: 0 !important; }
.wv2-order .wa-order-cart-wrapper .wa-product-body { display: flex; align-items: flex-start; gap: 14px; flex-wrap: wrap; }
.wv2-order .wa-order-cart-wrapper .wa-column-image { flex: 0 0 80px; width: 80px; }
.wv2-order .wa-order-cart-wrapper .wa-column-image img { display: block; width: 80px; height: 100px; object-fit: cover; border-radius: 10px; border: 1px solid var(--wv2-border); }
.wv2-order .wa-order-cart-wrapper .wa-column-details { flex: 1 1 0; min-width: 0; }
.wv2-order .wa-order-cart-wrapper .wa-details { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.wv2-order .wa-order-cart-wrapper .wa-details .wa-name { font-size: 15px; font-weight: 700; line-height: 1.3; color: var(--wv2-text); text-decoration: none; }
.wv2-order .wa-order-cart-wrapper .wa-details .wa-name:hover { color: var(--wv2-primary); }
.wv2-order .wa-order-cart-wrapper .wa-details .wa-actions { font-size: 13px; color: var(--wv2-text-muted); }
.wv2-order .wa-order-cart-wrapper .wa-services { margin-top: 8px; font-size: 13px; color: var(--wv2-text-muted); }
.wv2-order .wa-order-cart-wrapper .wa-service .wa-label { display: flex; align-items: center; gap: 8px; margin: 0; font-weight: 500; font-size: 13px; }
.wv2-order .wa-order-cart-wrapper .wa-service input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--wv2-primary); }
.wv2-order .wa-order-cart-wrapper .wa-column-quantity { flex: 0 0 auto; }
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-section-body { display: inline-flex; align-items: center; border: 1px solid var(--wv2-border-muted); border-radius: 8px; overflow: hidden; background: #fff; }
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-button { width: 30px; height: 32px; padding: 0; border: 0; background: transparent; box-shadow: none; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-description, .wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-unit { display: none; }
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-field-wrapper { margin: 0; }
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-field { width: 38px; height: 32px; padding: 0; border: 0; text-align: center; font-size: 14px; font-weight: 700; background: transparent; }
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-section-footer, .wv2-order .wa-order-cart-wrapper .wa-quantity-actions { display: none; }
.wv2-order .wa-order-cart-wrapper .wa-column-price { flex: 0 0 auto; margin-left: auto; text-align: right; }
.wv2-order .wa-order-cart-wrapper .wa-price-total { font-size: 17px; font-weight: 800; color: var(--wv2-text); white-space: nowrap; }
.wv2-order .wa-order-cart-wrapper .wa-price-compare { display: none; }
.wv2-order .wa-order-cart-wrapper .wa-cart-details { margin-top: 8px; padding-top: 14px; border-top: 1px solid var(--wv2-border); }
.wv2-order .wa-order-cart-wrapper .wa-cart-details .wa-column-price { width: 100%; text-align: left; }
.wv2-order .wa-order-cart-wrapper .wa-cart-details .wa-price-section > div { display: flex; justify-content: space-between; font-size: 14px; color: var(--wv2-text-muted); padding: 3px 0; }
.wv2-order .wa-order-cart-wrapper .wa-cart-details .wa-price-total { font-size: 15px; font-weight: 700; color: var(--wv2-text); }
.wv2-order .wa-order-cart-wrapper .wa-weight-section:empty { display: none; }

/* Промокод и допродажи в корзине (если включены в магазине) */
.wv2-order .wa-coupon-section { display: flex; gap: 8px; margin-top: 14px; }
.wv2-order .wa-coupon-section .wa-input { height: 46px; }
.wv2-order .wa-coupon-section .wa-button { padding: 0 18px; border: 0; border-radius: 10px; background: var(--wv2-surface-subtle); font-weight: 600; cursor: pointer; }
.wv2-order .wa-order-cross_selling-wrapper .wa-product-wrapper { border: 1px solid var(--wv2-border); border-radius: 10px; padding: 10px 12px; background: #fff; }

/* --- Перебивка стилей ядра (cart.css / form.css): поля и корзина --- */
.wv2-order .wa-field-wrapper, .wv2-order .wa-fields-group > .wa-field-wrapper { padding: 0 !important; }
.wv2-order .wa-step-section .wa-header { background: none !important; padding-left: 0 !important; }
.wv2-order .wa-step-section .wa-header:before, .wv2-order .wa-step-section .wa-header:after { display: none !important; }
.wv2-order .wa-order-cart-wrapper .wa-product-body {
    display: grid !important; grid-template-columns: 80px minmax(0, 1fr) auto; column-gap: 14px; row-gap: 10px; align-items: start;
}
.wv2-order .wa-order-cart-wrapper .wa-column-image { grid-column: 1; grid-row: 1 / span 3; flex: none !important; width: 80px !important; margin: 0 !important; padding: 0 !important; }
.wv2-order .wa-order-cart-wrapper .wa-column-image img { width: 80px !important; height: 100px !important; max-width: none; }
.wv2-order .wa-order-cart-wrapper .wa-column-details { grid-column: 2; grid-row: 1; flex: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; }
.wv2-order .wa-order-cart-wrapper .wa-column-quantity { grid-column: 2; grid-row: 2; flex: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; }
.wv2-order .wa-order-cart-wrapper .wa-column-price { grid-column: 3; grid-row: 1; flex: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; text-align: right; }
.wv2-order .wa-order-cart-wrapper .wa-product-body .wa-actions .wa-icon svg { width: 10px; height: 10px; }
.wv2-order .wa-order-cart-wrapper .wa-service .wa-field { display: inline-flex; margin: 0; }
.wv2-order .wa-order-cart-wrapper .wa-service input[type="checkbox"] { position: static; opacity: 1; margin: 0; }

/* Группа полей: сетка 2 колонки (надёжнее flex + стили ядра) */
.wv2-order .wa-line.wa-fields-group, .wv2-order .wa-fields-group { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.wv2-order .wa-fields-group > .wa-field-wrapper, .wv2-order .wa-fields-group > .wa-field-wrapper.size-medium,
.wv2-order .wa-fields-group > .wa-field-wrapper.size-small { flex: none !important; width: auto !important; max-width: none !important; margin: 0 !important; grid-column: auto; }
.wv2-order .wa-fields-group > .wa-field-wrapper.size-large, .wv2-order .wa-fields-group > .wa-field-wrapper.full-line,
.wv2-order .wa-fields-group > input[type="hidden"] { grid-column: 1 / -1; }
.wv2-order .wa-fields-group:before, .wv2-order .wa-fields-group:after { display: none !important; content: none !important; }
@media (max-width: 639px) { .wv2-order .wa-line.wa-fields-group, .wv2-order .wa-fields-group { grid-template-columns: minmax(0, 1fr); } }

/* ==========================================================================
   КАРУСЕЛЬ «Похожие букеты» / связанные товары с кнопкой «В корзину»
   ========================================================================== */
.wv2-carousel-section { max-width: 1340px; margin: 48px auto 0; padding: 0 16px; }
@media (min-width: 640px)  { .wv2-carousel-section { padding: 0 24px; } }
@media (min-width: 1024px) { .wv2-carousel-section { padding: 0 32px; } }

.wv2-carousel { position: relative; }
.wv2-carousel__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.wv2-carousel__head .wv2-section-sub { margin-bottom: 0; }
.wv2-carousel__arrows { display: flex; gap: 8px; flex-shrink: 0; }
.wv2-carousel__arrow {
    width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--wv2-border-muted);
    background: #fff; color: var(--wv2-text-muted); cursor: pointer; font-size: 14px;
    display: flex; align-items: center; justify-content: center; transition: all .15s;
}
.wv2-carousel__arrow:hover { border-color: var(--wv2-primary); color: var(--wv2-primary); background: var(--wv2-primary-light); }

.wv2-carousel__track {
    display: flex; gap: 16px; overflow-x: auto; padding-bottom: 8px;
    scroll-snap-type: x mandatory; scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
}
.wv2-carousel__track::-webkit-scrollbar { height: 5px; }
.wv2-carousel__track::-webkit-scrollbar-thumb { background: var(--wv2-border-muted); border-radius: 9999px; }
.wv2-carousel__track::-webkit-scrollbar-track { background: transparent; }

.wv2-carousel__card {
    flex: 0 0 clamp(158px, 44vw, 240px); max-width: clamp(158px, 44vw, 240px); scroll-snap-align: start;
    background: #fff; border: 1px solid var(--wv2-border); border-radius: var(--wv2-r-xl);
    padding: 12px; display: flex; flex-direction: column;
    transition: border-color .15s, box-shadow .15s;
}
.wv2-carousel__card:hover { border-color: rgba(101,128,77,.5); box-shadow: var(--wv2-shadow-1); }

.wv2-carousel__img {
    position: relative; display: block; border-radius: var(--wv2-r-lg); overflow: hidden;
    aspect-ratio: 1 / 1; background: var(--wv2-surface-subtle); margin-bottom: 10px;
}
.wv2-carousel__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.wv2-carousel__card:hover .wv2-carousel__img img { transform: scale(1.05); }
.wv2-carousel__badge { position: absolute; top: 8px; left: 8px; z-index: 2; }

.wv2-carousel__name {
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    font-size: var(--wv2-fs-body-sm); font-weight: 600; line-height: 1.35;
    color: var(--wv2-text); text-decoration: none; margin-bottom: 8px; min-height: 2.7em;
}
.wv2-carousel__name:hover { color: var(--wv2-primary); }

.wv2-carousel__bottom { margin-top: auto; }
.wv2-carousel__price { display: flex; align-items: baseline; gap: 6px; margin-bottom: 10px; }
.wv2-carousel__price-main { font-size: var(--wv2-fs-body-lg); font-weight: 800; color: var(--wv2-text); }
.wv2-carousel__price s { font-size: var(--wv2-fs-label); color: var(--wv2-text-soft); }

.wv2-carousel__btn {
    width: 100%; padding: 9px 12px; border: 0; border-radius: var(--wv2-r-md); cursor: pointer;
    background: var(--wv2-primary); color: #fff; font-family: var(--wv2-font);
    font-size: var(--wv2-fs-label); font-weight: 600; transition: background .2s;
    display: flex; align-items: center; justify-content: center; gap: 6px;
}
.wv2-carousel__btn:hover { background: var(--wv2-primary-dark); }
.wv2-carousel__btn:disabled { background: var(--wv2-border-muted); cursor: not-allowed; }
.wv2-carousel__btn .fa { font-size: 13px; }

/* ==========================================================================
   АДАПТИВ (мобильные)
   ========================================================================== */
@media (max-width: 639px) {
    .product__gallery-image img { height: auto; aspect-ratio: 1 / 1; }
    .product__button.add2cart .product__button__btn { flex-basis: 100%; }

    .options select.sku-feature { font-size: 16px; min-height: var(--wv2-tap); }

    /* Зоны нажатия ≥44px */
    .wv2-carousel__arrow { width: var(--wv2-tap); height: var(--wv2-tap); }
    .wv2-modal__close { width: 40px; height: 40px; }
    .wv2-carousel__btn { min-height: var(--wv2-tap); }
    .options .inline-select a { min-height: 40px; display: inline-flex; align-items: center; }
}

/* ==========================================================================
   КАРТОЧКА ТОВАРА — пересборка по макету macket_product (ПК)
   ========================================================================== */
@media (min-width: 1024px) {
    /* Галерея: вертикальные миниатюры слева + большое фото */
    #js-product-page .product__gallery { display: flex; flex-direction: row; gap: 12px; align-items: flex-start; }
    #js-product-page .product__gallery .product__gallery__more-images {
        order: -1; flex: 0 0 80px; width: 80px; margin: 0; flex-direction: column; flex-wrap: nowrap; gap: 10px; display: flex !important;
        max-height: 580px; overflow-y: auto;
    }
    #js-product-page .product__gallery .product__gallery__more-images .image { width: 80px; height: 80px; flex: 0 0 80px; border: 2px solid var(--wv2-border); border-radius: 12px; opacity: .9; }
    #js-product-page .product__gallery .product__gallery__more-images .image.selected { border-color: var(--wv2-primary); opacity: 1; }
    #js-product-page .product__gallery { position: static !important; }
    #js-product-page .product__gallery .product__gallery__more-images { position: static !important; left: auto !important; top: auto !important; }
    #js-product-page .product__gallery .product__gallery-image { flex: 1 1 0; min-width: 0; width: auto; padding-left: 0 !important; }
    #js-product-page .product__gallery .product__gallery-image img { height: 580px; }
}
#js-product-page .product__gallery .product__gallery__more-images .more-hide { font-size: 13px; text-align: center; }

/* Правая колонка: артикул / название / рейтинг */
.wv2-head { margin: 0 0 16px; }
.wv2-head .product__price-block__header.category-name {
    font-size: 30px; line-height: 1.25; font-weight: 700; margin: 0 0 12px; letter-spacing: -.01em;
}
.wv2-head .product__articul { font-size: 13px; margin: 0 0 10px; }
.wv2-head .rating-block { margin: 0; }
.wv2-head .product__price-block__saving { margin: 0 0 8px; }

/* Кнопки в карточке цены: 50/50, без переносов */
.product__price-block .btn.btn_one-click,
.product__price-block .product__button__btn .btn {
    font-size: 14px; font-weight: 700; min-height: 46px; padding: 10px 12px; white-space: nowrap;
    display: flex; align-items: center; justify-content: center; border-radius: 12px; line-height: 1.2;
}
.product__price-block .btn.btn_one-click { border-width: 2px; }
.product__price-block .product__button__btn { flex: 1 1 0 !important; }
.product__price-block .btn.btn_one-click { flex: 1 1 0; width: auto !important; }
.product__price-block .product__button.add2cart.add2cart_modified { column-gap: 10px; }
.product__price-block .product__button.add2cart.add2cart_modified .product__button__btn { width: auto !important; }

/* Карточка «Состав и размер букета» */
.wv2-specs { margin-top: 16px; padding: 16px; background: var(--wv2-surface-subtle); border: 1px solid var(--wv2-border); border-radius: var(--wv2-r-xl); }
.wv2-specs__label { display: block; margin-bottom: 10px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wv2-text-soft); }
.wv2-specs__body table, .wv2-specs__body tbody { display: block; width: 100%; }
.wv2-specs__body tbody { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; }
.wv2-specs__body tr { display: block; border: 0 !important; }
.wv2-specs__body tr.divider { display: none; }
.wv2-specs__body tr:nth-child(n+7) { display: none; }
.wv2-specs__body td { display: block; padding: 0; border: 0; text-align: left; }
.wv2-specs__body td.name { font-size: 13px; color: var(--wv2-text-soft); }
.wv2-specs__body td.value { font-size: 13px; font-weight: 500; color: var(--wv2-text); }
.wv2-specs__more { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--wv2-border); width: 100%; font-size: 13px; font-weight: 600; color: var(--wv2-primary); text-decoration: none; }
.wv2-specs__more:hover { color: var(--wv2-primary-dark); }

/* Полосы под верхним блоком: «Сюрприз» и «О букете» */
#js-product-page .wv2-surprise,
#js-product-page .wv2-about { max-width: 1340px; margin: 0 auto; padding: 0 16px; }
@media (min-width: 640px)  { #js-product-page .wv2-surprise, #js-product-page .wv2-about { padding: 0 24px; } }
@media (min-width: 1024px) { #js-product-page .wv2-surprise, #js-product-page .wv2-about { padding: 0 32px; } }
#js-product-page .wv2-surprise { margin-top: 0; padding-bottom: 32px; border-bottom: 1px solid var(--wv2-border); margin-bottom: 40px; }
#js-product-page .wv2-surprise .wv2-carousel__card { flex-basis: 240px; max-width: 240px; }

.wv2-about__head { margin: 0 0 24px; }
.wv2-about__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 32px; align-items: stretch; }
@media (max-width: 1023px) { .wv2-about__grid { grid-template-columns: minmax(0, 1fr); } }
.wv2-about__main, .wv2-about__side {
    background: var(--wv2-surface, #fff); border: 1px solid var(--wv2-border); border-radius: var(--wv2-r-xl); padding: 24px 28px;
}
.wv2-about__title { display: flex; align-items: center; gap: 8px; margin: 0 0 16px; padding-bottom: 12px; border-bottom: 1px solid var(--wv2-surface-subtle); font-size: 18px; font-weight: 700; color: var(--wv2-text); }
.wv2-about__title .fa { color: var(--wv2-primary); font-size: 14px; }
.wv2-about__ask { display: flex; justify-content: space-between; align-items: center; margin-top: 20px; padding-top: 14px; border-top: 1px solid var(--wv2-border); font-size: 13px; color: var(--wv2-text-muted); }
.wv2-about__ask a { font-weight: 700; color: var(--wv2-primary); text-decoration: none; }

/* Вкладка «Описание» в этом блоке всегда раскрыта и без своего заголовка */
.wv2-about .product-nav { max-width: none; margin: 0; padding: 0; }
.wv2-about .product-nav__inner { padding: 0; }
.wv2-about .panel-group > .panel:first-child > .panel-heading { display: none; }
.wv2-about #description.collapse { display: block !important; height: auto !important; visibility: visible !important; }
.wv2-about .panel { border: 0; box-shadow: none; background: transparent; }
.wv2-about #description .panel-body { padding: 0; font-size: 13px; line-height: 1.7; color: var(--wv2-text-muted); }
.wv2-about .wv2-features-block { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--wv2-surface-subtle); }
.wv2-about .wv2-features-block::before { content: "Характеристики букета"; display: block; margin-bottom: 10px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wv2-text-soft); }
.wv2-about .wv2-features-block td { font-size: 13px; }
.wv2-about__side .wv2-delivery-list li { margin-bottom: 16px; }

/* ==========================================================================
   ОФОРМЛЕНИЕ — шаги как в макете: «Доставка» (регион + способ + детали) в одной карточке
   ========================================================================== */
.wv2-order .wa-step-region-section { margin-bottom: 0; border-bottom: 0; border-radius: var(--o-r) var(--o-r) 0 0; padding-bottom: 0; box-shadow: none; }
.wv2-order .wa-step-region-section > .wa-section-body:empty,
.wv2-order .wa-step-region-section .wa-section-body { min-height: 0; }
.wv2-order .wa-step-shipping-section { margin: 0; border-top: 0; border-bottom: 0; border-radius: 0; padding-top: 4px; padding-bottom: 0; box-shadow: none; }
.wv2-order .wa-step-details-section { border-top: 0; border-radius: 0 0 var(--o-r) var(--o-r); padding-top: 16px; }
/* заголовки шагов — формулировки макета */
.wv2-order .wa-step-auth-section > .wa-section-header > .wa-header,
.wv2-order .wa-step-region-section > .wa-section-header > .wa-header,
.wv2-order .wa-step-payment-section > .wa-section-header > .wa-header { display: none !important; }
.wv2-order .wa-step-auth-section > .wa-section-header:after,
.wv2-order .wa-step-region-section > .wa-section-header:after,
.wv2-order .wa-step-payment-section > .wa-section-header:after {
    display: block; font-size: 20px; line-height: 1.2; font-weight: 700; color: var(--wv2-text);
}
.wv2-order .wa-step-auth-section > .wa-section-header:after { content: "Ваши контактные данные"; }
.wv2-order .wa-step-region-section > .wa-section-header:after { content: "Способ и адрес получения"; }
.wv2-order .wa-step-payment-section > .wa-section-header:after { content: "Способ оплаты"; }

/* ==========================================================================
   КАРТОЧКА ТОВАРА — артикул/наличие, бейдж на фото, «Флористы онлайн»
   ========================================================================== */
.wv2-head__meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 10px; }
.wv2-head__meta .product__articul { margin: 0; font-size: 13px; color: var(--wv2-text-soft); }
.wv2-head__meta .product__articul span { font-weight: 600; color: var(--wv2-text); }
.wv2-stock { display: inline-flex; align-items: center; gap: 6px; padding: 2px 8px; font-size: 13px; font-weight: 500; color: #047857; background: #ecfdf5; border: 1px solid #a7f3d0; border-radius: 6px; }
.wv2-stock i { width: 6px; height: 6px; border-radius: 50%; background: #10b981; }

.wv2-gallery-badge { position: absolute; top: 16px; left: 16px; z-index: 3; pointer-events: none; }
.wv2-gallery-badge * { position: static !important; }

.wv2-messengers { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--wv2-border); }
.wv2-messengers__label { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--wv2-text-muted); }
.wv2-messengers__label .fa { color: var(--wv2-primary); }
.wv2-messengers__list { display: flex; gap: 6px; flex-wrap: wrap; }
.wv2-messenger { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; font-size: 13px; font-weight: 600; line-height: 1.4; border-radius: 8px; border: 1px solid; text-decoration: none; transition: background .15s; }
.wv2-messenger--wa { color: #128c7e; background: rgba(37,211,102,.1); border-color: rgba(37,211,102,.3); }
.wv2-messenger--wa:hover { background: rgba(37,211,102,.2); }
.wv2-messenger--tg { color: #0088cc; background: rgba(0,136,204,.1); border-color: rgba(0,136,204,.3); }
.wv2-messenger--tg:hover { background: rgba(0,136,204,.2); }
.wv2-messenger--max { color: #0369a1; background: rgba(14,165,233,.1); border-color: rgba(14,165,233,.3); }
.wv2-messenger--max:hover { background: rgba(14,165,233,.2); }
.wv2-messenger img { border-radius: 50%; display: block; }
.wv2-messenger .fab { font-size: 13px; }

/* Ширина сайта 1340px: контентные полосы выровнены по контейнеру темы (отступ 20px) */
@media (min-width: 1024px) {
    #js-product-page .product > .row,
    #js-product-page .wv2-surprise,
    #js-product-page .wv2-about,
    .wv2-container, .product-nav, .wv2-advantages, .wv2-carousel-section, .wv2-order { padding-left: 20px; padding-right: 20px; }
}

/* Правки по сверке с макетом (страница с длинным резюме, цветовые характеристики) */
.wv2-about .panel-group { padding-top: 0 !important; margin-top: 0; }
.wv2-about .product-nav__inner { margin: 0; }
.wv2-about__main .product__summary { margin: 0 0 16px; font-size: 13px; line-height: 1.7; color: var(--wv2-text-muted); }
/* вкладки-страницы «Доставка» и «Оплата» дублируют карточку «Доставка и оплата» из макета */
.wv2-about .panel:has(> [id^="pages-"]) { display: none; }
/* в компактной карточке длинные значения (много цветов) не растягивают колонку */
.wv2-specs__body td.value { max-height: 3.4em; overflow: hidden; overflow-wrap: anywhere; }

/* ==========================================================================
   СВЕРКА С МАКЕТОМ (macket_product): шрифты, размеры, цвета — значения сняты с макета на ПК
   Montserrat — текст, Playfair Display — заголовки и цены, оливковый #536946
   ========================================================================== */
#js-product-page, .wv2-advantages, .wv2-carousel-section {
    font-family: 'Montserrat', sans-serif; color: #2C302E;
    --wv2-primary: #536946; --wv2-primary-dark: #425437; --wv2-primary-light: #f4f6f3;
    --wv2-border: #e7e5e4; --wv2-surface-subtle: #fafaf9;
}
#js-product-page *:not(i):not([class^="fa"]):not([class*=" fa"]),
.wv2-advantages *:not(i):not([class^="fa"]):not([class*=" fa"]),
.wv2-carousel-section *:not(i):not([class^="fa"]):not([class*=" fa"]) { font-family: inherit; }

#js-product-page .wv2-head .product__price-block__header,
#js-product-page .show-price .price,
#js-product-page .wv2-section-title,
#js-product-page .wv2-about__title,
.wv2-carousel-section .wv2-section-title,
.wv2-carousel__price-main { font-family: 'Playfair Display', serif !important; color: #1c1917; }

@media (min-width: 1024px) {
    /* верхняя сетка: 12 колонок, зазор 40px; фото 7/12, правая колонка 5/12 */
    #js-product-page .product > .row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 40px; row-gap: 0; align-items: start; }
    #js-product-page .product > .row > .col-6-lg:first-child { grid-column: span 7; max-width: none; flex: none; }
    #js-product-page .product > .row > .col-6-lg:last-child { grid-column: span 5; max-width: none; flex: none; }
    .wv2-about__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
    .wv2-about__main { grid-column: span 7; }
    .wv2-about__side { grid-column: span 5; }
}

/* правая колонка */
#js-product-page .wv2-head__meta { font-size: 13px; }
#js-product-page .wv2-head__meta .product__articul { color: #44403c; font-weight: 500; }
#js-product-page .wv2-head__meta .product__articul span { color: #44403c; font-weight: 600; }
#js-product-page .wv2-head .product__price-block__header { font-size: 30px; line-height: 1.375; font-weight: 700; margin: 0 0 16px; letter-spacing: 0; }
#js-product-page .wv2-head .rating-block { font-size: 13px; color: #44403c; margin: 0 0 16px; }
#js-product-page .product__price-block { padding: 16px; background: rgba(250,250,249,.8); border: 1px solid #e7e5e4; border-radius: 16px; }
#js-product-page .show-price .price { font-size: 30px; font-weight: 800; letter-spacing: -.02em; line-height: 36px; }
#js-product-page .show-price .compare-at-price { font-size: 14px; color: #44403c; }
#js-product-page .product__button__qty { height: 36px !important; }
#js-product-page .product__button__qty__inner { height: 36px; border: 1px solid #d6d3d1; border-radius: 8px; background: #fff; }
#js-product-page .product__button__qty__inner button, #js-product-page .product__button__qty__inner input { height: 34px; }
#js-product-page .product__button__fav { height: 36px !important; width: 36px !important; border: 1px solid #d6d3d1; border-radius: 8px; background: #fff; }
#js-product-page .product__price-block .btn.btn_one-click,
#js-product-page .product__price-block .product__button__btn .btn {
    min-height: 44px; height: 44px; padding: 12px; font-size: 13px; font-weight: 700; letter-spacing: .025em; border-radius: 12px;
}
#js-product-page .product__price-block .btn.btn_one-click { color: #536946; border: 2px solid #536946; background: #fff; }
#js-product-page .product__price-block .btn.btn_one-click:hover { background: #f5f5f4; color: #536946; }
#js-product-page .product__price-block .product__button__btn .btn { background: #536946; color: #fff; border: 0; }
#js-product-page .product__price-block .product__button__btn .btn:hover { background: #425437; }
#js-product-page .wv2-messengers { margin-top: 10px; padding-top: 10px; border-top: 1px solid #e7e5e4; }
#js-product-page .wv2-messengers__label { font-size: 13px; color: #44403c; }
#js-product-page .wv2-specs { margin-top: 16px; padding: 14px; background: #fafaf9; border: 1px solid #e7e5e4; border-radius: 16px; }
#js-product-page .wv2-specs__label { font-size: 13px; color: #44403c; }
#js-product-page .wv2-specs__body td.name { font-size: 13px; color: #44403c; }
#js-product-page .wv2-specs__body td.value { font-size: 13px; font-weight: 500; color: #292524; }
#js-product-page .wv2-specs__more { font-size: 13px; font-weight: 600; color: #536946; border-top: 1px solid #e7e5e4; }

/* галерея */
#js-product-page .product__gallery-image { border: 1px solid #e7e5e4; border-radius: 16px; background: #f5f5f4; }
#js-product-page .product__gallery__more-images .image { border: 2px solid #e7e5e4; border-radius: 12px; }
#js-product-page .product__gallery__more-images .image.selected { border-color: #536946; }

/* «О букете» */
#js-product-page .wv2-about { margin-top: 48px; padding-top: 40px; border-top: 1px solid #e7e5e4; }
#js-product-page .wv2-about__head { margin-bottom: 24px; }
#js-product-page .wv2-about .wv2-section-title { font-size: 24px; line-height: 32px; margin: 0 0 8px; }
#js-product-page .wv2-about .wv2-section-sub { font-size: 13px; color: #44403c; margin: 0; }
#js-product-page .wv2-about__grid { gap: 32px; }
#js-product-page .wv2-about__main, #js-product-page .wv2-about__side { padding: 32px; background: #fff; border: 1px solid #e7e5e4; border-radius: 16px; }
#js-product-page .wv2-about__title { font-size: 18px; line-height: 28px; font-weight: 700; padding-bottom: 12px; margin-bottom: 16px; border-bottom: 1px solid #f5f5f4; }
#js-product-page .wv2-about #description .panel-body,
#js-product-page .wv2-about__main .product__summary { font-size: 13px; line-height: 1.625; color: #141414; }
#js-product-page .wv2-about .wv2-features-block td { font-size: 13px; padding: 4px 0; }
#js-product-page .wv2-about .wv2-features-block tr { border-bottom: 1px solid #f5f5f4; }
#js-product-page .wv2-about .wv2-features-block td.name { color: #44403c; }
#js-product-page .wv2-about .wv2-features-block td.value { color: #292524; font-weight: 500; }
#js-product-page .wv2-delivery-list li { font-size: 13px; line-height: 18px; color: #141414; margin-bottom: 14px; }
#js-product-page .wv2-delivery-list strong { font-size: 13px; font-weight: 600; color: #292524; }
#js-product-page .wv2-about__ask { font-size: 13px; color: #44403c; border-top: 1px solid #e7e5e4; }

/* «Дополнить сюрприз» / «Похожие» / преимущества */
#js-product-page .wv2-surprise .wv2-section-title { font-size: 20px; line-height: 28px; margin: 0; }
#js-product-page .wv2-surprise .wv2-section-sub, .wv2-carousel-section .wv2-section-sub { font-size: 13px; color: #44403c; margin: 0; }
.wv2-carousel-section .wv2-section-title { font-size: 24px; line-height: 32px; margin: 0; }
.wv2-carousel-section { margin-top: 48px; padding-top: 40px; border-top: 1px solid #e7e5e4; }
.wv2-carousel__card { padding: 14px; border: 1px solid #e7e5e4; border-radius: 16px; background: #fff; }
.wv2-carousel__name { font-size: 13px; font-weight: 500; line-height: 1.375; color: #292524; }
.wv2-carousel__price-main { font-size: 14px; line-height: 20px; font-weight: 700; }
.wv2-carousel__btn { font-size: 13px; font-weight: 600; padding: 6px 12px; border-radius: 8px; background: #536946; }
.wv2-carousel__btn:hover { background: #425437; }
.wv2-advantage { padding: 16px; background: #FAF9F6; border: 1px solid #e7e5e4; border-radius: 12px; }
.wv2-advantage h4 { font-size: 13px; font-weight: 700; color: #1c1917; }
.wv2-advantage p { font-size: 13px; line-height: 1.625; color: #44403c; }
#js-product-page .product__price-block_inner { background: none; padding: 0; border: 0; box-shadow: none; }
#js-product-page .wv2-specs__body td.name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ==========================================================================
   Миниатюры: без горизонтальной прокрутки (тема даёт .image margin-right:5px)
   ========================================================================== */
#js-product-page .product__gallery .product__gallery__more-images { overflow-x: hidden !important; overflow-y: auto; scrollbar-width: thin; }
#js-product-page .product__gallery .product__gallery__more-images .image { margin: 0 !important; box-sizing: border-box; overflow: hidden; }
#js-product-page .product__gallery .product__gallery__more-images .image a { display: block; width: 100%; height: 100%; }
#js-product-page .product__gallery .product__gallery__more-images .image img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* ==========================================================================
   «Купить в 1 клик» — форма из макета (macket_product, FastOrderModal)
   ========================================================================== */
#js-product-page .btn.btn_one-click { display: inline-flex; align-items: center; justify-content: center; gap: 6px; font-family: 'Montserrat', sans-serif; }
#js-product-page .btn.btn_one-click .fa, #js-product-page .btn.btn_one-click .fas { color: #f59e0b; font-size: 13px; }

body.wv2-oc-lock { overflow: hidden; }
.wv2-oc, .wv2-oc * { box-sizing: border-box; }
.wv2-oc {
    position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center;
    padding: 16px; overflow-y: auto; background: rgba(28, 25, 23, .6); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
    font-family: 'Montserrat', sans-serif; color: #44403c;
}
.wv2-oc[hidden] { display: none; }
.wv2-oc__box {
    position: relative; width: 100%; max-width: 512px; margin: auto; padding: 24px; background: #fff;
    border: 1px solid #f5f5f4; border-radius: 24px; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25);
}
@media (min-width: 640px) { .wv2-oc__box { padding: 32px; } }
.wv2-oc__close {
    position: absolute; top: 20px; right: 20px; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center;
    border: 0; border-radius: 50%; background: #f5f5f4; color: #44403c; font-size: 14px; cursor: pointer; transition: color .15s;
}
.wv2-oc__close:hover { color: #44403c; }
.wv2-oc__head { padding-right: 32px; margin-bottom: 16px; }
.wv2-oc__title { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.wv2-oc__bolt { flex: 0 0 28px; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(83, 105, 70, .1); color: #f59e0b; font-size: 13px; }
.wv2-oc__title h3 { margin: 0; font-family: 'Playfair Display', serif; font-size: 24px; line-height: 32px; font-weight: 700; color: #1c1917; }
.wv2-oc__head p { margin: 0; font-size: 13px; line-height: 1.625; color: #44403c; }

.wv2-oc__item { display: flex; align-items: center; gap: 14px; padding: 12px; margin-bottom: 20px; background: #fafaf9; border: 1px solid rgba(231, 229, 228, .8); border-radius: 16px; }
.wv2-oc__item img { flex: 0 0 56px; width: 56px; height: 56px; border-radius: 12px; object-fit: cover; }
.wv2-oc__item-info { flex: 1; min-width: 0; }
.wv2-oc__item-name { margin: 0; font-size: 14px; line-height: 20px; font-weight: 700; color: #292524; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wv2-oc__item-price { display: flex; align-items: baseline; gap: 8px; margin-top: 2px; }
.wv2-oc__price { font-family: 'Playfair Display', serif; font-size: 16px; line-height: 24px; font-weight: 800; color: #536946; }
.wv2-oc__compare { font-size: 13px; color: #44403c; text-decoration: line-through; }
.wv2-oc__price *, .wv2-oc__compare * { font: inherit; color: inherit; }

.wv2-oc__form { display: block; margin: 0; }
.wv2-oc__form > * + * { margin-top: 16px; }
.wv2-oc__address { padding: 14px; background: rgba(244, 246, 243, .7); border: 1px solid rgba(214, 222, 208, .8); border-radius: 16px; }
.wv2-oc__address > * + * { margin-top: 10px; }
.wv2-oc__row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.wv2-oc__row label, .wv2-oc__subtitle { margin: 0; font-size: 13px; line-height: 18px; font-weight: 700; color: #1c1917; }
.wv2-oc__row label .fas { margin-right: 6px; color: #536946; font-size: 14px; }
.wv2-oc__req { color: #e11d48; }
.wv2-oc__pill {
    padding: 2px 8px; border: 1px solid #d6ded0; border-radius: 9999px; background: #fff;
    font-size: 13px; line-height: 18px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: #536946;
}
.wv2-oc__pill--gray { border-color: transparent; background: #f5f5f4; color: #44403c; }
.wv2-oc__input {
    display: block; width: 100%; height: auto; padding: 10px 14px; margin: 0; background: #fff; color: #292524;
    border: 1px solid #d6d3d1; border-radius: 12px; box-shadow: none; outline: 0;
    font-family: 'Montserrat', sans-serif; font-size: 14px; line-height: 20px;
}
.wv2-oc__input::placeholder { color: #44403c; }
.wv2-oc__input:focus { border-color: #536946; box-shadow: 0 0 0 1px #536946; }
.wv2-oc__input.is-error { border-color: #e11d48; box-shadow: 0 0 0 1px #e11d48; }
.wv2-oc__input.is-disabled, .wv2-oc__input:disabled { background: #f5f5f4; }
.wv2-oc__check, .wv2-oc__consent { display: flex; align-items: flex-start; gap: 8px; margin: 0; font-size: 13px; line-height: 1.375; cursor: pointer; user-select: none; }
.wv2-oc__check { align-items: center; color: #141414; }
.wv2-oc__consent { color: #44403c; }
.wv2-oc__consent a { color: #44403c; text-decoration: underline; }
.wv2-oc__consent a:hover { color: #536946; }
.wv2-oc input[type="checkbox"] { flex: 0 0 16px; width: 16px; height: 16px; margin: 0; accent-color: #536946; }
.wv2-oc__consent input[type="checkbox"] { margin-top: 2px; }
.wv2-oc__contacts > * + * { margin-top: 12px; }
.wv2-oc__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
@media (min-width: 640px) { .wv2-oc__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.wv2-oc__label { display: block; margin: 0 0 4px; font-size: 13px; line-height: 18px; font-weight: 600; color: #44403c; }
.wv2-oc__error { margin: 0; padding: 8px 12px; border-radius: 10px; background: #fff1f2; color: #be123c; font-size: 13px; line-height: 1.4; }
.wv2-oc__error[hidden] { display: none; }
.wv2-oc__submit {
    display: flex; align-items: center; justify-content: center; width: 100%; padding: 14px; border: 0; border-radius: 12px;
    background: #536946; color: #fff; font-family: 'Montserrat', sans-serif; font-size: 14px; line-height: 20px; font-weight: 700; letter-spacing: .025em;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1); cursor: pointer; transition: background .15s, transform .1s;
}
.wv2-oc__submit:hover { background: #425437; }
.wv2-oc__submit:active { transform: scale(.98); }
.wv2-oc__submit:disabled { opacity: .7; cursor: default; }
.wv2-oc__submit * { font: inherit; color: inherit; }
.wv2-oc__trust { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 16px; padding-top: 16px; border-top: 1px solid #f5f5f4; text-align: center; font-size: 13px; line-height: 1.4; color: #44403c; }
.wv2-oc__trust > div { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.wv2-oc__trust .fas { color: #536946; font-size: 13px; }

/* ==========================================================================
   Фото и правая колонка — одной высоты (как в макете: рамка фото тянется до низа правого блока)
   ========================================================================== */
@media (min-width: 1024px) {
    #js-product-page .product > .row { align-items: stretch; }
    #js-product-page .product__gallery { margin-top: 0 !important; top: 0 !important; }
    #js-product-page .product__gallery .product__gallery-image { max-height: none !important; }
    #js-product-page .product > .row > div:first-child { display: flex; }
    #js-product-page .product > .row > div:first-child > .product__gallery { flex: 1 1 auto; min-width: 0; align-items: stretch; }
    #js-product-page .product__gallery .product__gallery__more-images { align-self: flex-start; }
    #js-product-page .product__gallery .product__gallery-image { position: relative; min-height: 580px; }
    #js-product-page .product__gallery .product__slider-product { position: absolute; top: 0; right: 0; bottom: 0; left: 0; height: auto; }
    #js-product-page .product__gallery .js-product-image-slider,
    #js-product-page .product__gallery .slick-list,
    #js-product-page .product__gallery .slick-track,
    #js-product-page .product__gallery .slick-slide { height: 100% !important; }
    #js-product-page .product__gallery .product__gallery-image img { height: 100% !important; max-height: none !important; width: 100%; object-fit: cover; }
    #js-product-page .product__gallery .slick-dots { display: none !important; }
}

/* ==========================================================================
   «Состав и размер букета»: «Цветы» и «Размер» строками, ниже сетка 2×2 (как в макете)
   ========================================================================== */
#js-product-page .wv2-specs__summary { margin: 0 0 12px; padding: 0 0 10px; border-bottom: 1px solid #e7e5e4; font-size: 13px; line-height: 1.5; color: #44403c; }
#js-product-page .wv2-specs__summary > div + div { margin-top: 4px; }
#js-product-page .wv2-specs__summary b { font-weight: 700; color: #292524; }
#js-product-page .wv2-specs__body tr.is-size { display: none !important; }

/* «В корзину» с иконкой корзины, как в макете */
#js-product-page .product__button__btn .btn .fas { margin-right: 6px; font-size: 13px; }

/* «О букете»: в карточке нет категорий и тегов (в макете их нет), «Отзывы» — компактной строкой */
.wv2-about__main .tags { display: none; }
.wv2-about__main .panel:has(> .panel-heading .review-scroll) { margin-top: 20px; padding-top: 12px; border-top: 1px solid #f5f5f4; }
.wv2-about__main .panel-heading .review-scroll { font-size: 13px; font-weight: 600; color: #536946; }
.wv2-about__main .panel-heading .panel-title { font-size: 13px; }

/* Карусели: без полосы прокрутки под карточками, сердечко на фото (как в макете) */
.wv2-carousel__track { scrollbar-width: none; -ms-overflow-style: none; }
.wv2-carousel__track::-webkit-scrollbar { display: none; height: 0; }
.wv2-carousel__card { position: relative; }
.wv2-carousel__fav {
    position: absolute; top: 24px; right: 24px; z-index: 3; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center;
    border-radius: 50%; background: rgba(255, 255, 255, .9); color: #141414; cursor: pointer; transition: color .15s, background .15s;
}
.wv2-carousel__fav:hover { background: #fff; color: #e11d48; }
.wv2-carousel__fav svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; }
.wv2-carousel__fav.active { color: #e11d48; }
.wv2-carousel__fav.active svg { fill: currentColor; }

/* ==========================================================================
   ФИНАЛЬНАЯ СВЕРКА С МАКЕТОМ (значения сняты с macket_product при ширине 1440px)
   Фото 580px в рамке, рамка тянется до низа правого блока (как в макете).
   ========================================================================== */
@media (min-width: 1024px) {
    /* фото: 580px; рамка растягивается по высоте правой колонки, ниже фото остаётся фон рамки */
    #js-product-page .product__gallery .product__gallery-image { position: relative; min-height: 0; max-height: none !important; }
    #js-product-page .product__gallery .product__slider-product { position: static; height: auto; }
    #js-product-page .product__gallery .js-product-image-slider,
    #js-product-page .product__gallery .slick-list,
    #js-product-page .product__gallery .slick-track,
    #js-product-page .product__gallery .slick-slide { height: auto !important; }
    #js-product-page .product__gallery .product__gallery-image img { height: 580px !important; max-height: none !important; width: 100%; object-fit: cover; }
}

/* шапка правой колонки */
#js-product-page .wv2-head { margin: 0 0 16px; }
#js-product-page .wv2-head__meta { display: flex; align-items: center; justify-content: space-between; margin: 0 0 16px; font-size: 13px; line-height: 18px; min-height: 22px; }
#js-product-page .wv2-head__meta .product__articul { margin: 0; font-size: 13px; line-height: 18px; }
#js-product-page .wv2-stock {
    display: inline-flex; align-items: center; padding: 2px 8px; border: 1px solid #a7f3d0; border-radius: 4px;
    background: #ecfdf5; color: #047857; font-size: 13px; line-height: 18px; font-weight: 500;
}
#js-product-page .wv2-stock i { display: block; width: 6px; height: 6px; margin-right: 6px; border-radius: 9999px; background: #10b981; }
#js-product-page .wv2-head .product__price-block__header { font-size: 30px; line-height: 36px; font-weight: 700; margin: 0 0 16px; letter-spacing: 0; }
#js-product-page .wv2-head .rating-block { margin: 0; font-size: 13px; line-height: 18px; }
#js-product-page .wv2-head .rating-block .review-count { margin-left: 10px; line-height: 16px; color: #44403c; }

/* карточка цены: 16px, строка цены, кнопки 48px, строка «Флористы онлайн» */
#js-product-page .product__price-block { margin: 0; padding: 16px; border: 1px solid #e7e5e4; border-radius: 16px; background: rgba(250, 250, 249, .8); box-shadow: none; }
#js-product-page .product__price-block_inner,
#js-product-page .product__price-block form { padding: 0; margin: 0; background: none; border: 0; box-shadow: none; }
#js-product-page .price-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 0; }
#js-product-page .price-top__left { width: auto !important; flex: 1 1 auto; }
#js-product-page .price-top__right { width: auto !important; flex: 0 0 auto; display: flex; align-items: center; justify-content: flex-end; column-gap: 8px !important; }
#js-product-page .show-price { margin: 0; line-height: 36px; align-items: baseline; }
#js-product-page .show-price .price { margin: 0 8px 0 0; font-size: 30px; line-height: 36px; font-weight: 800; letter-spacing: -.75px; color: #1c1917; }
#js-product-page .show-price .compare-at-price { font-size: 14px; line-height: 20px; color: #44403c; }
#js-product-page .price-top .services { margin: 6px 0 0; font-size: 13px; line-height: 18px; }
#js-product-page .product__button__qty { margin: 0 !important; height: 36px !important; }
#js-product-page .product__button__qty__inner { height: 36px; border: 1px solid #d6d3d1; border-radius: 8px; background: #fff; }
#js-product-page .product__button__qty__inner button { width: 32px; height: 34px; }
#js-product-page .product__button__qty__inner input { width: 28px; height: 34px; font-size: 13px; font-weight: 700; color: #292524; }
#js-product-page .product__button__fav { width: 36px !important; height: 36px !important; margin: 0; border: 1px solid #d6d3d1; border-radius: 8px; background: #fff; }
#js-product-page .product__purchase { padding: 0 !important; margin: 16px 0 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; position: static !important; }
#js-product-page .product__button.add2cart { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; column-gap: 10px; }
#js-product-page .product__button.add2cart .product__button__btn { width: auto !important; margin: 0 !important; flex: none !important; }
#js-product-page .product__button.add2cart .btn_one-click { width: auto !important; }
#js-product-page .product__price-block .btn.btn_one-click,
#js-product-page .product__price-block .product__button__btn .btn {
    display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; height: 48px; min-height: 48px; padding: 12px; margin: 0;
    border-radius: 12px; font-size: 14px; line-height: 20px; font-weight: 700; letter-spacing: .35px; box-shadow: none;
}
#js-product-page .product__price-block .btn.btn_one-click { border: 2px solid #536946; color: #536946; background: #fff; }
#js-product-page .product__price-block .product__button__btn .btn { border: 0; color: #fff; background: #536946; }
#js-product-page .product__price-block .btn.btn_one-click .fas, #js-product-page .product__price-block .btn.btn_one-click .fa { font-size: 14px; color: #f59e0b; margin: 0; }
#js-product-page .product__price-block .product__button__btn .btn .fas { font-size: 13px; margin: 0; }
#js-product-page .wv2-messengers {
    display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 16px 0 0; padding: 10px 0 0; border-top: 1px solid #e7e5e4; background: none;
}
#js-product-page .wv2-messengers__label { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; line-height: 18px; color: #44403c; }
#js-product-page .wv2-messengers__label i { color: #536946; font-size: 13px; }
#js-product-page .wv2-messengers__list { display: flex; align-items: center; gap: 6px; }
#js-product-page .wv2-messenger { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border: 1px solid; border-radius: 8px; font-size: 13px; line-height: 18px; font-weight: 600; text-decoration: none; }
#js-product-page .wv2-messenger i { font-size: 13px; }
#js-product-page .wv2-messenger--wa { color: #128c7e; background: rgba(37, 211, 102, .1); border-color: rgba(37, 211, 102, .3); }
#js-product-page .wv2-messenger--wa i { color: #25d366; }
#js-product-page .wv2-messenger--tg { color: #0088cc; background: rgba(0, 136, 204, .1); border-color: rgba(0, 136, 204, .3); }
#js-product-page .wv2-messenger--tg i { color: #0088cc; }
#js-product-page .wv2-messenger--max { color: #0369a1; background: rgba(14, 165, 233, .1); border-color: rgba(14, 165, 233, .3); }

/* «Состав и размер букета» */
#js-product-page .wv2-specs { margin: 16px 0 0; padding: 14px; border: 1px solid #e7e5e4; border-radius: 16px; background: #fafaf9; }
#js-product-page .wv2-specs__label { display: block; margin: 0 0 4px; font-size: 13px; line-height: 18px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: #44403c; }
#js-product-page .wv2-specs__summary { margin: 0 0 10px; padding: 0 0 8px; border-bottom: 1px solid rgba(231, 229, 228, .8); font-size: 13px; line-height: 19.5px; font-weight: 400; color: #44403c; }
#js-product-page .wv2-specs__summary > div { margin: 0; }
#js-product-page .wv2-specs__summary > div:first-child { margin-bottom: 2px; }
#js-product-page .wv2-specs__summary b { font-weight: 600; color: #1c1917; }
#js-product-page .wv2-specs__body tbody { gap: 8px; }
#js-product-page .wv2-specs__body td.name { font-size: 13px; line-height: 18px; font-weight: 400; color: #44403c; padding: 0; }
#js-product-page .wv2-specs__body td.name::after { content: ":"; }
#js-product-page .wv2-specs__body td.value { font-size: 13px; line-height: 18px; font-weight: 500; color: #292524; padding: 0; }
#js-product-page .wv2-specs__body td.value span { line-height: 16px; }
#js-product-page .wv2-specs__more { margin: 10px 0 0; padding: 8px 0 0; border-top: 1px solid #e7e5e4; font-size: 13px; line-height: 18px; font-weight: 600; gap: 4px; }

/* подгонка высоты правой колонки под макет (597px): услуга в одну строку, значения состава в одну строку */
#js-product-page .price-top .services { margin: 2px 0 0; font-size: 13px; line-height: 18px; }
#js-product-page .price-top .services * { line-height: 18px; font-size: 13px; }
#js-product-page .wv2-specs__body td.value { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#js-product-page .wv2-specs__body td { border: 0 !important; padding: 0 !important; }
#js-product-page .wv2-specs__body td.value .icon16 { width: 8px; height: 8px; margin: 0 4px 0 0; vertical-align: baseline; }
#js-product-page .price-top .services .checkbox { display: flex; align-items: center; gap: 6px; height: 17px; margin: 0; padding: 0; }
#js-product-page .price-top .services .checkbox input { margin: 0; flex: none; }
#js-product-page .price-top .services .ruble { line-height: 1; }

/* «О букете»: заголовок секции и строка «Остались вопросы?» по макету */
.wv2-about .wv2-section-title, .wv2-carousel-section .wv2-section-title { letter-spacing: 0; }
.wv2-about .wv2-section-sub { margin: 0; line-height: 16px; }
.wv2-about__head { margin: 0 0 24px; }
.wv2-about__ask { margin-top: 24px; padding-top: 16px; font-size: 13px; line-height: 18px; border-top: 1px solid rgba(231, 229, 228, .7); }
.wv2-about__ask span, .wv2-about__ask a { line-height: 16.5px; }

/* Преимущества */
.wv2-advantages { margin-top: 40px; margin-bottom: 8px; }
.wv2-advantage { gap: 14px; border-color: rgba(231, 229, 228, .8); }
.wv2-advantage__icon { background: rgba(83, 105, 70, .1); }
.wv2-advantage h4 { margin: 0; line-height: 16.5px; letter-spacing: -.3px; }
.wv2-advantage p { margin: 2px 0 0; }

/* Карусель «Похожие букеты»: карточки 260px, цена и кнопка в одну строку */
.wv2-carousel__head { margin-bottom: 24px; }
.wv2-carousel .wv2-section-sub { margin: 4px 0 0; line-height: 16px; }
.wv2-carousel__arrows { gap: 8px; }
.wv2-carousel__arrow {
    display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0; margin: 0;
    border: 1px solid #d6d3d1; border-radius: 9999px; background: #fff; color: #141414; font-size: 14px; line-height: 1;
}
.wv2-carousel__arrow:hover { background: #f5f5f4; }
.wv2-carousel-section .wv2-carousel__track { gap: 20px; padding-bottom: 16px; }
.wv2-carousel-section .wv2-carousel__card { flex: 0 0 260px; width: 260px; min-width: 260px; max-width: 260px; padding: 14px; }
.wv2-carousel-section .wv2-carousel__img { margin: 0 0 12px; border-radius: 12px; }
.wv2-carousel__fav { top: 25px; right: 25px; }
.wv2-carousel__bottom { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0; padding-top: 8px; border-top: 1px solid #f5f5f4; }
.wv2-carousel__price { margin: 0 !important; font-family: 'Playfair Display', serif; }
.wv2-carousel__price s { font-size: 13px; color: #44403c; margin-left: 6px; }
.wv2-carousel__bottom form { margin: 0; }
.wv2-carousel__btn { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; line-height: 18px; font-weight: 600; padding: 6px 12px; border-radius: 8px; }
.wv2-carousel__btn .fa { font-size: 13px; }

/* Вертикальные фото (3:4): сетка 6/6, фото заполняет рамку целиком (cover), без размытых полей */
#js-product-page .product__gallery-image .js-product-image-slider li img { object-fit: cover !important; }
@media (min-width: 1024px) {
    #js-product-page .product > .row > .col-6-lg:first-child { grid-column: span 6; }
    #js-product-page .product > .row > .col-6-lg:last-child { grid-column: span 6; }
    .wv2-about__main { grid-column: span 6; }
    .wv2-about__side { grid-column: span 6; }
    #js-product-page .product__gallery .product__gallery-image { position: relative; min-height: 580px; }
    #js-product-page .product__gallery .product__slider-product { position: absolute; top: 0; right: 0; bottom: 0; left: 0; height: auto; }
    #js-product-page .product__gallery .js-product-image-slider,
    #js-product-page .product__gallery .slick-list,
    #js-product-page .product__gallery .slick-track,
    #js-product-page .product__gallery .slick-slide { height: 100% !important; }
    #js-product-page .product__gallery .product__gallery-image img { height: 100% !important; }
}

/* «Флористы онлайн:» — текст чуть крупнее */
#js-product-page .wv2-messengers__label { font-size: 13px; line-height: 18px; gap: 6px; }
#js-product-page .wv2-messengers__label i { font-size: 13px; }

/* «Состав и размер»: значения показываем до двух строк, чтобы длинные списки (повод и т.п.) читались */
#js-product-page .wv2-specs__body td.value {
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2;
    white-space: normal; overflow: hidden; text-overflow: ellipsis; word-break: break-word;
}
#js-product-page .wv2-specs__body td, #js-product-page .wv2-specs__body td.name, #js-product-page .wv2-specs__body td.value { width: 100% !important; max-width: none !important; box-sizing: border-box; }

/* «Дополнить сюрприз к букету»: карточки как в макете (240px, фото квадрат, «+ Добавить») */
.wv2-surprise .wv2-carousel__track { gap: 16px; padding-bottom: 12px; }
.wv2-surprise .wv2-carousel__card--compact { flex: 0 0 240px; width: 240px; min-width: 240px; max-width: 240px; padding: 12px; border-radius: 16px; }
.wv2-surprise .wv2-carousel__card--compact .wv2-carousel__img { margin: 0 0 10px; }
.wv2-surprise .wv2-carousel__card--compact .wv2-carousel__name { margin: 0 0 8px; font-weight: 700; }
.wv2-surprise .wv2-carousel__card--compact .wv2-carousel__fav { top: 22px; right: 22px; }
.wv2-surprise .wv2-carousel__card--compact .wv2-carousel__price { font-family: 'Montserrat', sans-serif; }
.wv2-surprise .wv2-carousel__card--compact .wv2-carousel__price-main { font-family: 'Montserrat', sans-serif; font-size: 13px; line-height: 18px; font-weight: 700; }
.wv2-carousel__btn--light { background: #f5f5f4; color: #2c302e; padding: 4px 10px; border-radius: 8px; }
.wv2-carousel__btn--light:hover { background: #536946; color: #fff; }

/* 1 клик: правка отступов полей и круглый крестик (старые стили темы на button/input перебивали модалку) */
#wv2-oneclick .wv2-oc__close {
    position: absolute; top: 16px; right: 16px; width: 36px; height: 36px; min-width: 0; min-height: 0; padding: 0; margin: 0;
    display: flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; line-height: 1;
    background: #f5f5f4; color: #44403c; box-shadow: none; cursor: pointer;
}
#wv2-oneclick .wv2-oc__close:hover { background: #e7e5e4; color: #141414; }
#wv2-oneclick .wv2-oc__close svg { display: block; width: 14px; height: 14px; }
#wv2-oneclick .wv2-oc__input {
    display: block; width: 100%; min-height: 46px; height: auto; margin: 0; padding: 12px 16px; border-radius: 12px;
    font-size: 14px; line-height: 20px; text-indent: 0;
}
#wv2-oneclick .wv2-oc__submit { min-height: 52px; padding: 14px 20px; border-radius: 12px; }
#wv2-oneclick .wv2-oc__form > * + * { margin-top: 18px; }
#wv2-oneclick .wv2-oc__address { padding: 16px; }
#wv2-oneclick .wv2-oc__address > * + * { margin-top: 12px; }
#wv2-oneclick .wv2-oc__label { margin: 0 0 6px; }
#wv2-oneclick .wv2-oc__grid { gap: 14px; }
#wv2-oneclick .wv2-oc__check, #wv2-oneclick .wv2-oc__consent { padding: 0; }

/* Хлебные крошки карточки: название товара последним, длинное обрезается */
#js-product-page > .wv2-breadcrumbs { margin: 16px 0 20px; }
#js-product-page > .wv2-breadcrumbs ol { flex-wrap: nowrap; overflow: hidden; font-size: 13px; line-height: 18px; }
#js-product-page > .wv2-breadcrumbs li { flex: 0 0 auto; margin: 0; padding: 0; white-space: nowrap; }
#js-product-page > .wv2-breadcrumbs li:before { display: none; }
#js-product-page > .wv2-breadcrumbs .current { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; color: var(--wv2-text); font-weight: 600; }

/* Бонусы под ценой (как в макете: «Вернем 545 бонусов (5%) на счет») */
#js-product-page .wv2-bonus { display: flex; align-items: center; gap: 6px; margin: 4px 0 0; font-size: 13px; line-height: 18px; font-weight: 500; color: #047857; }
#js-product-page .wv2-bonus .fas { font-size: 13px; }
#js-product-page .wv2-bonus b { font-weight: 700; }

/* Название — 24px и не больше двух строк, чтобы высота правого блока (и фото рядом) не прыгала */
#js-product-page .wv2-head .product__price-block__header.category-name {
    font-size: 24px; line-height: 30px; min-height: 60px; margin: 0 0 16px;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden;
}
@media (min-width: 1024px) {
    /* правый столбец не ниже макета и растягивает блок «Состав и размер», поэтому низ фото и низ блока совпадают */
    #js-product-page .product > .row > .col-6-lg:last-child { display: flex; flex-direction: column; min-height: 596px; }
    #js-product-page .product > .row > .col-6-lg:last-child > .wv2-specs { flex: 1 1 auto; }
}

/* «Дополнить сюрприз» → «О букете»: одна линия (у блока «О букете») и один отступ вместо двух линий */
#js-product-page .wv2-surprise { padding-bottom: 0; margin-bottom: 0; border-bottom: 0; }
#js-product-page .wv2-surprise + .wv2-about, #js-product-page .wv2-surprise ~ .wv2-about { margin-top: 32px; }
#js-product-page .wv2-specs__body tr.is-fit-hidden { display: none !important; }

/* Цвет в составе и характеристиках: кружок цвета и название — с отступом */
#js-product-page .wv2-specs__body td.value .icon16,
.wv2-about .wv2-features-block td.value .icon16 {
    display: inline-block; width: 12px; height: 12px; margin: 0 8px 0 0; font-size: 12px; line-height: 12px; vertical-align: -1px; border-radius: 50%;
}

/* «Чат на сайте» (JivoSite) в строке «Флористы онлайн» */
#js-product-page .wv2-messenger--jivo { margin: 0; cursor: pointer; font-family: inherit; color: #425437; background: rgba(83, 105, 70, .1); border-color: rgba(83, 105, 70, .3); }
#js-product-page .wv2-messenger--jivo i { color: #536946; }
#js-product-page .wv2-messenger--jivo:hover { background: rgba(83, 105, 70, .2); }
#js-product-page .wv2-messengers__list { flex-wrap: wrap; }

/* Цены в карточках «Дополнить сюрприз» и «Похожие букеты» — 18px на ПК */
@media (min-width: 1024px) {
    body .wv2-carousel .wv2-carousel__price .wv2-carousel__price-main,
    body .wv2-surprise .wv2-carousel__card--compact .wv2-carousel__price-main { font-size: 18px; line-height: 24px; font-weight: 700; }
    body .wv2-carousel .wv2-carousel__price s { font-size: 14px; }
}

/* «О букете…»: единый шрифт 14px для описания, характеристик и доставки */
#js-product-page .wv2-about__main,
#js-product-page .wv2-about__main p,
#js-product-page .wv2-about__main li,
#js-product-page .wv2-about__main td,
#js-product-page .wv2-about__main .product__summary,
#js-product-page .wv2-about__main .panel-body,
#js-product-page .wv2-about__side,
#js-product-page .wv2-about__side li,
#js-product-page .wv2-about__side td,
#js-product-page .wv2-about__side .wv2-delivery-list li > div,
#js-product-page .wv2-about__side .wv2-delivery-list strong,
#js-product-page .wv2-about__side .wv2-features-block td { font-size: 14px; line-height: 1.6; }
#js-product-page .wv2-about__side .wv2-delivery-list strong { display: block; font-weight: 700; color: #1c1917; }
#js-product-page .wv2-about__ask, #js-product-page .wv2-about__ask a { font-size: 14px; }
/* характеристики справа: заголовок-метка и таблица на всю ширину колонки */
#js-product-page .wv2-about__side .wv2-features-block { margin: 0 0 28px; padding: 0 0 24px; border: 0; border-bottom: 1px solid #e7e5e4; }
#js-product-page .wv2-about__side .wv2-features-block::before { font-size: 13px; line-height: 18px; margin: 0 0 12px; }
#js-product-page .wv2-about__side .wv2-features-block table { width: 100%; }
#js-product-page .wv2-about__side .wv2-features-block td.name { width: 42%; padding-right: 16px; color: #44403c; vertical-align: top; }
#js-product-page .wv2-about__side .wv2-features-block td.value { font-weight: 500; color: #292524; }

/* ==========================================================================
   ОФОРМЛЕНИЕ ЗАКАЗА — сверка с макетом macker_carrt (PC 1440, контейнер 1340)
   Разметку формы и корзины рендерит ядро Shop-Script; здесь только внешний вид.
   Итоги и кнопка в правой карточке собирает order.html (зеркало блока подтверждения).
   ========================================================================== */
.wv2-order { --o-r: 12px; --o-line: #e5e7eb; --o-line-soft: #f3f4f6; --o-ink: #111827; --o-text: #44403c; --o-olive: var(--wv2-primary, #65804d); --o-olive-bg: #f7f9f5; --o-olive-chip: #eef3e8; }

/* шапка страницы */
.wv2-order__head { margin: 20px 0 28px !important; align-items: flex-end !important; }
.wv2-order__title { font-size: 30px !important; line-height: 36px !important; font-weight: 700 !important; letter-spacing: -.025em !important; color: var(--o-ink) !important; }
.wv2-order__sub { margin: 4px 0 0 !important; font-size: 14px !important; line-height: 20px !important; color: var(--o-text) !important; }
.wv2-order__chip { padding: 8px 12px !important; border: 1px solid var(--o-line) !important; border-radius: 8px !important; font-size: 13px !important; line-height: 18px !important; font-weight: 500 !important; color: var(--o-ink) !important; box-shadow: 0 1px 2px rgba(0,0,0,.04) !important; }
.wv2-order__chip:before { width: 8px !important; height: 8px !important; background: var(--o-olive) !important; }
.wv2-order__crumbs { font-size: 13px !important; line-height: 18px !important; font-weight: 500 !important; }
.wv2-order__crumbs li:last-child { color: var(--o-olive) !important; font-weight: 700 !important; }

/* две колонки 7/5 по 12-колоночной сетке макета */
.wv2-order #js-order-page { grid-template-columns: repeat(12, minmax(0, 1fr)) !important; gap: 32px !important; }
.wv2-order .order-page__leftside { grid-column: span 7 !important; }
.wv2-order .order-page__rightside { grid-column: span 5 !important; top: 16px !important; align-self: start !important; }
@media (max-width: 900px) { .wv2-order .order-page__leftside, .wv2-order .order-page__rightside { grid-column: auto !important; } }

/* карточки-шаги */
.wv2-order .wa-step-section { padding: 28px !important; margin: 0 0 24px !important; border: 1px solid var(--o-line) !important; border-radius: var(--o-r) !important; box-shadow: 0 1px 2px rgba(0,0,0,.05) !important; }
@media (max-width: 639px) { .wv2-order .wa-step-section { padding: 18px 16px !important; } }
.wv2-order .wa-step-section > .wa-section-header {
    display: flex !important; align-items: center !important; gap: 12px !important; margin: 0 0 20px !important; padding: 0 0 16px !important; border: 0 !important; border-bottom: 1px solid var(--o-line-soft) !important;
}
.wv2-order .wa-step-section > .wa-section-header:before { flex: 0 0 28px !important; width: 28px !important; height: 28px !important; font-size: 13px !important; line-height: 1 !important; font-weight: 700 !important; background: var(--o-olive) !important; }
.wv2-order .wa-step-auth-section > .wa-section-header:after,
.wv2-order .wa-step-region-section > .wa-section-header:after,
.wv2-order .wa-step-payment-section > .wa-section-header:after { order: 1 !important; font-size: 18px !important; line-height: 28px !important; font-weight: 700 !important; letter-spacing: -.01em !important; color: var(--o-ink) !important; }
/* пояснение справа в заголовке карточки (из макета) */
.wv2-order .wa-step-auth-section > .wa-section-header > h3.wa-header,
.wv2-order .wa-step-region-section > .wa-section-header > h3.wa-header,
.wv2-order .wa-step-payment-section > .wa-section-header > h3.wa-header { display: block !important; order: 2 !important; flex: 0 0 auto !important; margin: 0 0 0 auto !important; padding: 0 !important; font-size: 0 !important; line-height: 0 !important; font-family: inherit !important; }
.wv2-order .wa-step-auth-section > .wa-section-header > h3.wa-header:after,
.wv2-order .wa-step-region-section > .wa-section-header > h3.wa-header:after,
.wv2-order .wa-step-payment-section > .wa-section-header > h3.wa-header:after { display: block !important; position: static !important; float: none !important; width: auto !important; height: auto !important; margin: 0 !important; transform: none !important; background: none !important; font-family: inherit !important; font-size: 13px !important; line-height: 18px !important; font-weight: 500 !important; color: var(--o-text) !important; white-space: nowrap !important; }
.wv2-order .wa-step-auth-section > .wa-section-header > h3.wa-header:after { content: "Для уведомлений о заказе" !important; }
.wv2-order .wa-step-region-section > .wa-section-header > h3.wa-header:after { content: "Доставка по Краснодару" !important; padding: 4px 10px !important; border-radius: 4px !important; background: var(--o-olive-chip) !important; font-weight: 600 !important; color: #425437 !important; }
.wv2-order .wa-step-payment-section > .wa-section-header > h3.wa-header:after { content: "\1F512\00a0Безопасный шлюз ЮKassa" !important; }
@media (max-width: 639px) { .wv2-order .wa-step-auth-section > .wa-section-header > h3.wa-header:after { display: none !important; } }

/* поля */
.wv2-order .wa-line.wa-fields-group, .wv2-order .wa-fields-group { gap: 16px !important; }
.wv2-order .wa-field-wrapper .wa-label { margin: 0 0 6px !important; font-size: 13px !important; line-height: 18px !important; font-weight: 600 !important; color: #374151 !important; }
.wv2-order .wa-required { color: #e11d48 !important; }
.wv2-order .wa-input, .wv2-order .wa-textarea, .wv2-order .wa-field-wrapper input[type="text"],
.wv2-order .wa-field-wrapper input[type="tel"], .wv2-order .wa-field-wrapper input[type="email"], .wv2-order .wa-field-wrapper select {
    height: 42px !important; padding: 0 14px !important; border: 1px solid #d1d5db !important; border-radius: 8px !important; font-size: 14px !important; line-height: 20px !important; color: var(--o-ink) !important;
}
@media (max-width: 639px) { .wv2-order .wa-input, .wv2-order .wa-field-wrapper input[type="text"], .wv2-order .wa-field-wrapper input[type="tel"], .wv2-order .wa-field-wrapper input[type="email"] { font-size: 16px !important; } }
.wv2-order .wa-input:focus, .wv2-order .wa-textarea:focus, .wv2-order .wa-field-wrapper select:focus { border-color: var(--o-olive) !important; box-shadow: 0 0 0 3px rgba(101,128,77,.2) !important; }
.wv2-order .wa-textarea { height: auto !important; min-height: 84px !important; padding: 10px 14px !important; font-size: 14px !important; line-height: 20px !important; border-radius: 8px !important; }
.wv2-order .wa-required-text { font-size: 13px !important; color: var(--o-text) !important; }
.wv2-order .wa-step-region-section .wa-section-body:not(:has(.wa-field-wrapper)) .wa-required-text { display: none !important; }

/* согласие на обработку данных */
.wv2-order .wa-agreement-wrapper { margin: 16px 0 0 !important; padding: 14px 0 0 !important; border-top: 1px solid var(--o-line-soft) !important; }
.wv2-order .wa-checkbox-wrapper { gap: 10px !important; font-size: 13px !important; line-height: 1.6 !important; color: #4b5563 !important; }
.wv2-order .wa-checkbox-wrapper a { color: var(--o-olive) !important; font-weight: 500 !important; text-decoration: underline !important; }
.wv2-order .wa-checkbox-wrapper .wa-checkbox { flex: 0 0 16px !important; width: 16px !important; height: 16px !important; margin-top: 3px !important; accent-color: var(--o-olive) !important; }

/* карточка 2: регион + способ + детали — одна карточка */
.wv2-order .wa-step-region-section { margin-bottom: 0 !important; padding-bottom: 0 !important; border-bottom: 0 !important; border-radius: var(--o-r) var(--o-r) 0 0 !important; box-shadow: none !important; }
.wv2-order .wa-step-region-section > .wa-section-header { margin-bottom: 20px !important; }
.wv2-order .wa-step-region-section .wa-section-body:not(:has(.wa-field-wrapper)) { display: none !important; }
.wv2-order .wa-step-region-section .wa-section-body:not(:has(.wa-field-wrapper)) + * { }
.wv2-order .wa-step-shipping-section { margin: 0 !important; padding: 0 28px !important; border: 1px solid var(--o-line) !important; border-top: 0 !important; border-bottom: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.wv2-order .wa-step-details-section { margin: 0 0 24px !important; padding: 20px 28px 28px !important; border: 1px solid var(--o-line) !important; border-top: 0 !important; border-radius: 0 0 var(--o-r) var(--o-r) !important; box-shadow: 0 1px 2px rgba(0,0,0,.05) !important; }
.wv2-order .wa-step-shipping-section + .wa-step-details-section { padding-top: 16px !important; }
@media (max-width: 639px) { .wv2-order .wa-step-shipping-section { padding: 0 16px !important; } .wv2-order .wa-step-details-section { padding: 16px 16px 20px !important; } }

/* способ получения: карточки вместо выпадающего списка */
.wv2-order .wa-delivery-variants-section .wa-header { margin: 0 0 10px !important; font-size: 0 !important; line-height: 0 !important; }
.wv2-order .wa-delivery-variants-section .wa-header:before {
    content: "Выберите способ получения заказа" !important; display: block !important; font-size: 13px !important; line-height: 18px !important; font-weight: 600 !important; letter-spacing: .06em !important; text-transform: uppercase !important; color: #374151 !important;
}
.wv2-order .wa-dropdown-toggle { display: none !important; }
.wv2-order .wa-dropdown-area {
    display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; position: static !important;
    max-height: none !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; overflow: visible !important; opacity: 1 !important; visibility: visible !important; transform: none !important;
}
@media (max-width: 639px) { .wv2-order .wa-dropdown-area { grid-template-columns: minmax(0, 1fr) !important; } }
.wv2-order .wa-dropdown-item { border: 1px solid var(--o-line) !important; border-radius: 8px !important; background: #fff !important; cursor: pointer !important; transition: border-color .15s, background .15s !important; }
.wv2-order .wa-dropdown-item:last-child { border: 1px solid var(--o-line) !important; }
.wv2-order .wa-dropdown-item:hover { border-color: var(--o-olive) !important; background: #fff !important; }
.wv2-order .wa-dropdown-item.is-current { border-color: var(--o-olive) !important; background: var(--o-olive-bg) !important; box-shadow: inset 0 0 0 1px var(--o-olive) !important; }
.wv2-order .wa-delivery-variant { display: flex !important; flex-direction: column !important; align-items: flex-start !important; justify-content: flex-start !important; gap: 4px !important; padding: 14px !important; }
.wv2-order .wa-delivery-variant .wa-name { font-size: 13px !important; line-height: 18px !important; font-weight: 700 !important; color: var(--o-ink) !important; }
.wv2-order .wa-delivery-variant .wa-date, .wv2-order .wa-delivery-variant .wa-price { font-size: 13px !important; line-height: 18px !important; color: var(--o-text) !important; white-space: normal !important; }

/* детали самовывоза / доставки */
.wv2-order .wa-details-description { margin: 0 0 16px !important; font-size: 13px !important; line-height: 1.6 !important; color: var(--o-text) !important; }
.wv2-order .wa-details-rates-section .wa-table { margin: 0 0 16px !important; border: 1px solid var(--o-line) !important; border-radius: 8px !important; }
.wv2-order .wa-details-rates-section .wa-row { padding: 10px 14px !important; border-bottom: 1px solid var(--o-line-soft) !important; font-size: 13px !important; line-height: 18px !important; }
.wv2-order .wa-details-rates-section .wa-cell-name { flex: 0 0 130px !important; color: var(--o-text) !important; }
.wv2-order .wa-details-rates-section .wa-cell-value, .wv2-order .wa-details-rates-section .wa-cell-value a { font-weight: 600 !important; color: var(--o-ink) !important; }
.wv2-order .wa-schedule-wrapper .wa-label { margin: 0 0 8px !important; font-size: 13px !important; line-height: 18px !important; font-weight: 600 !important; letter-spacing: .06em !important; text-transform: uppercase !important; color: #374151 !important; }
.wv2-order .wa-days-wrapper { grid-template-columns: repeat(auto-fill, minmax(176px, 1fr)) !important; gap: 8px !important; }
.wv2-order .wa-day-wrapper { align-items: center !important; padding: 8px 10px !important; border: 1px solid var(--o-line) !important; border-radius: 8px !important; background: #f9fafb !important; font-size: 13px !important; line-height: 18px !important; }
.wv2-order .wa-day-wrapper .wa-date { color: var(--o-text) !important; }
.wv2-order .wa-day-wrapper .wa-value { font-weight: 600 !important; white-space: nowrap !important; }

/* карточка 3: оплата */
.wv2-order .wa-methods-list { gap: 12px !important; }
.wv2-order .wa-method-wrapper { padding: 16px !important; border: 1px solid var(--o-line) !important; border-radius: 8px !important; background: #fff !important; }
.wv2-order .wa-method-wrapper:hover { border-color: #9ca3af !important; }
.wv2-order .wa-method-wrapper.is-active { border-color: var(--o-olive) !important; background: var(--o-olive-bg) !important; box-shadow: inset 0 0 0 1px var(--o-olive) !important; }
.wv2-order .wa-method { align-items: center !important; gap: 12px !important; }
.wv2-order .wa-method .wa-radio { width: 16px !important; height: 16px !important; accent-color: var(--o-olive) !important; }
.wv2-order .wa-payment-name, .wv2-order .wa-payment-name a { font-size: 14px !important; line-height: 20px !important; font-weight: 700 !important; color: var(--o-ink) !important; }
.wv2-order .wa-method-body .wa-description { margin-top: 2px !important; font-size: 13px !important; line-height: 18px !important; color: var(--o-text) !important; }

/* подтверждение: комментарий — нижняя часть карточки оплаты, итоги и кнопка — в правой карточке */
.wv2-order .wa-step-payment-section { margin-bottom: 0 !important; padding-bottom: 20px !important; border-bottom: 0 !important; border-radius: var(--o-r) var(--o-r) 0 0 !important; box-shadow: none !important; }
.wv2-order .wa-step-confirm-section { margin: 0 0 24px !important; padding: 0 28px 24px !important; border: 1px solid var(--o-line) !important; border-top: 0 !important; border-radius: 0 0 var(--o-r) var(--o-r) !important; box-shadow: 0 1px 2px rgba(0,0,0,.05) !important; }
.wv2-order .wa-step-confirm-section > .wa-section-body { padding-top: 14px !important; border-top: 1px solid var(--o-line-soft) !important; }
@media (max-width: 639px) { .wv2-order .wa-step-confirm-section { padding: 0 16px 18px !important; } }
.wv2-order .wa-comment-section { margin: 0 !important; }
.wv2-order .wa-comment-section .wa-visible .wa-link { font-size: 0 !important; line-height: 0 !important; }
.wv2-order .wa-comment-section .wa-visible .wa-link:before {
    content: "\25B8\00a0Добавить комментарий к заказу или пожелание курьеру" !important; display: inline !important; font-size: 13px !important; line-height: 18px !important; font-weight: 500 !important; color: var(--o-olive) !important;
}
.wv2-order .wa-comment-section .wa-visible .wa-link:hover:before { color: #425437 !important; }
.wv2-order .wa-comment-section .wa-visible .wa-icon { display: none !important; }
.wv2-order.is-mirrored .wa-step-confirm-section .wa-total-section,
.wv2-order.is-mirrored .wa-step-confirm-section .wa-actions-section { display: none !important; }
.wv2-order .wa-step-confirm-section .wa-total-section { margin-top: 16px !important; }

/* ---- правая колонка ---- */
.wv2-order .order-page__rightside .s-cart-section { padding: 24px !important; border-color: var(--o-line) !important; border-radius: var(--o-r) !important; box-shadow: 0 1px 2px rgba(0,0,0,.05) !important; }
.wv2-order.is-mirrored .order-page__rightside .s-cart-section { padding-bottom: 8px !important; border-bottom: 0 !important; border-radius: var(--o-r) var(--o-r) 0 0 !important; box-shadow: none !important; }
.wv2-order .s-cart-section .header-container { margin: 0 0 4px !important; padding: 0 0 14px !important; border-bottom: 1px solid var(--o-line-soft) !important; }
.wv2-order .s-cart-section .header-container__name { display: flex !important; align-items: center !important; gap: 8px !important; }
.wv2-order .s-cart-section .header-container__name h2 { font-size: 16px !important; line-height: 24px !important; font-weight: 700 !important; color: var(--o-ink) !important; }
.wv2-order .s-cart-section .wv2-count { padding: 2px 8px !important; border-radius: 9999px !important; background: var(--o-line-soft) !important; font-size: 13px !important; line-height: 18px !important; font-weight: 600 !important; color: #374151 !important; white-space: nowrap !important; }
.wv2-order .s-cart-section .clear-cart { font-size: 13px !important; line-height: 18px !important; color: var(--o-text) !important; }
.wv2-order .s-cart-section .clear-cart:hover { color: #e11d48 !important; }

.wv2-order .wa-order-cart-wrapper .wa-product { padding: 14px 0 !important; border-bottom: 1px solid var(--o-line-soft) !important; }
.wv2-order .wa-order-cart-wrapper .wa-product:last-child { border-bottom: 0 !important; }
.wv2-order .wa-order-cart-wrapper .wa-product-body { grid-template-columns: 64px minmax(0, 1fr) auto !important; column-gap: 14px !important; row-gap: 10px !important; }
.wv2-order .wa-order-cart-wrapper .wa-column-image { grid-column: 1 !important; grid-row: 1 / span 2 !important; width: 64px !important; }
.wv2-order .wa-order-cart-wrapper .wa-column-image img { width: 64px !important; height: 80px !important; border-radius: 8px !important; border: 1px solid var(--o-line) !important; }
.wv2-order .wa-order-cart-wrapper .wa-column-details { grid-column: 2 / span 2 !important; grid-row: 1 !important; }
.wv2-order .wa-order-cart-wrapper .wa-column-quantity { grid-column: 2 !important; grid-row: 2 !important; align-self: end !important; }
.wv2-order .wa-order-cart-wrapper .wa-column-price { grid-column: 3 !important; grid-row: 2 !important; align-self: end !important; }
.wv2-order .wa-order-cart-wrapper .wa-details { position: relative !important; flex-direction: column !important; gap: 4px !important; padding-right: 26px !important; }
.wv2-order .wa-order-cart-wrapper .wa-details .wa-name { font-size: 14px !important; line-height: 1.375 !important; font-weight: 600 !important; color: var(--o-ink) !important; }
.wv2-order .wa-order-cart-wrapper .wa-details .wa-actions { position: absolute !important; top: 0 !important; right: 0 !important; font-size: 0 !important; line-height: 0 !important; }
.wv2-order .wa-order-cart-wrapper .wa-details .wa-tooltip { display: flex !important; align-items: center !important; justify-content: center !important; width: 20px !important; height: 20px !important; color: #9ca3af !important; font-size: 0 !important; cursor: pointer !important; }
.wv2-order .wa-order-cart-wrapper .wa-details .wa-tooltip:hover { color: #4b5563 !important; }
.wv2-order .wa-order-cart-wrapper .wa-details .wa-icon, .wv2-order .wa-order-cart-wrapper .wa-details .wa-icon svg { width: 14px !important; height: 14px !important; fill: currentColor !important; }
.wv2-order .wa-order-cart-wrapper .wa-services { margin-top: 0 !important; font-size: 13px !important; line-height: 18px !important; }
.wv2-order .wa-order-cart-wrapper .wa-service .wa-label { gap: 6px !important; font-size: 13px !important; line-height: 18px !important; font-weight: 500 !important; color: #425437 !important; }
.wv2-order.has-upsell .wa-order-cart-wrapper .wa-services { display: none !important; }
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-section-body { border: 1px solid var(--o-line) !important; border-radius: 6px !important; background: #f9fafb !important; }
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-button { width: 30px !important; height: 28px !important; color: #6b7280 !important; }
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-button:hover { color: #111827 !important; }
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-field { width: 34px !important; height: 28px !important; font-size: 13px !important; line-height: 28px !important; font-weight: 700 !important; color: #1f2937 !important; }
.wv2-order .wa-order-cart-wrapper .wa-price-total { font-size: 14px !important; line-height: 20px !important; font-weight: 700 !important; color: var(--o-ink) !important; }
.wv2-order.is-mirrored .wa-order-cart-wrapper .wa-cart-details { display: none !important; }

/* итоги под товарами: допродажи, строки, бонусы, итого, кнопка */
.wv2-ordsum { padding: 0 24px 24px !important; background: #fff !important; border: 1px solid var(--o-line) !important; border-top: 0 !important; border-radius: 0 0 var(--o-r) var(--o-r) !important; box-shadow: 0 1px 2px rgba(0,0,0,.05) !important; }
.wv2-ordsum[hidden] { display: none !important; }
.wv2-ordsum__upsell { margin-top: 8px !important; padding-top: 16px !important; border-top: 1px dashed var(--o-line) !important; }
.wv2-ordsum__uphead { display: flex !important; align-items: center !important; justify-content: space-between !important; margin: 0 0 10px !important; font-size: 13px !important; line-height: 18px !important; font-weight: 700 !important; letter-spacing: .04em !important; text-transform: uppercase !important; color: #1f2937 !important; }
.wv2-ordsum__uphead span { font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--o-olive) !important; }
.wv2-ordsum__tiles { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; }
.wv2-tile {
    display: flex !important; align-items: center !important; gap: 10px !important; width: 100% !important; margin: 0 !important; padding: 8px !important; text-align: left !important; cursor: pointer !important;
    border: 1px solid var(--o-line) !important; border-radius: 8px !important; background: rgba(249,250,251,.7) !important; font-family: inherit !important; transition: border-color .15s, background .15s !important;
}
.wv2-tile:hover { border-color: var(--o-olive) !important; background: #fff !important; }
.wv2-tile.is-on { border-color: var(--o-olive) !important; background: var(--o-olive-bg) !important; }
.wv2-tile__ico { flex: 0 0 auto !important; font-size: 18px !important; line-height: 1 !important; }
.wv2-tile__name { display: block !important; font-size: 13px !important; line-height: 18px !important; font-weight: 500 !important; color: var(--o-ink) !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
.wv2-tile__price { display: block !important; font-size: 13px !important; line-height: 18px !important; font-weight: 600 !important; color: #4b5563 !important; }
.wv2-tile.is-on .wv2-tile__price { color: #425437 !important; }
.wv2-ordsum__lines { display: grid !important; gap: 8px !important; margin-top: 20px !important; padding-top: 16px !important; border-top: 1px solid var(--o-line) !important; font-size: 13px !important; line-height: 18px !important; color: #4b5563 !important; }
.wv2-ordsum__line { display: flex !important; justify-content: space-between !important; gap: 12px !important; }
.wv2-ordsum__line b { font-weight: 500 !important; color: var(--o-ink) !important; white-space: nowrap !important; }
.wv2-ordsum__line.is-free { color: #425437 !important; }
.wv2-ordsum__line.is-free b { font-weight: 700 !important; color: #425437 !important; }
.wv2-ordsum__bonus { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; margin-top: 16px !important; padding: 12px !important; border: 1px solid rgba(101,128,77,.3) !important; border-radius: 8px !important; background: var(--o-olive-bg) !important; }
.wv2-ordsum__bonus-t { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 13px !important; line-height: 18px !important; color: var(--o-text) !important; }
.wv2-ordsum__bonus-t b { display: block !important; font-weight: 700 !important; color: var(--o-ink) !important; }
.wv2-ordsum__bonus-v { padding: 4px 8px !important; border: 1px solid rgba(101,128,77,.2) !important; border-radius: 6px !important; background: var(--o-olive-chip) !important; font-size: 13px !important; line-height: 18px !important; font-weight: 800 !important; color: #425437 !important; white-space: nowrap !important; }
.wv2-ordsum__total { display: flex !important; align-items: baseline !important; justify-content: space-between !important; gap: 12px !important; margin-top: 20px !important; padding-top: 16px !important; border-top: 1px solid var(--o-line) !important; }
.wv2-ordsum__total-l { display: block !important; font-size: 13px !important; line-height: 18px !important; font-weight: 700 !important; letter-spacing: .04em !important; text-transform: uppercase !important; color: #374151 !important; }
.wv2-ordsum__total-s { display: block !important; margin-top: 2px !important; font-size: 13px !important; line-height: 18px !important; color: var(--o-text) !important; }
.wv2-ordsum__total-v { font-size: 30px !important; line-height: 36px !important; font-weight: 800 !important; letter-spacing: -.025em !important; color: var(--o-ink) !important; white-space: nowrap !important; }
.wv2-ordsum__cta {
    display: flex !important; align-items: center !important; justify-content: center !important; gap: 8px !important; width: 100% !important; margin: 20px 0 0 !important; padding: 16px 24px !important; border: 0 !important; border-radius: 8px !important;
    background: var(--o-olive) !important; color: #fff !important; font-family: inherit !important; font-size: 16px !important; line-height: 24px !important; font-weight: 700 !important; cursor: pointer !important;
    box-shadow: 0 1px 2px rgba(0,0,0,.08) !important; transition: background .2s, transform .1s !important;
}
.wv2-ordsum__cta:hover { background: var(--wv2-primary-dark, #536b3e) !important; }
.wv2-ordsum__cta:active { transform: scale(.99) !important; }
.wv2-ordsum__cta svg { width: 20px !important; height: 20px !important; transition: transform .2s !important; }
.wv2-ordsum__cta:hover svg { transform: translateX(4px) !important; }
.wv2-ordsum__cta.is-locked { opacity: .6 !important; cursor: not-allowed !important; }

/* «Есть вопрос по заказу?» */
.wv2-help { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; margin-top: 20px !important; padding: 16px !important; border: 1px solid var(--o-line) !important; border-radius: var(--o-r) !important; background: #fff !important; font-size: 13px !important; line-height: 18px !important; color: var(--o-text) !important; box-shadow: 0 1px 2px rgba(0,0,0,.04) !important; }
.wv2-help b { display: block !important; font-weight: 700 !important; color: var(--o-ink) !important; }
.wv2-help a { flex: 0 0 auto !important; padding: 6px 14px !important; border-radius: 8px !important; background: var(--o-line-soft) !important; font-weight: 700 !important; color: var(--o-ink) !important; text-decoration: none !important; white-space: nowrap !important; }
.wv2-help a:hover { background: var(--o-line) !important; }
@media (max-width: 900px) { .wv2-ordsum { padding: 0 16px 18px !important; } .wv2-ordsum__tiles { grid-template-columns: minmax(0, 1fr) !important; } }

/* Оформление на телефоне: итоги и кнопка остаются внизу формы (штатный блок ядра), правая карточка со сводкой скрыта */
@media (max-width: 900px) {
    .wv2-order .wv2-ordsum, .wv2-order .wv2-help { display: none !important; }
    .wv2-order.is-mirrored .wa-step-confirm-section .wa-total-section,
    .wv2-order.is-mirrored .wa-step-confirm-section .wa-actions-section { display: block !important; }
    .wv2-order.is-mirrored .wa-order-cart-wrapper .wa-cart-details { display: block !important; }
    .wv2-order.has-upsell .wa-order-cart-wrapper .wa-services { display: block !important; }
    .wv2-order.is-mirrored .order-page__rightside .s-cart-section {
        padding-bottom: 16px !important; border-bottom: 1px solid var(--o-line) !important; border-radius: var(--o-r) !important; box-shadow: 0 1px 2px rgba(0,0,0,.05) !important;
    }
}

/* Избранное в карточке: сердце не пропадает после нажатия (в теме при .active иконка белая на красном фоне, у нас фон светлый) */
#js-product-page .product__button__fav { display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .15s, border-color .15s; }
#js-product-page .product__button__fav .icon-favorite { width: 20px; height: 20px; margin: 0; stroke: #44403c; stroke-width: 1.6px; fill: transparent; transition: stroke .15s, fill .15s; }
#js-product-page .product__button__fav:hover { border-color: #fda4af; background: #fff1f2; }
#js-product-page .product__button__fav:hover .icon-favorite { stroke: #e11d48; }
#js-product-page .product__button__fav.active { background: #fff1f2 !important; border-color: #fda4af; }
#js-product-page .product__button__fav.active .icon-favorite { stroke: #e11d48; fill: #e11d48; }

/* Значения характеристик — выровнены влево (не вправо) во всех блоках карточки */
#js-product-page .features-table td,
#js-product-page .features-table td.name,
#js-product-page .features-table td.value,
#js-product-page .wv2-features-block td,
#js-product-page .wv2-specs__body td { text-align: left !important; }

/* Оформление: правки после сверки на живом сайте
   Стили ядра (css/build.css, order/ui.css) специфичнее и грузятся позже, поэтому правила блока выше помечены !important. */
body:has(.wv2-order) .wrap { background: #f9fafb !important; }
.wv2-order .wa-step-region-section:not([style*="display: none"]),
.wv2-order .wa-step-shipping-section:not([style*="display: none"]),
.wv2-order .wa-step-details-section:not([style*="display: none"]),
.wv2-order .wa-step-confirm-section:not([style*="display: none"]) { display: flow-root !important; }
.wv2-order .wa-details-description { font-size: 14px !important; line-height: 20px !important; font-weight: 400 !important; color: #44403c !important; }
.wv2-order .wa-schedule-wrapper.is-compact .wa-label,
.wv2-order .wa-schedule-wrapper.is-compact .wa-days-wrapper { display: none !important; }
.wv2-order .wv2-hours { margin-top: 12px !important; font-size: 14px !important; line-height: 20px !important; color: #44403c !important; }
.wv2-order .wv2-hours b { font-weight: 700 !important; color: #111827 !important; }

/* Оформление: согласие и телефон */
.wv2-order .wa-agreement-wrapper .wa-text { color: #44403c !important; font-size: 13px !important; line-height: 20px !important; }
.wv2-order .wa-agreement-wrapper .wa-text a { color: #536b3e !important; font-weight: 500 !important; text-decoration: underline !important; }
/* на телефоне корзина свёрнута (кнопка «Состав заказа»): в свёрнутом виде не занимает место */
@media (max-width: 900px) {
    .wv2-order .order-page__rightside .s-cart-section.s-cart-section:not(._show) { height: 0 !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; border: 0 !important; overflow: hidden !important; box-shadow: none !important; }
}
/* на узком экране плашка рядом с названием шага уходит под название */
@media (max-width: 520px) {
    .wv2-order .wa-step-region-section > .wa-section-header,
    .wv2-order .wa-step-payment-section > .wa-section-header { flex-wrap: wrap !important; row-gap: 0 !important; }
    .wv2-order .wa-step-region-section > .wa-section-header > h3.wa-header,
    .wv2-order .wa-step-payment-section > .wa-section-header > h3.wa-header { flex: 0 0 calc(100% - 40px) !important; max-width: calc(100% - 40px) !important; margin: 8px 0 0 40px !important; }
    .wv2-order .wa-step-region-section > .wa-section-header > h3.wa-header:after,
    .wv2-order .wa-step-payment-section > .wa-section-header > h3.wa-header:after { display: inline-block !important; }
}

/* Карточка: «Заказывали N раз» рядом с наличием */
#js-product-page .wv2-head__right { display: inline-flex; align-items: center; gap: 12px; }
#js-product-page .wv2-orders { font-size: 13px; line-height: 18px; font-weight: 500; color: #44403c; white-space: nowrap; }

/* Оформление: сверка с макетом, раунд 2 (способы оплаты, степпер, крестик, плашки получения)
   Темa ядра (style.min.css, order/form.css) задаёт !important и длинные селекторы, поэтому селекторы здесь с запасом по специфичности. */

/* --- Способы оплаты: карточки как в макете (р-4, rounded-lg, 1px gray-200 / 2px olive + #f7f9f5), радио слева --- */
.wv2-order .wa-order-form-wrapper .wa-step-payment-section .wa-methods-list.wide { display: flex !important; flex-direction: column !important; gap: 12px !important; margin: 0 !important; border: 0 !important; box-shadow: none !important; background: transparent !important; }
.wv2-order .wa-order-form-wrapper .wa-step-payment-section .wa-methods-list.wide .wa-method-wrapper {
    margin: 0 !important; padding: 16px !important; border: 1px solid #e5e7eb !important; border-radius: 8px !important;
    background: #fff !important; box-shadow: none !important; cursor: pointer;
}
.wv2-order .wa-order-form-wrapper .wa-step-payment-section .wa-methods-list.wide .wa-method-wrapper:hover { border-color: #9ca3af !important; background: #fff !important; }
.wv2-order .wa-order-form-wrapper .wa-step-payment-section .wa-methods-list.wide .wa-method-wrapper.is-active,
.wv2-order .wa-order-form-wrapper .wa-step-payment-section .wa-methods-list.wide .wa-method-wrapper.is-active:hover {
    padding: 15px !important; border: 2px solid #65804d !important; background: #f7f9f5 !important; box-shadow: none !important; cursor: default;
}
.wv2-order .wa-order-form-wrapper .wa-step-payment-section .wa-methods-list .wa-method-wrapper .wa-method { display: flex !important; align-items: center !important; gap: 12px !important; width: 100% !important; }
.wv2-order .wa-order-form-wrapper .wa-step-payment-section .wa-methods-list.wide .wa-method-wrapper .wa-checkbox-wrapper { display: block !important; flex: 0 0 auto !important; padding: 0 !important; width: auto !important; }
.wv2-order .wa-order-form-wrapper .wa-step-payment-section .wa-methods-list .wa-method-wrapper .wa-method .wa-radio { display: block !important; width: 16px !important; height: 16px !important; margin: 0 !important; accent-color: #65804d; }
.wv2-order .wa-order-form-wrapper .wa-step-payment-section .wa-methods-list .wa-method-wrapper .wa-method .wa-image-wrapper { display: none !important; }
.wv2-order .wa-order-form-wrapper .wa-step-payment-section .wa-methods-list .wa-method-wrapper .wa-method-body { display: block !important; flex: 1 1 auto !important; min-width: 0; padding: 0 !important; }
.wv2-order .wa-method-body .wa-payment-name, .wv2-order .wa-method-body .wa-payment-name a { font-size: 14px !important; line-height: 20px !important; font-weight: 700 !important; color: #111827 !important; text-decoration: none !important; }
.wv2-order .wa-method-body .wa-description { margin: 2px 0 0 !important; font-size: 13px !important; line-height: 18px !important; font-weight: 400 !important; color: #57534e !important; }

/* --- Корзина: степпер количества — одна рамка (как в макете), без вложенной --- */
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section.wa-quantity-cart-section.js-quantity-cart-section {
    display: inline-flex !important; width: auto !important; height: auto !important; padding: 0 !important; margin: 0 !important;
    border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important;
}
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-button.outlined { border: 0 !important; background: transparent !important; box-shadow: none !important; border-radius: 0 !important; }
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-field-wrapper,
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-field { border: 0 !important; box-shadow: none !important; background: transparent !important; }

/* --- Корзина: «удалить» — крестик из макета вместо корзинки --- */
.wv2-order .wa-order-cart-wrapper .wa-product .wa-action .wa-icon.delete { display: block !important; width: 16px !important; height: 16px !important; padding: 0 !important; margin: 0 !important; border: 0 !important; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 18L18 6M6 6l12 12'/%3E%3C/svg%3E") center / 16px 16px no-repeat !important; }
.wv2-order .wa-order-cart-wrapper .wa-product .wa-action:hover .wa-icon.delete { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234b5563' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 18L18 6M6 6l12 12'/%3E%3C/svg%3E") !important; }
.wv2-order .wa-order-cart-wrapper .wa-product .wa-action .wa-icon.delete svg { display: none !important; }

/* --- Способ получения: плашка — название слева, срок чипом справа (как цена в макете) --- */
.wv2-order .wa-dropdown-item { padding: 14px !important; }
.wv2-order .wa-dropdown-item .wa-delivery-variant { display: flex !important; align-items: flex-start !important; justify-content: space-between !important; gap: 8px !important; }
.wv2-order .wa-dropdown-item .wa-name { flex: 1 1 auto !important; margin: 0 !important; }
.wv2-order .wa-dropdown-item .wa-date { flex: 0 0 auto !important; margin: 0 !important; padding: 2px 6px !important; border-radius: 4px !important; background: #f3f4f6 !important; font-size: 13px !important; line-height: 18px !important; font-weight: 700 !important; color: #44403c !important; white-space: nowrap; }
.wv2-order .wa-dropdown-item.is-current .wa-date { background: #eef3e8 !important; color: #536b3e !important; }

/* --- Курьер: адрес на всю ширину, «Данные получателя» серой карточкой, дата/время — подписи как в макете --- */
.wv2-order .wa-details-fields-section .wa-line.wa-fields-group { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 16px !important; margin: 0 0 20px !important; }
.wv2-order .wa-details-fields-section .wa-fields-group > .wa-field-wrapper { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; float: none !important; }
.wv2-order .wa-details-fields-section .wa-field-wrapper .wa-label,
.wv2-order .wa-details-fields-section .wa-plugin-fields-wrapper > .wa-label { margin: 0 0 6px !important; padding: 0 !important; font-size: 13px !important; line-height: 18px !important; font-weight: 600 !important; color: #374151 !important; }
.wv2-order .wa-details-fields-section .wa-fields-group > .wa-field-wrapper:first-child .wa-label,
.wv2-order .wa-details-fields-section .wa-plugin-fields-wrapper > .wa-label { text-transform: uppercase !important; letter-spacing: .05em !important; color: #1f2937 !important; }
.wv2-order .wv2-recipient { padding: 16px; border: 1px solid #e5e7eb; border-radius: 8px; background: #f9fafb; }
.wv2-order .wv2-recipient__title { margin: 0 0 14px; font-size: 13px; line-height: 18px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #1f2937; }
.wv2-order .wv2-recipient__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.wv2-order .wv2-recipient .wa-field-wrapper { width: auto !important; margin: 0 !important; }
@media (max-width: 639px) { .wv2-order .wv2-recipient__grid { grid-template-columns: minmax(0, 1fr); } }

/* Поле количества: одна рамка (внешняя рамка темы убрана, остаётся рамка .product__button__qty__inner) */
.product__button__qty.product__button__qty:has(> .product__button__qty__inner),
#js-product-page .product__button__qty.product__button__qty { border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; padding: 0 !important; width: auto !important; height: auto !important; }

/* Единый стиль заголовков блоков карточки: Описание, Состав и размер букета, Характеристики букета, Доставка и оплата */
#js-product-page .wv2-about__title,
#js-product-page .wv2-specs__label,
#js-product-page .wv2-about .wv2-features-block::before {
    font-family: "Playfair Display", Georgia, serif !important; font-size: 18px !important; line-height: 28px !important; font-weight: 700 !important;
    letter-spacing: 0 !important; text-transform: none !important; color: #1c1917 !important;
}
#js-product-page .wv2-specs__label, #js-product-page .wv2-about .wv2-features-block::before { margin-bottom: 12px !important; }

/* Единый стиль текста блоков карточки: описание, характеристики, состав, доставка — 14px / 22px / 400 / #1c1917 */
#js-product-page .wv2-about__main,
#js-product-page .wv2-about__main p,
#js-product-page .wv2-about__main li,
#js-product-page .wv2-about__main td,
#js-product-page .wv2-about__side,
#js-product-page .wv2-about__side li,
#js-product-page .wv2-about__side li div,
#js-product-page .wv2-about__side p,
#js-product-page .wv2-about__side td,
#js-product-page .wv2-features-block td,
#js-product-page .wv2-features-block td.name,
#js-product-page .wv2-features-block td.value,
#js-product-page .wv2-delivery-list li,
#js-product-page .wv2-delivery-list li div,
#js-product-page .wv2-specs__summary,
#js-product-page .wv2-specs__summary div,
#js-product-page .wv2-specs__body td {
    font-size: 14px !important; line-height: 22px !important; font-weight: 400 !important; color: #1c1917 !important;
}
#js-product-page .wv2-features-block td.value { font-weight: 500 !important; }
#js-product-page .wv2-delivery-list strong, #js-product-page .wv2-about__main strong, #js-product-page .wv2-about__main b { font-size: 14px !important; line-height: 22px !important; font-weight: 700 !important; color: #1c1917 !important; }

/* Бонусы под ценой: одной строкой (раньше display:flex разносил «Вернем», число и «бонусов на счет» по разным строкам) */
#js-product-page .wv2-bonus { display: block !important; margin: 2px 0 0; font-size: 13px; line-height: 18px; font-weight: 500; color: #047857; }
#js-product-page .wv2-bonus .fas { display: inline-block; margin-right: 6px; font-size: 13px; }
#js-product-page .wv2-bonus b { display: inline; font-weight: 700; }

/* Кнопки в блоке покупки: заливка при наведении без прямоугольного «выезжающего» слоя (b-ani-left:before),
   скругление 12px и фон задаются самой кнопкой */
#js-product-page .product__price-block .btn.btn_one-click:before,
#js-product-page .product__price-block .product__button__btn .btn:before { display: none !important; content: none !important; }
#js-product-page .product__price-block .btn.btn_one-click { transition: background-color .2s ease, color .2s ease; }
#js-product-page .product__price-block .btn.btn_one-click:hover { background: #f5f7f2 !important; color: #3f5234 !important; border-color: #3f5234 !important; }
#js-product-page .product__price-block .product__button__btn .btn { transition: background-color .2s ease; }
#js-product-page .product__price-block .product__button__btn .btn:hover { background: #3f5234 !important; }

/* Быстрый заказ: поле-ловушка и экран «Спасибо» */
.wv2-oc__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.wv2-oc__done { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 24px 0 8px; text-align: center; }
.wv2-oc__done[hidden] { display: none; }
.wv2-oc__done h3 { margin: 4px 0 0; font-family: 'Playfair Display', serif; font-size: 22px; line-height: 28px; font-weight: 700; color: #1c1917; }
.wv2-oc__done p { margin: 0; font-size: 14px; line-height: 22px; color: #1c1917; }
.wv2-oc__done .wv2-oc__done-num { font-size: 13px; color: #44403c; }
.wv2-oc__done .wv2-oc__submit { margin-top: 12px; width: 100%; }

/* Краткие характеристики («Состав и размер букета») — один в один как полные: название 400, значение 500, 14px / 22px, ПК и телефон */
#js-product-page .wv2-specs__body td.name,
#js-product-page .wv2-specs__body td.name::after { font-size: 14px !important; line-height: 22px !important; font-weight: 400 !important; color: #1c1917 !important; }
#js-product-page .wv2-specs__body td.value,
#js-product-page .wv2-specs__body td.value span,
#js-product-page .wv2-specs__body td.value a { font-size: 14px !important; line-height: 22px !important; font-weight: 500 !important; color: #1c1917 !important; }
#js-product-page .wv2-specs__summary,
#js-product-page .wv2-specs__summary > div { font-weight: 500 !important; }
#js-product-page .wv2-specs__summary b { font-size: 14px !important; line-height: 22px !important; font-weight: 400 !important; color: #1c1917 !important; }
#js-product-page .wv2-specs__more { font-size: 14px !important; line-height: 22px !important; }

/* ==========================================================================
   ЕДИНАЯ ШИРИНА СОДЕРЖИМОГО 1340px (ПК): карточка, корзина, карусели и содержимое подвала — на одной сетке.
   Шапку и ширину самого body не трогаем: они остаются как на живом сайте.
   ========================================================================== */
@media (min-width: 901px) {
    #js-product-page .product > .row,
    #js-product-page .wv2-about,
    #js-product-page .wv2-surprise,
    .wv2-advantages,
    .wv2-carousel-section,
    .wv2-order,
    .wv2-container,
    .product-nav,
    .wv2-breadcrumbs { box-sizing: border-box; width: 100%; max-width: 1340px !important; margin-left: auto !important; margin-right: auto !important; padding-left: 0 !important; padding-right: 0 !important; }
    footer.footer > .container { max-width: 1340px; margin-left: auto; margin-right: auto; padding-left: 0; padding-right: 0; }
}

/* Шапка карточки: «Экономия -N%», артикул, число заказов и «В наличии» — одним рядом, а не столбиком */
#js-product-page .wv2-head { display: flex; flex-wrap: wrap; align-items: center; column-gap: 8px; }
#js-product-page .wv2-head > * { flex: 0 0 100%; min-width: 0; }
#js-product-page .wv2-head > .product__price-block__saving { flex: 0 0 auto; margin: 0 0 16px; }
#js-product-page .wv2-head > .wv2-head__meta { flex: 1 1 0; margin: 0 0 16px; }

/* Оформление: «Электронная почта» — на всю ширину под именем и телефоном, как в макете */
.wv2-order .wa-step-auth-section .wa-fields-group > .wa-field-wrapper:has(input.wa-email),
.wv2-order .wa-step-auth-section .wa-fields-group > .wa-field-wrapper:nth-child(n+3) { grid-column: 1 / -1 !important; width: auto !important; max-width: none !important; }
.wv2-order .wa-step-auth-section .wa-fields-group > .wa-field-wrapper:has(input.wa-email) .wa-input { width: 100% !important; }

/* Оформление: первый блок («1 Ваши контактные данные») — верхний отступ как у остальных; ядро обнуляло его правилом
   .wa-order-form-wrapper .wa-step-section:first-child { padding-top: 0 !important } */
.wv2-order .wa-order-form-wrapper .wa-step-section:first-child { padding-top: 28px !important; }
@media (max-width: 639px) { .wv2-order .wa-order-form-wrapper .wa-step-section:first-child { padding-top: 18px !important; } }

/* Корзина: степпер количества — под названием слева, как в макете (ядро центрировало колонку text-align:center) */
.wv2-order .wa-order-cart-wrapper .wa-product .wa-column-quantity { text-align: left !important; }
.wv2-order .wa-order-cart-wrapper .wa-product .wa-column-quantity .wa-quantity-cart-section { margin-left: 0 !important; margin-right: auto !important; }

/* Подарки: заголовок полного блока — «Характеристики», а не «Характеристики букета» */
#js-product-page .wv2-about--gift .wv2-features-block::before { content: "Характеристики"; }

/* Корзина: степпер количества — рамка по размеру кнопок. Ядро держало min-width/width:120px при трёх элементах в ~94px,
   поэтому справа от «+» оставалась пустая полоса и казалось, что «+» длиннее «−» */
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section.wa-quantity-cart-section.js-quantity-cart-section { min-width: 0 !important; width: auto !important; }
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-section-body { display: inline-flex !important; width: auto !important; min-width: 0 !important; justify-content: center !important; }
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-button-wrapper,
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-button-wrapper .wa-button { flex: 0 0 auto !important; width: 32px !important; min-width: 32px !important; }
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-field-wrapper { flex: 0 0 auto !important; width: 36px !important; }
.wv2-order .wa-order-cart-wrapper .wa-quantity-cart-section .wa-field-wrapper .wa-field { width: 36px !important; }

/* Карусели: если у товара есть старая цена — она под новой, а кнопка «В корзину» остаётся в одну строку */
.wv2-carousel__price { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 0 !important; flex: 1 1 auto; min-width: 0; white-space: nowrap; }
.wv2-carousel__price s { margin-left: 0 !important; font-size: 13px !important; line-height: 16px !important; }
.wv2-carousel__bottom form { flex: 0 0 auto; }
.wv2-carousel__btn { white-space: nowrap; flex: 0 0 auto; }

/* Характеристики (полная таблица): название 40%, значение 60% — значения длиннее */
#js-product-page .wv2-features-block table { width: 100% !important; table-layout: fixed; }
#js-product-page .wv2-features-block td.name { width: 40% !important; padding-right: 16px !important; overflow-wrap: anywhere; }
#js-product-page .wv2-features-block td.value { width: 60% !important; overflow-wrap: anywhere; }

/* --- Быстрый заказ: индикатор отправки (заказ создаётся до минуты) --- */
.wv2-oc__spinner { display: none; width: 18px; height: 18px; flex: 0 0 18px; border: 2px solid rgba(255,255,255,.45); border-top-color: #fff; border-radius: 50%; animation: wv2-oc-spin .8s linear infinite; }
.wv2-oc__wait .wv2-oc__spinner { display: inline-block; border-color: rgba(87,107,70,.25); border-top-color: #576b46; }
.wv2-oc__wait { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; padding: 10px 12px; border-radius: 10px; background: #f3f6f0; color: #44403c; font-size: 14px; line-height: 20px; }
.wv2-oc__wait[hidden] { display: none; }
#wv2-oneclick .wv2-oc__submit.is-loading { display: flex; align-items: center; justify-content: center; gap: 10px; }
#wv2-oneclick .wv2-oc__submit.is-loading .wv2-oc__spinner { display: inline-block; }
#wv2-oneclick .wv2-oc__submit.is-loading .wv2-oc__submit-text { font-size: 0; }
#wv2-oneclick .wv2-oc__submit.is-loading .wv2-oc__submit-text::after { content: "Оформляем заказ…"; font-size: 16px; }
.wv2-oc__form.is-busy .wv2-oc__input, .wv2-oc__form.is-busy .wv2-oc__check, .wv2-oc__form.is-busy .wv2-oc__consent { opacity: .6; pointer-events: none; }
@keyframes wv2-oc-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .wv2-oc__spinner { animation-duration: 2s; } }

/* --- Цена и количество: строка как в макете (цена слева, «− 1 +» и сердечко справа или под ценой слева) ---
   Старые inline-правила темы на ≤1100px делали колонку и центрировали блоки. */
@media (max-width: 1100px) {
    #js-product-page .price-top { flex-direction: row !important; flex-wrap: wrap !important; align-items: center !important; justify-content: space-between !important; row-gap: 12px !important; column-gap: 12px !important; }
    #js-product-page .price-top .price-top__left { width: auto !important; flex: 1 1 auto !important; margin: 0 !important; text-align: left !important; }
    #js-product-page .price-top .price-top__right { width: auto !important; flex: 0 0 auto !important; justify-content: flex-start !important; margin: 0 !important; }
}

/* --- Флористы онлайн на телефоне: 4 квадратные плитки 2×2 (иконка сверху, подпись снизу) --- */
@media (max-width: 639px) {
    #js-product-page .wv2-messengers { display: block !important; }
    #js-product-page .wv2-messengers__label { display: flex !important; margin: 0 0 10px; }
    #js-product-page .wv2-messengers__list { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px !important; }
    #js-product-page .wv2-messenger { flex-direction: column; justify-content: center; align-items: center; gap: 6px !important; min-height: 64px; padding: 10px 8px !important; border-radius: 12px !important; font-size: 14px !important; line-height: 18px !important; text-align: center; }
    #js-product-page .wv2-messenger i, #js-product-page .wv2-messenger .fab, #js-product-page .wv2-messenger .fas { font-size: 22px !important; line-height: 1; }
    #js-product-page .wv2-messenger img { width: 22px; height: 22px; }
}

/* Две главные кнопки на телефоне: «Купить в 1 клик» и «В корзину» помещаются в свою половину */
@media (max-width: 639px) {
    #js-product-page .product__button.add2cart .btn { font-size: 14px !important; padding-left: 6px !important; padding-right: 6px !important; gap: 5px; white-space: nowrap; }
}
