/* ============================================================================
 * КАРТОЧКА ТОВАРА — ПО ТОЧНОМУ МАКЕТУ (Product.dc.html). Без сайдбара, hero-панель
 * на всю ширину: галерея (1fr) | summary (1.1fr, шире). Токены из README хендоффа.
 * Разметка: templates/single-product.html + inc/product-card.php ({{PRODUCT_*}}).
 * ========================================================================== */

/* --- Hero: белая панель, grid 1fr/1.1fr, gap 40, padding 32, radius 10 ----- */
.rv-product__hero {
    display: grid !important;
    grid-template-columns: 1fr 1.1fr;
    gap: 40px !important;
    align-items: start;
    margin: 18px 0 0;
    background: var(--rv-surface);
    border: 1px solid var(--rv-border);
    border-radius: var(--rv-radius-xl);
    padding: 32px;
}
.rv-product__hero > .wp-block-column { flex-basis: auto !important; min-width: 0; }
.rv-product__gallery { display: flex; flex-direction: column; gap: 12px; }
/* галерея WooCommerce и её обёртки — на всю ширину колонки, чтобы ряд миниатюр
 * совпадал по ширине с главным фото (иначе фото 512 vs ряд 532 → выступ справа).
 * Track FlexSlider намеренно исключён: его inline-ширина равна числу слайдов. */
.rv-product__gallery .wp-block-woocommerce-product-image-gallery,
.rv-product__gallery .woocommerce-product-gallery {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    float: none !important;
}
.rv-product__gallery .woocommerce-product-gallery__wrapper {
    max-width: none !important;
    margin: 0 !important;
}
.rv-product__gallery .wp-block-woocommerce-product-image-gallery img,
.rv-product__gallery img {
    border: 1px solid var(--rv-border);
    border-radius: var(--rv-radius);
    background: var(--rv-surface);
    width: 100%;
}
.rv-product__gallery .woocommerce-product-gallery__image,
.rv-product__gallery .woocommerce-product-gallery__image > a,
.rv-product__gallery .woocommerce-product-gallery__image .zoomImg {
    cursor: zoom-in;
}
.rv-product__gallery .woocommerce-product-gallery__image > a {
    display: block;
}
/* Резерв высоты под полосу миниатюр: FlexSlider строит .flex-control-thumbs
 * JS'ом после загрузки, без резерва контент ниже прыгает (CLS 0.312 на 4G).
 * ::after занимает место ряда миниатюр (4 колонки → aspect-ratio 4/1, ±9px
 * от точной высоты) и исчезает в момент появления настоящей полосы. */
.rv-product__gallery .woocommerce-product-gallery:has(.woocommerce-product-gallery__image + .woocommerce-product-gallery__image):not(:has(.flex-control-thumbs))::after {
    content: "";
    display: block;
    margin-top: 12px;
    aspect-ratio: 4 / 1;
}
.rv-product__gallery .flex-control-thumbs {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 12px 0 0 !important;
    padding: 0;
    list-style: none;
}
.rv-product__gallery .flex-control-thumbs li {
    width: auto !important;
    margin: 0 !important;
    float: none !important;
}
.rv-product__gallery .flex-control-thumbs img {
    display: block;
    box-sizing: border-box;
    /* width обязателен: JS создаёт img без атрибутов размера, и до загрузки
     * ячейка схлопнута — каждая lazy-миниатюра давала свой layout shift
     * (CLS 0.34 на троттлинге). width+aspect-ratio резервируют место сразу. */
    width: 100%;
    aspect-ratio: 1;
    height: auto;
    object-fit: cover;
    border: 2px solid transparent;
    opacity: .72;
    cursor: pointer;
    transition: opacity .2s ease, border-color .2s ease,
        box-shadow .2s ease, transform .2s ease;
}
.rv-product__gallery .flex-control-thumbs img:hover,
.rv-product__gallery .flex-control-thumbs img:focus-visible {
    border-color: rgba(22, 78, 126, .42);
    opacity: 1;
    transform: translateY(-2px);
}
.rv-product__gallery .flex-control-thumbs img.flex-active {
    border-color: var(--rv-brand);
    box-shadow: 0 0 0 3px rgba(22, 78, 126, .12);
    opacity: 1;
}
.rv-product__summary {
    display: flex;
    flex-direction: column;
    gap: 18px;
}
/* Ряд из 4 миниатюр-заглушек 76px (макет: grid repeat(4,1fr) gap 12) */
.rv-pcard-thumbs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}
.rv-pcard-thumb {
    height: 76px;
    border: 1px solid var(--rv-border);
    border-radius: var(--rv-radius-sm);
    background-size: cover;
    background-position: center;
    background-color: var(--rv-bg);
    opacity: .9;
}

/* --- Строка статуса: бейдж наличия + артикул + Госреестр ------------------ */
.rv-pcard-status {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    margin: 0;
}
.rv-pcard-badge {
    display: inline-flex;
    align-items: center;
    font-size: 12px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: var(--rv-radius-sm);
    line-height: 1.2;
}
.rv-pcard-badge.is-instock   { background: var(--rv-success-bg);  color: var(--rv-success); }
.rv-pcard-badge.is-backorder { background: var(--rv-warn-bg);     color: var(--rv-warn); }
.rv-pcard-badge.is-outstock  { background: var(--rv-surface-alt); color: var(--rv-text-muted); }
.rv-pcard-meta {
    font-size: 13px;
    color: var(--rv-text-faint);
    font-variant-numeric: tabular-nums;
}

/* Заголовок карточки — 28px/800/1.25, как в макете */
.rv-product__summary .wp-block-post-title {
    margin: 0;
    font-size: 28px !important;
    font-weight: 800;
    line-height: 1.25;
    color: var(--rv-text);
}

/* --- Панель кратких спеков: grid 1fr/1fr, строки «ключ ——— значение» ------- */
.rv-pcard-specs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 24px;
    margin: 0;
    border: 1px solid var(--rv-divider);
    border-radius: var(--rv-radius-lg);
    padding: 18px 20px;
    background: var(--rv-surface-soft);
}
.rv-pcard-spec {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 14px;
}
.rv-pcard-spec__k { color: var(--rv-text-muted); }
.rv-pcard-spec__v {
    font-weight: 600;
    text-align: right;
    color: var(--rv-text);
    font-variant-numeric: tabular-nums;
}

/* --- Цена: единый центрированный блок «подпись → цена → примечание» ------- */
.rv-pcard-price {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin: 0;
    text-align: center;
}
.rv-pcard-price__label {
    font-size: 13px;
    color: var(--rv-text-muted);
    margin: 0;
}
.rv-pcard-price .wp-block-woocommerce-product-price,
.rv-pcard-price .price {
    font-size: clamp(26px, 3vw, 34px);
    font-weight: 800;
    color: var(--rv-text);
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}
.rv-pcard-price__note {
    font-size: 13px;
    color: var(--rv-text-muted);
    margin: 0;
}
.rv-pcard-price .price del { font-size: 18px; opacity: .5; font-weight: 600; }
.rv-pcard-price .price ins { text-decoration: none; }

/* --- Форма вариаций + кнопки ---------------------------------------------- */
.rv-pcard-actions {
    display: flex;
    flex-direction: column;
    gap: 0;
    align-items: stretch;
    margin: 0;
}
.rv-pcard-actions .variations_form { width: 100%; }

/* Интерактивные чипы вариаций. Исходные select скрываются только после успешной
 * инициализации JS, поэтому без JavaScript форма остаётся рабочей. */
.rv-pcard-actions table.variations.rv-variation-selects--enhanced {
    display: none;
}
.rv-variation-chips {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
    margin: 0 0 18px;
}
.rv-variation-chips__hint {
    margin: 0;
    color: var(--rv-text-muted);
    font-size: 12.5px;
    line-height: 1.4;
}
.rv-variation-chips__field {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}
.rv-variation-chips__label {
    margin: 0 0 8px;
    padding: 0;
    color: var(--rv-text);
    font-size: 14px;
    font-weight: 700;
}
.rv-variation-chips__list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.rv-variation-chip {
    box-sizing: border-box;
    min-height: 42px;
    padding: 9px 14px;
    border: 1.5px solid var(--rv-border-input);
    border-radius: 999px;
    background: var(--rv-surface);
    color: var(--rv-text);
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    transition: color .18s ease, background-color .18s ease,
        border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.rv-variation-chip:hover:not(:disabled) {
    border-color: var(--rv-brand);
    color: var(--rv-brand);
    transform: translateY(-1px);
}
.rv-variation-chip:focus-visible {
    outline: 3px solid rgba(22, 78, 126, .2);
    outline-offset: 2px;
    border-color: var(--rv-brand);
}
.rv-variation-chip.is-selected {
    border-color: var(--rv-brand);
    background: var(--rv-brand);
    color: #fff;
    box-shadow: 0 3px 10px rgba(22, 78, 126, .2);
}
.rv-variation-chip:disabled {
    border-color: var(--rv-divider);
    background: var(--rv-surface-soft);
    color: var(--rv-text-faint);
    opacity: .55;
    cursor: not-allowed;
    text-decoration: line-through;
}

/* селекторы Размер → НПВ */
.rv-pcard-actions table.variations {
    width: 100%;
    border: 0;
    margin: 0 0 16px;
    border-collapse: collapse;
}
.rv-pcard-actions table.variations tr {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 14px;
}
.rv-pcard-actions table.variations th.label {
    text-align: left;
    padding: 0;
    font-weight: 600;
    font-size: 13.5px;
    color: var(--rv-text-muted);
}
.rv-pcard-actions table.variations td.value { padding: 0; }
.rv-pcard-actions table.variations select {
    width: 100%;
    min-height: 46px;
    padding: 0 14px;
    font-size: 15px;
    color: var(--rv-text);
    background: var(--rv-surface);
    border: 1.5px solid var(--rv-border-input);
    border-radius: var(--rv-radius);
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2364748B' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
}
.rv-pcard-actions table.variations select:focus-visible {
    outline: 2px solid var(--rv-brand);
    outline-offset: 1px;
    border-color: var(--rv-brand);
}
/* ссылка «сбросить выбор» */
.rv-pcard-actions .reset_variations {
    display: inline-block;
    font-size: 13px;
    margin: 2px 0 10px;
    color: var(--rv-text-muted);
}

/* строка действий: степпер + основная CTA «В корзину» + outline «Запросить КП» */
.rv-pcard-actions .woocommerce-variation-add-to-cart,
.rv-pcard-actions .single_variation_wrap,
.rv-pcard-actions form.cart:not(.variations_form),
.rv-pcard-actions .woocommerce-variation-add-to-cart {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 12px;
    width: 100%;
}
/* когда форма simple (без вариаций) — сама форма становится строкой кнопок */
.rv-pcard-actions form.cart {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 12px;
}
.rv-pcard-actions .quantity {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid var(--rv-border-input);
    border-radius: var(--rv-radius);
    overflow: hidden;
}
.rv-pcard-actions .quantity input.qty {
    width: 56px;
    min-height: 46px;
    border: 0;
    text-align: center;
    font-size: 15px;
    font-weight: 700;
    background: var(--rv-surface);
    color: var(--rv-text);
    -moz-appearance: textfield;
}
.rv-pcard-actions .quantity input.qty::-webkit-outer-spin-button,
.rv-pcard-actions .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* --- Видимый степпер количества «− [input] +» (макет Product.dc.html) -------
 * Кнопки вставлены PHP-хуками внутрь .quantity, синхронизация — js/qty-stepper.js.
 * Тач-таргет ≥44px. */
.rv-pcard-actions .quantity .rv-qty__btn {
    width: 46px;
    min-height: 46px;
    flex: 0 0 auto;
    border: 0;
    background: var(--rv-surface-alt);
    color: var(--rv-brand);
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .15s ease;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
}
.rv-pcard-actions .quantity .rv-qty__btn:hover { background: #E2E8F0; }
.rv-pcard-actions .quantity .rv-qty__btn:disabled { opacity: .4; cursor: not-allowed; }
.rv-pcard-actions .quantity .rv-qty__btn--minus { border-right: 1px solid var(--rv-border-input); }
.rv-pcard-actions .quantity .rv-qty__btn--plus { border-left: 1px solid var(--rv-border-input); }

/* кнопка «В корзину» — кобальтовая основная CTA */
.rv-pcard-actions .single_add_to_cart_button {
    flex: 1 1 auto;
    min-height: 46px;
    padding: 0 30px;
    font-size: 15px;
    font-weight: 700;
    color: #fff;
    background: var(--rv-accent);
    border: 0;
    border-radius: var(--rv-radius);
    cursor: pointer;
    transition: background-color .15s ease, opacity .15s ease;
}
.rv-pcard-actions .single_add_to_cart_button:hover { background: var(--rv-accent-hover); }
.rv-pcard-actions .single_add_to_cart_button:active { background: var(--rv-accent-active); }
.rv-pcard-actions .single_add_to_cart_button.disabled,
.rv-pcard-actions .single_add_to_cart_button:disabled { opacity: .5; cursor: not-allowed; }
/* после добавления в корзину — зелёная «В корзине ✓» (added state) */
.rv-pcard-actions .single_add_to_cart_button.added { background: var(--rv-success); }

/* кнопка «Запросить КП» — СИНЯЯ outline (макет: рамка #164E7E, текст #164E7E) */
.rv-pcard-kp {
    flex: 1 1 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 24px;
    font-size: 15px;
    font-weight: 600;
    color: var(--rv-brand);
    background: var(--rv-surface);
    border: 1px solid var(--rv-brand);
    border-radius: var(--rv-radius);
    text-decoration: none;
    transition: background .15s ease;
}
.rv-pcard-kp:hover { background: var(--rv-active-row); }

/* --- Трест-бейджи ---------------------------------------------------------- */
.rv-pcard-trust {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 22px;
    list-style: none;
    margin: 0;
    padding: 16px 0 0;
    border-top: 1px solid var(--rv-divider);
}
.rv-pcard-trust li {
    position: relative;
    padding-left: 24px;
    font-size: 13.5px;
    color: var(--rv-text);
}
.rv-pcard-trust li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    background: var(--rv-success);
    border-radius: 50%;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='white' d='M6.5 11L3 7.5l1-1 2.5 2.5L12 3.5l1 1z'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='white' d='M6.5 11L3 7.5l1-1 2.5 2.5L12 3.5l1 1z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* rv:critical-cut-start — TASK-008: секции ниже (табы, контент 1С-синка) не
 * входят в критический CSS карточки — они ниже первого экрана. */

/* --- Табы (Описание / Характеристики / Документы / Доставка) по макету ------ */
.rv-product__tabs {
    margin-top: 32px !important;
    background: var(--rv-surface);
    border: 1px solid var(--rv-border);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 8px 30px rgba(14, 42, 71, .07);
}
/* полоса вкладок */
.rv-product__tabs .wp-block-woocommerce-product-details ul.wc-tabs,
.rv-product__tabs ul.tabs.wc-tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: 6px;
    margin: 0;
    padding: 8px;
    list-style: none;
    background: var(--rv-surface-soft);
    border-bottom: 1px solid var(--rv-border);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
}
.rv-product__tabs ul.wc-tabs li {
    flex: 0 0 auto;
    margin: 0;
    border: 0 !important;
    background: transparent;
}
.rv-product__tabs ul.wc-tabs li::before,
.rv-product__tabs ul.wc-tabs li::after { display: none !important; }
.rv-product__tabs ul.wc-tabs li a {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    box-sizing: border-box;
    min-height: 46px;
    padding: 11px 17px;
    border: 1px solid transparent;
    border-bottom-color: transparent !important;
    border-radius: 9px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--rv-text-muted);
    text-decoration: none !important;
    box-shadow: none !important;
    white-space: nowrap;
    transition: color .2s ease, background-color .2s ease,
        border-color .2s ease, transform .2s ease;
}
.rv-product__tabs ul.wc-tabs li a::before {
    content: "";
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    background: currentColor;
    opacity: .8;
    -webkit-mask: var(--rv-tab-icon) center/contain no-repeat;
    mask: var(--rv-tab-icon) center/contain no-repeat;
}
.rv-product__tabs li.description_tab a {
    --rv-tab-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3h11l3 3v15H5V3zm2 2v14h10V7h-3V5H7zm2 5h6v2H9v-2zm0 4h6v2H9v-2z'/%3E%3C/svg%3E");
}
.rv-product__tabs li.specs_tab a,
.rv-product__tabs li.additional_information_tab a {
    --rv-tab-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5h10v2H4V5zm0 6h16v2H4v-2zm0 6h7v2H4v-2zm13-13h2v5h-2V4zm-6 9h2v7h-2v-7z'/%3E%3C/svg%3E");
}
.rv-product__tabs li.rv_docs_tab a {
    --rv-tab-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 2h8l4 4v16H6V2zm2 2v16h8V8h-4V4H8zm2 8h4v2h-4v-2zm0 4h4v2h-4v-2z'/%3E%3C/svg%3E");
}
.rv-product__tabs li.rv_delivery_tab a {
    --rv-tab-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h11v4h4l3 4v5h-2a3 3 0 0 1-6 0H9a3 3 0 0 1-6 0H2V6l1-1zm1 2v7h11V7H4zm13 4v3h2.5L18 11h-1zM6 17a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm10 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2z'/%3E%3C/svg%3E");
}
.rv-product__tabs ul.wc-tabs li a:hover,
.rv-product__tabs ul.wc-tabs li a:focus,
.rv-product__tabs ul.wc-tabs li a:active {
    color: var(--rv-brand);
    background: rgba(22, 78, 126, .07);
    text-decoration: none !important;
    box-shadow: none !important;
    transform: translateY(-1px);
}
.rv-product__tabs ul.wc-tabs li a:focus-visible {
    outline: 3px solid rgba(22, 78, 126, .18);
    outline-offset: 1px;
}
.rv-product__tabs ul.wc-tabs li.active a {
    font-weight: 700;
    color: var(--rv-brand);
    background: var(--rv-surface);
    border-color: var(--rv-border);
    box-shadow: none !important;
}
.rv-product__tabs ul.wc-tabs li.active a::after {
    content: "";
    position: absolute;
    right: 16px;
    bottom: -1px;
    left: 16px;
    height: 3px;
    border-radius: 3px 3px 0 0;
    background: linear-gradient(90deg, var(--rv-brand), #3b82f6);
}
/* контент таба — отступ 32px (макет). Усиленный селектор: WooCommerce кладёт панель
 * глубоко в .wp-block-woocommerce-product-details, дефолтный padding = 0. */
.rv-product__tabs .woocommerce-Tabs-panel,
.rv-product__tabs .wp-block-woocommerce-product-details .woocommerce-Tabs-panel {
    padding: 34px 36px 38px !important;
    font-size: 15px;
    line-height: 1.7;
    color: #334155;
    background: linear-gradient(180deg, rgba(248, 250, 252, .7), #fff 72px);
    animation: rv-tab-panel-in .28s cubic-bezier(.2, .7, .3, 1) both;
}
@keyframes rv-tab-panel-in {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}
.rv-product__tabs .woocommerce-Tabs-panel > h2:first-child { display: none; } /* дублирует таб */
.rv-product__tabs .woocommerce-Tabs-panel p { margin: 0 0 18px; max-width: 880px; }
.rv-product__tabs .woocommerce-Tabs-panel h3 {
    color: var(--rv-brand-dark);
    font-size: 18px;
    font-weight: 750;
    margin: 0 0 12px;
}

/* Таблица «Характеристики» */
.rv-spectable {
    width: 100%;
    max-width: 880px;
    border: 1px solid var(--rv-divider);
    border-collapse: separate;
    border-spacing: 0;
    border-radius: var(--rv-radius-lg);
    overflow: hidden;
}
.rv-spectable td { padding: 12px 16px; font-size: 14px; }
.rv-spectable tr + tr td { border-top: 1px solid var(--rv-divider); }
.rv-spectable td:first-child { color: var(--rv-text-muted); }
.rv-spectable td:last-child { font-weight: 600; text-align: right; }
.rv-spectable tr:nth-child(odd) { background: var(--rv-surface-soft); }

/* --- Контент из синка 1С (TASK-003) ---------------------------------------
 * table.rv-specs — таблица ТТХ (название параметра в th[scope=row]);
 * ul.rv-kit — комплект поставки; плюс любые таблицы внутри вкладки
 * «Характеристики» (.etalon-specs-content, мета _etalon_specs).
 * Те же блоки временно приходят и во вкладку «Описание», поэтому селекторы
 * привязаны к .rv-product__tabs, а не к конкретной панели. */
.rv-product__tabs table.rv-specs,
.etalon-specs-content table {
    width: 100%;
    max-width: 880px;
    margin: 0 0 18px;
    border: 1px solid var(--rv-divider);
    border-collapse: separate;
    border-spacing: 0;
    border-radius: var(--rv-radius-lg);
    overflow: hidden;
    font-size: 14px;
    line-height: 1.5;
}
.rv-product__tabs table.rv-specs th,
.rv-product__tabs table.rv-specs td,
.etalon-specs-content table th,
.etalon-specs-content table td {
    padding: 11px 16px;
    border: 0;
    text-align: left;
    vertical-align: top;
    overflow-wrap: anywhere;
}
.rv-product__tabs table.rv-specs tr + tr th,
.rv-product__tabs table.rv-specs tr + tr td,
.etalon-specs-content table tr + tr th,
.etalon-specs-content table tr + tr td {
    border-top: 1px solid var(--rv-divider);
}
.rv-product__tabs table.rv-specs tbody tr:nth-child(odd),
.etalon-specs-content table tbody tr:nth-child(odd) {
    background: var(--rv-surface-soft);
}
/* Название параметра слева: приглушённое, без жирного дефолтного th */
.rv-product__tabs table.rv-specs th[scope="row"],
.etalon-specs-content table th[scope="row"] {
    width: 46%;
    color: var(--rv-text-muted);
    font-weight: 500;
}
.rv-product__tabs table.rv-specs td,
.etalon-specs-content table td {
    color: var(--rv-text);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
/* Шапка, если таблица придёт с thead */
.rv-product__tabs table.rv-specs thead th,
.etalon-specs-content table thead th {
    background: var(--rv-surface-alt);
    color: var(--rv-brand-dark);
    font-weight: 700;
}

/* Комплект поставки из синка — список с зелёными галочками (как трест-бейджи) */
.rv-product__tabs ul.rv-kit {
    max-width: 880px;
    margin: 0 0 18px;
    padding: 0;
    list-style: none;
}
.rv-product__tabs ul.rv-kit li {
    position: relative;
    margin: 0;
    padding: 5px 0 5px 28px;
}
.rv-product__tabs ul.rv-kit li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 9px;
    width: 17px;
    height: 17px;
    background: var(--rv-success);
    border-radius: 50%;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='white' d='M6.5 11L3 7.5l1-1 2.5 2.5L12 3.5l1 1z'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='white' d='M6.5 11L3 7.5l1-1 2.5 2.5L12 3.5l1 1z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Комплект поставки внутри описания (плашка) */
.rv-product__tabs .woocommerce-Tabs-panel h3 + ul,
.rv-product__tabs #tab-description ul {
    max-width: 840px;
}

/* Документы */
.rv-docs { max-width: 720px; display: flex; flex-direction: column; gap: 12px; }
.rv-doc {
    display: flex;
    align-items: center;
    gap: 16px;
    border: 1px solid var(--rv-border);
    border-radius: var(--rv-radius-lg);
    padding: 16px 20px;
    text-decoration: none;
    color: inherit;
    transition: border-color .2s ease, background-color .2s ease,
        box-shadow .2s ease, transform .2s ease;
}
.rv-doc:hover {
    border-color: var(--rv-brand);
    background: var(--rv-surface-soft);
    box-shadow: 0 5px 18px rgba(14, 42, 71, .08);
    transform: translateY(-2px);
}
.rv-doc__icon {
    flex: 0 0 auto; width: 26px; height: 26px;
    background: #B23B3B;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.7'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.7'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6'/%3E%3C/svg%3E") center/contain no-repeat;
}
.rv-doc__body { flex: 1; display: flex; flex-direction: column; }
.rv-doc__name { font-size: 14px; font-weight: 600; color: var(--rv-text); }
.rv-doc__meta { font-size: 12px; color: var(--rv-text-faint); margin-top: 2px; }
.rv-doc__dl { font-size: 13px; font-weight: 600; color: var(--rv-brand); }

/* Доставка и оплата — 2 колонки */
.rv-delivery { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; max-width: 840px; }
.rv-delivery__col {
    border: 1px solid var(--rv-divider);
    border-radius: var(--rv-radius-lg);
    padding: 24px;
    background: var(--rv-surface-soft);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.rv-delivery__col:hover {
    border-color: rgba(22, 78, 126, .28);
    box-shadow: 0 6px 20px rgba(14, 42, 71, .07);
    transform: translateY(-2px);
}
.rv-delivery__col p { color: var(--rv-text-muted); margin: 0; }
@media (max-width: 679px) { .rv-delivery { grid-template-columns: 1fr; } }

.rv-product__related-title {
    margin: 40px 0 20px;
    font-size: 24px;
    font-weight: 800;
}

/* Кнопки мобильного аккордеона вкладок существуют в DOM всегда,
 * но видимы только в мобильном медиаблоке ниже. */
.rv-tabs-accordion__toggle { display: none; }

/* rv:critical-cut-end — TASK-008: адаптив ниже снова входит в критический CSS
 * (медиа-правила первого экрана: hero, спеки, кнопки). */

/* ============================ АДАПТИВ КАРТОЧКИ ============================= */
/* ≤1023: hero в один столбец (макет: g2 → 1 колонка) */
@media (max-width: 1023px) {
    .rv-product__hero {
        grid-template-columns: 1fr;
        gap: 28px !important;
        padding: 24px;
    }
}
/* ≤679: спеки в 1 колонку, кнопки на всю ширину, заголовок мельче */
@media (max-width: 679px) {
    .rv-pcard-specs { grid-template-columns: 1fr; }
    .rv-product__summary .wp-block-post-title { font-size: 24px !important; }
    .rv-pcard-actions .single_variation_wrap,
    .rv-pcard-actions form.cart { flex-direction: column; align-items: stretch; }
    .rv-pcard-actions .quantity { align-self: flex-start; }
    .rv-pcard-actions .single_add_to_cart_button,
    .rv-pcard-kp { width: 100%; }
    .rv-pcard-thumbs { grid-template-columns: repeat(4, 1fr); }
    .rv-product__tabs { margin-top: 24px !important; border-radius: 10px; }
    .rv-product__tabs ul.tabs.wc-tabs { padding: 7px; }
    .rv-product__tabs ul.wc-tabs li a { min-height: 44px; padding: 10px 14px; }
    .rv-product__tabs .woocommerce-Tabs-panel,
    .rv-product__tabs .wp-block-woocommerce-product-details .woocommerce-Tabs-panel {
        padding: 24px 20px 28px !important;
    }

    /* Таблицы ТТХ из синка: строки складываются в «название ↑ / значение ↓» —
     * никакого горизонтального скролла, перенос вместо overflow-x. */
    .rv-product__tabs table.rv-specs,
    .etalon-specs-content table {
        font-size: 13.5px;
    }
    .rv-product__tabs table.rv-specs tr,
    .etalon-specs-content table tr {
        display: block;
    }
    .rv-product__tabs table.rv-specs tr + tr,
    .etalon-specs-content table tr + tr {
        border-top: 1px solid var(--rv-divider);
    }
    .rv-product__tabs table.rv-specs th,
    .rv-product__tabs table.rv-specs td,
    .etalon-specs-content table th,
    .etalon-specs-content table td {
        display: block;
        width: auto;
        padding: 9px 14px;
    }
    /* разделитель уже на tr — межъячеечные линии внутри строки убираем */
    .rv-product__tabs table.rv-specs tr + tr th,
    .rv-product__tabs table.rv-specs tr + tr td,
    .etalon-specs-content table tr + tr th,
    .etalon-specs-content table tr + tr td {
        border-top: 0;
    }
    .rv-product__tabs table.rv-specs th[scope="row"],
    .etalon-specs-content table th[scope="row"] {
        padding: 9px 14px 1px;
        font-size: 12.5px;
    }
    .rv-product__tabs table.rv-specs th[scope="row"] + td,
    .etalon-specs-content table th[scope="row"] + td {
        padding: 0 14px 9px;
    }

    /* Вариации: на телефоне чипы не помещаются — работают компактные
     * нативные dropdown; порядок строк НПВ → платформа задаёт JS. */
    .rv-pcard-actions .rv-variation-chips { display: none; }
    .rv-pcard-actions table.variations.rv-variation-selects--enhanced { display: table; }

    /* Вкладки: горизонтальный список заменяется аккордеоном
     * (кнопки строит product-tabs-mobile.js, класс ставится после init). */
    .rv-product__tabs .rv-tabs--accordion ul.wc-tabs { display: none; }
    .rv-tabs-accordion__toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        width: 100%;
        min-height: 52px;
        padding: 14px 20px;
        border: 0;
        border-top: 1px solid var(--rv-divider);
        background: none;
        color: var(--rv-text);
        font: inherit;
        font-size: 15.5px;
        font-weight: 700;
        text-align: left;
        cursor: pointer;
    }
    .rv-tabs-accordion__toggle:first-of-type { border-top: 0; }
    .rv-tabs-accordion__toggle::after {
        content: "";
        flex: 0 0 auto;
        width: 9px;
        height: 9px;
        margin-right: 2px;
        border-right: 2px solid var(--rv-text-muted);
        border-bottom: 2px solid var(--rv-text-muted);
        transform: rotate(45deg);
        transition: transform .18s ease, border-color .18s ease;
    }
    .rv-tabs-accordion__toggle[aria-expanded="true"] { color: var(--rv-brand); }
    .rv-tabs-accordion__toggle[aria-expanded="true"]::after {
        transform: rotate(225deg);
        border-color: var(--rv-brand);
    }
    .rv-tabs-accordion__toggle:focus-visible {
        outline: 2px solid var(--rv-brand);
        outline-offset: -2px;
        border-radius: 8px;
    }
    .rv-tabs--accordion .woocommerce-Tabs-panel { display: none !important; }
    .rv-tabs--accordion .woocommerce-Tabs-panel.is-open { display: block !important; }
}

@media (prefers-reduced-motion: reduce) {
    .rv-product__tabs .woocommerce-Tabs-panel { animation: none !important; }
    .rv-product__tabs ul.wc-tabs li a,
    .rv-doc,
    .rv-delivery__col { transition: none !important; }
}
