/* ==========================================================================
   APP-FIXES.CSS — корректирующие стили для нового приложения
   Подключается ПОСЛЕ main.min.css и переопределяет проблемные правила
   ========================================================================== */

/* ----------------------------------------------------------
   1. HEADER — иконки справа всегда видны и в ряд
   ---------------------------------------------------------- */
.header__right {
    display: flex !important;
    align-items: center;
    gap: 8px;
}

.header__right-item {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    cursor: pointer;
    position: relative;
    color: #23202E;
    text-decoration: none;
}

.header__right-item .luizab-search,
.header__right-item .luizab-heart,
.header__right-item .luizab-cart,
.header__right-item .luizab-user {
    font-size: 22px;
    line-height: 1;
}

.header__account,
.header__account-btn {
    display: flex !important;
}

.hide-on-mobile { display: flex !important; }

/* Скрытые счётчики не должны занимать место */
.js-favorite-count:empty,
.js-cart-count:empty {
    display: none !important;
}

.header__favorites-count,
.header__cart-count {
    position: absolute;
    top: 4px;
    right: 4px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    background: #ff4c52;
    color: #fff;
    border-radius: 8px;
    font-size: 10px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

/* ----------------------------------------------------------
   2. CATALOG GRID — фиксированная сетка карточек
   ---------------------------------------------------------- */
.bprods__list {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 24px;
    margin: 30px 0;
    width: 100%;
    min-width: 0;
}

.bprods__item {
    position: relative;
    background: #fff;
    min-width: 0;
    max-width: 100%;
}

.bprods__item-gallery {
    position: relative;
    width: 100%;
    aspect-ratio: 3/4;
    overflow: hidden;
    background: linear-gradient(135deg, #f5f3f0 0%, #e8e3dc 50%, #f5f3f0 100%);
    margin-bottom: 12px;
}

.bprods__item-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Плейсхолдер изображения товара (виден когда фото нет или не загрузилось) */
.bprods__item-gallery .swiper-wrapper {
    z-index: 0 !important;
    background: transparent !important;
}

.bprods__item-gallery .swiper-slide,
.bprods__item-gallery .bprods__item-gallery-item {
    background: transparent !important;
}

.product-placeholder {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: rgba(35, 32, 46, 0.4);
    font-family: var(--ff-sec);
    text-align: center;
    padding: 20px;
    text-decoration: none;
    background: linear-gradient(135deg, #f5f3f0 0%, #e8e3dc 50%, #f5f3f0 100%);
}

.product-placeholder__brand {
    font-size: 26px;
    font-style: italic;
    font-weight: 400;
    letter-spacing: 1px;
    margin-bottom: 4px;
    color: rgba(35, 32, 46, 0.5);
}

.product-placeholder__sub {
    font-family: var(--ff);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 2px;
    opacity: 0.7;
    color: rgba(35, 32, 46, 0.4);
}

/* Картинка перекрывает плейсхолдер только если успешно загрузилась */
.bprods__item-gallery img {
    position: relative;
    z-index: 2;
}

/* ----------------------------------------------------------
   COLOR SWATCHES — круглые цветные кружки
   ---------------------------------------------------------- */
.sproduct__colors-list {
    display: flex !important;
    gap: 6px;
    margin-top: 8px;
    flex-wrap: wrap;
}

.bprods .sproduct__color-item,
.sarchive .sproduct__color-item {
    width: 14px;
    height: 14px;
    min-width: 14px;
    min-height: 14px;
    border-radius: 0;
    border: 1px solid rgba(218, 167, 84, 0.68);
    display: block;
    cursor: pointer;
    transition: transform 0.15s;
    flex-shrink: 0;
    text-decoration: none;
    padding: 0;
    box-sizing: border-box;
}
.bprods .sproduct__color-item:hover,
.sarchive .sproduct__color-item:hover {
    transform: scale(1.2);
}
.bprods .sproduct__color-item.active,
.sarchive .sproduct__color-item.active {
    border-color: #daa754;
    border-width: 1.5px;
}

.bprods__item-name {
    font-size: 14px;
    line-height: 1.4;
    margin: 0 0 6px;
    color: #23202E;
    text-decoration: none;
    display: block;
    min-height: 38px;
}

.bprods__item-price {
    font-size: 16px;
    font-weight: 500;
    color: #23202E;
    margin-bottom: 8px;
}

.bprods__item-price del {
    color: #999;
    font-weight: 400;
    margin-left: 8px;
    font-size: 14px;
}

.bprods__item-price ins {
    color: #ff4c52;
    text-decoration: none;
}

.bprods__item-favorite {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 5;
}

.bprods__item-favorite button {
    background: rgba(255, 255, 255, 0.85);
    border: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
}

.bprods__item-favorite button:hover {
    background: #fff;
}

.bprods__item-favorite button.added .luizab-heart {
    color: #ff4c52;
}

.bprods__item-tags {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 4;
}

.bprods__item-sale-product {
    background: #ff4c52;
    color: #fff;
    padding: 4px 10px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.5px;
}

/* ----------------------------------------------------------
   3. SARCHIVE GRID — каталог с сайдбаром
   ---------------------------------------------------------- */
.sarchive__grid {
    display: grid;
    grid-template-columns: 250px 1fr;
    gap: 40px;
    align-items: flex-start;
}

@media (max-width: 768px) {
    .sarchive__grid {
        grid-template-columns: 1fr;
    }
}

.sarchive__title {
    font-family: var(--ff-sec);
    font-size: clamp(30px, 4vw, 42px);
    font-weight: 400;
    line-height: 1.15;
    letter-spacing: 1px;
    text-align: center;
    color: #23202E;
    margin: 8px 0 28px;
}

.sarchive__orderby {
    border: 1px solid #ddd;
    padding: 8px 12px;
    background: #fff;
    cursor: pointer;
}

/* Сайдбар фильтров */
.filters-catalog__group {
    margin-bottom: 24px;
    padding-bottom: 24px;
    border-bottom: 1px solid #eee;
}

.filters-catalog__heading {
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 14px;
}

.filters-catalog__item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
    cursor: pointer;
    font-size: 14px;
}

.filters-catalog__color {
    display: inline-block;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 1px solid #ddd;
}

.filters-catalog__count {
    color: #999;
    font-size: 12px;
}

.filters-catalog__price {
    display: flex;
    gap: 8px;
}

.filters-catalog__price input {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid #ddd;
}

.filters-catalog__submit {
    width: 100%;
    margin-top: 10px;
}

.filters-catalog__reset {
    display: block;
    text-align: center;
    margin-top: 10px;
    color: #666;
    font-size: 13px;
    text-decoration: underline;
}

/* ----------------------------------------------------------
   4. BREADCRUMBS — хлебные крошки
   ---------------------------------------------------------- */
.breadcrumbs-flex-legacy {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 14px 0;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #888;
}

.breadcrumbs a {
    color: #888;
    text-decoration: none;
}

.breadcrumbs a:hover { color: #23202E; }

.breadcrumbs__separator { color: #ccc; }

.breadcrumbs__current { color: #d4a542; }

/* ----------------------------------------------------------
   5. CART — корзина (matches prod luizabellezza.com)
   ---------------------------------------------------------- */
.scart { margin-top: 100px; }
.scart__grid {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 60px;
    align-items: flex-start;
}
@media (max-width: 900px) { .scart__grid { grid-template-columns: 1fr; gap: 30px; } }
@media (max-width: 768px) { .scart { margin-top: 30px; } }

/* ── Список товаров ───────────────────────────────────── */
.cart-table { display: flex; flex-direction: column; }

.cart-row {
    display: flex;
    flex-direction: row;
    gap: 40px;
    margin-bottom: 90px;
    padding-bottom: 40px;
    border-bottom: 1px solid #E5E5E5;
}
.cart-row:last-child { margin-bottom: 40px; }

.product-thumbnail.cart-col { flex: 0 0 auto; }
.product-thumbnail.cart-col .cart-item-image {
    display: block;
    width: 208px;
    aspect-ratio: 208 / 300;
    background: linear-gradient(135deg, #f5f3f0 0%, #e8e3dc 100%);
    overflow: hidden;
    position: relative;
}
.product-thumbnail.cart-col .cart-item-image::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 24 24' fill='none' stroke='%23bdb5a8' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpath d='m21 15-5-5L5 21'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    opacity: .9;
    pointer-events: none;
}
.product-thumbnail.cart-col .cart-item-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: relative;
    z-index: 1;
    background: #f5f3f0; /* перекрывает плейсхолдер, если файл загрузится */
}

.cart-main-col {
    width: 100%;
    display: flex;
    flex-direction: column;
}

.cart-main-row-first {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 30px;
}

.cart-name-container { display: flex; flex-direction: column; }

.product-art {
    font-size: 12px;
    font-weight: 400;
    color: #4C4C4C;
    margin-bottom: 8px;
}
.product-format-title {
    font-size: 20px;
    font-weight: 400;
    color: #272727;
    margin-bottom: 18px;
    text-decoration: none;
    display: inline-block;
}
.product-format-title:hover { color: #DAA754; }

.scart .product-name-price { margin-top: 0; }
.scart .product-name-price .original-price {
    font-size: 24px;
    font-weight: 500;
    color: #272727;
}
/* Перебивка цвета финальной цены, когда есть скидка — красный как в карточке */
.scart .product-name-price.has-sale .original-price {
    color: #ff4c52;
}
.scart .product-name-price .cart-price-old {
    font-size: 18px;
    font-weight: 400;
    color: #999;
    text-decoration: line-through;
    margin-right: 10px;
}
.scart .product-name-price .sale-price {
    font-size: 15px;
    font-weight: 500;
    color: #ff4c52;
    margin-left: 8px;
}

/* Кнопки сердце / удалить — без рамок, чистые иконки */
.cart-control-container {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 30px;
}
.scart .button-favorite,
.scart .remove,
.scart a.remove {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    text-decoration: none;
    color: #272727;
}
.scart a.remove:hover { background: transparent; }

/* Сердце через svg-маску (как на проде) */
.scart .luizab-heart {
    display: block;
    width: 30px;
    height: 30px;
    background: transparent;
}
.scart .luizab-heart::before {
    content: '';
    display: block;
    width: 30px;
    height: 30px;
    background-image: url("data:image/svg+xml,%3Csvg width='30' height='30' viewBox='0 0 30 30' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.56335 17.3853L14.2541 25.5493C14.5535 25.8305 14.7032 25.9712 14.8796 26.0058C14.9591 26.0214 15.0409 26.0214 15.1204 26.0058C15.2968 25.9712 15.4465 25.8305 15.7459 25.5493L24.4367 17.3853C26.8819 15.0882 27.1788 11.3082 25.1223 8.65758L24.7356 8.15918C22.2753 4.98823 17.337 5.52002 15.6083 9.14206C15.3641 9.6537 14.6359 9.6537 14.3917 9.14206C12.663 5.52002 7.72465 4.98823 5.26443 8.15918L4.87773 8.65759C2.82118 11.3083 3.11813 15.0882 5.56335 17.3853Z' stroke='%23272727' stroke-width='1.25'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
}
.scart .button-favorite.added .luizab-heart::before {
    background-image: url("data:image/svg+xml,%3Csvg width='30' height='30' viewBox='0 0 30 30' fill='%23efbf04' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.56335 17.3853L14.2541 25.5493C14.5535 25.8305 14.7032 25.9712 14.8796 26.0058C14.9591 26.0214 15.0409 26.0214 15.1204 26.0058C15.2968 25.9712 15.4465 25.8305 15.7459 25.5493L24.4367 17.3853C26.8819 15.0882 27.1788 11.3082 25.1223 8.65758L24.7356 8.15918C22.2753 4.98823 17.337 5.52002 15.6083 9.14206C15.3641 9.6537 14.6359 9.6537 14.3917 9.14206C12.663 5.52002 7.72465 4.98823 5.26443 8.15918L4.87773 8.65759C2.82118 11.3083 3.11813 15.0882 5.56335 17.3853Z' fill='%23efbf04'/%3E%3C/svg%3E");
}

.scart .luizab-close.cart-close-item { display: inline-flex; }
.scart .luizab-close.cart-close-item::before { content: none; }

/* Вторая строка: Цвет / Размер / Количество */
.cart-main-row-second {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    gap: 32px;
}
.product-color, .product-size, .product-quantity {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 90px;
}

.scart__item-second-row-label,
.scart__item-label {
    font-size: 16px;
    font-weight: 500;
    color: #ACACAC;
    text-transform: none;
    letter-spacing: 0;
}

/* Дропдаун */
.scart__dropdown { position: relative; width: 100%; }
.scart__dropdown-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    gap: 12px;
    color: #DAA754;
    font-weight: 500;
    font-size: 16px;
    font-family: inherit;
}
.scart__dropdown-current { color: #DAA754; font-weight: 500; font-size: 16px; }
.scart__dropdown-arrow { display: flex; align-items: center; transition: transform .25s ease; }
.scart__dropdown-arrow svg { display: block; }
.scart__dropdown.is-open .scart__dropdown-arrow { transform: rotate(180deg); }

.scart__dropdown-list {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    min-width: 100%;
    width: 130px;
    max-width: 320px;
    background: #fff;
    border-radius: 12px;
    border: 1px solid #eee;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
    opacity: 0;
    pointer-events: none;
    transform: translateY(6px);
    transition: 0.25s;
    z-index: 99;
    max-height: 200px;
    overflow: auto;
    padding: 6px 0;
}
.scart__dropdown.is-open .scart__dropdown-list { opacity: 1; pointer-events: auto; transform: translateY(0); }

.scart__dropdown-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 15px;
    margin: 0 12px;
    cursor: pointer;
    transition: 0.2s;
    justify-content: center;
    font-size: 14px;
    font-weight: 400;
    color: #272727;
}
.scart__dropdown-item:hover { color: #DAA754; }
.scart__dropdown-item.is-active {
    border-bottom: 1px solid #E5E5E5;
    gap: 5px;
    position: relative;
}
.scart__dropdown-item.is-active .scart__dropdown-arrow {
    display: flex !important;
    position: absolute;
    right: 5px;
}

/* Цвет / размер — статический золотой текст */
.scart__color-static,
.scart__item-size-new {
    color: #DAA754;
    font-weight: 500;
    font-size: 16px;
}
.scart__item-color { display: inline-flex; align-items: center; gap: 8px; }
.scart__color-dot { width: 14px; height: 14px; border-radius: 50%; border: 1px solid #ccc; }

/* Quantity + - (внутри dropdown-list--quantity) */
.scart__dropdown-list--quantity .quantity {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 6px;
}
.scart__dropdown-list--quantity .quantity button {
    background: transparent;
    border: 1px solid #E5E5E5;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #272727;
    font-size: 16px;
    line-height: 1;
    padding: 0;
}
.scart__dropdown-list--quantity .quantity button:hover { border-color: #DAA754; color: #DAA754; }
.scart__dropdown-list--quantity .quantity .luizab-minus,
.scart__dropdown-list--quantity .quantity .luizab-plus {
    display: inline-block;
    width: 10px;
    height: 10px;
    position: relative;
}
.scart__dropdown-list--quantity .quantity .luizab-minus::before,
.scart__dropdown-list--quantity .quantity .luizab-plus::before,
.scart__dropdown-list--quantity .quantity .luizab-plus::after {
    content: '';
    position: absolute;
    background: currentColor;
}
.scart__dropdown-list--quantity .quantity .luizab-minus::before { left: 0; right: 0; top: 50%; height: 1px; transform: translateY(-50%); }
.scart__dropdown-list--quantity .quantity .luizab-plus::before  { left: 0; right: 0; top: 50%; height: 1px; transform: translateY(-50%); }
.scart__dropdown-list--quantity .quantity .luizab-plus::after   { top: 0; bottom: 0; left: 50%; width: 1px; transform: translateX(-50%); }
.scart__dropdown-list--quantity .quantity input.qty {
    width: 36px;
    border: none;
    text-align: center;
    background: transparent;
    font-size: 16px;
    font-weight: 500;
    color: #272727;
    -moz-appearance: textfield;
    appearance: textfield;
    pointer-events: none;
}
.scart__dropdown-list--quantity .quantity input.qty::-webkit-outer-spin-button,
.scart__dropdown-list--quantity .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* ── Правая колонка: Итого / промокод / оформить ────────── */
.scart__right { width: 100%; }
.cart_totals {
    background: transparent;
    padding: 0;
    position: static;
}
.cart-totals-title {
    font-family: var(--ff-sec);
    font-size: 32px;
    font-weight: 300;
    color: #272727;
    margin: 0 0 24px;
    text-transform: none;
}
.cart-totals-flex-wrapper { display: flex; flex-direction: column; gap: 14px; }
.cart-subtotal-line {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #272727;
}
.cart-subtotal-title { color: #272727; font-size: 14px; font-weight: 400; }
.cart-subtotal-dots {
    flex: 1;
    border-bottom: 1px dotted #C9C9C9;
    height: 0;
    margin: 0 6px;
}
.cart-subtotal-price { color: #272727; font-size: 14px; font-weight: 400; white-space: nowrap; }
.cart-subtotal-line.total { font-size: 16px; }
.cart-subtotal-line.total .cart-subtotal-title { font-weight: 500; }
.cart-subtotal-line.total .cart-subtotal-price strong { font-weight: 600; }

/* Промокод */
.coupon-span {
    font-size: 14px;
    color: #272727;
    margin: 20px 0 10px;
}
.form-coupon { margin-bottom: 24px; }
.form-coupon .coupon {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 1px solid #E5E5E5;
    background: #fff;
}
.form-coupon .coupon label { flex: 1; display: flex; }
.form-coupon .coupon input.input-text {
    width: 100%;
    border: none;
    outline: none;
    padding: 14px 16px;
    background: transparent;
    font-size: 14px;
    color: #272727;
    font-family: inherit;
}
.form-coupon .coupon input.input-text::placeholder { color: #ACACAC; }
.form-coupon .coupon button {
    background: transparent;
    border: none;
    padding: 14px 18px;
    cursor: pointer;
    font-size: 14px;
    color: #DAA754;
    font-weight: 500;
    font-family: inherit;
    white-space: nowrap;
}
.form-coupon .coupon button:hover { color: #b88a3c; }

/* Оформить заказ */
.lb-proceed-to-checkout { margin-top: 12px; }
.lb-proceed-to-checkout .btn,
.lb-proceed-to-checkout a.btn--icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 18px 24px;
    background: #272727;
    color: #fff;
    border: 1px solid #272727;
    text-decoration: none;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 2px;
    transition: background .2s;
    font-family: inherit;
}
.lb-proceed-to-checkout .btn:hover,
.lb-proceed-to-checkout a.btn--icon:hover { background: #000; }

/* Адаптив */
@media (max-width: 768px) {
    .cart-row {
        gap: 30px;
        margin-bottom: 18px;
        padding-bottom: 0;
        border-bottom: 0;
    }
    .cart-main-row-second { padding-bottom: 60px; }
    .product-format-title { font-size: 18px; color: #21212D; margin-bottom: 12px; }
    .scart .product-name-price { margin-top: 8px; }
    .scart .product-name-price .original-price { font-size: 18px; color: #21212D; }
    .product-thumbnail.cart-col .cart-item-image { width: 112px; }
    .product-thumbnail.cart-col .cart-item-image img { max-height: 150px; object-fit: cover; }
    .cart-control-container { gap: 10px; }
    .scart__dropdown-item { padding: 16px 0; min-width: 88px; }
    .product-color .scart__dropdown-list { left: -60px; }
}

/* ----------------------------------------------------------
   5b. CHECKOUT — оформление заказа (точно как на проде)
   ---------------------------------------------------------- */
.scart--checkout { margin-top: 100px; }
@media (max-width: 768px) { .scart--checkout { margin-top: 30px; } }

/* Заголовки секций (Cormorant 28/700, letter-spacing -0.02em) */
.scart--checkout .scart-h3,
.scart-h3 {
    font-family: var(--ff-sec);
    font-size: 28px;
    font-weight: 700;
    color: #272727;
    letter-spacing: -0.56px;
    line-height: 30.8px;
    margin: 17px 0;
    padding: 0 0 15px;
    text-transform: none;
}
.scart-h3--order { margin-top: 30px; }

/* Поля формы (floating-label) */
.scart__form-fields {
    margin: 0 0 36px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.lb-field {
    position: relative;
    background: transparent;
    border: 1px solid #DCDCDC;
    transition: border-color .2s;
}
.lb-field:focus-within { border-color: #272727; }

/* Ошибка — красная рамка, label в центре, без uppercase */
.lb-field.is-invalid { border-color: #d9252b; }
.lb-field.is-invalid .lb-field__label {
    color: #d9252b !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}
.lb-field.is-invalid .lb-field__input { color: #d9252b; }
.lb-field.is-invalid .lb-field__input::placeholder { color: transparent; }
.lb-field.is-invalid:focus-within { border-color: #d9252b; }

.lb-field__input {
    width: 100%;
    padding: 24px 18px 10px;
    background: transparent;
    border: none;
    outline: none;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.4;
    color: #272727;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
    resize: none;
}
.lb-field__input::placeholder { color: transparent; }

.lb-field__label {
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    color: #ACACAC;
    font-size: 14px;
    line-height: 1;
    pointer-events: none;
    transition: top .2s ease, font-size .2s ease, color .2s ease, letter-spacing .2s ease, transform .2s ease;
    background: transparent;
}

/* Поднятие label при фокусе или заполненном поле */
.lb-field__input:focus + .lb-field__label,
.lb-field__input:not(:placeholder-shown) + .lb-field__label {
    top: 12px;
    transform: translateY(0);
    font-size: 11px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #ACACAC;
}
.lb-field:focus-within .lb-field__label {
    color: #272727;
}

/* Textarea: label выровнен сверху, не по центру */
.lb-field--textarea { display: block; margin: 0 0 12px; }
.lb-field--textarea .lb-field__input {
    padding-top: 28px;
    min-height: 90px;
}
.lb-field--textarea .lb-field__label {
    top: 20px;
    transform: translateY(0);
}
.lb-field--textarea .lb-field__input:focus + .lb-field__label,
.lb-field--textarea .lb-field__input:not(:placeholder-shown) + .lb-field__label {
    top: 12px;
}

/* Стрелка для поля «Город» (datalist) */
.lb-field--select::after {
    content: '';
    position: absolute;
    right: 16px;
    top: 50%;
    width: 10px;
    height: 6px;
    transform: translateY(-50%);
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23272727' stroke-width='1.2' fill='none'/%3E%3C/svg%3E") no-repeat center;
    pointer-events: none;
}
.lb-field--select .lb-field__input { padding-right: 36px; }

/* Скрываем нативную стрелку у webkit для input[list] */
.lb-field--select input::-webkit-calendar-picker-indicator {
    opacity: 0;
}

/* Кастомный dropdown выбора города (на базе .lb-field) */
.lb-field--city { cursor: pointer; }
.lb-field--city .lb-field__input { cursor: pointer; background: transparent; }
.lb-field--city.is-open::after { transform: translateY(-50%) rotate(180deg); }
.lb-field--city::after { transition: transform .2s; }

.lb-city-dropdown {
    position: absolute;
    left: -1px;
    right: -1px;
    top: calc(100% + 4px);
    background: #fff;
    border: 1px solid #E5E5E5;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
    z-index: 50;
    max-height: 340px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.lb-city-dropdown[hidden] { display: none; }

.lb-city-dropdown__search {
    padding: 12px;
    border-bottom: 1px solid #E5E5E5;
    background: #fff;
}
.lb-city-dropdown__search-input {
    width: 100%;
    padding: 10px 12px;
    background: #fff;
    border: 1px solid #E5E5E5;
    outline: none;
    font-size: 14px;
    color: #272727;
    font-family: inherit;
}
.lb-city-dropdown__search-input::placeholder { color: #ACACAC; }
.lb-city-dropdown__search-input:focus { border-color: #272727; }

.lb-city-dropdown__list {
    list-style: none;
    margin: 0;
    padding: 6px 0;
    overflow-y: auto;
    flex: 1;
}
.lb-city-dropdown__item {
    padding: 12px 16px;
    font-size: 14px;
    color: #272727;
    cursor: pointer;
    transition: background .15s;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.lb-city-dropdown__item:hover,
.lb-city-dropdown__item.is-active {
    background: #272727;
    color: #fff;
}
.lb-city-dropdown__item-region {
    color: #ACACAC;
    font-size: 13px;
    margin-left: 2px;
}
.lb-city-dropdown__item:hover .lb-city-dropdown__item-region,
.lb-city-dropdown__item.is-active .lb-city-dropdown__item-region { color: #ddd; }
.lb-city-dropdown__empty {
    padding: 20px;
    text-align: center;
    color: #ACACAC;
    font-size: 14px;
}

/* Совместимость: устаревшие form-row и lb-input-wrapper больше не используются на checkout */
.scart--checkout .form-row,
.checkout .form-row { margin-bottom: 12px; }

/* ── Доставка / Оплата — radio rows (как было до Incanto) ─────────────── */
.scart__shipping,
.scart__payment {
    display: flex;
    flex-direction: column;
    margin: 0 0 30px;
}

.scart__radio-row {
    display: block;
    position: relative;
    padding: 12px 0 12px 40px;
    margin: 0 0 24px;
    cursor: pointer;
    user-select: none;
}
.scart__radio-row input[type="radio"] {
    position: absolute;
    left: 0;
    top: 14px;
    width: 18px;
    height: 18px;
    margin: 0;
    opacity: 0;
    z-index: 2;
    cursor: pointer;
}
.scart__radio-row .scart__radio-circle {
    position: absolute;
    left: 0;
    top: 14px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 1px solid #C9C9C9;
    background: #fff;
    transition: border-color .2s;
    z-index: 1;
}
.scart__radio-row input[type="radio"]:checked ~ .scart__radio-circle {
    border-color: #DAA754;
}
.scart__radio-row input[type="radio"]:checked ~ .scart__radio-circle::after {
    content: '';
    position: absolute;
    inset: 3px;
    border-radius: 50%;
    background: #DAA754;
}
.scart__radio-title {
    display: block;
    font-size: 20px;
    font-weight: 400;
    color: #272727;
    line-height: 28px;
    text-transform: uppercase;
}
.scart__radio-row input[type="radio"]:not(:checked) ~ .scart__radio-title { color: #ACACAC; }
.scart__radio-sub {
    display: block;
    margin-top: 6px;
    font-size: 13px;
    color: #ACACAC;
    line-height: 1.4;
    text-transform: none;
    letter-spacing: normal;
}

/* Поле адреса / адрес самовывоза — раскрывается под радио */
.scart__shipping-address {
    display: none;
    margin: -8px 0 24px 40px;
    padding: 12px 0 0;
}
.scart__shipping-address.is-visible { display: block; }
.scart__address-label {
    display: block;
    font-size: 13px;
    color: #ACACAC;
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.scart__address-label .scart__optional { color: #C9C9C9; text-transform: none; letter-spacing: normal; }
.scart__address-value {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #272727;
}
.scart__address-value::before {
    content: '';
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23272727' stroke-width='1.6'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* ── Правая колонка ─────────────────────────────────────── */
.scart--checkout .scart__right { width: 100%; }

/* Список товаров */
.scart-right-summary {
    display: flex;
    flex-direction: column;
    margin: 0 0 18px;
}
.scart-right-item {
    display: flex;
    gap: 20px;
    align-items: flex-start;
    margin: 0 0 40px;
}
.scart-right-thumb {
    flex-shrink: 0;
    width: 100px;
}
.scart-right-thumb-link {
    display: block;
    width: 100px;
    aspect-ratio: 100 / 140;
    background: linear-gradient(135deg, #f5f3f0 0%, #e8e3dc 100%);
    overflow: hidden;
    position: relative;
}
.scart-right-thumb-link img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: relative;
    z-index: 1;
}
.scart-right-thumb-link::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' fill='none' stroke='%23bdb5a8' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpath d='m21 15-5-5L5 21'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
}

.scart-right-info { flex: 1; min-width: 0; }
.scart-right-info-top-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}
.scart-right-title {
    font-size: 18px;
    font-weight: 400;
    color: #21212D;
    line-height: 25.2px;
    text-decoration: none;
    flex: 1;
}
.scart-right-price {
    font-size: 18px;
    font-weight: 500;
    color: #21212D;
    line-height: 25.2px;
    white-space: nowrap;
}
.scart-right-item.has-sale .scart-right-price-current {
    color: #ff4c52;
}
.scart-right-price .cart-price-old {
    color: #999;
    font-weight: 400;
    font-size: 15px;
    text-decoration: line-through;
    margin-right: 8px;
}

/* Mini-cart: red sale price + grey strikethrough regular */
.lb-mini-cart-item.has-sale .lb-price-amount {
    color: #ff4c52;
}
.lb-mini-cart-item .cart-price-old {
    color: #999;
    font-weight: 400;
    text-decoration: line-through;
    margin-right: 6px;
}
.scart-right-info-bottom-row {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 14px;
}
.scart-right-attr {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 500;
    line-height: 18.2px;
}
.scart-right-attr__label { color: #ACACAC; }
.scart-right-attr__val   { color: #21212D; font-weight: 500; }

/* Заказ — суммы */
.scart--checkout .cart-totals-flex-wrapper {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-bottom: 28px;
}
.scart--checkout .cart-subtotal-line {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 16px;
    font-weight: 500;
    color: #272727;
    line-height: 22.4px;
}
.scart--checkout .cart-subtotal-title,
.scart--checkout .cart-subtotal-price { color: #272727; }
.scart--checkout .cart-subtotal-dots {
    flex: 1;
    border-bottom: 1px dotted #C9C9C9;
    height: 0;
    margin: 0 6px;
}
.scart--checkout .cart-subtotal-line.total .cart-subtotal-price strong { font-weight: 600; }

/* Промокод (checkout) — без рамки, только подпись и input снизу с линией */
.scart--checkout .scart__coupon { margin-top: 28px; }
.scart--checkout .coupon-span {
    font-size: 15px;
    font-weight: 500;
    color: #272727;
    margin: 0 0 12px;
}
.scart--checkout .form-coupon { margin: 0; }
.scart--checkout .form-coupon .coupon {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #F8F8F8;
    border: 1px solid #E5E5E5;
}
.scart--checkout .form-coupon .coupon label { flex: 1; display: flex; }
.scart--checkout .form-coupon .coupon input.input-text {
    width: 100%;
    border: none;
    outline: none;
    padding: 14px 16px;
    background: transparent;
    font-size: 14px;
    color: #272727;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.scart--checkout .form-coupon .coupon input.input-text::placeholder {
    color: #C9C9C9;
    text-transform: none;
    letter-spacing: normal;
}
.scart--checkout .form-coupon .coupon button {
    background: transparent;
    border: none;
    padding: 14px 18px;
    cursor: pointer;
    font-size: 14px;
    color: #DAA754;
    font-weight: 500;
    white-space: nowrap;
}

/* Большая кнопка «Подтвердить заказ» */
.scart--checkout .js-checkout-submit,
.scart--checkout .btn-checkout {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: 16px;
    padding: 24px 44px;
    background: #272727;
    color: #fff;
    border: none;
    text-transform: uppercase;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.42px;
    line-height: 14px;
    cursor: pointer;
    transition: background .2s;
    font-family: inherit;
}
.scart--checkout .js-checkout-submit:hover,
.scart--checkout .btn-checkout:hover { background: #000; }
.scart--checkout .js-checkout-submit:disabled,
.scart--checkout .js-checkout-submit[disabled] {
    background: #ACACAC;
    cursor: not-allowed;
}
.scart--checkout .js-checkout-submit:disabled:hover { background: #ACACAC; }

/* Политика снизу */
.scart__policy {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 13px;
    color: #ACACAC;
    margin-top: 18px;
    line-height: 1.5;
    cursor: pointer;
}
.scart__policy input[type="checkbox"] {
    margin-top: 1px;
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    accent-color: #daa754;
    cursor: pointer;
}
.scart__policy.is-invalid input[type="checkbox"] {
    outline: 1px solid #d9534f;
    outline-offset: 1px;
}
.scart__policy a {
    color: #ACACAC;
    text-decoration: underline;
}
.scart__policy a:hover { color: #272727; }

/* Чекбокс лояльности */
.scart__loyalty { margin: 16px 0; font-size: 14px; color: #272727; }

/* Кнопка «Выбрать пункт выдачи» */
.scart__pvz-pick-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
    padding: 10px 14px;
    background: #fff;
    border: 1px solid #DAA754;
    color: #DAA754;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: background .2s, color .2s;
    font-family: inherit;
}
.scart__pvz-pick-btn:hover { background: #DAA754; color: #fff; }
.scart__pvz-pick-btn svg { display: block; }
.scart__address-value + .scart__pvz-pick-btn { margin-top: 10px; }

/* Подсвечивание fallback (когда CDEK API недоступен) */
.scart__radio-sub.js-tariff-info { font-variant-numeric: tabular-nums; }

/* ── Модалка CDEK widget ────────────────────────────────── */
.cdek-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cdek-modal[hidden] { display: none; }
.cdek-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.55);
    cursor: pointer;
}
.cdek-modal__box {
    position: relative;
    z-index: 1;
    width: min(960px, 95vw);
    height: min(640px, 90vh);
    background: #fff;
    border-radius: 4px;
    box-shadow: 0 20px 50px rgba(0,0,0,0.3);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.cdek-modal__title {
    padding: 18px 24px;
    font-family: var(--ff-sec);
    font-size: 22px;
    font-weight: 600;
    color: #272727;
    border-bottom: 1px solid #E5E5E5;
}
.cdek-modal__close {
    position: absolute;
    top: 12px;
    right: 16px;
    width: 32px;
    height: 32px;
    background: transparent;
    border: none;
    font-size: 26px;
    line-height: 1;
    color: #272727;
    cursor: pointer;
    z-index: 2;
}
.cdek-modal__close:hover { color: #DAA754; }
.cdek-modal__map {
    flex: 1;
    min-height: 0;
    overflow: hidden;
}
.cdek-modal__map iframe,
.cdek-modal__map > div {
    width: 100% !important;
    height: 100% !important;
}
.cdek-modal__fallback {
    padding: 40px;
    text-align: center;
    color: #ACACAC;
    font-size: 14px;
    line-height: 1.6;
}
.cdek-modal__fallback p { margin: 0 0 8px; }

/* ----------------------------------------------------------
   6. UNIVERSAL BUTTONS
   ---------------------------------------------------------- */
.btn,
.btn-primary {
    display: inline-block;
    padding: 14px 32px;
    background: #23202E;
    color: #fff;
    border: 1px solid #23202E;
    cursor: pointer;
    text-decoration: none;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 1px;
    transition: all 0.2s;
    font-family: inherit;
}

.btn:hover,
.btn-primary:hover {
    background: #fff;
    color: #23202E;
}

/* ----------------------------------------------------------
   7. CONTAINER
   ---------------------------------------------------------- */
.container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 15px;
    width: 100%;
    box-sizing: border-box;
}

@media (min-width: 1200px) {
    .container {
        padding: 0 40px;
    }
}

/* ----------------------------------------------------------
   8. EMPTY STATES
   ---------------------------------------------------------- */
.cart-empty,
.account-empty,
.sarchive__empty {
    text-align: center;
    padding: 80px 20px;
    color: #666;
}

.cart-empty h1 {
    font-family: var(--ff-sec);
    font-size: 48px;
    font-weight: 300;
    margin-bottom: 20px;
}

/* ----------------------------------------------------------
   9. POPUP MODAL
   ---------------------------------------------------------- */
.modal-auth {
    background: #fff;
    padding: 40px;
    max-width: 420px;
    width: 100%;
    border-radius: 4px;
}

.modal-form__heading {
    font-family: var(--ff-sec);
    font-size: 32px;
    font-weight: 300;
    text-align: center;
    margin-bottom: 24px;
}

.fancybox-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 32px;
    height: 32px;
    cursor: pointer;
    background: none;
    border: none;
    font-size: 22px;
    color: #999;
}

.fancybox-close::before {
    content: '×';
}

.main-forms__item {
    margin-bottom: 14px;
}

.main-forms__input {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #ddd;
    font-size: 14px;
    box-sizing: border-box;
}

.main-forms__buttons {
    margin-top: 20px;
}

.main-forms__button {
    width: 100%;
    padding: 14px;
}

.main-forms__links {
    text-align: center;
    margin-top: 16px;
    font-size: 13px;
}

/* ----------------------------------------------------------
   10. ACCOUNT / LK
   ---------------------------------------------------------- */
.lk__grid {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 40px;
    padding: 30px 0 60px;
    align-items: flex-start;
}

.lk__content {
    min-width: 0;
}

@media (max-width: 768px) {
    .lk__grid {
        grid-template-columns: 1fr;
    }
}

.lk__sidebar {
    position: sticky;
    top: 100px;
    min-width: 0;
}

.lk__sidebar:empty {
    display: none;
}

.lk__sidebar:empty + .lk__content,
.lk__grid > .lk__content:only-child {
    grid-column: 1 / -1;
}

.lk__title {
    font-family: var(--ff-sec);
    font-size: clamp(30px, 4vw, 42px);
    font-weight: 400;
    line-height: 1.15;
    letter-spacing: 1px;
    text-align: center;
    text-transform: none;
    color: #23202E;
    margin: 0 0 28px;
}

/* ---------- Страница «Избранные товары» — full width как на проде ---------- */
.favorites-page {
    padding: 20px 0 60px;
}
.favorites-page .bprods__list,
.favorites-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 24px;
    margin: 30px 0;
    width: 100%;
}
@media (max-width: 1024px) {
    .favorites-page .bprods__list,
    .favorites-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}
@media (max-width: 768px) {
    .favorites-page .bprods__list,
    .favorites-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}
.favorites-page .sproduct__color-item,
.favorites-grid .sproduct__color-item {
    width: 14px;
    height: 14px;
    min-width: 14px;
    min-height: 14px;
    border-radius: 0;
    border: 1px solid rgba(218, 167, 84, 0.68);
    display: block;
    cursor: pointer;
    transition: transform 0.15s;
    flex-shrink: 0;
    text-decoration: none;
    padding: 0;
    box-sizing: border-box;
}
.favorites-page .sproduct__color-item:hover,
.favorites-grid .sproduct__color-item:hover {
    transform: scale(1.2);
}
.favorites-page .sproduct__color-item.active,
.favorites-grid .sproduct__color-item.active {
    border-color: #daa754;
    border-width: 1.5px;
}
/* Пустое состояние страниц «Корзина» и «Избранное» — единый стиль */
.bempty {
    min-height: 55vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 16px;
    text-align: center;
}
/* Выравниваем вертикальную позицию empty-state избранного по корзине */
.favorites-page .bempty {
    margin-top: 0;
}
.bempty__title h3 {
    font-size: 22px;
    font-weight: 400;
    color: #272727;
    margin: 0 0 40px !important;
    padding: 0 !important;
    line-height: 1.3;
}
.bempty .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 15px 28px 13px;
    line-height: 1;
    background-color: #fff;
    border: 1px solid #272727;
    color: #272727;
    text-decoration: none;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 13px;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.bempty .btn:hover,
.bempty .btn:focus-visible {
    background-color: #272727;
    color: #fff;
}

.lk__nav a:hover {
    color: #d4a542 !important;
}

/* ----------------------------------------------------------
   11. ANTI-FLICKER — фиксы для favorites/каталога
   ---------------------------------------------------------- */
.bprods__item img {
    backface-visibility: hidden;
    transform: translateZ(0);
}

.bprods__item-favorite button {
    transition: transform 0.2s ease;
}

.bprods__item-favorite button.added svg {
    fill: #d4a542 !important;
    stroke: #d4a542 !important;
}

/* Запретить layout shift при появлении карточек */
.bprods__list {
    contain: layout;
}

/* ----------------------------------------------------------
   PRODUCT PAGE — карточка товара
   ---------------------------------------------------------- */
.sproduct {
    padding: 30px 0 60px;
}

.sproduct__grid {
    display: grid;
    grid-template-columns: 800px minmax(0, 400px);
    gap: 52px;
    align-items: flex-start;
}

/* Планшет (769–1200): две колонки — слева галерея (мобильный свайпер), справа
   колонка с информацией (как на incanto). Десктопная фикс-колонка 800px сжимала бы
   правую часть, поэтому здесь две равные гибкие колонки. */
@media (min-width: 769px) and (max-width: 1200px) {
    .sproduct__grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 32px;
        align-items: start;
    }
}
/* Мобила (≤768): одна колонка */
@media (max-width: 768px) {
    .sproduct__grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
}

.sproduct__images {
    position: relative;
    min-width: 0;
    width: 100%;
}

.sproduct__main {
    display: block;
}

.sproduct__info {
    min-width: 0;
}

.sproduct__art {
    color: #999;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.sproduct__title,
.sproduct h1 {
    font-family: var(--ff-sec);
    font-size: 36px;
    font-weight: 300;
    line-height: 1.2;
    margin: 0 0 16px;
}

.sproduct__price {
    font-size: 24px;
    font-weight: 500;
    margin-bottom: 24px;
}

.sproduct__price del,
.sproduct__price .sproduct__price-old {
    color: #999;
    font-weight: 400;
    font-size: 18px;
    margin-left: 0;
    margin-right: 10px;
}

.sproduct__price ins.sproduct__price-current {

    color: #ff4c52;
    text-decoration: none;
}

.sproduct__sizes {
    margin-bottom: 20px;
}

.sproduct__sizes-label,
.sproduct__form > label {
    display: block;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #888;
    margin-bottom: 10px;
}

.sproduct__sizes-list {
    display: flex !important;
    flex-wrap: wrap;
    gap: 15px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.sproduct__size-item {
    display: inline-flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 68px;
    min-width: 68px;
    height: 52px;
    padding: 11px 12px;
    border: 1px solid #E1E1E1;
    background: transparent;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
    user-select: none;
}

.sproduct__size-item:hover {
    border-color: #272727;
}

.sproduct__size-item input[type="radio"] {
    display: none;
}

.sproduct__size-letter {
    font-size: 16px;
    font-weight: 500;
    color: #272727;
    line-height: 1.4;
}

.sproduct__size-num {
    font-size: 14px;
    font-weight: 400;
    color: #272727;
    opacity: 0.5;
    line-height: 1.4;
}

.sproduct__size-item:has(input:checked) {
    background: #272727;
    border-color: #272727;
}
.sproduct__size-item:has(input:checked) .sproduct__size-letter,
.sproduct__size-item:has(input:checked) .sproduct__size-num {
    color: #fff;
}

.sproduct__size-item.is-disabled {
    opacity: 0.4;
    cursor: not-allowed;
}
.sproduct__size-item.is-disabled .sproduct__size-letter,
.sproduct__size-item.is-disabled .sproduct__size-num {
    text-decoration: line-through;
}

/* счётчик количества убран (на проде его нет) — стили .sproduct__qty удалены */

.sproduct__actions {
    display: flex;
    gap: 12px;
    align-items: stretch;
    margin-bottom: 30px;
}

.single_add_to_cart_button {
    flex: 1;
    padding: 16px 24px;
    background: #23202E;
    color: #fff;
    border: 1px solid #23202E;
    cursor: pointer;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 1px;
    font-weight: 500;
    transition: all 0.2s;
}

.single_add_to_cart_button:hover {
    background: #fff;
    color: #23202E;
}

.button-favorite {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    border: 1px solid #ddd;
    background: #fff;
    cursor: pointer;
    transition: all 0.2s;
}

.button-favorite:hover {
    border-color: #23202E;
}

.button-favorite.added {
    color: #d4a542;
    border-color: #d4a542;
}

.dropdown {
    border-bottom: 1px solid #eee;
}

.dropdown__header {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    padding: 16px 0;
    cursor: pointer;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.dropdown__content {
    padding-bottom: 16px;
    line-height: 1.6;
    color: #555;
    font-size: 14px;
}

.sproduct__params {
    margin-top: 20px;
}

.sproduct__params-item {
    display: flex !important;
    justify-content: space-between;
    padding: 12px 0;
    border-bottom: 1px solid #eee;
    font-size: 14px;
}

.sproduct__params-name {
    color: #888;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 12px;
}

.sproduct__params-value {
    color: #23202E;
    text-align: right;
}

/* ----------------------------------------------------------
   12. NOTIFICATION
   ---------------------------------------------------------- */
.app-notify {
    animation: slideInRight 0.25s ease-out;
}

@keyframes slideInRight {
    from { transform: translateX(110%); opacity: 0; }
    to   { transform: translateX(0);    opacity: 1; }
}


/* === SECTION HEADINGS — gold line (prod) === */
.section-headings .content-field h2, .hp-promo__head h2, .hp-catalog__head h2 {
  font-family: var(--ff) !important;
  font-size: 25px !important;
  font-weight: 400 !important;
  letter-spacing: -0.5px !important;
  color: #272727 !important;
  text-transform: none !important;
  text-align: center !important;
  margin: 0 auto 14px !important;
  position: relative !important;
  display: inline-block !important;
  padding-bottom: 6px !important;
}
.section-headings, .section-headings .content-field, .hp-promo__head, .hp-catalog__head {
  text-align: center !important;
  justify-content: center !important;
}
.section-headings .content-field h2::after, .hp-promo__head h2::after, .hp-catalog__head h2::after {
  content: "";
  display: block;
  width: 500px;
  max-width: 100%;
  height: 1px;
  background: rgba(218, 167, 84, 0.68);
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}


/* === STABLE CARD LAYOUT — prevent layout shift on Swiper init === */
.bprods__item {
  display: flex !important;
  flex-direction: column;
  align-items: stretch;
  min-height: 0;
  contain: layout;
}
.bprods__item-gallery {
  flex-shrink: 0;
  position: relative;
  width: 100%;
  aspect-ratio: 3/4 !important;
  overflow: hidden;
  margin-bottom: 12px;
}
/* Inner card gallery swiper — disable interactive features */
.bprods__item-gallery .swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
}
.bprods__item-gallery .swiper-slide {
  width: 100%;
  height: 100%;
  flex-shrink: 0;
}
/* allow multi-image gallery slides */
/* description_new visibility depends on section (see below) */


/* === Stable card layout — content pinned absolute under gallery, no shift on Swiper init === */
/* Pre-init slide widths to match Swiper's slidesPerView, prevents jump */
.bprods-sec-swiper:not(.swiper-initialized) {
  overflow: hidden;
}
.bprods-sec-swiper:not(.swiper-initialized) .swiper-wrapper {
  display: flex;
  flex-wrap: nowrap;
}
/* limited-edition: front-end.js uses slidesPerView:3, spaceBetween:64 at 1072+ */
#limited-edition .bprods-sec-swiper:not(.swiper-initialized) .swiper-slide {
  flex: 0 0 auto !important;
  width: calc((100% - 128px) / 3) !important;
  min-width: calc((100% - 128px) / 3) !important;
  max-width: calc((100% - 128px) / 3) !important;
  margin-right: 64px;
}
#limited-edition .bprods-sec-swiper:not(.swiper-initialized) .swiper-slide:last-child {
  margin-right: 0;
}
/* hits: front-end.js uses slidesPerView:4, spaceBetween:15 at 1072+ */
#hits .bprods-sec-swiper:not(.swiper-initialized) .swiper-slide {
  flex: 0 0 auto !important;
  width: calc((100% - 45px) / 4) !important;
  min-width: calc((100% - 45px) / 4) !important;
  max-width: calc((100% - 45px) / 4) !important;
  margin-right: 15px;
}
#hits .bprods-sec-swiper:not(.swiper-initialized) .swiper-slide:last-child {
  margin-right: 0;
}

/* Card structure: gallery on top with aspect-ratio, content directly below */
.bprods__item {
  position: relative;
  display: block !important;
}
.bprods__item-gallery {
  width: 100% !important;
  aspect-ratio: 3 / 4 !important;
  display: block;
  margin-bottom: 12px;
}
/* Visible name/price/colors block — sits naturally below gallery */
.bprods__item > .bprods__item-name,
.bprods__item > .bprods__item-price,
.bprods__item > .sproduct__colors-list {
  display: block;
}


/* === Card typography per section (matches prod) === */
/* Exclusive collection: big light name, light price */
#limited-edition .bprods__item-name {
  font-family: var(--ff) !important;
  font-size: 24px !important;
  font-weight: 300 !important;
  color: #272727 !important;
  margin: 16px 0 0 !important;
  min-height: 0 !important;
  line-height: 1.2;
}
#limited-edition .bprods__item-price {
  font-family: var(--ff) !important;
  font-size: 16px !important;
  font-weight: 300 !important;
  color: #272727 !important;
  margin: 6px 0 0 !important;
}
/* Hits: small medium-weight name, smaller normal price */
#hits .bprods__item-name {
  font-family: var(--ff) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  color: #272727 !important;
  margin: 14px 0 0 !important;
  min-height: 0 !important;
  line-height: 1.3;
}
#hits .bprods__item-price {
  font-family: var(--ff) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  color: #272727 !important;
  margin: 5px 0 0 !important;
}


/* === Exclusive collection — use inner description_new (gray bg), hide outer info === */
#limited-edition .bprods__description_new {
  display: flex !important;
  flex-direction: column;
  background: #f1f1f1 !important;
  padding: 20px 15px !important;
  margin: 0 !important;
}
#limited-edition .bprods__description_new .bprods__item-name {
  font-family: var(--ff) !important;
  font-size: 24px !important;
  font-weight: 300 !important;
  color: #272727 !important;
  margin: 0 !important;
  min-height: 0 !important;
  line-height: 1.2;
}
#limited-edition .bprods__description_new .bprods__item-price {
  font-family: var(--ff) !important;
  font-size: 16px !important;
  font-weight: 300 !important;
  color: #272727 !important;
  margin: 6px 0 0 !important;
}
/* Hide outer name/price/colors in exclusive */
#limited-edition .bprods__item > .bprods__item-name,
#limited-edition .bprods__item > .bprods__item-price,
#limited-edition .bprods__item > .sproduct__colors-list {
  display: none !important;
}

/* Hits продаж — keep outer name/price/colors, hide inner description_new */
#hits .bprods__description_new {
  display: none !important;
}


/* === Exclusive card: gap, ellipsis title, hover bg (matches prod) === */
/* No gap between gallery and info box */
#limited-edition .bprods__item-gallery {
  margin-bottom: 0 !important;
}
#limited-edition .bprods__description_new {
  margin-top: 0 !important;
  min-height: 90px;
  box-sizing: border-box;
  transition: background-color 0.2s ease;
}
/* Title ellipsis to one line */
#limited-edition .bprods__description_new .bprods__item-name {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  line-height: 28px !important;
  max-width: 100%;
}
/* Hover effect: bg change to beige */
#limited-edition .bprods__item:hover .bprods__description_new {
  background: #e6e0d6 !important;
}


/* === Sale tag — red label at bottom-left of gallery (matches prod) === */
.bprods__item-tags {
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  top: auto !important;
  right: auto !important;
  height: auto !important;
  width: auto !important;
  z-index: 5;
  pointer-events: none;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 0 !important;
  margin: 0 !important;
}
.bprods__item-sale-product {
  background: #ff4c52 !important;
  color: #fff !important;
  font-family: var(--ff) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  padding: 5px 12px !important;
  border-radius: 0 !important;
  display: inline-block;
  line-height: 1;
  letter-spacing: 0;
}
/* Price del/ins styling — old price strikethrough gray, sale price red */
.bprods__item-price del {
  color: #999 !important;
  text-decoration: line-through;
  margin-right: 8px;
  font-weight: inherit;
}
.bprods__item-price ins {
  color: #ff4c52 !important;
  text-decoration: none;
  font-weight: 500;
}
/* Hide screen-reader text inside price */
.bprods__item-price .screen-reader-text { display: none; }
/* Inner gallery pagination dots (visible on hover) */
/* Pagination: invisible overlay covering entire gallery, bullets = equal-width zones */
.bprods__item-gallery .bprods__item-pag,
.bprods__item-pag {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  transform: none !important;
  display: flex !important;
  z-index: 4;
  pointer-events: auto;
  background: transparent;
}
.bprods__item-pag .swiper-pagination-bullet {
  flex: 1 1 0 !important;
  width: auto !important;
  height: 100% !important;
  background: transparent !important;
  border-radius: 0 !important;
  opacity: 1 !important;
  cursor: pointer;
  margin: 0 !important;
}
/* removed: custom bullet ::after underline (was creating a stray white line) */


/* === Hide product sliders until Swiper inits (prevents layout shift) === */
/* Hidden until Swiper inits to avoid an unstyled flash. NO fixed height:
   the container auto-sizes to its content (cards are uniform and the gallery
   width is locked via min/max-width above), so pre-init height already equals
   the post-init height -> no layout shift of the content below. */
.bprods-sec-swiper:not(.swiper-initialized) {
  visibility: hidden;
  overflow: hidden;
}


/* === Favorite button (heart icon on card) — matches prod === */
.bprods__item-favorite {
  position: absolute !important;
  top: 10px !important;
  right: 10px !important;
  width: 42px !important;
  height: 42px !important;
  z-index: 6;
}
.bprods__item-favorite button,
.bprods__item-favorite .js-add-favorite {
  width: 42px !important;
  height: 42px !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  cursor: pointer;
  transition: transform 0.2s ease;
}
.bprods__item-favorite button svg {
  width: 28px !important;
  height: 28px !important;
  stroke: rgb(190, 190, 190) !important;
  stroke-width: 1.5 !important;
  fill: none !important;
  transition: stroke .2s, fill .2s, transform .2s;
}
.bprods__item-favorite button:hover svg {
  stroke: #272727 !important;
}
/* When added (in favorites) — gold filled heart */
.bprods__item-favorite button.added svg,
.bprods__item-favorite .added svg {
  stroke: #d4a542 !important;
  fill: #d4a542 !important;
}
/* Pulse animations */
@keyframes heart-pulse-2 {
  0%, 100% { transform: scale(1); }
  20% { transform: scale(1.35); }
  40% { transform: scale(1); }
  60% { transform: scale(1.25); }
  80% { transform: scale(1); }
}
@keyframes heart-pulse-1 {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.3); }
}
.bprods__item-favorite button.pulse-add svg {
  animation: heart-pulse-2 .7s ease;
}
.bprods__item-favorite button.pulse-remove svg {
  animation: heart-pulse-1 .4s ease;
}


/* === Mega-menu fixed positioning (follows scroll under header) === */
.mega-menu__wrap {
  position: fixed !important;
  top: var(--header-height, 71px) !important;
  height: calc(100vh - var(--header-height, 71px));
  bottom: auto !important;
}


/* === Mega-menu social icons (under contacts) === */
.mega-menu__socials {
  display: flex;
  gap: 10px;
  margin-top: 14px;
  padding: 0;
}
.mega-menu__socials-item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 25px;
  height: 25px;
  border-radius: 5px;
  overflow: hidden;
  text-decoration: none;
  transition: transform .2s, filter .2s;
  background: transparent;
  padding: 0 !important;
}
.mega-menu__socials-item img {
  width: 25px !important;
  height: 25px !important;
  max-width: 25px !important;
  object-fit: cover;
  display: block;
  border-radius: 5px;
  filter: none !important;
  -webkit-filter: none !important;
}
.mega-menu__socials-item:hover {
  transform: translateY(-2px);
  filter: brightness(1.1);
}


/* === Exclusive price: enable red sale color (override per-section #272727) === */
#limited-edition .bprods__item-price ins {
  color: #ff4c52 !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  margin-left: 8px;
}
#limited-edition .bprods__item-price del {
  color: #999 !important;
  text-decoration: line-through;
  font-weight: 300 !important;
}

/* === FIX 2026-05-20: показ картинок в карточке каталога. =====================
 * .bprods__item-gallery-item раньше получал высоту по children flex-row
 * (706px) и картинка с object-fit:cover/height:100% уезжала ниже видимой
 * границы galery (overflow:hidden). Фиксируем абсолютным позиционированием
 * в слайде, чтобы картинка заполняла весь слот.
 */
.bprods__item-gallery .bprods__item-gallery-item {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}
.bprods__item-gallery .bprods__item-gallery-item img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* === FIX 2026-05-20: галерея миниатюр на странице товара ==================== */
.sproduct__images {
    display: flex;
    gap: 16px;
    align-items: stretch;
}
.sproduct__images .sproduct__main {
    flex: 0 0 auto;
    position: relative;
    width: 670px;
    height: 750px;
    background: linear-gradient(135deg, #f5f3f0 0%, #e8e3dc 50%, #f5f3f0 100%);
    overflow: hidden;
}
@media (max-width: 1200px) {
    .sproduct__images .sproduct__main { width: 100%; height: auto; aspect-ratio: 670 / 750; }
}
/* Планшет (769–1200): галерея = мобильный свайпер на всю ширину левой колонки.
   Боковая панель превью со стрелками не нужна (есть квадратный пагинатор снизу). */
@media (min-width: 769px) and (max-width: 1200px) {
    .sproduct__images { display: block; max-width: none; margin: 0; }
    .sproduct__images .pg-thumbs-panel { display: none; }
    .sproduct__images .sproduct__main {
        width: 100%; height: auto; aspect-ratio: 7 / 10; flex: none;
    }
}
.sproduct__images .sproduct__main img {
    /* Главное фото сохраняет естественные пропорции (как на prod):
       width=670 фиксированный, height по aspect-у картинки.
       Если фото выше контейнера 750 — обрезается через overflow:hidden. */
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: auto;
    display: block;
}
.sproduct__main-placeholder {
    position: absolute; inset: 0;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    color: rgba(35, 32, 46, 0.4);
    font-family: var(--ff-sec);
}
.sproduct__main-placeholder-brand {
    font-size: 48px; font-style: italic;
    letter-spacing: 2px;
    color: rgba(35, 32, 46, 0.5);
}
.sproduct__main-placeholder-sub {
    font-size: 13px; text-transform: uppercase;
    letter-spacing: 3px; margin-top: 8px;
    opacity: 0.7;
    font-family: var(--ff);
}
.sproduct__discount {
    position: absolute;
    top: 0; left: 0;
    background: #ff4c52; color: #fff;
    padding: 6px 12px;
    font-size: 13px; font-weight: 600;
    letter-spacing: 0.5px;
    z-index: 2;
}

/* Миниатюры — колонка слева, со стрелками и плавным auto-rotate */
.pg-thumbs-panel {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    width: 110px;
    flex-shrink: 0;
    height: 750px;
}
.pg-thumbs-btn {
    background: transparent;
    border: 0;
    padding: 0;
    width: 40px;
    height: 38px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.15s ease;
    flex-shrink: 0;
}
.pg-thumbs-btn:hover { opacity: 0.6; }
.pg-thumbs-btn:disabled,
.pg-thumbs-btn.is-disabled {
    opacity: 0.25;
    cursor: default;
    pointer-events: none;
}
.pg-thumbs-btn svg { width: 13px; height: 8px; }
.pg-thumbs {
    width: 100%;
    flex: 1 1 auto;
    overflow: hidden;
    position: relative;
}
.pg-thumbs-track {
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
}
.sproduct__pthumb {
    position: relative;
    width: 110px; height: 150px;
    border: 0;
    background: #f5f3f0;
    padding: 0;
    cursor: pointer;
    overflow: hidden;
    flex-shrink: 0;
    opacity: 0.5;
    transition: opacity 0.15s ease;
}
.sproduct__pthumb img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
}
.sproduct__pthumb:hover { opacity: 0.85; }
.sproduct__pthumb.is-active { opacity: 1; }

.sproduct__main { position: relative; }
.sproduct__main-link {
    display: block;
    width: 100%; height: 100%;
    cursor: zoom-in;
}
/* Мгновенная смена main image — без fade, чтобы не было видно бежевый фон */
.js-sproduct-main-img { transition: none; }

@media (max-width: 768px) {
    /* Главное фото первым экраном, миниатюры — под ним */
    .sproduct__images { flex-direction: column; gap: 12px; }
    .sproduct__images .sproduct__main { order: 1; width: 100%; height: auto; aspect-ratio: 3 / 4; }
    .pg-thumbs-panel {
        order: 2;
        flex-direction: row;
        width: 100%;
        height: auto !important;
        gap: 8px;
        align-items: center;
        justify-content: center;
    }
    .pg-thumbs { max-height: none; max-width: 100%; height: auto; flex: 1 1 auto; }
    .pg-thumbs-track { flex-direction: row; gap: 8px; justify-content: center; }
    .sproduct__pthumb { width: 64px; height: 84px; flex: 0 0 64px; }
    .pg-thumbs-btn { width: 32px; height: 32px; flex-shrink: 0; }
    /* На самых узких экранах миниатюры скрываем, чтобы первый экран = фото + название */
}
@media (max-width: 480px) {
    .pg-thumbs-panel { display: none; }
    .sproduct__images.has-thumbs .sproduct__main::after {
        /* Точка-индикатор «листайте свайпом» — пока статичная подсказка */
        content: '';
        position: absolute;
        left: 50%; bottom: 12px;
        transform: translateX(-50%);
        width: 36px; height: 4px;
        background: rgba(255,255,255,.55);
        border-radius: 2px;
        pointer-events: none;
    }
}

/* Lightbox / fullscreen viewer для главного фото */
.lb-overlay {
    position: fixed; inset: 0;
    background: rgba(20, 20, 25, 0.92);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s ease;
}
.lb-overlay.is-open { opacity: 1; }
.lb-overlay__img {
    max-width: 90vw;
    max-height: 90vh;
    object-fit: contain;
    box-shadow: 0 20px 60px rgba(0,0,0,0.4);
    user-select: none;
}
.lb-overlay__close,
.lb-overlay__nav {
    position: absolute;
    background: rgba(255,255,255,0.1);
    color: #fff;
    border: 0;
    cursor: pointer;
    font-size: 28px;
    line-height: 1;
    width: 44px; height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s ease;
}
.lb-overlay__close { top: 20px; right: 20px; }
.lb-overlay__nav  { top: 50%; transform: translateY(-50%); }
.lb-overlay__nav--prev { left: 20px; }
.lb-overlay__nav--next { right: 20px; }
.lb-overlay__close:hover,
.lb-overlay__nav:hover { background: rgba(255,255,255,0.25); }

/* === Аккордеоны страницы товара === */
/* Display управляется jQuery.slideToggle (inline) — здесь только initial hidden */
.sproduct__content .dropdown__content {
    display: none;
    overflow: hidden;
}
.sproduct__content .dropdown__header {
    cursor: pointer;
    user-select: none;
}
.sproduct__content .dropdown__icon {
    transition: transform 0.2s ease;
}
.sproduct__content .dropdown.is-open .dropdown__icon {
    transform: rotate(180deg);
}

/* === Размер: лейбл + RUS/INT + ссылка "Таблица размеров" =================== */
.sproduct__sizes-label {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    flex-wrap: wrap;
    margin-bottom: 10px;
}
.sproduct__sizes-label-l {
    display: flex;
    align-items: baseline;
    gap: 10px;
}
.sproduct__sizes-label-text {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.sproduct__sizes-label-desc {
    font-size: 11px;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.sproduct__size-table-link {
    font-size: 13px;
    color: #555;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: color 0.2s ease;
}
.sproduct__size-table-link:hover {
    color: #EFBF04;
    text-decoration: underline; /* перебиваем глобальный a:hover { text-decoration: none } */
}

/* === Кнопки действий: добавить в корзину / heart / share ==================== */
.sproduct__actions {
    display: flex;
    gap: 10px;
    align-items: stretch;
}
.sproduct__actions .single_add_to_cart_button {
    flex: 1;
}
.sproduct__actions .btn--inline-icon {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    border: 1px solid #d8d8d8;
    background: #fff;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.15s ease, color 0.15s ease;
}
.sproduct__actions .btn--inline-icon:hover { border-color: #23202e; }
.sproduct__actions .btn--inline-icon.added .luizab-heart {
    color: #d4a542;
}

/* === FIX 2026-05-20: breadcrumbs внутри .container ========================= */
.breadcrumbs {
    padding: 14px 0;
}
.breadcrumbs .container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 15px;
}
.breadcrumbs .yoast-breadcrumbs p {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #888;
}
.breadcrumbs .yoast-breadcrumbs a {
    color: #888;
    text-decoration: none;
}
.breadcrumbs .yoast-breadcrumbs a:hover { color: #23202e; }
.breadcrumbs .yoast-breadcrumbs .breadcrumb_last { color: #d4a542; }
.breadcrumbs .yoast-breadcrumbs .separator { color: #ccc; }

/* === FIX 2026-05-22: ссылка "Товар не подлежит возврату" + popup ============ */
.sproduct__return-trigger {
    background: none;
    border: 0;
    padding: 0;
    margin: 16px 0 4px;
    font-size: 13px;
    color: #555;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-transform: uppercase;
    letter-spacing: 1px;
    cursor: pointer;
    font-family: inherit;
    transition: color 0.2s ease;
}
/* Hover как у Сертификаты в footer prod-сайта: золотистый акцент #EFBF04
   (CSS variable --accent на prod). */
.sproduct__return-trigger:hover {
    color: #EFBF04;
}

.return-popup {
    position: fixed; inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
}
.return-popup[aria-hidden="false"],
.return-popup.is-open {
    opacity: 1;
    pointer-events: auto;
}
.return-popup__overlay {
    position: absolute; inset: 0;
    background: rgba(20, 20, 25, 0.55);
    cursor: pointer;
}
.return-popup__box {
    position: relative;
    background: #fff;
    max-width: 480px;
    width: calc(100% - 40px);
    padding: 36px 32px 32px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
    z-index: 1;
}
.return-popup__close {
    position: absolute;
    top: 12px; right: 12px;
    width: 32px; height: 32px;
    background: transparent;
    border: 0;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    color: #888;
}
.return-popup__close:hover { color: #23202e; }
.return-popup__title {
    margin: 0 0 16px;
    font-size: 18px;
    font-weight: 500;
    color: #23202e;
}
.return-popup__body {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #555;
}
.return-popup__link {
    color: #555;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.return-popup__link:hover { color: #d4a542; }

/* === FIX 2026-05-22: страница товара ближе к prod ========================== */
/* Артикул — серый и тонкий */
.sproduct__content .product-articul {
    font-size: 12px;
    font-weight: 400 !important;
    color: #555;
    font-family: var(--ff);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 12px;
}

/* Аккордеон "О товаре": убрать лишний верхний отступ таблицы характеристик,
   чтобы зазор заголовок→контент совпадал с другими аккордеонами (было 20px, у других 0) */
.dropdown__inner .sproduct__params {
    margin-top: 0;
}
/* Значение характеристики «Состав» (напр. «Полиэстер 96%, Спандэкс 4%») — не переносим
   проценты на новую строку. Только эта ячейка: остальные значения (длинный текст
   сертификата и т.п.) переносятся как обычно, иначе таблица распирает аккордеон. */
.sproduct__params td.sproduct__params-val--nowrap { white-space: nowrap; }

/* H1 — Cormorant Garamond, 32px, weight 400 (был 36/300) */
.sproduct__content .product-title-new {
    font-size: 32px;
    font-weight: 400;
    line-height: 1.2;
    margin: 0 0 16px;
}

/* Блок цены — стиль выровнен с карточкой каталога */
.sproduct__content .sproduct__price { margin: 0 0 20px; }
.sproduct__content .sproduct__price-current {
    font-size: 22px;
    font-weight: 500;
    color: #272727;
    text-decoration: none;
}
.sproduct__content .sproduct__price-old {
    color: #999;
    font-size: 16px;
    font-weight: 400;
    text-decoration: line-through;
    margin-left: 0;
    margin-right: 12px;
}

/* Цвет: «Цвет:» приглушённый, имя цвета — обычный тёмный, label 14px/500 */
.sproduct__content .sproduct__colors { margin: 0 0 20px; }
.sproduct__content .sproduct__colors-label {
    font-size: 14px;
    font-weight: 500;
    color: #272727;
    text-transform: none;
    letter-spacing: 0;
    margin-bottom: 10px;
    display: flex;
    align-items: baseline;
    gap: 6px;
}
.sproduct__content .sproduct__colors-label-text { opacity: 0.5; }
.sproduct__content .sproduct__colors-name { font-weight: 500; }

/* Цвет квадрат — 45×45 как на prod, без border-radius */
.sproduct__content .sproduct__color-item {
    display: inline-block;
    width: 45px;
    height: 45px;
    border-radius: 0;
    border: 1px solid #272727;
    cursor: default;
}
.sproduct__content .sproduct__color-item.active {
    border-color: #d4a542;
}

/* Размер: «Размер» и RUS/INT одного размера, RUS/INT с opacity 0.5 */
.sproduct__sizes-label-text {
    font-size: 14px;
    font-weight: 500;
    color: #272727;
    text-transform: none;
    letter-spacing: 0;
}
.sproduct__sizes-label-desc {
    font-size: 14px;
    font-weight: 500;
    color: #272727;
    opacity: 0.5;
    text-transform: none;
    letter-spacing: 0;
}
.sproduct__size-table-link {
    font-size: 13px;
    color: #555;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: color 0.2s ease;
}
.sproduct__size-table-link:hover {
    color: #EFBF04;
    text-decoration: underline; /* перебиваем глобальный a:hover { text-decoration: none } */
}

/* Кнопка корзины: уже + чёрный фон #272727 (как prod), padding и высота */
.sproduct__actions {
    display: flex;
    gap: 8px;
    align-items: stretch;
    margin: 20px 0 16px;
}
.sproduct__actions .single_add_to_cart_button {
    flex: 0 0 auto;
    width: auto;
    min-width: 212px;
    height: 52px;
    padding: 0 38px;
    background: #272727;
    border: 0;
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    cursor: pointer;
}
.sproduct__actions .single_add_to_cart_button:hover { background: #000; }

/* heart / share — квадраты 52×52 со светло-серым фоном и SVG-иконкой */
.sproduct__actions .btn--inline-icon {
    width: 52px;
    height: 52px;
    flex-shrink: 0;
    border: 0;
    background: #f6f6f6;
    color: #272727;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s ease;
}
.sproduct__actions .btn--inline-icon:hover { background: #e9e9e9; }
.sproduct__actions .btn--inline-icon svg { display: block; }
.sproduct__actions .button-favorite.added { color: #d4a542; }
.sproduct__actions .button-favorite.added svg { fill: currentColor; }

/* === FIX 2026-05-24: hover-стиль (золотистый + сохранение underline) =====
 * для ссылок в "Подписка на рассылку" → "условиями обработки персональных
 * данных" и "политики конфиденциальности" в .footer__subscribe-policy.
 * Логика идентична .sproduct__return-trigger / .sproduct__size-table-link. */
.footer__subscribe-policy a {
    transition: color 0.2s ease;
}
.footer__subscribe-policy a:hover {
    color: #EFBF04;
    text-decoration: underline; /* перебиваем глобальный a:hover { text-decoration: none } */
}


/* ----------------------------------------------------------
   CATALOG LANDING — сетка категорий-витрин (как на проде /catalog/)
   ---------------------------------------------------------- */
.bcats {
    padding: 0 0 60px;
}
.bcats__title {
    text-align: center;
    font-family: var(--ff-sec);
    font-size: clamp(30px, 4vw, 42px);
    font-weight: 400;
    line-height: 1.15;
    letter-spacing: 1px;
    color: #23202E;
    margin: 8px 0 28px;
}
.bcats__grid {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 1024px) {
    .bcats__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .bcats__grid { grid-template-columns: 1fr; }
}
.bcats__item {
    position: relative;
    display: block;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    text-decoration: none;
    background: #f4f4f4;
}
.bcats__item-img {
    position: absolute;
    inset: 0;
}
.bcats__item-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}
.bcats__item:hover .bcats__item-img img {
    transform: scale(1.04);
}
.bcats__item-info {
    position: absolute;
    left: 24px;
    bottom: 24px;
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 14px 22px;
    background: #fff;
    color: #272727;
    font-family: var(--ff);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    transition: background-color 0.2s, color 0.2s;
    z-index: 2;
}
.bcats__item:hover .bcats__item-info {
    background: #272727;
    color: #fff;
}
.bcats__item-arrow {
    font-size: 18px;
    line-height: 1;
}


/* ====================================================================
   CATALOG LISTING — sidebar c категориями + топ-фильтры с dropdown'ами
   ==================================================================== */
.sarchive { padding: 0 0 80px; }
.sarchive__title {
    font-family: var(--ff-sec);
    font-size: clamp(30px, 4vw, 42px);
    font-weight: 400;
    line-height: 1.15;
    letter-spacing: 1px;
    text-align: center;
    color: #23202E;
    margin: 8px 0 28px;
}
.sarchive__grid {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 32px;
    /* align-items: stretch (по умолчанию) — чтобы sticky-сайдбар имел место для перемещения */
}
/* =========================================================================
   КАТАЛОГ — САЙДБАР С АККОРДЕОНОМ КАТЕГОРИЙ
   ========================================================================= */
.sarchive__sidebar {
    min-width: 0;
    align-self: stretch;       /* колонка во всю высоту grid row → даёт пространство sticky */
    position: relative;
}
.sarchive__sidebar-inner {
    position: -webkit-sticky;
    position: sticky;
    top: 100px;
}

/* body { overflow-x: hidden } у нас глобальный — он ломает position: sticky.
   На странице каталога снимаем ограничение точечно через :has(). */
body:has(.sarchive__sidebar-inner) {
    overflow-x: visible;
    overflow-y: visible;
}

/* Контейнер дерева */
.sarchive__cats {
    font-size: 13px;
    line-height: 1.5;
}

/* Узел: grid в две строки — заголовок (link + arrow) и контейнер детей */
.sarchive__cats-item {
    margin: 0;
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    align-items: center;
}
.sarchive__cats-item.level-0 { padding-left: 0; }
.sarchive__cats-item.level-1 { padding-left: 14px; }
.sarchive__cats-item.level-2 { padding-left: 28px; }
.sarchive__cats-item.level-3 { padding-left: 42px; }
/* Разделители между основными пунктами (между подкатегориями линий нет) */
.sarchive__cats > .sarchive__cats-item:not(:last-child) {
    border-bottom: 1px solid #d9d9d9;
}

.sarchive__cats-item-children {
    grid-column: 1 / -1;
    overflow: hidden;
    display: none;            /* jQuery.slideToggle переключает inline display */
}
.sarchive__cats-item-children._open {
    display: block;           /* стартовое состояние от сервера; JS на init заменит на inline */
}

/* Ссылка */
.sarchive__cats-item-link {
    grid-column: 1;
    grid-row: 1;
    display: block;
    padding: 9px 0;
    color: #272727;
    text-decoration: none;
    line-height: 1.4;
    font-weight: 400;
    transition: color 0.2s ease;
}
.sarchive__cats-item.level-0 > .sarchive__cats-item-link {
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.5px;
}
.sarchive__cats-item-link:hover,
.sarchive__cats-item-link._active,
.sarchive__cats-item._active > .sarchive__cats-item-link {
    color: #DAA754;
}

/* Счётчик товаров */
.sarchive__cats-item-count {
    margin-left: 6px;
    color: #b3b3b3;
    font-size: 11px;
    font-weight: 400;
    display: inline-block;
    vertical-align: baseline;
    font-variant-numeric: tabular-nums;  /* цифры не прыгают при hover */
    transition: color 0.2s ease;
}
.sarchive__cats-item-link:hover .sarchive__cats-item-count {
    color: #DAA754;
}

/* Кнопка-стрелка раскрытия */
.sarchive__cats-item-arrow {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    width: 26px;
    height: 26px;
    background: none;
    border: 0;
    padding: 0;
    margin: 0;
    cursor: pointer;
    color: #888;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
    box-sizing: border-box;
    transition: color 0.2s ease;
}
.sarchive__cats-item-arrow:hover {
    color: #DAA754;
}
.sarchive__cats-item-arrow svg {
    width: 18px;
    height: 18px;
    display: block;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.sarchive__cats-item-arrow._active svg {
    /* SVG в шаблоне = chevron-right (›). Поворот 90° → chevron-down (⌄). */
    transform: rotate(90deg);
}

/* Подкатегории: уменьшенные стрелки */
.sarchive__cats-item:not(.level-0) > .sarchive__cats-item-arrow {
    width: 22px;
    height: 22px;
}
.sarchive__cats-item:not(.level-0) > .sarchive__cats-item-arrow svg {
    width: 14px;
    height: 14px;
}

.sarchive__content { min-width: 0; }

/* Топ-фильтры */
.sarchive__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin: 0 0 16px;
    padding: 0;
}
/* На десктопе обёртка прозрачна — пункты остаются прямыми flex-детьми бара.
   На мобиле (drawer) превращается в прокручиваемую середину (см. @media). */
.sarchive__filters-body { display: contents; }
.sarchive__filters-item {
    position: relative;
}
.sarchive__filters-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    border: 1px solid #e5e5e5;
    padding: 10px 16px;
    font-size: 13px;
    color: #272727;
    cursor: pointer;
    font-family: inherit;
    line-height: 1.2;
    transition: border-color 0.15s;
}
.sarchive__filters-toggle:hover,
.sarchive__filters-item.open .sarchive__filters-toggle {
    border-color: #272727;
}
.sarchive__filters-arrow {
    display: inline-block;
    width: 9px;
    height: 5px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='none' stroke='%23272727' stroke-width='1.2' d='M1 1l4 4 4-4'/%3E%3C/svg%3E") no-repeat center / contain;
    transition: transform 0.2s;
}
.sarchive__filters-item.open .sarchive__filters-arrow {
    transform: rotate(180deg);
}
.sarchive__filters-badge {
    display: inline-flex;
    min-width: 18px;
    height: 18px;
    align-items: center;
    justify-content: center;
    background: #272727;
    color: #fff;
    border-radius: 50%;
    font-size: 11px;
    padding: 0 4px;
}
.sarchive__filters-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    z-index: 30;
    min-width: 240px;
    max-height: 360px;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #e5e5e5;
    padding: 12px 16px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}
/* видимостью dropdown управляет jQuery slideToggle (плавно) */
.sarchive__filters-check {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 0;
    cursor: pointer;
    font-size: 13px;
    color: #272727;
}
.sarchive__filters-check input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin: 0;
    cursor: pointer;
}
.sarchive__filters-swatch {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 1px solid rgba(0, 0, 0, 0.15);
}
.sarchive__filters-name {
    flex: 1;
    min-width: 0;
}
.sarchive__filters-count {
    color: #999;
    font-size: 12px;
}
.sarchive__filters-price {
    display: flex;
    gap: 8px;
}
.sarchive__filters-price input {
    width: 50%;
    padding: 8px 10px;
    border: 1px solid #e5e5e5;
    font-size: 13px;
    font-family: inherit;
}
.sarchive__filters-reset {
    display: inline-flex;
    align-items: center;
    color: #999;
    text-decoration: underline;
    font-size: 13px;
    margin-left: 4px;
    cursor: pointer;
}
.sarchive__filters-reset:hover { color: #272727; }

/* Сетка карточек 4 в ряд (как на проде) */
.sarchive__items {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
@media (max-width: 1024px) {
    .sarchive__items { grid-template-columns: repeat(3, 1fr); }
    .sarchive__grid { grid-template-columns: 1fr; }
    .sarchive__sidebar { display: none; }
}
@media (max-width: 640px) {
    .sarchive__items { grid-template-columns: repeat(2, 1fr); }
}

/* Пагинация — оставляем как есть */
.sarchive__empty {
    padding: 60px 0;
    text-align: center;
    color: #666;
}


/* ====================================================================
   CATALOG PAGER — цифровая пагинация со стрелками
   ==================================================================== */
.sarchive__pager-wrap {
    margin: 56px 0 32px;
    display: flex;
    justify-content: center;
}
.sarchive__pager {
    display: flex;
    gap: 8px;
    align-items: center;
}
.sarchive__pager-page {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 12px;
    color: #888;
    font-size: 15px;
    text-decoration: none;
    background: transparent;
    border: 1px solid transparent;
    cursor: pointer;
    transition: color 0.2s, border-color 0.2s, background-color 0.2s;
}
.sarchive__pager-page:hover {
    color: #272727;
}
.sarchive__pager-page.is-active {
    color: #272727;
    border-color: #272727;
    font-weight: 500;
    cursor: default;
}
.sarchive__pager-prev,
.sarchive__pager-next {
    color: #272727;
}
.sarchive__pager-prev svg {
    transform: rotate(180deg);
}
.sarchive__pager-prev:hover,
.sarchive__pager-next:hover {
    color: #DAA754;
}
.sarchive__pager-page.is-disabled {
    color: #cfcfcf;
    cursor: default;
    pointer-events: none;
}
.sarchive__pager-page svg {
    display: block;
}

/* Скелетон при загрузке — приглушаем сетку */
.sarchive__items.is-loading {
    opacity: 0.45;
    pointer-events: none;
    transition: opacity 0.15s ease;
}


/* ====================================================================
   MOBILE PHASE 1 — Header
   ==================================================================== */
@media (max-width: 1024px) {
    .lb-header__icon { width: 40px; height: 40px; }
    .lb-header__logo-text { font-size: 18px; letter-spacing: 3px; gap: 8px; }
    .lb-header__logo-deco { font-size: 12px; }
}
@media (max-width: 640px) {
    .lb-header { height: 60px; }
    .lb-header__inner { padding: 0 8px; }
    .lb-header__menu-btn { padding: 6px; }
    .lb-header__icon { width: 36px; height: 36px; }
    .lb-header__icon svg { width: 20px; height: 20px; }
    .lb-header__left,
    .lb-header__right { gap: 0; }
    .lb-header__logo-text {
        font-size: 13px;
        letter-spacing: 1.5px;
        gap: 5px;
        font-weight: 500;
    }
    .lb-header__logo-deco { font-size: 9px; }
    .lb-header__badge {
        top: 2px; right: 2px;
        min-width: 14px; height: 14px;
        font-size: 9px;
    }
}
@media (max-width: 380px) {
    /* ромбики-декор оставляем видимыми (в шапке на мобиле только бургер+поиск, место есть) */
    .lb-header__logo-text { gap: 4px; letter-spacing: 1px; }
}

/* На мобиле скрываем поиск-toggle, чтобы освободить место */
@media (max-width: 480px) {
    .lb-header__right .js-header-search-toggle { display: inline-flex; }
}


/* ====================================================================
   MOBILE PHASE 1 — Filters drawer
   ==================================================================== */
/* На десктопе кнопки-триггера и шапки drawer'а нет */
.sarchive__mobile-trigger,
.sarchive__filters-header,
.sarchive__filters-close {
    display: none;
}

@media (max-width: 1024px) {
    /* Триггер «Фильтры» над сеткой */
    .sarchive__mobile-trigger {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 10px 18px;
        margin: 0 0 16px;
        background: #fff;
        border: 1px solid #272727;
        color: #272727;
        font-family: inherit;
        font-size: 13px;
        font-weight: 500;
        letter-spacing: 1px;
        text-transform: uppercase;
        cursor: pointer;
        line-height: 1;
        transition: opacity 0.25s ease;
    }
    .sarchive__mobile-trigger-badge {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 20px;
        height: 20px;
        padding: 0 5px;
        background: #272727;
        color: #fff;
        border-radius: 10px;
        font-size: 11px;
        font-weight: 500;
    }

    /* Форма фильтров превращается в drawer.
       !important изолирует НАШ drawer от legacy-правил .sarchive__filters
       в main.min.css (старый билд темы: свои transform/width/top конфликтуют). */
    .sarchive__filters {
        position: fixed !important;
        top: 0 !important;
        left: -100% !important;
        right: auto !important;
        bottom: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff;
        z-index: 10000 !important;
        overflow: hidden !important;
        /* flex-column: header сверху, .sarchive__filters-body скроллится в середине,
           footer-кнопка прижата снизу (flex-shrink:0) и не наезжает на контент. */
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        gap: 0 !important;
        /* legacy main.min.css держит форму pointer-events:none/visibility:hidden
           (снимал только своим классом ._active) — форсим интерактивность нашего drawer */
        pointer-events: auto !important;
        visibility: visible !important;
        opacity: 1 !important;
        /* slide через left, НЕ transform: transform создаёт композитный слой, из-за
           которого Chrome не перерисовывал drawer при раскрытии аккордеона (контент исчезал). */
        transform: none !important;
        transition: left 0.3s ease;
        box-shadow: 4px 0 20px rgba(0, 0, 0, 0.15);
    }
    /* Прокручиваемая середина drawer'а: фильтры скроллятся, header и footer фиксированы */
    .sarchive__filters > .sarchive__filters-body {
        display: flex;
        flex-direction: column;
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    body.mobile-filters-open .sarchive__filters {
        left: 0 !important;
    }
    /* При открытом drawer блокируем прокрутку: убираем вертикальный скроллбар
       (html{overflow-y:scroll}), чтобы drawer/оверлей доходили до правого края. */
    html:has(body.mobile-filters-open),
    body.mobile-filters-open {
        overflow: hidden !important;
        scrollbar-gutter: auto !important;  /* снимаем резерв скроллбара, иначе drawer не доходит до края */
    }
    /* Кнопка-триггер «Открыть фильтры» оставалась поверх открытого drawer и
       перехватывала клики. Гасим её плавно (opacity), а pointer-events:none
       снимает перехват кликов сразу. display:none убран — он давал резкое
       «мигание» в момент выезда drawer (кнопка пропадала мгновенно). */
    body.mobile-filters-open .sarchive__mobile-trigger {
        opacity: 0;
        pointer-events: none;
    }
    /* Backdrop-оверлей убран: drawer полноэкранный (100%), затемнение под ним
       не видно, а псевдоэлемент body::before (z-index выше из-за стекинг-контекста)
       перехватывал клики по фильтрам → попап закрывался при тапе по аккордеону/сортировке. */

    /* Шапка drawer'а */
    .sarchive__filters-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 18px 20px;
        border-bottom: 1px solid #eee;
        position: sticky;
        top: 0;
        background: #fff;
        z-index: 1;
    }
    .sarchive__filters-header-title {
        font-family: inherit;
        font-size: 15px;
        font-weight: 500;
        letter-spacing: 1px;
        text-transform: uppercase;
        color: #272727;
    }
    .sarchive__filters-close {
        display: flex;
        background: none;
        border: 0;
        padding: 6px;
        cursor: pointer;
        color: #272727;
    }

    /* На мобиле dropdown'ы раскрываются inline (не absolute) */
    .sarchive__filters-item {
        position: static;
        border-bottom: 1px solid #f2f2f2;
        padding: 0;
    }
    .sarchive__filters-toggle {
        width: 100%;
        justify-content: space-between;
        padding: 16px 20px;
        border: 0;
        background: none;
        text-align: left;
        font-size: 14px;
    }
    .sarchive__filters-toggle:hover {
        border-color: transparent;
        background: #f8f8f8;
    }
    .sarchive__filters-dropdown {
        position: static;
        max-height: none;
        box-shadow: none;
        border: 0;
        border-top: 1px solid #f2f2f2;
        padding: 8px 20px 16px;
        background: #fafafa;
    }
    .sarchive__filters-dropdown--price .sarchive__filters-price input {
        width: 100%;
    }
    .sarchive__filters-reset {
        display: block;
        padding: 18px 20px;
        text-align: center;
    }

    /* Скрываем сайдбар категорий на мобиле — навигация через шапку/мега-меню */
    .sarchive__sidebar {
        display: none;
    }

    /* Карточки 2 в ряд, пагинатор тоже компактнее */
    .sarchive__items {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px 12px;
    }

    /* Пагинатор: цифры мельче + перенос убрать */
    .sarchive__pager-page {
        min-width: 36px;
        height: 36px;
        padding: 0 8px;
        font-size: 13px;
    }
    .sarchive__pager { gap: 4px; }
    .sarchive__pager-wrap { margin: 32px 0 20px; }
}



/* ====================================================================
   MOBILE PHASE 1 — Карточки товаров: 2 в ряд на мобиле
   ==================================================================== */
@media (max-width: 1024px) {
    .bprods__list {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 16px 12px;
    }
    /* Карточки на мобиле — компактнее */
    .bprods__item-name {
        font-size: 13px;
        margin: 8px 0 4px;
    }
    .bprods__item-price {
        font-size: 14px;
    }
    .bprods__item-price del { font-size: 12px; margin-right: 6px; }
    .sproduct__color-item { width: 12px !important; height: 12px !important; min-width: 12px !important; min-height: 12px !important; }
}
@media (max-width: 480px) {
    .bprods__list { gap: 14px 8px; }
    .container { padding: 0 12px; }
    /* Заголовок секции «Вам также может понравиться» */
    .bprods__heading {
        font-size: 22px;
        margin: 24px 0 16px;
    }
}

/* ====================================================================
   MOBILE PHASE 1 — Footer: 2 кол на планшете, 1 кол + аккордеоны на мобиле
   ==================================================================== */
/* Мобильный футер 1:1 с продом luizabellezza.com:
   секции в 2 колонки (Каталог|Клиентам, Помощь|Контакты), без разделительных
   линий, блок подписки на всю ширину снизу. */
@media (max-width: 768px) {
    .footer__top {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
        column-gap: 24px !important;
        row-gap: 30px !important;
        align-items: start !important;
    }
    .footer__menu-col,
    .footer__contacts {
        align-items: stretch !important;
        gap: 12px !important;          /* заголовок ↔ список плотнее */
        border-bottom: 0 !important;   /* убираем разделители — как на проде */
        padding-bottom: 0 !important;
    }
    /* basis:400px в grid-ячейке не влияет на высоту, но на всякий сбрасываем */
    .footer__subscribe {
        grid-column: 1 / -1 !important;
        flex: 0 1 auto !important;
    }
    /* как на проде: боковой отступ ~16px (было 30) → колонки шире,
       контактные строки 12px → e-mail/телефон помещаются без обрезки */
    .footer .container { padding-left: 16px !important; padding-right: 16px !important; }
    .footer__contact { font-size: 12px !important; }
    /* комфортный шаг между ссылками вместо 44px-боксов (тап-зона за счёт gap) */
    .footer__menu-list { gap: 14px !important; }
    /* Заголовок-ссылка растягивался на всю колонку (align-items:stretch), из-за чего
       hover-подчёркивание (::after width:100%) уходило за текст. Прижимаем бокс к
       ширине текста — подчёркивание совпадает с надписью. */
    .footer__menu-heading { align-self: flex-start !important; }
}


/* MOBILE PHASE 1 — Дополнительные подгонки header/pager */
@media (max-width: 640px) {
    .lb-header__logo-text { font-size: 20px !important; letter-spacing: 2px !important; gap: 6px !important; }
    .lb-header__logo-deco { font-size: 8px !important; }
    .lb-header__icon { width: 34px !important; height: 34px !important; }
    .lb-header__icon svg { width: 18px; height: 18px; }
}
@media (max-width: 1024px) {
    .sarchive__pager-page {
        min-width: 30px !important;
        height: 30px !important;
        padding: 0 6px !important;
        font-size: 12px;
    }
    .sarchive__pager-page svg { width: 12px; height: 12px; }
    .sarchive__pager { gap: 3px !important; flex-wrap: nowrap; }
}


/* ====================================================================
   MOBILE PHASE 2 — Catalog landing (плитки категорий)
   ==================================================================== */
@media (max-width: 1024px) {
    .bcats__grid,
    .bcats__grid-7 {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
    }
    .bcats__item {
        aspect-ratio: 3 / 4;
    }
    .bcats__item-info {
        left: 12px;
        bottom: 12px;
        padding: 10px 14px;
        font-size: 11px;
        letter-spacing: 0.8px;
        gap: 8px;
    }
}
@media (max-width: 480px) {
    .bcats__item-info {
        font-size: 10px;
        padding: 8px 12px;
        gap: 6px;
        left: 8px;
        bottom: 8px;
    }
}

/* ====================================================================
   MOBILE PHASE 2 — Корзина
   ==================================================================== */
@media (max-width: 768px) {
    /* Двухколоночная сетка корзины → одна колонка */
    .scart__grid {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }
    .scart__right {
        position: static !important;
    }

    /* Строка товара: thumb сверху, info снизу */
    .scart__row.cart-row {
        flex-direction: column !important;
        gap: 16px;
        padding: 16px 0;
    }
    .cart-row .product-thumbnail,
    .cart-row .cart-col.product-thumbnail {
        width: 100% !important;
        max-width: none;
    }
    .cart-row .cart-item-image,
    .cart-row .cart-item-image img {
        width: 100% !important;
        max-width: 100%;
    }
    /* Контейнер фото товара на мобиле: высота = высоте img, без aspect-ratio,
       иначе под img торчит ::after-плейсхолдер «битая картинка» */
    .cart-row .cart-item-image {
        aspect-ratio: auto !important;
        height: auto !important;
        background: #f5f3f0;
    }
    .cart-row .cart-item-image::after { display: none !important; }
    .cart-row .cart-item-image img {
        height: auto !important;
        max-height: 480px;
        object-fit: cover;
        display: block;
    }
    .cart-main-col { width: 100% !important; min-width: 0; }
    .cart-main-row-first {
        flex-direction: row !important;
        flex-wrap: wrap;
        gap: 8px;
        align-items: flex-start;
    }
    .cart-name-container { width: 100%; }
    .cart-control-container {
        gap: 14px !important;
        margin-left: auto;
    }
    .product-format-title { font-size: 14px; }
    .product-name-price .original-price { font-size: 18px !important; }
}

/* ====================================================================
   MOBILE PHASE 2 — Чекаут (одноколоночный layout)
   ==================================================================== */
@media (max-width: 1024px) {
    body.lb-checkout .scart__grid,
    .checkout .scart__grid {
        grid-template-columns: 1fr !important;
        gap: 32px !important;
    }
    /* Премиум-паттерн: сводка заказа СНАЧАЛА, форма ниже */
    .scart--checkout .scart__grid { display: flex; flex-direction: column; }
    .scart--checkout .scart__content { order: 1; }
    .scart--checkout .scart__right   { order: 2; margin-top: 8px; }
    /* Sticky summary не должен быть sticky на мобилке */
    .scart--checkout .scart__right .scart-right-summary,
    .scart--checkout .scart__right .scart__summary { position: static !important; top: auto !important; }
    .scart-right-summary { padding: 16px; background: #f8f8f8; }
}
@media (max-width: 480px) {
    .scart-right-item {
        flex-direction: column !important;
        gap: 12px;
        align-items: stretch !important;
    }
    .scart-right-thumb { width: 100% !important; max-width: 100%; }
    .scart-right-thumb img { width: 100%; height: auto; }
}

/* ====================================================================
   MOBILE PHASE 2 — Попапы (login/register/reset/return)
   ==================================================================== */
@media (max-width: 640px) {
    .popup-content,
    .popup__box,
    .return-popup__box {
        width: calc(100% - 24px);
        max-width: none;
        padding: 24px 18px 22px;
        max-height: calc(100vh - 60px);
        overflow-y: auto;
    }
    .popup-title,
    .popup__title,
    .return-popup__title {
        font-size: 18px;
    }
    .popup-form input,
    .popup__input {
        font-size: 14px;
        padding: 12px 14px;
    }
    .popup-form button[type=submit],
    .popup__submit {
        font-size: 13px;
        padding: 14px 16px;
    }
}

/* ====================================================================
   MOBILE PHASE 2 — Страница избранного
   ==================================================================== */
@media (max-width: 768px) {
    .favorites-page .bprods__list,
    .favorites-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 16px 12px;
    }
}
@media (max-width: 380px) {
    .favorites-page .bprods__list,
    .favorites-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 14px 8px;
    }
}


/* Перебиваем правило main.min.css: первая плитка занимает 2 колонки.
   На мобиле это даёт уродливый 1+2+2+2 layout. Делаем все одного размера. */
@media (max-width: 1024px) {
    .bcats__grid-7 .bcats__item:first-child,
    .bcats__grid-6 .bcats__item:first-child,
    .bcats__grid-8 .bcats__item:first-child {
        grid-column: auto !important;
    }
    .bcats__grid-7 .bcats__item:first-child .bcats__item-image-wrap,
    .bcats__grid-6 .bcats__item:first-child .bcats__item-image-wrap,
    .bcats__grid-8 .bcats__item:first-child .bcats__item-image-wrap {
        padding-top: 0 !important;
    }
}


/* ====================================================================
   MOBILE PHASE 3 — Typography
   ==================================================================== */
@media (max-width: 768px) {
    h1, .h1 { font-size: 32px !important; }
    h2, .h2 { font-size: 24px !important; }
    h3, .h3 { font-size: 18px !important; }
    .breadcrumbs p,
    .yoast-breadcrumbs p { font-size: 11px; line-height: 1.6; }
    .breadcrumbs .separator { margin: 0 4px; }

    .sproduct .product-title-new { font-size: 26px !important; line-height: 1.2; }
    .sproduct .product-articul { font-size: 11px !important; letter-spacing: 0.5px; }

    .sproduct__content .sproduct__price-current { font-size: 22px !important; }
    .sproduct__content .sproduct__price-old { font-size: 13px !important; }

    .dropdown__header { padding: 14px 0; font-size: 13px; }
    .sproduct__params th, .sproduct__params td { font-size: 12px; padding: 6px 8px; }
}

/* ====================================================================
   MOBILE PHASE 3 — Touch targets (44x44 минимум)
   ==================================================================== */
@media (max-width: 1024px) and (hover: none) {
    .lb-header__icon,
    .lb-header__menu-btn {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }
    /* Ссылки футера НЕ раздуваем до 44px: при display:block текст прижимался
       к верху, а подчёркивание (::after bottom:0) висело у низа бокса — большой
       отступ под текстом. Как на проде: компактная высота, шаг задаём gap'ом. */
    .sarchive__filters-toggle { min-height: 48px; }
    .sarchive__filters-check { padding: 10px 0; min-height: 40px; }
    .bprods__item-favorite button {
        width: 44px; height: 44px;
        padding: 10px;
    }
    .sarchive__pager-page { min-width: 36px; height: 36px; }
}

/* ====================================================================
   MOBILE PHASE 3 — Hover->active gating
   ==================================================================== */
@media (hover: none) {
    .sarchive__cats-item-link:hover,
    .sarchive__cats-item-arrow:hover,
    .bcats__item:hover .bcats__item-info,
    .sarchive__pager-page:hover,
    .sarchive__filters-toggle:hover,
    .footer__menu-item:hover,
    .footer__menu-heading:hover,
    .bprods__item-favorite button:hover {
        color: inherit;
        background: inherit;
        border-color: inherit;
        transform: none;
    }
    .sarchive__cats-item-link:active,
    .sarchive__pager-page:active,
    .sarchive__filters-toggle:active {
        background: #f5f5f5;
    }
}

/* ====================================================================
   MOBILE PHASE 3 — Misc polish
   ==================================================================== */
@media (max-width: 640px) {
    .lb-header__badge {
        line-height: 1;
        font-weight: 600;
    }
    .sproduct__colors-list .sproduct__color-item {
        width: 28px !important;
        height: 28px !important;
        min-width: 28px !important;
        min-height: 28px !important;
    }
    .sproduct__colors-list { gap: 8px; }
    .sproduct__form .single_add_to_cart_button {
        width: 100%;
        min-height: 50px;
        font-size: 13px;
        letter-spacing: 1.5px;
    }
    .sproduct__size-item,
    .sproduct__sizes button {
        min-height: 42px;
        min-width: 42px;
    }
    .lb-header__logo { left: 50% !important; }
}

@media (max-width: 1024px) {
    body {
        overflow-x: hidden;
    }
}

/* ====================================================================
   AUTH (login / password-reset) — нормальный layout формы
   ==================================================================== */
.auth-page {
    padding: 80px 0 120px;
    min-height: calc(100vh - 400px);
}
.auth-page .container {
    max-width: 420px !important;
    margin: 0 auto;
    padding: 0 16px;
}
.auth-page h1 {
    font-family: var(--ff-sec);
    font-size: 40px;
    font-weight: 500;
    text-align: center;
    margin: 0 0 32px;
    color: #21212D;
    letter-spacing: -0.01em;
}
.auth-page form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.auth-page input[type="email"],
.auth-page input[type="password"],
.auth-page input[type="text"] {
    width: 100%;
    height: 52px;
    padding: 0 16px;
    border: 1px solid #d8d4cd;
    border-radius: 4px;
    background: #fff;
    font-family: var(--ff);
    font-size: 15px;
    color: #21212D;
    transition: border-color .2s ease;
    box-sizing: border-box;
}
.auth-page input:focus {
    outline: none;
    border-color: #21212D;
}
.auth-page input::placeholder {
    color: #999;
    font-size: 15px;
}
.auth-page .btn,
.auth-page button[type="submit"] {
    width: 100%;
    height: 52px;
    border: none;
    background: #21212D;
    color: #fff;
    font-family: var(--ff);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .2s ease;
    margin-top: 8px;
}
.auth-page .btn:hover,
.auth-page button[type="submit"]:hover {
    background: #000;
}
.auth-page p {
    text-align: center;
    margin: 20px 0 0;
    font-size: 14px;
    color: #666;
}
.auth-page p a {
    color: #21212D;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.auth-page p a:hover {
    color: #ff4c52;
}
.auth-page .alert {
    padding: 12px 16px;
    border-radius: 4px;
    margin-bottom: 16px;
    font-size: 14px;
}
.auth-page .alert-error {
    background: #fef1f2;
    color: #ff4c52;
    border: 1px solid #ffd6d9;
}
.auth-page .alert p { margin: 0; text-align: left; color: inherit; }

@media (max-width: 640px) {
    .auth-page { padding: 40px 0 80px; }
    .auth-page h1 { font-size: 32px; margin-bottom: 24px; }
}

/* ============ Reviews block (product page) ============ */
.sproduct-reviews { padding: 40px 0; }
.sproduct-reviews > .container { background: #fafaf7; padding: 40px 44px; }
.sproduct-reviews__head { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 28px; }
.sproduct-reviews__title { font-family: var(--ff-sec); font-size: 32px; font-weight: 500; line-height: 1.2; color: #21212D; margin: 0; }
.sproduct-reviews__stars { display: flex; gap: 4px; opacity: .35; }
.sproduct-reviews__empty { max-width: 560px; text-align: left; }
.sproduct-reviews__empty-title { font-size: 16px; font-weight: 600; color: #21212D; margin: 0 0 6px; letter-spacing: .02em; }
.sproduct-reviews__empty-text { font-size: 14px; line-height: 1.55; color: #6b6b6b; margin: 0 0 20px; }
.sproduct-reviews__cta {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 46px; padding: 0 28px;
    background: #21212D; color: #fff; border: 1px solid #21212D;
    text-transform: uppercase; letter-spacing: .12em; font-size: 12px; font-weight: 600;
    cursor: pointer; transition: background .2s, color .2s;
}
.sproduct-reviews__cta:hover { background: #fff; color: #21212D; }

.sproduct-reviews__form { margin-top: 32px; max-width: 640px; display: flex; flex-direction: column; gap: 14px; }
.sproduct-reviews__form[hidden] { display: none; }
.sproduct-reviews__rate { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 4px; }
.sproduct-reviews__rate-label { font-size: 13px; color: #21212D; font-weight: 600; letter-spacing: .04em; }
.sproduct-reviews__rate-stars { display: flex; gap: 4px; }
.sproduct-reviews__rate-stars button { background: none; border: 0; padding: 2px; cursor: pointer; line-height: 0; }
.sproduct-reviews__rate-stars button svg { transition: opacity .15s; }
.sproduct-reviews__rate-stars button.is-off svg { fill: none; stroke: #d8d4cd; }
.sproduct-reviews__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sproduct-reviews__form input,
.sproduct-reviews__form textarea {
    width: 100%; padding: 14px 16px; border: 1px solid #d8d4cd; background: #fff;
    font-family: inherit; font-size: 14px; color: #21212D; outline: none;
    transition: border-color .2s;
}
.sproduct-reviews__form input:focus,
.sproduct-reviews__form textarea:focus { border-color: #21212D; }
.sproduct-reviews__form textarea { resize: vertical; min-height: 110px; }
.sproduct-reviews__actions { display: flex; gap: 12px; }
.sproduct-reviews__submit {
    flex: 0 0 auto; min-height: 46px; padding: 0 28px;
    background: #21212D; color: #fff; border: 1px solid #21212D;
    text-transform: uppercase; letter-spacing: .12em; font-size: 12px; font-weight: 600;
    cursor: pointer;
}
.sproduct-reviews__submit:hover { background: #2f2f3f; }
.sproduct-reviews__cancel {
    flex: 0 0 auto; min-height: 46px; padding: 0 22px;
    background: transparent; color: #6b6b6b; border: 1px solid #d8d4cd;
    font-size: 13px; cursor: pointer;
}
.sproduct-reviews__cancel:hover { color: #21212D; border-color: #21212D; }

@media (max-width: 640px) {
    .sproduct-reviews { padding: 56px 0 32px; }
    .sproduct-reviews__title { font-size: 26px; }
    .sproduct-reviews__row { grid-template-columns: 1fr; }
    .sproduct-reviews__cta, .sproduct-reviews__submit { width: 100%; }
    .sproduct-reviews__actions { flex-direction: column; }
}

/* ============ Reviews list (verified-purchase only) ============ */
.sproduct-reviews__summary { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.sproduct-reviews__avg { font-family: var(--ff-sec); font-size: 22px; font-weight: 600; color: #21212D; }
.sproduct-reviews__count { font-size: 13px; color: #6b6b6b; }
.sproduct-reviews__link { color: #21212D; text-decoration: underline; text-underline-offset: 3px; }
.sproduct-reviews__link:hover { color: #d4a542; }

.sproduct-reviews__list { list-style: none; padding: 0; margin: 28px 0 0; display: flex; flex-direction: column; gap: 0; }
.sproduct-review { padding: 22px 0; border-top: 1px solid #ece8e1; }

/* Постраничный показ отзывов (кнопка «Показать ещё»). Анти-flash: пока JS не готов
   (нет .is-ready), прячем «лишние» — 5+ на ПК/планшете, 3+ на мобиле (совпадает с шагом JS).
   После .is-ready видимостью управляет только JS (inline display). */
.sproduct-reviews__list:not(.is-ready) > .sproduct-review:nth-child(n+6) { display: none; }
@media (max-width: 768px) {
    .sproduct-reviews__list:not(.is-ready) > .sproduct-review:nth-child(n+4) { display: none; }
}
.sproduct-reviews__more {
    display: block; margin: 26px auto 0; padding: 0 30px; height: 48px;
    background: #fff; border: 1px solid #d8d4cd; border-radius: 12px; color: #21212D;
    font-size: 13px; letter-spacing: .05em; text-transform: uppercase; cursor: pointer;
    transition: border-color .2s, color .2s;
}
.sproduct-reviews__more:hover { border-color: #d4a542; color: #d4a542; }
.sproduct-reviews__more[hidden] { display: none; }
.sproduct-review:last-child { border-bottom: 1px solid #ece8e1; }
.sproduct-review__head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.sproduct-review__stars { display: flex; gap: 2px; }
.sproduct-review__author { font-weight: 600; font-size: 14px; color: #21212D; letter-spacing: .02em; }
.sproduct-review__date { font-size: 12px; color: #9b9b9b; }
.sproduct-review__verified { font-size: 11px; color: #2f7d3f; background: #eaf6ec; padding: 3px 8px; border-radius: 3px; letter-spacing: .02em; }
.sproduct-review__text { font-size: 14px; line-height: 1.65; color: #2c2c2c; margin: 0; }

/* ============ Write-review modal (in account/view-order) ============ */
.write-review-modal { position: fixed; inset: 0; display: none; z-index: 9999; }
.write-review-modal.is-open { display: block; }
.write-review-modal__overlay { position: absolute; inset: 0; background: rgba(0,0,0,.5); }
.write-review-modal__box {
    position: relative;
    max-width: 520px;
    margin: 5vh auto;
    background: #fff;
    padding: 32px 28px;
    box-shadow: 0 20px 60px rgba(0,0,0,.2);
    max-height: 90vh; overflow-y: auto;
}
.write-review-modal__close {
    position: absolute; top: 12px; right: 12px;
    width: 36px; height: 36px;
    background: transparent; border: 0; cursor: pointer;
    font-size: 24px; line-height: 1; color: #6b6b6b;
}
.write-review-modal__title {
    font-family: var(--ff-sec);
    font-size: 26px; font-weight: 500; color: #21212D;
    margin: 0 0 6px;
}
.write-review-modal__product { font-size: 13px; color: #6b6b6b; margin: 0 0 20px; }
.write-review-modal__form { display: flex; flex-direction: column; gap: 14px; }
.write-review-modal__rate-row { display: flex; align-items: center; gap: 14px; }
.write-review-modal__rate-label { font-size: 13px; font-weight: 600; color: #21212D; letter-spacing: .04em; }
.write-review-modal__rate-stars { display: flex; gap: 4px; }
.write-review-modal__rate-stars button { background: none; border: 0; padding: 2px; cursor: pointer; line-height: 0; }
.write-review-modal__rate-stars button.is-off svg { fill: none; stroke: #d8d4cd; }
.write-review-modal__form textarea {
    width: 100%; min-height: 130px; resize: vertical;
    border: 1px solid #d8d4cd; padding: 14px 16px; font-family: inherit; font-size: 14px; outline: none;
}
.write-review-modal__form textarea:focus { border-color: #21212D; }
.write-review-modal__submit {
    min-height: 48px; padding: 0 24px;
    background: #21212D; color: #fff; border: 0; cursor: pointer;
    text-transform: uppercase; letter-spacing: .12em; font-size: 12px; font-weight: 600;
}
.write-review-modal__submit:hover { background: #2f2f3f; }
.write-review-modal__error  { color: #c0392b; font-size: 13px; min-height: 18px; }
.write-review-modal__success {
    background: #eaf6ec; color: #2f7d3f;
    padding: 12px 14px; font-size: 14px;
    border-left: 3px solid #2f7d3f;
}

/* «Оставить отзыв» в строке заказа (account/view-order) */
.order-item-row { display: flex; gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid #ece8e1; }
.order-item-row:last-child { border-bottom: 0; }
.order-item-row__thumb { width: 56px; height: 72px; flex: 0 0 56px; background: #f5f3f0; object-fit: cover; }
.order-item-row__info  { flex: 1 1 auto; min-width: 0; }
.order-item-row__name  { font-size: 14px; color: #21212D; font-weight: 500; margin: 0 0 4px; }
.order-item-row__meta  { font-size: 12px; color: #6b6b6b; }
.order-item-row__actions { flex: 0 0 auto; }
.btn-review {
    display: inline-flex; align-items: center; justify-content: center;
    height: 40px; padding: 0 16px;
    background: #f6f3ee; color: #21212D;
    border: 0; cursor: pointer;
    text-transform: uppercase; letter-spacing: .1em; font-size: 11px; font-weight: 600;
}
.btn-review:hover { background: #21212D; color: #fff; }
.btn-review.is-done {
    border-color: #ece8e1; color: #9b9b9b; cursor: default; pointer-events: none;
}
@media (max-width: 640px) {
    .order-item-row { flex-wrap: wrap; }
    .order-item-row__actions { flex-basis: 100%; }
    .btn-review { width: 100%; }
}

/* ============ Fix #10: Size out-of-stock + full-width CTA ============ */

/* CTA «Добавить в корзину» — full-width, рядом с иконками избр/share */
.sproduct__actions .single_add_to_cart_button {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 0 24px !important;
}

/* Размер «нет в наличии» — премиальный диагональный штрих + tooltip */
.sproduct__size-item.is-disabled {
    position: relative;
    opacity: 0.55;
    cursor: not-allowed;
    background: #fafaf7;
    border-color: #ece8e1;
}
.sproduct__size-item.is-disabled::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top right,
        transparent calc(50% - 1px),
        #c8c4bd calc(50% - 0.5px),
        #c8c4bd calc(50% + 0.5px),
        transparent calc(50% + 1px)
    );
    pointer-events: none;
}
.sproduct__size-item.is-disabled .sproduct__size-letter,
.sproduct__size-item.is-disabled .sproduct__size-num {
    text-decoration: none;
    color: #a59f95;
}
.sproduct__size-item.is-disabled:hover::after {
    content: "Нет в наличии";
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    background: #21212D;
    color: #fff;
    font-size: 11px;
    font-weight: 500;
    padding: 5px 9px;
    white-space: nowrap;
    pointer-events: none;
    letter-spacing: .04em;
    z-index: 5;
}

/* ====================================================================
   FIX: горизонтальный скролл на странице категории на мобильных.

   Корень: .sarchive__items объявлен с `grid-column: 1 / span 2`
   (занимает 2 колонки layout-грида рядом с сайдбаром на десктопе).
   На мобильном сайдбар скрыт (display:none) и грид становится одной
   колонкой, но `span 2` заставляет браузер создать НЕЯВНУЮ вторую
   колонку шириной auto (= min-content сетки товаров ≈ 261px), которая
   вылезает за вьюпорт → горизонтальный скролл.

   Решение: на мобильном сбрасываем span — сетка занимает всю строку
   (`1 / -1`, без создания implicit-трека), и грид принудительно в одну
   колонку. minmax(0,1fr) защищает карточки от раздувания placeholder-ом.
   ==================================================================== */
@media (max-width: 1024px) {
    .sarchive__grid  { grid-template-columns: 1fr !important; }
    .sarchive__items {
        grid-column: 1 / -1 !important;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 640px) {
    .sarchive__items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ====================================================================
   FIX: лишний отступ между sticky-хедером и крошками.

   main { padding-top: var(--header-height) } рассчитан на ФИКСИРОВАННЫЙ
   хедер. Но хедер у нас position:sticky — он уже занимает место в потоке,
   поэтому padding добавляет вторую высоту хедера пустотой (50px моб / 71px
   десктоп) перед первой секцией. На главной .hero гасит это отрицательным
   margin-top, а на страницах с крошками (категория/товар/корзина) гасить
   нечем → большая дыра.

   Решение: на страницах, где первая секция main — крошки, обнуляем
   избыточный padding. Главную (hero) не трогаем — там нет breadcrumbs. */
main:has(> section.breadcrumbs:first-child) { padding-top: 0 !important; }

/* Поп-ап входа: у .modal-form__heading есть декоративные ::before/::after
   (наследие старого модала), из-за которых заголовок визуально уезжал влево.
   Убираем их и жёстко центрируем заголовок/подзаголовок. */
#popup-login .modal-form__heading::before,
#popup-login .modal-form__heading::after { content: none !important; display: none !important; }
#popup-login .modal-form__heading { text-align: center !important; }
/* Неактивная кнопка «Получить код», пока не отмечен чекбокс согласия */
/* border-color transparent (не border:none) — чтобы ширина бордера сохранялась
   и высота кнопки не менялась при вкл/выкл (иначе центрированный поп-ап «прыгает») */
#auth-form .js-auth-request:disabled { opacity: .45; cursor: not-allowed; border-color: transparent !important; }

/* Кружок-радио для чекбокса списания баллов (вид как у СДЭК) */
.scart__loyalty .scart__radio-row input[type="checkbox"] {
    position: absolute; left: 0; top: 14px; width: 18px; height: 18px;
    margin: 0; opacity: 0; z-index: 2; cursor: pointer;
}
/* Кружок и инпут бонуса по центру первой строки заголовка */
.scart__loyalty .scart__radio-row input[type="checkbox"],
.scart__loyalty .scart__radio-row .scart__radio-circle { top: 17px; }
.scart__loyalty .scart__radio-row input[type="checkbox"]:checked ~ .scart__radio-circle { border-color: #DAA754; }
.scart__loyalty .scart__radio-row input[type="checkbox"]:checked ~ .scart__radio-circle::after {
    content: ''; position: absolute; inset: 3px; border-radius: 50%; background: #DAA754;
}

/* ПВЗ-ряд: цена справа напротив, кнопка выбора ближе к ряду */
.scart__radio-row--pvz .scart__radio-title,
.scart__radio-row--pickup .scart__radio-title { padding-right: 90px; }
.scart__radio-row--pvz .scart__radio-price,
.scart__radio-row--pickup .scart__radio-price {
    position: absolute; right: 0; top: 14px;
    font-size: 14px; color: #272727; line-height: 28px;
    font-variant-numeric: tabular-nums; white-space: nowrap;
}
.scart__shipping-address.js-pvz-block { margin-top: -16px; padding-top: 0; }
.scart__shipping-address.js-pickup-address { margin-top: -16px; padding-top: 0; }

/* Курьер: цена справа напротив, поле адреса ближе к ряду */
.scart__radio-row--courier .scart__radio-title { padding-right: 90px; }
.scart__radio-row--courier .scart__radio-price {
    position: absolute; right: 0; top: 14px;
    font-size: 14px; color: #272727; line-height: 28px;
    font-variant-numeric: tabular-nums; white-space: nowrap;
}
.scart__shipping-address.js-shipping-address { margin-top: -16px; }

/* ПВЗ-блок всегда резервирует место (visibility вместо display) —
   чтобы строка «Самовывоз» и её цена не «прыгали» при переключении */
.scart__shipping-address.js-pvz-block { display: block; }
.scart__shipping-address.js-pvz-block:not(.is-visible) { visibility: hidden; }


/* Автоподсказка адреса (DaData) на чекауте */
.lb-field.js-addr-field { position: relative; }
.lb-addr-dropdown {
    position: absolute;
    left: 0; right: 0;
    top: calc(100% + 4px);
    margin: 0; padding: 4px 0;
    list-style: none;
    background: #fff;
    border: 1px solid #E5E5E5;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
    z-index: 50;
    max-height: 280px;
    overflow-y: auto;
}
.lb-addr-dropdown[hidden] { display: none; }
.lb-addr-dropdown__item {
    list-style: none;
    padding: 10px 14px;
    font-size: 14px;
    color: #272727;
    line-height: 1.35;
    cursor: pointer;
}
.lb-addr-dropdown__item::marker { content: ''; }
.lb-addr-dropdown__item:hover { background: #F6F1E7; }

/* Мегаменю: иерархия категорий */
.mega-menu__menu-item-title {
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #272727;
}
.mega-menu__menu-item-submenu { margin-top: 12px; }
.mega-menu__menu-item-submenu-link { color: #8a8a8a; }
.mega-menu__menu-item-submenu-link:hover { color: #272727; }
.mega-menu__see-all {
    display: inline-block;
    margin-top: 8px;
    font-size: 12px;
    font-weight: 500;
    color: #DAA754;
}
.mega-menu__see-all:hover { color: #b8893f; }

/* Мегаменю: промо-блок справа (вместо товаров) */
.mega-menu__promo { display: flex; flex-direction: column; gap: 12px; height: 100%; }
.mega-menu__promo-card {
    display: flex; flex-direction: column; justify-content: flex-end;
    min-height: 220px; padding: 26px 24px;
    background: #272727; color: #fff;
    transition: background .2s;
}
.mega-menu__promo-card:hover { background: #1a1a1a; }
.mega-menu__promo-kicker {
    font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
    color: #DAA754; margin-bottom: 8px;
}
.mega-menu__promo-title { font-size: 22px; line-height: 1.2; font-weight: 400; }
.mega-menu__promo-cta {
    display: inline-flex; align-items: center; gap: 6px;
    margin-top: 14px; font-size: 13px; color: #DAA754;
}
.mega-menu__promo-link {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    padding: 14px 16px; font-size: 13px; color: #272727;
    border: 1px solid #ECE7DD; background: #FBF8F2;
    transition: color .2s, border-color .2s;
}
.mega-menu__promo-link svg { flex-shrink: 0; color: #DAA754; }
.mega-menu__promo-link:hover { color: #DAA754; border-color: #DAA754; }

/* Мегаменю: мобильный режим — одна колонка + аккордеон категорий */
@media (max-width: 768px) {
    /* панель фиксируется в экране и сама скроллится — футер не показывается снизу */
    .mega-menu__wrap {
        position: fixed;
        height: calc(100vh - var(--header-height, 72px));
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    .mega-menu__grid {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 12px 16px 32px;
        max-width: 100%;
    }
    .mega-menu__menu { grid-template-columns: 1fr; gap: 0; }

    .mega-menu__menu-item { position: relative; border-bottom: 1px solid #EEE; }
    .mega-menu__menu-item-title { display: block; padding: 15px 28px 15px 0; font-size: 14px; }
    .mega-menu__menu-item:has(.mega-menu__menu-item-submenu)::after {
        content: '';
        position: absolute; right: 6px; top: 22px;
        width: 8px; height: 8px;
        margin-top: -4px; /* центрируем по высоте, чтобы не было скачка */
        border-right: 1.5px solid #272727;
        border-bottom: 1.5px solid #272727;
        transform: rotate(135deg);      /* закрыто — стрелка указывает влево, на название */
        transform-origin: center;
        transition: transform .25s ease;
        pointer-events: none;
    }
    .mega-menu__menu-item.is-open::after { transform: rotate(45deg); } /* открыто — вниз (top не меняем) */

    .mega-menu__menu-item-submenu {
        margin-top: 0;
        max-height: 0;
        overflow: hidden;
        transition: max-height .3s ease;
    }
    .mega-menu__menu-item.is-open .mega-menu__menu-item-submenu { padding-bottom: 10px; } /* max-height задаётся в JS по реальной высоте */
    .mega-menu__menu-item-submenu-link { padding: 9px 0 9px 12px; font-size: 14px; }
    .mega-menu__see-all { margin: 4px 0 6px 12px; }

    .mega-menu__left-bottom { grid-template-columns: 1fr; gap: 26px; margin-top: 24px; }
    .mega-menu__promo-card { min-height: 150px; }

    /* На мобиле убираем «бегущее» подчёркивание (его ширина = вся строка, а не текст);
       активную категорию показываем золотым цветом текста */
    .mega-menu__menu-item-title::after,
    .mega-menu__menu-item-submenu-link::after { display: none; }
    .mega-menu__menu-item.is-open > .mega-menu__menu-item-title { color: #DAA754; }
}

/* Блокировка прокрутки страницы при открытом мобильном мегаменю */
html._mm-lock, html._mm-lock body { overflow: hidden; }

/* Нижняя мобильная навигация (bottom tab bar) */
.lb-botnav { display: none; }
@media (max-width: 768px) {
    .lb-botnav {
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
        display: flex; align-items: stretch;
        height: 58px;
        background: #fff;
        border-top: 1px solid #ECECEC;
        box-shadow: 0 -2px 12px rgba(0,0,0,.05);
        padding-bottom: env(safe-area-inset-bottom, 0px);
    }
    .lb-botnav__item {
        flex: 1 1 0; display: flex; flex-direction: column;
        align-items: center; justify-content: center; gap: 3px;
        text-decoration: none; color: #9a9a9a;
        font-size: 10px; line-height: 1;
    }
    .lb-botnav__item.is-active { color: #272727; }
    .lb-botnav__ico { position: relative; display: flex; align-items: center; justify-content: center; }
    .lb-botnav__ico svg { width: 22px; height: 22px; }
    .lb-botnav__label { white-space: nowrap; }
    .lb-botnav__badge {
        position: absolute; top: -6px; right: -9px;
        min-width: 15px; height: 15px; padding: 0 4px;
        border-radius: 8px; background: #d4a542; color: #fff;
        font-size: 9px; font-weight: 600; line-height: 1;
        display: flex; align-items: center; justify-content: center;
        transition: transform .2s ease;
    }
    /* Pulse иконки корзины при добавлении товара (класс lb-cart-pulse ставит JS). */
    .lb-botnav__item.lb-cart-pulse .lb-botnav__ico { animation: lb-cart-bump .5s ease; }
    .lb-botnav__item.lb-cart-pulse .lb-botnav__badge { animation: lb-cart-badge .5s ease; }
    @keyframes lb-cart-bump {
        0%, 100% { transform: scale(1); }
        30%      { transform: scale(1.25); }
        55%      { transform: scale(.92); }
    }
    @keyframes lb-cart-badge {
        0%   { transform: scale(0); }
        60%  { transform: scale(1.35); }
        100% { transform: scale(1); }
    }
    @media (prefers-reduced-motion: reduce) {
        .lb-botnav__item.lb-cart-pulse .lb-botnav__ico,
        .lb-botnav__item.lb-cart-pulse .lb-botnav__badge { animation: none; }
    }
    /* футер не прячется под панелью навигации (последняя ссылка видна) */
    .footer { padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)) !important; }
    /* при открытом мегаменю навигацию НЕ прячем — панель меню (z-index выше)
       сама наезжает на неё сверху, без рывка исчезновения */
}

/* Каталог на мобиле: вместо пагинатора — бесконечная подгрузка */
@keyframes lb-inf-spin { to { transform: rotate(360deg); } }
.sarchive__infinite-sentinel { display: none; height: 1px; }
.sarchive__infinite-loader { display: none; justify-content: center; padding: 24px 0; }
.sarchive__infinite-loader.is-active { display: flex; }
.sarchive__infinite-loader span {
    width: 24px; height: 24px;
    border: 2px solid #e3e3e3; border-top-color: #272727;
    border-radius: 50%;
    animation: lb-inf-spin .7s linear infinite;
}
@media (max-width: 768px) {
    .sarchive__pager-wrap { display: none; }
    /* Нейтрализуем хрупкий шаблон строк грида каталога: при скрытом пагере сетка
       товаров уезжала в фиксированную строку и вываливалась → футер наезжал. */
    .sarchive__grid { grid-auto-rows: auto !important; }
    /* Сентинел в потоке — IntersectionObserver следит именно за ним */
    .sarchive__infinite-sentinel { display: block; }
}

/* Пустое состояние (корзина/избранное): обнуляем верхние отступы-обёрток,
   чтобы блок начинался сразу под шапкой и кнопка «В каталог» была на одной высоте. */
main:has(.bempty):not(:has(> section.account-page)) { padding-top: 0 !important; }
.scart:has(.bempty) { margin-top: 0 !important; }

/* === Stable card height: lock product name to a single line so a font-swap
   (fallback font wider -> name wraps to 2 lines during load) cannot change
   card height and shove content below on cold load. === 
*/
#hits .bprods__item > .bprods__item-name,
#limited-edition .bprods__description_new .bprods__item-name {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#hits .bprods__item > .bprods__item-price,
#limited-edition .bprods__description_new .bprods__item-price {
  white-space: nowrap;
}

/* Reserve the vertical scrollbar gutter so the page width never changes when
   content grows tall (scrollbar appears) — kills the left-right "jerk" on reload. */
html { scrollbar-gutter: stable; }

/* ===== ЛК: каркас как на проде (топ-бар + меню + заголовки) ===== */
.lk__topbar{ display:flex; align-items:center; justify-content:space-between; padding:28px 0 18px; border-bottom:1px solid #ececec; }
.lk__topbar-name{ font-size:15px; letter-spacing:2px; text-transform:uppercase; color:#23202E; }
.lk__topbar-logout{ font-size:13px; letter-spacing:2px; text-transform:uppercase; color:#23202E; text-decoration:none; transition:color .2s; }
.lk__topbar-logout:hover{ color:#d4a542; }
.lk__nav{ display:flex; flex-direction:column; gap:0; padding:6px 0 4px; background:none; border-bottom:1px solid #ececec; }
.lk__nav-link{ display:block; padding:13px 0; text-decoration:none; font-size:13px; letter-spacing:1.6px; text-transform:uppercase; color:#23202E; transition:color .2s; }
.lk__nav-link:hover, .lk__nav-link.is-active{ color:#d4a542; }
.lk__title{ font-family: var(--ff-sec); font-size:clamp(30px, 4vw, 42px); font-weight:400; line-height:1.15; letter-spacing:1px; text-transform:none; text-align:center; color:#23202E; margin:0; padding-bottom:22px; border-bottom:1px solid #ececec; }
.lk--favorites .favorites-grid{ grid-template-columns:repeat(3,1fr) !important; margin:30px 0 0; }
@media (max-width:1024px){ .lk--favorites .favorites-grid{ grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:768px){ .lk__topbar{ padding:18px 0 14px; } .lk--favorites .favorites-grid{ grid-template-columns:repeat(2,1fr) !important; } }

/* ЛК: на мобиле убираем лишний отступ от sticky-хедера (как у избранного) */
@media (max-width:768px){
  main:has(> section.account-page){ padding-top: 0 !important; }
}

/* ЛК: единый отступ сверху во всех 4 разделах (убираем разнобой) */
section.account-page{ padding-top: 0 !important; }

/* ЛК: на мобиле меню не липнет (sticky только на десктопе) */
@media (max-width:768px){ .lk__sidebar{ position: static !important; top: auto !important; } }

/* === Единый заголовок страницы (H1) — единообразие по всему сайту === */
.page-title {
    font-family: var(--ff-sec);
    font-size: clamp(30px, 4vw, 42px);
    font-weight: 400;
    line-height: 1.15;
    letter-spacing: 1px;
    text-align: center;
    text-transform: none;
    color: #23202E;
    margin: 0 0 28px;
}
/* Совместимость: старые H1 на статических страницах подтягиваем к стандарту */
.static-page h1 { text-align: center; }

/* === Оптическое выравнивание шапки по линии контейнера ===
   Hit-area паддинг бургера и центровка SVG в правых иконках сдвигают видимые
   глифы внутрь от контентной линии. Компенсируем отрицательным маргином,
   кликабельная зона не уменьшается. Числа = (бокс − SVG) / 2. */
.lb-header__menu-btn{ margin-left:-8px; }
.lb-header__right > .lb-header__icon:last-child{ margin-right:-11px; } /* 44−22 */
@media (max-width:1024px){
  .lb-header__right > .lb-header__icon:last-child{ margin-right:-11px; } /* inline-стиль держит бокс 44 */
}
@media (max-width:768px){
  /* справа видна только кнопка поиска (ссылки ушли в нижний таб-бар) */
  .lb-header__right > .lb-header__icon:last-child{ margin-right:0; }
  .lb-header__right .js-header-search-toggle{ margin-right:-11px; }
}
@media (max-width:640px){
  .lb-header__menu-btn{ margin-left:-8px; }
  .lb-header__right .js-header-search-toggle{ margin-right:-8px; } /* 34−18 */
}

/* Fancybox 5: при открытии прячется скроллбар — компенсируем, чтобы макет не съезжал */
/* Жёлоб скроллбара зарезервирован всегда: модалки (Fancybox, попапы) прячут скролл без сдвига макета */
html{ overflow-y: scroll; } /* полоса всегда видна — модалки не сдвигают макет */
html.with-fancybox body{ overflow: hidden !important; }

/* Футер мобильного drawer фильтров: кнопка «Показать товары (N)» */
/* Пункты drawer не сжимаются — иначе раскрытый аккордеон сминает соседние */
@media (max-width: 1024px) {
    .sarchive__filters > * { flex-shrink: 0; }
}
.sarchive__filters-footer { display: none; }
@media (max-width: 1024px) {
    .sarchive__filters-footer {
        display: block;
        position: static;
        flex-shrink: 0;
        padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
        background: #fff;
        border-top: 1px solid #ececec;
        z-index: 3;
    }
    .sarchive__filters-apply {
        width: 100%;
        min-height: 50px;
        background: #272727;
        color: #fff;
        border: 0;
        border-radius: 0;
        font-size: 13px;
        font-weight: 500;
        letter-spacing: 1px;
        text-transform: uppercase;
        cursor: pointer;
    }
    .sarchive__filters-apply:active { opacity: 0.85; }
    .sarchive__filters-apply-paren { opacity: 0.7; }
}

/* ============================================================
   Страница «Заказ оформлен» — единый блок с тремя колонками
   ============================================================ */
.order-received__head { text-align: center; margin: 0 0 28px; }
.order-received__h1 { font-family: var(--ff-sec); font-size: 34px; font-weight: 500; margin: 0 0 8px; color: #23202e; }
.order-received__sub { color: #6b6b6b; font-size: 14px; margin: 0; }
.order-received__card {
    display: grid; grid-template-columns: 1fr 1fr 1.1fr;
    background: #f7f7f7; border-radius: 16px; overflow: hidden;
}
.order-received__col { padding: 30px 28px; }
.order-received__col + .order-received__col { border-left: 1px solid #e7e7e7; }
.order-received__col h3 {
    font-family: var(--ff-sec); font-size: 19px; font-weight: 600; text-transform: uppercase;
    letter-spacing: .5px; margin: 0 0 18px; color: #23202e; text-align: center;
}
.order-received__status { display: flex; align-items: center; gap: 8px; font-size: 16px; margin: 0 0 12px; }
.order-received__status-dot { width: 9px; height: 9px; border-radius: 50%; background: #d9a441; flex-shrink: 0; }
.order-received__status-dot.is-paid { background: #4a9e5c; }
.order-received__status-dot.is-wait { background: #d9534f; }
.order-received__next { color: #555; font-size: 14px; line-height: 1.55; margin: 0 0 18px; }
.order-received__row { display: flex; justify-content: space-between; gap: 14px; padding: 9px 0; border-bottom: 1px solid #ececec; font-size: 14px; margin: 0; }
.order-received__row:last-child { border-bottom: 0; }
.order-received__row:has(+ .order-received__row--total) { border-bottom: 0; }
.order-received__row > span { color: #8a8a8a; flex-shrink: 0; }
.order-received__row > b { color: #23202e; font-weight: 500; text-align: right; }
.order-received__row--total { border-top: 1px solid #ddd; border-bottom: 0; margin-top: 4px; padding-top: 13px; }
.order-received__row--total > span, .order-received__row--total > b { font-size: 16px; font-weight: 600; }
.order-received__items { margin: 0 0 6px; }
.order-received__item { display: flex; align-items: center; gap: 12px; padding: 8px 0; }
.order-received__item-img { width: 44px; height: 58px; flex-shrink: 0; overflow: hidden; border-radius: 6px; background: #eee; }
.order-received__item-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.order-received__item-name { flex: 1; font-size: 14px; color: #23202e; }
.order-received__item-qty { color: #8a8a8a; white-space: nowrap; }
.order-received__item-sum { white-space: nowrap; font-weight: 500; font-size: 14px; }
.order-received__actions { text-align: center; margin: 30px 0 0; display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.btn--ghost { background: transparent; border: 1px solid #23202e; color: #23202e; }
@media (max-width: 860px) {
    .order-received__card { grid-template-columns: 1fr; }
    .order-received__col + .order-received__col { border-left: 0; border-top: 1px solid #e7e7e7; }
    .order-received__h1 { font-size: 28px; }
}

/* ====================================================================
   Fix двойного скролла: theme.css задаёт body{overflow-x:hidden} + height:100%,
   из-за чего overflow-y становится auto и у body появляется собственная полоса
   прокрутки поверх штатной у html. Снимаем фикс. высоту — body растёт по контенту.
   ==================================================================== */
html, body { height: auto; min-height: 100%; }

/* Сортировка каталога — single-select dropdown (как остальные фильтры) */
.sarchive__filters-sort-option {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: 0;
    padding: 8px 0;
    font-family: inherit;
    font-size: 13px;
    line-height: 1.3;
    color: #272727;
    cursor: pointer;
    transition: color .15s ease;
}
.sarchive__filters-sort-option:hover { color: #000; }
.sarchive__filters-sort-option.is-active { font-weight: 600; }

/* Восстановление каталога после «Назад» (без bfcache): прячем страницу под
   белым лоадером, пока дозагружаются страницы ленты и ставится скролл —
   чтобы не мелькал верх и не было видно доскролла. */
html.lb-cat-restoring, html.lb-cat-restoring body { overflow: hidden !important; }
html.lb-cat-restoring::before {
    content: ""; position: fixed; inset: 0; background: #fff; z-index: 99998;
}
html.lb-cat-restoring::after {
    content: ""; position: fixed; top: 50%; left: 50%;
    width: 34px; height: 34px; margin: -17px 0 0 -17px;
    border: 3px solid #e7e7e7; border-top-color: #23202e; border-radius: 50%;
    animation: lbCatSpin .7s linear infinite; z-index: 99999;
}
@keyframes lbCatSpin { to { transform: rotate(360deg); } }

/* Фикс: кнопки количества в корзине были заблокированы легаси pointer-events:none */
.quantity .plus, .quantity .minus, .js-qty-plus, .js-qty-minus {
    pointer-events: auto !important;
    cursor: pointer;
}

/* Промокод: сообщения и применённое состояние */
.coupon-msg { margin-top: 8px; font-size: 13px; line-height: 1.4; }
.coupon-msg.is-error { color: #d9252b; }
.coupon-msg.is-success { color: #2e7d32; }
.coupon-msg .js-coupon-remove { background: none; border: 0; color: #d9252b; text-decoration: underline; cursor: pointer; padding: 0; font: inherit; }
.scart__coupon-applied { margin: 10px 0; font-size: 13px; color: #2e7d32; }
.scart__coupon-hint { margin: 10px 0; font-size: 13px; color: #8a8a8a; }
.scart__coupon-hint a { color: #23202e; text-decoration: underline; }

/* Промокод: текст ошибки вплотную к инпуту, по левому краю */
.scart__coupon .js-coupon-error { margin-top: 4px; text-align: left; padding-left: 0; }
.scart__coupon .form-coupon { margin-bottom: 0; }

/* Оформление заказа: первый заголовок на одном уровне с колонкой товара */
.scart .scart-h3.scart-h3--first { margin-top: 0 !important; line-height: 1; }

/* Каталог: сетка .sarchive__grid использует order (контент display:contents).
   Сентинел и лоадер автоподгрузки без order=0 оказывались ВЫШЕ товаров (order:2),
   из-за чего лоадер вылазил сверху и подгрузка ложно триггерилась. Ставим их после. */
.sarchive__infinite-sentinel, .sarchive__infinite-loader { order: 3; }


/* Скрытие элементов фильтров при AJAX-обновлении (бейджи / Сбросить) */
.sarchive__filters-reset.is-hidden,
.sarchive__mobile-trigger-badge.is-hidden { display: none !important; }

/* === FIX: клик по карточке с одним фото ===
   theme.css @media(min-width:998px) прячет .bprods__item-gallery-item-link
   и возвращает её только через :has(.swiper-slide:only-child).
   Карточка с 1 фото рендерится БЕЗ .swiper-slide → ссылка остаётся display:none
   и <img> перехватывает клик. Возвращаем оверлей-ссылку для .bprods-single. */
@media (min-width: 998px) {
    .bprods-single .bprods__item-gallery-item-link {
        display: block;
    }
}

/* === ГАЛЕРЕЯ ТОВАРА (моб. + планшет): Swiper со свайпом и квадратным пагинатором === */
.sproduct__mobile-swiper { display: none; }
@media (max-width: 1200px) {
    /* При активном swiper прячем статичное фото и подсказку-палочку */
    .sproduct__main.is-mobile-swiper .sproduct__main-link { display: none; }
    .sproduct__images.has-thumbs .sproduct__main.is-mobile-swiper::after { display: none; }
    /* Когда работает свайпер с квадратным пагинатором — боковая/нижняя мини-галерея
       превью не нужна (была видна строкой снизу на 481–768px, напр. iPad mini). */
    .sproduct__images:has(.sproduct__main.is-mobile-swiper) .pg-thumbs-panel { display: none; }
    .sproduct__main .sproduct__mobile-swiper {
        display: block;
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
    }
    .sproduct__mobile-swiper .swiper-wrapper { height: 100%; }
    .sproduct__mobile-swiper .swiper-slide {
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
    }
    .sproduct__mobile-swiper .swiper-slide img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }
    /* Квадратный пагинатор снизу */
    .sproduct__mobile-swiper .swiper-pagination {
        position: absolute;
        bottom: 12px;
        left: 0; right: 0;
        display: flex;
        justify-content: center;
        gap: 6px;
        z-index: 3;
    }
    .sproduct__mobile-swiper .swiper-pagination-bullet {
        width: 8px; height: 8px;
        border-radius: 0 !important;
        background: rgba(255,255,255,.55) !important;
        opacity: 1;
        margin: 0 !important;
        transition: background .2s, transform .2s;
    }
    .sproduct__mobile-swiper .swiper-pagination-bullet-active {
        background: #fff !important;
        transform: scale(1.15);
    }
}


/* ============================================================
   PWA Этап 2: тач-фидбек (нативное ощущение касаний).
   Откат: удалить весь блок между маркерами TOUCH-FEEDBACK.
   ============================================================ */
/* >>> TOUCH-FEEDBACK START >>> */

/* Убираем дефолтную чёрную подсветку тапа и серое выделение текста на
   интерактивных элементах; ускоряем отклик (нет 300ms задержки). */
a, button, [role="button"], input[type="submit"], input[type="button"],
.btn, .bprods__item, .lb-botnav__item, .single_add_to_cart_button,
.sproduct__bottom button, .header__link, .js-qty-plus, .js-qty-minus,
.sarchive__filters-toggle, .sarchive__filters-apply, .acc-popup__close,
.acc-popup__back, .acc-oi__track-btn, .track-popup__num-btn {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

/* Базовый тач-отклик: лёгкое «нажатие» (scale + затемнение) на касании.
   Привязано к мобильному вьюпорту (как боттом-нав, breakpoint 768px). */
@media (max-width: 768px) {
    .btn, .btn-primary, .btn-checkout, .single_add_to_cart_button,
    .sproduct__bottom button, .sarchive__filters-apply,
    .acc-oi__pay-btn, .track-popup__link {
        transition: transform .12s ease, opacity .12s ease, background-color .2s ease, color .2s ease;
    }
    .btn:active, .btn-primary:active, .btn-checkout:active,
    .single_add_to_cart_button:active, .sproduct__bottom button:active,
    .sarchive__filters-apply:active, .acc-oi__pay-btn:active,
    .track-popup__link:active {
        transform: scale(.97);
        opacity: .9;
    }

    /* Боттом-нав: нажатие пунктов */
    .lb-botnav__item {
        transition: transform .12s ease, color .15s ease;
    }
    .lb-botnav__item:active {
        transform: scale(.92);
    }
    .lb-botnav__item:active .lb-botnav__ico {
        color: #d4a542;
    }

    /* Иконки хедера (поиск/избранное/корзина/кабинет) */
    .header__link:active, .header__icon:active, .js-header-link:active {
        transform: scale(.9);
        opacity: .8;
    }

    /* Карточки товара и категорий: мягкое «придавливание» */
    .bprods__item, .bcats__item {
        transition: transform .14s ease;
    }
    .bprods__item:active, .bcats__item:active {
        transform: scale(.985);
    }

    /* Кнопки количества в корзине */
    .js-qty-plus:active, .js-qty-minus:active {
        transform: scale(.85);
        opacity: .7;
    }

    /* Текстовые/ghost-кнопки и ссылки-действия */
    .acc-oi__track-btn:active, .track-popup__num-btn:active,
    .acc-popup__close:active, .acc-popup__back:active,
    .btn--ghost:active, .lb-forward:active {
        opacity: .6;
    }
}

/* Уважение к настройке «уменьшить движение» */
@media (prefers-reduced-motion: reduce) {
    .btn:active, .btn-primary:active, .btn-checkout:active,
    .single_add_to_cart_button:active, .sproduct__bottom button:active,
    .sarchive__filters-apply:active, .acc-oi__pay-btn:active,
        .track-popup__link:active, .lb-botnav__item:active,
        .header__link:active, .bprods__item:active, .bcats__item:active,
        .js-qty-plus:active, .js-qty-minus:active {
        transform: none;
    }
}
/* <<< TOUCH-FEEDBACK END <<< */


/* ============================================================
   PWA Этап 3: плавные переходы между страницами.
   View Transitions API (нативный cross-fade) + fade-in fallback.
   Откат: удалить весь блок между маркерами PAGE-TRANSITION.
   ============================================================ */
/* >>> PAGE-TRANSITION START >>> */

/* Включаем кросс-страничные переходы (MPA). Браузеры без поддержки
   просто игнорируют это правило — деградация мягкая. */
@view-transition {
    navigation: auto;
}

/* Длительность и кривая кросс-фейда корня страницы. */
::view-transition-old(root),
::view-transition-new(root) {
    animation-duration: .32s;
    animation-timing-function: cubic-bezier(.4, 0, .2, 1);
}

/* Header и боттом-нав не должны «мигать» вместе со страницей —
   закрепляем их как самостоятельные слои перехода (плавно остаются на месте). */
.lb-header {
    view-transition-name: lb-header;
}
@media (max-width: 768px) {
    .lb-botnav {
        view-transition-name: lb-botnav;
    }
}

/* Fallback для браузеров без View Transitions: лёгкое проявление
   контента при загрузке страницы. На странице с VT этот fade
   практически незаметен (VT отрабатывает раньше). */
@keyframes lb-page-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}
main {
    animation: lb-page-fade-in .28s ease both;
}

/* Уважение к «уменьшить движение»: отключаем все переходы страниц. */
@media (prefers-reduced-motion: reduce) {
    ::view-transition-group(*),
    ::view-transition-old(*),
    ::view-transition-new(*) {
        animation: none !important;
    }
    main {
        animation: none;
    }
}
/* <<< PAGE-TRANSITION END <<< */


/* ============================================================
   PWA Этап 5: sticky buy-bar на странице товара (моб.).
   Появляется при скролле, когда основная кнопка ушла за экран.
   Откат: удалить блок BUYBAR + блок в product.php + JS-обработчик.
   ============================================================ */
/* >>> BUYBAR START >>> */

.sproduct__buybar { display: none; }

@media (max-width: 768px) {
    .sproduct__buybar {
        display: flex;
        align-items: center;
        gap: 12px;
        position: fixed;
        left: 0; right: 0;
        /* над боттом-навом (58px) + системный safe-area */
        bottom: calc(58px + env(safe-area-inset-bottom, 0px));
        z-index: 88;
        padding: 10px 14px;
        background: #fff;
        border-top: 1px solid #ECECEC;
        box-shadow: 0 -2px 14px rgba(0,0,0,.07);
        /* скрыт: уезжает вниз и прозрачен, пока не появится при скролле */
        transform: translateY(120%);
        opacity: 0;
        visibility: hidden;
        transition: transform .28s cubic-bezier(.4,0,.2,1), opacity .28s ease, visibility .28s ease;
    }
    .sproduct__buybar.is-visible {
        transform: translateY(0);
        opacity: 1;
        visibility: visible;
    }
    .sproduct__buybar-info {
        display: flex;
        flex-direction: column;
        gap: 2px;
        min-width: 0;
        flex: 1 1 auto;
    }
    .sproduct__buybar-title {
        font-size: 12px;
        color: #8b8b8b;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .sproduct__buybar-price {
        font-size: 16px;
        font-weight: 600;
        color: #23202E;
    }
    .sproduct__buybar-btn {
        flex: 0 0 auto;
        padding: 12px 28px;
        white-space: nowrap;
    }
    .sproduct__buybar-btn:active {
        transform: scale(.97);
        opacity: .9;
    }

    /* На странице товара резервируем место под бар, чтобы футер не залезал под него.
       Боттом-нав (80px) + высота бара (~72px). */
    body.has-buybar .footer {
        padding-bottom: calc(152px + env(safe-area-inset-bottom, 0px)) !important;
    }

    /* кратко подсветить блок размеров, если не выбран */
    .sproduct__sizes.is-highlight {
        animation: lb-size-pulse 1s ease;
        border-radius: 8px;
    }
    @keyframes lb-size-pulse {
        0%, 100% { box-shadow: 0 0 0 0 rgba(212,165,66,0); }
        30%      { box-shadow: 0 0 0 3px rgba(212,165,66,.35); }
    }
}

@media (prefers-reduced-motion: reduce) {
    .sproduct__buybar { transition: opacity .2s ease, visibility .2s ease; }
    .sproduct__buybar-btn:active { transform: none; }
    .sproduct__sizes.is-highlight { animation: none; }
}
/* <<< BUYBAR END <<< */


/* ============================================================
   Фикс CLS галереи товара (моб.): убрать мигание пагинации
   («полоска → квадратики») и скачок фото при инициализации Swiper.
   Откат: удалить блок между маркерами GALLERY-CLS.
   ============================================================ */
/* >>> GALLERY-CLS START >>> */
@media (max-width: 1200px) {
    /* Контейнер главного фото держит финальный размер сразу (до Swiper),
       чтобы фото не «прыгало» при инициализации. */
    .sproduct__images .sproduct__main {
        position: relative;
        overflow: hidden;
    }

    /* Мобильный свайпер занимает весь контейнер с самого начала. */
    .sproduct__main .sproduct__mobile-swiper,
    .sproduct__mobile-swiper .swiper-wrapper,
    .sproduct__mobile-swiper .swiper-slide {
        height: 100%;
    }

    /* Главное (статичное) фото на мобиле должно иметь ТЕ ЖЕ размеры, что слайд
       свайпера (height:100% + cover), иначе при подмене статичного фото на свайпер
       картинка прыгает (526px height:auto → 468px cover). */
    .sproduct__images .sproduct__main > .sproduct__main-link {
        position: absolute;
        inset: 0;
        display: block;
    }
    .sproduct__images .sproduct__main img.js-sproduct-main-img {
        height: 100% !important;
        object-fit: cover;
    }

    /* Пагинация скрыта по умолчанию; показываем только когда галерея помечена
       классом is-gallery-ready (выставляется JS после полной инициализации Swiper).
       Это убирает «полоску» (пустой/неготовый контейнер пагинации). */
    .sproduct__images .swiper-pagination,
    .sproduct__pagination {
        visibility: hidden;
    }
    .sproduct__images.is-gallery-ready .swiper-pagination,
    .sproduct__images.is-gallery-ready .sproduct__pagination {
        visibility: visible;
    }

    /* Буллеты не должны «расти» при появлении: активный сразу нужного размера,
       transition только для смены активного буллета пользователем (не на старте). */
    .sproduct__images:not(.is-gallery-ready) .swiper-pagination-bullet {
        transition: none !important;
    }

    /* Убираем CSS-заглушку «линию» (::after 36×4px), которая показывалась до Swiper
       и создавала эффект «полоска → квадратики». Пагинацию рисует только Swiper. */
    .sproduct__images.has-thumbs .sproduct__main::after,
    .sproduct__images.has-thumbs .sproduct__main.is-mobile-swiper::after {
        display: none !important;
        content: none !important;
    }
}
/* <<< GALLERY-CLS END <<< */


/* ============================================================
   PWA Этап 5: skeleton-загрузчики каталога (как у Ozon).
   При AJAX-смене фильтров/страниц поверх товаров показываются
   серые карточки-плейсхолдеры с шиммером. JS вставляет слой при
   is-loading (catalog.php), CSS рисует вид.
   Откат: удалить блок SKELETON + JS-блок в catalog.php.
   ============================================================ */
/* >>> SKELETON START >>> */

/* Шиммер-волна (светлый блик слева направо). */
@keyframes lb-shimmer {
    0%   { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

/* Контейнер товаров при загрузке: делаем относительным для оверлея
   и притушаем реальные карточки. */
.js-sarchive-items.is-loading {
    position: relative;
    min-height: 200px;
}
.js-sarchive-items.is-loading > .bprods__item {
    opacity: .25;
    pointer-events: none;
    transition: opacity .2s ease;
}

/* Слой скелетонов — повторяет grid-сетку каталога. */
.lb-skeleton-layer {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px 12px;
    z-index: 2;
}
@media (max-width: 768px) {
    .lb-skeleton-layer { grid-template-columns: 1fr 1fr; }
}

/* Карточка-скелетон. */
.lb-skel-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.lb-skel-shape {
    background: #ececec;
    background-image: linear-gradient(90deg, #ececec 0%, #f6f6f6 50%, #ececec 100%);
    background-size: 200% 100%;
    animation: lb-shimmer 1.4s ease-in-out infinite;
    border-radius: 4px;
}
.lb-skel-img   { width: 100%; aspect-ratio: 2 / 3; border-radius: 6px; }
.lb-skel-line  { height: 12px; }
.lb-skel-line--name  { width: 85%; }
.lb-skel-line--price { width: 45%; height: 14px; }

@media (prefers-reduced-motion: reduce) {
    .lb-skel-shape { animation: none; }
}
/* <<< SKELETON END <<< */


/* ============================================================
   A11y: разрешён зум (убран maximum-scale). Чтобы iOS не зумил
   страницу при фокусе на поле поиска (<16px) — поднимаем шрифт
   до 16px только на мобиле. Откат: удалить блок INPUT-ZOOM-FIX.
   ============================================================ */
/* >>> INPUT-ZOOM-FIX START >>> */
@media (max-width: 768px) {
    .lb-header__searchform .js-search, .lb-header__searchform input { font-size: 16px; }
}
/* <<< INPUT-ZOOM-FIX END <<< */

/* ===== Premium share popup (товар) ===== */
.share-popup { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 20px; opacity: 0; visibility: hidden; transition: opacity .28s ease, visibility .28s ease; }
.share-popup.is-open { opacity: 1; visibility: visible; }
.share-popup[hidden] { display: none; }
.share-popup__overlay { position: absolute; inset: 0; background: rgba(20,18,16,.55); }
.share-popup__box { position: relative; z-index: 1; width: 100%; max-width: 380px; background: #fff; border-radius: 16px; padding: 28px 24px 24px; box-shadow: 0 24px 60px rgba(0,0,0,.25); transform: translateY(14px) scale(.98); transition: transform .28s ease; }
.share-popup.is-open .share-popup__box { transform: none; }
.share-popup__close { position: absolute; top: 12px; right: 14px; width: 32px; height: 32px; border: 0; background: none; font-size: 26px; line-height: 1; color: #aaa; cursor: pointer; transition: color .2s; }
.share-popup__close:hover { color: #272727; }
.share-popup__title { font-family: var(--ff-sec); font-size: 22px; font-weight: 400; text-align: center; margin: 0 0 18px; color: #272727; }
.share-popup__product { display: flex; align-items: center; gap: 14px; padding: 12px; background: #f7f5f2; border-radius: 12px; margin-bottom: 22px; }
.share-popup__thumb { width: 52px; height: 64px; object-fit: cover; border-radius: 8px; flex: 0 0 auto; }
.share-popup__pinfo { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.share-popup__pname { font-size: 14px; color: #272727; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.share-popup__pprice { font-size: 14px; color: #8b6a2a; font-weight: 600; }
.share-popup__targets { display: flex; justify-content: center; gap: 30px; margin-bottom: 22px; }
.share-popup__target { display: flex; flex-direction: column; align-items: center; gap: 8px; text-decoration: none; cursor: pointer; }
.share-popup__ico { width: 52px; height: 52px; border-radius: 14px; overflow: hidden; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 12px rgba(0,0,0,.10); transition: transform .18s ease, box-shadow .18s ease; }
.share-popup__ico img { width: 100%; height: 100%; object-fit: cover; display: block; }
.share-popup__target:hover .share-popup__ico { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0,0,0,.18); }
.share-popup__label { font-size: 12px; color: #555; }
.share-popup__copy { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.share-popup__copy-label { font-size: 12px; color: #999; }
.share-popup__copy-btn { position: relative; display: inline-flex; align-items: center; gap: 8px; max-width: 100%; background: #f7f5f2; border: none; border-radius: 10px; padding: 10px 14px; cursor: pointer; font-family: var(--ff); color: #555; transition: color .2s, background .2s; }
.share-popup__copy-value { max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.share-popup__copy-icon { position: relative; display: inline-flex; width: 16px; height: 16px; flex: 0 0 auto; color: #a0a0a0; transition: color .2s; }
.share-popup__copy-icon svg { position: absolute; inset: 0; transition: opacity .2s ease, transform .2s ease; }
.share-popup__ico-check { opacity: 0; transform: scale(.6); color: #d4a542; }
.share-popup__copy-btn:hover .share-popup__copy-value { color: #d4a542; }
.share-popup__copy-btn:hover .share-popup__copy-icon { color: #d4a542; }
.share-popup__copy-btn.is-copied .share-popup__ico-copy { opacity: 0; transform: scale(.6); }
.share-popup__copy-btn.is-copied .share-popup__ico-check { opacity: 1; transform: scale(1); }
.share-popup__copy-btn.is-copied .share-popup__copy-icon { color: #d4a542; }
.share-popup__copy-btn.is-copied .share-popup__copy-value { color: #d4a542; }
@media (max-width: 480px) { .share-popup__box { max-width: 340px; } }


/* Компактный рейтинг у заголовка товара (кликабельный → секция отзывов) */
.sproduct__rating { display: inline-flex; align-items: center; gap: 8px; margin: 2px 0 16px; text-decoration: none; }
.sproduct__rating-stars { display: inline-flex; gap: 2px; line-height: 0; }
.sproduct__rating-val { font-size: 14px; font-weight: 600; color: #272727; }
.sproduct__rating-count { font-size: 13px; color: #8b6a2a; }
.sproduct__rating:hover .sproduct__rating-count { text-decoration: underline; }

/* Мои отзывы (личный кабинет) */
.my-reviews { display: flex; flex-direction: column; gap: 4px; }
.my-review { display: flex; gap: 16px; padding: 18px 0; border-bottom: 1px solid #ece8e1; }
.my-review:last-child { border-bottom: 0; }
.my-review__product { flex: 0 0 auto; width: 120px; display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: #272727; }
.my-review__thumb { width: 120px; height: 150px; object-fit: cover; border-radius: 8px; background: #f4f1ec; display: block; }
.my-review__pname { font-size: 13px; line-height: 1.3; }
.my-review__product:hover .my-review__pname { color: #8b6a2a; }
.my-review__body { flex: 1; min-width: 0; }
.my-review__meta { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; flex-wrap: wrap; }
.my-review__stars { display: inline-flex; align-items: center; gap: 2px; line-height: 0; }
.my-review__date { font-size: 12px; color: #9a9a9a; }
.my-review__status { font-size: 11px; color: #c08a17; background: #f7efdc; padding: 2px 8px; border-radius: 10px; }
.my-review__text { font-size: 14px; line-height: 1.5; color: #444; margin: 0; }
.lk__empty { color: #666; padding: 20px 0; }
@media (max-width: 560px) {
  .my-review { flex-direction: column; gap: 12px; }
  .my-review__product { flex-direction: row; align-items: center; width: auto; }
  .my-review__thumb { width: 64px; height: 80px; }
}

/* ===== Премиальная модалка отзыва ===== */
.rv-modal { position: fixed; inset: 0; z-index: 10050; display: flex; align-items: center; justify-content: center; padding: 20px; opacity: 0; visibility: hidden; transition: opacity .28s ease, visibility .28s ease; }
.rv-modal.is-open { opacity: 1; visibility: visible; }
.rv-modal[hidden] { display: none; }
.rv-modal__overlay { position: absolute; inset: 0; background: rgba(20,18,16,.6); }
.rv-modal__box { position: relative; z-index: 1; width: 100%; max-width: 460px; max-height: 90vh; overflow-y: auto; background: #fff; border-radius: 18px; padding: 30px 28px 26px; box-shadow: 0 24px 70px rgba(0,0,0,.3); transform: translateY(14px) scale(.98); transition: transform .28s ease; }
.rv-modal.is-open .rv-modal__box { transform: none; }
.rv-modal__close { position: absolute; top: 14px; right: 16px; width: 34px; height: 34px; border: 0; background: none; font-size: 28px; line-height: 1; color: #b0b0b0; cursor: pointer; transition: color .2s; }
.rv-modal__close:hover { color: #272727; }
.rv-modal__title { font-family: var(--ff-sec); font-size: 24px; font-weight: 400; text-align: center; margin: 0 0 16px; color: #272727; }
.rv-modal__product { display: flex; align-items: center; gap: 12px; padding: 10px 12px; background: #f7f5f2; border-radius: 12px; margin-bottom: 20px; }
.rv-modal__thumb { width: 46px; height: 56px; object-fit: cover; border-radius: 8px; flex: 0 0 auto; }
.rv-modal__pname { font-size: 14px; font-weight: 500; color: #272727; }
.rv-modal__form { display: flex; flex-direction: column; gap: 16px; }
.rv-modal__rate { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.rv-modal__stars { display: inline-flex; gap: 4px; }
.rv-modal__stars button { background: none; border: 0; padding: 2px; cursor: pointer; line-height: 0; transition: transform .12s ease; }
.rv-modal__stars button:hover { transform: scale(1.12); }
.rv-modal__stars button.is-off svg { fill: none; stroke: #d8d4cd; }
.rv-modal__field { display: flex; flex-direction: column; gap: 6px; }
.rv-modal__label { font-size: 13px; font-weight: 600; color: #21212d; letter-spacing: .02em; }
.rv-modal__label em { color: #c0392b; font-style: normal; }
.rv-modal__label--pros { color: #2e8b57; }
.rv-modal__label--cons { color: #c0392b; }
.rv-modal__field textarea { border: 1px solid #e5e0d8; border-radius: 10px; padding: 10px 12px; font-size: 14px; font-family: var(--ff); resize: vertical; min-height: 44px; transition: border-color .2s; }
.rv-modal__field textarea:focus { border-color: #272727; outline: none; }
.rv-modal__photos { display: flex; flex-direction: column; gap: 8px; }
.rv-modal__photos-grid { display: flex; flex-wrap: wrap; gap: 10px; }
.rv-modal__photo, .rv-modal__photo-add { width: 70px; height: 70px; border-radius: 10px; overflow: hidden; flex: 0 0 auto; }
.rv-modal__photo { position: relative; }
.rv-modal__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rv-modal__photo-del { position: absolute; top: 3px; right: 3px; width: 20px; height: 20px; border: 0; border-radius: 50%; background: rgba(0,0,0,.6); color: #fff; font-size: 15px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.rv-modal__photo-add { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; border: 1.5px dashed #d2cdc4; background: #faf9f7; color: #999; font-size: 11px; cursor: pointer; transition: border-color .2s, color .2s; }
.rv-modal__photo-add:hover { border-color: #d4a542; color: #d4a542; }
.rv-modal__error { color: #c0392b; font-size: 13px; min-height: 16px; }
.rv-modal__success { color: #2e8b57; font-size: 14px; font-weight: 500; }
.rv-modal__submit { height: 48px; border: 0; border-radius: 12px; background: #272727; color: #fff; font-size: 14px; font-weight: 500; cursor: pointer; transition: background .2s; }
.rv-modal__submit:hover { background: #000; }
.rv-modal__submit:disabled { opacity: .6; cursor: default; }
.acc-oi__item-review { margin: -4px 0 14px; }
.acc-oi__item-review .btn-review { width: 100%; }
@media (max-width: 480px) { .rv-modal__box { padding: 26px 18px 22px; border-radius: 16px; } }


/* ===== Достоинства/недостатки/фото в карточке отзыва ===== */
.rv-extra { font-size: 13px; line-height: 1.5; margin: 6px 0 0; color: #444; }
.rv-extra--pros b { color: #2e8b57; }
.rv-extra--cons b { color: #c0392b; }
.rv-extra__photos { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.rv-extra__photo { width: 72px; height: 72px; border-radius: 8px; overflow: hidden; display: block; }
.rv-extra__photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .2s ease; }
.rv-extra__photo:hover img { transform: scale(1.05); }


/* Доработки (24.06): фильтры/отзывы/ЛК */
body.mobile-filters-open .lb-botnav { display: none !important; }
@media (max-width: 768px) {
  .sproduct-reviews > .container { padding: 28px 18px; }
}
.my-reviews__more { display: block; margin: 22px auto 0; padding: 0 28px; height: 46px; background: #fff; border: 1px solid #d8d4cd; border-radius: 12px; color: #21212D; font-size: 13px; letter-spacing: .04em; cursor: pointer; transition: border-color .2s, color .2s; }
.my-reviews__more:hover { border-color: #d4a542; color: #d4a542; }

/* Лок прокрутки фона при открытой модалке отзыва (html — реальный скроллер) */
html.rv-modal-open, body.rv-modal-open { overflow: hidden !important; }

/* Лок прокрутки фона для всех модальных попапов (html — реальный скроллер, body-лока мало) */
html:has(body.acc-no-scroll),
html:has(.return-popup.is-open),
html:has(.share-popup.is-open),
body:has(.return-popup.is-open),
body:has(.share-popup.is-open) { overflow: hidden !important; }

/* ============================================================
   Install-баннер PWA (приглашение «Установить приложение»).
   Появляется на Android Chrome при beforeinstallprompt. JS — в footer.php.
   ============================================================ */
.lb-install {
    position: fixed; z-index: 95;
    left: 50%; transform: translateX(-50%) translateY(20px);
    bottom: calc(64px + env(safe-area-inset-bottom, 0px) + 12px);
    width: calc(100% - 24px); max-width: 440px;
    display: flex; align-items: center; gap: 13px;
    background: #1a1714; color: #f3efe8;
    border: 1px solid #d4a542; border-radius: 16px;
    padding: 12px 14px;
    box-shadow: 0 10px 34px rgba(0, 0, 0, .34);
    opacity: 0; pointer-events: none;
    transition: opacity .3s ease, transform .3s ease;
}
.lb-install.is-visible { opacity: 1; transform: translateX(-50%) translateY(0); pointer-events: auto; }
.lb-install__icon { width: 46px; height: 46px; border-radius: 11px; flex-shrink: 0; }
.lb-install__text { flex: 1; min-width: 0; }
.lb-install__title { font-family: var(--ff-sec, Georgia, serif); font-size: 15px; color: #fff; line-height: 1.2; }
.lb-install__sub { font-size: 12px; color: #c7bfb4; line-height: 1.4; margin-top: 2px; }
.lb-install__btn {
    flex-shrink: 0; padding: 9px 18px; background: #d4a542; color: #1a1714;
    border: 0; border-radius: 10px; font-size: 13px; font-weight: 600;
    cursor: pointer; text-transform: uppercase; letter-spacing: .3px; white-space: nowrap;
}
.lb-install__btn:hover { background: #e0b24f; }
.lb-install__close {
    flex-shrink: 0; background: none; border: 0; color: #8a8378;
    font-size: 24px; line-height: 1; cursor: pointer; padding: 0 2px;
}
.lb-install__close:hover { color: #d4a542; }
@media (min-width: 769px) {
    .lb-install { left: auto; right: 20px; bottom: 20px; transform: translateY(20px); }
    .lb-install.is-visible { transform: translateY(0); }
}
/* iOS-вариант: инструкция с иконкой Поделиться (без кнопки «Установить») */
.lb-install__share {
    display: inline-block; width: 13px; height: 15px;
    vertical-align: -3px; color: #d4a542; margin: 0 1px;
}
.lb-install--ios .lb-install__sub { line-height: 1.5; }
