/*
 * Vapes SBH — finitions.
 * L'essentiel du style vient de theme.json ; ici on affine ce que les blocs
 * ne couvrent pas (header, cartes produit, WooCommerce, accueil).
 */

:root {
	--vsb-radius: 18px;
	--vsb-shadow: 0 18px 40px -18px rgba(0, 0, 0, 0.7);
	--vsb-glow: 0 14px 36px -14px rgba(25, 211, 197, 0.45);
	--vsb-ease: 240ms cubic-bezier(0.22, 0.9, 0.32, 1);
}

html { scroll-behavior: smooth; }
body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
img { height: auto; }

/* ---------- Typo utilitaires ---------- */
.vsb-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0 0 0.5rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
}
.vsb-eyebrow::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: currentColor;
	box-shadow: 0 0 12px currentColor;
}
.vsb-accent-text {
	background: linear-gradient(120deg, var(--wp--preset--color--accent), var(--wp--preset--color--sand));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

/* ---------- Header ---------- */
.vsb-topbar a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.vsb-topbar p { margin: 0; }

.vsb-site-header,
header:has(> .vsb-header) {
	position: sticky;
	top: 0;
	z-index: 100;
}
.vsb-header {
	background: rgba(11, 15, 20, 0.82);
	backdrop-filter: saturate(160%) blur(14px);
	-webkit-backdrop-filter: saturate(160%) blur(14px);
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.admin-bar .vsb-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .vsb-site-header { top: 0; } }

.vsb-header .wp-block-site-title a { text-decoration: none; }
.vsb-header .wp-block-navigation a { text-decoration: none; transition: color var(--vsb-ease); }
.vsb-header .wp-block-navigation-item.current-menu-item > a { color: var(--wp--preset--color--accent); }
.wc-block-mini-cart__button,
.wc-block-customer-account a { color: var(--wp--preset--color--contrast); }

/* ---------- Boutons ---------- */
.wp-element-button,
.wp-block-button__link {
	transition: transform var(--vsb-ease), background-color var(--vsb-ease), color var(--vsb-ease), box-shadow var(--vsb-ease);
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link { box-shadow: var(--vsb-glow); }
.wp-element-button:hover,
.wp-block-button__link:hover { transform: translateY(-2px); }

.wp-block-button.is-style-outline > .wp-block-button__link,
.vsb-btn-ghost .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--contrast);
	border: 1px solid var(--wp--preset--color--border);
	box-shadow: none;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
	background: transparent;
}
.vsb-btn-whatsapp .wp-block-button__link { background: #25D366; color: #06140C; box-shadow: none; }
.vsb-btn-whatsapp .wp-block-button__link:hover { background: var(--wp--preset--color--contrast); }

/* ---------- Hero ---------- */
.vsb-hero { overflow: hidden; }
.vsb-hero-points {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	margin-top: 2rem;
	padding: 0;
	list-style: none;
	font-size: 0.92rem;
	color: var(--wp--preset--color--muted);
}
.vsb-hero-points li::before {
	content: "✓";
	margin-right: 0.45rem;
	color: var(--wp--preset--color--accent);
	font-weight: 700;
}
.vsb-hero-mosaic {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 0.9rem;
	aspect-ratio: 1 / 1;
}
.vsb-hero-mosaic > * { margin: 0 !important; }
.vsb-hero-mosaic figure,
.vsb-hero-mosaic a { display: block; height: 100%; }
.vsb-hero-mosaic img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 22px;
	border: 1px solid var(--wp--preset--color--border);
	box-shadow: var(--vsb-shadow);
	transition: transform 500ms cubic-bezier(0.22, 0.9, 0.32, 1);
}
.vsb-hero-mosaic a:hover img { transform: scale(1.03); }
.vsb-hero-mosaic .vsb-m1 { grid-row: 1 / 3; }

/* ---------- Catégories & étapes ---------- */
.vsb-cat,
.vsb-step {
	position: relative;
	padding: 1rem 1rem 1.5rem;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--vsb-radius);
	transition: transform var(--vsb-ease), border-color var(--vsb-ease), box-shadow var(--vsb-ease);
}
.vsb-step { padding: 1.75rem; background: var(--wp--preset--color--base); }
.vsb-cat:hover { transform: translateY(-4px); border-color: var(--wp--preset--color--accent); box-shadow: var(--vsb-shadow); }
.vsb-cat figure { margin: 0 0 1rem; }
.vsb-cat img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; }
.vsb-cat h3 { margin: 0 0 0.35rem; }
.vsb-cat h3 a { color: var(--wp--preset--color--contrast); text-decoration: none; }
/* Toute la carte est cliquable */
.vsb-cat h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.vsb-cat p { margin: 0; font-size: 0.95rem; }

.vsb-step-num {
	margin: 0 0 0.75rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--accent);
}
.vsb-step h3 { margin: 0 0 0.5rem; }
.vsb-step p { margin: 0; }

/* ---------- Pastilles catégories (boutique) ---------- */
.vsb-chips p { margin: 0; }
.vsb-chips a {
	display: inline-block;
	padding: 0.45rem 1rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	font-size: 0.9rem;
	font-weight: 500;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	transition: border-color var(--vsb-ease), color var(--vsb-ease);
}
.vsb-chips a:hover { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent); }

/* ---------- Cartes produit ---------- */
.wc-block-product-template > li,
.wp-block-woocommerce-product-template > li,
.products-block-post-template > li,
ul.products li.product {
	display: flex;
	flex-direction: column;
	padding: 0.75rem 0.75rem 1.1rem !important;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--vsb-radius);
	transition: transform var(--vsb-ease), border-color var(--vsb-ease), box-shadow var(--vsb-ease);
}
.wc-block-product-template > li:hover,
.wp-block-woocommerce-product-template > li:hover,
.products-block-post-template > li:hover,
ul.products li.product:hover {
	transform: translateY(-4px);
	border-color: var(--wp--preset--color--accent);
	box-shadow: var(--vsb-shadow);
}
.wc-block-components-product-image img,
.wc-block-grid__product-image img,
ul.products li.product img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 12px;
}
.wc-block-product-template .wp-block-post-title a,
.products-block-post-template .wp-block-post-title a { text-decoration: none; }
.wc-block-components-product-price,
.wp-block-woocommerce-product-price {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	color: var(--wp--preset--color--accent);
}
.wc-block-product-template .wp-block-woocommerce-product-button,
.products-block-post-template .wp-block-woocommerce-product-button { margin-top: auto; }
.wc-block-components-product-button .wp-block-button__link,
.wc-block-components-product-button__button {
	width: 100%;
	justify-content: center;
	box-shadow: none !important;
}

.wc-block-components-product-sale-badge,
.woocommerce span.onsale {
	background: var(--wp--preset--color--sand);
	color: var(--wp--preset--color--base);
	border: 0;
	border-radius: 999px;
	font-weight: 700;
	padding: 0.25rem 0.7rem;
}

/* Tri / compteur */
.woocommerce-ordering select,
.wc-block-catalog-sorting select,
.woocommerce-result-count { font-size: 0.9rem; color: var(--wp--preset--color--muted); }
.woocommerce-ordering select {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 10px;
	padding: 0.5rem 0.75rem;
}

/* Pagination */
.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	padding: 0.35rem 0.75rem;
	border-radius: 8px;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}
.wp-block-query-pagination .current { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--base); }

/* Fil d'Ariane */
.woocommerce-breadcrumb,
.wc-block-breadcrumbs { color: var(--wp--preset--color--muted); }
.woocommerce-breadcrumb a,
.wc-block-breadcrumbs a { color: var(--wp--preset--color--muted); text-decoration: none; }
.woocommerce-breadcrumb a:hover { color: var(--wp--preset--color--accent); }

/* ---------- Fiche produit ---------- */
.vsb-product .woocommerce-product-gallery__image img,
.vsb-product .flex-control-thumbs img { border-radius: 14px; }
.vsb-product .flex-control-thumbs { display: flex; gap: 0.5rem; margin-top: 0.75rem; padding: 0; list-style: none; }
.vsb-product .flex-control-thumbs li { width: 72px; }

.vsb-product-info .wp-block-woocommerce-product-price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
}
.vsb-product-info form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: stretch;
	margin: 1.5rem 0;
}
.vsb-product-info .quantity input.qty {
	width: 4.5rem;
	height: 100%;
	min-height: 3rem;
	text-align: center;
	background: var(--wp--preset--color--surface-alt);
	color: var(--wp--preset--color--contrast);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	font-weight: 600;
}
.vsb-product-info form.cart .single_add_to_cart_button { flex: 1 1 12rem; min-height: 3rem; }

.vsb-product-perks {
	margin: 1.5rem 0;
	padding: 1.1rem 1.25rem;
	list-style: none;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 14px;
	font-size: 0.93rem;
}
.vsb-product-perks li { padding: 0.2rem 0; }
.vsb-product-perks li::before { content: "✓"; margin-right: 0.55rem; color: var(--wp--preset--color--accent); font-weight: 700; }
.wp-block-woocommerce-product-meta { font-size: 0.88rem; color: var(--wp--preset--color--muted); }

/* Onglets description */
.vsb-product-details .wc-tabs,
.woocommerce-tabs ul.tabs {
	display: flex;
	gap: 0.5rem;
	padding: 0;
	margin: 0 0 1.5rem;
	list-style: none;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 0.75rem 1rem;
	color: var(--wp--preset--color--muted);
	text-decoration: none;
	font-weight: 600;
	border-bottom: 2px solid transparent;
}
.woocommerce-tabs ul.tabs li.active a { color: var(--wp--preset--color--contrast); border-bottom-color: var(--wp--preset--color--accent); }
.woocommerce-Tabs-panel { max-width: 780px; }

/* Tableaux de prix dégressifs (WPC) */
.woocommerce table,
.woopq-table,
.wpcpq-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.92rem;
}
.woocommerce table th,
.woocommerce table td,
.wpcpq-table th,
.wpcpq-table td {
	padding: 0.6rem 0.75rem;
	border: 1px solid var(--wp--preset--color--border);
}

/* ---------- Boutons WooCommerce classiques ---------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .button.alt,
.woocommerce #respond input#submit {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--base);
	border: 0;
	border-radius: 999px;
	padding: 0.85rem 1.5rem;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	transition: background-color var(--vsb-ease), transform var(--vsb-ease);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce .button.alt:hover {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	transform: translateY(-2px);
}

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast);
	border: 1px solid var(--wp--preset--color--border);
	border-left: 3px solid var(--wp--preset--color--accent);
	border-radius: 12px;
}
.woocommerce-error { border-left-color: #F2716B; }

/* ---------- Formulaires (panier, commande, compte) ---------- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container .select2-selection,
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-blocks-components-select__select,
input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="search"], input[type="number"], textarea, select {
	background: var(--wp--preset--color--surface-alt);
	color: var(--wp--preset--color--contrast);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 10px;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea { padding: 0.75rem 1rem; }
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--wp--preset--color--contrast); }
.select2-dropdown { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); }
.wc-block-components-text-input label,
.wc-block-components-text-input.is-active label { color: var(--wp--preset--color--muted); }

.woocommerce table.shop_table,
.wc-block-cart,
.wc-block-checkout { color: var(--wp--preset--color--contrast); }
.woocommerce table.shop_table { border-color: var(--wp--preset--color--border); border-radius: 14px; }
.woocommerce-checkout-review-order,
.cart-collaterals .cart_totals,
.wc-block-components-sidebar .wc-block-components-panel,
.wc-block-cart__sidebar,
.wc-block-checkout__sidebar {
	background: var(--wp--preset--color--surface);
	border-radius: var(--vsb-radius);
}
.cart-collaterals .cart_totals,
.woocommerce-checkout-review-order { padding: 1.5rem; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; }
.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 0.6rem 0;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.woocommerce-MyAccount-navigation li.is-active a { color: var(--wp--preset--color--accent); }

/* ---------- Pied de page ---------- */
.vsb-footer-title {
	margin-bottom: 0.9rem;
	font-size: 0.8rem !important;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted) !important;
}
.vsb-footer-links { list-style: none; padding: 0; margin: 0; }
.vsb-footer-links li { margin: 0.4rem 0; }
.vsb-footer-links a { color: var(--wp--preset--color--contrast); text-decoration: none; font-size: 0.95rem; }
.vsb-footer-links a:hover { color: var(--wp--preset--color--accent); }

/* ---------- Contenu des pages ---------- */
.entry-content a,
.wp-block-post-content a:not(.wp-element-button) { text-decoration: underline; text-underline-offset: 3px; }
.wp-block-post-content :where(ul, ol) { padding-left: 1.25rem; }

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
	.vsb-hero-mosaic { aspect-ratio: 4 / 3; }
	.vsb-header .wp-block-site-logo { display: none; }
	.wc-block-product-template.is-flex-container,
	.wp-block-woocommerce-product-template.is-flex-container {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.75rem;
	}
	.wc-block-product-template.is-flex-container > li,
	.wp-block-woocommerce-product-template.is-flex-container > li { width: auto !important; margin: 0 !important; }
	.products-block-post-template.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* ---------- Accessibilité ---------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
.wp-element-button:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* ---------- Correctifs 2.0.1 ---------- */
:root { color-scheme: dark; }
.wp-site-blocks > main,
.wp-site-blocks > .vsb-site-header + * { margin-block-start: 0; }

.vsb-hero-mosaic { grid-template-rows: repeat(2, minmax(0, 1fr)); }
.vsb-hero-mosaic figure { overflow: hidden; min-height: 0; border-radius: 22px; }

.wc-block-components-notice-banner,
.wc-block-components-notice-banner.is-info,
.wc-block-components-notice-banner.is-success,
.wc-block-components-notice-banner.is-error {
	background: var(--wp--preset--color--surface) !important;
	color: var(--wp--preset--color--contrast) !important;
	border: 1px solid var(--wp--preset--color--border) !important;
	border-left: 3px solid var(--wp--preset--color--accent) !important;
	border-radius: 12px;
}
.wc-block-components-notice-banner.is-error { border-left-color: #F2716B !important; }
.wc-block-components-notice-banner > svg { background: var(--wp--preset--color--accent) !important; fill: var(--wp--preset--color--base) !important; }
.wc-block-components-notice-banner a { color: var(--wp--preset--color--accent); }

.woocommerce form .form-row .input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce form .form-row input[type="time"],
.woocommerce form .form-row input[type="date"] {
	background: var(--wp--preset--color--surface-alt) !important;
	color: var(--wp--preset--color--contrast) !important;
	border: 1px solid var(--wp--preset--color--border) !important;
	border-radius: 10px;
	padding: 0.75rem 1rem;
}
::placeholder { color: var(--wp--preset--color--muted); opacity: 0.8; }

@media (max-width: 781px) {
	.vsb-hero-mosaic {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		grid-template-rows: minmax(0, 1fr);
		aspect-ratio: auto;
		height: 220px;
	}
	.vsb-hero-mosaic .vsb-m1 { grid-row: auto; }
	.vsb-cat {
		display: grid;
		grid-template-columns: 88px 1fr;
		gap: 0.25rem 1rem;
		align-items: center;
		padding: 0.75rem;
	}
	.vsb-cat figure { grid-row: 1 / 3; margin: 0; }
	.vsb-cat img { aspect-ratio: 1 / 1; }
	.vsb-cat h3 { margin: 0; font-size: 1.15rem; }
	.vsb-cat p { font-size: 0.88rem; line-height: 1.45; }
}

/* ---------- Correctifs 2.0.2 : guides & menu ---------- */
/* Les guides ont déjà leur propre H1 : on masque le titre du modèle. */
main:has(.csbh-guide) > .wp-block-post-title { display: none; }

/* Guides (.csbh-guide) adaptés au fond sombre. */
body .csbh-guide {
	--g: var(--wp--preset--color--accent);
	--g2: var(--wp--preset--color--accent);
	--gs: var(--wp--preset--color--surface);
	--ink: var(--wp--preset--color--contrast);
	--mut: var(--wp--preset--color--muted);
	--line: var(--wp--preset--color--border);
	color: var(--wp--preset--color--contrast);
}
body .csbh-guide h2,
body .csbh-guide h3 { color: var(--wp--preset--color--contrast); }
body .csbh-guide .csbh-box h3 { color: var(--wp--preset--color--accent); }
body .csbh-guide .csbh-warn {
	background: rgba(233, 216, 180, 0.08);
	border-color: rgba(233, 216, 180, 0.35);
}
body .csbh-guide .csbh-table th { background: var(--wp--preset--color--surface-alt); color: var(--wp--preset--color--contrast); }
body .csbh-guide .csbh-table th,
body .csbh-guide .csbh-table td { border-bottom-color: var(--wp--preset--color--border); }
body .csbh-guide .csbh-faq details {
	background: var(--wp--preset--color--surface);
	border-color: var(--wp--preset--color--border);
}
body .csbh-guide .csbh-faq summary { color: var(--wp--preset--color--contrast); }
body .csbh-guide .csbh-cta a {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--base) !important;
}
body .csbh-guide .csbh-cta a.csbh-alt {
	background: transparent;
	color: var(--wp--preset--color--accent) !important;
	border-color: var(--wp--preset--color--accent);
}
body .csbh-guide .csbh-maj { color: var(--wp--preset--color--muted) !important; }

/* Menu : reste sur une ligne entre tablette et petit écran d'ordinateur. */
.vsb-header .wp-block-site-title { white-space: nowrap; }
.vsb-header .wp-block-navigation__container { flex-wrap: nowrap; }
@media (min-width: 600px) and (max-width: 1080px) {
	.vsb-header .wp-block-navigation { --wp--style--block-gap: 1rem; font-size: 0.88rem; }
	.vsb-header .wp-block-navigation__container { gap: 1rem; }
	.vsb-header .wp-block-site-logo { display: none; }
}

/* ---------- Correctifs 2.0.3 : vérification d'âge & menu ---------- */
.vsb-header .wp-block-navigation-item__content { white-space: nowrap; }

:root,
.age-gate__wrapper {
	--ag-form-background: #131A21;
	--ag-text-color: #F4F6F8;
}
.age-gate__background-color {
	background: radial-gradient(120% 90% at 85% 0%, rgba(25, 211, 197, 0.16) 0%, rgba(11, 15, 20, 0) 55%), #0B0F14 !important;
	opacity: 1 !important;
}
.age-gate {
	max-width: 420px;
	padding: 2.5rem 2rem !important;
	background: var(--wp--preset--color--surface) !important;
	color: var(--wp--preset--color--contrast) !important;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 24px;
	box-shadow: 0 30px 80px -30px rgba(0, 0, 0, 0.8);
	font-family: var(--wp--preset--font-family--body);
	text-align: center;
}
.age-gate__heading-title {
	margin: 0 0 0.5rem !important;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 2rem !important;
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--wp--preset--color--contrast) !important;
}
.age-gate__challenge { color: var(--wp--preset--color--muted) !important; font-size: 1.05rem; }
.age-gate__buttons { display: flex; justify-content: center; gap: 0.75rem; margin-top: 1.25rem; }
.age-gate__submit {
	min-width: 7rem;
	padding: 0.85rem 1.6rem !important;
	border-radius: 999px !important;
	font-family: var(--wp--preset--font-family--heading) !important;
	font-weight: 600 !important;
	font-size: 0.95rem !important;
	cursor: pointer;
	transition: transform var(--vsb-ease), background-color var(--vsb-ease);
}
.age-gate__submit--yes {
	background: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--base) !important;
	border: 0 !important;
	box-shadow: var(--vsb-glow);
}
.age-gate__submit--no {
	background: transparent !important;
	color: var(--wp--preset--color--contrast) !important;
	border: 1px solid var(--wp--preset--color--border) !important;
}
.age-gate__submit:hover { transform: translateY(-2px); }

/* ---------- 2.1.0 : menu mobile, animations ---------- */
/* Le flou de l'en-tête passe sur un pseudo-élément : appliqué directement,
   il emprisonnait le menu mobile (position: fixed) dans la barre. */
.vsb-header {
	position: relative;
	isolation: isolate;
	background: transparent;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}
.vsb-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(11, 15, 20, 0.82);
	-webkit-backdrop-filter: saturate(160%) blur(14px);
	backdrop-filter: saturate(160%) blur(14px);
	transition: background-color 300ms ease, box-shadow 300ms ease;
}
.vsb-scrolled .vsb-header::before {
	background: rgba(11, 15, 20, 0.95);
	box-shadow: 0 12px 30px -18px rgba(0, 0, 0, 0.9);
}

/* Bouton d'ouverture / fermeture (le bouton d'ouverture n'existe que sous 600 px). */
@media (max-width: 599px) {
	.vsb-header .wp-block-navigation__responsive-container-open { display: flex; }
}
.vsb-header .is-menu-open .wp-block-navigation__responsive-container-close { display: flex; }
.vsb-header .wp-block-navigation__responsive-container-open,
.vsb-header .wp-block-navigation__responsive-container-close {
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	color: var(--wp--preset--color--contrast);
}

/* Menu plein écran. */
.vsb-header .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.25rem clamp(1rem, 5vw, 2.5rem) 2rem;
	background: radial-gradient(120% 70% at 100% 0%, rgba(25, 211, 197, 0.16) 0%, rgba(11, 15, 20, 0) 60%), var(--wp--preset--color--base) !important;
}
.vsb-header .is-menu-open .wp-block-navigation__responsive-container-close {
	top: 1.25rem;
	right: clamp(1rem, 5vw, 2.5rem);
}
.vsb-header .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 4.5rem;
	align-items: stretch;
}
.vsb-header .is-menu-open .wp-block-navigation__container {
	flex-direction: column;
	align-items: stretch !important;
	gap: 0 !important;
	width: 100%;
}
.vsb-header .is-menu-open .wp-block-navigation-item {
	width: 100%;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.vsb-header .is-menu-open .wp-block-navigation-item__content {
	display: block;
	padding: 1rem 0 !important;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.6rem;
	font-weight: 700;
	letter-spacing: -0.02em;
}
.vsb-header .is-menu-open .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--accent); }

/* Mobile : logo à gauche, compte / panier / menu à droite. */
@media (max-width: 599px) {
	.vsb-header .alignwide { gap: 0.5rem !important; }
	.vsb-header .alignwide > .wp-block-navigation { order: 3; }
	.vsb-header .alignwide > .wp-block-group:last-child { margin-left: auto; }
}

/* Animations : état initial tant que GSAP n'a pas pris la main. */
.vsb-anim .vsb-hero .wp-block-column:first-child > *,
.vsb-anim .vsb-hero-mosaic figure { visibility: hidden; }
.vsb-hero-mosaic figure,
.vsb-hero-mosaic img { will-change: transform; }

/* ---------- 2.3.0 : fiche produit à variantes ---------- */
/* La classe .product (nécessaire au changement de photo par variante)
   ne doit pas réactiver la mise en page flottante de WooCommerce. */
.vsb-product.product div.images,
.vsb-product.product div.summary { float: none !important; width: 100% !important; }

.vsb-product-info .wp-block-woocommerce-product-summary { color: var(--wp--preset--color--muted); }
.vsb-product-info .wp-block-woocommerce-product-summary p { margin: 0 0 1rem; }
.vsb-checks {
	display: grid;
	gap: 0.55rem;
	margin: 1.25rem 0;
	padding: 0;
	list-style: none;
}
.vsb-checks li {
	position: relative;
	padding-left: 2rem;
	color: var(--wp--preset--color--contrast);
	line-height: 1.5;
}
.vsb-checks li::before {
	content: "✓";
	position: absolute;
	top: 0.1rem;
	left: 0;
	display: grid;
	place-items: center;
	width: 1.3rem;
	height: 1.3rem;
	border-radius: 6px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--base);
	font-size: 0.78rem;
	font-weight: 800;
}

/* Formulaire à variantes : empilé, pas en ligne. */
.vsb-product-info form.variations_form { display: block; }
.vsb-product-info table.variations { width: 100%; margin: 0 0 1rem; border: 0; }
.vsb-product-info table.variations tr,
.vsb-product-info table.variations th,
.vsb-product-info table.variations td { display: block; padding: 0; border: 0; background: none; text-align: left; }
.vsb-product-info table.variations th.label label {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
}
.vsb-product-info .cfvsw-selected-label { margin-left: 0.5rem; color: var(--wp--preset--color--accent); font-weight: 600; }

/* Boutons de saveur. */
.vsb-product-info .cfvsw-swatches-container { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.vsb-product-info .cfvsw-swatches-option.cfvsw-label-option {
	min-width: 0 !important;
	min-height: 0 !important;
	padding: 0.55rem 0.95rem !important;
	background: var(--wp--preset--color--surface) !important;
	color: var(--wp--preset--color--contrast) !important;
	border: 1px solid var(--wp--preset--color--border) !important;
	border-radius: 10px !important;
	box-shadow: none !important;
	font-size: 0.92rem;
	font-weight: 500;
	cursor: pointer;
	transition: border-color var(--vsb-ease), color var(--vsb-ease), background-color var(--vsb-ease);
}
.vsb-product-info .cfvsw-swatches-option.cfvsw-label-option:hover { border-color: var(--wp--preset--color--accent) !important; }
.vsb-product-info .cfvsw-swatches-option.cfvsw-selected-swatch {
	background: rgba(25, 211, 197, 0.1) !important;
	color: var(--wp--preset--color--accent) !important;
	border-color: var(--wp--preset--color--accent) !important;
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--accent) !important;
}
.vsb-product-info .reset_variations { display: inline-block; margin-top: 0.5rem; font-size: 0.85rem; color: var(--wp--preset--color--muted); }

.vsb-product-info .woocommerce-variation-price .price {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--wp--preset--color--accent);
}
.vsb-product-info .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: stretch;
	margin-top: 1rem;
}
.vsb-product-info .woocommerce-variation-add-to-cart .single_add_to_cart_button { flex: 1 1 12rem; min-height: 3rem; }
.vsb-product-info .woocommerce-variation-add-to-cart-disabled .single_add_to_cart_button { opacity: 0.45; }

/* ---------- 2.3.1 : onglets de la fiche produit ---------- */
.woocommerce div.product .woocommerce-tabs ul.tabs {
	margin: 0 0 1.5rem;
	padding: 0;
	overflow: visible;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	padding: 0.75rem 1rem;
	color: var(--wp--preset--color--muted);
	font-weight: 600;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--wp--preset--color--contrast);
	box-shadow: inset 0 -2px 0 var(--wp--preset--color--accent);
}
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	background: transparent !important;
	color: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--border) !important;
	font-style: normal;
}
