/* ============================================================
   СИЛУЭТ — точечные правки переноса.
   styles.css остаётся нетронутым эталоном вёрстки (1:1).
   Здесь только исправления дефектов рендера из чистого хендоффа
   и стыковка с разметкой WooCommerce, каждая — с пояснением.
   ============================================================ */

/* Продакшн-раскладка. В хендоффе .page был «листом» 1440px с тенью и
   отступом 40px на бежевой канве (#D9D3C8) — это подача дизайн-превью
   (макет-карточка на подложке), а не боевой сайт. Для продакшна: фон-крем
   на всю ширину, контент по центру до 1440, без тени и внешних отступов. */
body { background: var(--bg-card); color: var(--ink); }
/* Страница на всю ширину: фоны, границы и разделители — 100vw. */
.page { width: 100%; margin: 0; box-shadow: none; }
/* Иконки наследуют цвет через currentColor → реслинятся токеном --ink. */

/* ============================================================
   Контейнер: фон и границы блока — во всю ширину экрана (блок full-width),
   а контент внутри — в центрированном контейнере (макс 1440). Реализация:
   горизонтальный паддинг блока растёт от --pad-x до края контейнера, поэтому
   фон/бордер тянутся до краёв экрана, а текст/сетки — не шире 1440.
   ============================================================ */
.section, .px, .header, .trust, .about, .contacts, .newsletter,
.checkout-header, .values, .footer, .footer--slim, .hero, .lead-cta {
	padding-left: max(var(--pad-x), calc((100% - 1440px) / 2));
	padding-right: max(var(--pad-x), calc((100% - 1440px) / 2));
}
.banner, .stats-band {
	margin-left: max(var(--pad-x), calc((100% - 1440px) / 2));
	margin-right: max(var(--pad-x), calc((100% - 1440px) / 2));
}

/* Hero теперь в общем контейнере (как секции) → текст выровнен по левому краю
   контента: убираем левый отступ у .hero__text (по правке). */
.hero__text { padding-left: 0; }

/* Категории: отступ подписи от фото. */
.cat-tile__img { margin-bottom: 15px; }

/* Коллаж «О бренде»: колонки должны ужиматься ниже контента. Иначе big
   (aspect-ratio 3/4.4, span 2 ряда) по высоте раздувает 1-ю колонку до
   min-content и коллаж вылезает за экран на планшете/мобиле. */
.about__collage { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }

/* Десктоп: высота hero = экран минус топбар и шапка; фиксы переполнения. */
@media (min-width: 1025px) {
	.hero { height: calc(100vh - var(--chrome-h, 118px)); min-height: 520px; }
	.hero__media { min-height: 0; }
	.about { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); }
	.about__collage { min-width: 0; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.pdp { grid-template-columns: minmax(0, 1fr) 520px; }
}

/* ============================================================
   Каталог: липкая шапка + липкий фильтр, рабочая цена и тумблер,
   карточка с «+»→«В корзину». Переиспользуемая база для портфолио.
   ============================================================ */

/* Дефолты JS-переменных, чтобы не было скачка раскладки до загрузки JS. */
:root { --header-h: 82px; --toolbar-h: 66px; }

/* Шапка липкая: топбар уходит за экран, шапка прижата к верху. */
.header { position: sticky; top: 0; z-index: 50; background: var(--bg-card); }

/* Сетка каталога — крупнее гэп (по правке). */
.product-grid { gap: 60px 35px; }

/* --- Карточка: «+» в правом нижнем углу фото, по ховеру → «В корзину» --- */
.product-card__media { display: block; position: relative; aspect-ratio: 3/4; }
.product-card__media-link { position: absolute; inset: 0; display: block; z-index: 1; }
.product-card__badge { z-index: 2; }
.product-card__fav { z-index: 3; }
.product-card__cart {
	position: absolute; right: 12px; bottom: 12px; z-index: 3;
	display: inline-flex; align-items: center; height: 42px; padding: 0;
	border-radius: 21px; overflow: hidden; white-space: nowrap;
	background: var(--bg-card); color: var(--ink); border: 1px solid var(--line);
	box-shadow: 0 6px 20px rgba(32, 29, 24, .16); cursor: pointer;
	transition: background .25s, color .25s, border-color .25s, box-shadow .25s;
}
.product-card__cart-ic { position: relative; flex: 0 0 42px; width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; }
.product-card__cart-ic svg { position: absolute; transition: opacity .25s ease, transform .38s cubic-bezier(.34, 1.56, .64, 1); }
.product-card__cart-ic .ic-check { opacity: 0; transform: scale(.3) rotate(-40deg); }
.product-card__cart.is-added .ic-plus { opacity: 0; transform: scale(.3) rotate(40deg); }
.product-card__cart.is-added .ic-check { opacity: 1; transform: scale(1) rotate(0); }
.product-card__cart-tx {
	max-width: 0; opacity: 0; padding-right: 0;
	font-size: 12px; letter-spacing: .08em; text-transform: uppercase;
	transition: max-width .32s cubic-bezier(.4, 0, .2, 1), opacity .22s ease .04s, padding .32s cubic-bezier(.4, 0, .2, 1);
}
/* Ширина по контенту: раскрываем текст через max-width (без «пустоты справа») */
.product-card:hover .product-card__cart-tx,
.product-card__cart.is-added .product-card__cart-tx { max-width: 160px; opacity: 1; padding-right: 18px; }
.product-card:hover .product-card__cart { background: var(--ink); color: var(--bg-card); border-color: var(--ink); }

/* --- Фильтр: верх по карточкам (сдвиг на высоту тулбара) + липкость под шапкой --- */
@media (min-width: 1025px) {
	.filters { position: sticky; top: calc(var(--header-h, 82px) + 20px); align-self: start; margin-top: var(--toolbar-h, 66px); }
}

/* Цена: поля ручного ввода «от / до». */
.price-inputs { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.price-input { flex: 1; display: flex; align-items: center; gap: 6px; border: 1px solid var(--border-ctl); padding: 9px 11px; }
.price-input span { font-size: 12px; color: var(--text-soft); flex: 0 0 auto; }
.price-input input { width: 100%; min-width: 0; border: none; background: none; font: inherit; font-size: 13px; color: var(--ink); outline: none; padding: 0; -moz-appearance: textfield; }
.price-input input::-webkit-outer-spin-button, .price-input input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Слайдер цены — рабочие ручки (позиции задаёт JS). */
.price-slider { margin: 8px 7px 2px; }
.price-slider__knob { cursor: grab; touch-action: none; z-index: 2; }
.price-slider__knob:active { cursor: grabbing; }
.price-slider__knob:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }

/* Тумблер «Только в наличии» — аккуратный переключатель (был деформирован). */
.toggle { position: relative; display: inline-flex; align-items: center; gap: 11px; cursor: pointer; user-select: none; font-size: 14px; color: var(--ink); }
.toggle input { position: absolute; opacity: 0; width: 0; height: 0; margin: 0; }
.toggle__knob { position: relative; width: 40px; height: 22px; border-radius: 999px; background: #D8CFBF; transition: background .2s; flex: 0 0 auto; box-shadow: none; }
.toggle__knob::after { content: ""; position: absolute; top: 2px; left: 2px; width: 18px; height: 18px; border-radius: 50%; background: var(--bg-card); box-shadow: 0 1px 3px rgba(32, 29, 24, .25); transition: transform .22s cubic-bezier(.4, 0, .2, 1); }
.toggle input:checked ~ .toggle__knob { background: var(--ink); }
.toggle input:checked ~ .toggle__knob::after { transform: translateX(18px); }

/* Кнопки формы фильтра. */
.filter-actions { margin-top: 26px; display: flex; flex-direction: column; gap: 12px; }
.filter-reset { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--text-soft); text-align: center; }
.filter-reset:hover { color: var(--ink); }

/* Поле количества в корзине выглядит как счётчик-число из макета
   (в вёрстке это был <span>; на реальном магазине нужен <input>). */
.qty .qty-num {
	width: 34px;
	text-align: center;
	border: none;
	background: none;
	font: inherit;
	color: inherit;
	padding: 0;
	-moz-appearance: textfield;
}
.qty .qty-num::-webkit-outer-spin-button,
.qty .qty-num::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* --- Поля и элементы WooCommerce в стиле макета --- */
.woocommerce form .form-row { margin: 0 0 14px; }
.woocommerce-checkout .input-text,
.woocommerce-checkout textarea,
.woocommerce-checkout select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.select2-container .select2-selection {
	width: 100%;
	border: 1px solid var(--border-ctl);
	background: var(--bg-card);
	padding: 13px 15px;
	font-family: 'Jost', sans-serif;
	font-size: 14px;
	color: var(--ink);
	border-radius: 0;
	outline: none;
	box-sizing: border-box;
}
.woocommerce-checkout label { font-size: 13px; color: var(--text-muted); }
.woocommerce-checkout h3 { font-family: 'Cormorant Garamond', serif; font-weight: 400; font-size: 22px; margin: 0 0 14px; }
.woocommerce-checkout #payment { background: transparent; }
.woocommerce-checkout #payment ul.payment_methods { border: 1px solid var(--line); padding: 14px; list-style: none; margin: 0 0 16px; }
.woocommerce-checkout #payment ul.payment_methods li { margin-bottom: 8px; font-size: 14px; }
.woocommerce-checkout #payment div.payment_box { background: var(--bg-cream-2); font-size: 13px; color: var(--text-muted); padding: 12px 14px; }
.woocommerce-checkout .woocommerce-checkout-review-order-table { width: 100%; border-collapse: collapse; margin-bottom: 18px; font-size: 14px; }
.woocommerce-checkout .woocommerce-checkout-review-order-table th,
.woocommerce-checkout .woocommerce-checkout-review-order-table td { padding: 10px 0; border-bottom: 1px solid var(--line-soft); text-align: left; }
.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-total,
.woocommerce-checkout .woocommerce-checkout-review-order-table th:last-child { text-align: right; }
.woocommerce-checkout #place_order {
	display: block; width: 100%; background: var(--accent); color: var(--bg-card);
	border: none; padding: 16px; font-family: 'Jost', sans-serif; font-size: 13px;
	letter-spacing: .1em; text-transform: uppercase; cursor: pointer; margin-top: 8px;
}
.woocommerce-checkout #place_order:hover { background: var(--accent-hover); }

/* --- Выдвижные панели (drawers): корзина, поиск, кабинет --- */
.drawer-overlay { position: fixed; inset: 0; background: rgba(32,29,24,.42); z-index: 90; }
.drawer {
	position: fixed; top: 0; right: 0; height: 100%; width: min(400px, 92vw);
	background: var(--bg-card); border-left: 1px solid var(--line); z-index: 100;
	transform: translateX(100%); transition: transform .28s ease, box-shadow .28s ease;
	display: flex; flex-direction: column; box-shadow: none;
}
/* Тень — только у открытого drawer'а (иначе -8px 0 46px «светит» у правого края). */
.drawer.is-open { transform: translateX(0); box-shadow: -8px 0 46px rgba(32, 29, 24, .12); }
.drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 22px 24px; border-bottom: 1px solid var(--line); }
.drawer__title { font-family: 'Cormorant Garamond', serif; font-weight: 400; font-size: 24px; }
.drawer__close { background: none; border: none; font-size: 26px; line-height: 1; cursor: pointer; color: var(--ink); padding: 0; }
.drawer__body { padding: 22px 24px; overflow-y: auto; flex: 1; }
.drawer .search-bar { margin: 0; }
.drawer__hint { margin-top: 16px; font-size: 13px; }
.drawer__hint a { text-decoration: underline; }
.drawer__empty { padding: 16px 0 20px; }
.drawer__link { display: block; padding: 13px 0; border-bottom: 1px solid var(--line-soft); font-size: 15px; }
.drawer .btn-block { display: block; text-align: center; }
.mini-item { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid var(--line-soft); }
.mini-item__img { width: 54px; height: 68px; flex: 0 0 auto; display: block; }
.mini-item__info { flex: 1; }
.mini-item__name { font-size: 14px; margin-bottom: 4px; }
.mini-item__meta { font-size: 12px; }
.mini-item__price { font-size: 13px; margin-top: 6px; }
.mini-item__rm { color: var(--text-soft); text-decoration: none; font-size: 20px; line-height: 1; }
.mini-total { display: flex; justify-content: space-between; font-size: 16px; margin: 18px 0; }

/* ============================================================
   Ховеры кнопок и сердечек: цвет + лёгкий подъём (по правке —
   «в 1 клик» и сердечко без отклика неудобны).
   ============================================================ */
.btn { transition: background .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s; }
.btn-dark:hover, .btn-accent:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(32, 29, 24, .18); }
.btn-line:hover { transform: translateY(-2px); }

/* Сердечко на карточке */
.product-card__fav { transition: transform .2s, background .2s, color .2s; }
.product-card__fav:hover { transform: scale(1.12); background: var(--bg-card); color: var(--accent); }

/* Сердечко на PDP */
.fav-btn { transition: transform .2s, border-color .2s, color .2s, background .2s; }
.fav-btn:hover { border-color: var(--ink); color: var(--accent); transform: translateY(-2px); }
.fav-btn.is-active { border-color: var(--accent); }

/* Избранное отмечено → сердечко цвета акцента (перебивает inline fill из app.js) */
.product-card__fav.is-active svg,
.fav-btn.is-active svg { fill: var(--accent); stroke: var(--accent); }

/* «+» на карточке — отклик на прямой ховер/нажатие */
.product-card__cart:hover { box-shadow: 0 10px 26px rgba(32, 29, 24, .22); }
.product-card__cart:active { transform: scale(.97); }
.product-card__cart.is-loading { opacity: .65; pointer-events: none; }
.product-card__cart.is-added,
.product-card:hover .product-card__cart.is-added { background: var(--accent); color: var(--bg-card); border-color: var(--accent); }

/* ============================================================
   Этап 3: выбор размера на карточке + тост «товар добавлен»
   ============================================================ */

/* Попап выбора размера (вариативный товар) — над «+» */
.card-sizes {
	position: absolute; right: 12px; bottom: 62px; z-index: 4;
	background: var(--bg-card); border: 1px solid var(--line);
	box-shadow: 0 14px 34px rgba(32, 29, 24, .20); padding: 13px;
	width: max-content; max-width: calc(100% - 24px);
	animation: cardSizesIn .2s ease;
}
.card-sizes__title { display: block; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-soft); margin-bottom: 9px; }
.card-sizes__row { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 11px; }
.card-sizes__chip { min-width: 34px; height: 32px; padding: 0 9px; border: 1px solid var(--border-ctl); background: transparent; color: var(--ink); font-size: 12px; cursor: pointer; transition: all .15s; }
.card-sizes__chip:hover { border-color: var(--ink); background: var(--ink); color: var(--bg-card); }
.card-sizes__more { display: block; font-size: 12px; color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.card-sizes__more:hover { color: var(--accent); }
@keyframes cardSizesIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* Бейдж корзины — пульс при добавлении */
@keyframes badgeBump { 0% { transform: scale(1); } 40% { transform: scale(1.55); } 100% { transform: scale(1); } }
.badge.badge-bump { animation: badgeBump .42s ease; }

/* Тост «Товар добавлен» — фото товара + кнопка «Открыть корзину» */
.cart-toast {
	position: fixed; right: 24px; bottom: 24px; z-index: 200;
	display: flex; align-items: stretch; gap: 14px;
	background: var(--bg-card); border: 1px solid var(--line);
	box-shadow: 0 20px 54px rgba(32, 29, 24, .24); padding: 14px;
	width: min(372px, calc(100vw - 32px));
	transform: translateY(24px); opacity: 0; pointer-events: none;
	transition: transform .38s cubic-bezier(.4, 0, .2, 1), opacity .38s;
}
.cart-toast.is-visible { transform: none; opacity: 1; pointer-events: auto; }
.cart-toast__media { flex: 0 0 60px; width: 60px; align-self: stretch; min-height: 78px; background: var(--ph-1, #E8E1D3) center / cover no-repeat; }
.cart-toast__media.is-empty { background: var(--bg-cream); }
.cart-toast__body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.cart-toast__t { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; letter-spacing: .05em; text-transform: uppercase; color: var(--accent); margin-bottom: 5px; }
.cart-toast__name { font-size: 14px; color: var(--ink); line-height: 1.35; margin-bottom: 12px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cart-toast__btn { margin-top: auto; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 14px; background: var(--ink); color: var(--bg-card); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; transition: background .2s ease, transform .2s ease; }
.cart-toast__btn:hover { background: var(--ink-2); transform: translateY(-1px); }
.cart-toast__close { position: absolute; top: 8px; right: 10px; background: none; border: none; font-size: 18px; line-height: 1; color: var(--text-soft); cursor: pointer; padding: 0; }
.cart-toast__close:hover { color: var(--ink); }

/* ============================================================
   Этап 4–6: карточка товара (PDP)
   ============================================================ */

/* Раскладка: сетка-галерея слева (1fr) + липкая инфо-колонка справа до края */
@media (min-width: 1025px) {
	.pdp { grid-template-columns: minmax(0, 1fr) 440px; gap: 48px; align-items: start; }
	.pdp__info { position: sticky; top: calc(var(--header-h, 82px) + 20px); align-self: start; }
}
.pdp__info { max-width: none; }

/* Галерея: все фото сеткой по 2 в ряд; одно фото — во всю ширину */
.pdp__gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: start; }
.pdp__gallery--single { grid-template-columns: 1fr; }
.pdp__cell {
	position: relative; display: block; width: 100%; aspect-ratio: 3/4;
	padding: 0; border: none; cursor: zoom-in; overflow: hidden;
	background: var(--bg-cream) center / cover no-repeat;
}
.pdp__cell .product-card__badge, .pdp__cell .badge { position: absolute; top: 14px; left: 14px; z-index: 2; }
.pdp__cell-zoom {
	position: absolute; top: 12px; right: 12px; width: 38px; height: 38px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	background: rgba(250, 248, 244, .92); color: var(--ink);
	opacity: 0; transform: scale(.85); transition: opacity .2s, transform .2s; pointer-events: none;
}
.pdp__cell:hover .pdp__cell-zoom { opacity: 1; transform: scale(1); }

/* Лайтбокс-галерея с листанием (клик по фото) */
.pdp-lightbox { position: fixed; inset: 0; z-index: 300; background: rgba(28, 25, 21, .9); display: none; align-items: center; justify-content: center; }
.pdp-lightbox.is-open { display: flex; }
.pdp-lightbox__stage { width: min(760px, 90vw); height: min(88vh, 1080px); display: flex; align-items: center; justify-content: center; }
.pdp-lightbox__img { width: 100%; height: 100%; background-size: contain; background-repeat: no-repeat; background-position: center; }
.pdp-lightbox__close { position: absolute; top: 20px; right: 26px; z-index: 2; background: none; border: none; color: var(--bg-card); font-size: 34px; line-height: 1; cursor: pointer; }
.pdp-lightbox__nav {
	position: absolute; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; border-radius: 50%;
	background: rgba(250, 248, 244, .14); border: none; color: var(--bg-card); cursor: pointer;
	display: flex; align-items: center; justify-content: center; transition: background .2s;
}
.pdp-lightbox__nav:hover { background: rgba(250, 248, 244, .28); }
.pdp-lightbox__nav--prev { left: 20px; }
.pdp-lightbox__nav--next { right: 20px; }
.pdp-lightbox__count { position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); color: var(--bg-card); font-size: 13px; letter-spacing: .06em; opacity: .85; }

/* Описание крупнее */
.pdp__desc-body p { margin: 0 0 16px; }

/* Кнопка «В корзину» на PDP: тёмная; состояние «Добавлено» — акцент + SVG-галочка */
.pdp-add { position: relative; background: var(--ink); color: var(--bg-card); cursor: pointer; overflow: hidden; transition: background .25s, transform .2s; }
.pdp-add:hover { background: var(--ink-2, #2c2822); transform: translateY(-2px); }
.pdp-add.is-loading { opacity: .7; pointer-events: none; }
.pdp-add__label, .pdp-add__done { display: inline-flex; align-items: center; justify-content: center; gap: 8px; transition: opacity .28s ease, transform .34s cubic-bezier(.34, 1.56, .64, 1); }
.pdp-add__done { position: absolute; inset: 0; opacity: 0; transform: translateY(65%); }
.pdp-add.is-added { background: var(--accent); }
.pdp-add.is-added .pdp-add__label { opacity: 0; transform: translateY(-65%); }
.pdp-add.is-added .pdp-add__done { opacity: 1; transform: translateY(0); }
.pdp-add.is-added .pdp-add__check { animation: pdp-check-pop .5s cubic-bezier(.34, 1.56, .64, 1); }
@keyframes pdp-check-pop { 0% { transform: scale(.2) rotate(-25deg); opacity: 0; } 55% { transform: scale(1.18) rotate(0); opacity: 1; } 100% { transform: scale(1) rotate(0); } }

/* Липкая мини-панель добавления (появляется при прокрутке ниже заголовка) */
.pdp-sticky {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 65;
	background: var(--bg-card); border-top: 1px solid var(--line);
	box-shadow: 0 -8px 30px rgba(32, 29, 24, .1);
	transform: translateY(115%); transition: transform .32s cubic-bezier(.4, 0, .2, 1);
	padding: 10px 0;
}
.pdp-sticky.is-visible { transform: translateY(0); }
.pdp-sticky__inner { display: flex; align-items: center; gap: 16px; padding-inline: max(var(--pad-x), calc((100% - 1440px) / 2)); }
.pdp-sticky__img { width: 46px; height: 58px; flex: 0 0 auto; border-radius: 3px; background: var(--bg-cream) center / cover no-repeat; }
.pdp-sticky__meta { display: flex; flex-direction: column; gap: 2px; margin-right: auto; min-width: 0; }
.pdp-sticky__name { font-size: 15px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pdp-sticky__price { font-size: 14px; color: var(--ink); }
.pdp-sticky__colors { display: flex; gap: 8px; flex: 0 0 auto; }
.pdp-sticky__add { flex: 0 0 auto; min-width: 200px; }
.pdp-sticky .pdp-add__done { color: var(--bg-card); }

@media (max-width: 1024px) {
	.pdp__gallery { gap: 8px; }
	.pdp-sticky { bottom: var(--bar-h); z-index: 66; padding: 8px 0; }
	.pdp-sticky__inner { gap: 11px; }
	.pdp-sticky__price { display: none; }
	.pdp-sticky__name { font-size: 13px; }
	.pdp-sticky__add { min-width: 0; padding: 0 22px; }
	body.single-product { padding-bottom: 60px; }
}

/* ============================================================
   Этап 7: отзывы (свой список + форма, не дефолт WooCommerce)
   ============================================================ */
.reviews-block { max-width: 760px; }
.reviews-summary { display: flex; align-items: center; gap: 20px; padding-bottom: 22px; margin-bottom: 28px; border-bottom: 1px solid var(--line); }
.reviews-summary__score { display: flex; align-items: center; gap: 12px; }
.reviews-summary__num { font-family: var(--font-head); font-size: 40px; line-height: 1; }
.reviews-summary__count { font-size: 14px; color: var(--text-muted); }
.reviews-list { display: flex; flex-direction: column; gap: 24px; margin-bottom: 44px; }
.review { border-bottom: 1px solid var(--line-soft); padding-bottom: 24px; }
.review:last-child { border-bottom: none; padding-bottom: 0; }
.review__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 4px; }
.review__who { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.review__author { font-size: 15px; }
.review__verified { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--accent); }
.review__date { font-size: 12px; color: var(--text-soft); margin-bottom: 12px; }
.review__text { font-size: 15px; line-height: 1.75; color: #4A453D; }
.review__text p { margin: 0 0 10px; }
.review__text p:last-child { margin-bottom: 0; }
.reviews-empty { font-size: 15px; line-height: 1.7; color: var(--text-muted); max-width: 560px; margin: 0 0 34px; }

.review-form { border: 1px solid var(--line); padding: 30px; max-width: 620px; }
.review-form__title { font-family: var(--font-head); font-weight: 400; font-size: 26px; margin: 0 0 20px; }
.review-form__field { margin-bottom: 18px; }
.review-form__label { display: block; font-size: 13px; letter-spacing: .04em; color: var(--text-muted); margin-bottom: 8px; }
.review-form__row { display: flex; gap: 12px; margin-bottom: 14px; }
.review-form__row .input { flex: 1; min-width: 0; }
.review-form textarea.input { width: 100%; margin-bottom: 16px; resize: vertical; box-sizing: border-box; }
.review-form__note { font-size: 12px; color: var(--text-soft); margin: 12px 0 0; }
.review-form .btn-dark { border: none; }

/* Звёздный ввод оценки: row-reverse + ~ для подсветки слева-направо */
.star-input { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: 4px; }
.star-input input { position: absolute; opacity: 0; width: 0; height: 0; }
.star-input label { color: var(--line); cursor: pointer; transition: color .15s; line-height: 0; }
.star-input input:checked ~ label,
.star-input label:hover,
.star-input label:hover ~ label { color: var(--accent); }
.star-input input:focus-visible + label { outline: 2px solid var(--ink); outline-offset: 2px; }

/* ============================================================
   Кредит «создано по плану» в подвале. Общий для всех витрин:
   бренд-часть берёт var(--accent), поэтому реслинится сама.
   Шрифт НЕ задаём — наследуется от подвала (Jost).
   ============================================================ */
.footer__bottom-right { display: inline-flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.po-plan-credit {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 12px; letter-spacing: .01em; color: #A79E8F;
	text-decoration: none; opacity: .9; transition: opacity .2s ease;
}
.po-plan-credit:hover { opacity: 1; }
.po-plan-credit__logo { height: 12px; width: auto; display: block; flex-shrink: 0; }
.po-plan-credit__text { display: inline-flex; align-items: baseline; gap: 4px; }
.po-plan-credit__prefix { color: inherit; }
.po-plan-credit__brand {
	color: var(--accent);
	text-decoration: underline dashed;
	text-decoration-color: var(--accent);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	font-weight: 500;
}
.po-plan-credit:hover .po-plan-credit__brand { filter: brightness(1.25); }

/* ============================================================
   A — Меню: дропдауны категорий под «Женщинам»/«Мужчинам»
   ============================================================ */
.nav-item { position: relative; display: flex; align-items: center; }
.nav-item > a { display: inline-flex; align-items: center; gap: 5px; }
.nav-item__caret { transition: transform .2s; opacity: .55; flex: 0 0 auto; }
.nav-item:hover .nav-item__caret, .nav-item:focus-within .nav-item__caret { transform: rotate(180deg); }
/* невидимый «мостик» под пунктом — курсор не теряет дропдаун */
.nav-item::after { content: ""; position: absolute; top: 100%; left: -8px; right: -8px; height: 12px; }
.nav-drop {
	position: absolute; top: calc(100% + 12px); left: 50%; transform: translateX(-50%) translateY(6px);
	min-width: 200px; background: var(--bg-card); border: 1px solid var(--line);
	box-shadow: 0 20px 46px rgba(32, 29, 24, .16); padding: 10px 0;
	display: flex; flex-direction: column;
	opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .2s ease, transform .2s ease;
	z-index: 60;
}
.nav-item:hover .nav-drop, .nav-item:focus-within .nav-drop {
	opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0);
}
.nav-drop a {
	padding: 10px 24px; font-size: 13px; letter-spacing: .03em; text-transform: none;
	white-space: nowrap; color: var(--ink); transition: background .15s ease, color .15s ease;
}
.nav-drop a:hover { background: var(--bg-cream); color: var(--accent); }

/* Бургер (моб): секция категорий */
.burger__label { display: block; padding: 14px 22px 6px; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--text-soft); }
.burger__sub { padding: 9px 22px 9px 34px !important; font-size: 13px !important; text-transform: none !important; letter-spacing: .02em !important; }

/* ============================================================
   D — Подвал: контакты с иконками + легал-ссылки
   ============================================================ */
.footer__contacts { display: flex; flex-direction: column; gap: 11px; margin-top: 22px; }
.footer__contact { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; color: #C7C0B4; transition: color .2s ease; }
.footer__contact svg { flex: 0 0 auto; color: var(--accent); }
.footer__contact:hover { color: var(--bg-card); }
.footer__legal { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.footer__legal a { font-size: 12px; color: #A79E8F; transition: color .2s ease; }
.footer__legal a:hover { color: var(--bg-card); }

/* ============================================================
   G — Cookie-уведомление (левый нижний угол)
   ============================================================ */
.cookie-note {
	position: fixed; left: 22px; bottom: 22px; z-index: 190;
	width: min(340px, calc(100vw - 32px));
	background: var(--ink); color: #C7C0B4;
	padding: 18px 20px; box-shadow: 0 20px 50px rgba(32, 29, 24, .3);
	transform: translateY(20px); opacity: 0; pointer-events: none;
	transition: transform .4s cubic-bezier(.4, 0, .2, 1), opacity .4s ease;
}
.cookie-note.is-visible { transform: none; opacity: 1; pointer-events: auto; }
.cookie-note__text { font-size: 13px; line-height: 1.6; margin-bottom: 14px; }
.cookie-note__actions { display: flex; align-items: center; gap: 16px; }
.cookie-note__btn { background: var(--bg-card); color: var(--ink); border: none; padding: 9px 22px; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; transition: background .2s ease, transform .2s ease; }
.cookie-note__btn:hover { background: var(--accent); color: var(--bg-card); transform: translateY(-1px); }
.cookie-note__link { font-size: 12px; color: #A79E8F; text-decoration: underline; text-underline-offset: 3px; }
.cookie-note__link:hover { color: var(--bg-card); }
@media (max-width: 600px) { .cookie-note { left: 12px; right: 12px; bottom: 12px; width: auto; } }

/* ============================================================
   M2 — Мобильные отступы. brand.css переопределяет --pad-x:56 в плоском
   :root (после медиа-запросов styles.css) и ломает адаптив — перебиваем
   здесь (грузится последним). Плюс hero-галерея на всю ширину экрана.
   ============================================================ */
@media (max-width: 1024px) { :root { --pad-x: 28px; } }
@media (max-width: 680px) {
	:root { --pad-x: 20px; }
	/* hero (главная) на мобиле: медиа-галерея во всю ширину, текст с отступом */
	.hero { padding-left: 0; padding-right: 0; }
	.hero__text { padding: 34px 20px 40px; }
}

/* ============================================================
   M3 + M4 — Мобильная навигация (≤1024): топбар (телефон+соцсети),
   шапка (лого/бургер), мегаменю с drill-down, фикс. нижний бар.
   ============================================================ */
:root { --bar-h: 62px; }

/* Соцсети — общий стиль (иконки currentColor) */
.socials { display: inline-flex; gap: 10px; align-items: center; }
.social { display: inline-flex; align-items: center; justify-content: center; color: inherit; transition: color .2s ease, transform .2s ease; }
.social:hover { transform: translateY(-2px); color: var(--accent); }

/* Топбар: телефон + соцсети (по умолчанию скрыты, показываются на мобиле) */
.promo__phone, .socials--promo { display: none; }

/* Бургер-иконка: 2 полоски → крестик */
.burger__lines { position: relative; display: block; width: 22px; height: 14px; }
.burger__lines span { position: absolute; left: 0; width: 22px; height: 1.6px; background: currentColor; border-radius: 2px; transition: transform .3s cubic-bezier(.4, 0, .2, 1), top .3s ease, opacity .2s; }
.burger__lines span:nth-child(1) { top: 3px; }
.burger__lines span:nth-child(2) { top: 10px; }
.burger.is-open .burger__lines span:nth-child(1) { top: 6.5px; transform: rotate(45deg); }
.burger.is-open .burger__lines span:nth-child(2) { top: 6.5px; transform: rotate(-45deg); }

/* Мегаменю */
html.mm-open, html.mm-open body { overflow: hidden; }
/* Меню появляется плавным опусканием из-под шапки (не выезжает справа) и НЕ
   перекрывает топбар: старт от нижнего края шапки (--mm-top), низ — над мобильным баром. */
.megamenu { position: fixed; top: var(--mm-top, 108px); left: 0; right: 0; bottom: var(--bar-h); z-index: 40; background: var(--bg-card); visibility: hidden; opacity: 0; transform: translateY(-10px); transition: opacity .26s ease, transform .3s cubic-bezier(.4, 0, .2, 1), visibility .3s; }
.megamenu.is-open { visibility: visible; opacity: 1; transform: translateY(0); }
.megamenu[hidden] { display: none; }
.megamenu__inner { position: absolute; inset: 0; overflow: hidden; }
.megamenu__panel { position: absolute; inset: 0; padding: 10px var(--pad-x) 24px; overflow-y: auto; background: var(--bg-card); transform: translateX(100%); transition: transform .34s cubic-bezier(.4, 0, .2, 1); display: flex; flex-direction: column; }
.megamenu__panel.is-active { transform: translateX(0); }
.megamenu__panel.is-prev { transform: translateX(-26%); }
.megamenu__item { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; text-align: left; padding: 15px 2px; font-family: var(--font-body); font-weight: 400; font-size: 18px; letter-spacing: .01em; color: var(--ink); background: none; border: none; border-bottom: 1px solid var(--line-soft); cursor: pointer; }
.megamenu__item span { display: inline-block; }
.megamenu__item--sale { color: var(--accent); }
.megamenu__item svg { flex: 0 0 auto; opacity: .45; }
.megamenu__sep { height: 16px; }
.megamenu__link { padding: 13px 2px; font-size: 15px; color: var(--text-muted); border-bottom: 1px solid var(--line-soft); }
.megamenu__back { display: inline-flex; align-items: center; gap: 5px; align-self: flex-start; background: none; border: none; padding: 4px 2px 12px; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--text-soft); cursor: pointer; }
.megamenu__heading { font-family: var(--font-body); font-weight: 500; font-size: 21px; margin: 0 0 6px; }
.megamenu__foot { margin-top: auto; padding-top: 26px; display: flex; flex-direction: column; gap: 16px; }
.megamenu__phone { font-size: 18px; color: var(--ink); letter-spacing: .02em; }
.socials--mm { gap: 12px; }
.socials--mm .social { width: 44px; height: 44px; border-radius: 50%; background: var(--ink); color: var(--bg-card); }
.socials--mm .social:hover { background: var(--accent); color: var(--bg-card); }

/* Нижний фиксированный бар */
.mobile-bar { display: none; }
.mobile-bar__badge { position: absolute; top: -5px; right: -9px; background: var(--accent); color: var(--bg-card); font-size: 9px; min-width: 15px; height: 15px; border-radius: 8px; display: flex; align-items: center; justify-content: center; padding: 0 3px; }

@media (min-width: 1025px) {
	.megamenu, .mobile-bar { display: none !important; }
}

@media (max-width: 1024px) {
	/* Топбар: скрываем промо-тексты (.promo span выигрывал по спецификуму), телефон + соцсети */
	.promo { justify-content: space-between; gap: 12px; padding: 5px 15px; }
	header.header { padding: 5px 15px; }
	.promo .promo--first, .promo .promo--second { display: none; }
	.promo__phone { display: inline-flex; align-items: center; gap: 7px; color: #5C554A; letter-spacing: .02em; font-size: 12px; white-space: nowrap; }
	.socials--promo { display: inline-flex; gap: 5px; }
	.socials--promo .social { width: 24px; height: 24px; color: #5C554A; border: 0; background: none; }
	.socials--promo .social svg { width: 15px; height: 15px; }
	/* меню открыто → cookie не мешает */
	html.mm-open .cookie-note { display: none; }

	/* Шапка: логотип слева, бургер справа */
	.header { justify-content: space-between; }
	.header .logo { order: 0; margin: 0; flex: 0 0 auto; }
	.header__icons { display: none; }
	.burger { order: 1; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; background: none; border: none; padding: 0; cursor: pointer; color: var(--ink); }

	/* Нижний бар */
	.mobile-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; height: var(--bar-h); background: var(--bg-card); border-top: 1px solid var(--line); display: flex; box-shadow: 0 -6px 24px rgba(32, 29, 24, .07); }
	.mobile-bar__item { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; color: var(--ink); font-size: 9px; letter-spacing: .01em; text-transform: uppercase; white-space: nowrap; }
	.mobile-bar__item svg { opacity: .85; width: 21px; height: 21px; }
	.mobile-bar__ic { position: relative; display: inline-flex; }
	/* контент не заезжает под фикс. бар */
	body { padding-bottom: var(--bar-h); }
}

/* ============================================================
   C — Яндекс-карта шоурума (канвас заполняет .map, карточка сверху)
   ============================================================ */
.map__canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.map__card { z-index: 2; }
.map__canvas .ymaps-2-1-79-map { border-radius: 0; }

/* ============================================================
   B — Блок контактов: строки-ссылки + соцсети + чекбокс + статус
   ============================================================ */
.contacts__info { display: flex; flex-direction: column; }
.contacts__item { display: flex; align-items: center; gap: 14px; padding: 15px 0; border-bottom: 1px solid var(--line-soft); color: var(--ink); }
.contacts__item:first-child { padding-top: 0; }
a.contacts__item { transition: color .2s ease; }
a.contacts__item:hover { color: var(--accent); }
a.contacts__item:hover .contacts__ic { background: var(--accent); color: var(--bg-card); }
.contacts__ic { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; background: var(--bg-cream); color: var(--accent); display: flex; align-items: center; justify-content: center; transition: background .2s ease, color .2s ease; }
.contacts__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.contacts__label { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-soft); }
.contacts__val { font-size: 15px; line-height: 1.5; color: inherit; }
/* Соцсети в контактах — просто иконки в акценте, без фона/обводки. */
.contacts__item--social { padding-left: 0; }
.socials--contacts { gap: 18px; }
.socials--contacts .social { width: auto; height: auto; border: 0; background: none; border-radius: 0; color: var(--accent); transition: color .2s, transform .2s; }
.socials--contacts .social svg { width: 25px; height: 25px; }
.socials--contacts .social:hover { background: none; color: var(--ink); transform: translateY(-3px); }

.form-consent { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; line-height: 1.5; color: var(--text-muted); cursor: pointer; }
.form-consent input { flex: 0 0 auto; margin-top: 2px; width: 16px; height: 16px; accent-color: var(--accent); cursor: pointer; }
.form-consent a { color: var(--ink); text-decoration: underline; text-underline-offset: 2px; }
.form-status { font-size: 14px; line-height: 1.5; padding: 12px 14px; }
.form-status.is-ok { background: var(--bg-cream); color: var(--accent); }
.form-status.is-err { background: #F6E9E3; color: #A5482F; }

/* ============================================================
   E — AJAX-поиск: результаты в drawer'е
   ============================================================ */
.search-results { display: flex; flex-direction: column; }
.search-results:empty { display: none; }
.search-results__loading, .search-results__empty { padding: 16px 2px; font-size: 14px; color: var(--text-muted); }
.search-item { display: flex; align-items: center; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--line-soft); }
.search-item__img { flex: 0 0 auto; width: 46px; height: 58px; background: var(--ph-1) center / cover no-repeat; }
.search-item__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.search-item__name { font-size: 14px; color: var(--ink); transition: color .15s ease; }
.search-item__price { font-size: 13px; color: var(--text-muted); }
.search-item:hover .search-item__name { color: var(--accent); }
.search-item__all { display: block; padding: 15px 2px 4px; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.search-item__all:hover { color: var(--accent); }

/* ============================================================
   H — Плавающая кнопка «Связаться» (FAB)
   ============================================================ */
.siluet-fab { position: fixed; right: 24px; bottom: 24px; z-index: 120; }
.siluet-fab__toggle { position: relative; width: 58px; height: 58px; border-radius: 50%; border: none; background: var(--ink); color: var(--bg-card); cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 14px 34px rgba(32, 29, 24, .3); transition: transform .2s ease, background .25s ease; }
.siluet-fab__toggle:hover { transform: translateY(-2px) scale(1.04); }
.siluet-fab.is-open .siluet-fab__toggle { background: var(--accent); }
.siluet-fab__ic-close { display: none; }
.siluet-fab.is-open .siluet-fab__ic-chat { display: none; }
.siluet-fab.is-open .siluet-fab__ic-close { display: block; }
.siluet-fab__panel { position: absolute; right: 0; bottom: calc(100% + 14px); width: 320px; max-width: calc(100vw - 32px); background: var(--bg-card); border: 1px solid var(--line); box-shadow: 0 24px 60px rgba(32, 29, 24, .24); overflow: hidden; opacity: 0; transform: scale(.92) translateY(10px); transform-origin: bottom right; pointer-events: none; transition: opacity .22s ease, transform .24s cubic-bezier(.34, 1.56, .64, 1); }
.siluet-fab__panel[hidden] { display: none; }
.siluet-fab.is-open .siluet-fab__panel { opacity: 1; transform: none; pointer-events: auto; }
.siluet-fab__head { padding: 18px 20px 14px; background: var(--bg-cream); border-bottom: 1px solid var(--line); }
.siluet-fab__title { font-family: var(--font-head); font-weight: 400; font-size: 19px; }
.siluet-fab__sub { font-size: 12px; color: var(--text-soft); margin-top: 2px; }
.siluet-fab__channels { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; padding: 14px 12px; }
.siluet-fab__channel { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 8px 2px; color: var(--ink); }
.siluet-fab__channel-ic { width: 40px; height: 40px; border-radius: 50%; background: var(--ink); color: var(--bg-card); display: flex; align-items: center; justify-content: center; transition: background .2s ease, transform .15s ease; }
.siluet-fab__channel:hover .siluet-fab__channel-ic { background: var(--accent); transform: translateY(-2px); }
.siluet-fab__channel-label { font-size: 9.5px; letter-spacing: .02em; text-transform: uppercase; color: var(--text-soft); }
.siluet-fab__divider { position: relative; text-align: center; margin: 0 18px 12px; }
.siluet-fab__divider::before { content: ""; position: absolute; top: 50%; left: 0; right: 0; height: 1px; background: var(--line); }
.siluet-fab__divider span { position: relative; padding: 0 10px; background: var(--bg-card); font-size: 11px; color: var(--text-soft); text-transform: uppercase; letter-spacing: .06em; }
.siluet-fab__form { padding: 0 18px 18px; display: flex; flex-direction: column; gap: 8px; }
.siluet-fab__form .input { width: 100%; box-sizing: border-box; }
.siluet-fab__form textarea.input { resize: vertical; }
.siluet-fab__consent { display: flex; align-items: flex-start; gap: 8px; font-size: 11px; line-height: 1.4; color: var(--text-soft); cursor: pointer; }
.siluet-fab__consent input { flex: 0 0 auto; margin-top: 1px; accent-color: var(--accent); }
.siluet-fab__form .btn { margin-top: 2px; }
.siluet-fab__form .form-status { font-size: 12px; padding: 9px 11px; }

/* Тост поднимаем над FAB (оба справа снизу) */
.cart-toast { bottom: 96px; }

@media (max-width: 1024px) {
	.siluet-fab { right: 16px; bottom: calc(var(--bar-h) + 14px); }
	.siluet-fab__toggle { width: 52px; height: 52px; }
	.cart-toast { right: 16px; bottom: calc(var(--bar-h) + 80px); }
}

/* ============================================================
   Логотип — инлайн-SVG (currentColor): шапка тёмный, подвал светлый
   ============================================================ */
.logo { line-height: 0; padding: 0; display: inline-flex; align-items: center; color: var(--ink); }
.logo svg { height: 22px; width: auto; display: block; }
.footer__logo { line-height: 0; margin-bottom: 4px; color: var(--bg-card); }
.footer__logo svg { height: 26px; width: auto; display: block; }
@media (max-width: 680px) { .logo svg { height: 20px; } }

/* ── Картинки: позиционирование по верхнему краю ──────────────────────── */
section.banner { background-position: top !important; }
.hero .gallery__slide:nth-child(1) img,
.hero .gallery__slide:nth-child(3) img { object-position: top; }
.product-card__media img { object-position: top; }

/* ── Ховер-листание фото на карточке (движение мышью → кадры 2,3,4) ────── */
/* Полоски-индикатор — под фото (сверху бейдж «Хит» и лайк), тонкие сегменты. */
.product-card__scrub {
	display: flex;
	gap: 5px;
	margin: 12px 2px 0;
}
.product-card__scrub > span {
	flex: 1 1 0;
	height: 2px;
	border-radius: 2px;
	background: rgba(32, 29, 24, .16);
	transition: background .15s ease;
}
.product-card__scrub > span.is-active { background: var(--ink); }

/* ── Карточка: тайтл + точки цвета в один ряд (точки прижаты вправо) ───────
   Так высота подписи одинаковая у всех товаров, а не съезжает под свотчами.
   Отступ сверху отрывает подпись от полосок-индикатора. Ховер по точке
   подменяет фото карточки (JS), точка подсвечивается кольцом. */
.product-card__head {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 15px 2px 5px;
}
.product-card__head .product-card__name {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.product-card__swatches { margin: 0; flex: 0 0 auto; gap: 7px; }
.swatch-dot { cursor: pointer; transition: box-shadow .18s ease, transform .18s ease; }
.swatch-dot:hover, .swatch-dot.is-active { box-shadow: 0 0 0 2px var(--bg-card), 0 0 0 3px var(--ink); transform: scale(1.1); }

/* ── Корзина: «Итого + Оформить заказ» прижаты к низу экрана на мобиле ──── */
@media (max-width: 1024px) {
	.summary__cta {
		position: fixed;
		left: 0;
		right: 0;
		bottom: var(--bar-h);
		z-index: 60;
		display: flex;
		align-items: center;
		gap: 14px;
		padding: 11px 16px calc(11px + env(safe-area-inset-bottom, 0px));
		background: var(--bg-card);
		border-top: 1px solid var(--line);
		box-shadow: 0 -6px 24px rgba(32, 29, 24, .09);
	}
	.summary__cta .sum-row--total {
		margin: 0;
		padding: 0;
		border: 0;
		flex: 0 0 auto;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 1px;
	}
	.summary__cta .sum-row--total span:first-child {
		font-size: 10px;
		letter-spacing: .07em;
		text-transform: uppercase;
		color: var(--text-soft);
	}
	.summary__cta .sum-row--total span:last-child {
		font-size: 18px;
		font-weight: 500;
		color: var(--ink);
	}
	.summary__cta .btn { margin: 0; flex: 1; white-space: nowrap; }
	/* фикс-бар не должен перекрывать контент корзины */
	body.woocommerce-cart .split-2 { padding-bottom: calc(var(--bar-h) + 88px); }
	/* FAB поднимаем над фикс-баром «Итого/Оформить», чтобы не перекрывал кнопку */
	body.woocommerce-cart .siluet-fab { bottom: calc(var(--bar-h) + 90px); }
}

/* ── Заголовок формы заявки ────────────────────────────────────────────── */
.form-lead { display: flex; flex-direction: column; gap: 5px; margin-bottom: 8px; }
.form-lead__title { font-family: var(--font-head); font-size: 27px; line-height: 1.1; color: var(--ink); }
.form-lead__sub { font-size: 13px; color: var(--text-soft); }

/* ── Плавающие лейблы: подпись уходит наверх при фокусе/заполнении (все формы) ── */
.float-field { position: relative; display: block; }
.float-field > input,
.float-field > textarea,
.float-field > .input { width: 100%; box-sizing: border-box; display: block; }
.float-field__label {
	position: absolute;
	left: 11px;
	top: 15px;
	padding: 0 5px;
	font-size: 14px;
	color: var(--text-soft);
	background: var(--bg-card);
	pointer-events: none;
	transform-origin: left center;
	transition: transform .16s ease, color .16s ease;
}
.float-field.is-float > .float-field__label {
	transform: translateY(-25px) scale(.82);
	color: var(--accent);
}

/* ── Избранное: активное сердце + страница ─────────────────────────────── */
.product-card__fav.is-active svg, .fav-btn.is-active svg { fill: var(--accent); stroke: var(--accent); }
.product-card__fav.is-active, .fav-btn.is-active { color: var(--accent); }
.wishlist-empty { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 7px; padding: 56px 20px; }
.wishlist-empty__ic { color: var(--accent); opacity: .75; margin-bottom: 4px; }
.wishlist-empty__t { font-family: var(--font-head); font-size: 26px; margin: 0; }
.wishlist-empty__s { color: var(--text-soft); font-size: 14px; margin: 0 0 14px; max-width: 360px; }

/* ── Вход / регистрация в ЛК — фирменный стиль (была Woo-заглушка) ─────── */
.account-auth { display: grid; gap: 22px; max-width: 460px; margin: 6px auto 46px; }
.account-auth--split { max-width: 940px; grid-template-columns: 1fr 1fr; align-items: start; }
.account-auth__card { border: 1px solid var(--line); background: var(--bg-card); padding: 38px 36px; }
.account-auth__card--reg { background: var(--bg-cream); }
.account-auth__eyebrow { display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); margin-bottom: 10px; }
.account-auth__title { font-family: var(--font-head); font-size: 33px; line-height: 1.05; margin: 0 0 8px; }
.account-auth__sub { color: var(--text-soft); font-size: 14px; margin: 0 0 24px; }
.account-auth .form-row { margin: 0 0 14px; }
.account-auth .input { width: 100%; box-sizing: border-box; }
.account-auth__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 4px 0 20px; font-size: 13px; }
.account-auth__remember { display: inline-flex; align-items: center; gap: 8px; color: var(--text-muted); cursor: pointer; }
.account-auth__remember input { width: 16px; height: 16px; accent-color: var(--accent); }
.account-auth__lost { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.account-auth__lost:hover { color: var(--accent); }
.account-auth__note { font-size: 13px; color: var(--text-soft); margin: 0 0 18px; }
@media (max-width: 860px) { .account-auth--split { grid-template-columns: 1fr; max-width: 460px; } }

/* Дашборд ЛК (Woo-разметка без woo-стилей): меню-табы + контент */
/* (Старые пилюли навигации ЛК заменены блоком .account-nav ниже.) */

/* Атрибут [hidden] должен реально прятать (флекс-правила его перебивали). */
.badge[hidden], .mobile-bar__badge[hidden], .wishlist-empty[hidden] { display: none !important; }

/* ── Попап выбора ЦВЕТА на карточке (Пальто) ───────────────────────────── */
.card-sizes__row--color { flex-direction: column; align-items: stretch; gap: 5px; }
.card-sizes__chip--color { display: flex; align-items: center; gap: 10px; justify-content: flex-start; width: 100%; height: 38px; padding: 0 12px; }
.card-sizes__chip--color > span { width: 18px; height: 18px; border-radius: 50%; flex: 0 0 auto; border: 1px solid rgba(32, 29, 24, .14); }

/* ── FAB поднимается над липкой панелью PDP (чтобы не перекрывались) ────── */
.siluet-fab { transition: transform .3s cubic-bezier(.4, 0, .2, 1); }
.pdp-sticky-shown .siluet-fab { transform: translateY(-72px); }
@media (max-width: 1024px) { .pdp-sticky-shown .siluet-fab { transform: translateY(-78px); } }

/* ── Контакты: единая композиция «панель + карта» встык в тонкой рамке ──── */
.contacts__grid {
	align-items: stretch;
	gap: 0;
	grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
	border: 1px solid var(--line);
	background: var(--bg-card);
	overflow: hidden;
}
.contacts__info {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0;
	height: 100%;
	box-sizing: border-box;
	padding: 44px 46px;
	background: var(--bg-card);
	border-right: 1px solid var(--line);
}
.contacts__item { padding: 21px 0; border-bottom: 1px solid var(--line-soft); }
.contacts__item:first-child { padding-top: 0; }
.contacts__item:last-child, .contacts__item--social { border-bottom: none; padding-bottom: 0; }
.contacts__item--social { padding-left: 58px; padding-top: 23px; }
.contacts__item--social .contacts__body { gap: 12px; }
.contacts .map { min-height: 448px; background: #E7E2D6; }
.contacts .map__card { display: none; }
@media (max-width: 1024px) {
	/* Стек: панель сверху, карта снизу — колонки в один столбец (наше базовое
	   правило .contacts__grid перекрывало мобильный стек из styles.css),
	   разделитель переносим вниз. */
	.contacts__grid { grid-template-columns: 1fr; }
	.contacts__info { height: auto; border-right: none; border-bottom: 1px solid var(--line); padding: 34px 26px; }
	.contacts .map { min-height: 340px; }
}

/* ── «Оставьте заявку» — тёмный фон во всю ширину ──────────────────────── */
.lead-cta { background: var(--ink); color: var(--bg-card); padding-top: 64px; padding-bottom: 64px; }
.lead-cta__inner { display: grid; grid-template-columns: .82fr 1.18fr; gap: 54px; align-items: center; }
.lead-cta__title { font-family: var(--font-head); font-weight: 300; font-size: 44px; line-height: 1.04; margin: 14px 0 12px; color: var(--bg-card); }
.lead-cta__sub { color: rgba(250, 248, 244, .68); font-size: 15px; line-height: 1.6; max-width: 340px; }
.lead-cta__form .input { border-color: rgba(250, 248, 244, .26); color: var(--bg-card); background: transparent; }
.lead-cta__form .input::placeholder { color: rgba(250, 248, 244, .5); }
.lead-cta__form .float-field__label { background: var(--ink); color: rgba(250, 248, 244, .55); }
.lead-cta__form .float-field.is-float > .float-field__label { color: var(--accent); }
.lead-cta__form .form-consent { color: rgba(250, 248, 244, .62); }
.lead-cta__form .form-consent a { color: var(--bg-card); }
.lead-cta__form .btn { background: var(--bg-card); color: var(--ink); border: none; }
.lead-cta__form .btn:hover { background: var(--accent); color: var(--bg-card); }
@media (max-width: 900px) {
	.lead-cta__inner { grid-template-columns: 1fr; gap: 26px; }
	.lead-cta__title { font-size: 34px; }
}

/* ── Вход/регистрация прямо в сайдбаре ─────────────────────────────────── */
.acc-tabs { display: flex; margin-bottom: 22px; border-bottom: 1px solid var(--line); }
.acc-tab { flex: 1; padding: 0 0 12px; margin-bottom: -1px; background: none; border: none; border-bottom: 2px solid transparent; font-size: 14px; letter-spacing: .03em; color: var(--text-soft); cursor: pointer; transition: color .2s, border-color .2s; }
.acc-tab.is-active { color: var(--ink); border-color: var(--ink); }
.acc-form { display: flex; flex-direction: column; gap: 14px; }
.acc-form .input { width: 100%; box-sizing: border-box; }
.acc-remember { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-muted); cursor: pointer; }
.acc-remember input { width: 16px; height: 16px; accent-color: var(--accent); }
.acc-lost { font-size: 13px; color: var(--ink); text-decoration: underline; text-underline-offset: 3px; text-align: center; }
.acc-lost:hover { color: var(--accent); }
.acc-note { font-size: 12px; color: var(--text-soft); line-height: 1.5; margin: 2px 0 0; }
.acc-note a { color: var(--ink); text-decoration: underline; }
.account-auth__reg { margin-top: 22px; text-align: center; font-size: 13px; color: var(--text-soft); }
.account-auth__reg a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.account-auth__reg a:hover { color: var(--accent); }

/* ── Горизонтальный скролл: клипаем по X (clip не ломает position:sticky) ── */
html { overflow-x: clip; }

/* ── Мобильный пакет правок ─────────────────────────────────────────────── */
@media (max-width: 1024px) { .hero__media { order: -1; min-height: 420px; max-height: 500px; } }
.product-grid { gap: 30px 35px; }
@media (max-width: 680px) { .product-grid, .product-grid--3 { grid-template-columns: repeat(1, 1fr); } }
section.banner { background-position: top right !important; }
.footer__logo { line-height: 0; margin-bottom: 20px; color: var(--bg-card); }

/* ── FAB и тост не перекрывают открытые сайдбары/меню ───────────────────── */
html.drawer-open .siluet-fab, html.mm-open .siluet-fab, html.filter-open .siluet-fab { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; transition: none !important; }
html.drawer-open .cart-toast, html.mm-open .cart-toast, html.filter-open .cart-toast { display: none !important; }

/* ── Корзина: миниатюры товаров по верхнему краю (головы не режутся) ─────── */
.cart-item__img { background-position: top !important; }

/* ── Облегчённый подвал чекаута: лого + реквизиты + правовое ────────────── */
.footer--slim { display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; padding-top: 40px; padding-bottom: 40px; border-top: 1px solid var(--line); }
.footer--slim__logo { line-height: 0; color: var(--ink); display: inline-flex; }
.footer--slim__logo svg { height: 22px; width: auto; }
.footer--slim__req { font-size: 12px; color: var(--text-soft); letter-spacing: .02em; line-height: 1.6; }
.footer--slim__legal { display: flex; gap: 22px; flex-wrap: wrap; justify-content: center; }
.footer--slim__legal a { font-size: 12px; color: var(--text-muted); text-decoration: underline; text-underline-offset: 3px; }
.footer--slim__legal a:hover { color: var(--ink); }

/* ── PDP-галерея на мобиле: горизонтальная свайп-карусель ───────────────── */
/* Базовое состояние счётчика — скрыт (на десктопе). Мобильный медиа-запрос
   ниже включает display:flex; правило объявлено ДО него, чтобы порядок каскада
   не перекрывал показ на мобиле. */
.pdp__gallery-count { display: none; align-items: center; justify-content: center; gap: 3px; margin: 14px 0 0; font-size: 12px; letter-spacing: .1em; color: var(--text-soft); }
@media (max-width: 1024px) {
	.pdp__gallery {
		display: flex;
		grid-template-columns: none;
		gap: 10px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-left: var(--pad-x, 20px);
		/* тянем за края контейнера, чтобы первая уходила за левый край экрана */
		margin-left: calc(-1 * var(--pad-x, 20px));
		margin-right: calc(-1 * var(--pad-x, 20px));
		padding: 0 22% 0 var(--pad-x, 20px);
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.pdp__gallery::-webkit-scrollbar { display: none; }
	.pdp__gallery > .pdp__cell { flex: 0 0 80%; scroll-snap-align: start; }
	.pdp__gallery--single { padding-right: var(--pad-x, 20px); }
	.pdp__gallery--single > .pdp__cell { flex-basis: 100%; }
	.pdp__cell-zoom { display: none; }
	.pdp__gallery-count { display: flex; }
}

/* ── PDP: выбор размера, кнопка «ждёт выбор», активный размер ───────────── */
.pdp-add.needs-choice { background: #B8AF9F; }
.pdp-add.needs-choice:hover { background: #B8AF9F; transform: none; }
.pdp-size.is-active, .pdp-sticky__size.is-active { background: var(--ink); color: var(--bg-card); border-color: var(--ink); }
@keyframes siluet-flash { 0%, 100% { background: transparent; } 30% { background: rgba(138, 90, 60, .16); } }
.pdp-sizes.flash { animation: siluet-flash .6s ease; border-radius: 4px; }

/* Липкая панель: чипы размера/цвета + перекомпоновка на мобиле */
.pdp-sticky__opts { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.pdp-sticky__chips { display: flex; gap: 6px; align-items: center; }
.pdp-sticky__chips--size .pdp-sticky__size { min-width: 30px; height: 30px; padding: 0 7px; border: 1px solid var(--border-ctl); background: transparent; color: var(--ink); font-size: 11px; cursor: pointer; transition: all .15s; }
.pdp-sticky__size[disabled] { opacity: .35; text-decoration: line-through; cursor: not-allowed; }
.pdp-sticky__add.needs-choice { background: #4a463f; }
@media (max-width: 1024px) {
	.pdp-sticky__inner { flex-wrap: wrap; row-gap: 10px; align-items: center; }
	.pdp-sticky__meta { flex: 1 1 auto; margin-right: 0; }
	.pdp-sticky__price { display: block !important; }
	.pdp-sticky__opts { flex: 1 1 100%; justify-content: space-between; gap: 10px; }
	.pdp-sticky__chips { flex-wrap: wrap; }
	.pdp-sticky__add { flex: 1 1 auto; min-width: 130px; padding: 0 18px; }
}

/* ── Каталог: кнопка «Фильтр» + фильтры выезжающим сайдбаром слева (моб) ── */
.catalog-filter-btn { display: none; align-items: center; gap: 8px; padding: 10px 18px; border: 1px solid var(--ink); background: none; color: var(--ink); font-size: 13px; letter-spacing: .04em; cursor: pointer; position: relative; transition: background .2s, color .2s; }
.catalog-filter-btn:hover { background: var(--ink); color: var(--bg-card); }
.catalog-filter-btn__dot { position: absolute; top: 6px; right: 8px; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.filters__head { display: none; align-items: center; justify-content: space-between; padding: 0 0 18px; margin-bottom: 18px; border-bottom: 1px solid var(--line); }
.filters__title { font-family: var(--font-head); font-size: 24px; }
.filters__close { background: none; border: none; font-size: 30px; line-height: 1; color: var(--ink); cursor: pointer; }
.filters-overlay { position: fixed; inset: 0; z-index: 89; background: rgba(32, 29, 24, .42); }
.filters-overlay[hidden] { display: none; }

/* Плавное обновление выдачи каталога */
@keyframes siluet-grid-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.product-grid { animation: siluet-grid-in .45s ease both; }
.catalog-fading .product-grid { opacity: 0; transition: opacity .2s ease; }

@media (max-width: 1024px) {
	.catalog-filter-btn { display: inline-flex; margin-right: auto; }
	.catalog-toolbar { flex-wrap: wrap; gap: 12px; align-items: center; }
	.filters {
		display: block;
		position: fixed;
		top: 0; left: 0; bottom: 0;
		width: min(88vw, 360px);
		z-index: 90;
		background: var(--bg-card);
		padding: 22px var(--pad-x, 20px) 24px;
		overflow-y: auto;
		transform: translateX(-100%);
		transition: transform .32s cubic-bezier(.4, 0, .2, 1);
		box-shadow: none;
		margin: 0;
		border: none;
		gap: 0;
	}
	.filters.is-open { transform: translateX(0); box-shadow: 8px 0 46px rgba(32, 29, 24, .16); }
	.filters__head { display: flex; }
	.filters .filter-group { border-bottom: 1px solid var(--line); padding: 20px 0; min-width: 0; }
	.filters .filter-group:first-child { padding-top: 0; }
	.filters .filter-group:last-of-type { border-bottom: none; }
	.filter-actions { position: sticky; bottom: 0; background: var(--bg-card); padding-top: 14px; margin-top: 4px; }
}

/* ── Корзина на мобиле: аккуратная карточка товара (фото | инфо; кол-во снизу) ── */
@media (max-width: 680px) {
	.cart-row {
		grid-template-columns: 82px 1fr auto;
		grid-template-areas:
			"img info remove"
			"img qty  sum";
		gap: 12px 14px;
		align-items: center;
		padding: 20px 0;
	}
	.cart-item { display: contents; }
	.cart-item__img { grid-area: img; width: 82px; height: 104px; align-self: start; }
	.cart-item > div { grid-area: info; align-self: start; }
	.cart-row .qty { grid-area: qty; justify-self: start; }
	.cart-row .cart-sum { grid-area: sum; justify-self: end; font-size: 16px; }
	.cart-row .icon-remove { grid-area: remove; justify-self: end; align-self: start; color: var(--text-soft); }
	.cart-row .qty button { width: 40px; height: 40px; }
	/* фикс-бар итога не должен перекрывать последний товар */
	body.woocommerce-cart .split-2 { padding-bottom: calc(var(--bar-h) + 92px); }
}
/* Итог+Оформить всегда фиксирован снизу (не по количеству товаров) */
@media (max-width: 1024px) {
	.summary__cta { position: fixed !important; }
}

/* ── Чекаут: одноколоночный адаптив на мобиле (был 2-колоночный грид) ───── */
@media (max-width: 980px) {
	.split-2[data-checkout] { grid-template-columns: 1fr !important; gap: 30px !important; }
	.split-2[data-checkout] .summary--sticky { position: static !important; top: auto; }
}
@media (max-width: 560px) {
	/* Способы оплаты в один столбец: в 2 колонках логотип (Долями/Сплит)
	   не влезал в узкую ячейку и вылезал за край экрана. */
	.pay-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
	.checkout-step { padding: 22px 18px; }
	.pay-opt, .ship-opt { padding: 14px; }
}
/* Логотип способа оплаты не тянет строку шире ячейки (страховка от переполнения). */
.pay-opt img { flex: 0 0 auto; max-width: 40%; height: 14px; width: auto; object-fit: contain; }
.pay-opt > span[style*="flex:1"] { min-width: 0; }

/* ============================================================
   Батч-правки: PDP-бейдж, тап-хайлайт, PDP-галерея крупнее +
   счётчик-оверлей, отступ PDP на мобиле, кастомный селект,
   активные фильтры, карточка-скраб на мобиле.
   ============================================================ */

/* PDP: «Хит продаж» как бейдж, но в потоке (не absolute). */
.pdp__info .product-card__badge { position: static; display: inline-block; top: auto; left: auto; }

/* Убираем синюю вспышку тапа на мобиле (лайк и все интерактивные). */
* { -webkit-tap-highlight-color: transparent; }

/* Фото в галерее не режем по голове — кадрируем от верха. */
.pdp__cell { background-position: center top; }

/* Обёртка галереи (позиционный контекст для счётчика-оверлея). */
.pdp__gallery-wrap { min-width: 0; }

/* Кастомный селект сортировки (нативный на мобиле рисуется ОС — некрасиво). */
.select-cs { position: relative; display: inline-flex; }
.select-cs__btn {
	display: inline-flex; align-items: center; gap: 10px;
	border: 1px solid var(--border-ctl); background: transparent;
	padding: 9px 14px; font-size: 13px; color: var(--ink); cursor: pointer;
	border-radius: 0; font-family: var(--font-body); line-height: 1.2;
}
.select-cs__btn:hover { border-color: var(--ink); }
.select-cs__btn svg { transition: transform .2s ease; color: var(--text-muted); }
.select-cs.is-open .select-cs__btn { border-color: var(--ink); }
.select-cs.is-open .select-cs__btn svg { transform: rotate(180deg); }
.select-cs__menu {
	position: absolute; top: calc(100% + 6px); right: 0; min-width: 100%; z-index: 40;
	background: var(--bg-card); border: 1px solid var(--line);
	box-shadow: 0 14px 34px rgba(32, 29, 24, .12);
	opacity: 0; visibility: hidden; transform: translateY(-4px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
	padding: 6px 0;
}
.select-cs.is-open .select-cs__menu { opacity: 1; visibility: visible; transform: translateY(0); }
.select-cs__opt {
	display: block; width: 100%; text-align: left; white-space: nowrap;
	padding: 10px 18px; background: none; border: none; cursor: pointer;
	font-size: 13px; color: var(--ink); font-family: var(--font-body);
	transition: background .15s ease, color .15s ease;
}
.select-cs__opt:hover { background: var(--bg-cream); }
.select-cs__opt.is-active { color: var(--accent); }

@media (max-width: 1024px) {
	/* Отступ сверху у карточки товара (PDP) на мобиле. */
	main.section[data-pdp] { padding-top: 24px; }

	/* PDP-галерея крупнее (шире ~на 20%, высота растёт по aspect-ratio фото). */
	.pdp__gallery { padding: 0 10% 0 var(--pad-x, 20px); }
	.pdp__gallery > .pdp__cell { flex: 0 0 84%; }
	.pdp__gallery > .pdp__cell,
	.pdp__gallery--single > .pdp__cell { aspect-ratio: 1003 / 1568; }

	/* Счётчик N/M — оверлеем в левом нижнем углу фото. */
	.pdp__gallery-wrap { position: relative; }
	.pdp__gallery-count {
		position: absolute; left: 14px; bottom: 14px; z-index: 3;
		margin: 0; padding: 5px 12px; gap: 4px;
		background: rgba(32, 29, 24, .72); color: var(--bg-card); border-radius: 40px;
		font-size: 11px; letter-spacing: .05em; pointer-events: none;
	}

	/* Активные фильтры на мобиле — заметный ряд под тулбаром, на всю ширину. */
	.catalog-toolbar .active-chips { order: 5; flex: 1 0 100%; margin-top: 2px; }
	.active-chip { background: var(--bg-cream); border: 1px solid var(--line); padding: 8px 13px; }
}

/* ============================================================
   ЛК залогиненного: раскладка, навигация, обзор, заказы, формы
   ============================================================ */
.account-wrap { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 46px; align-items: start; }
.account-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.account-nav a {
	display: block; padding: 11px 14px; font-size: 14px; color: var(--ink);
	border-left: 2px solid transparent; transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.account-nav a:hover { background: var(--bg-card); color: var(--accent); }
.account-nav li.is-active a { border-color: var(--ink); background: var(--bg-card); font-weight: 500; }
.account-nav .account-nav__logout { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.account-nav .account-nav__logout a { color: var(--text-soft); }
.account-nav .account-nav__logout a:hover { color: var(--accent); background: none; }

.account-hello { font-size: 15px; line-height: 1.6; color: var(--text-muted); margin: 0 0 24px; }
.account-hello b { color: var(--ink); font-weight: 500; }

.account-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 38px; }
.account-tile {
	display: flex; flex-direction: column; gap: 4px; padding: 20px 22px;
	background: var(--bg-card); border: 1px solid var(--line); color: var(--ink);
	transition: border-color .2s ease, transform .2s ease;
}
.account-tile:hover { border-color: var(--ink); transform: translateY(-2px); }
.account-tile svg { color: var(--accent); margin-bottom: 8px; }
.account-tile__t { font-size: 15px; font-weight: 500; }
.account-tile__s { font-size: 12.5px; color: var(--text-soft); }

.account-block-head { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; margin: 0 0 14px; }
.account-h2 { font-family: var(--font-head); font-weight: 500; font-size: 26px; line-height: 1.15; margin: 0 0 16px; }

.order-cards { display: flex; flex-direction: column; gap: 10px; }
.order-card {
	position: relative; display: block; padding: 18px 46px 18px 20px;
	background: var(--bg-card); border: 1px solid var(--line); color: var(--ink);
	transition: border-color .2s ease;
}
.order-card:hover { border-color: var(--ink); }
.order-card__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.order-card__num { font-size: 15px; font-weight: 500; }
.order-card__meta { font-size: 13px; color: var(--text-soft); }
.order-card__total { font-size: 15px; margin-top: 8px; }
.order-card__go { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); color: var(--text-soft); transition: color .2s, transform .2s; }
.order-card:hover .order-card__go { color: var(--accent); transform: translateY(-50%) translateX(3px); }

.order-status { display: inline-flex; align-items: center; padding: 4px 10px; font-size: 11px; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.order-status--processing { background: var(--bg-cream); color: var(--accent); }
.order-status--completed { background: var(--ink); color: var(--bg-card); }
.order-status--on-hold { background: var(--bg-cream); color: var(--text-muted); }
.order-status--pending { background: var(--bg-cream); color: var(--text-muted); }
.order-status--cancelled, .order-status--refunded, .order-status--failed { background: #F6E9E3; color: #A5482F; }

.account-paging { display: flex; gap: 10px; margin-top: 18px; }

.account-empty { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 34px 0 10px; color: var(--ink); }
.account-empty svg { color: var(--accent); opacity: .8; margin-bottom: 4px; }
.account-empty__t { font-family: var(--font-head); font-size: 24px; margin: 0; }
.account-empty__s { font-size: 14px; color: var(--text-soft); margin: 0 0 14px; max-width: 380px; }

/* Просмотр заказа: шапка + штатные таблицы Woo в фирменном виде. */
.order-view-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 22px; flex-wrap: wrap; }
.account-content .woocommerce-order-details__title,
.account-content .woocommerce-column__title { font-family: var(--font-head); font-weight: 500; font-size: 22px; margin: 26px 0 12px; }
.account-content table.shop_table {
	width: 100%; border-collapse: collapse; background: var(--bg-card);
	border: 1px solid var(--line); font-size: 14px;
}
.account-content table.shop_table th,
.account-content table.shop_table td { text-align: left; padding: 13px 16px; border-bottom: 1px solid var(--line-soft); vertical-align: top; }
.account-content table.shop_table thead th { font-size: 11px; letter-spacing: .07em; text-transform: uppercase; color: var(--text-soft); font-weight: 400; }
.account-content table.shop_table tfoot th { font-weight: 400; color: var(--text-muted); }
.account-content table.shop_table tfoot tr:last-child th,
.account-content table.shop_table tfoot tr:last-child td { font-weight: 500; font-size: 15px; }
.account-content table.shop_table td.product-name a { color: var(--ink); }
.account-content table.shop_table td.product-name a:hover { color: var(--accent); }
.account-content .wc-item-meta { list-style: none; margin: 4px 0 0; padding: 0; font-size: 12.5px; color: var(--text-soft); }
.account-content .wc-item-meta p { display: inline; margin: 0; }
.account-content address { font-style: normal; line-height: 1.7; font-size: 14px; color: var(--text-muted); padding: 16px 18px; background: var(--bg-card); border: 1px solid var(--line); }
.account-content .woocommerce-columns--addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }

/* Адреса (список) */
.account-content .woocommerce-Addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.account-content .woocommerce-Address-title { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.account-content .woocommerce-Address-title h3 { font-family: var(--font-head); font-weight: 500; font-size: 21px; margin: 0 0 10px; }
.account-content .woocommerce-Address-title .edit { font-size: 13px; color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }

/* Формы ЛК (мои данные / адрес): поля и кнопки в фирменном виде. */
.account-content .form-row { margin: 0 0 14px; }
.account-content .form-row label { display: block; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; color: var(--text-soft); margin-bottom: 7px; }
.account-content .form-row .input-text,
.account-content .form-row select {
	width: 100%; box-sizing: border-box; border: 1px solid var(--border-ctl); background: transparent;
	padding: 13px 15px; font-size: 14px; font-family: var(--font-body); color: var(--ink); outline: none;
	border-radius: 0; transition: border-color .15s ease;
}
.account-content .form-row .input-text:focus,
.account-content .form-row select:focus { border-color: var(--ink); }
.account-content fieldset { border: 1px solid var(--line); padding: 18px 20px 8px; margin: 22px 0; }
.account-content fieldset legend { font-family: var(--font-head); font-size: 20px; padding: 0 8px; }
.account-content button[type="submit"],
.account-content .woocommerce-Button {
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--ink); color: var(--bg-card); border: none; cursor: pointer;
	padding: 15px 30px; font-size: 13px; letter-spacing: .08em; text-transform: uppercase;
	font-family: var(--font-body); transition: background .2s ease;
}
.account-content button[type="submit"]:hover { background: var(--accent); }
.account-content em { font-size: 12.5px; color: var(--text-soft); font-style: normal; }
.account-content .show-password-input { display: none; }

@media (max-width: 900px) {
	.account-wrap { grid-template-columns: 1fr; gap: 20px; }
	.account-nav ul { flex-direction: row; overflow-x: auto; gap: 8px; padding-bottom: 6px; scrollbar-width: none; }
	.account-nav ul::-webkit-scrollbar { display: none; }
	.account-nav a { border-left: none; border: 1px solid var(--line); padding: 9px 14px; white-space: nowrap; font-size: 13px; }
	.account-nav li.is-active a { background: var(--ink); color: var(--bg-card); border-color: var(--ink); }
	.account-nav .account-nav__logout { margin: 0; padding: 0; border: none; }
	.account-tiles { grid-template-columns: 1fr 1fr; }
	.account-content .woocommerce-Addresses,
	.account-content .woocommerce-columns--addresses { grid-template-columns: 1fr; }
	.account-content table.shop_table { font-size: 13px; }
	.account-content table.shop_table th, .account-content table.shop_table td { padding: 11px 12px; }
}

/* ============================================================
   ТОКЕНЫ СКРУГЛЕНИЙ (контракт рескина, см. brand.css)
   Дефолты = текущий люкс-вид (0). Клон меняет 4 переменные в brand.css —
   и весь сайт скругляется согласованно. Круги (50%) и смысловые пилюли
   бейджей намеренно не подвязаны.
   ============================================================ */
.btn, .pdp-add, .catalog-filter-btn, .select-cs__btn, .select-cs__menu,
.size-chip, .card-sizes__chip, .acc-form .btn, .account-content button[type="submit"],
.pay-opt, .ship-opt, .radio-row, .filters .btn, .lead-cta__form .btn,
.newsletter__form button, .qty {
	border-radius: var(--radius-btn, 0);
}
.input, .input-text, .price-input, .account-content .form-row .input-text,
.account-content .form-row select, textarea.input, .select-cs__opt,
.acc-form .input, .float-field > input, .float-field > textarea {
	border-radius: var(--radius-ctl, var(--radius-btn, 0));
}
.product-card__media, .product-card__media img, .pdp__cell, .cat-tile__img,
.order-card, .account-tile, .account-content table.shop_table, .account-content address,
.contacts__grid, .checkout-step, .summary, .order-box, .card-sizes,
.cart-toast, .search-item__img, .about__collage figure, .banner, .map,
.filters__form .filter-group, .pdp-sticky, .account-empty svg {
	border-radius: var(--radius-card, 0);
}
.product-card__media, .pdp__cell, .cat-tile__img, .about__collage figure, .banner, .map, .contacts__grid {
	overflow: hidden;
}

/* ============================================================
   ЖУРНАЛ: карточки статей, архив, детальная страница
   ============================================================ */
.blog-head { margin-bottom: 34px; }
.blog-head__sub { font-size: 15px; color: var(--text-soft); margin: 12px 0 0; max-width: 520px; line-height: 1.6; }

.blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 35px; }
.post-card { display: flex; flex-direction: column; }
.post-card__media {
	display: block; aspect-ratio: 4 / 3; overflow: hidden;
	background: var(--bg-cream); border-radius: var(--radius-card, 0); margin-bottom: 16px;
}
.post-card__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; transition: transform .6s ease; }
.post-card:hover .post-card__media img { transform: scale(1.04); }
.post-card__meta { display: flex; align-items: center; gap: 8px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-soft); margin-bottom: 9px; }
.post-card__cat { color: var(--accent); }
.post-card__title { font-family: var(--font-head); font-weight: 500; font-size: 22px; line-height: 1.25; margin: 0 0 8px; }
.post-card__title a { color: var(--ink); transition: color .2s ease; }
.post-card__title a:hover { color: var(--accent); }
.post-card__excerpt { font-size: 14px; line-height: 1.6; color: var(--text-muted); margin: 0 0 12px; }
.post-card__more {
	display: inline-flex; align-items: center; gap: 7px; margin-top: auto;
	font-size: 12px; letter-spacing: .07em; text-transform: uppercase; color: var(--ink);
	transition: color .2s ease, gap .2s ease;
}
.post-card__more:hover { color: var(--accent); gap: 11px; }

/* Пагинация архива */
.pagination, .navigation.pagination { margin-top: 44px; }
.pagination .nav-links { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 40px; height: 40px; padding: 0 13px; border: 1px solid var(--line);
	font-size: 13px; color: var(--ink); border-radius: var(--radius-btn, 0); transition: all .15s ease;
}
.pagination .page-numbers.current, .pagination .page-numbers:hover { background: var(--ink); color: var(--bg-card); border-color: var(--ink); }
.pagination .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* Детальная статья */
.article { max-width: 760px; margin: 0 auto; }
.article__head { text-align: left; margin-bottom: 22px; }
.article__title { font-family: var(--font-head); font-weight: 500; font-size: clamp(34px, 4.6vw, 52px); line-height: 1.1; margin: 10px 0 0; }
.article__cover { margin: 0 0 34px; aspect-ratio: 16 / 9; overflow: hidden; background: var(--bg-cream); border-radius: var(--radius-card, 0); }
.article__cover img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.article__body { font-size: 16px; line-height: 1.75; color: var(--ink-2); }
.article__body p { margin: 0 0 18px; }
.article__body h2 { font-family: var(--font-head); font-weight: 500; font-size: 28px; line-height: 1.2; margin: 34px 0 14px; color: var(--ink); }
.article__body h3 { font-family: var(--font-head); font-weight: 500; font-size: 22px; margin: 28px 0 10px; color: var(--ink); }
.article__body ul, .article__body ol { margin: 0 0 18px; padding-left: 22px; }
.article__body li { margin-bottom: 8px; }
.article__body blockquote {
	margin: 26px 0; padding: 4px 0 4px 22px; border-left: 2px solid var(--accent);
	font-family: var(--font-head); font-size: 21px; line-height: 1.45; color: var(--ink);
}
.article__body a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.article__body img { max-width: 100%; height: auto; border-radius: var(--radius-card, 0); }
.article__foot { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 36px; padding-top: 26px; border-top: 1px solid var(--line); }
.article-more { max-width: 1440px; margin: 64px auto 0; padding-top: 44px; border-top: 1px solid var(--line); }

@media (max-width: 900px) {
	.blog-grid { grid-template-columns: 1fr; gap: 30px; }
	.article__cover { aspect-ratio: 4 / 3; }
	.article-more { margin-top: 44px; }
}
