/* Vita5 CRO/accessibility safeguards. Kept separate so theme/plugin updates stay mergeable. */

/* The Woodmart progress bar is an unconditional free-shipping promise. Real tariffs follow below. */
.widget_shopping_cart .wd-free-progress-bar,
.shopping-cart-widget-body .wd-free-progress-bar,
.cart-widget-side .wd-free-progress-bar {
	display: none !important;
}

/* The variation choice is the decision; it must precede quantity and purchase actions. */
.single-product form.variations_form.v5cro-variable-ready {
	display: flex;
	flex-direction: column;
}

.single-product form.variations_form.v5cro-variable-ready .variations {
	order: 10;
}

.single-product form.variations_form.v5cro-variable-ready .vita5-selected-variation-price {
	order: 20;
}

.single-product form.variations_form.v5cro-variable-ready .v5-var-buy-row {
	order: 30;
	width: 100%;
}

.single-product form.variations_form.v5cro-variable-ready .single_variation_wrap {
	order: 40;
}

.v5cro-variation-heading {
	margin: 3px 0 5px;
	color: #25352a;
	font-size: 15px;
	font-weight: 700;
}

.single-product .variations .cfvsw-swatches-option,
.single-product .variations .variable-item,
.single-product select.v5-var-select {
	min-width: 44px !important;
	min-height: 44px !important;
}

.single-product .variations [role="radio"]:focus-visible,
.single-product select.v5-var-select:focus-visible,
.v5hero button:focus-visible,
.v5cro-cart-status a:focus-visible,
.v5cro-cart-status button:focus-visible {
	outline: 3px solid #ff9800 !important;
	outline-offset: 2px !important;
}

/* AJAX add-to-cart must never look like a no-op. */
/* ⛔⛔⛔ 03.09.2026. Подтверждение «Товар добавлен» рисовалось ПОД баннером
   куки: у баннера z-index 99999, у тоста был 10020, и оба живут внизу экрана.
   Замер на телефоне 375 px: тост 640..745, баннер 589..745 — накрыт целиком,
   вместе со ссылкой «Открыть корзину». Поднимаем и над баннером, и НАД его
   высотой: --v5cookie-height объявляет сам баннер, пока он на экране. */
.v5cro-cart-status {
	position: fixed;
	right: 20px;
	bottom: calc(24px + var(--v5cookie-height, 0px));
	z-index: 100010;
	display: flex;
	align-items: center;
	gap: 12px;
	max-width: min(430px, calc(100vw - 32px));
	padding: 14px 44px 14px 16px;
	border: 1px solid #cbe0cd;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 12px 36px rgba(18, 48, 25, .2);
	color: #183b20;
	font-size: 14px;
	line-height: 1.35;
}

.v5cro-cart-status[hidden] {
	display: none !important;
}

.v5cro-cart-status__message {
	font-weight: 600;
}

.v5cro-cart-status__link {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	color: #237a32;
	font-weight: 700;
	white-space: nowrap;
}

.v5cro-cart-status__close {
	position: absolute;
	top: 3px;
	right: 3px;
	width: 40px;
	height: 40px;
	min-width: 40px !important;
	min-height: 40px !important;
	padding: 0 !important;
	border: 0;
	background: transparent;
	color: #405146;
	font-size: 25px;
	line-height: 1;
}

.v5cro-search-heading {
	margin: 0 0 20px;
}

.v5cro-search-heading h1 {
	margin: 0;
	font-size: clamp(24px, 3vw, 36px);
	line-height: 1.2;
}

/*
 * ⛔⛔⛔ 05.09.2026, рецидив №7 класса «баннер поверх кнопки», найден замером
 * на ширине 900px. Всё, что поднимает нижнюю мебель, лежало в
 * @media (max-width: 768px). А нижняя панель темы .wd-toolbar живёт ДО 1024px
 * включительно (гасится только @media (min-width:1025px),
 * themes/woodmart/css/parts/opt-bottom-toolbar.min.css).
 *
 * Замер на боевом сайте, окно 900x700, страница каталога:
 *   панель 645..700, баннер согласия 612..684 (то есть по базовому правилу
 *   bottom:16px, подъём не действовал), z 99999 против 350;
 *   elementFromPoint в центре пункта панели вернул «v5cookie-in».
 * То есть на планшете и на телефоне В АЛЬБОМНОЙ ориентации (844/852/932px)
 * новый посетитель не мог нажать ни «Каталог», ни «Корзина», ни «Мой аккаунт»:
 * под пальцем была кнопка баннера «Понятно». Ровно то, что владелец нашёл сам,
 * только на другой ширине.
 *
 * СВОЙСТВО, которое теперь держим: граница подъёма обязана совпадать с границей
 * САМОЙ ПАНЕЛИ, а не с произвольным «мобильным» порогом. Есть панель — есть
 * подъём. Сторож bin/check-fab-clearance.py проверяет именно это.
 */
@media (max-width: 1024px) {
	body.single-product .vita5-product-sticky-cta {
		bottom: calc(var(--v5cro-toolbar-h, 55px) + env(safe-area-inset-bottom, 0px)) !important;
		z-index: 410 !important;
	}

	body.single-product.wd-sticky-btn-on-mb,
	body.single-product.sticky-toolbar-on {
		padding-bottom: calc(var(--v5cro-bottom-stack, 128px) + 24px) !important;
	}

	/* Telegram stays discoverable on content pages and leaves purchase/navigation flows clear. */
	.v5-picker {
		left: 14px !important;
		bottom: calc(var(--v5cro-toolbar-h, 55px) + 12px + env(safe-area-inset-bottom, 0px)) !important;
		min-width: 48px !important;
		min-height: 48px !important;
	}

	body.v5cro-cookie-visible .v5-picker,
	body.single-product .v5-picker,
	body.woocommerce-cart .v5-picker,
	body.woocommerce-checkout .v5-picker,
	body.woocommerce-account .v5-picker {
		display: none !important;
	}

	/* Consent remains reachable without covering either the toolbar or the Buy action. */
	html body #v5cookie {
		bottom: calc(var(--v5cro-bottom-stack, 55px) + 12px) !important;
		max-height: min(46vh, 360px);
		overflow: auto;
	}

	/*
	 * There are two independent sticky-buy implementations; the native one is the
	 * duplicate. Both boundaries must meet the toolbar band (1024), not 767/768:
	 * measured 05.09.2026 at 768 no buy button existed at all, and at 900 a tap on
	 * the theme bar landed on the toolbar account link instead.
	 */
	body.single-product .wd-sticky-btn {
		display: none !important;
	}

	body.single-product .vita5-product-sticky-cta__button {
		min-width: 112px;
		min-height: 48px;
	}

	/*
	 * ⛔ 05.09.2026. Тост «Товар добавлен» — ТОЖЕ нижняя мебель, и он остался
	 * единственным правилом низа с границей 768, когда всё прочее подняли до 1024.
	 *
	 * ЗАМЕР на боевом сайте, окно 900x700, каталог, добавление с плитки:
	 *   до правки  тост 602..676 (bottom:24px), пункт «Мой аккаунт» 650..695 —
	 *              elementFromPoint в его центре вернул «v5cro-cart-status»;
	 *   после      тост 559..633 (bottom:67px), все три пункта свободны.
	 *
	 * ⚠️ Условие, без которого дефект НЕ воспроизводится: баннера согласия на
	 * экране нет. У нового посетителя баннер объявляет --v5cookie-height (замер:
	 * 84px), и базовое правило поднимало тост само собой. Страдал ВЕРНУВШИЙСЯ
	 * покупатель — то есть большинство. Накрыт был один пункт, крайний правый:
	 * тост шириной 376px прижат вправо базовым right:20.
	 *
	 * Ширину полосы во весь экран оставляем на 768 — она нужна телефону,
	 * а не планшету; сюда перенесён ровно подъём.
	 */
	.v5cro-cart-status {
		bottom: calc(var(--v5cro-bottom-stack, 55px) + 12px + var(--v5cookie-height, 0px));
	}
}

@media (max-width: 768px) {
	/* Только ширина: подъём живёт выше, на всей полосе существования панели. */
	.v5cro-cart-status {
		right: 12px;
		left: 12px;
		max-width: none;
		flex-wrap: wrap;
	}

	.v5cro-cart-status__link {
		margin-right: 26px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.v5hero__track {
		transition: none !important;
	}

	.v5cro-cart-status {
		scroll-behavior: auto;
	}
}
