/* ============================================================
   Cbdconnection — Feuille de styles principale
   Design dark luxury B2B — Bebas Neue + JetBrains Mono + Inter
   Source : design/CBD.zip (app.jsx)
   ============================================================ */

/* ----- Variables ------------------------------------------- */
:root {
	/* Warm dark palette — décalage léger vers anthracite chaud
	   (sans virer marron) ; cards bumpés en luminosité pour pop */
	--bg-0: #100d0a;
	--bg-1: #181614;
	--bg-2: #14120f;
	--bg-3: #1c1a16;
	--card:  #1c1a16;
	--line: #2f2922;
	--line-2: #3f3830;

	--text: #f5f1ea;
	--text-dim: #d6d0c4;
	--text-mute: #aaa496;

	--gold: #d4a84b;
	--gold-2: #b8862c;
	--gold-soft: #f0d28a;
	/* Dégradé doré utilisé partout où `color: var(--gold)` est appliqué à un texte ou une icône.
	   La déclaration garde `color: var(--gold)` en fallback (couleur unie pour les SVG `currentColor`,
	   et pour les contextes où background-clip:text n'est pas supporté). */
	--gold-gradient: linear-gradient(135deg, var(--gold-soft) 0%, var(--gold) 50%, var(--gold-2) 100%);
	--green: #4a7a3e;
	--danger: #c4523f;

	--font-display: 'Inter', system-ui, -apple-system, sans-serif;
	--font-body: 'Inter', system-ui, -apple-system, sans-serif;
	--font-mono: 'Inter', system-ui, -apple-system, sans-serif;

	--container: 1500px;
	--container-narrow: 880px;
	/* Padding latéral standard du container (utilisé par .container,
	   .container-narrow et toute section qui veut s'aligner sur la grille).
	   Sub-480px on passe à 12px pour récupérer de la place sur très petits
	   mobiles. Note : les media queries ne lisent PAS les variables CSS
	   (limite native), donc on applique aussi la règle litéralement plus bas. */
	--container-px: 24px;

	/* === Breakpoints canoniques (référence pour le code futur) ===
	   Les media queries ne supportent pas var(--bp-*) — ces variables
	   servent UNIQUEMENT de documentation et de source de vérité.
	   Toute nouvelle media query doit utiliser exactement ces valeurs ;
	   les valeurs historiques (1023, 767, 599, 540, 720, 800, 900...)
	   restent en place pour ne pas casser le rendu existant, mais sont
	   considérées comme "legacy" et à consolider au fil de l'eau. */
	--bp-sm: 480px;   /* mobile compact (< 480 = très petit mobile) */
	--bp-md: 768px;   /* tablette portrait */
	--bp-lg: 1024px;  /* tablette paysage / petit desktop */
	--bp-xl: 1280px;  /* desktop confortable */

	--btn-bg: linear-gradient(135deg, #e2cb97 4%, #a88659 100%);
	--btn-bg-hover: linear-gradient(135deg, #ecd5a0 4%, #b8945f 100%);
	--btn-fg: #1a1208;

	--space-1: 4px;
	--space-2: 8px;
	--space-3: 12px;
	--space-4: 16px;
	--space-5: 24px;
	--space-6: 32px;
	--space-7: 48px;
	--space-8: 64px;
	--space-9: 80px;
	--space-10: 100px;
}

/* ----- Reset & base ---------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
html, body { margin: 0; padding: 0; }
body {
	background: var(--bg-0);
	color: var(--text);
	font-family: var(--font-body);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	line-height: 1.5;
	font-size: 15px;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--gold); text-decoration: none; transition: color .2s ease; }
a:hover, a:focus { color: var(--gold-soft); }
button { font-family: inherit; cursor: pointer; }
input, select, textarea { font-family: inherit; font-size: 14px; }
hr { border: 0; border-top: 1px solid var(--line); margin: var(--space-6) 0; }

/* ----- Typographie ----------------------------------------- */
.display, h1, h2, h3 {
	font-family: var(--font-display);
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.1;
	margin: 0;
	color: var(--text);
}
.mono { font-family: var(--font-mono); }

h1 { font-size: clamp(32px, 4.5vw, 56px); font-weight: 600; }
h2 { font-size: clamp(26px, 3.4vw, 40px); font-weight: 600; }
h3 { font-size: clamp(18px, 2vw, 24px); font-weight: 600; }
h4 { font-family: var(--font-display); font-size: 18px; font-weight: 600; color: var(--gold); margin: 0 0 var(--space-3); letter-spacing: 0; }
p { margin: 0 0 var(--space-4); }

.section-eyebrow,
.eyebrow {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.25em;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	text-transform: uppercase;
}

.text-center { text-align: center; }
.text-gold {
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
}
.text-dim { color: var(--text-dim); }
.text-mute { color: var(--text-mute); }
.is-uppercase { text-transform: uppercase; letter-spacing: 0.12em; }

/* ============================================================
   TEXTE OR EN DÉGRADÉ — appliqué aux éléments TEXTE
   où l'or principal est utilisé. On exclut les éléments qui
   portent un background propre (ronds, badges, boutons remplis).
   ============================================================ */
:is(
	.text-gold,
	.hero__title em,
	.hero__eyebrow,
	.site-footer__brand .display,
	.range-card__cta,
	.search-result__price,
	.cart-drawer__shipping-msg b,
	.filter-pill em,
	.product-card .price,
	.product-card .price .amount,
	.product-card .price ins,
	.product-card .price ins .amount,
	.blog-teasers__head a,
	.woocommerce-breadcrumb a:hover,
	.page-hero .breadcrumb a:hover,
	.sp-eta-modal__head h3,
	.sp-eta-modal__card-eta strong,
	.main-nav__list > li > a:hover,
	.main-nav__list > .current-menu-item > a,
	.main-nav__list .sub-menu a:hover .menu-item__title,
	.main-nav__list .sub-menu .current-menu-item > a .menu-item__title,
	.filter-group__title,
	.shop-sidebar .widget-title,
	.shop-sidebar h3,
	.single-product__cat,
	h1.gold-grad, h2.gold-grad, h3.gold-grad,
	.gold-grad
) {
	background: var(--btn-bg);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent !important;
}
/* Les enfants directs (amount, bdi, span, em) doivent hériter du fill transparent */
:is(
	.text-gold,
	.hero__title em,
	.site-footer__brand .display,
	.search-result__price,
	.cart-drawer__shipping-msg b,
	.product-card .price,
	.product-card .price .amount,
	.product-card .price ins,
	.product-card .price ins .amount,
	.blog-teasers__head a,
	.sp-eta-modal__head h3,
	.sp-eta-modal__card-eta strong,
	.main-nav__list > li > a:hover,
	.main-nav__list > .current-menu-item > a,
	.filter-group__title,
	.shop-sidebar .widget-title,
	.shop-sidebar h3,
	.single-product__cat,
	.gold-grad
) > * {
	background: transparent;
	-webkit-text-fill-color: inherit;
	color: inherit !important;
}

/* ----- Layout ---------------------------------------------- */
.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 var(--container-px) 24px; }
.container--wide { max-width: none; padding: 0; }
.container-narrow { width: 100%; max-width: var(--container-narrow); margin: 0 auto; padding: 0 var(--container-px); }
/* Sub-480 : on récupère 24px de largeur en passant le padding global à 12px.
   `--container-px` n'étant pas accessible aux media queries, on overrride la
   variable au scope `:root` pour qu'elle se propage à toutes les utilisations. */
@media (max-width: 480px) {
	:root { --container-px: 12px; }
}
@media (max-width: 768px) {
	.container,
	.container-narrow { padding: 0 14px; }
}
.section { padding: var(--space-10) 24px; }
.section--tight { padding: 60px 24px; }

.grid { display: grid; gap: var(--space-4); }
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }
.grid--6 { grid-template-columns: repeat(6, 1fr); }
@media (max-width: 1024px) {
	.grid--6 { grid-template-columns: repeat(3, 1fr); }
	.grid--4 { grid-template-columns: repeat(2, 1fr); }
	.grid--3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.grid--6, .grid--4, .grid--3, .grid--2 { grid-template-columns: 1fr; }
}

/* ----- Boutons --------------------------------------------- */
.btn {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 14px 22px;
	font-family: var(--font-display);
	letter-spacing: 0;
	font-size: 15px;
	text-decoration: none;
	border: none;
	border-radius: 6px;
	cursor: pointer;
	transition: transform .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
	line-height: 1;
	text-transform: uppercase;
}
.btn:hover { transform: translateY(-1px); }
.btn-gold,
.btn--primary {
	background: var(--btn-bg);
	color: var(--btn-fg);
}
.btn-gold:hover,
.btn--primary:hover { background: var(--btn-bg-hover); color: var(--btn-fg); }
.btn-ghost,
.btn--secondary {
	background: transparent;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	border: 1px solid var(--gold);
}
.btn-ghost:hover,
.btn--secondary:hover { background: rgba(212, 166, 72, 0.08); color: var(--gold-soft); }
.btn--block { width: 100%; justify-content: center; }
.btn--lg { padding: 18px 28px; font-size: 16px; }
.btn--sm { padding: 10px 16px; font-size: 13px; }

/* Placeholder pattern (utilisable pour cards sans image) */
.ph {
	background-color: #1a1a1a;
	background-image: repeating-linear-gradient(45deg, rgba(212, 166, 72, 0.06) 0 8px, transparent 8px 16px);
	border: 1px solid var(--line);
	color: var(--text-mute);
	display: flex; align-items: center; justify-content: center;
	font-family: var(--font-mono);
	font-size: 11px;
	text-align: center;
	padding: 8px;
}

/* ============================================================
   Top bar
   ============================================================ */
.topbar {
	background: var(--btn-bg);
	border-bottom: 1px solid rgba(0,0,0,0.18);
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.02em;
	color: #1a1208;
	text-transform: none;
}
.topbar a {
	color: #1a1208;
	text-decoration: none;
	transition: color .2s ease;
}
.topbar a:hover { color: #1a1208; text-decoration: underline; text-underline-offset: 3px; }
.topbar__inner {
	max-width: var(--container);
	margin: 0 auto;
	padding: 7px 24px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
}
.topbar__list {
	display: flex;
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
	flex-wrap: wrap;
	align-items: center;
}
.topbar__sep { opacity: 0.45; }
.topbar__cta { color: #1a1208; font-weight: 600; }
.topbar__code {
	display: inline-block;
	background: transparent;
	color: #1a1208;
	padding: 0 2px;
	border: 0;
	border-bottom: 1px dashed rgba(26, 18, 8, 0.45);
	border-radius: 0;
	font: inherit;
	font-weight: 700;
	font-size: 1em;
	margin: 0 2px;
	letter-spacing: 0.06em;
	cursor: pointer;
	box-shadow: none;
	transition: border-color .15s ease;
}
.topbar__code:hover { border-bottom-color: #1a1208; }
.topbar__code.is-copied { color: #1a3d1a; border-bottom-color: #1a3d1a; }

/* Toast — même registre visuel que .sp-eta-modal :
   bordure dorée via padding-box/border-box, fond card, shadow profonde.
   Position : top-center, bypass tous les overlays. */
.cbdco-toast {
	position: fixed;
	top: 20px;
	left: 50%;
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 9px 14px 9px 11px;
	max-width: calc(100vw - 32px);
	color: var(--text);
	background:
		linear-gradient(var(--card), var(--card)) padding-box,
		var(--btn-bg) border-box;
	border: 1.5px solid transparent;
	border-radius: 999px;
	box-shadow: 0 14px 36px rgba(0, 0, 0, 0.45);
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.01em;
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, 0) scale(0.96);
	transform-origin: top center;
	will-change: opacity, transform;
	transition: opacity .18s ease-out, transform .22s cubic-bezier(.2, .8, .25, 1);
	z-index: 2147483647;
}
.cbdco-toast::before {
	content: '';
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center / 14px 14px no-repeat,
		var(--btn-bg);
	box-shadow: 0 2px 8px rgba(212, 168, 75, 0.40);
}
.cbdco-toast__text { padding-top: 2px; }
.cbdco-toast.is-visible { opacity: 1; transform: translate(-50%, 0) scale(1); }
@media (max-width: 540px) {
	.cbdco-toast { left: 16px; right: 16px; transform: translate(0, 0) scale(0.96); min-width: 0; }
	.cbdco-toast.is-visible { transform: translate(0, 0) scale(1); }
}
.topbar__shipping { color: #1a1208; font-weight: 500; transition: color .2s; }
.topbar__shipping b,
.topbar__shipping bdi,
.topbar__shipping .woocommerce-Price-amount {
	display: inline;
	background: transparent;
	color: #1a1208;
	padding: 0;
	border-radius: 0;
	font-weight: 700;
	font-size: 1em;
	margin: 0 1px;
	letter-spacing: 0.02em;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	text-decoration-color: rgba(26, 18, 8, 0.55);
	cursor: pointer;
	box-shadow: none;
	transition: text-decoration-color .15s ease;
}
.topbar__shipping b:hover,
.topbar__shipping bdi:hover,
.topbar__shipping .woocommerce-Price-amount:hover { text-decoration-color: #1a1208; }
.topbar__shipping bdi .woocommerce-Price-currencySymbol { color: inherit; font-weight: inherit; }
.topbar__shipping.is-unlocked { color: #1a3d1a; font-weight: 700; }
.topbar__shipping.is-unlocked b,
.topbar__shipping.is-unlocked bdi,
.topbar__shipping.is-unlocked .woocommerce-Price-amount {
	background: transparent;
	box-shadow: none;
	padding: 0;
	color: #1a3d1a;
	font-size: 1em;
}
.topbar__mobile {
	display: none;
	width: 100%;
	text-align: center;
	font-weight: 500;
	color: #1a1208;
	font-size: 12px;
}
.topbar__mobile a { color: #1a1208; text-decoration: none; }
.topbar__mobile a:hover { color: #1a1208; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 768px) {
	.topbar { font-size: 13px; }
	.topbar__inner { padding: 8px 14px; justify-content: center; }
	.topbar__list--desktop { display: none !important; }
	.topbar__mobile { display: block; }
}


/* ============================================================
   Site header (logo + nav + actions)
   ============================================================ */
.site-header {
	background: var(--bg-1);
	border-bottom: 1px solid var(--line);
	position: relative;
	z-index: 1000;
}
html, body { overflow: visible; overflow-x: clip; }
/* Idem cart drawer + sidebar sticky. */
body.admin-bar .cart-drawer__panel { top: 32px; height: calc(100% - 32px); }
@media (max-width: 782px) { body.admin-bar .cart-drawer__panel { top: 46px; height: calc(100% - 46px); } }
body.admin-bar .shop-sidebar { top: 118px; }
@media (max-width: 782px) { body.admin-bar .shop-sidebar { top: 132px; } }
.site-header__top {
	max-width: var(--container);
	margin: 0 auto;
	padding: 14px 24px 12px;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 24px;
}
.site-header__brand {
	display: flex; align-items: center; justify-content: center; gap: 12px;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	grid-column: 2;
}
.site-header__brand .display {
	font-family: var(--font-display);
	font-size: 28px;
	font-weight: 600;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	text-transform: uppercase;
	letter-spacing: 0.02em;
}
.site-header__brand img.custom-logo,
.site-header__brand img {
	max-height: 110px;
	width: auto;
	height: auto;
	/* Smoothing par défaut du navigateur : évite le crénelage sur logos
	   anti-aliasés downscalés (le `crisp-edges` précédent désactivait
	   le filtrage et produisait l'effet d'aliasing observé). */
	image-rendering: auto;
}

.site-header__actions--left  { justify-self: start; }
.site-header__actions--right { justify-self: end; }

.main-nav--centered {
	border-top: 1px solid var(--line);
	padding: 17px 24px 12px;
}
/* Header du drawer mobile (titre + croix) — caché par défaut en desktop. */
.main-nav__head { display: none; }
/* Pied du drawer mobile (Mon compte + Recherche) — caché par défaut en desktop. */
.main-nav__foot { display: none; }
/* Quand le drawer mobile est ouvert, le menu-toggle (hamburger) est caché :
   la croix du drawer suffit pour fermer (évite le doublon visuel). */
body.cbdco-nav-open .menu-toggle { display: none; }
/* Item quiz "Trouve ton CBD" dans le menu mobile : en MAJUSCULES (uniformité
   avec les autres items du menu mobile qui sont en uppercase). */
@media (max-width: 1024px) {
	.main-nav.is-open .menu-item-quiz > a { text-transform: uppercase; }
}
/* Quand le drawer mobile est ouvert, on cache le floating cart (icône panier
   en bas à droite) — sinon il chevauche le contenu du drawer et fait moche. */
body.cbdco-nav-open .cbdco-fc,
body.cbdco-nav-open .cbdco-floating-widgets { display: none !important; }
.main-nav__list {
	display: flex;
	justify-content: center;
	gap: 36px;
	list-style: none;
	padding: 0;
	margin: 0 auto;
	max-width: var(--container);
	font-size: 15px;
	font-weight: 500;
	color: #fff;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	flex-wrap: wrap;
}
.main-nav__list a {
	color: inherit;
}
.main-nav__list a:hover,
.main-nav__list .current-menu-item > a { color: var(--gold); }

/* === Sous-menu MEGA-BAR : barre pleine largeur sous la nav principale ====
   Sur desktop, le sous-menu d'un item du menu principal s'affiche comme une
   bande horizontale juste sous la nav (full-width), pas comme une popup. */
.main-nav--centered { position: relative; }
.main-nav__list li { position: static; } /* on positionne par rapport à .main-nav, pas au li */

.main-nav__list .sub-menu {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	width: 100%;
	margin: 0;
	padding: 14px 24px;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 28px;
	background: var(--bg-1, #1a1a1a);
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	box-shadow: 0 12px 32px rgba(0,0,0,0.35);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(-4px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
	z-index: 100;
}
/* Pont invisible : couvre uniquement la zone vide entre le bas du <li> et le
   haut du sous-menu (= padding-bottom du nav, ~12px). Pas plus haut, sinon il
   couvrirait les items du menu principal et bloquerait les clics. */
.main-nav__list .sub-menu::before {
	content: "";
	position: absolute;
	left: 0; right: 0;
	top: -14px;
	height: 14px;
}
.main-nav__list li:hover > .sub-menu,
.main-nav__list li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
	transition-delay: 0s;
}
.main-nav__list li:hover > .sub-menu *,
.main-nav__list li:focus-within > .sub-menu * { pointer-events: auto; }
.main-nav__list .sub-menu {
	transition-delay: .25s; /* leave delay : laisse le temps au curseur de descendre */
}

.main-nav__list .sub-menu li {
	display: block;
}
.main-nav__list .sub-menu a {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	padding: 8px 14px;
	border-radius: 6px;
	color: var(--text-dim);
	text-transform: none;
	letter-spacing: 0.04em;
	transition: background .12s, color .12s;
}
.main-nav__list .sub-menu a:hover,
.main-nav__list .sub-menu .current-menu-item > a {
	background: rgba(212, 168, 75, 0.08);
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
}
.main-nav__list .sub-menu .menu-item__title {
	font-family: var(--font-display);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: var(--text);
}
.main-nav__list .sub-menu a:hover .menu-item__title { color: var(--gold); }
.main-nav__list .sub-menu .menu-item__desc {
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--text-mute);
	text-transform: none;
}

/* Indique visuellement les items qui ont un sous-menu (chevron ▾) */
.main-nav__list > .menu-item-has-children > a {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}
.main-nav__list .menu-item-has-children > a::after {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	border: 0;
	border-right: 1.5px solid #fff;
	border-bottom: 1.5px solid #fff;
	transform: rotate(45deg);
	transform-origin: 70% 70%;
	transition: transform .25s cubic-bezier(.2,.8,.25,1), opacity .2s;
	background: transparent;
	pointer-events: none;
	flex: 0 0 auto;
	margin-left: 4px;
	position: relative;
	top: -2px;
	opacity: 0.85;
}
/* Niveau 2 (mega-bar) : chevron INLINE (en flex) à la suite du titre.
   On évite l'`position: absolute` qui créait une zone non cliquable en fin
   de mot — ici le chevron est un vrai item flex dans la ligne du titre,
   pointer-events: none pour que le hit-test traverse vers le <a>. */
.main-nav__list .sub-menu .menu-item-has-children > a::after {
	content: none;
}
.main-nav__list .sub-menu .menu-item-has-children > a .menu-item__title {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding-right: 0;
}
.main-nav__list .sub-menu .menu-item-has-children > a .menu-item__title::after {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	border: 0;
	border-right: 1.5px solid #fff;
	border-bottom: 1.5px solid #fff;
	transform: rotate(45deg);
	transform-origin: 70% 70%;
	transition: transform .25s cubic-bezier(.2,.8,.25,1);
	background: transparent;
	pointer-events: none;
	flex: 0 0 auto;
	margin-left: 4px;
	position: relative;
	top: -1px;
	opacity: 0.85;
}
.main-nav__list .sub-menu .menu-item-has-children:hover > a .menu-item__title::after,
.main-nav__list .sub-menu .menu-item-has-children:focus-within > a .menu-item__title::after {
	transform: rotate(225deg);
	top: 1px;
	opacity: 1;
}

/* === Niveau 3 : 2e mega-bar pleine largeur, juste sous la mega-bar n° 2 ===
   On conserve l'ancrage absolu par rapport à .main-nav (et non au li parent),
   d'où la nécessité de remettre `position: static` sur le li niveau 2. */
.main-nav__list .sub-menu .menu-item { position: static; }
.main-nav__list .sub-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	width: 100%;
	margin: 0;
	padding: 12px 24px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 24px;
	background: var(--bg-1, #1a1a1a);
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	box-shadow: 0 12px 32px rgba(0,0,0,0.45);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(-4px);
	transition: opacity .15s ease, transform .15s ease, visibility .15s;
	z-index: 110;
}
/* Pont vertical : couvre uniquement le padding-bottom (12px) de la bar n°2
   entre le texte des items et le haut de la bar n°3. PAS plus haut, sinon
   le pont recouvrirait les items niveau 2 et intercepterait clics + hovers
   → "vibration" + fin de mot non cliquable. */
.main-nav__list .sub-menu .sub-menu::before {
	content: "";
	position: absolute;
	left: 0; right: 0;
	top: -12px;
	height: 12px;
}
.main-nav__list .sub-menu .menu-item:hover > .sub-menu,
.main-nav__list .sub-menu .menu-item:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
	transition-delay: 0s; /* apparition immédiate, leave-delay seulement */
}
.main-nav__list .sub-menu .sub-menu a {
	display: inline-flex;
	align-items: center;
	padding: 8px 14px;
	text-align: center;
}
.main-nav__list .sub-menu .sub-menu .menu-item__title {
	font-size: 12px;
}
.main-nav__list .menu-item-has-children:hover > a::after,
.main-nav__list .menu-item-has-children:focus-within > a::after {
	transform: rotate(225deg);
	top: 1px;
	opacity: 1;
}

/* Sur mobile / écrans <= 1024 : on revient à un comportement empilé classique
   (le menu mobile a son propre rendu via .is-open). */
@media (max-width: 1024px) {
	.main-nav__list .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: none;
		flex-direction: column;
		gap: 4px;
		padding: 8px 0 8px 18px;
		border: 0;
		box-shadow: none;
		background: transparent;
	}
	.main-nav__list .sub-menu::before { display: none; }
}

.site-header__actions { display: flex; gap: 14px; align-items: center; }
@media (min-width: 1025px) {
	.site-header__actions--right { gap: 4px; }
}

/* === Live search ========================================================= */
.site-search {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	max-width: 460px;
}
.site-search__icon {
	position: absolute;
	left: 18px;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	width: 26px;
	height: 26px;
	color: #fff;
	z-index: 1;
}
.site-search input.site-search__input {
	width: 100%;
	background: var(--bg-2);
	border: 1px solid var(--line);
	color: #fff;
	font-family: var(--font-body);
	font-size: 14px;
	padding: 14px 18px 14px 58px;
	border-radius: 999px; /* même style "pill"/rond que le hover de .header-action */
	transition: border-color .15s, background .15s;
}
.site-search input.site-search__input::placeholder { color: rgba(255, 255, 255, 0.7); }
.site-search input.site-search__input:focus {
	outline: none;
	border-color: transparent;
	background: linear-gradient(var(--bg-3), var(--bg-3)) padding-box,
	            var(--btn-bg) border-box;
}
/* Croix native du <input type="search"> : on supprime puis on en injecte une blanche */
.site-search input[type="search"]::-webkit-search-decoration,
.site-search input[type="search"]::-webkit-search-cancel-button,
.site-search input[type="search"]::-webkit-search-results-button,
.site-search input[type="search"]::-webkit-search-results-decoration {
	-webkit-appearance: none;
	appearance: none;
}
.site-search input[type="search"]::-webkit-search-cancel-button {
	-webkit-appearance: none;
	appearance: none;
	height: 18px;
	width: 18px;
	margin-left: 8px;
	cursor: pointer;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round'><line x1='6' y1='6' x2='18' y2='18'/><line x1='18' y1='6' x2='6' y2='18'/></svg>");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 14px 14px;
	opacity: 0.85;
	transition: opacity .15s;
}
.site-search input[type="search"]::-webkit-search-cancel-button:hover { opacity: 1; }
.site-search__results {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	right: 0;
	max-height: 480px;
	overflow-y: auto;
	background: var(--bg-2);
	border: 1px solid var(--line-2);
	border-radius: 8px;
	box-shadow: 0 12px 32px rgba(0,0,0,0.45);
	z-index: 100;
	padding: 6px;
	scrollbar-width: thin;
	scrollbar-color: var(--gold) transparent;
}
.site-search__results::-webkit-scrollbar { width: 8px; }
.site-search__results::-webkit-scrollbar-track { background: transparent; }
.site-search__results::-webkit-scrollbar-thumb {
	background: var(--gold-gradient);
	border-radius: 999px;
	border: 2px solid transparent;
	background-clip: padding-box;
}
.site-search__results::-webkit-scrollbar-thumb:hover {
	background: var(--gold-gradient);
	background-clip: padding-box;
	border: 1px solid transparent;
}
.search-result {
	display: flex;
	gap: 12px;
	padding: 10px 12px;
	border-radius: 6px;
	color: var(--text);
	text-decoration: none;
	transition: background .12s;
}
.search-result:hover, .search-result:focus { background: var(--bg-3); color: var(--text); }
.search-result__media {
	width: 48px; height: 48px;
	flex-shrink: 0;
	background: var(--bg-3);
	border: 1px solid var(--line);
	border-radius: 4px;
	overflow: hidden;
}
.search-result__media img { width: 100%; height: 100%; object-fit: cover; }
.search-result__body { flex: 1; min-width: 0; }
.search-result__title { font-size: 13px; font-weight: 500; line-height: 1.3; margin: 0 0 2px; color: var(--text); }
.search-result__price { font-size: 12px; color: var(--gold); font-weight: 600; }
.search-result__price del { color: var(--text-mute); margin-right: 4px; font-weight: 400; }
.search-result__more {
	display: block;
	padding: 12px;
	text-align: center;
	font-size: 12px;
	font-weight: 500;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	border-top: 1px solid var(--line);
	margin-top: 4px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}
.search-result__more:hover { color: var(--gold-soft); }
.site-search__empty {
	padding: 18px 14px;
	text-align: center;
	color: #fff;
	font-size: 13px;
}
.site-search__loading {
	padding: 18px 14px;
	text-align: center;
	color: #fff;
	font-size: 13px;
}
@media (max-width: 1024px) {
	.site-search { display: none; }
}

/* === Cart drawer ========================================================= */
.cart-drawer {
	position: fixed;
	inset: 0;
	z-index: 9999;
	pointer-events: none;
	visibility: hidden;
}
.cart-drawer.is-open { pointer-events: auto; visibility: visible; }
.cart-drawer__overlay {
	position: absolute; inset: 0;
	background: rgba(8,5,2,0);
	-webkit-backdrop-filter: blur(0px);
	        backdrop-filter: blur(0px);
	transition:
		background-color .42s cubic-bezier(.4,0,.2,1),
		-webkit-backdrop-filter .42s cubic-bezier(.4,0,.2,1),
		backdrop-filter .42s cubic-bezier(.4,0,.2,1);
	cursor: pointer;
}
.cart-drawer.is-open .cart-drawer__overlay {
	background: rgba(8,5,2,0.55);
	-webkit-backdrop-filter: blur(4px) saturate(1.05);
	        backdrop-filter: blur(4px) saturate(1.05);
}
.cart-drawer__panel {
	position: absolute;
	top: 0; right: 0;
	width: 100%;
	max-width: 440px;
	height: 100%;
	background: var(--bg-1);
	border-left: 1px solid var(--line-2);
	display: flex;
	flex-direction: column;
	transform: translateX(100%);
	transition:
		transform .35s cubic-bezier(.32,.72,0,1),
		box-shadow .35s cubic-bezier(.32,.72,0,1);
	box-shadow: -8px 0 30px rgba(0,0,0,0.3);
	will-change: transform;
}
.cart-drawer.is-open .cart-drawer__panel {
	transform: translateX(0);
	box-shadow: -24px 0 80px rgba(0,0,0,0.6), -8px 0 24px rgba(0,0,0,0.4);
}

/* Entrée mise en scène : head, shipping, items et footer remontent en
   cascade. Gated par .is-entering (posé puis retiré par le JS) pour ne
   PAS rejouer la cascade quand renderItems re-rend les enfants après une
   maj de quantité ou un add-to-cart. */
.cart-drawer.is-entering :is(
	.cart-drawer__head,
	.cart-drawer__shipping,
	.cart-drawer__items > li,
	.cart-drawer__empty,
	.cart-drawer__foot
) {
	animation: cbdco-cart-rise .32s cubic-bezier(.2,.85,.3,1) both;
	will-change: opacity, transform;
}
.cart-drawer.is-entering .cart-drawer__head     { animation-delay: .04s; }
.cart-drawer.is-entering .cart-drawer__shipping { animation-delay: .08s; }
.cart-drawer.is-entering .cart-drawer__empty    { animation-delay: .12s; }
.cart-drawer.is-entering .cart-drawer__items > li:nth-child(1) { animation-delay: .12s; }
.cart-drawer.is-entering .cart-drawer__items > li:nth-child(2) { animation-delay: .16s; }
.cart-drawer.is-entering .cart-drawer__items > li:nth-child(3) { animation-delay: .19s; }
.cart-drawer.is-entering .cart-drawer__items > li:nth-child(4) { animation-delay: .21s; }
.cart-drawer.is-entering .cart-drawer__items > li:nth-child(n+5) { animation-delay: .23s; }
.cart-drawer.is-entering .cart-drawer__foot     { animation-delay: .23s; }

@keyframes cbdco-cart-rise {
	0%   { opacity: 0; transform: translate3d(0, 12px, 0); }
	100% { opacity: 1; transform: translate3d(0, 0, 0); }
}

/* Header drawer — style header des modales : gradient sombre animé + particules dorées */
.cart-drawer__head {
	display: flex; align-items: center; justify-content: space-between;
	padding: 12px 18px;
	position: relative;
	overflow: hidden;
	border-bottom: 1px solid rgba(216,183,104,.18);
	background:
		radial-gradient(circle at 20% 50%, rgba(216,183,104,.25) 0%, transparent 50%),
		radial-gradient(circle at 80% 30%, rgba(160,124,44,.2) 0%, transparent 50%),
		linear-gradient(135deg, #0f0d08 0%, #2d2618 50%, #1a1308 100%);
	background-size: 200% 200%, 200% 200%, 100% 100%;
	animation: cbdco-cart-head-shift 12s ease-in-out infinite;
}
@keyframes cbdco-cart-head-shift {
	0%, 100% { background-position: 0% 50%, 100% 50%, 0 0; }
	50%      { background-position: 100% 50%, 0% 50%, 0 0; }
}
.cart-drawer__head::before,
.cart-drawer__head::after {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background-image: radial-gradient(circle, rgba(216,183,104,.55) 1px, transparent 1.5px);
	background-size: 38px 38px;
	opacity: .3;
	animation: cbdco-cart-head-stars 8s linear infinite;
}
.cart-drawer__head::after {
	background-size: 22px 22px;
	opacity: .12;
	animation-duration: 14s;
	animation-direction: reverse;
}
@keyframes cbdco-cart-head-stars {
	from { transform: translate(0, 0); }
	to   { transform: translate(-38px, -38px); }
}
.cart-drawer__head > * { position: relative; z-index: 1; }
.cart-drawer__head h2 {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	color: #faf3df;
	letter-spacing: 0.02em;
	text-shadow: 0 1px 0 rgba(0,0,0,.2);
}
.cart-drawer__close {
	background: rgba(255,255,255,.08); border: 0;
	color: #fff;
	width: 32px; height: 32px;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: 50%;
	cursor: pointer;
	transition: background .15s, color .15s;
	-webkit-tap-highlight-color: transparent;
}
.cart-drawer__close svg { stroke: #fff; color: #fff; }
.cart-drawer__close:hover { background: rgba(216,183,104,.25); color: #faf3df; }
.cart-drawer__close:hover svg { stroke: #faf3df; color: #faf3df; }
.cart-drawer__close:focus { outline: none; }
.cart-drawer__close:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

/* Free-shipping progress — sobre, pas de barre dorée envahissante */
.cart-drawer__shipping {
	padding: 14px 18px;
	background: var(--bg-1);
	border-bottom: 1px solid var(--line);
	position: relative;
}
.cart-drawer__shipping-msg {
	font-size: 14.5px;
	font-weight: 600;
	color: var(--text);
	margin-bottom: 12px;
	line-height: 1.4;
	text-align: center;
}
.cart-drawer__shipping-msg b,
.cart-drawer__shipping-msg .woocommerce-Price-amount {
	display: inline-block;
	background: #1a1208;
	color: #ffd966;
	padding: 2px 9px;
	border-radius: 5px;
	font-weight: 600;
	font-size: 1em;
	margin: 0 3px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.25);
}
.cart-drawer__shipping-msg.is-unlocked {
	color: #8fd694;
	font-weight: 700;
}
.cart-drawer__shipping-msg.is-unlocked b {
	background: transparent;
	color: #8fd694;
	box-shadow: none;
	padding: 0;
}
.cart-drawer__progress {
	width: 100%;
	height: 8px;
	background: var(--bg-3);
	border-radius: 999px;
	overflow: hidden;
	border: 1px solid var(--line);
}
.cart-drawer__progress-bar {
	height: 100%;
	background: var(--btn-bg);
	border-radius: 999px;
	transition: width .35s cubic-bezier(.2,.8,.2,1);
	box-shadow: 0 0 8px rgba(212, 168, 75, 0.4);
}

/* Body / items */
.cart-drawer__body {
	flex: 1;
	overflow-y: auto;
	padding: 8px 12px;
	position: relative;
	scrollbar-width: thin;
	scrollbar-color: #c8a268 transparent;
}
.cart-drawer__body::-webkit-scrollbar { width: 8px; }
.cart-drawer__body::-webkit-scrollbar-track { background: transparent; }
.cart-drawer__body::-webkit-scrollbar-thumb {
	background: var(--btn-bg);
	background-image: linear-gradient(135deg, #e2cb97 4%, #a88659 100%);
	border-radius: 4px;
	border: 1px solid rgba(0,0,0,0.15);
}
.cart-drawer__body::-webkit-scrollbar-thumb:hover {
	background-image: linear-gradient(135deg, #efd9a8 4%, #c19868 100%);
}
.cart-drawer__items {
	list-style: none; margin: 0; padding: 0;
}
.cart-drawer__item {
	display: grid;
	grid-template-columns: 72px 1fr auto;
	gap: 12px;
	padding: 14px 12px;
	border-bottom: 1px solid var(--line);
	align-items: center;
}
.cart-drawer__item:last-child { border-bottom: 0; }
.cart-drawer__item-img {
	width: 72px; height: 72px;
	background: var(--bg-2);
	border: 1px solid var(--line);
	border-radius: 6px;
	overflow: hidden;
}
.cart-drawer__item-img img { width: 100%; height: 100%; object-fit: cover; }
.cart-drawer__item-body { min-width: 0; }
.cart-drawer__item-title {
	font-size: 13px; font-weight: 500;
	color: var(--text);
	margin: 0 0 4px;
	line-height: 1.3;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.cart-drawer__item-meta {
	font-size: 11px;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	font-weight: 600;
	letter-spacing: 0.04em;
	margin: 0 0 8px;
}
.cart-drawer__item-actions {
	display: flex; align-items: center; gap: 10px;
}
.cart-drawer__qty {
	display: inline-flex; align-items: center;
	background: var(--bg-2);
	border: 1px solid var(--gold-2);
	border-radius: 999px;
	overflow: hidden;
}
.cart-drawer__qty button {
	background: transparent;
	border: 0;
	color: var(--gold-soft);
	width: 30px; height: 30px;
	display: inline-flex; align-items: center; justify-content: center;
	cursor: pointer;
	font-size: 18px;
	font-weight: 600;
	line-height: 1;
	transition: color .15s, background .15s;
}
.cart-drawer__qty button:hover { color: #1a1208; background: var(--btn-bg); }
.cart-drawer__qty button:disabled { opacity: 0.35; cursor: not-allowed; }
.cart-drawer__qty span {
	min-width: 32px;
	text-align: center;
	font-size: 14px;
	font-weight: 700;
	color: var(--text);
	padding: 0 4px;
}
.cart-drawer__remove {
	display: inline-flex; align-items: center; justify-content: center;
	width: 28px; height: 28px;
	background: transparent;
	border: 1px solid var(--line);
	border-radius: 50%;
	color: var(--text-mute);
	cursor: pointer;
	transition: color .15s, border-color .15s, background .15s, transform .15s;
}
.cart-drawer__remove:hover {
	color: #fff;
	background: #d33b3b;
	border-color: #d33b3b;
	transform: rotate(90deg);
}
.cart-drawer__item-price {
	font-size: 14px;
	font-weight: 600;
	background: transparent;
	-webkit-text-fill-color: #fff;
	color: #fff;
	text-align: right;
	min-width: 70px;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 2px;
}
.cart-drawer__item-price ins { background: transparent; text-decoration: none; color: #fff; -webkit-text-fill-color: #fff; font-size: 14px; font-weight: 600; line-height: 1.2; }
.cart-drawer__item-price del { color: var(--text-mute); -webkit-text-fill-color: var(--text-mute); font-size: 11px; font-weight: 400; line-height: 1.2; opacity: 0.9; }
.cart-drawer__item-discount {
	display: inline-block;
	background: #d33b3b;
	color: #fff;
	-webkit-text-fill-color: #fff;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.04em;
	padding: 2px 6px;
	border-radius: 4px;
	line-height: 1;
}
a.cart-drawer__item-img { display: block; }
a.cart-drawer__item-title { color: inherit; text-decoration: none; display: block; transition: color .15s ease; }
a.cart-drawer__item-title:hover { color: var(--gold, #d4a84b); text-decoration: none; }
a.cart-drawer__item-img img { transition: opacity .15s ease; }
a.cart-drawer__item-img:hover img { opacity: 0.85; }

/* Le hidden attribute doit gagner sur le display:flex de loading/empty/items. */
.cart-drawer__loading[hidden],
.cart-drawer__empty[hidden],
.cart-drawer__items[hidden],
.cart-drawer__foot[hidden] { display: none !important; }

/* Loading */
.cart-drawer__loading {
	display: flex; align-items: center; justify-content: center;
	padding: 60px 0;
}
.cart-drawer__spinner {
	width: 32px; height: 32px;
	border: 3px solid var(--line);
	border-top-color: var(--gold);
	border-radius: 50%;
	animation: cbdco-spin .8s linear infinite;
}
@keyframes cbdco-spin { to { transform: rotate(360deg); } }

/* Empty state */
.cart-drawer__empty {
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	padding: 60px 24px; text-align: center;
	color: var(--text-mute);
	gap: 16px;
	min-height: 100%;
}
.cart-drawer__empty svg { color: var(--text-mute); opacity: 0.4; }
.cart-drawer__empty p { margin: 0; font-size: 15px; color: var(--text-dim); }
.cart-drawer__empty .btn { margin-top: 8px; }

/* Footer / totals */
.cart-drawer__foot {
	padding: 18px 24px 22px;
	border-top: 1px solid var(--line);
	background: var(--bg-2);
}
.cart-drawer__totals {
	display: flex; flex-direction: column; gap: 6px;
	margin-bottom: 14px;
}
.cart-drawer__totals-row {
	display: flex; justify-content: space-between; align-items: baseline;
	font-size: 13.5px;
	color: var(--text-dim);
}
.cart-drawer__totals-row span:last-child,
.cart-drawer__totals-row .woocommerce-Price-amount { color: var(--text); font-weight: 500; }
.cart-drawer__totals-row [data-cart-shipping] { font-size: 12.5px; font-weight: 500; color: var(--text-mute); font-style: italic; }
.cart-drawer__totals-row [data-cart-shipping].is-free { color: #8fd694; font-weight: 700; font-style: normal; text-transform: uppercase; letter-spacing: 0.04em; font-size: 12px; }
.cart-drawer__totals-row--total {
	margin-top: 4px;
	padding-top: 8px;
	border-top: 1px solid var(--line);
	font-size: 13.5px;
}
.cart-drawer__totals-row--total strong:first-child {
	color: var(--text);
	font-weight: 600;
	font-size: 13.5px;
}
.cart-drawer__totals-row--total strong:last-child,
.cart-drawer__totals-row--total .woocommerce-Price-amount {
	font-size: 17px;
	color: var(--gold-soft);
	font-weight: 700;
}
/* Bouton "Commander" : un peu moins gros que la taille .btn par défaut */
.cart-drawer__foot > .btn {
	padding: 12px 18px;
	font-size: 13.5px;
}
.cart-drawer__view-cart {
	display: block;
	text-align: center;
	margin-top: 10px;
	font-size: 12px;
	color: var(--text-mute);
	letter-spacing: 0.04em;
}
.cart-drawer__view-cart:hover { color: var(--gold); }

/* Coupon : input + bouton — version discrète, alignée sur le style du checkout. */
.cart-drawer__coupon {
	display: flex;
	gap: 0;
	margin-bottom: 4px;
	padding: 2px;
	background: var(--bg-1, #1a1a1a);
	border: 1px solid var(--line);
	border-radius: 8px;
	position: relative;
	transition: border-color .15s ease;
}
.cart-drawer__coupon:focus-within { border-color: var(--gold, #d4a84b); }
/* Quand la notice juste après est masquée → on rend l'espace en bas du pill. */
.cart-drawer__coupon:has(+ .cart-drawer__coupon-msg[hidden]) { margin-bottom: 8px; }
.cart-drawer__coupon::before {
	content: "🎟";
	position: absolute;
	left: 10px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 13px;
	line-height: 1;
	pointer-events: none;
	z-index: 1;
	opacity: .7;
}
.cart-drawer__coupon-input {
	flex: 1;
	min-width: 0;
	padding: 8px 10px 8px 32px !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	color: var(--text);
	font-family: inherit;
	font-size: 12.5px;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	box-shadow: none !important;
}
.cart-drawer__coupon-input:focus,
.cart-drawer__coupon-input:focus-visible,
.cart-drawer__coupon-input:active {
	outline: none !important;
	border: 0 !important;
	box-shadow: none !important;
	background: transparent !important;
}
.cart-drawer__coupon-input::placeholder {
	color: var(--text-mute);
	text-transform: none;
	letter-spacing: 0;
	font-weight: 400;
	font-style: italic;
}
.cart-drawer__coupon-btn {
	padding: 0 12px;
	background: transparent;
	border: 0;
	border-radius: 6px;
	color: var(--gold, #d4a84b);
	font-family: var(--font-display);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
	transition: color .15s ease, background .15s ease;
}
.cart-drawer__coupon-btn:hover { background: rgba(216,183,104,.15); }
.cart-drawer__coupon-btn:active { transform: scale(.98); }

/* Notice de validation du code promo — même rendu que le checkout (pill icône + close). */
.cart-drawer__coupon-msg {
	margin: 14px 0 7px;
	padding: 9px 12px;
	font-size: 12.5px;
	line-height: 1.4;
	border-radius: 10px;
	display: flex;
	align-items: flex-start;
	gap: 8px;
	border: 1px solid transparent;
}
.cart-drawer__coupon-msg[hidden] { display: none !important; }
.cart-drawer__coupon-msg-icon {
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	font-weight: 700;
	margin-top: 1px;
	color: #1a1208;
}
.cart-drawer__coupon-msg-text { flex: 1 1 auto; }
.cart-drawer__coupon-msg-close {
	flex: 0 0 auto;
	background: transparent;
	border: 0;
	color: inherit;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	padding: 0 4px;
	margin: -2px -2px 0 0;
	opacity: .6;
	transition: opacity .15s ease;
}
.cart-drawer__coupon-msg-close:hover { opacity: 1; }

.cart-drawer__coupon-msg.is-success {
	background: rgba(212, 168, 75, 0.12);
	color: var(--gold-soft);
	border-color: rgba(212, 168, 75, 0.4);
}
.cart-drawer__coupon-msg.is-success .cart-drawer__coupon-msg-icon { background: var(--gold); }
.cart-drawer__coupon-msg.is-error {
	background: rgba(215, 122, 106, 0.14);
	color: #ee9d8e;
	border-color: rgba(215, 122, 106, 0.4);
}
.cart-drawer__coupon-msg.is-error .cart-drawer__coupon-msg-icon { background: #d77a6a; color: #2a0c08; }
.cart-drawer__coupon-msg.is-info {
	background: rgba(255, 255, 255, 0.04);
	color: var(--text-dim);
	border-color: var(--line);
}
.cart-drawer__coupon-msg.is-info .cart-drawer__coupon-msg-icon { background: var(--text-mute); }

/* Coupons appliqués — style identique à la ligne "Code promo" du checkout :
   ligne plate avec label + bouton Retirer à gauche, montant en dégradé or à droite. */
.cart-drawer__coupons {
	list-style: none;
	margin: 0 0 10px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.cart-drawer__coupon-item {
	display: flex;
	align-items: baseline;
	gap: 8px;
	padding: 0;
	background: transparent;
	border: 0;
	font-size: 13.5px;
	margin-top: 10px;
	color: var(--text-dim);
}
.cart-drawer__coupon-item::before {
	content: "Code promo :";
	color: var(--text-dim);
	font-weight: 500;
}
.cart-drawer__coupon-code {
	color: var(--text);
	font-weight: 600;
	letter-spacing: 0.04em;
}
.cart-drawer__coupon-amount {
	margin-left: auto;
	background: var(--btn-bg);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
	font-weight: 700;
	font-size: 13.5px;
}
.cart-drawer__coupon-remove {
	background: transparent;
	border: 0;
	color: var(--text-mute);
	font-size: 0;
	line-height: 1;
	cursor: pointer;
	padding: 2px 4px;
	border-radius: 4px;
	transition: color .15s, background .15s;
}
.cart-drawer__coupon-remove::after {
	content: "[Retirer]";
	font-size: 11px;
	font-style: italic;
	text-decoration: underline;
	color: inherit;
}
.cart-drawer__coupon-remove:hover { color: #d77a6a; }

/* Responsive cart drawer */
@media (max-width: 480px) {
	.cart-drawer__panel { max-width: 100%; }
	.site-header__top {
		padding: 8px 8px 6px;
		gap: 6px;
	}
	.site-header__brand img.custom-logo,
	.site-header__brand img { max-height: 88px; }
	.site-header__actions { gap: 2px; }
	.header-action {
		width: 46px;
		height: 46px;
	}
	.header-action svg { width: 24px; height: 24px; }
	.header-action--cart .header-action__icon { width: 30px; height: 30px; }
	.menu-toggle {
		padding: 8px 10px;
	}
	.menu-toggle svg { width: 30px; height: 30px; }
}
.header-action {
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px;
	color: var(--text);
	background: transparent;
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	transition: background .15s, color .15s;
	position: relative;
}
.header-action:hover { background: var(--bg-2); color: var(--gold); }
.header-action svg { width: 26px; height: 26px; color: inherit; }
.header-action--cart svg { color: var(--text); }
.header-action--cart:hover svg { color: var(--gold); }

/* Hover dégradé doré sur les icônes header (compte + panier) — on stamp le
   gradient SVG global défini dans header.php via stroke: url(#…). Couvre tous
   les enfants traçables (path, circle, line…) parce que stroke ne hérite
   pas quand l'enfant porte stroke="currentColor" en attribut. */
.header-action:hover svg :is(path, circle, line, rect, polygon, polyline, ellipse) {
	stroke: url(#cbdco-gold-grad);
}

/* Wrapper icône (sert de point d'animation isolé du label total) */
.header-action__icon-wrap {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px; height: 30px;
}

/* Quand le panier contient des items : bouton en pill icône + montant */
.header-action--cart.has-items {
	width: auto;
	min-width: 56px;
	padding: 0 16px 0 12px;
	gap: 8px;
	border-radius: 999px;
	background: var(--bg-2);
}
.header-action--cart.has-items:hover { background: var(--bg-3, rgba(255,255,255,.06)); }

.cart-total {
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .01em;
	color: var(--text);
	white-space: nowrap;
}
.cart-total[hidden] { display: none; }

/* Sur très petit écran, on cache le montant pour économiser la place */
@media (max-width: 480px) {
	.header-action--cart.has-items { padding: 0; min-width: 56px; width: 56px; background: transparent; }
	.cart-total { display: none; }
}

/* Bounce du panier dès qu'il y a un produit dedans */
.header-action--cart.has-items .header-action__icon-wrap { animation: cbdco-cart-bounce 2.2s ease-in-out infinite; transform-origin: 50% 80%; }
@keyframes cbdco-cart-bounce {
	0%, 55%, 100% { transform: translateY(0) rotate(0); }
	62%  { transform: translateY(-5px) rotate(-8deg); }
	70%  { transform: translateY(0)    rotate(6deg); }
	78%  { transform: translateY(-3px) rotate(-3deg); }
	88%  { transform: translateY(0)    rotate(0); }
}

/* Cart icon "punch" quand le produit volant atterrit */
.header-action--cart.is-bumped { animation: cbdco-cart-punch .55s cubic-bezier(.25,1.5,.4,1) both; }
@keyframes cbdco-cart-punch {
	0%   { transform: scale(1); }
	35%  { transform: scale(1.32); }
	60%  { transform: scale(0.92); }
	100% { transform: scale(1); }
}

/* Image volante (flower → cart). Animée par Web Animation API en JS. */
.fly-to-cart {
	pointer-events: none;
	border-radius: 50%;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	box-shadow: 0 12px 50px rgba(212,166,72,0.65), 0 0 0 4px var(--gold), 0 0 30px rgba(212,166,72,0.4);
	will-change: transform, opacity;
}

.cart-count {
	position: absolute;
	top: -7px; right: -9px;
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 20px; height: 20px; padding: 0 5px;
	background: var(--btn-bg);
	color: #1a1208;
	font-family: var(--font-body);
	font-size: 11.5px; font-weight: 800;
	border-radius: 999px;
	border: 2px solid var(--bg-1);
	line-height: 1;
	pointer-events: none;
}
.cart-count[hidden] { display: none; }

.menu-toggle {
	display: none;
	background: transparent;
	border: 1px solid var(--line-2);
	color: #fff;
	padding: 8px 12px;
	border-radius: 4px;
}
.menu-toggle svg { color: #fff; stroke: #fff; }
.menu-toggle svg line, .menu-toggle svg path, .menu-toggle svg rect { stroke: #fff; }
@media (max-width: 1024px) {
	.site-header__top {
		padding: 10px 10px 8px;
		gap: 10px;
	}
	.site-header__brand img.custom-logo,
	.site-header__brand img { max-height: 90px; }
	.site-header__actions { gap: 4px; }
	.header-action {
		width: 48px;
		height: 48px;
	}
	.header-action svg { width: 26px; height: 26px; }
	.header-action--cart .header-action__icon { width: 32px; height: 32px; }
	.menu-toggle {
		display: inline-flex;
		padding: 8px 12px;
	}
	.menu-toggle svg { width: 32px; height: 32px; }
	.main-nav--centered { display: none; padding: 0; }
	.main-nav--centered.is-open {
		display: flex;
		flex-direction: column;
		padding: 0;
	}
	.main-nav--centered.is-open .main-nav__list { padding: 12px 16px 16px; }
	/* Header du drawer mobile : gradient sombre + croix, calqué sur .cart-drawer__head */
	.main-nav--centered .main-nav__head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 12px 20px;
		position: relative;
		overflow: hidden;
		border-bottom: 1px solid rgba(216,183,104,.18);
		background:
			radial-gradient(circle at 20% 50%, rgba(216,183,104,.25) 0%, transparent 50%),
			radial-gradient(circle at 80% 30%, rgba(160,124,44,.2) 0%, transparent 50%),
			linear-gradient(135deg, #0f0d08 0%, #2d2618 50%, #1a1308 100%);
		background-size: 200% 200%, 200% 200%, 100% 100%;
		animation: cbdco-cart-head-shift 12s ease-in-out infinite;
	}
	.main-nav--centered .main-nav__head::before,
	.main-nav--centered .main-nav__head::after {
		content: ''; position: absolute; inset: 0; pointer-events: none;
		background-image: radial-gradient(circle, rgba(216,183,104,.55) 1px, transparent 1.5px);
		background-size: 38px 38px;
		opacity: .3;
		animation: cbdco-cart-head-stars 8s linear infinite;
	}
	.main-nav--centered .main-nav__head::after {
		background-size: 22px 22px;
		opacity: .12;
		animation-duration: 14s;
		animation-direction: reverse;
	}
	.main-nav--centered .main-nav__head > * { position: relative; z-index: 1; }
	.main-nav--centered .main-nav__title {
		margin: 0;
		font-size: 16px;
		font-weight: 700;
		color: #faf3df;
		letter-spacing: 0.02em;
		text-transform: none;
		text-shadow: 0 1px 0 rgba(0,0,0,.2);
	}
	.main-nav--centered .main-nav__close {
		background: rgba(255,255,255,.08);
		border: 0;
		color: #fff;
		width: 36px;
		height: 36px;
		min-width: 36px;
		min-height: 36px;
		flex: 0 0 36px;
		padding: 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		border-radius: 50%;
		cursor: pointer;
		transition: background .15s, color .15s;
		-webkit-tap-highlight-color: transparent;
		box-sizing: border-box;
	}
	.main-nav--centered .main-nav__close svg { stroke: #fff; color: #fff; }
	.main-nav--centered .main-nav__close:hover { background: rgba(216,183,104,.25); color: #faf3df; }
	.main-nav--centered .main-nav__close:hover svg { stroke: #faf3df; color: #faf3df; }
	.main-nav--centered .main-nav__close:focus { outline: none; }
	.main-nav--centered .main-nav__close:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
	.main-nav__list { flex-direction: column; gap: 0; }
	.main-nav__list li { border-top: 1px solid var(--line); }
	.main-nav__list > li:first-child { border-top: 0; }
	.main-nav__list a { display: block; padding: 12px 0; }
}

/* Search header (in main-nav) */
.search-form {
	display: flex;
	background: var(--bg-2);
	border: 1px solid var(--line);
	max-width: 320px;
	width: 100%;
}
.search-form input[type="search"] {
	flex: 1;
	background: transparent;
	border: 0;
	color: var(--text);
	padding: 10px 14px;
	outline: none;
	font-size: 13px;
}
.search-form input::placeholder { color: var(--text-mute); }
.search-form button {
	background: transparent;
	border: 0;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	padding: 0 14px;
}

/* === Cart drawer — bandeau "paiement sécurisé" + icônes CB =============== */
.cart-drawer__pay {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px dashed var(--line);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}
.cart-drawer__pay-label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--text-mute);
}
.cart-drawer__pay-label svg { width: 13px; height: 13px; opacity: 0.7; }
.cart-drawer__pay-icons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}
.cart-drawer__pay-icons .cbdco-pay-brand {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 22px;
	background: #fff;
	border-radius: 4px;
	border: 1px solid rgba(255,255,255,0.08);
	box-shadow: 0 1px 2px rgba(0,0,0,0.2);
	overflow: hidden;
	flex-shrink: 0;
	line-height: 0;
}
.cart-drawer__pay-icons .cbdco-pay-brand svg { display: block; width: 100%; height: 100%; }

/* === Ligne combinée Livraison + Paiement sur la fiche produit ============ */
.sp-info-row {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 14px 0 22px;
	clear: both;
}
.sp-info-row--pair { flex-direction: row; align-items: stretch; flex-wrap: wrap; gap: 10px; }
.sp-info-row--pair > .sp-eta,
.sp-info-row--pair > .sp-pay {
	flex: 1 1 0;
	min-width: 240px;
	margin: 0;
}
/* Quand .sp-eta est dans une paire, on lui donne la même carte que .sp-pay
   pour un rendu équilibré côte à côte. */
.sp-info-row--pair > .sp-eta {
	padding: 12px 14px;
	border: 1px solid var(--line);
	border-radius: 10px;
	background: var(--card);
	gap: 8px;
}
@media (max-width: 720px) {
	.sp-info-row--pair { flex-direction: column; gap: 8px; }
	.sp-info-row--pair > .sp-eta,
	.sp-info-row--pair > .sp-pay { min-width: 0; }
}

.sp-pay {
	padding: 12px 14px;
	border: 1px solid var(--line);
	border-radius: 10px;
	background: var(--card);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}
.sp-pay__label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--font-mono);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--text-mute);
	white-space: nowrap;
}
.sp-pay__label svg { width: 12px; height: 12px; opacity: 0.75; }
.sp-pay__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 5px;
}
.sp-pay__list .cbdco-pay-brand {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 24px;
	background: #fff;
	border-radius: 4px;
	border: 1px solid var(--line);
	overflow: hidden;
	line-height: 0;
}
.sp-pay__list .cbdco-pay-brand svg { display: block; width: 100%; height: 100%; }
@media (max-width: 720px) {
	.sp-pay { padding: 10px 12px; gap: 6px; }
	.sp-pay__label { font-size: 10px; letter-spacing: 0; }
	.sp-pay__list .cbdco-pay-brand { width: 32px; height: 22px; }
}

/* === Cart drawer — adaptations mobile ==================================== */
@media (max-width: 600px) {
	.cart-drawer__head { padding: 10px 16px; }
	.cart-drawer__head h2 { font-size: 15px; letter-spacing: 0.04em; }
	.cart-drawer__close { width: 30px; height: 30px; }
	.cart-drawer__shipping { padding: 14px 18px; }
	.cart-drawer__shipping-msg { font-size: 13px; margin-bottom: 10px; }
	.cart-drawer__foot { padding: 14px 18px 18px; }
	.cart-drawer__coupon { padding: 3px; border-radius: 10px; box-shadow: 0 2px 8px rgba(212,168,75,0.12); }
	.cart-drawer__coupon::before { left: 11px; font-size: 14px; }
	.cart-drawer__coupon-input {
		padding: 10px 8px 10px 36px !important;
		font-size: 12.5px;
		letter-spacing: 0.04em;
	}
	.cart-drawer__coupon-input::placeholder { font-size: 12.5px; }
	.cart-drawer__coupon-btn {
		padding: 0 12px;
		font-size: 11px;
		letter-spacing: 0.06em;
	}
	.cart-drawer__totals-row { font-size: 12.5px; }
	.cart-drawer__totals-row--total { font-size: 13px; }
	.cart-drawer__totals-row--total strong:last-child,
	.cart-drawer__totals-row--total .woocommerce-Price-amount { font-size: 18px; }
	.cart-drawer__pay { margin-top: 12px; padding-top: 12px; gap: 6px; }
	.cart-drawer__pay-label { font-size: 10px; letter-spacing: 0.12em; }
	.cart-drawer__pay-icon { width: 36px; height: 24px; }
}

/* ============================================================
   Hero
   ============================================================ */
.hero {
	position: relative;
	overflow: hidden;
	background: var(--bg-0);
}
.hero__wordmark {
	position: absolute;
	inset: 0;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--font-display);
	font-size: min(28vw, 380px);
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	opacity: 0.04;
	white-space: nowrap;
	pointer-events: none;
	user-select: none;
	letter-spacing: 0.02em;
}
.hero__corner {
	position: absolute;
	width: 24px; height: 24px;
	pointer-events: none;
	opacity: 0.5;
}
.hero__corner svg { width: 40px; height: 40px; }
.hero__corner--tl { top: 16px; left: 16px; }
.hero__corner--tr { top: 16px; right: 16px; }
.hero__corner--bl { bottom: 16px; left: 16px; }
.hero__corner--br { bottom: 16px; right: 16px; }

.hero__inner {
	max-width: var(--container);
	margin: 0 auto;
	padding: 80px 24px 100px;
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 40px;
	align-items: center;
	position: relative;
}
.hero__eyebrow {
	display: flex; align-items: center; gap: 10px;
	margin-bottom: 24px;
}
.hero__diamond {
	width: 10px; height: 10px;
	background: var(--gold);
	transform: rotate(45deg);
	flex-shrink: 0;
}
.hero__eyebrow span {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.3em;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	text-transform: uppercase;
}
.hero__title {
	font-family: var(--font-display);
	font-size: clamp(48px, 7vw, 96px);
	margin: 0;
	color: var(--text);
	line-height: 0.95;
	letter-spacing: 0.02em;
}
.hero__title em { color: var(--gold); font-style: normal; display: block; }
.hero__sub { margin-top: 24px; color: var(--text-dim); font-size: 16px; max-width: 480px; }
.hero__actions { display: flex; gap: 12px; margin-top: 32px; flex-wrap: wrap; }
.hero__signals {
	margin-top: 40px;
	display: flex; gap: 32px;
	font-size: 11px;
	color: var(--text-mute);
	font-family: var(--font-mono);
	letter-spacing: 0.15em;
	flex-wrap: wrap;
}
.hero__visual { position: relative; aspect-ratio: 1 / 1.1; }
.hero__visual .ph { position: absolute; inset: 0; font-size: 13px; }
.hero__visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero__frame {
	position: absolute;
	width: 24px; height: 24px;
	pointer-events: none;
}
.hero__frame--tl { top: -8px; left: -8px; border-top: 2px solid var(--gold); border-left: 2px solid var(--gold); }
.hero__frame--tr { top: -8px; right: -8px; border-top: 2px solid var(--gold); border-right: 2px solid var(--gold); }
.hero__frame--bl { bottom: -8px; left: -8px; border-bottom: 2px solid var(--gold); border-left: 2px solid var(--gold); }
.hero__frame--br { bottom: -8px; right: -8px; border-bottom: 2px solid var(--gold); border-right: 2px solid var(--gold); }

@media (max-width: 1024px) {
	.hero__inner { grid-template-columns: 1fr; padding: 60px 24px 80px; }
	.hero__visual { aspect-ratio: 1 / 1; max-width: 480px; }
}

/* ============================================================
   Section head (eyebrow + title centré entouré de tirets)
   ============================================================ */
.section-head { text-align: center; margin-bottom: 56px; }
.section-head__eyebrow {
	display: inline-flex; align-items: center; gap: 12px;
	margin-bottom: 16px;
}
.section-head__rule { width: 32px; height: 1px; background: var(--gold); }
.section-head__sub {
	color: var(--text-dim);
	max-width: 600px;
	margin: 16px auto 0;
	font-size: 15px;
}

/* ============================================================
   Range grid (12 catégories)
   ============================================================ */
.range-grid {
	background: var(--bg-1);
	padding: var(--space-10) 24px;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}
.range-grid__inner { max-width: var(--container); margin: 0 auto; }
.range-grid__cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}
@media (max-width: 1024px) { .range-grid__cards { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { .range-grid__cards { grid-template-columns: repeat(2, 1fr); } }

.range-card {
	background: var(--bg-2);
	border: 1px solid var(--line);
	padding: 20px;
	position: relative;
	transition: border-color .2s ease;
	color: var(--text);
}
.range-card:hover { border-color: var(--gold); color: var(--text); }
.range-card__leaf { position: absolute; top: 12px; right: 12px; color: var(--gold); }
.range-card__media {
	aspect-ratio: 1 / 1;
	margin-bottom: 16px;
	font-size: 10px;
	background-color: #1a1a1a;
	background-image: repeating-linear-gradient(45deg, rgba(212, 166, 72, 0.06) 0 8px, transparent 8px 16px);
	border: 1px solid var(--line);
	color: var(--text-mute);
	display: flex; align-items: center; justify-content: center;
	text-align: center;
	font-family: var(--font-mono);
	overflow: hidden;
}
.range-card__media img { width: 100%; height: 100%; object-fit: cover; }
.range-card__cat {
	font-family: var(--font-mono);
	font-size: 10px;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	letter-spacing: 0.2em;
	text-transform: uppercase;
}
.range-card__title {
	font-family: var(--font-display);
	font-size: 22px;
	margin: 4px 0 0;
	color: var(--text);
	letter-spacing: 0.02em;
	line-height: 1;
}
.range-card__foot {
	margin-top: 12px;
	display: flex; justify-content: space-between; align-items: center;
	font-size: 12px;
	color: var(--text-dim);
}
.range-card__foot strong { color: var(--text); font-weight: 600; }
.range-card__cta { color: var(--gold); }

/* ============================================================
   Promo banner (FÊTE DU GROSSISTE)
   ============================================================ */
.promo-banner {
	max-width: var(--container);
	margin: 0 auto;
	background: linear-gradient(135deg, #1a1308 0%, #0a0a0a 60%);
	border: 1px solid var(--gold-2);
	padding: 48px;
	display: grid;
	grid-template-columns: 1.2fr 1fr 1fr;
	gap: 32px;
	align-items: center;
	position: relative;
	overflow: hidden;
}
.promo-banner__ghost {
	position: absolute;
	right: -40px;
	top: 50%;
	transform: translateY(-50%);
	font-family: var(--font-display);
	font-size: 360px;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	opacity: 0.08;
	line-height: 1;
	pointer-events: none;
}
.promo-banner__title {
	font-family: var(--font-display);
	font-size: 56px;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	line-height: 0.9;
	margin: 0;
	letter-spacing: 0.02em;
}
.promo-banner__big {
	font-family: var(--font-display);
	font-size: 80px;
	color: var(--text);
	margin-top: 8px;
	line-height: 0.9;
}
.promo-banner__big small { font-size: 40px; }
.promo-banner__step { position: relative; border-left: 1px solid var(--line-2); padding-left: 32px; }
.promo-banner__step-label {
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--text-mute);
	letter-spacing: 0.2em;
}
.promo-banner__step-amount { font-size: 14px; color: var(--text-dim); margin-top: 6px; }
.promo-banner__step-pct {
	font-family: var(--font-display);
	font-size: 48px;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	margin-top: 4px;
	line-height: 1;
}
@media (max-width: 1024px) {
	.promo-banner { grid-template-columns: 1fr; padding: 32px; }
	.promo-banner__step { border-left: 0; border-top: 1px solid var(--line-2); padding: 24px 0 0 0; }
}

/* ============================================================
   Value props (4 colonnes filière intégrée)
   ============================================================ */
.value-props { background: var(--bg-0); padding: var(--space-10) 24px; }
.value-props__inner { max-width: var(--container); margin: 0 auto; }
.value-props__head { margin-bottom: 48px; }
.value-props__head h2 { margin: 8px 0 0; max-width: 800px; font-size: clamp(32px, 4vw, 56px); }
.value-props__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-top: 1px solid var(--line);
	border-left: 1px solid var(--line);
}
.value-props__cell {
	padding: 32px;
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}
.value-props__cell h3 {
	font-family: var(--font-display);
	font-size: 22px;
	margin: 16px 0 12px;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	letter-spacing: 0.02em;
}
.value-props__cell p { font-size: 14px; color: var(--text-dim); line-height: 1.6; margin: 0; }
.value-props__num {
	font-family: var(--font-mono);
	font-size: 10px;
	color: var(--text-mute);
	margin-top: 24px;
	letter-spacing: 0.2em;
	display: block;
}
@media (max-width: 1024px) { .value-props__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .value-props__grid { grid-template-columns: 1fr; } }

/* ============================================================
   Stats
   ============================================================ */
.stats-band {
	background: var(--bg-1);
	padding: 60px 24px;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}
.stats-band__inner { max-width: var(--container); margin: 0 auto; }
.stats-band__title { text-align: center; margin-bottom: 32px; }
.stats-band__items {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}
.stats-band__item { text-align: center; }
.stats-band__value {
	font-family: var(--font-display);
	font-size: 56px;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	letter-spacing: 0.02em;
	line-height: 1;
}
.stats-band__label {
	font-family: var(--font-mono);
	font-size: 10px;
	color: var(--text-dim);
	letter-spacing: 0.25em;
	margin-top: 4px;
	text-transform: uppercase;
}
@media (max-width: 768px) {
	.stats-band__items { grid-template-columns: repeat(2, 1fr); gap: 32px 16px; }
	.stats-band__value { font-size: 40px; }
}

/* ============================================================
   Lead magnet (catalogue PDF)
   ============================================================ */
.lead-magnet { padding: 80px 24px; }
.lead-magnet__inner {
	max-width: var(--container);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 48px;
	align-items: center;
	border: 1px solid var(--line);
	padding: 48px;
	background: var(--bg-2);
}
.lead-magnet__title { margin: 12px 0 0; font-size: clamp(36px, 5vw, 64px); }
.lead-magnet__sub { color: var(--text-dim); margin-top: 16px; max-width: 480px; }
.lead-magnet__form { display: flex; gap: 0; margin-top: 24px; max-width: 460px; }
.lead-magnet__form input[type="email"] {
	flex: 1;
	padding: 14px 16px;
	background: var(--bg-0);
	border: 1px solid var(--line-2);
	border-right: none;
	color: var(--text);
	outline: none;
	font-size: 14px;
}
.lead-magnet__visual {
	aspect-ratio: 3 / 4;
	font-size: 12px;
}
@media (max-width: 1024px) { .lead-magnet__inner { grid-template-columns: 1fr; padding: 32px; } }

/* ============================================================
   Blog teasers
   ============================================================ */
.blog-teasers { background: var(--bg-0); padding: 80px 24px; }
.blog-teasers__inner { max-width: var(--container); margin: 0 auto; }
.blog-teasers__head {
	display: flex; justify-content: space-between; align-items: end;
	margin-bottom: 32px; gap: 24px; flex-wrap: wrap;
}
.blog-teasers__head h2 { margin: 0; font-size: clamp(32px, 4vw, 56px); }
.blog-teasers__head a { color: var(--gold); font-family: var(--font-mono); font-size: 13px; }
.blog-teasers__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.blog-teasers__card {
	border: 1px solid var(--line);
	padding: 24px;
	background: var(--bg-2);
	display: flex; flex-direction: column;
}
.blog-teasers__media {
	aspect-ratio: 16 / 9;
	margin-bottom: 16px;
	font-size: 10px;
	overflow: hidden;
}
.blog-teasers__media img { width: 100%; height: 100%; object-fit: cover; }
.blog-teasers__cat {
	font-family: var(--font-mono);
	font-size: 10px;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	letter-spacing: 0.2em;
	text-transform: uppercase;
}
.blog-teasers__title { font-size: 17px; margin: 8px 0 0; color: var(--text); line-height: 1.35; font-weight: 600; font-family: var(--font-body); }
.blog-teasers__title a { color: inherit; }
.blog-teasers__cta {
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--text-mute);
	margin-top: 16px;
	letter-spacing: 0.15em;
}
@media (max-width: 1024px) { .blog-teasers__cards { grid-template-columns: 1fr; } }

/* ============================================================
   FAQ
   ============================================================ */
.faq-block { background: var(--bg-1); padding: var(--space-10) 24px; border-top: 1px solid var(--line); }
.faq-block__inner { max-width: var(--container-narrow); margin: 0 auto; }
.faq-block__head { text-align: center; margin-bottom: 48px; }
.faq-block__head h2 { margin: 8px 0 0; font-size: clamp(32px, 4vw, 56px); }
.faq-item {
	border-top: 1px solid var(--line);
}
.faq-item:last-child { border-bottom: 1px solid var(--line); }
.faq-item summary {
	list-style: none;
	cursor: pointer;
	padding: 20px 0;
	display: flex; justify-content: space-between; align-items: center; gap: 16px;
	color: var(--text);
	font-size: 16px;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary span.faq-num {
	font-family: var(--font-mono);
	font-size: 12px;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	margin-right: 16px;
	letter-spacing: 0.15em;
}
.faq-item summary::after {
	content: "+";
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	font-size: 24px;
	line-height: 1;
	transition: transform .2s ease;
}
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-item__answer { padding: 0 0 20px 36px; color: var(--text-dim); font-size: 14px; }

/* ============================================================
   Footer trust pillars (remplace l'ancien CTA newsletter)
   ============================================================ */
.footer-pillars {
	background: linear-gradient(180deg, var(--bg-1), var(--bg-0));
	border-top: 1px solid var(--line);
	padding: 36px var(--container-px, 24px) 31px;
}
.footer-pillars__inner {
	/* Aligné pile sur le contenu de .container (var(--container) - 2× padding latéral) */
	max-width: calc(var(--container) - 2 * var(--container-px, 24px));
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: stretch;
	gap: 24px;
	flex-wrap: wrap;
}
.footer-pillar {
	display: flex;
	align-items: center;
	gap: 14px;
	flex: 1 1 0;
	min-width: 220px;
	position: relative;
	padding: 0;
}
.footer-pillar__icon {
	margin-top: 0;
}
.footer-pillar__body {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}
.footer-pillar__sub {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
}
.footer-pillar__title,
.footer-pillar__sub { word-break: break-word; overflow-wrap: anywhere; hyphens: auto; }
/* Séparateur retiré */
.footer-pillar__icon {
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: var(--bg-2);
	border: 1px solid var(--line);
	color: var(--gold);
}
.footer-pillar__icon svg { width: 22px; height: 22px; display: block; }
.footer-pillar__body { min-width: 0; }
.footer-pillar__title {
	margin: 0;
	font-family: var(--font-display, 'Inter', sans-serif);
	font-size: 17px;
	font-weight: 700;
	color: var(--text, #f5f5f5);
	line-height: 1.25;
	letter-spacing: 0.005em;
	/* 1 ligne fixe — garantit que tous les titres alignent leur baseline */
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
	overflow: hidden;
	min-height: 1.25em;
}
.footer-pillar__sub {
	margin: 6px 0 0;
	font-size: 14px;
	color: var(--text-dim);
	line-height: 1.45;
	/* Force exactement 2 lignes pour tous : min + max identiques → bandeau parfaitement aligné */
	min-height: calc(1.45em * 2);
	max-height: calc(1.45em * 2);
}
@media (max-width: 1024px) {
	.footer-pillar { flex: 1 1 calc(50% - 24px); min-width: 0; }
	.footer-pillar:nth-child(2)::after { display: none; }
	.footer-pillar:nth-child(3)::after,
	.footer-pillar:nth-child(4)::after { display: none; }
}
@media (max-width: 560px) {
	.footer-pillars { padding: 24px var(--container-px, 12px) 20px; }
	.footer-pillars__inner { gap: 16px; }
	.footer-pillar { flex: 1 1 100%; gap: 12px; }
	.footer-pillar::after { display: none !important; }
	.footer-pillar__icon { width: 36px !important; height: 36px !important; }
	.footer-pillar__icon svg { width: 18px !important; height: 18px !important; }
	.footer-pillar__title { font-size: 14px !important; line-height: 1.3 !important; min-height: 0 !important; }
	.footer-pillar__sub {
		font-size: 12.5px !important;
		line-height: 1.4 !important;
		min-height: 0 !important;
		max-height: none !important;
		margin-top: 4px !important;
	}
}

/* ============================================================
   Site footer
   ============================================================ */
.site-footer { background: #000; padding: 56px var(--container-px, 24px) 24px; border-top: 1px solid var(--line); }
.site-footer__inner {
	/* Aligné pile sur le contenu de .container (qui a padding intérieur var(--container-px)
	   à gauche+droite via box-sizing border-box, donc largeur utile = var(--container) - 2× padding). */
	max-width: calc(var(--container) - 2 * var(--container-px, 24px));
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1fr;
	gap: 48px;
}
.site-footer__brand { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.site-footer__brand .display { font-family: var(--font-display); font-size: 22px; color: var(--gold); }
.site-footer__brand img.custom-logo,
.site-footer__brand img { max-height: 80px; width: auto; }
.site-footer__bio { color: #fff; font-size: 15px; line-height: 1.6; max-width: 380px; }
.site-footer h4,
.site-footer__col-title {
	font-family: var(--font-mono);
	font-size: 12px;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	letter-spacing: 0.25em;
	margin: 0 0 16px;
	text-transform: uppercase;
}
.site-footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.site-footer a { color: #fff !important; font-size: 15px; line-height: 1.4; }
.site-footer a:hover { color: var(--gold) !important; }

/* Colonnes du footer en <details> — neutralisées sur desktop (toujours
   ouvertes, summary inerte), accordéon actif uniquement sur mobile. */
.site-footer__col { display: block; }
.site-footer__col > summary { list-style: none; cursor: default; }
.site-footer__col > summary::-webkit-details-marker { display: none; }
.site-footer__col > summary::marker { display: none; content: ''; }
.site-footer__col > summary > h4 { display: inline-block; margin: 0 0 16px; }

/* === Logos de paiement — sous la description du brand (1ère colonne footer) === */
.site-footer__payments {
	margin-top: 18px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
}
.site-footer__payments-label {
	font-family: var(--font-mono);
	font-size: 11px;
	background: none;
	-webkit-background-clip: border-box;
	background-clip: border-box;
	-webkit-text-fill-color: #ffffff;
	color: #ffffff;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	margin: 0;
}
.site-footer__payments-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}
.site-footer__payments-list .cbdco-pay-brand {
	display: inline-flex;
	width: 42px;
	height: 28px;
	border-radius: 4px;
	overflow: hidden;
	background: var(--bg-2);
	border: 1px solid var(--line);
	flex: 0 0 auto;
	line-height: 0;
	font-size: 0;
}
.site-footer__payments-list .cbdco-pay-brand svg { width: 100%; height: 100%; display: block; }
.site-footer__bottom {
	max-width: var(--container);
	margin: 32px auto 0;
	padding-top: 24px;
	border-top: 1px solid var(--line);
	display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px;
	color: var(--text);
	font-family: var(--font-mono);
	font-size: 13px;
	letter-spacing: 0.1em;
}
.site-footer__legal-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 4px 14px;
}
.site-footer__legal-links a {
	color: #fff !important;
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.site-footer__legal-links a:hover { color: var(--gold) !important; }
/* Séparateurs · masqués : on s'appuie sur le gap pour aérer (moins chargé) */
.site-footer__legal-links span { display: none; }
@media (max-width: 1024px) { .site-footer__inner { grid-template-columns: repeat(2, 1fr); gap: 24px; } }
@media (max-width: 900px) {
	.site-footer { padding: 28px var(--container-px, 12px) 0; }
	.site-footer__inner { grid-template-columns: 1fr; gap: 0; }
	/* Accordéon mobile — chaque colonne (Catégories, Mon compte, Informations).
	   Pas de border-bottom : le chevron devant le titre signale déjà l'accordéon. */
	.site-footer__col {
		border-bottom: 0 !important;
		border-image: none !important;
	}
	/* Filet du bottom en blanc (pas le var(--line) gris/doré desktop) */
	.site-footer__bottom {
		border-top-color: rgba(255,255,255,0.12) !important;
	}
	.site-footer__col > summary {
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: flex-start;
		padding: 0 4px;
		min-height: 14px;
		position: relative;
		gap: 10px;
		line-height: 1;
	}
	.site-footer__col > summary > h4 {
		margin: 0 !important;
		padding: 0 !important;
		font-size: 12px !important;
		line-height: 1 !important;
		font-weight: 400 !important;
		letter-spacing: 0.08em !important;
		text-transform: uppercase;
		/* Tout en blanc sur mobile — override le gradient doré desktop */
		background: none !important;
		-webkit-background-clip: border-box !important;
		background-clip: border-box !important;
		-webkit-text-fill-color: #fff !important;
		color: #fff !important;
	}
	/* Chevron AVANT le titre (à gauche) — rotate au déroulé */
	.site-footer__col > summary::before {
		content: '';
		display: inline-block;
		width: 7px; height: 7px;
		border-right: 1.5px solid #fff;
		border-bottom: 1.5px solid #fff;
		transform: rotate(-45deg);
		transform-origin: 65% 65%;
		transition: transform .25s ease;
		flex-shrink: 0;
		order: -1;
	}
	.site-footer__col[open] > summary::before { transform: rotate(45deg); }
	/* Plus de chevron à droite */
	.site-footer__col > summary::after { display: none; }
	.site-footer__col > ul,
	.site-footer__col > .menu-container,
	.site-footer__col > .menu-container > ul,
	.site-footer__col > div {
		padding: 12px 4px 0 !important;
	}
	/* Logo + bio côte à côte (logo gauche, texte droite) */
	.site-footer__inner > div:first-child {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 14px;
		margin-bottom: 4px;
	}
	.site-footer__brand {
		margin: 0 !important;
		flex: 0 0 auto;
	}
	.site-footer__brand img.custom-logo,
	.site-footer__brand img {
		/* 70×76 = multiples entiers du ratio source 175/190 (pas de sub-pixel) */
		height: 70px;
		width: 76px;
		max-height: 70px;
		max-width: 76px;
		image-rendering: auto;
		image-rendering: high-quality;
		-ms-interpolation-mode: bicubic;
	}
	.site-footer__bio {
		flex: 1 1 0;
		min-width: 0;
		margin: 0 !important;
		font-size: 12.5px !important;
		line-height: 1.4 !important;
	}
	/* Payments : ligne suivante, pleine largeur */
	.site-footer__payments {
		flex: 0 0 100%;
		margin-top: 8px !important;
	}
	.site-footer__bio { font-size: 13px; line-height: 1.5; }
	.site-footer h4,
	.site-footer__col-title { margin-bottom: 8px; font-size: 10.5px; }
	.site-footer ul { gap: 6px; }
	.site-footer a { font-size: 13.5px; }
	.site-footer__payments-list .cbdco-pay-brand { width: 36px; height: 24px; }
	.site-footer__bottom {
		margin-top: 27px !important;
		padding-top: 22px !important;
		padding-bottom: 22px !important;
		gap: 12px;
		flex-direction: column;
		text-align: center;
		align-items: center;
		font-size: 11px;
	}
	.site-footer__legal-links {
		justify-content: center !important;
		gap: 6px 12px !important;
	}
	.site-footer__legal-links a { font-size: 10px !important; }
}

/* ============================================================
   Breadcrumbs
   ============================================================ */
.woocommerce-breadcrumb, .breadcrumb {
	font-family: var(--font-mono);
	font-size: 13px;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--text-mute);
	max-width: var(--container);
	margin-top: 26px;
	margin-bottom: -5px;
	padding: 0px 24px;
}
@media (max-width: 768px) {
	.woocommerce-breadcrumb, .breadcrumb { font-size: 11px; }
}
.woocommerce-breadcrumb a,
.breadcrumb a { color: var(--text-dim); }
.woocommerce-breadcrumb a:hover { color: var(--gold); }

/* ============================================================
   Page hero (pages internes hors front)
   Sans image : gradient sombre animé + particules dorées (style header modale).
   Avec image : le ::before remplace le visuel par l'image et ::after applique
   le voile sombre — voir blocs --has-image plus bas.
   ============================================================ */
.page-hero {
	position: relative;
	padding: 28px 8px 24px;
	margin: 24px 0 10px;
	background:
		radial-gradient(circle at 20% 50%, rgba(216,183,104,.22) 0%, transparent 50%),
		radial-gradient(circle at 80% 30%, rgba(160,124,44,.18) 0%, transparent 50%),
		linear-gradient(135deg, #0f0d08 0%, #2d2618 50%, #1a1308 100%);
	background-size: 200% 200%, 200% 200%, 100% 100%;
	animation: cbdco-page-hero-shift 14s ease-in-out infinite;
	border-radius: 8px;
	overflow: hidden;
	isolation: isolate;
}
@keyframes cbdco-page-hero-shift {
	0%, 100% { background-position: 0% 50%, 100% 50%, 0 0; }
	50%      { background-position: 100% 50%, 0% 50%, 0 0; }
}
/* Particules dorées flottantes — uniquement quand il n'y a pas d'image
   personnalisée (sinon le ::before sert de calque image). */
.page-hero:not(.page-hero--has-image)::before {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background-image: radial-gradient(circle, rgba(216,183,104,.5) 1px, transparent 1.5px);
	background-size: 38px 38px;
	opacity: .22;
	z-index: -1;
	animation: cbdco-page-hero-stars 10s linear infinite;
}
@keyframes cbdco-page-hero-stars {
	from { transform: translate(0, 0); }
	to   { transform: translate(-38px, -38px); }
}
.page-hero--has-image {
	padding-top: 36px;
	padding-bottom: 32px;
}
.page-hero--has-image::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -2;
	/* var() en cascade : si --hero-image-desktop n'est pas défini, fallback
	   à l'ancienne --hero-image (compat). */
	background-image: var(--hero-image-desktop, var(--hero-image, none));
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
@media (max-width: 760px) {
	.page-hero--has-image::before {
		background-image: var(--hero-image-mobile, var(--hero-image-desktop, var(--hero-image, none)));
	}
}
@media (max-width: 760px) {
	/* La règle de taille du hero mobile vit dans responsive.css (source unique).
	   Ici on ne fait que repositionner l'image sur le haut. */
	.page-hero--has-image::before { background-position: center top; }
}
.page-hero--has-image::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(180deg,
			rgba(0,0,0, calc(var(--hero-opacity-desktop, var(--hero-opacity, 0.55)) - 0.1)),
			rgba(0,0,0, calc(var(--hero-opacity-desktop, var(--hero-opacity, 0.55)) + 0.15))
		);
}
@media (max-width: 760px) {
	/* Overlay sombre allégé sur mobile pour laisser respirer l'image de fond
	   (sinon avec 0.55 par défaut elle disparaît sous le voile noir). */
	.page-hero--has-image::after {
		background:
			linear-gradient(180deg,
				rgba(0,0,0, calc(var(--hero-opacity-mobile, 0.30) - 0.1)),
				rgba(0,0,0, calc(var(--hero-opacity-mobile, 0.30) + 0.15))
			);
	}
}
.page-hero h1 {
	font-family: var(--font-body);
	font-weight: 400;
	font-size: clamp(22px, 2.6vw, 34px);
	margin: 4px 0 4px;
	color: var(--text);
	letter-spacing: 0.01em;
	line-height: 1.1;
	text-shadow: 0 2px 16px rgba(0,0,0,0.6);
}
.page-hero__inner { max-width: 720px; }
/* Toggle CSS-only de la description longue : input + label sont cachés
   globalement, n'apparaissent que dans le @media mobile de responsive.css. */
.page-hero__descr-toggle,
.page-hero__descr-more { display: none !important; }
.page-hero__top {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 14px;
}
.page-hero .eyebrow {
	color: #fff;
	text-shadow: 0 1px 8px rgba(0,0,0,0.6);
	font-size: 11px;
}
.page-hero__descr {
	color: #f5f5f5;
	font-size: 14px;
	line-height: 1.6;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.55);
	font-weight: 400;
	margin-bottom: -28px;
	max-width: 720px;
}
.page-hero__descr p { margin: 0 0 8px; }
.page-hero__descr p:last-child { margin: 0; }
/* h2 généré par l'IA dans le hero : fondu dans la prose, pas un gros titre.
   Le hero a déjà son propre titre H1 au-dessus, donc le h2 ici sert juste
   d'accroche éditoriale — on le rend plus discret, légèrement plus gros
   que le texte courant et avec espacement minimal. */
.page-hero__descr h2,
.page-hero__descr h3 {
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.4;
	margin: 0 0 6px;
	color: inherit;
	text-transform: none;
	font-family: inherit;
}

/* Breadcrumb (dans le hero : blanc, aligné sur le bord gauche du titre) */
.page-hero .breadcrumb {
	font-family: var(--font-mono);
	font-size: 13px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #fff;
	text-shadow: 0 1px 4px rgba(0,0,0,0.5);
	margin: 0;
	padding: 0;
	max-width: none;
}
@media (max-width: 768px) {
	.page-hero .breadcrumb { font-size: 11px; }
}
.page-hero .breadcrumb a { color: #fff; text-decoration: none; opacity: 0.85; }
.page-hero .breadcrumb a:hover { color: var(--gold); opacity: 1; }
.page-hero .breadcrumb .breadcrumb__sep { margin: 0 6px; color: #fff; opacity: 0.45; }
/* Hero des catégories produit : breadcrumb blanc pur, pas de padding gauche
   (override du padding-left: 24px !important global). Eyebrow "X produits" en
   blanc plutôt qu'en doré (override du dégradé .eyebrow global). */
body.tax-product_cat .page-hero .breadcrumb {
	padding-left: 0 !important;
	padding-right: 0 !important;
	text-indent: 0;
}
body.tax-product_cat .page-hero .breadcrumb,
body.tax-product_cat .page-hero .breadcrumb a,
body.tax-product_cat .page-hero .breadcrumb a:visited,
body.tax-product_cat .page-hero .breadcrumb .breadcrumb__sep {
	color: #fff !important;
	opacity: 1 !important;
}
body.tax-product_cat .page-hero .eyebrow {
	background: none !important;
	-webkit-text-fill-color: #fff !important;
	color: #fff !important;
}

.page-content { padding: 20px 0; }
.page-content > .container--wide { padding: 0; }

/* ============================================================
   Cards génériques (utilisable partout)
   ============================================================ */
.card {
	background: var(--bg-2);
	border: 1px solid var(--line);
	padding: 24px;
}
.card:hover { border-color: var(--line-2); }

/* ============================================================
   WooCommerce — Products archive
   ============================================================ */
.shop-layout {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 32px;
	align-items: start;
}
.shop-layout--empty {
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 55vh;
	grid-template-columns: 1fr;
	gap: 0;
}
.shop-layout--empty .shop-main { width: 100%; }
.shop-layout--empty .cbdco-empty-products { min-height: 0; }
@media (max-width: 1023px) {
	.shop-layout {
		display: flex !important;
		flex-direction: column !important;
		grid-template-columns: 1fr;
		gap: 16px;
		align-items: stretch !important;
	}
	/* Sur mobile/tablette : Quiz (déplacé via JS dans .shop-layout) en haut,
	   puis Filtres+Trier, puis produits. */
	.shop-layout > .cbdco-quiz-cat-cta--mobile-top {
		order: 0 !important;
		width: 100% !important;
		flex: 1 1 100% !important;
		display: flex !important;
		padding: 10px 14px !important;
		margin: 0 0 7px !important;
	}
	.shop-layout > .cbdco-quiz-cat-cta--mobile-top .cbdco-quiz-cat-cta__btn {
		width: 100% !important;
		padding: 6px 4px !important;
		gap: 12px !important;
		min-height: 44px !important;
		align-items: center !important;
		justify-content: flex-start !important;
		font-size: 14.5px !important;
	}
	.shop-layout > .cbdco-quiz-cat-cta--mobile-top .cbdco-quiz-cat-cta__sparkle {
		width: 30px !important; height: 30px !important;
		flex: 0 0 30px !important;
	}
	.shop-layout > .cbdco-quiz-cat-cta--mobile-top .cbdco-quiz-cat-cta__sparkle svg {
		width: 14px !important; height: 14px !important;
	}
	.shop-layout > .cbdco-quiz-cat-cta--mobile-top .cbdco-quiz-cat-cta__text {
		flex: 1 1 auto !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: 2px !important;
	}
	.shop-layout > .cbdco-quiz-cat-cta--mobile-top .cbdco-quiz-cat-cta__text strong { font-size: 14px !important; line-height: 1.2 !important; }
	.shop-layout > .cbdco-quiz-cat-cta--mobile-top .cbdco-quiz-cat-cta__text small {
		display: block !important;
		font-size: 12px !important;
		line-height: 1.3 !important;
		color: #ffffff !important;
		font-weight: 400 !important;
	}
	.shop-layout > .cbdco-quiz-cat-cta--mobile-top .cbdco-quiz-cat-cta__action {
		flex: 0 0 auto !important;
		font-size: 12px !important;
	}
	.shop-layout .shop-sidebar { order: 1 !important; }
	.shop-layout .shop-main    { order: 2 !important; }
	/* Sidebar collapsible : par défaut on ne montre que le bouton "Filtres",
	   le contenu (.shop-filters) s'ouvre via le toggle JS. */
	.shop-sidebar {
		position: static !important;
		top: auto !important;
		max-height: none !important;
		overflow: visible !important;
		padding: 0 !important;
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		gap: 0 !important;
	}
	/* Quand la sidebar contient AUSSI le sélecteur "Trier par" (mobile),
	   on les met côte à côte 50/50, le panneau filtres reste full width. */
	.shop-sidebar.shop-sidebar--has-ordering {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		grid-template-areas:
			"toggle ordering"
			"filters filters"
			"rating rating";
		gap: 8px !important;
		align-items: center !important;
		margin-bottom: -22px;
		margin-top: -6px;
	}
	.shop-sidebar--has-ordering > .shop-filters-toggle    { grid-area: toggle; width: 100% !important; }
	.shop-sidebar--has-ordering > form.woocommerce-ordering { grid-area: ordering; margin: 0 !important; width: 100% !important; }
	.shop-sidebar--has-ordering > form.woocommerce-ordering select.orderby,
	.shop-sidebar--has-ordering > form.woocommerce-ordering .cbdco-cardsel__btn { width: 100% !important; }
	.shop-sidebar--has-ordering > .shop-filters { grid-area: filters; }
	.shop-sidebar--has-ordering > .filter-rating-card { grid-area: rating; }

	/* Bouton "Filtres" — fond gris avec fine bordure claire. */
	.shop-sidebar .shop-filters-toggle {
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		width: 100%;
		padding: 10px 36px;
		font-family: var(--font-body);
		font-size: 12.5px;
		font-weight: 500;
		letter-spacing: 0.01em;
		color: var(--text);
		text-transform: none;
		border: 1px solid var(--line);
		border-radius: 4px;
		cursor: pointer;
		background: var(--bg-3);
		transition: background .15s ease, color .15s ease, border-color .15s ease;
	}
	.shop-sidebar .shop-filters-toggle:hover { color: var(--gold); }
	/* Wrapper "Trier par" : on neutralise sa bordure/fond/padding propres
	   (sinon double bordure avec celle du bouton interne). */
	.shop-sidebar--has-ordering form.woocommerce-ordering {
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		padding: 0 !important;
	}
	/* Bouton interne "Trier par" : même style que le bouton Filtres. */
	.shop-sidebar--has-ordering form.woocommerce-ordering.cbdco-cardsel-host .cbdco-cardsel__btn {
		background: var(--bg-3) !important;
		border: 1px solid var(--line) !important;
		border-radius: 4px !important;
		padding: 10px 36px !important;
		font-size: 12.5px !important;
		justify-content: center !important;
		min-width: 0 !important;
	}
	.shop-sidebar .shop-filters-toggle:focus,
	.shop-sidebar .shop-filters-toggle:focus-visible,
	.shop-sidebar .shop-filters-toggle:active { outline: none !important; box-shadow: none !important; }
	.shop-sidebar .shop-filters-toggle__caret {
		position: absolute;
		right: 12px;
		top: 50%;
		transform: translateY(-50%);
		display: inline-flex;
		color: var(--gold);
		pointer-events: none;
		transition: transform .2s ease;
	}
	.shop-sidebar.is-open .shop-filters-toggle__caret { transform: translateY(-50%) rotate(180deg); }
	.shop-sidebar > .shop-filters,
	.shop-sidebar > .filter-rating-card { display: none !important; }
	.shop-sidebar.is-open > .shop-filters {
		display: flex !important;
		flex-direction: column !important;
		margin-top: 10px;
		background: var(--bg-2);
		border: 1px solid var(--line);
		border-radius: 8px;
		padding: 14px 14px 16px;
		gap: 18px;
	}
	.shop-sidebar.is-open > .shop-filters > * { margin: 0 !important; }
	.shop-sidebar.is-open > .shop-filters .filter-group,
	.shop-sidebar.is-open > .shop-filters .filter-group__inner,
	.shop-sidebar.is-open > .shop-filters .widget {
		padding: 0 !important;
		margin: 0 !important;
	}
	.shop-sidebar.is-open > .shop-filters h3,
	.shop-sidebar.is-open > .shop-filters .filter-group__title {
		font-size: 13px !important;
		margin: 8px 0 10px !important;
	}
	/* Premier titre de section : un peu plus d'air pour ne pas être collé au
	   top du panneau (juste sous la barre toggle/tri). */
	.shop-sidebar.is-open > .shop-filters > :first-child h3,
	.shop-sidebar.is-open > .shop-filters > :first-child .filter-group__title,
	.shop-sidebar.is-open > .shop-filters h3:first-child,
	.shop-sidebar.is-open > .shop-filters .filter-group:first-child .filter-group__title {
		margin-top: 4px !important;
	}
	.shop-sidebar.is-open > .shop-filters .filter-pills,
	.shop-sidebar.is-open > .shop-filters .pa-pills { gap: 6px !important; }
	.shop-sidebar.is-open > .shop-filters .filter-pills__btn,
	.shop-sidebar.is-open > .shop-filters .pa-pill {
		padding: 6px 10px !important;
		font-size: 11.5px !important;
	}
	.shop-sidebar.is-open > .filter-rating-card {
		display: flex !important;
		margin-top: 10px;
	}
}
/* Le bouton toggle n'existe que sur mobile — il est masqué sur desktop. */
@media (min-width: 1024px) {
	.shop-sidebar .shop-filters-toggle { display: none; }
}

.shop-sidebar {
	background: var(--bg-2);
	border: 1px solid var(--line);
	border-radius: 10px;
	padding: 22px 22px 24px;
	display: flex;
	flex-direction: column;
	gap: 22px;
	position: sticky;
	top: 86px;
	max-height: calc(100vh - 110px);
	overflow-y: auto;
	scrollbar-width: thin;
	scrollbar-color: var(--gold) transparent;
}
.shop-sidebar::-webkit-scrollbar { width: 6px; }
.shop-sidebar::-webkit-scrollbar-thumb { background: var(--gold); border-radius: 3px; }

/* === Custom shop filters === */
.shop-filters {
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.shop-filters .filter-group + .filter-group { padding-top: 18px; border-top: 1px solid var(--line); }
/* Empty state — affiché quand la catégorie n'expose aucun attribut filtrable. */
.shop-filters__empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 22px 18px;
	background: rgba(212, 168, 75, 0.04);
	border: 1px dashed rgba(212, 168, 75, 0.28);
	border-radius: 10px;
	text-align: center;
}
.shop-filters__empty-icon {
	color: var(--gold, #c9a36b);
	opacity: 0.85;
}
.shop-filters__empty-title {
	margin: 0;
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 600;
	color: var(--text, #f5f1e8);
	letter-spacing: 0.2px;
}
.shop-filters__empty-text {
	margin: 0;
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--text-mute, #a0a0a0);
}
.filter-reset {
	display: inline-flex; align-items: center; gap: 6px;
	align-self: flex-start;
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--text-dim);
	padding: 6px 12px;
	border: 1px solid var(--line);
	border-radius: 999px;
	text-decoration: none;
	transition: all .15s ease;
}
.filter-reset:hover { color: var(--gold); border-color: var(--gold); background: rgba(212,166,72,0.08); }
.filter-group { display: flex; flex-direction: column; gap: 10px; }
.shop-sidebar .filter-group__title,
.filter-group__title {
	font-family: var(--font-display);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	margin: 0;
	padding: 0;
	border-bottom: 0;
}
h3.filter-group__title {
	margin-bottom: 8px !important;
}
.filter-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.filter-pill {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 8px 14px;
	background: var(--bg-3);
	border: 1px solid var(--line);
	border-radius: 999px;
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 500;
	color: var(--text);
	text-decoration: none;
	transition: all .15s ease;
	cursor: pointer;
}
.filter-pill em {
	font-style: normal;
	font-size: 11px;
	color: var(--text-mute);
	font-weight: 600;
}
.filter-pill:hover { border-color: var(--gold); color: var(--gold); }
.filter-pill:hover em { color: var(--gold); }
.filter-pill.is-active {
	background: var(--btn-bg);
	border-color: transparent;
	color: #1a1208;
	font-weight: 600;
}
.filter-pill.is-active em { color: rgba(26,18,8,0.7); }
.filter-bins { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.filter-bin {
	display: flex; flex-direction: column; gap: 2px;
	padding: 12px 14px;
	background: var(--bg-3);
	border: 1px solid var(--line);
	border-radius: 8px;
	font-family: var(--font-body);
	color: var(--text);
	text-decoration: none;
	transition: all .15s ease;
}
.filter-bin strong { font-size: 14px; font-weight: 600; letter-spacing: 0; }
.filter-bin span { font-size: 11px; color: var(--text-mute); letter-spacing: 0.04em; }
.filter-bin:hover { border-color: var(--gold); color: var(--gold); }
.filter-bin:hover span { color: var(--gold); opacity: 0.85; }
.filter-bin.is-active {
	background: var(--btn-bg);
	border-color: transparent;
	color: #1a1208;
}
.filter-bin.is-active span { color: rgba(26,18,8,0.7); }

/* === Filtre par note === */
.filter-rating { display: flex; flex-direction: column; gap: 6px; }
.filter-rating-row {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 12px;
	background: var(--bg-3);
	border: 1px solid var(--line);
	border-radius: 8px;
	font-family: var(--font-body);
	font-size: 13px;
	color: var(--text);
	text-decoration: none;
	transition: all .15s ease;
}
.filter-rating-row:hover {
	border-color: var(--gold);
	color: var(--gold);
}
.filter-rating-row.is-active {
	background: var(--btn-bg);
	border-color: transparent;
	color: #1a1208;
	font-weight: 600;
}
.filter-rating__stars {
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	font-size: 14px;
	letter-spacing: 1px;
	line-height: 1;
}
.filter-rating-row.is-active .filter-rating__stars {
	background: none;
	-webkit-text-fill-color: #1a1208;
	color: #1a1208;
}
.filter-rating__label { flex: 1; }
.filter-rating-row em {
	font-style: normal;
	font-size: 11px;
	color: var(--text-mute);
	font-weight: 600;
}
.filter-rating-row:hover em { color: var(--gold); }
.filter-rating-row.is-active em { color: rgba(26,18,8,0.7); }

/* Sheen doré générique (réutilisable partout via .filter-rating-card, .sp-trust, etc.) */
@keyframes cbdco-sheen {
	0%   { left: -40%; }
	60%  { left: 110%; }
	100% { left: 110%; }
}

/* === Bloc réassurance "Note moyenne" sous les filtres === */
.filter-rating-card {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px;
	margin-top: 0px;
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 12px;
	position: relative;
	overflow: hidden;
}
.filter-rating-card::before {
	content: '';
	position: absolute;
	top: 0; left: -40%;
	width: 40%;
	height: 100%;
	background: linear-gradient(90deg, transparent 0%, rgba(226, 203, 151, 0.10) 45%, rgba(226, 203, 151, 0.20) 50%, rgba(226, 203, 151, 0.10) 55%, transparent 100%);
	pointer-events: none;
	transform: skewX(-18deg);
	animation: cbdco-sheen 7s 1s ease-in-out infinite;
	z-index: 0;
}
.filter-rating-card > * { position: relative; z-index: 1; }
.filter-rating-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	border-radius: 50%;
	background: var(--btn-bg);
	border: 1px solid var(--gold);
	color: #1a1208;
	box-shadow: 0 2px 10px rgba(212, 168, 75, 0.30);
}
.filter-rating-card__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.filter-rating-card__head {
	display: flex;
	align-items: baseline;
	gap: 8px;
	flex-wrap: wrap;
}
.filter-rating-card__avg {
	font-family: var(--font-display);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
}
.filter-rating-card__stars {
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	font-size: 14px;
	letter-spacing: 1px;
	line-height: 1;
}
.filter-rating-card__sub {
	font-size: 11px;
	color: var(--text-mute);
	letter-spacing: 0.04em;
	line-height: 1.4;
}

@media (max-width: 1023px) {
	.shop-sidebar { position: static; max-height: none; overflow: visible; }
}

/* === Filtre prix dual range === */
.filter-price { display: flex; flex-direction: column; gap: 12px; }
.filter-price__values {
	display: flex;
	justify-content: space-between;
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 600;
	color: var(--text);
}
.filter-price__track {
	position: relative;
	height: 28px;
	margin: 0 8px;
}
.filter-price__track::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 50%;
	height: 4px;
	transform: translateY(-50%);
	background: var(--bg-3);
	border-radius: 2px;
}
.filter-price__range {
	position: absolute;
	top: 50%;
	height: 4px;
	transform: translateY(-50%);
	background: var(--btn-bg);
	border-radius: 2px;
	left: 0; right: 0;
}
.filter-price__track input[type="range"] {
	position: absolute;
	left: 0; top: 0;
	width: 100%;
	height: 28px;
	margin: 0;
	background: transparent;
	-webkit-appearance: none;
	appearance: none;
	pointer-events: none;
	z-index: 2;
}
.filter-price__track input[type="range"]::-webkit-slider-runnable-track {
	background: transparent;
	height: 4px;
}
.filter-price__track input[type="range"]::-moz-range-track {
	background: transparent;
	height: 4px;
}
.filter-price__track input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--gold);
	border: 2px solid var(--bg-1);
	box-shadow: 0 2px 6px rgba(0,0,0,0.4);
	cursor: pointer;
	pointer-events: auto;
	margin-top: -7px;
}
.filter-price__track input[type="range"]::-moz-range-thumb {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--gold);
	border: 2px solid var(--bg-1);
	box-shadow: 0 2px 6px rgba(0,0,0,0.4);
	cursor: pointer;
	pointer-events: auto;
}
.filter-price__btn {
	background: var(--btn-bg);
	color: #1a1208;
	font-family: var(--font-display);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 9px 14px;
	border: 0;
	border-radius: 6px;
	cursor: pointer;
	transition: transform .15s ease;
}
.filter-price__btn:hover { transform: translateY(-1px); }
/* On masque les widgets non-pertinents : catégories, derniers articles, méta, recherche. */
.shop-sidebar .widget_product_categories,
.shop-sidebar .widget_categories,
.shop-sidebar .widget_recent_entries,
.shop-sidebar .widget_meta,
.shop-sidebar .widget_search { display: none; }
.shop-sidebar .widget { margin: 0; }
.shop-sidebar .widget-title,
.shop-sidebar h3 {
	font-family: var(--font-display);
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	margin: 0 0 14px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--line);
}
.shop-sidebar ul {
	list-style: none;
	margin: 0;
	padding: 0;
	font-family: var(--font-body);
	font-size: 14px;
	letter-spacing: 0;
}
.shop-sidebar ul li {
	padding: 8px 0;
	border-bottom: 1px dashed var(--line);
	color: var(--text-dim);
}
.shop-sidebar ul li:last-child { border-bottom: 0; }
.shop-sidebar ul li a {
	color: var(--text-dim);
	text-decoration: none;
	transition: color .15s ease;
}
.shop-sidebar ul li a:hover { color: var(--gold); }
.shop-sidebar ul li.chosen a,
.shop-sidebar ul li.current-cat a { color: var(--gold); }
.shop-sidebar ul li .count {
	float: right;
	color: var(--text-mute);
	font-size: 12px;
	letter-spacing: 0;
}

/* WC Price Filter */
.shop-sidebar .price_slider_wrapper { padding-top: 4px; }
.shop-sidebar .price_slider {
	background: var(--bg-3);
	height: 4px;
	border-radius: 2px;
	margin: 16px 0 18px;
	position: relative;
}
.shop-sidebar .ui-slider-range {
	position: absolute;
	background: linear-gradient(90deg, var(--gold-2), var(--gold), var(--gold-soft));
	height: 4px;
	border-radius: 2px;
}
.shop-sidebar .ui-slider-handle {
	position: absolute;
	top: -7px;
	width: 18px;
	height: 18px;
	background: var(--gold);
	border: 2px solid var(--bg-0);
	border-radius: 50%;
	cursor: pointer;
	margin-left: -9px;
	outline: none;
}
.shop-sidebar .price_slider_amount {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	color: var(--text-dim);
}
.shop-sidebar .price_slider_amount .price_label { flex: 1 1 auto; }
.shop-sidebar .price_slider_amount .price_label span {
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	font-weight: 600;
}
.shop-sidebar .price_slider_amount .button {
	background: var(--btn-bg);
	color: #1a1208;
	font-family: var(--font-display);
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 8px 14px;
	border: 0;
	cursor: pointer;
}
.shop-sidebar .price_slider_amount .button:hover { transform: translateY(-1px); }

/* Active filters widget */
.shop-sidebar .woocommerce-widget-layered-nav-list__item--chosen a::before {
	content: "✕";
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	margin-right: 6px;
	font-size: 10px;
}

.shop-toolbar {
	display: flex; justify-content: flex-end; align-items: center;
	background: transparent;
	border: 0;
	padding: 0;
	margin-bottom: 8px;
	font-family: var(--font-body);
}
.woocommerce-result-count { display: none; }
.woocommerce-ordering {
	margin: 0;
	background: var(--bg-2);
	border: 1px solid var(--line);
	border-radius: 10px;
	padding: 4px 6px;
	transition: border-color .15s ease;
}
.woocommerce-ordering:hover { border-color: var(--gold); }
.woocommerce-ordering select {
	background: transparent;
	color: var(--text);
	border: 0;
	padding: 8px 32px 8px 14px;
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23d4a648' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
	background-repeat: no-repeat;
	background-position: right 10px center;
	background-size: 12px 12px;
	transition: color .15s ease;
}
.woocommerce-ordering select:hover,
.woocommerce-ordering select:focus,
.woocommerce-ordering select:focus-visible {
	color: var(--gold);
	outline: none;
	box-shadow: none;
	border-color: transparent;
}
.woocommerce-ordering select option {
	background: var(--bg-2);
	color: var(--text);
	font-family: var(--font-body);
}
/* Quand le custom dropdown est appliqué : on garde le wrapper natif tel quel
   et on neutralise le visuel du .cbdco-cardsel__btn (transparent + petit padding)
   pour qu'il ait la même tête que le select WC d'origine. Seule la liste
   déroulée hérite du style cbdco-cardsel. */
.woocommerce-ordering.cbdco-cardsel-host .cbdco-cardsel { width: auto; }
.woocommerce-ordering.cbdco-cardsel-host .cbdco-cardsel__btn {
	background: transparent;
	border: 0;
	padding: 8px 32px 8px 14px;
	color: var(--text);
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0;
	width: auto;
	min-width: 0;
	max-width: 100%;
	justify-content: flex-start;
	border-radius: 0;
}
@media (min-width: 769px) {
	.woocommerce-ordering.cbdco-cardsel-host .cbdco-cardsel__btn { min-width: 220px; }
}
.woocommerce-ordering.cbdco-cardsel-host .cbdco-cardsel__btn:hover { color: var(--gold); }
.woocommerce-ordering.cbdco-cardsel-host .cbdco-cardsel__btn:focus { box-shadow: none; outline: none; }
.woocommerce-ordering.cbdco-cardsel-host .cbdco-cardsel__label {
	flex: 1;
	text-align: left;
}
.woocommerce-ordering.cbdco-cardsel-host .cbdco-cardsel__caret {
	color: var(--gold);
	right: 10px;
}
/* Liste déroulée : on garde le style cbdco-cardsel d'origine
   (options centrées, fond bg-2, hover doré, state actif gold-soft).
   Pas de scroll interne : les 6 options doivent être visibles d'un coup. */
.woocommerce-ordering.cbdco-cardsel-host .cbdco-cardsel__list {
	max-height: none;
	overflow: visible;
}
.woocommerce-ordering.cbdco-cardsel-host .cbdco-cardsel__opt { text-align: left; font-size: 13px; }

.woocommerce ul.products,
ul.products {
	list-style: none; padding: 0; margin: 0 0 48px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
.shop-main > ul.products:last-child { margin-bottom: 0; }
/* Neutralise le clearfix legacy de WC qui crée des grid items fantômes. */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
ul.products::before,
ul.products::after { display: none !important; }
@media (max-width: 1279px) { .woocommerce ul.products, ul.products { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 599px)  { .woocommerce ul.products, ul.products { grid-template-columns: repeat(2, 1fr); gap: 10px; } }

/* Reset des défauts WooCommerce float-layout pour passer en grid pur.
   !important nécessaire car WC charge .columns-N li.product avec spécificité (0,0,3,2). */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
ul.products li.product {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	clear: none;
	background: var(--bg-2);
	border: 1px solid var(--line);
	padding: 0;
	display: flex; flex-direction: column;
	transition: border-color .2s ease, background .2s ease;
	position: relative;
}
ul.products li.product:hover {
	border-color: transparent;
	background: linear-gradient(var(--bg-2), var(--bg-2)) padding-box,
	            var(--btn-bg) border-box;
}
.product__media-wrap {
	position: relative;
	overflow: hidden;
}
.product__media {
	aspect-ratio: 1 / 1;
	background-color: #1a1a1a;
	background-image: repeating-linear-gradient(45deg, rgba(212, 166, 72, 0.06) 0 8px, transparent 8px 16px);
	display: flex; align-items: center; justify-content: center;
	overflow: hidden;
	border-bottom: 1px solid var(--line);
}
.product__media img { width: 100%; height: 100%; object-fit: cover; margin: 0 !important; }
/* Override le margin par défaut WC qui casse l'aspect carré des cards. */
.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img { margin: 0 !important; }

/* Badges (top-left / top-right corners) */
.product__badges {
	position: absolute; top: 10px; z-index: 2;
	display: flex; flex-direction: column; gap: 6px;
	pointer-events: none;
}
.product__badges--start { left: 10px; align-items: flex-start; }
.product__badges--end   { right: 10px; align-items: flex-end; }
.badge {
	display: inline-block;
	font-family: var(--font-display);
	font-size: 11px;
	letter-spacing: 0.08em;
	padding: 5px 10px;
	border-radius: 4px;
	line-height: 1;
	text-transform: uppercase;
	pointer-events: auto;
}
.badge--featured,
.badge--new,
.badge--limited {
	background: var(--gold-soft);
	color: #1a1208;
	border: 1px solid var(--gold);
}
.badge--sale {
	background: #d33b3b;
	color: #fff;
	font-weight: 700;
}
ul.products li.product a { color: var(--text); }

.product__body { padding: 20px 22px 6px; flex: 1; display: flex; flex-direction: column; align-items: center; text-align: center; }
.product__cat {
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--text-mute);
	font-weight: 500;
	margin-bottom: 8px;
	opacity: 0.85;
}
.product__title,
.woocommerce ul.products li.product .woocommerce-loop-category__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h3,
ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--font-display);
	font-size: 0.9rem;
	color: var(--text);
	margin: 6px 0 8px;
	line-height: 1.2;
	letter-spacing: 0.02em;
}
.product__rating {
	display: flex; align-items: center; gap: 8px;
	font-family: var(--font-mono);
	font-size: 11px;
	margin-bottom: 12px;
}
.product__rating .stars { color: var(--gold); letter-spacing: 1px; }
.product__rating .reviews { color: var(--text-mute); letter-spacing: 0.05em; }

/* Étoiles : __track wrap les __bg + __fg pour que la width % du __fg se
   calcule sur la largeur des étoiles uniquement (sinon les __avg/__count
   du parent .cbdco-stars gonflent la base de calcul). */
.cbdco-stars__track { position: relative; display: inline-block; vertical-align: middle; line-height: 1; }
.cbdco-stars__track .cbdco-stars__bg { display: inline-block; }
.cbdco-stars__track .cbdco-stars__fg {
	position: absolute;
	top: 0;
	left: 0;
	display: inline-block;
	overflow: hidden;
	white-space: nowrap;
}
/* Dégradé doré sur les étoiles "remplies" dans les cards loop */
.product__rating--cbdco .cbdco-stars__fg {
	background: var(--btn-bg);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

/* Popover "aperçu des derniers avis" sur les pills rating (hover) */
.cbdco-rating-popover {
	position: fixed;
	z-index: 1000;
	width: 320px;
	max-width: calc(100vw - 16px);
	background: var(--bg-2);
	border: 1px solid var(--line-2);
	border-radius: 10px;
	box-shadow: 0 16px 40px rgba(0,0,0,0.5);
	padding: 14px 14px 12px;
	color: var(--text);
	font-size: 13px;
	line-height: 1.45;
	pointer-events: auto;
	animation: cbdco-pop-in .14s ease-out;
}
.cbdco-rating-popover[hidden] { display: none; }
.cbdco-rating-popover::after {
	content: "";
	position: absolute;
	left: var(--cbdco-pop-arrow, 50%);
	transform: translateX(-50%) rotate(45deg);
	width: 10px; height: 10px;
	background: var(--bg-2);
	border: 1px solid var(--line-2);
}
.cbdco-rating-popover[data-placement="top"]::after {
	bottom: -6px;
	border-top: 0;
	border-left: 0;
}
.cbdco-rating-popover[data-placement="bottom"]::after {
	top: -6px;
	border-bottom: 0;
	border-right: 0;
}
.cbdco-rating-popover__loading {
	color: var(--text-mute);
	font-size: 13px;
	text-align: center;
	padding: 6px 0;
}
.cbdco-rating-popover__empty { text-align: center; padding: 4px 6px 2px; }
.cbdco-rating-popover__empty-icon { font-size: 28px; line-height: 1; margin-bottom: 6px; }
.cbdco-rating-popover__empty-title {
	color: var(--gold-soft);
	font-weight: 600;
	font-size: 14px;
	margin-bottom: 4px;
}
.cbdco-rating-popover__empty-sub {
	color: var(--text-mute);
	font-size: 12.5px;
	line-height: 1.4;
}
.cbdco-rating-popover__head {
	display: flex; align-items: baseline; gap: 4px;
	font-size: 16px;
	margin-bottom: 10px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--line);
}
.cbdco-rating-popover__head strong {
	font-size: 22px;
	font-weight: 700;
	color: var(--gold-soft);
}
.cbdco-rating-popover__head span:nth-of-type(1) {
	color: var(--text-mute);
	font-size: 13px;
}
.cbdco-rating-popover__count {
	color: var(--text-mute);
	font-size: 12px;
	margin-left: 4px;
}
.cbdco-rating-popover__list {
	list-style: none;
	margin: 0; padding: 0;
	display: flex; flex-direction: column; gap: 12px;
	max-height: 320px;
	overflow-y: auto;
}
.cbdco-rating-popover__item {
	border-left: 2px solid var(--gold-2);
	padding-left: 10px;
}
.cbdco-rating-popover__row {
	display: flex; align-items: center; gap: 8px;
	margin-bottom: 4px;
	flex-wrap: wrap;
}
.cbdco-rating-popover__author {
	font-weight: 600;
	color: var(--text);
	font-size: 12.5px;
}
.cbdco-rating-popover__date {
	color: var(--text-mute);
	font-size: 11.5px;
	margin-left: auto;
}
.cbdco-rating-popover__text {
	margin: 0;
	color: var(--text-dim);
	font-size: 13px;
	line-height: 1.45;
}
@keyframes cbdco-pop-in {
	from { opacity: 0; transform: translateY(-4px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* Bloc rating en overlay bas de la photo — pill compact centré (lisibilité max) */
.product__rating--overlay {
	position: absolute;
	left: 50%; bottom: 12px;
	transform: translateX(-50%);
	margin: 0 !important;
	padding: 6px 12px;
	background: rgba(15,15,15,0.78);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border: 1px solid rgba(212,168,75,0.25);
	border-radius: 999px;
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	white-space: nowrap;
	z-index: 2;
	box-shadow: 0 4px 14px rgba(0,0,0,0.35);
	cursor: help;
	transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.product__rating--overlay[data-rating-preview]:hover {
	transform: translateX(-50%) translateY(-1px);
	border-color: rgba(212,168,75,0.55);
	box-shadow: 0 6px 18px rgba(0,0,0,0.45);
}
.product__rating--overlay .cbdco-stars__avg {
	color: #f5f5f5;
	line-height: 1;
}
/* Centre les étoiles + la note via flex (sinon les ★ ont une baseline plus
   haute que les chiffres et apparaissent décalés vers le bas) */
.product__rating--overlay .cbdco-stars {
	display: inline-flex;
	align-items: center;
	gap: 3px;
}
.product__rating--overlay .cbdco-stars__track {
	display: inline-flex;
	align-items: center;
	line-height: 1;
	/* Le glyphe ★ Unicode est dessiné dans la moitié haute de sa boîte → on
	   remonte physiquement de 2px pour que le centre visuel coïncide avec
	   le centre du chiffre "4,0". */
	transform: translateY(-2px);
}
.product__rating--overlay .cbdco-stars__bg,
.product__rating--overlay .cbdco-stars__fg {
	line-height: 1;
}

/* "À partir de" + prix au gramme */
.product__price-row { margin: 0 0 20px; display: flex; flex-direction: row; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 8px; }
.product__price-label {
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--text-mute);
	align-self: center;
}
.product__price-amount {
	color: var(--text);
	font-family: var(--font-display);
	letter-spacing: 0.02em;
	line-height: 1;
	display: inline-flex; align-items: baseline; justify-content: center; flex-wrap: wrap; gap: 10px;
}
.product__price-now {
	display: inline-flex; align-items: baseline; gap: 2px;
	font-size: 20px;
	font-weight: 600;
	color: #fff;
	font-family: var(--font-display);
	letter-spacing: 0.02em;
	line-height: 1;
}
.product__price-was {
	display: inline-flex; align-items: baseline; gap: 2px;
	font-size: 13px;
	color: var(--text-mute);
	text-decoration: line-through;
	font-weight: 400;
}
.product__price-amount .product__price-unit {
	font-size: 12px;
	color: var(--text-dim);
	letter-spacing: 0.05em;
	font-weight: 400;
}
.product__price-was .product__price-unit { font-size: 10px; }

/* Tailles réduites sur mobile : avec 2 cartes par ligne, 26px déborde
   et créait des retours à la ligne disgracieux. */
@media (max-width: 768px) {
	.product__price-row { gap: 2px; margin: 0 0 10px; }
	.product__price-label { font-size: 10px; letter-spacing: 0.05em; }
	.product__price-now,
	ul.products .product__price,
	ul.products li.product .price { font-size: 17px !important; }
	.product__price-now { gap: 1px; }
	.product__price-was { font-size: 12px; }
	.product__price-amount {
		gap: 6px;
		flex-wrap: wrap;
	}
	.product__price-amount .product__price-unit { font-size: 11px; }
	.product__price-was .product__price-unit { font-size: 9.5px; }
}
@media (max-width: 480px) {
	.product__price-now,
	ul.products .product__price,
	ul.products li.product .price { font-size: 15px !important; }
	.product__price-was { font-size: 11px; }
	.product__price-amount .product__price-unit { font-size: 10px; }
	.product__price-was .product__price-unit { font-size: 9px; }

	/* Card body : compactage agressif pour éviter les cartes hautes sur 2 cols.
	   Plus d'espacement réduit + titre limité à 2 lignes (clamp). */
	ul.products li.product .product__body { padding: 14px 12px 4px; }
	ul.products li.product .product__cat { margin-bottom: 4px; font-size: 9.5px; }
	/* Titre clampé sur 2 lignes max avec ellipsis. Le line-clamp doit être
	   appliqué UNIQUEMENT au <a> interne (qui contient le texte) — l'appliquer
	   sur le <h3> en plus crée des conflits de rendu (3e ligne fantôme visible). */
	ul.products li.product .product__title,
	ul.products li.product .woocommerce-loop-product__title {
		margin: 2px 0 6px;
		font-size: 13.5px;
		line-height: 1.18;
	}
	ul.products li.product .product__title a,
	ul.products li.product .woocommerce-loop-product__title a {
		display: -webkit-box;
		-webkit-line-clamp: 2;
		line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
		text-overflow: ellipsis;
		word-break: break-word;
		hyphens: none;
	}

	/* Pills : compactage léger (police + padding) — wrap autorisé pour les
	   cards étroites en 2-cols mobile. */
	ul.products li.product .product__pills {
		gap: 3px;
		margin: 0 0 18px;
	}
	ul.products li.product .product__cta {
		padding: 0 9px 12px;
	}
	ul.products li.product .product__pills .pill {
		font-size: 8.5px;
		padding: 3px 6px;
		letter-spacing: 0.06em;
		gap: 2px;
	}
	ul.products li.product .product__pills .pill__icon { font-size: 9px; }

	/* Prix compact : "À partir de" sur sa propre ligne (petite police),
	   puis prix actuel + prix barré côte à côte sur la ligne suivante. */
	.product__price-row {
		flex-direction: column;
		flex-wrap: nowrap;
		gap: 7px;
		margin: 4px 0 22px;
		justify-content: center;
		align-items: center;
	}
	.product__price-label {
		display: block;
		font-size: 9px;
		letter-spacing: 0.05em;
		line-height: 1;
	}
	.product__price-amount {
		flex-wrap: nowrap;
		gap: 6px;
		justify-content: center;
	}
}
/* Prix produit simple — UNIQUEMENT dans les listes/grilles produit (archives WC,
   catégories, recherche). Le scope `ul.products` garantit que la règle ne fuit
   pas sur la page produit unique (qui rend le prix dans .summary .price).
   20px blanc pour cohérence avec .product__price-now (variables). */
ul.products .product__price,
ul.products li.product .price {
	color: #fff;
	font-family: var(--font-display);
	font-size: 20px !important;
	font-weight: 600;
	margin: 0 0 8px;
	letter-spacing: 0.02em;
	line-height: 1;
}
ul.products .product__price .woocommerce-Price-amount,
ul.products .product__price .woocommerce-Price-currencySymbol,
ul.products .product__price bdi,
ul.products .product__price ins,
ul.products li.product .price .woocommerce-Price-amount,
ul.products li.product .price ins { color: #fff !important; text-decoration: none; }
ul.products li.product .price del,
ul.products .product__price del { color: var(--text-mute); font-size: 0.7em; margin-right: 6px; font-weight: 400; }

/* Barre rouge inclinée pour les prix barrés (cards loop + fiche produit + drawer + bundle).
   text-decoration natif est toujours horizontal, on overlay un ::after rotaté. */
.product__price-was,
.card-cta__regular,
ul.products li.product .price del,
ul.products .product__price del,
.single-product .summary > .price del,
.single-product .atc-regular,
.cbdco-cell__regular,
.cart-drawer__item-price del {
	text-decoration: none !important;
	position: relative;
	display: inline-block;
}
.product__price-was::after,
.card-cta__regular::after,
ul.products li.product .price del::after,
ul.products .product__price del::after,
.single-product .summary > .price del::after,
.single-product .atc-regular::after,
.cbdco-cell__regular::after,
.cart-drawer__item-price del::after {
	content: "";
	position: absolute;
	top: 50%;
	left: -1px;
	right: -1px;
	height: 1.5px;
	background: #d33b3b;
	transform: translateY(-50%) rotate(-10deg);
	transform-origin: center;
	pointer-events: none;
}

/* Pills (CBD% + INDOOR/GREENHOUSE + intensité). Wrap autorisé sur les cards du
   loop (cards étroites en mobile 2-cols), nowrap sur la fiche single (plus large). */
.product__pills {
	display: flex; flex-wrap: wrap; justify-content: center; gap: 5px;
	margin: 0 0 28px;
	max-width: 100%;
}
.product__pills .pill { white-space: nowrap; }
.single-product .product__pills { flex-wrap: nowrap; overflow: hidden; }
.pill {
	display: inline-flex; align-items: center; gap: 4px;
	font-family: var(--font-mono);
	font-size: 10px;
	letter-spacing: 0.12em;
	font-weight: 600;
	padding: 5px 9px;
	border-radius: 999px;
	text-transform: uppercase;
	line-height: 1;
}
.pill__icon { font-size: 11px; line-height: 1; }
.pill--cbd {
	background: rgba(212, 166, 72, 0.14);
	color: var(--gold-soft);
	border: 1px solid var(--gold-2);
}
.pill--culture {
	background: rgba(76, 175, 80, 0.16);
	color: #8fd694;
	border: 1px solid rgba(76, 175, 80, 0.45);
}
.pill--sale {
	background: #d33b3b;
	color: #fff;
	border: 1px solid transparent;
	font-weight: 700;
}
.pill--thc {
	background: rgba(56, 134, 197, 0.16);
	color: #8ec3ec;
	border: 1px solid rgba(56, 134, 197, 0.55);
}
.pill--intensity-leger {
	background: rgba(76, 175, 80, 0.14);
	color: #8fd694;
	border: 1px solid rgba(76, 175, 80, 0.45);
}
.pill--intensity-fort {
	background: rgba(232, 138, 51, 0.14);
	color: #f4b27a;
	border: 1px solid rgba(232, 138, 51, 0.50);
}
.pill--intensity-puissant {
	background: rgba(213, 75, 75, 0.16);
	color: #f0a3a3;
	border: 1px solid rgba(213, 75, 75, 0.55);
}

/* CTA + variation select */
.product__cta { padding: 0 22px 22px; margin-top: auto; display: flex; flex-direction: column; gap: 12px; }
.card-variation-form { display: flex; flex-direction: column; gap: 12px; margin: 0; }
/* Pages catégorie + produits similaires/upsells : pas d'espace entre le
   <select> et le bouton "Ajouter" (le bouton se colle au select). */
body.tax-product_cat ul.products li.product .product__cta,
body.woocommerce-shop ul.products li.product .product__cta,
.related ul.products li.product .product__cta,
.upsells ul.products li.product .product__cta { gap: 0; }
body.tax-product_cat ul.products li.product .card-variation-form,
body.woocommerce-shop ul.products li.product .card-variation-form,
.related ul.products li.product .card-variation-form,
.upsells ul.products li.product .card-variation-form { gap: 0; }
.card-variation-select {
	width: 100%;
	color: var(--text);
	border: 1px solid transparent;
	padding: 10px 36px;
	font-family: var(--font-body);
	font-size: 12.5px;
	font-weight: 500;
	letter-spacing: 0.01em;
	text-align: center;
	text-align-last: center;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	background:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23d4a648' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat right 12px center padding-box,
		linear-gradient(var(--bg-3), var(--bg-3)) padding-box,
		var(--btn-bg) border-box;
	border-radius: 4px;
}
.card-variation-select:focus { outline: none; box-shadow: 0 0 0 3px rgba(212, 168, 75, 0.15); }
.card-variation-select option { background: var(--bg-2); color: var(--text); padding: 6px; font-size: 14px; text-align: center; }
.card-variation-select option:checked { background: var(--gold); color: #1a1208; }

/* Dropdown custom (remplace le <select> natif pour pouvoir centrer les options) */
.cbdco-cardsel { position: relative; width: 100%; }
.cbdco-cardsel__native {
	/* sr-only : reste dans le DOM pour serialize/submit, invisible & inerte */
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0,0,0,0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
.cbdco-cardsel__btn {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px 36px;
	font-family: var(--font-body);
	font-size: 12.5px;
	font-weight: 500;
	letter-spacing: 0.01em;
	color: var(--text);
	border: 1px solid transparent;
	border-radius: 4px;
	cursor: pointer;
	background:
		linear-gradient(var(--bg-3), var(--bg-3)) padding-box,
		var(--btn-bg) border-box;
	transition: box-shadow .15s ease;
	position: relative;
}
.cbdco-cardsel__btn:focus { outline: none; box-shadow: 0 0 0 3px rgba(212,168,75,0.15); }
/* Desktop : taille du select de variation produit légèrement réduite (la
   valeur par défaut 14px paraît trop grosse dans la carte). Mobile garde
   son override 11.5px (cf. @media max-width 480px plus bas). */
ul.products li.product .cbdco-cardsel__btn,
ul.products li.product .card-variation-select { font-size: 12.5px; padding-top: 9px; padding-bottom: 9px; }
.cbdco-cardsel__label {
	flex: 0 1 auto;
	min-width: 0;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.cbdco-cardsel__caret {
	position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
	display: inline-flex; color: var(--gold); pointer-events: none;
	transition: transform .2s ease;
}
.cbdco-cardsel__btn[aria-expanded="true"] .cbdco-cardsel__caret { transform: translateY(-50%) rotate(180deg); }
.cbdco-cardsel__list {
	/* Coordonnées définies en JS (position: fixed) — ce default est utilisé
	   en fallback si le JS ne s'est pas exécuté. */
	position: absolute;
	top: calc(100% + 4px);
	left: 0; right: 0;
	margin: 0;
	padding: 4px;
	list-style: none;
	background: var(--bg-2);
	border: 1px solid var(--line-2);
	border-radius: 4px;
	box-shadow: 0 8px 24px rgba(0,0,0,.4);
	/* z-index très haut : la liste est en position:fixed et doit passer
	   au-dessus du carrousel (overflow:auto la clip sinon). */
	z-index: 9999;
	max-height: 240px;
	overflow-y: auto;
}
.cbdco-cardsel__list[hidden] { display: none; }
.cbdco-cardsel__opt {
	padding: 9px 12px;
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 500;
	color: var(--text);
	text-align: center;
	border-radius: 3px;
	cursor: pointer;
	transition: background .12s ease;
}
.cbdco-cardsel__opt:hover { background: rgba(212,168,75,0.10); }
.cbdco-cardsel__opt.is-active { background: rgba(212,168,75,0.18); color: var(--gold-soft); }

/* Variant "card" (déroulant de variation produit dans les cartes) :
   La liste est détachée vers <body> à l'ouverture, donc on cible la
   classe modifier directement (pas de sélecteur parent). */
.cbdco-cardsel__list--card {
	padding: 4px;
	border-radius: 6px;
}
/* Desktop : police lisible (≥14px), pas besoin de compacter. */
.cbdco-cardsel__list--card .cbdco-cardsel__opt {
	font-size: 14px;
	padding: 9px 12px;
	text-align: left;
	line-height: 1.3;
}
/* Mobile : compact pour ne pas dominer la carte. */
@media (max-width: 768px) {
	.cbdco-cardsel__list--card .cbdco-cardsel__opt {
		font-size: 11.5px;
		padding: 7px 10px;
		line-height: 1.2;
	}
}

ul.products li.product .button,
ul.products li.product .card-cta,
.add_to_cart_button {
	display: inline-flex;
	flex-wrap: nowrap;
	align-items: center; justify-content: center;
	gap: 8px;
	width: 100%;
	background: var(--btn-bg);
	color: #1a1208;
	padding: 11px 14px;
	font-family: var(--font-body);
	font-size: 13.5px;
	font-weight: 500;
	letter-spacing: 0.02em;
	text-transform: none;
	text-align: center;
	border: 0;
	cursor: pointer;
	border-radius: 6px;
	line-height: 1.15;
	white-space: nowrap;
	min-width: 0;
}
.card-cta__label { font-weight: 700; text-transform: uppercase; letter-spacing: 0; flex-shrink: 0; }
.card-cta__prices {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
}
.card-cta__regular {
	color: rgba(26, 18, 8, 0.55);
	text-decoration: none;
	font-size: 12px;
	font-weight: 500;
}
.card-cta__price { font-size: 14px; font-weight: 700; }
.card-cta:hover,
ul.products li.product .button:hover { transform: translateY(-1px); color: #1a1208; }
/* Neutralise l'effet "pressed" du navigateur + l'état disabled qu'on applique
   pendant l'AJAX add-to-cart (sinon le bouton se compresse / passe en grisé
   visible 600 ms après le clic). */
.card-cta:active,
.card-cta:focus,
.card-cta:disabled,
.card-cta[disabled],
ul.products li.product .button:active,
ul.products li.product .button:disabled,
ul.products li.product .button[disabled] {
	transform: none;
	opacity: 1;
	box-shadow: none;
	color: #1a1208;
	cursor: pointer;
	outline: none;
}
ul.products li.product .added_to_cart { display: none; }
/* "Voir le panier" auto-injecté par WC après ATC : inutile, on a le drawer. */
.added_to_cart,
a.added_to_cart,
.wc-forward.added_to_cart,
.woocommerce-message .button.wc-forward,
.woocommerce-message a.wc-forward { display: none !important; }

/* ============================================================
   Pagination — design propre et cohérent (gold/dark luxe)
   ============================================================ */
.woocommerce-pagination,
.pagination {
	margin: 40px 0 48px;
	text-align: center;
}
.woocommerce-pagination ul.page-numbers,
.pagination ul.page-numbers,
ul.page-numbers {
	display: inline-flex !important;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none !important;
	padding: 6px !important;
	margin: 0 !important;
	border: 1px solid var(--line) !important;
	border-radius: 12px;
	background: var(--bg-2);
	box-shadow: 0 8px 24px rgba(0,0,0,0.25);
	justify-content: center;
}
.woocommerce-pagination ul.page-numbers li,
.pagination ul.page-numbers li,
ul.page-numbers li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	display: inline-flex;
}
.woocommerce-pagination ul.page-numbers li a,
.woocommerce-pagination ul.page-numbers li span,
.pagination ul.page-numbers li a,
.pagination ul.page-numbers li span,
ul.page-numbers li a.page-numbers,
ul.page-numbers li span.page-numbers,
a.page-numbers,
span.page-numbers {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 14px !important;
	border: 0 !important;
	border-radius: 8px !important;
	background: transparent !important;
	color: var(--text) !important;
	font-family: var(--font-body) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	letter-spacing: 0;
	line-height: 1;
	text-decoration: none !important;
	box-shadow: none !important;
	transition: all .18s ease;
}
.woocommerce-pagination ul.page-numbers li a:hover,
.pagination ul.page-numbers li a:hover,
ul.page-numbers li a.page-numbers:hover,
a.page-numbers:hover {
	background-image: linear-gradient(135deg, #e2cb97 4%, #a88659 100%) !important;
	color: #1a1208 !important;
	box-shadow: 0 4px 14px rgba(212,166,72,0.35) !important;
}
.woocommerce-pagination ul.page-numbers li .current,
.pagination ul.page-numbers li .current,
ul.page-numbers li .current,
ul.page-numbers li span.page-numbers.current,
span.page-numbers.current,
.page-numbers.current {
	background: var(--btn-bg) !important;
	background-image: linear-gradient(135deg, #e2cb97 4%, #a88659 100%) !important;
	color: #1a1208 !important;
	font-weight: 700 !important;
	box-shadow: 0 4px 14px rgba(212,166,72,0.35) !important;
	cursor: default;
}
.woocommerce-pagination ul.page-numbers li .dots,
.pagination ul.page-numbers li .dots,
ul.page-numbers li .dots,
.page-numbers.dots {
	color: var(--text-mute) !important;
	min-width: 24px !important;
	padding: 0 4px !important;
	letter-spacing: 2px;
	cursor: default;
}
.woocommerce-pagination ul.page-numbers li a.next,
.woocommerce-pagination ul.page-numbers li a.prev,
.pagination ul.page-numbers li a.next,
.pagination ul.page-numbers li a.prev,
a.next.page-numbers,
a.prev.page-numbers {
	background: rgba(212,166,72,0.08) !important;
	color: var(--gold) !important;
	font-size: 18px !important;
	min-width: 44px !important;
}
.woocommerce-pagination ul.page-numbers li a.next:hover,
.woocommerce-pagination ul.page-numbers li a.prev:hover,
a.next.page-numbers:hover,
a.prev.page-numbers:hover {
	background: transparent !important;
	background-image: linear-gradient(135deg, #e2cb97 4%, #a88659 100%) !important;
	color: #1a1208 !important;
	box-shadow: 0 4px 14px rgba(212,166,72,0.35) !important;
}

/* ============================================================
   Cart / Checkout
   ============================================================ */
/* Stepper checkout — cards arrondies avec hover gold, comme les pills catalog.
   max-width réduit pour aligner sur le contenu effectif de .container (1452px)
   sans empiler le padding du parent (sur la page panier, parent = .container-narrow
   override à 1500+24 → un ancien padding 24 ici donnait double-inset à 1404). */
.checkout-stepper {
	display: flex; gap: 12px;
	margin: 0 auto 32px;
	max-width: calc(var(--container) - 48px);
	padding: 0;
}
.checkout-stepper__step {
	flex: 1; display: flex; align-items: center; gap: 10px;
	padding: 14px 18px;
	border: 1px solid var(--line);
	border-radius: 10px;
	background: var(--card);
	color: var(--text-dim);
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	transition: all .2s ease;
}
.checkout-stepper__step--active {
	background:
		linear-gradient(var(--card), var(--card)) padding-box,
		var(--btn-bg) border-box;
	border: 1px solid transparent;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	box-shadow: 0 4px 14px rgba(212, 168, 75, 0.18);
}
.checkout-stepper__num {
	width: 28px; height: 28px;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--bg-3);
	border: 1px solid var(--line);
	border-radius: 50%;
	color: inherit;
	font-weight: 700;
	font-family: var(--font-mono);
}
.checkout-stepper__step--active .checkout-stepper__num {
	background: var(--btn-bg);
	color: #1a1208;
	border-color: var(--gold);
}

/* Table panier / commande — card-style avec radius et bordure douce */
table.shop_table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 12px;
	overflow: hidden;
}
table.shop_table th,
table.shop_table td {
	padding: 16px;
	text-align: left;
	border-bottom: 1px solid var(--line);
	font-size: 13px;
	color: var(--text);
}
table.shop_table th {
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	font-family: var(--font-mono);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-size: 10.5px;
	background: var(--bg-3);
}
table.shop_table tr:last-child td { border-bottom: 0; }
table.shop_table .product-thumbnail img {
	width: 56px; height: 56px;
	object-fit: cover;
	border-radius: 6px;
	border: 1px solid var(--line);
}
table.shop_table .product-name a { color: var(--text); font-weight: 500; }
table.shop_table .product-name a:hover { color: var(--gold); }

/* Totaux du panier — card avec bordure or dégradée comme la modale livraison */
.cart_totals {
	background:
		linear-gradient(var(--card), var(--card)) padding-box,
		var(--btn-bg) border-box;
	border: 1.5px solid transparent;
	border-radius: 12px;
	padding: 24px;
	align-self: start;
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25);
}
.cart_totals h2 {
	font-family: var(--font-display);
	font-size: 16px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	margin: 0 0 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--line);
	position: relative;
}
.cart_totals h2::after {
	content: ""; position: absolute;
	left: 0; bottom: -1px;
	width: 40px; height: 2px;
	background: var(--btn-bg);
	border-radius: 2px;
}
.cart_totals table.shop_table {
	background: transparent;
	border: 0;
	border-radius: 0;
}
.cart_totals table.shop_table th,
.cart_totals table.shop_table td {
	padding: 12px 0;
	border: 0;
	border-bottom: 1px dashed var(--line);
	background: transparent;
}
.cart_totals .order-total .amount {
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	font-family: var(--font-display);
	font-size: 26px;
	font-weight: 700;
}

.wc-proceed-to-checkout { margin-top: 18px; }
.wc-proceed-to-checkout .checkout-button {
	display: inline-flex; align-items: center; justify-content: center;
	width: 100%;
	background: var(--btn-bg) !important;
	color: #1a1208 !important;
	padding: 16px 20px;
	font-family: var(--font-body);
	letter-spacing: 0.04em;
	text-transform: none;
	font-size: 14px; font-weight: 600;
	border: 1px solid var(--gold);
	border-radius: 8px;
	box-shadow: 0 4px 14px rgba(212, 168, 75, 0.30);
	transition: transform .2s ease, box-shadow .2s ease;
}
.wc-proceed-to-checkout .checkout-button:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 22px rgba(212, 168, 75, 0.45);
}

/* Layout panier / checkout — aligné sur le contenu effectif de .container (1452px)
   sans empiler le padding du parent (cf. note du .checkout-stepper). */
.woocommerce-cart .cart-collaterals,
.woocommerce-checkout .col2-set,
.checkout-layout {
	display: grid;
	gap: 32px;
	grid-template-columns: 1fr 1fr;
	max-width: calc(var(--container) - 48px);
	margin: 0 auto;
	padding: 0;
	align-items: start;
}
@media (max-width: 1024px) {
	.woocommerce-cart .cart-collaterals,
	.woocommerce-checkout .col2-set,
	.checkout-layout { grid-template-columns: 1fr; gap: 24px; padding: 0 16px; }
}

/* ----- Forms : champs avec border-radius + focus or comme la fiche produit ----- */
.woocommerce form .form-row,
.form-row { display: flex; flex-direction: column; gap: 6px; margin-bottom: -6px; }
.woocommerce form .form-row label {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--text-dim);
	font-weight: 600;
}
.woocommerce form .form-row input,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], input[type="search"], textarea, select {
	background: var(--bg-3);
	border: 1px solid var(--line);
	border-radius: 8px;
	color: var(--text);
	padding: 12px 14px;
	width: 100%;
	font-family: inherit;
	font-size: 14px;
	transition: border-color .15s ease, box-shadow .15s ease;
}
input:focus, textarea:focus, select:focus {
	outline: none;
	border-color: var(--gold);
	box-shadow: 0 0 0 3px rgba(212, 168, 75, 0.15);
}

/* Section paiement — neutralisée : le checkout custom (checkout-shopify.css)
   gère le rendu via #cbdco-payment-mount, le #payment d'origine sert juste de
   conteneur logique. */
.woocommerce-checkout #payment {
	/* vide — pas de card englobante */
}
.woocommerce-checkout #payment ul.payment_methods {
	list-style: none;
	padding: 0;
	margin: 0 0 24px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.woocommerce-checkout #payment ul.payment_methods > li {
	background: var(--bg-3);
	border: 1px solid var(--line);
	border-radius: 8px;
	padding: 12px 14px;
	transition: border-color .2s ease;
}
.woocommerce-checkout #payment ul.payment_methods > li:has(input:checked) {
	border-color: var(--gold);
	background:
		linear-gradient(var(--bg-3), var(--bg-3)) padding-box,
		var(--btn-bg) border-box;
}
.woocommerce-checkout #payment ul.payment_methods label { font-weight: 600; color: var(--text); }
.woocommerce-checkout #payment .payment_box {
	background: var(--bg-2);
	border: 1px solid var(--line);
	border-radius: 6px;
	padding: 14px;
	margin-top: 10px;
	font-size: 13px;
	color: var(--text-dim);
}

/* Bouton "Commander" en bas du checkout — même style premium */
.woocommerce-checkout #place_order {
	display: inline-flex; align-items: center; justify-content: center;
	width: 100%;
	background: var(--btn-bg);
	color: #1a1208;
	padding: 16px 22px;
	font-family: var(--font-body);
	font-size: 14px; font-weight: 600;
	letter-spacing: 0;
	border: 1px solid var(--gold);
	border-radius: 8px;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(212, 168, 75, 0.30);
	transition: transform .2s ease, box-shadow .2s ease;
}
.woocommerce-checkout #place_order:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 22px rgba(212, 168, 75, 0.45);
}

/* Section "Vous avez un code promo ?" / "Connectez-vous" — petits bandeaux card */
.woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-form-login-toggle .woocommerce-info {
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 8px;
}

/* Retire la bordure WooCommerce par défaut sur les forms login / register / coupon */
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
	border: none;
	padding: 0;
	margin: 0;
	border-radius: 0;
}

/* Header de section checkout (Détails de facturation, Livraison, Vos infos) */
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3,
#order_review_heading {
	font-family: var(--font-display);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	margin: 7px 0 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--line);
	position: relative;
}
.woocommerce-billing-fields h3::after,
.woocommerce-shipping-fields h3::after,
.woocommerce-additional-fields h3::after,
#order_review_heading::after {
	content: ""; position: absolute;
	left: 0; bottom: -1px;
	width: 40px; height: 2px;
	background: var(--btn-bg);
	border-radius: 2px;
}
/* Wrapper chacune de ces sections en card */
.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-additional-fields {
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 24px;
	margin-bottom: 20px;
}

/* ============================================================
   WooCommerce Blocks (checkout & cart blocks) — alignés au thème
   ============================================================ */

/* === Mode "page checkout dédiée" ===
   Sur /panier/ et /commander/, on cache tout le chrome du site
   (topbar promo, navigation, recherche, mini-cart, breadcrumb,
   newsletter, colonnes du footer) pour offrir un tunnel d'achat
   focalisé à la Shopify. On garde le logo en haut et une ligne
   légale minimale en bas. */
body.woocommerce-cart .topbar,
body.woocommerce-checkout .topbar,
body.woocommerce-cart .site-header__actions,
body.woocommerce-checkout .site-header__actions,
body.woocommerce-cart .main-nav,
body.woocommerce-checkout .main-nav,
body.woocommerce-cart .breadcrumb,
body.woocommerce-checkout .breadcrumb,
body.woocommerce-cart .footer-pillars,
body.woocommerce-checkout .footer-pillars,
body.woocommerce-cart .site-footer__inner,
body.woocommerce-checkout .site-footer__inner,
body.woocommerce-cart .page-hero,
body.woocommerce-checkout .page-hero { display: none !important; }

/* Header épuré : juste le logo, centré.
   Exclusion explicite de .woocommerce-order-received : la page merci doit
   garder le header standard du site (mêmes paddings que les autres pages). */
body.woocommerce-cart .site-header,
body.woocommerce-checkout:not(.woocommerce-order-received) .site-header {
	border-bottom: 1px solid var(--line);
	background: var(--bg-1, #0e0e0e);
	padding: 0;
}
body.woocommerce-cart .site-header__top,
body.woocommerce-checkout:not(.woocommerce-order-received) .site-header__top {
	display: flex;
	justify-content: center;
	padding: 18px 24px;
	max-width: var(--container);
	margin: 0 auto;
	width: 100%;
}
body.woocommerce-cart .site-header__brand,
body.woocommerce-checkout:not(.woocommerce-order-received) .site-header__brand {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

/* Footer minimal : on ne garde que la ligne du bas (copyright + 18+).
   Identique sur cart, checkout ET page merci (cohérence flux d'achat). */
body.woocommerce-cart .site-footer,
body.woocommerce-checkout .site-footer {
	background: transparent;
	border-top: 1px solid var(--line);
	padding: 0;
	margin-top: 40px;
}
body.woocommerce-cart .site-footer__bottom,
body.woocommerce-checkout .site-footer__bottom {
	max-width: var(--container);
	margin: 0 auto;
	padding: 18px 24px;
	color: var(--text);
	font-size: 12px;
}
/* Checkout + Thankyou desktop : retire la barre 1px du footer__bottom (le
   séparateur du footer parent suffit, le 1px ici fait doublon). */
@media (min-width: 769px) {
	body.woocommerce-checkout .site-footer__bottom {
		border-top: 0;
	}
}

body.woocommerce-cart .page-content > .container-narrow,
body.woocommerce-checkout .page-content > .container-narrow,
body.woocommerce-account .page-content > .container-narrow {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 24px;
}
body.woocommerce-cart .page-content,
body.woocommerce-checkout .page-content,
body.woocommerce-account .page-content { padding: 32px 0 56px; }
body.woocommerce-cart .entry-article,
body.woocommerce-checkout .entry-article,
body.woocommerce-account .entry-article {
	background: transparent;
	border: 0;
	padding: 0;
	max-width: none;
}
body.woocommerce-account.logged-in .page-hero { display: none; }
/* Espace client connecté : on garde un padding plus restreint que le reste du site
   parce que le layout 2 colonnes (sidebar 280px + content) a besoin de respirer ;
   le footer reste visuellement aligné car il a son propre alignement (calc(--container - 48px)). */
body.woocommerce-account.logged-in .container { padding: 0 10px 24px; }
body.woocommerce-account:not(.logged-in) .container { padding: 0 24px; }
@media (max-width: 1024px) {
	body.woocommerce-cart .page-content > .container-narrow,
	body.woocommerce-checkout .page-content > .container-narrow,
	body.woocommerce-account .page-content > .container-narrow { padding: 0 14px; }
	body.woocommerce-cart .page-content,
	body.woocommerce-checkout .page-content,
	body.woocommerce-account .page-content { padding: 16px 0 32px; }
}

.wp-block-woocommerce-checkout,
.wp-block-woocommerce-cart {
	max-width: 100%;
	margin: 0 auto;
	padding: 0;
	color: var(--text);
}

/* Layout en 2 colonnes (formulaire | récap)
   - SSR (.is-loading) : la grille porte sur .wc-block-checkout / .wc-block-cart
     car fields-block + totals-block sont enfants directs.
   - Hydraté : les vrais enfants sont dans .wc-block-components-sidebar-layout,
     donc c'est lui qui doit porter la grille (et non son parent — sinon double grille
     → colonnes à 25 %). */
.wc-block-checkout.is-loading,
.wc-block-cart.is-loading,
.wp-block-woocommerce-filled-cart-block,
.wc-block-components-sidebar-layout {
	display: grid !important;
	grid-template-columns: minmax(0, calc(50% + 24px)) minmax(0, 1fr);
	gap: 0;
	align-items: stretch;
	width: 100%;
}
.wc-block-checkout,
.wc-block-cart {
	max-width: none;
	margin: 0 auto;
	width: 100%;
}
.wp-block-woocommerce-filled-cart-block > .wp-block-woocommerce-cart-items-block,
.wc-block-components-sidebar-layout > .wc-block-components-main,
.wc-block-components-sidebar-layout > .wc-block-checkout__main,
.wc-block-components-sidebar-layout > .wc-block-cart__main { grid-column: 1; width: auto; padding-right: 0; }
.wp-block-woocommerce-filled-cart-block > .wp-block-woocommerce-cart-totals-block,
.wc-block-components-sidebar-layout > .wc-block-components-sidebar,
.wc-block-components-sidebar-layout > .wc-block-checkout__sidebar,
.wc-block-components-sidebar-layout > .wc-block-cart__sidebar { grid-column: 2; width: auto; padding-left: 0; }
@media (max-width: 1024px) {
	.wc-block-checkout.is-loading,
	.wc-block-cart.is-loading,
	.wp-block-woocommerce-filled-cart-block,
	.wc-block-components-sidebar-layout {
		grid-template-columns: 1fr !important;
		gap: 20px;
	}
	.wp-block-woocommerce-filled-cart-block > .wp-block-woocommerce-cart-items-block,
	.wp-block-woocommerce-filled-cart-block > .wp-block-woocommerce-cart-totals-block,
	.wc-block-components-sidebar-layout > .wc-block-components-main,
	.wc-block-components-sidebar-layout > .wc-block-components-sidebar,
	.wc-block-components-sidebar-layout > .wc-block-checkout__main,
	.wc-block-components-sidebar-layout > .wc-block-checkout__sidebar,
	.wc-block-components-sidebar-layout > .wc-block-cart__main,
	.wc-block-components-sidebar-layout > .wc-block-cart__sidebar { grid-column: 1; }
}

/* === Style "Shopify checkout" ===
   - Colonne gauche : flat, transparent, sections séparées par filets sobres.
   - Colonne droite : fond tinté distinct, sans card-shadow, séparateurs internes. */
.wc-block-components-sidebar,
.wc-block-checkout__sidebar,
.wc-block-cart__sidebar,
.wp-block-woocommerce-cart-totals-block,
.wp-block-woocommerce-checkout-totals-block {
	background: var(--bg-2, var(--card));
	border: 0;
	border-left: 1px solid var(--line);
	border-radius: 0;
	padding: 38px;
	box-shadow: none;
	color: var(--text);
	display: flex;
	flex-direction: column;
	gap: 0;
}
.wp-block-woocommerce-cart-totals-block {
	position: sticky;
	top: 90px;
}
.wp-block-woocommerce-cart-items-block,
.wp-block-woocommerce-checkout-fields-block {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 8px 38px 0 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}
/* Étapes de la colonne form : trait fin entre chaque section */
.wp-block-woocommerce-checkout-fields-block > * + *,
.wp-block-woocommerce-checkout-totals-block > * + * {
	border-top: 1px solid var(--line);
	padding-top: 32px;
}
/* Mais pas de séparateur entre les items du récap (la liste produits) */
.wp-block-woocommerce-checkout-order-summary-block { border-top: 0 !important; padding-top: 0 !important; }
/* Reset margin des sections internes — le gap du parent gère l'espacement */
.wp-block-woocommerce-checkout-fields-block > *,
.wp-block-woocommerce-checkout-totals-block > *,
.wp-block-woocommerce-cart-items-block > * { margin: 0 !important; }

/* CGU + actions : pas de séparateur, on les laisse coller */
.wp-block-woocommerce-checkout-totals-block > .wp-block-woocommerce-checkout-terms-block,
.wp-block-woocommerce-checkout-totals-block > .wp-block-woocommerce-checkout-actions-block {
	border-top: 0 !important;
	padding-top: 0 !important;
}

/* Bouton Commander : pleine largeur pour qu'il porte la colonne droite */
.wp-block-woocommerce-checkout-actions-block .wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-checkout-actions-block button.wc-block-components-button {
	width: 100% !important;
	justify-content: center !important;
}
.wp-block-woocommerce-checkout-actions-block {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
@media (max-width: 1024px) {
	.wc-block-components-sidebar,
	.wc-block-checkout__sidebar,
	.wc-block-cart__sidebar,
	.wp-block-woocommerce-cart-totals-block,
	.wp-block-woocommerce-checkout-totals-block { position: static; }
}

/* Sections internes (Contact, Livraison, Paiement) — pas de double-card,
   simple séparateur avec un peu de respiration. */
.wc-block-components-checkout-step,
.wc-block-components-panel {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
	margin: 0;
	color: var(--text);
}
.wc-block-checkout__main,
.wc-block-cart__main {
	background: transparent;
	border: 0;
	padding: 0;
	margin: 0;
	color: var(--text);
}

/* Titres des étapes (Coordonnées, Adresse, Paiement, Récap…) */
.wc-block-components-checkout-step__title,
.wc-block-components-title,
.wc-block-components-totals-wrapper > h2,
.wc-block-cart__main h2,
.wc-block-checkout__contact-fields-title,
.wc-block-components-checkout-step__heading h2,
.wp-block-woocommerce-checkout-order-summary-block > h2,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title-text {
	font-family: var(--font-display) !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	letter-spacing: 0.04em !important;
	text-transform: uppercase !important;
	color: var(--gold) !important;
	margin: 0 0 14px !important;
	padding-bottom: 12px !important;
	border-bottom: 1px solid var(--line) !important;
	position: relative;
	display: block;
}
.wc-block-components-checkout-step__title::after,
.wc-block-components-title::after,
.wc-block-checkout__contact-fields-title::after,
.wc-block-components-checkout-step__heading h2::after,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title::after {
	content: ""; position: absolute;
	left: 0; bottom: -1px;
	width: 40px; height: 2px;
	background: var(--btn-bg);
	border-radius: 2px;
}

/* Numéros d'étape (1. Contact, 2. Livraison, etc.) */
.wc-block-components-checkout-step__heading-content,
.wc-block-checkout__contact-fields-title-content {
	color: var(--text-mute);
}

/* Inputs / textareas / selects */
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-select select,
.wc-block-components-combobox-control input,
.wc-block-components-textarea {
	background: var(--bg-3) !important;
	border: 1px solid var(--line) !important;
	border-radius: 5px !important;
	color: var(--text) !important;
	padding: 16px 14px 8px !important;
	font-family: inherit !important;
	font-size: 14px !important;
	width: 100% !important;
	min-height: 50px !important;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.wc-block-components-text-input input:focus,
.wc-block-components-text-input textarea:focus,
.wc-block-components-select select:focus,
.wc-block-components-combobox-control input:focus {
	outline: none !important;
	border-color: var(--gold) !important;
	box-shadow: 0 0 0 3px rgba(212, 168, 75, 0.15) !important;
}

/* Floating labels des inputs WC blocks */
.wc-block-components-text-input label,
.wc-block-components-text-input .wc-block-components-text-input__label {
	color: var(--text-mute) !important;
	font-family: var(--font-mono) !important;
	font-size: 12px !important;
	letter-spacing: 0.05em !important;
}
.wc-block-components-text-input.is-active label,
.wc-block-components-text-input:focus-within label {
	color: var(--gold) !important;
}

/* Validation errors */
.wc-block-components-validation-error {
	color: #d77a6a;
	font-family: var(--font-mono);
	font-size: 11.5px;
	letter-spacing: 0.04em;
	margin-top: 4px;
}

/* Checkboxes & radios (méthodes de livraison / paiement) */
.wc-block-components-checkbox__mark,
.wc-block-components-radio-control__option {
	background: var(--bg-3);
	border: 1px solid var(--line);
}
.wc-block-components-radio-control__option,
.wc-block-components-radio-control-accordion-option {
	border: 1px solid var(--line);
	border-radius: 6px;
	padding: 16px 18px;
	margin: 0 0 8px;
	background: var(--bg-3);
	transition: border-color .2s ease;
}
.wc-block-components-radio-control__option:has(input:checked),
.wc-block-components-radio-control-accordion-option:has(input:checked) {
	border-color: var(--gold);
	background:
		linear-gradient(var(--bg-3), var(--bg-3)) padding-box,
		var(--btn-bg) border-box;
	border: 1.5px solid transparent;
}
.wc-block-components-radio-control__option-checked-content,
.wc-block-components-radio-control__option .wc-block-components-radio-control__label,
.wc-block-components-radio-control__label-group {
	color: var(--text) !important;
}

/* Boutons primaires (Continuer, Commander, Voir le panier) */
.wc-block-components-button.contained,
.wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button,
.wc-block-cart__submit-button,
button.wc-block-components-button.wp-element-button {
	background: var(--btn-bg) !important;
	color: #1a1208 !important;
	border: 1px solid var(--gold) !important;
	border-radius: 6px !important;
	padding: 18px 22px !important;
	font-family: var(--font-body) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em !important;
	text-transform: none !important;
	min-height: 56px !important;
	box-shadow: 0 4px 14px rgba(212, 168, 75, 0.30) !important;
	transition: transform .2s ease, box-shadow .2s ease !important;
}
.wc-block-components-button.contained:hover,
.wc-block-components-checkout-place-order-button:hover,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button:hover,
button.wc-block-components-button.wp-element-button:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 22px rgba(212, 168, 75, 0.45) !important;
}

/* Boutons secondaires (Code promo, Modifier, Retirer) */
.wc-block-components-button.outlined,
.wc-block-components-button:not(.contained):not(.wp-element-button) {
	background: transparent !important;
	color: var(--gold) !important;
	border: 1px solid var(--gold-2) !important;
	border-radius: 999px !important;
	padding: 8px 16px !important;
	font-size: 12px !important;
	font-family: var(--font-mono) !important;
	letter-spacing: 0.06em !important;
}
.wc-block-components-button.outlined:hover {
	background: rgba(212, 168, 75, 0.10) !important;
	border-color: var(--gold) !important;
}

/* Lignes de totaux (Sous-total, Livraison, Total) */
.wc-block-components-totals-item {
	display: flex !important;
	justify-content: space-between;
	padding: 10px 0;
	border-bottom: 1px dashed var(--line);
	color: var(--text);
	font-size: 13.5px;
}
.wc-block-components-totals-item:last-child { border-bottom: 0; }
.wc-block-components-totals-item__label { color: var(--text-mute); }
.wc-block-components-totals-item__value { color: var(--text); font-weight: 500; }
.wc-block-components-totals-footer-item {
	font-family: var(--font-display);
	color: var(--text);
	border-top: 1px solid var(--line);
	margin-top: 14px;
	padding-top: 22px;
	align-items: baseline;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-family: var(--font-display);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--text);
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-formatted-money-amount {
	color: var(--gold) !important;
	font-weight: 700;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: 28px;
	letter-spacing: -0.01em;
}
.wc-block-components-totals-footer-item__description {
	color: var(--text-mute);
	font-size: 11.5px;
	font-family: var(--font-mono);
	letter-spacing: 0.04em;
	margin-top: 4px;
}

/* Items du panier dans le récap commande */
.wc-block-components-order-summary-item,
.wc-block-cart-items__row {
	display: grid;
	grid-template-columns: 64px 1fr auto;
	gap: 12px;
	padding: 14px 0;
	border-bottom: 1px dashed var(--line);
	align-items: center;
}
.wc-block-components-order-summary-item:last-child,
.wc-block-cart-items__row:last-child { border-bottom: 0; }
.wc-block-components-product-image,
.wc-block-cart-item__image img {
	border-radius: 6px;
	border: 1px solid var(--line);
	overflow: hidden;
}
.wc-block-components-product-name {
	color: var(--text);
	font-weight: 500;
	font-size: 13px;
}
.wc-block-components-product-metadata,
.wc-block-components-product-metadata__description { color: var(--text-mute); font-size: 11.5px; }
.wc-block-components-product-price {
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	font-family: var(--font-display);
	font-weight: 600;
}

/* Quantité dans le mini-panier */
.wc-block-components-quantity-selector {
	background: var(--bg-3);
	border: 1px solid var(--line);
	border-radius: 6px;
	overflow: hidden;
}
.wc-block-components-quantity-selector__button {
	background: transparent;
	color: var(--text-mute);
	border: 0;
	padding: 6px 10px;
}
.wc-block-components-quantity-selector__button:hover { color: var(--gold); }
.wc-block-components-quantity-selector__input {
	background: transparent !important;
	color: var(--text) !important;
	border: 0 !important;
	font-weight: 600;
	text-align: center;
}

/* Champ promo / coupon */
.wc-block-components-totals-coupon__form,
.wc-block-components-totals-coupon-link {
	color: var(--gold) !important;
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: 0.05em;
}

/* Notices (succès / info / erreur) en bandeau card */
.wc-block-components-notice-banner {
	background: var(--card) !important;
	border: 1px solid var(--line) !important;
	border-left: 3px solid var(--gold) !important;
	border-radius: 6px !important;
	color: var(--text) !important;
	padding: 14px 18px !important;
	margin: 0 0 18px !important;
}

/* Liens de navigation (Retour au panier, etc.) */
.wc-block-components-button-text,
.wc-block-checkout__back-to-cart {
	color: var(--gold) !important;
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: 0.04em;
}

/* État panier vide — cohérent avec les autres pages d'erreur (404, search vide). */
.wp-block-woocommerce-empty-cart-block {
	max-width: var(--container);
	margin: 0 auto;
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 80px 24px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	min-height: 55vh;
	text-align: center;
}
.wp-block-woocommerce-empty-cart-block .wp-block-image,
.wp-block-woocommerce-empty-cart-block .with-empty-cart-icon {
	display: flex;
	justify-content: center;
}
.wc-block-cart__empty-cart__title {
	font-family: var(--font-display) !important;
	color: var(--gold) !important;
	font-size: 24px !important;
	letter-spacing: 0.02em !important;
	margin: 8px 0 18px !important;
	text-transform: uppercase;
}
.wp-block-woocommerce-empty-cart-block .wp-block-button .wp-block-button__link,
.wp-block-woocommerce-empty-cart-block .wp-block-button__link {
	background: var(--btn-bg) !important;
	color: #1a1208 !important;
	border: 1px solid var(--gold) !important;
	border-radius: 8px !important;
	padding: 12px 20px !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em !important;
}

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	background: var(--bg-2);
	border: 1px solid var(--line);
	border-left: 3px solid var(--gold);
	padding: 16px 24px;
	margin-bottom: 24px;
	color: var(--text);
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: 0.05em;
}
.woocommerce-error { border-left-color: var(--danger); }

/* ============================================================
   My account
   ============================================================ */
.account-layout {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 28px;
	margin: 16px 0 24px;
}
@media (max-width: 1024px) { .account-layout { grid-template-columns: 1fr; gap: 20px; margin: 8px 0 24px; } }

/* ============================================================
   My Account — règles responsives mobile (≤768px)
   Tous les blocs de la page mon-compte adaptés à la largeur mobile :
   sidebar prend toute la largeur en accordéon, hero stack vertical,
   stats en 1 colonne, orders en stack, view-order compact, etc.
   ============================================================ */
@media (max-width: 768px) {
	/* Sidebar : pas sticky (prend trop de hauteur sur mobile), padding réduit */
	.woocommerce-account .woocommerce-MyAccount-navigation {
		position: static;
		padding: 10px;
		border-radius: 12px;
	}
	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 4px;
	}
	.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
		padding: 10px 12px;
		font-size: 13px;
		gap: 8px;
	}
	.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout a {
		grid-column: 1 / -1;
		margin-top: 4px;
		padding-top: 12px;
	}
	/* Content card : padding mobile + radius cohérent */
	.woocommerce-account .woocommerce-MyAccount-content {
		padding: 20px 16px;
		border-radius: 12px;
	}

	/* Hero (avatar + nom + logout) : stack vertical, avatar plus petit */
	.cbdco-account__hero {
		flex-direction: column;
		align-items: flex-start;
		gap: 14px;
		margin-bottom: 24px;
		padding-bottom: 20px;
	}
	.cbdco-account__hero-left { gap: 14px; width: 100%; min-width: 0; }
	.cbdco-account__avatar { width: 56px; height: 56px; flex: 0 0 56px; font-size: 24px; }
	.cbdco-account__name { font-size: 22px; }
	.cbdco-account__hello { min-width: 0; flex: 1 1 auto; }
	.cbdco-account__meta { gap: 6px; }
	.cbdco-account__logout { align-self: flex-end; }

	/* Stats : 1 colonne (le 900px était déjà à 2, on descend à 1) */
	.cbdco-account__stats {
		grid-template-columns: 1fr;
		gap: 10px;
		margin-bottom: 28px;
	}
	.cbdco-account__stat { padding: 14px 16px; }
	.cbdco-account__stat-value { font-size: 22px; }

	/* Section head : stack si trop large */
	.cbdco-account__section-head {
		flex-wrap: wrap;
		margin-bottom: 14px;
	}
	.cbdco-account__section-title { font-size: 16px; }

	/* Pagination : passe en colonne, prev/next dessous */
	.cbdco-account__pagination {
		grid-template-columns: 1fr 1fr;
		grid-template-areas: "status status" "prev next";
		gap: 10px;
		padding-top: 14px;
	}
	.cbdco-account__pagination .cbdco-account__page-status { grid-area: status; text-align: center; }
	.cbdco-account__page--prev { grid-area: prev; justify-self: start; }
	.cbdco-account__page--next { grid-area: next; justify-self: end; }
	.cbdco-account__page { padding: 8px 12px; font-size: 12.5px; }

	/* View order : header + titre plus compacts */
	.cbdco-account__view-head { padding: 16px 14px; margin-bottom: 18px; }
	.cbdco-account__view-title h3 { font-size: 20px; }
	.cbdco-account__view-title { flex-wrap: wrap; gap: 10px; }

	/* Forms (edit account / edit address) : champs full width */
	.woocommerce-account .woocommerce-MyAccount-content form .form-row,
	.woocommerce-account .woocommerce-MyAccount-content form p.form-row {
		width: 100% !important;
		float: none !important;
		margin: 0 0 12px !important;
	}
	.woocommerce-account .woocommerce-MyAccount-content form input,
	.woocommerce-account .woocommerce-MyAccount-content form select,
	.woocommerce-account .woocommerce-MyAccount-content form textarea {
		width: 100% !important;
		box-sizing: border-box;
	}
	.woocommerce-account .woocommerce-MyAccount-content form button[type="submit"] {
		width: 100%;
	}

	/* Anti-débordement horizontal : tout ce qui pourrait pousser hors écran. */
	.woocommerce-account .woocommerce-MyAccount-content,
	.woocommerce-account .woocommerce-MyAccount-content > * {
		max-width: 100%;
		overflow-x: hidden;
		min-width: 0;
	}
}

/* Très petit mobile (≤480px) : sidebar 1 colonne (plus de grid 2 cols) */
@media (max-width: 480px) {
	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		grid-template-columns: 1fr;
	}
}

/* --- Sidebar --- */
.woocommerce-account .woocommerce-MyAccount-navigation {
	background: var(--bg-2);
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 14px;
	position: sticky;
	top: 88px;
	align-self: start;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 2px; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	color: var(--text-dim);
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	border-left: none;
	border-radius: 10px;
	transition: background .2s, color .2s, transform .2s;
	position: relative;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a::before {
	content: "";
	width: 18px; height: 18px;
	flex: 0 0 18px;
	background-color: currentColor;
	-webkit-mask: var(--ico, none) center / contain no-repeat;
	mask: var(--ico, none) center / contain no-repeat;
	opacity: .85;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard a         { --ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='7' height='9'/><rect x='14' y='3' width='7' height='5'/><rect x='14' y='12' width='7' height='9'/><rect x='3' y='16' width='7' height='5'/></svg>"); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--orders a            { --ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M6 8h12l-1.2 11a2 2 0 0 1-2 1.8H9.2a2 2 0 0 1-2-1.8L6 8Z'/><path d='M9 8V6a3 3 0 0 1 6 0v2'/></svg>"); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--downloads a         { --ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/><polyline points='7 10 12 15 17 10'/><line x1='12' y1='15' x2='12' y2='3'/></svg>"); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--edit-address a      { --ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/><circle cx='12' cy='10' r='3'/></svg>"); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--payment-methods a   { --ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='6' width='20' height='13' rx='2'/><line x1='2' y1='10' x2='22' y2='10'/></svg>"); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--edit-account a      { --ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='8' r='4'/><path d='M4 21a8 8 0 0 1 16 0'/></svg>"); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout a   { --ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/><polyline points='16 17 21 12 16 7'/><line x1='21' y1='12' x2='9' y2='12'/></svg>"); }
/* Icônes endpoints du plugin wc-loyalty-cashback */
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--fidelite a            { --ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M19 6a7.7 7.7 0 0 0-5.2-2A7.9 7.9 0 0 0 6 12c0 4.4 3.5 8 7.8 8 2 0 3.8-.8 5.2-2'/><path d='M4 10h12'/><path d='M4 14h9'/></svg>"); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--missions a            { --ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><circle cx='12' cy='12' r='5'/><circle cx='12' cy='12' r='1.5' fill='black'/></svg>"); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--historique-cashback a { --ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M3 12a9 9 0 1 0 3-6.7'/><polyline points='3 4 3 9 8 9'/><polyline points='12 7 12 12 16 14'/></svg>"); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
	background: rgba(212, 168, 75, 0.07);
	color: var(--text);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
	background: var(--btn-bg);
	color: #1a1208;
	font-weight: 700;
	box-shadow: 0 6px 20px -8px rgba(212, 168, 75, 0.55);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a::before { opacity: 1; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout a {
	margin-top: 6px;
	border-top: 1px solid var(--line);
	border-radius: 0 0 10px 10px;
	padding-top: 16px;
	color: #c98686;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout a:hover {
	background: rgba(201, 134, 134, 0.08);
	color: #e09a9a;
}

/* --- Content card --- */
.woocommerce-account .woocommerce-MyAccount-content {
	background: var(--bg-2);
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 30px 35px 25px 35px;
	float: none !important;
	width: 100% !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation { float: none !important; width: 100% !important; }
.woocommerce-account a,
.woocommerce-account a:hover,
.woocommerce-account a:focus,
.woocommerce-account a:visited { text-decoration: none !important; }
@media (max-width: 600px) { .woocommerce-account .woocommerce-MyAccount-content { padding: 28px 20px; } }

/* --- Hero (welcome) --- */
.cbdco-account__hero {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
	margin-bottom: 40px;
	padding-bottom: 36px;
	border-bottom: 1px solid var(--line);
}
.cbdco-account__hero-left { display: flex; align-items: center; gap: 22px; }
.cbdco-account__avatar {
	width: 72px; height: 72px;
	border-radius: 50%;
	background: var(--btn-bg);
	color: #1a1208;
	display: grid;
	place-items: center;
	font-size: 30px;
	font-weight: 800;
	letter-spacing: -0.02em;
	box-shadow: 0 8px 24px -8px rgba(212, 168, 75, 0.5);
	flex: 0 0 72px;
}
.cbdco-account__hello { display: flex; flex-direction: column; gap: 4px; }
.cbdco-account__eyebrow {
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--text-dim);
	opacity: .7;
}
.cbdco-account__name {
	margin: 0;
	font-size: 30px;
	line-height: 1.1;
	font-weight: 700;
	color: var(--text);
	letter-spacing: -0.01em;
}
.cbdco-account__meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 8px; }
.cbdco-account__pill {
	display: inline-flex; align-items: center;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
}
.cbdco-account__pill--gold {
	background: rgba(212, 168, 75, 0.12);
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	border: 1px solid rgba(212, 168, 75, 0.28);
}
.cbdco-account__since { font-size: 12.5px; color: var(--text-dim); opacity: .75; }
.cbdco-account__logout {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 14px;
	border-radius: 10px;
	border: 1px solid var(--line);
	color: var(--text-dim);
	font-size: 13px;
	font-weight: 500;
	background: transparent;
	transition: background .2s, color .2s, border-color .2s;
}
.cbdco-account__logout:hover { background: rgba(201, 134, 134, 0.08); color: #e09a9a; border-color: rgba(201, 134, 134, 0.35); }

/* --- Stats grid --- */
.cbdco-account__stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
	margin-bottom: 48px;
}
@media (max-width: 900px) { .cbdco-account__stats { grid-template-columns: repeat(2, 1fr); } }
.cbdco-account__stat {
	background: var(--bg-3);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 24px 22px;
	display: flex;
	align-items: center;
	gap: 16px;
	transition: border-color .25s, transform .25s;
}
.cbdco-account__stat:hover { border-color: rgba(212, 168, 75, 0.32); transform: translateY(-2px); }
.cbdco-account__stat-icon {
	width: 48px; height: 48px;
	flex: 0 0 48px;
	border-radius: 12px;
	background: rgba(212, 168, 75, 0.1);
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	display: grid;
	place-items: center;
}
.cbdco-account__stat-icon svg { width: 22px; height: 22px; }
.cbdco-account__stat-body { display: flex; flex-direction: column; min-width: 0; gap: 4px; }
.cbdco-account__stat-value {
	font-family: var(--font-body);
	font-size: 26px;
	font-weight: 700;
	line-height: 1.1;
	color: var(--text);
	letter-spacing: -0.01em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.cbdco-account__stat-value--gold {
	background: var(--btn-bg);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.cbdco-account__stat-value bdi { color: inherit !important; background: inherit; -webkit-background-clip: inherit; background-clip: inherit; }
.cbdco-account__stat-label {
	font-size: 12.5px;
	color: var(--text-dim);
	opacity: .75;
	letter-spacing: 0.04em;
}

/* --- Section --- */
.cbdco-account__section { margin-top: 8px; }
.cbdco-account__section-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 22px;
	gap: 12px;
}
.cbdco-account__section-title {
	margin: 0;
	font-size: 19px;
	font-weight: 700;
	color: var(--text);
	letter-spacing: -0.01em;
}
.cbdco-account__section-link {
	font-size: 12.5px;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	font-weight: 500;
	transition: opacity .2s;
}
.cbdco-account__section-link:hover { opacity: .8; }

/* --- Orders list --- */
.cbdco-account__orders { display: flex; flex-direction: column; gap: 12px; }
.cbdco-account__order {
	display: grid;
	grid-template-columns: 100px 1fr 130px 130px 150px 18px;
	align-items: center;
	gap: 22px;
	padding: 20px 22px;
	background: var(--bg-3);
	border: 1px solid var(--line);
	border-radius: 14px;
	color: var(--text);
	font-size: 14.5px;
	transition: background .2s, border-color .2s, transform .2s;
}
.cbdco-account__order:hover {
	background: #232323;
	border-color: rgba(212, 168, 75, 0.32);
	transform: translateX(2px);
}
.cbdco-account__order-num { font-weight: 700; color: var(--text); font-size: 15px; }
.cbdco-account__order-date { color: var(--text-dim); opacity: .8; font-size: 13.5px; }
.cbdco-account__order-items { color: var(--text-dim); opacity: .8; font-size: 13.5px; }
.cbdco-account__order-total { font-weight: 700; color: var(--text); font-size: 15px; }
.cbdco-account__order-total bdi { color: inherit; }
.cbdco-account__order-status {
	justify-self: end;
	padding: 6px 14px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.02em;
	background: rgba(255,255,255,0.05);
	color: var(--text-dim);
	border: 1px solid var(--line);
	text-align: center;
	white-space: nowrap;
}
.cbdco-account__order-status--completed { background: rgba(120, 200, 130, 0.12); color: #88d18e; border-color: rgba(120, 200, 130, 0.3); }
.cbdco-account__order-status--processing { background: rgba(96, 165, 250, 0.12); color: #7ab4fa; border-color: rgba(96, 165, 250, 0.3); }
.cbdco-account__order-status--on-hold { background: rgba(212, 168, 75, 0.12); color: var(--gold); border-color: rgba(212, 168, 75, 0.3); }
.cbdco-account__order-status--cancelled,
.cbdco-account__order-status--failed,
.cbdco-account__order-status--refunded { background: rgba(215, 122, 106, 0.12); color: #d77a6a; border-color: rgba(215, 122, 106, 0.3); }
.cbdco-account__order-cta { color: var(--gold); font-weight: 600; opacity: .6; transition: opacity .2s, transform .2s; }
.cbdco-account__order:hover .cbdco-account__order-cta { opacity: 1; transform: translateX(2px); }

@media (max-width: 700px) {
	.cbdco-account__order {
		grid-template-columns: 1fr auto;
		grid-template-areas: "num status" "date total" "items cta";
		gap: 6px 12px;
	}
	.cbdco-account__order-num { grid-area: num; }
	.cbdco-account__order-status { grid-area: status; justify-self: end; }
	.cbdco-account__order-date { grid-area: date; }
	.cbdco-account__order-total { grid-area: total; justify-self: end; }
	.cbdco-account__order-items { grid-area: items; }
	.cbdco-account__order-cta { grid-area: cta; justify-self: end; }
}

/* --- Pagination --- */
.cbdco-account__pagination {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 16px;
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--line);
}
.cbdco-account__page {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 9px 16px;
	border: 1px solid var(--line);
	border-radius: 10px;
	font-size: 13px;
	font-weight: 500;
	color: var(--text-dim);
	background: var(--bg-3);
	transition: background .2s, color .2s, border-color .2s;
}
.cbdco-account__page:hover { background: rgba(212, 168, 75, 0.08); color: var(--gold); border-color: rgba(212, 168, 75, 0.32); }
.cbdco-account__page--prev { justify-self: start; }
.cbdco-account__page--next { justify-self: end; }
.cbdco-account__page-status { font-size: 12.5px; color: var(--text-dim); opacity: .7; }

/* --- View order --- */
.cbdco-account__view-head {
	background: var(--bg-3);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 22px 24px;
	margin-bottom: 28px;
}
.cbdco-account__back {
	display: inline-flex; align-items: center; gap: 4px;
	font-size: 13px;
	color: var(--text-dim);
	opacity: .75;
	margin-bottom: 14px;
	transition: color .2s, opacity .2s;
}
.cbdco-account__back:hover { color: var(--gold); opacity: 1; }
.cbdco-account__view-title {
	display: flex; align-items: center; gap: 14px;
	margin: 0 0 16px;
}
.cbdco-account__view-title h3 {
	margin: 0;
	font-size: 26px;
	font-weight: 800;
	letter-spacing: -0.02em;
	background: var(--btn-bg);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.cbdco-account__view-meta {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	padding-top: 18px;
	border-top: 1px solid var(--line);
}
.cbdco-account__view-meta > div { display: flex; flex-direction: column; gap: 4px; }
.cbdco-account__view-meta-label { font-size: 11.5px; letter-spacing: 0.04em; color: var(--text-dim); opacity: .7; text-transform: uppercase; }
.cbdco-account__view-meta-value { font-size: 16px; font-weight: 700; color: var(--text); }
.cbdco-account__view-meta-value--gold { background: var(--btn-bg); -webkit-background-clip: text; background-clip: text; color: transparent; }
.cbdco-account__view-meta-value bdi { color: inherit; }
@media (max-width: 600px) { .cbdco-account__view-meta { grid-template-columns: 1fr; gap: 12px; } }

/* Order details table (rendered by WC native order-details.php) */
.woocommerce-order-details { margin-top: 28px; }
.woocommerce-order-details__title {
	font-size: 18px !important;
	font-weight: 700 !important;
	margin: 0 0 16px !important;
	color: var(--text) !important;
}
.woocommerce-order-details .shop_table.order_details {
	width: 100%;
	border: 1px solid var(--line);
	border-radius: 14px;
	overflow: hidden;
	background: var(--bg-3);
	border-collapse: separate;
	border-spacing: 0;
}
.woocommerce-order-details .shop_table.order_details th,
.woocommerce-order-details .shop_table.order_details td {
	padding: 14px 18px;
	border-bottom: 1px solid var(--line);
	text-align: left;
	font-size: 14px;
	color: var(--text);
	background: transparent;
}
.woocommerce-order-details .shop_table.order_details thead th {
	background: rgba(212, 168, 75, 0.06);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-dim);
}
.woocommerce-order-details .shop_table.order_details tbody tr:last-child td { border-bottom: 1px solid var(--line); }
.woocommerce-order-details .shop_table.order_details tfoot tr:last-child th,
.woocommerce-order-details .shop_table.order_details tfoot tr:last-child td { border-bottom: 0; }
.woocommerce-order-details .shop_table.order_details tfoot th {
	background: rgba(255,255,255,0.02);
	font-weight: 600;
	color: var(--text-dim);
	width: 60%;
	text-align: right;
}
.woocommerce-order-details .shop_table.order_details tfoot tr:last-child th,
.woocommerce-order-details .shop_table.order_details tfoot tr:last-child td {
	font-weight: 800;
	font-size: 16px;
	background: rgba(212, 168, 75, 0.06);
}
.woocommerce-order-details .shop_table.order_details tfoot tr:last-child td bdi {
	background: var(--btn-bg);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.woocommerce-order-details td.product-name { font-weight: 600; }
.woocommerce-order-details td.product-name a { color: var(--text); }
.woocommerce-order-details td.product-name .wc-item-meta { font-size: 12px; color: var(--text-dim); margin: 4px 0 0; padding: 0; list-style: none; }
.woocommerce-order-details td.product-name .wc-item-meta li { margin: 0; }
.woocommerce-order-details td.product-total { white-space: nowrap; text-align: right; font-weight: 600; }
.woocommerce-order-details .order-actions--heading + td a {
	display: inline-block;
	margin: 0 8px 4px 0;
	padding: 8px 14px;
	background: var(--bg-2);
	border: 1px solid var(--line);
	border-radius: 8px;
	font-size: 12.5px;
	color: var(--text-dim);
	transition: background .2s, color .2s, border-color .2s;
}
.woocommerce-order-details .order-actions--heading + td a:hover {
	background: rgba(212, 168, 75, 0.1);
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	border-color: rgba(212, 168, 75, 0.32);
}

/* Customer details (billing/shipping addresses on view-order) */
.woocommerce-customer-details { margin-top: 28px; }
.woocommerce-customer-details .col2-set,
.woocommerce-customer-details .u-columns,
.woocommerce-customer-details .woocommerce-columns,
.woocommerce-customer-details .woocommerce-columns--addresses,
.woocommerce-customer-details .addresses {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 18px !important;
	width: 100% !important;
	float: none !important;
}
.woocommerce-customer-details .woocommerce-columns::before,
.woocommerce-customer-details .woocommerce-columns::after,
.woocommerce-customer-details .col2-set::before,
.woocommerce-customer-details .col2-set::after { content: none !important; display: none !important; }
.woocommerce-customer-details .col-1,
.woocommerce-customer-details .col-2,
.woocommerce-customer-details .u-column1,
.woocommerce-customer-details .u-column2,
.woocommerce-customer-details .woocommerce-column,
.woocommerce-customer-details [class*="woocommerce-column--"] {
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	margin: 0 !important;
	background: var(--bg-3);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 18px 20px !important;
	box-sizing: border-box;
}
.woocommerce-customer-details address {
	border: 0; padding: 0; background: transparent;
	font-style: normal;
	color: var(--text-dim);
	font-size: 14px;
	line-height: 1.6;
	margin: 0;
}
.woocommerce-customer-details h2,
.woocommerce-customer-details .woocommerce-column__title {
	font-size: 14px;
	font-weight: 700;
	color: var(--text);
	margin: 0 0 12px !important;
	letter-spacing: 0.02em;
}
@media (max-width: 700px) {
	.woocommerce-customer-details .col2-set,
	.woocommerce-customer-details .u-columns,
	.woocommerce-customer-details .woocommerce-columns { grid-template-columns: 1fr !important; }
}

/* Notes / suivi */
.cbdco-account__notes { margin: 28px 0; }
.cbdco-account__subtitle { font-size: 16px; font-weight: 700; color: var(--text); margin: 0 0 14px; }
.cbdco-account__notes-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.cbdco-account__note {
	background: var(--bg-3);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 14px 18px;
}
.cbdco-account__note-date { font-size: 11.5px; color: var(--text-dim); opacity: .7; text-transform: uppercase; letter-spacing: 0.04em; }
.cbdco-account__note-text { color: var(--text); font-size: 14px; margin-top: 6px; }
.cbdco-account__note-text p { margin: 0 0 6px; }
.cbdco-account__note-text p:last-child { margin-bottom: 0; }

/* --- Addresses listing --- */
.cbdco-account__intro {
	color: var(--text-dim);
	opacity: .8;
	font-size: 13.5px;
	margin: 0 0 22px;
}
.cbdco-account__addresses {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}
@media (max-width: 768px) { .cbdco-account__addresses { grid-template-columns: 1fr; } }
.cbdco-account__address-card {
	background: var(--bg-3);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 22px 22px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	transition: border-color .25s;
}
.cbdco-account__address-card:hover { border-color: rgba(212, 168, 75, 0.32); }
.cbdco-account__address-card--empty { border-style: dashed; }
.cbdco-account__address-head {
	display: flex;
	align-items: center;
	gap: 12px;
}
.cbdco-account__address-icon {
	width: 40px; height: 40px;
	flex: 0 0 40px;
	border-radius: 10px;
	background: rgba(212, 168, 75, 0.1);
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	display: grid;
	place-items: center;
}
.cbdco-account__address-icon svg { width: 20px; height: 20px; }
.cbdco-account__address-title {
	flex: 1;
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	color: var(--text);
}
.cbdco-account__address-edit {
	font-size: 12.5px;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	font-weight: 500;
	transition: opacity .2s;
}
.cbdco-account__address-edit:hover { opacity: .8; }
.cbdco-account__address-body address {
	font-style: normal;
	font-size: 14px;
	color: var(--text-dim);
	line-height: 1.6;
}
.cbdco-account__address-empty { font-size: 13.5px; color: var(--text-dim); opacity: .7; margin: 0; font-style: italic; }

/* --- Edit account / edit-address forms (style checkout-like) --- */
.woocommerce-account .woocommerce-MyAccount-content > p:first-of-type:not(.cbdco-account__intro) {
	color: var(--text-dim);
	font-size: 13.5px;
	margin: 0 0 22px;
}

.woocommerce-MyAccount-content form > h2,
.woocommerce-MyAccount-content form fieldset legend {
	font-size: 16px;
	font-weight: 700;
	color: var(--text);
	margin: 22px 0 14px;
	padding: 0;
	letter-spacing: -0.01em;
}
.woocommerce-MyAccount-content form > h2:first-child { margin-top: 0; }

.woocommerce-EditAccountForm,
.woocommerce-MyAccount-content form .woocommerce-address-fields,
.woocommerce-MyAccount-content form .woocommerce-address-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px 16px;
}
.woocommerce-EditAccountForm > *,
.woocommerce-MyAccount-content form .woocommerce-address-fields > *,
.woocommerce-MyAccount-content form .woocommerce-address-fields__field-wrapper > * { grid-column: 1 / -1; }
.woocommerce-EditAccountForm .form-row-first,
.woocommerce-EditAccountForm p#account_first_name_field,
.woocommerce-MyAccount-content form .form-row-first,
.woocommerce-MyAccount-content form p#billing_first_name_field,
.woocommerce-MyAccount-content form p#shipping_first_name_field,
.woocommerce-MyAccount-content form p#billing_postcode_field,
.woocommerce-MyAccount-content form p#shipping_postcode_field,
.woocommerce-MyAccount-content form .form-row-half-first { grid-column: span 1; }
.woocommerce-EditAccountForm .form-row-last,
.woocommerce-EditAccountForm p#account_last_name_field,
.woocommerce-MyAccount-content form .form-row-last,
.woocommerce-MyAccount-content form p#billing_last_name_field,
.woocommerce-MyAccount-content form p#shipping_last_name_field,
.woocommerce-MyAccount-content form p#billing_city_field,
.woocommerce-MyAccount-content form p#shipping_city_field,
.woocommerce-MyAccount-content form .form-row-half-last { grid-column: span 1; }

.woocommerce-MyAccount-content form fieldset {
	grid-column: 1 / -1;
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 18px 20px 8px;
	margin: 18px 0 0;
	background: rgba(255,255,255,0.015);
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px 16px;
}
.woocommerce-MyAccount-content form fieldset legend { grid-column: 1 / -1; margin: 0 0 6px; padding: 0; }
.woocommerce-MyAccount-content form fieldset > .form-row { grid-column: 1 / -1; }

.woocommerce-MyAccount-content form .form-row {
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.woocommerce-MyAccount-content form .form-row label {
	font-size: 12.5px;
	font-weight: 500;
	color: var(--text-dim);
	letter-spacing: 0.02em;
}
.woocommerce-MyAccount-content form .form-row label .required,
.woocommerce-MyAccount-content form .form-row label .optional { color: var(--gold); margin-left: 2px; }
.woocommerce-MyAccount-content form .form-row em { font-size: 11.5px; color: var(--text-dim); opacity: .65; font-style: normal; }
.woocommerce-MyAccount-content form .woocommerce-input-wrapper { width: 100%; display: block; }

.woocommerce-MyAccount-content form input[type="text"],
.woocommerce-MyAccount-content form input[type="email"],
.woocommerce-MyAccount-content form input[type="tel"],
.woocommerce-MyAccount-content form input[type="password"],
.woocommerce-MyAccount-content form input[type="number"],
.woocommerce-MyAccount-content form textarea,
.woocommerce-MyAccount-content form select,
.woocommerce-MyAccount-content form .select2-container--default .select2-selection--single {
	width: 100% !important;
	background: #1a1a1a !important;
	background-color: #1a1a1a !important;
	border: 1px solid #2a2a2a !important;
	border-radius: 8px !important;
	color: #ffffff !important;
	font-family: inherit !important;
	font-size: 14px !important;
	height: 52px !important;
	min-height: 52px;
	padding: 0 14px !important;
	box-sizing: border-box;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color .15s ease, box-shadow .15s ease;
	color-scheme: dark;
	box-shadow: none !important;
}
.woocommerce-MyAccount-content form textarea {
	height: auto !important;
	min-height: 90px;
	padding: 12px 14px !important;
	resize: vertical;
}
.woocommerce-MyAccount-content form input:focus,
.woocommerce-MyAccount-content form textarea:focus,
.woocommerce-MyAccount-content form select:focus,
.woocommerce-MyAccount-content form .select2-container--default.select2-container--focus .select2-selection--single {
	outline: none !important;
	border-color: #C9A961 !important;
	box-shadow: 0 0 0 3px rgba(201,169,97,0.15) !important;
}
.woocommerce-MyAccount-content form input:-webkit-autofill,
.woocommerce-MyAccount-content form select:-webkit-autofill,
.woocommerce-MyAccount-content form textarea:-webkit-autofill {
	-webkit-text-fill-color: #ffffff !important;
	-webkit-box-shadow: 0 0 0 1000px #1a1a1a inset !important;
	box-shadow: 0 0 0 1000px #1a1a1a inset !important;
	caret-color: #ffffff;
	transition: background-color 9999s ease-in-out 0s;
}
.woocommerce-MyAccount-content form .woocommerce-invalid input,
.woocommerce-MyAccount-content form .woocommerce-invalid select,
.woocommerce-MyAccount-content form .woocommerce-invalid .select2-container--default .select2-selection--single { border-color: rgba(215, 122, 106, 0.55) !important; }

/* Select2 alignement avec input checkout */
.woocommerce-MyAccount-content form .select2-container--default .select2-selection--single .select2-selection__rendered { color: #ffffff !important; line-height: 50px !important; padding: 0 !important; }
.woocommerce-MyAccount-content form .select2-container--default .select2-selection--single .select2-selection__arrow { height: 100% !important; right: 10px !important; top: 0 !important; }
.woocommerce-MyAccount-content form .select2-container--default .select2-selection--single .select2-selection__arrow b { border-color: #888 transparent transparent !important; }
body .select2-dropdown { background: #1a1a1a !important; border: 1px solid #2a2a2a !important; color: #ffffff !important; }
body .select2-search--dropdown .select2-search__field { background: #1a1a1a !important; border: 1px solid #2a2a2a !important; color: #ffffff !important; border-radius: 8px !important; padding: 8px 12px !important; }
body .select2-results__option { color: #d8d8d8 !important; padding: 10px 14px !important; }
body .select2-container--default .select2-results__option--highlighted,
body .select2-container--default .select2-results__option--highlighted[aria-selected],
body .select2-container--default .select2-results__option--highlighted[data-selected] {
	background: rgba(201,169,97,0.12) !important;
	color: #C9A961 !important;
}
body .select2-container--default .select2-results__option--selected,
body .select2-container--default .select2-results__option[aria-selected="true"],
body .select2-container--default .select2-results__option[data-selected="true"] {
	background: rgba(201,169,97,0.18) !important;
	color: #C9A961 !important;
}

.woocommerce-MyAccount-content form p:has(button[type="submit"]),
.woocommerce-MyAccount-content form .form-row-button { grid-column: 1 / -1; margin-top: 14px; }
.woocommerce-MyAccount-content form button[type="submit"],
.woocommerce-MyAccount-content button.button,
.woocommerce-MyAccount-content a.button,
.woocommerce-MyAccount-content .woocommerce-Button {
	background: var(--btn-bg);
	color: var(--btn-fg, #1a1208);
	border: 0;
	border-radius: 10px;
	padding: 14px 26px;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	letter-spacing: 0.02em;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	transition: transform .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
	box-shadow: 0 6px 18px -8px rgba(212, 168, 75, 0.5);
}
.woocommerce-MyAccount-content form button[type="submit"]:hover,
.woocommerce-MyAccount-content button.button:hover,
.woocommerce-MyAccount-content a.button:hover,
.woocommerce-MyAccount-content .woocommerce-Button:hover {
	background: var(--btn-bg-hover);
	color: var(--btn-fg, #1a1208);
	transform: translateY(-1px);
	box-shadow: 0 10px 22px -8px rgba(212, 168, 75, 0.6);
}

/* --- WC notices in account (success/error/info pill style) --- */
.woocommerce-MyAccount-content .woocommerce-message,
.woocommerce-MyAccount-content .woocommerce-info,
.woocommerce-MyAccount-content .woocommerce-error,
.woocommerce-MyAccount-content .woocommerce-notices-wrapper > div {
	background: rgba(120, 200, 130, 0.08) !important;
	border: 1px solid rgba(120, 200, 130, 0.3) !important;
	border-left-width: 1px !important;
	border-radius: 12px !important;
	padding: 12px 16px 12px 44px !important;
	margin: 0 0 22px !important;
	color: #88d18e !important;
	font-family: var(--font-body) !important;
	font-size: 13.5px !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	line-height: 1.4;
}
.woocommerce-MyAccount-content .woocommerce-message::before,
.woocommerce-MyAccount-content .woocommerce-info::before,
.woocommerce-MyAccount-content .woocommerce-error::before {
	content: "✓";
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	width: 22px; height: 22px;
	border-radius: 50%;
	background: rgba(120, 200, 130, 0.18);
	color: #88d18e;
	display: grid;
	place-items: center;
	font-size: 13px;
	font-weight: 700;
}
.woocommerce-MyAccount-content .woocommerce-info {
	background: rgba(96, 165, 250, 0.08) !important;
	border-color: rgba(96, 165, 250, 0.3) !important;
	color: #7ab4fa !important;
}
.woocommerce-MyAccount-content .woocommerce-info::before {
	content: "i";
	background: rgba(96, 165, 250, 0.18);
	color: #7ab4fa;
	font-style: italic;
	font-family: serif;
}
.woocommerce-MyAccount-content .woocommerce-error {
	background: rgba(215, 122, 106, 0.08) !important;
	border-color: rgba(215, 122, 106, 0.3) !important;
	color: #e09a9a !important;
}
.woocommerce-MyAccount-content .woocommerce-error::before {
	content: "!";
	background: rgba(215, 122, 106, 0.18);
	color: #e09a9a;
	font-weight: 800;
}
.woocommerce-MyAccount-content .woocommerce-message a,
.woocommerce-MyAccount-content .woocommerce-info a,
.woocommerce-MyAccount-content .woocommerce-error a { color: inherit !important; text-decoration: underline !important; }
.woocommerce-MyAccount-content .woocommerce-message,
.woocommerce-MyAccount-content .woocommerce-info,
.woocommerce-MyAccount-content .woocommerce-error,
.woocommerce-MyAccount-content .woocommerce-message:focus,
.woocommerce-MyAccount-content .woocommerce-info:focus,
.woocommerce-MyAccount-content .woocommerce-error:focus,
.woocommerce-MyAccount-content .woocommerce-message:focus-visible,
.woocommerce-MyAccount-content .woocommerce-info:focus-visible,
.woocommerce-MyAccount-content .woocommerce-error:focus-visible { outline: none !important; box-shadow: none !important; }

/* --- Country dropdown chevron en blanc --- */
.woocommerce-MyAccount-content form .select2-container--default .select2-selection--single .select2-selection__arrow b {
	background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat center / 16px !important;
	border: 0 !important;
	width: 16px !important;
	height: 16px !important;
}
.woocommerce-MyAccount-content form select {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") !important;
	background-repeat: no-repeat !important;
	background-position: calc(100% - 14px) center !important;
	background-size: 16px !important;
	padding-right: 40px !important;
}

/* --- Password show/hide eye en blanc (SVG inline) --- */
.woocommerce-MyAccount-content .password-input { position: relative; display: block; }
.woocommerce-MyAccount-content .password-input input { padding-right: 48px !important; }
.woocommerce-MyAccount-content .show-password-input {
	position: absolute;
	top: 50%;
	right: 12px;
	transform: translateY(-50%);
	width: 28px;
	height: 28px;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	cursor: pointer;
	opacity: .85;
	transition: opacity .2s;
	display: grid;
	place-items: center;
}
.woocommerce-MyAccount-content .show-password-input::before,
.woocommerce-MyAccount-content form .show-password-input::before,
.woocommerce-page .woocommerce-MyAccount-content form .show-password-input::before {
	content: "" !important;
	width: 22px !important;
	height: 22px !important;
	display: block !important;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/><circle cx='12' cy='12' r='3'/></svg>") !important;
	background-repeat: no-repeat !important;
	background-size: contain !important;
	background-position: center !important;
}
.woocommerce-MyAccount-content .show-password-input.display-password::before,
.woocommerce-MyAccount-content form .show-password-input.display-password::before,
.woocommerce-page .woocommerce-MyAccount-content form .show-password-input.display-password::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24'/><line x1='1' y1='1' x2='23' y2='23'/></svg>") !important;
}
.woocommerce-MyAccount-content .show-password-input:hover { opacity: 1; }
.woocommerce-MyAccount-content .show-password-input:focus { background: transparent !important; outline: 1px solid var(--gold); outline-offset: 2px; }

@media (max-width: 600px) {
	.woocommerce-EditAccountForm,
	.woocommerce-MyAccount-content form .woocommerce-address-fields,
	.woocommerce-MyAccount-content form .woocommerce-address-fields__field-wrapper,
	.woocommerce-MyAccount-content form fieldset { grid-template-columns: 1fr; }
	.woocommerce-EditAccountForm .form-row-first,
	.woocommerce-EditAccountForm .form-row-last,
	.woocommerce-MyAccount-content form .form-row-first,
	.woocommerce-MyAccount-content form .form-row-last,
	.woocommerce-MyAccount-content form .form-row-half-first,
	.woocommerce-MyAccount-content form .form-row-half-last { grid-column: 1 / -1; }
}

/* ============================================================
   Login / Register (form-login.php — déconnecté)
   Layout aéré : pas de gros card de fond, juste les forms.
   ============================================================ */
.cbdco-login {
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 16px 0 0;
	box-sizing: border-box;
	background: transparent;
	border: 0;
	border-radius: 0;
}
.cbdco-login *, .cbdco-login *::before, .cbdco-login *::after { box-sizing: border-box; }
@media (max-width: 600px) { .cbdco-login { padding: 8px 0 0; } }

/* Notices WooCommerce sur la page de connexion : même style "pill" que dans .woocommerce-MyAccount-content
   (cible aussi les notices rendues AVANT .cbdco-login via woocommerce_before_customer_login_form). */
body.woocommerce-account:not(.logged-in) .woocommerce-message,
body.woocommerce-account:not(.logged-in) .woocommerce-info,
body.woocommerce-account:not(.logged-in) .woocommerce-error,
body.woocommerce-account:not(.logged-in) .woocommerce-notices-wrapper > div,
.cbdco-login .woocommerce-message,
.cbdco-login .woocommerce-info,
.cbdco-login .woocommerce-error {
	list-style: none !important;
	background: rgba(120, 200, 130, 0.08) !important;
	border: 1px solid rgba(120, 200, 130, 0.3) !important;
	border-left-width: 1px !important;
	border-radius: 12px !important;
	padding: 12px 16px 12px 44px !important;
	margin: 0 0 22px !important;
	color: #88d18e !important;
	font-family: var(--font-body) !important;
	font-size: 13.5px !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	line-height: 1.4;
}
body.woocommerce-account:not(.logged-in) .woocommerce-message::before,
body.woocommerce-account:not(.logged-in) .woocommerce-info::before,
body.woocommerce-account:not(.logged-in) .woocommerce-error::before,
.cbdco-login .woocommerce-message::before,
.cbdco-login .woocommerce-info::before,
.cbdco-login .woocommerce-error::before {
	content: "✓";
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	width: 22px; height: 22px;
	border-radius: 50%;
	background: rgba(120, 200, 130, 0.18);
	color: #88d18e;
	display: grid;
	place-items: center;
	font-size: 13px;
	font-weight: 700;
}
body.woocommerce-account:not(.logged-in) .woocommerce-info,
.cbdco-login .woocommerce-info {
	background: rgba(96, 165, 250, 0.08) !important;
	border-color: rgba(96, 165, 250, 0.3) !important;
	color: #7ab4fa !important;
}
body.woocommerce-account:not(.logged-in) .woocommerce-info::before,
.cbdco-login .woocommerce-info::before {
	content: "i";
	background: rgba(96, 165, 250, 0.18);
	color: #7ab4fa;
	font-style: italic;
	font-family: serif;
}
body.woocommerce-account:not(.logged-in) .woocommerce-error,
.cbdco-login .woocommerce-error {
	background: rgba(215, 122, 106, 0.08) !important;
	border-color: rgba(215, 122, 106, 0.3) !important;
	color: #e09a9a !important;
}
body.woocommerce-account:not(.logged-in) .woocommerce-error::before,
.cbdco-login .woocommerce-error::before {
	content: "!";
	background: rgba(215, 122, 106, 0.18);
	color: #e09a9a;
	font-weight: 800;
}
body.woocommerce-account:not(.logged-in) .woocommerce-message a,
body.woocommerce-account:not(.logged-in) .woocommerce-info a,
body.woocommerce-account:not(.logged-in) .woocommerce-error a,
.cbdco-login .woocommerce-message a,
.cbdco-login .woocommerce-info a,
.cbdco-login .woocommerce-error a { color: inherit !important; text-decoration: underline !important; }
body.woocommerce-account:not(.logged-in) .woocommerce-message .button,
body.woocommerce-account:not(.logged-in) .woocommerce-info .button,
body.woocommerce-account:not(.logged-in) .woocommerce-error .button,
.cbdco-login .woocommerce-message .button,
.cbdco-login .woocommerce-info .button,
.cbdco-login .woocommerce-error .button { display: none !important; }
body.woocommerce-account:not(.logged-in) .woocommerce-error li,
body.woocommerce-account:not(.logged-in) .woocommerce-message li,
body.woocommerce-account:not(.logged-in) .woocommerce-info li,
.cbdco-login .woocommerce-error li,
.cbdco-login .woocommerce-message li,
.cbdco-login .woocommerce-info li {
	list-style: none;
	margin: 0;
	padding: 0;
}
/* Erreur inline sur un champ invalide */
.cbdco-login .woocommerce-invalid input,
.cbdco-login .woocommerce-invalid .input-text {
	border-color: #e09a9a !important;
	box-shadow: 0 0 0 3px rgba(215, 122, 106, 0.18) !important;
}

.cbdco-login__hero { text-align: center; margin: 8px 0 28px; }
.cbdco-login__eyebrow {
	display: inline-block;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--text-dim);
	opacity: .7;
	margin-bottom: 8px;
}
.cbdco-login__eyebrow--gold {
	background: var(--btn-bg);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	opacity: 1;
	font-weight: 700;
}
.cbdco-login__title {
	margin: 0;
	font-size: 32px;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--text);
}
.cbdco-login__subtitle {
	margin: 10px auto 0;
	max-width: 540px;
	font-size: 14.5px;
	color: var(--text-dim);
	opacity: .8;
	line-height: 1.6;
}

.cbdco-login__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	align-items: stretch;
	gap: 20px;
	margin-bottom: 36px;
}
@media (max-width: 800px) { .cbdco-login__grid { grid-template-columns: 1fr; } }

.cbdco-login__card {
	display: flex;
	flex-direction: column;
	background: var(--bg-2);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 28px 28px 24px;
	transition: border-color .25s;
}
.cbdco-login__card:hover { border-color: rgba(212, 168, 75, 0.32); }
.cbdco-login__card--register {
	border: 1px solid transparent;
	background: linear-gradient(var(--bg-2), var(--bg-2)) padding-box, var(--btn-bg) border-box;
	box-shadow: 0 12px 32px -16px rgba(212, 168, 75, 0.4);
}

.cbdco-login__card-head { margin-bottom: 22px; }
.cbdco-login__card-head h3 {
	margin: 0 0 6px;
	font-size: 20px;
	font-weight: 700;
	color: var(--text);
	letter-spacing: -0.01em;
}
.cbdco-login__card-head p { margin: 0; font-size: 13.5px; color: var(--text-dim); opacity: .8; }

.cbdco-login__form { display: flex; flex-direction: column; gap: 8px; margin: 0; flex: 1; }
.cbdco-login__form .form-row { margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.cbdco-login__form label {
	font-size: 12.5px;
	font-weight: 500;
	color: var(--text-dim);
	letter-spacing: 0.02em;
}
.cbdco-login__form input[type="text"],
.cbdco-login__form input[type="email"],
.cbdco-login__form input[type="password"],
.cbdco-login__form .input-text {
	width: 100% !important;
	background: #1a1a1a !important;
	background-color: #1a1a1a !important;
	border: 1px solid #2a2a2a !important;
	border-radius: 8px !important;
	color: #ffffff !important;
	font-family: inherit !important;
	font-size: 14px !important;
	height: 52px !important;
	min-height: 52px !important;
	padding: 0 14px !important;
	box-sizing: border-box !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	transition: border-color .15s ease, box-shadow .15s ease !important;
	color-scheme: dark;
	box-shadow: none !important;
}
.cbdco-login__form input:focus,
.cbdco-login__form .input-text:focus {
	outline: none !important;
	border-color: #C9A961 !important;
	box-shadow: 0 0 0 3px rgba(201,169,97,0.15) !important;
}
.cbdco-login__form input:-webkit-autofill {
	-webkit-text-fill-color: #ffffff !important;
	-webkit-box-shadow: 0 0 0 1000px #1a1a1a inset !important;
}
.cbdco-login__row-meta {
	flex-direction: row !important;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}
.cbdco-login__remember {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--text-dim);
	cursor: pointer;
	white-space: nowrap;
	flex-shrink: 0;
}
/* Reset des checkboxes dans le form login : la règle .woocommerce form .form-row input
   leur applique width:100%/padding/background, ce qui casse l'alignement avec leur label. */
.cbdco-login__form input[type="checkbox"] {
	width: 16px !important;
	height: 16px !important;
	min-height: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	accent-color: #C9A961;
	cursor: pointer;
	flex-shrink: 0;
	-webkit-appearance: checkbox !important;
	appearance: checkbox !important;
}
.cbdco-login__remember input[type="checkbox"] { width: 16px; height: 16px; accent-color: #C9A961; cursor: pointer; flex-shrink: 0; }
.cbdco-login__forgot { font-size: 13px; color: var(--gold); transition: opacity .2s; white-space: nowrap; }
.cbdco-login__forgot:hover { opacity: .8; }

.cbdco-login__row-cgv { flex-direction: row !important; align-items: flex-start; }
.cbdco-login__cgv {
	display: flex !important;
	width: 100%;
	align-items: flex-start;
	gap: 10px;
	font-size: 12.5px;
	color: var(--text-dim);
	cursor: pointer;
	line-height: 1.5;
}
.cbdco-login__cgv input[type="checkbox"] {
	width: 16px;
	height: 16px;
	accent-color: #C9A961;
	cursor: pointer;
	margin-top: 2px;
	flex-shrink: 0;
}
.cbdco-login__cgv a { color: var(--gold); text-decoration: underline; }
.cbdco-login__cgv span { flex: 1; }

/* Masque le bloc privacy text natif WC (on a notre CGV checkbox custom) */
.cbdco-login .woocommerce-privacy-policy-text,
.cbdco-login .woocommerce-form-register .woocommerce-privacy-policy-text { display: none !important; }

/* Œil show/hide password — SVG blanc forcé sur la page login aussi */
.cbdco-login .password-input { position: relative; display: block; }
.cbdco-login .password-input input { padding-right: 48px !important; }
.cbdco-login .show-password-input,
.cbdco-login form .show-password-input,
.woocommerce-page .cbdco-login form .show-password-input {
	position: absolute !important;
	top: 50% !important;
	right: 12px !important;
	transform: translateY(-50%) !important;
	width: 28px !important;
	height: 28px !important;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	cursor: pointer;
	opacity: .85;
	display: grid !important;
	place-items: center;
}
.cbdco-login .show-password-input::before,
.cbdco-login form .show-password-input::before,
.woocommerce-page .cbdco-login form .show-password-input::before {
	content: "" !important;
	width: 22px !important;
	height: 22px !important;
	display: block !important;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/><circle cx='12' cy='12' r='3'/></svg>") !important;
	background-repeat: no-repeat !important;
	background-size: contain !important;
	background-position: center !important;
}
.cbdco-login .show-password-input.display-password::before,
.cbdco-login form .show-password-input.display-password::before,
.woocommerce-page .cbdco-login form .show-password-input.display-password::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24'/><line x1='1' y1='1' x2='23' y2='23'/></svg>") !important;
}

.cbdco-login__submit {
	background: var(--btn-bg);
	color: #1a1208;
	border: 0;
	border-radius: 10px;
	padding: 14px 26px;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	letter-spacing: 0.02em;
	width: 100%;
	transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
	box-shadow: 0 6px 18px -8px rgba(212, 168, 75, 0.5);
	margin-top: 6px;
}
.cbdco-login__submit:hover { background: var(--btn-bg-hover); transform: translateY(-1px); box-shadow: 0 10px 22px -8px rgba(212, 168, 75, 0.6); }

/* --- Perks inline strip (sous les forms) --- */
.cbdco-login__perks-inline {
	list-style: none;
	margin: 28px auto 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px 32px;
}
.cbdco-login__perks-inline li {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
	color: var(--text-dim);
}
.cbdco-login__perks-inline svg {
	width: 18px;
	height: 18px;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	flex-shrink: 0;
}

/* --- Empty state --- */
.cbdco-account__empty {
	text-align: center;
	padding: 48px 20px;
	background: var(--bg-3);
	border: 1px dashed var(--line);
	border-radius: 14px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
}
.cbdco-account__empty svg { width: 40px; height: 40px; color: var(--text-dim); opacity: .55; }
.cbdco-account__empty p { color: var(--text-dim); margin: 0; font-size: 14px; }

/* ============================================================
   Blog
   ============================================================ */
.post-card {
	background: var(--bg-2);
	border: 1px solid var(--line);
	overflow: hidden;
	display: flex; flex-direction: column;
}
.post-card__media { aspect-ratio: 16 / 10; background: var(--bg-3); overflow: hidden; }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; }
.post-card__body { padding: 24px; flex: 1; display: flex; flex-direction: column; }
.post-card__cat {
	font-family: var(--font-mono);
	font-size: 10px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	margin-bottom: 8px;
}
.post-card__title { font-size: 17px; line-height: 1.35; font-weight: 600; margin: 0 0 12px; color: var(--text); }
.post-card__title a { color: inherit; }
.post-card__meta {
	color: var(--text-mute);
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	margin-top: auto;
}
.post-card--feature { grid-column: span 2; flex-direction: row; }
.post-card--feature .post-card__media { flex: 1; aspect-ratio: auto; }
.post-card--feature .post-card__body { flex: 1; padding: 48px; justify-content: center; }
.post-card--feature .post-card__title { font-size: 28px; line-height: 1.2; }
@media (max-width: 1024px) { .post-card--feature { grid-column: span 1; flex-direction: column; } .post-card--feature .post-card__body { padding: 24px; } }

/* ============================================================
   Article de blog (single.php) — même esprit que les pages statiques :
   pas de hero, juste h1 propre + meta, contenu narrow centré.
   ============================================================ */
.cbdco-article { min-height: 60vh; }
.cbdco-article__head {
	padding: 14px 24px 6px;
}
.cbdco-article__eyebrow {
	display: inline-block;
	font-size: 11px; font-weight: 700;
	letter-spacing: .12em; text-transform: uppercase;
	color: var(--gold);
	margin-bottom: 6px;
}
.cbdco-article__title {
	font-family: var(--font-body);
	font-size: clamp(20px, 2.2vw, 26px);
	font-weight: 600;
	color: var(--text);
	letter-spacing: -.01em;
	line-height: 1.2;
	margin: 0 0 6px;
}
.cbdco-article__meta {
	font-size: 13px;
	color: var(--text-dim);
	margin: 0;
	line-height: 1.5;
}
.cbdco-article__meta span { margin: 0 4px; opacity: .55; }
.cbdco-article__cover-wrap {
	padding: 6px 24px 0;
}
.cbdco-article__cover {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 12px;
	margin: 0;
}
.cbdco-article__layout {
	margin: 14px auto;
}
/* Article body — typo alignée sur les pages statiques : align gauche, taille body. */
body.single-post .entry-article h2,
.cbdco-article .entry-article h2 {
	font-family: var(--font-body);
	font-size: clamp(17px, 1.9vw, 21px);
	font-weight: 600;
	color: var(--text);
	letter-spacing: -.01em;
	margin: 36px 0 10px;
	line-height: 1.25;
}
body.single-post .entry-article h3,
.cbdco-article .entry-article h3 {
	font-family: var(--font-body);
	font-size: 15.5px;
	font-weight: 600;
	color: var(--text);
	margin: 22px 0 8px;
	line-height: 1.3;
}
body.single-post .entry-article h4,
.cbdco-article .entry-article h4 {
	font-family: var(--font-body);
	font-size: 14.5px;
	font-weight: 700;
	color: var(--text);
	margin: 18px 0 6px;
}
body.single-post .entry-article p,
.cbdco-article .entry-article p {
	font-size: 14.5px;
	line-height: 1.6;
	margin: 0 0 12px;
	color: var(--text);
}
body.single-post .entry-article ul,
body.single-post .entry-article ol,
.cbdco-article .entry-article ul,
.cbdco-article .entry-article ol {
	padding-left: 22px;
	margin: 0 0 14px;
}
body.single-post .entry-article li,
.cbdco-article .entry-article li {
	font-size: 14.5px;
	line-height: 1.6;
	margin-bottom: 6px;
}
body.single-post .entry-article blockquote,
.cbdco-article .entry-article blockquote {
	font-style: italic;
	margin: 24px 0;
	padding: 12px 18px;
	border-left: 3px solid var(--gold);
	background: var(--bg-1);
	border-radius: 0 8px 8px 0;
}
body.single-post .entry-article img,
.cbdco-article .entry-article img {
	display: block;
	margin: 18px auto;
	max-width: 100%; height: auto;
	border-radius: 10px;
}
@media (max-width: 600px) {
	.cbdco-article__head      { padding: 10px 16px 4px; }
	.cbdco-article__cover-wrap { padding: 4px 16px 0; }
	.cbdco-article__layout    { margin: 10px auto; }
	body.single-post .entry-article p,
	body.single-post .entry-article li,
	.cbdco-article .entry-article p,
	.cbdco-article .entry-article li {
		font-size: 14px;
	}
	body.single-post .entry-article h2,
	.cbdco-article .entry-article h2 { margin: 28px 0 8px; }
}

.entry-article { max-width: 100%; margin-inline: auto; }
.entry-article--account { max-width: none !important; padding: 0 !important; background: transparent !important; border: 0 !important; margin-top: -19px; margin-bottom: -40px; }
/* Note : `.page-content--account` (ajouté via page.php pour les pages compte)
   n'a plus de règle dédiée — le padding est déjà pris en charge par la règle
   commune `body.woocommerce-cart/-checkout/-account .page-content` (ligne 4451)
   qui couvre les 3 contextes avec les mêmes valeurs. Évite la duplication. */
.entry-article h2, .entry-article h3 {
	color: var(--text);
	font-family: var(--font-display);
	margin-top: 10px;
}
.entry-article--account h2, .entry-article--account h3 { margin-top: -7px; }
.entry-article p, .entry-article li { color: var(--text); }
.entry-article a { text-decoration: underline; }

/* ============================================================
   Contact
   ============================================================ */
.contact-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 32px;
	max-width: var(--container);
	margin: 0 auto;
}
@media (max-width: 1024px) { .contact-grid { grid-template-columns: 1fr; } }

/* ============================================================
   Fiche produit (single product) — refonte complète
   Charte : #0F0F0F / #D4A84B / #F5F5F5 / #B0B0B0 / #2A2A2A / #1F1F1F
   ============================================================ */

/* ----- 1. Fil d'Ariane ----- */
.wc-breadcrumb {
	max-width: var(--container);
	margin: 16px auto 0;
	padding: 0 24px;
	font-size: 12.5px;
	color: var(--text-mute);
}
.wc-breadcrumb__inner {
	display: flex; flex-wrap: wrap; align-items: center;
	gap: 6px;
	line-height: 1.4;
}
.wc-breadcrumb__sep { color: var(--text-mute); opacity: 0.55; }
.wc-breadcrumb a { color: var(--text-mute); text-decoration: none; transition: color .2s ease; }
.wc-breadcrumb a:hover { color: var(--gold); }
.wc-breadcrumb__item:last-child,
.wc-breadcrumb__item:last-child a { color: var(--text); }

/* ----- 2. Layout : galerie | résumé ----- */
.woocommerce div.product,
.woocommerce div.product.single-product-wrap,
body.single-product .single-product-wrap {
	display: grid !important;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	gap: 30px;
	max-width: var(--container);
	margin: 0 auto 64px !important;
	padding: 0;
	align-items: start;
	float: none !important;
	box-sizing: border-box;
}
.woocommerce div.product .woocommerce-product-gallery,
.woocommerce div.product div.images,
.woocommerce div.product .summary,
.woocommerce div.product div.summary {
	float: none !important;
	width: auto !important;
	max-width: 100% !important;
	margin: 0 !important;
}
.woocommerce div.product .woocommerce-product-gallery { grid-column: 1; min-width: 0; }
.woocommerce div.product .summary { grid-column: 2; min-width: 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells,
.woocommerce div.product > .sp-trust,
body.single-product .single-product-wrap > .sp-trust {
	grid-column: 1 / -1;
}
/* Bascule mobile/tablette : grille 1 colonne dès 1024px et plus en dessous.
   Sélecteurs renforcés (html body, plusieurs combinaisons) pour battre
   n'importe quelle règle plugin WC qui forcerait le 2-cols. */
@media (max-width: 1024px) {
	html body.single-product .woocommerce div.product,
	html body.single-product .woocommerce div.product.single-product-wrap,
	html body.single-product div.product.single-product-wrap,
	html body.single-product .single-product-wrap,
	html body .woocommerce div.product,
	.woocommerce div.product,
	.woocommerce div.product.single-product-wrap,
	body.single-product .single-product-wrap {
		display: grid !important;
		grid-template-columns: 1fr !important;
		grid-template-rows: auto !important;
		gap: 24px !important;
		padding: 0 !important;
		margin: 16px auto 40px !important;
	}
	/* Galerie + résumé reprennent la pleine largeur de la colonne unique */
	html body.single-product .woocommerce div.product .woocommerce-product-gallery,
	html body.single-product .woocommerce div.product .summary,
	.woocommerce div.product .woocommerce-product-gallery,
	.woocommerce div.product .summary {
		grid-column: 1 / -1 !important;
		width: 100% !important;
		max-width: 100% !important;
	}
}
@media (max-width: 768px) {
	html body.single-product .woocommerce div.product,
	html body.single-product .single-product-wrap,
	.woocommerce div.product,
	.woocommerce div.product.single-product-wrap,
	body.single-product .single-product-wrap {
		gap: 18px !important;
		padding: 0 !important;
		margin: 12px auto 32px !important;
	}
}
@media (max-width: 480px) {
	html body.single-product .woocommerce div.product,
	html body.single-product .single-product-wrap,
	.woocommerce div.product,
	.woocommerce div.product.single-product-wrap,
	body.single-product .single-product-wrap {
		gap: 14px !important;
		padding: 0 !important;
		margin: 8px auto 24px !important;
	}
}

/* ----- 3. Galerie d'images (calé sur les cards catalogue) ----- */
.single-product .woocommerce-product-gallery {
	/* Force la visibilité même si le JS WC ne s'initialise pas */
	opacity: 1 !important;
	background: var(--bg-2);
	border: 1px solid var(--line);
	border-radius: 6px;
	padding: 0;
	max-width: 640px;
	overflow: hidden;
}

/* Image principale : hauteur fixe en pixels (dimensions stables dès le 1er
   render → flexslider calcule correctement les slides). Sur desktop large,
   wrapper = 640×640 carré strict (taille d'origine de l'image). */
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
	margin: 0 !important;
	position: relative !important;
	width: 100%;
	height: clamp(380px, 50vw, 640px);
	background-color: #1a1a1a;
	background-image: repeating-linear-gradient(45deg, rgba(212, 168, 75, 0.06) 0 8px, transparent 8px 16px);
	overflow: hidden;
	box-sizing: border-box;
}
/* Sans flexslider : seul le premier slide visible. */
.single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:not(:first-child) {
	display: none;
}

/* La hauteur est dictée par aspect-ratio sur le wrapper.
   On la propage sur la chaîne (sans !important pour laisser flexslider override
   la LARGEUR via inline styles — c'est crucial pour que les slides défilent). */
.single-product .woocommerce-product-gallery .flex-viewport { height: 100%; }
.single-product .woocommerce-product-gallery ul.slides {
	height: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}
.single-product .woocommerce-product-gallery ul.slides > li {
	height: 100%;
	margin: 0;
	padding: 0;
	background: transparent;
}
.single-product .woocommerce-product-gallery ul.slides > li::before { display: none; }
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image > a {
	display: block;
	height: 100%;
	margin: 0;
}
/* Image en cover — width/height 100% du slide, slides carrés donc pas de crop.
   Pas de transform/transition au hover : ça crée un conflit avec l'animation
   de fermeture PhotoSwipe et laisse un résidu visuel doublé sur les images
   PNG transparentes (le close anim place un clone "thumbnail proxy" pendant
   que le hover scale anime l'original → deux couches PNG superposées). */
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	max-height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	margin: 0 !important;
	background: transparent;
}

/* Filet de sécu : si le navigateur garde le conteneur PhotoSwipe en block
   après close (résidu d'animation), on le force off. Le composant le repasse
   à block en `pswp--open` lors de l'ouverture suivante. */
.pswp:not(.pswp--open):not(.pswp--visible) {
	display: none !important;
	visibility: hidden !important;
}

/* Trigger zoom (loupe WC) */
/* La galerie WC + jquery-zoom créent un .zoomContainer (position absolute,
   z-index 998 par défaut) qui passe AU-DESSUS du sticky header (z-index 50).
   On la ramène sous le header avec un z-index très bas. */
.zoomContainer,
.single-product .zoomContainer,
.single-product .woocommerce-product-gallery .zoomWindow { z-index: 5 !important; }
/* === Bouton loupe galerie produit — simple, fond charte site, loupe blanche ===
   WooCommerce core force background:#fff + ::before/::after avec borders #000.
   On annule tout ça avec !important pour gagner sur le bundle WC chargé ailleurs. */
.single-product .woocommerce-product-gallery__trigger,
.woocommerce .woocommerce-product-gallery__trigger,
a.woocommerce-product-gallery__trigger {
	position: absolute !important;
	top: 16px !important;
	right: 16px !important;
	z-index: 4 !important;
	width: 40px !important;
	height: 40px !important;
	padding: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: var(--bg-1, #1a1a1a) !important;
	border: 0 !important;
	border-radius: 999px !important;
	color: #fff !important;
	text-decoration: none !important;
	text-indent: 0 !important;
	font-size: 0 !important;
	line-height: 0 !important;
	transition: background .2s ease, transform .2s ease;
}
.woocommerce-product-gallery__trigger > span,
.woocommerce-product-gallery__trigger span[aria-hidden="true"] {
	display: none !important;
}
/* Annule les ::before / ::after natifs WC (cercle noir + manche noir) */
.woocommerce-product-gallery__trigger::after {
	content: none !important;
	display: none !important;
}
.single-product .woocommerce-product-gallery__trigger::before,
.woocommerce .woocommerce-product-gallery__trigger::before,
a.woocommerce-product-gallery__trigger::before {
	content: "" !important;
	position: static !important;
	left: auto !important;
	top: auto !important;
	width: 18px !important;
	height: 18px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: currentColor !important;
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><line x1='21' y1='21' x2='16.65' y2='16.65'/></svg>") center / contain no-repeat !important;
	        mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><line x1='21' y1='21' x2='16.65' y2='16.65'/></svg>") center / contain no-repeat !important;
}
.single-product .woocommerce-product-gallery__trigger:hover,
.woocommerce .woocommerce-product-gallery__trigger:hover {
	background: var(--bg-1, #1a1a1a) !important;
}
/* Au hover, la loupe prend le dégradé or de la charte (boutons, accents). */
.single-product .woocommerce-product-gallery__trigger:hover::before,
.woocommerce .woocommerce-product-gallery__trigger:hover::before,
a.woocommerce-product-gallery__trigger:hover::before {
	background: linear-gradient(135deg, #e2cb97 4%, #a88659 100%) !important;
}
.single-product .woocommerce-product-gallery__trigger:active,
.woocommerce .woocommerce-product-gallery__trigger:active { transform: scale(0.96); }
.single-product .woocommerce-product-gallery__trigger:focus-visible,
.woocommerce .woocommerce-product-gallery__trigger:focus-visible {
	outline: 2px solid var(--gold, #d4a648) !important;
	outline-offset: 2px;
}
/* Image cliquable → curseur zoom natif */
.single-product .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery__image a,
.single-product .woocommerce-product-gallery__image img { cursor: zoom-in; }

/* Miniatures sous l'image — flexslider colle un <ol> en position absolute par défaut,
   on force la mise dans le flux + grille fluide qui ne sort jamais du cadre. */
.single-product .woocommerce-product-gallery .flex-control-thumbs,
.single-product .woocommerce-product-gallery .flex-control-nav {
	position: static !important;
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
	gap: 8px;
	margin: 0 !important;
	padding: 12px !important;
	list-style: none;
	background: var(--bg-2);
	width: 100%;
	box-sizing: border-box;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs li,
.single-product .woocommerce-product-gallery .flex-control-nav li {
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	background: transparent !important;
	border: 0 !important;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs li::before,
.single-product .woocommerce-product-gallery .flex-control-nav li::before { display: none !important; }
.single-product .woocommerce-product-gallery .flex-control-thumbs img,
.single-product .woocommerce-product-gallery .flex-control-nav img {
	width: 100%;
	aspect-ratio: 1 / 1;
	height: auto;
	object-fit: cover;
	cursor: pointer;
	border: 2px solid transparent;
	border-radius: 4px;
	background-color: #1a1a1a;
	background-image: repeating-linear-gradient(45deg, rgba(212, 168, 75, 0.06) 0 8px, transparent 8px 16px);
	opacity: 0.7;
	transition: opacity .2s ease, border-color .2s ease, transform .2s ease;
	display: block;
	margin: 0 !important;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs img:hover,
.single-product .woocommerce-product-gallery .flex-control-nav img:hover {
	opacity: 1;
	transform: translateY(-1px);
}
.single-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.single-product .woocommerce-product-gallery .flex-control-nav img.flex-active {
	opacity: 1;
	border-color: var(--gold);
	box-shadow: 0 2px 10px rgba(212, 168, 75, 0.25);
}

/* Pastille -% sur la galerie (cohérent .badge--sale du loop) */
.single-product .onsale {
	position: absolute; z-index: 5;
	top: 12px; left: 12px;
	background: #d33b3b;
	color: #fff;
	font-family: var(--font-display);
	font-size: 11px; font-weight: 700;
	padding: 5px 10px;
	border-radius: 4px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1;
	box-shadow: 0 2px 10px rgba(211, 59, 59, 0.35);
}

/* ----- 4. Résumé (colonne droite) ----- */
.single-product .summary { display: flex; flex-direction: column; gap: 22px; padding: 0; }
.single-product .summary > * { margin: 0; }

/* Pills CBD / Culture (cohérent avec .product__pills du loop) */
.sp-pills,
.single-product .product__pills { margin: 0; justify-content: flex-start; }

/* Titre — typo cohérente avec les cards (display + spacing positif léger) */
.single-product .product_title {
	font-family: var(--font-display);
	font-weight: 600;
	color: var(--text);
	font-size: clamp(17px, 1.6vw, 23px);
	line-height: 1.2;
	letter-spacing: 0.01em;
	text-transform: none;
}

/* Eyebrow catégorie au-dessus du titre (cohérent .product__cat des cards) */
.single-product__cat {
	font-family: var(--font-mono);
	font-size: 13px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gold);
	margin: 0 0 4px;
}

/* Étoiles + nombre d'avis */
.single-product .woocommerce-product-rating {
	display: flex; align-items: center; gap: 10px;
	font-size: 13px;
}
.single-product .woocommerce-product-rating .star-rating { color: var(--gold); }
.single-product .woocommerce-product-rating .woocommerce-review-link {
	color: var(--text-mute); text-decoration: none;
	transition: color .2s ease;
}
.single-product .woocommerce-product-rating .woocommerce-review-link:hover { color: var(--gold); }

/* Suffixe "/g" ou "/ml" injecté à côté du prix unitaire sur la fiche produit
   (cohérent avec l'affichage des cards : "À partir de 4,90 €/g"). */
.single-product .summary > .price .cbdco-price-unit,
.single-product .single_variation_wrap .woocommerce-variation-price .cbdco-price-unit {
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 500;
	color: var(--text-mute);
	margin-left: 2px;
	letter-spacing: 0;
	-webkit-text-fill-color: currentColor;
	background: transparent;
}

/* Prix range principal "à partir de X €" — préfixe ajouté en CSS,
   séparateur tiret + prix max retirés (on n'affiche que le min via JS hook server). */
.single-product .summary > .price,
.single-product .single_variation_wrap .woocommerce-variation-price {
	display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px;
	padding: 14px 0;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 22px;
	line-height: 1.1;
	letter-spacing: 0;
}
/* Prix actuel en blanc sur les fiches produit (couvre le prix simple, le prix
   remisé <ins> et le prix range variable). Le /gr reste en gris muté (suffixe). */
.single-product .summary > .price .woocommerce-Price-amount,
.single-product .single_variation_wrap .woocommerce-variation-price .woocommerce-Price-amount {
	background: transparent;
	background-image: none;
	-webkit-background-clip: border-box;
	background-clip: border-box;
	-webkit-text-fill-color: #fff;
	color: #fff !important;
	text-decoration: none;
}
.single-product .summary > .price .woocommerce-Price-amount *,
.single-product .single_variation_wrap .woocommerce-variation-price .woocommerce-Price-amount * {
	background: transparent;
	-webkit-text-fill-color: inherit;
	color: inherit !important;
	text-decoration: none;
}
.single-product .summary > .price ins,
.single-product .single_variation_wrap .woocommerce-variation-price ins {
	background: transparent;
	text-decoration: none;
}
/* Préfixe "À partir de" à CÔTÉ du prix le plus faible (même ligne) */
.single-product .product-type-variable .summary > .price::before {
	content: "À partir de";
	font-family: var(--font-mono);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--text-mute) !important;
	margin-right: 6px;
	align-self: center;
}
/* Prix de la variation sélectionnée : on le CACHE — il sera injecté dans le bouton ATC */
.single-product .single_variation_wrap .woocommerce-variation-price { display: none !important; }
/* Prix barré : gris clair (pas trop foncé sur fond noir), placé APRÈS le prix remisé.
   IMPORTANT : on neutralise explicitement le dégradé hérité de .woocommerce-Price-amount. */
.single-product .summary > .price del,
.single-product .summary > .price del *,
.single-product .summary > .price del .woocommerce-Price-amount,
.single-product .summary > .price del .woocommerce-Price-amount *,
.single-product .single_variation_wrap .woocommerce-variation-price del,
.single-product .single_variation_wrap .woocommerce-variation-price del *,
.single-product .single_variation_wrap .woocommerce-variation-price del .woocommerce-Price-amount,
.single-product .single_variation_wrap .woocommerce-variation-price del .woocommerce-Price-amount * {
	background: transparent !important;
	background-image: none !important;
	-webkit-text-fill-color: var(--text-dim) !important;
	color: var(--text-dim) !important;
	font-size: 18px;
	font-weight: 500;
	text-decoration: none !important;
	opacity: 1;
}
/* Ordre visuel : prix barré (del) AVANT prix remisé (ins) — convention WC standard */
.single-product .summary > .price del { order: 1; margin-right: 6px; margin-left: 0; }
.single-product .summary > .price ins { order: 2; }
.single-product .summary > .price .screen-reader-text { order: 3; }
.single-product .summary > .price::before { order: 0; }

/* Stock — masqué entièrement sur la fiche (info "X en stock" non souhaitée).
   La rupture éventuelle est gérée par le bouton ATC désactivé + le badge case OOS. */
.single-product .stock,
.single-product .summary .stock,
.single-product .single_variation_wrap .stock,
.single-product p.stock { display: none !important; }

/* Description courte — blanc, weight régulier (neutralise tout strong/b dans le contenu) */
.single-product .woocommerce-product-details__short-description,
.single-product .woocommerce-product-details__short-description p,
.single-product .woocommerce-product-details__short-description * {
	color: var(--text) !important;
	font-weight: 400 !important;
}
.single-product .woocommerce-product-details__short-description {
	font-size: 14.5px;
	line-height: 1.7;
	margin-bottom: 10px;
}
.single-product .woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }

/* ----- 5. Sélecteur grille de variations ----- */
.cbdco-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin: -16px 0 13px;
}
@media (max-width: 600px) {
	.cbdco-grid { grid-template-columns: repeat(2, 1fr); }
}
/* Cases : esthétique alignée sur le sélecteur de grammage des cards catégorie
   (bordure dorée fine, fond bg-3, font-mono, radius 4px, hover gold + subtle glow) */
.cbdco-cell {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 12px 12px 10px;
	min-height: 92px;
	background:
		linear-gradient(var(--bg-3), var(--bg-3)) padding-box,
		var(--btn-bg) border-box;
	color: var(--text);
	border: 1px solid transparent;
	border-radius: 4px;
	font-family: var(--font-mono);
	cursor: pointer;
	text-align: left;
	transition: all .2s ease;
	overflow: visible;
}
.cbdco-cell:not(.is-active):not(.is-oos):hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 14px rgba(212, 168, 75, 0.22);
}
.cbdco-cell.is-active {
	background: var(--btn-bg);
	border-color: var(--gold);
	color: #1a1208;
	box-shadow: 0 4px 14px rgba(212, 168, 75, 0.30);
}
.cbdco-cell.is-oos {
	opacity: 0.4;
	cursor: not-allowed;
	pointer-events: none;
}
.cbdco-cell.is-best { padding-top: 16px; }

.cbdco-cell__row--top {
	display: flex; align-items: baseline; justify-content: space-between;
	gap: 8px; width: 100%;
}
.cbdco-cell__weight {
	font-family: var(--font-display);
	font-size: 15px; font-weight: 500;
	color: var(--text);
	letter-spacing: 0.06em;
	line-height: 1;
	text-transform: uppercase;
}
.cbdco-cell.is-active .cbdco-cell__weight { color: #1a1208; }
/* Prix barré : positionné en absolute, à droite, JUSTE EN DESSOUS du badge -% */
.cbdco-cell__regular {
	position: absolute;
	top: 30px;
	right: 10px;
	font-family: var(--font-mono);
	font-size: 11px; font-weight: 400;
	color: var(--text-dim);
	text-decoration: line-through;
	letter-spacing: 0.04em;
	line-height: 1.1;
	white-space: nowrap;
	z-index: 1;
}
.cbdco-cell.is-active .cbdco-cell__regular { color: rgba(26, 18, 8, 0.7); }
.cbdco-cell__regular .amount,
.cbdco-cell__regular bdi { color: inherit; text-decoration: inherit; }
.cbdco-cell__price {
	font-family: var(--font-display);
	font-size: 16px; font-weight: 500;
	background: var(--btn-bg);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
	letter-spacing: 0.02em;
	line-height: 1.1;
	white-space: nowrap;
}
.cbdco-cell__price *,
.cbdco-cell__price .amount,
.cbdco-cell__price bdi {
	background: transparent;
	-webkit-text-fill-color: inherit;
	color: inherit;
}
/* Sur case active (fond doré), on bascule en sombre lisible — on neutralise le dégradé */
.cbdco-cell.is-active .cbdco-cell__price {
	background: transparent;
	-webkit-text-fill-color: #1a1208;
	color: #1a1208;
}
.cbdco-cell__ppg {
	margin-top: auto;
	font-family: var(--font-mono);
	font-size: 10.5px; font-weight: 400;
	color: var(--text-mute);
	letter-spacing: 0.06em;
	white-space: nowrap;
}
.cbdco-cell.is-active .cbdco-cell__ppg { color: rgba(26, 18, 8, 0.7); }
.cbdco-cell__stock {
	display: inline-block;
	margin-top: 4px;
	font-size: 11px; font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #d77a6a;
}
.cbdco-cell__badge {
	position: absolute;
	top: -10px; left: 50%;
	transform: translateX(-50%);
	background: linear-gradient(135deg, #4a7a3e 0%, #2f5a2a 100%);
	color: #fff;
	font-size: 10.5px; font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 999px;
	line-height: 1;
	white-space: nowrap;
	box-shadow: 0 2px 8px rgba(74, 122, 62, 0.45);
}
.cbdco-cell__off {
	position: absolute;
	top: 8px; right: 8px;
	font-size: 10px; font-weight: 600;
	color: #d77a6a;
	background: rgba(196, 82, 63, 0.14);
	border: 1px solid rgba(196, 82, 63, 0.40);
	padding: 2px 6px;
	border-radius: 999px;
	line-height: 1;
}
/* Sur case active (fond doré), bascule en sombre pour rester lisible */
.cbdco-cell.is-active .cbdco-cell__off {
	background: rgba(26, 18, 8, 0.85);
	color: #fff;
	border-color: transparent;
}

/* ----- 6. Form cart : quantité + bouton ATC SIDE BY SIDE ----- */
.woocommerce div.product form.cart { margin-bottom: 0em; }
.single-product form.cart {
	display: flex; flex-direction: column; gap: 14px;
	margin: 8px 0 4px;
	padding: 0;
	background: transparent;
	border: 0;
}
.single-product form.cart .variations { display: none !important; }
.single-product form.cart .single_variation_wrap .single_variation { display: none; }

/* Le wrapper "qty + ATC" :
   - produit simple : .quantity et le bouton sont enfants directs du form.
   - produit variable : ils sont dans .woocommerce-variation-add-to-cart.
   On garde form.cart en column et on met une flex row uniquement sur le wrapper
   qui contient les deux contrôles. Pour le produit simple on s'appuie sur
   form.cart:not(.variations_form). */
.single-product form.cart:not(.variations_form) {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 12px;
}
/* WC ajoute ::before/::after en clearfix (display: table) pour son ancien
   layout en float. En flex ils deviennent des items vides → le `gap` les
   compte → fausses marges à gauche de la quantité et à droite du bouton.
   On les neutralise. */
.woocommerce div.product form.cart::before,
.woocommerce div.product form.cart::after,
.single-product form.cart::before,
.single-product form.cart::after { content: none !important; display: none !important; }
.single-product form.cart .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 12px;
	width: 100%;
}

.single-product form.cart .quantity,
.woocommerce div.product form.cart div.quantity {
	display: inline-flex; align-items: stretch;
	border: 1px solid var(--line);
	border-radius: 6px;
	overflow: hidden;
	background: var(--card);
	width: auto;
	flex: 0 0 auto;
	float: none !important;
	margin: 0 !important;
}
.single-product form.cart .quantity input.qty {
	width: 64px;
	background: transparent;
	border: 0;
	color: var(--text);
	padding: 0 10px;
	font-size: 16px; font-weight: 700;
	text-align: center;
	height: 52px;
	color-scheme: dark;
	accent-color: var(--gold);
	-moz-appearance: textfield;
	appearance: textfield;
}
.single-product form.cart .quantity input.qty:focus { outline: none; }
/* Masque les spinners natifs (Windows / Chrome) — on ajoute nos propres +/- via JS */
.single-product form.cart .quantity input.qty::-webkit-outer-spin-button,
.single-product form.cart .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	appearance: none;
	margin: 0;
}
/* Boutons +/- custom : injectés par JS dans le wrapper .quantity */
.single-product form.cart .quantity .qty-btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 38px;
	background: transparent;
	border: 0;
	color: var(--text-mute);
	font-size: 18px; font-weight: 700;
	cursor: pointer;
	transition: all .15s ease;
	padding: 0;
}
.single-product form.cart .quantity .qty-btn:hover {
	background: rgba(212, 168, 75, 0.10);
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
}
.single-product form.cart .quantity .qty-btn:active { transform: scale(0.92); }
.single-product form.cart .quantity .qty-btn--minus { border-right: 1px solid var(--line); }
.single-product form.cart .quantity .qty-btn--plus { border-left: 1px solid var(--line); }

.single-product form.cart .single_add_to_cart_button {
	position: relative;
	overflow: hidden;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 14px;
	flex: 1 1 auto;
	min-width: 0;
	min-height: 52px;
	background: var(--btn-bg) !important;
	color: #1a1208 !important;
	border: 0;
	padding: 14px 18px;
	font-family: var(--font-body);
	font-size: 14px; font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: none;
	border-radius: 6px;
	cursor: pointer;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
	box-shadow: 0 4px 14px rgba(212, 168, 75, 0.25);
}
/* Effet de VAGUE (shine sweep) — barre lumineuse qui traverse le bouton.
   Une fois une variation sélectionnée (.is-ready), l'animation tourne en boucle
   pour signaler que le bouton est prêt à être cliqué. */
.single-product form.cart .single_add_to_cart_button::after {
	content: "";
	position: absolute;
	top: 0; left: -75%;
	width: 50%; height: 100%;
	background: linear-gradient(
		110deg,
		transparent 0%,
		rgba(255, 255, 255, 0.55) 50%,
		transparent 100%
	);
	transform: skewX(-22deg);
	pointer-events: none;
	opacity: 0;
}
/* Shine continu une fois la variation sélectionnée (cycle 2.6s avec pause). */
.single-product form.cart .single_add_to_cart_button.is-ready::after {
	animation: cbdco-atc-shine 2.6s cubic-bezier(.4, 0, .2, 1) infinite;
}
/* Au survol, on accélère légèrement pour donner un feedback supplémentaire. */
.single-product form.cart .single_add_to_cart_button.is-ready:hover::after {
	animation-duration: 1.4s;
}
@keyframes cbdco-atc-shine {
	0%   { left: -75%;  opacity: 0; }
	8%   { opacity: 1; }
	30%  { left: 175%;  opacity: 1; }
	31%  { opacity: 0; }
	100% { left: 175%;  opacity: 0; }
}
/* Le label/prix doivent rester au-dessus du shine */
.single-product .atc-label,
.single-product .atc-prices { position: relative; z-index: 1; }
.single-product form.cart .single_add_to_cart_button::before { z-index: 1; }
/* Label + prix injectés en JS dans le bouton ATC (cohérent .card-cta du loop) */
.single-product .atc-label {
	display: inline-flex; align-items: center; gap: 10px;
	font-weight: 600;
}
.single-product .atc-prices {
	display: inline-flex; align-items: baseline; gap: 6px;
}
.single-product .atc-regular {
	color: rgba(26, 18, 8, 0.55);
	text-decoration: line-through;
	font-size: 12px; font-weight: 500;
}
.single-product .atc-price {
	font-size: 15px; font-weight: 700;
}
.single-product form.cart .single_add_to_cart_button:hover {
	background: var(--btn-bg-hover) !important;
	transform: translateY(-1px);
	box-shadow: 0 8px 22px rgba(212, 168, 75, 0.45);
	color: #1a1208 !important;
}
/* État "is-ready" : variation sélectionnée → légèrement plus saturé/glow */
.single-product form.cart .single_add_to_cart_button.is-ready {
	box-shadow: 0 6px 20px rgba(212, 168, 75, 0.45);
}
/* Pulse re-déclenché à chaque sélection de variation */
@keyframes cbdco-atc-pulse {
	0%   { transform: scale(1);    box-shadow: 0 4px 14px rgba(212, 168, 75, 0.25); }
	30%  { transform: scale(1.035); box-shadow: 0 10px 28px rgba(212, 168, 75, 0.65); }
	100% { transform: scale(1);    box-shadow: 0 6px 20px rgba(212, 168, 75, 0.45); }
}
.single-product form.cart .single_add_to_cart_button.atc-pulse {
	animation: cbdco-atc-pulse .55s cubic-bezier(.34, 1.4, .64, 1);
}
.single-product form.cart .single_add_to_cart_button::before {
	content: "";
	width: 18px; height: 18px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z'/><line x1='3' y1='6' x2='21' y2='6'/><path d='M16 10a4 4 0 0 1-8 0'/></svg>") center / contain no-repeat;
	        mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z'/><line x1='3' y1='6' x2='21' y2='6'/><path d='M16 10a4 4 0 0 1-8 0'/></svg>") center / contain no-repeat;
	flex-shrink: 0;
}
.single-product form.cart .reset_variations {
	display: inline-block;
	margin-top: 4px;
	font-size: 12px;
	color: var(--text-mute);
	text-decoration: underline;
}

/* ----- 7. Bloc confiance (4 picto) — PLEINE LARGEUR, juste avant la description ----- */
.sp-trust {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	margin: 28px 0 24px;
	padding: 0;
	list-style: none;
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 12px;
	width: 100%;
	clear: both;
	position: relative;
	overflow: hidden;
}
.sp-trust::before {
	content: '';
	position: absolute;
	top: 0; left: -40%;
	width: 40%;
	height: 100%;
	background: linear-gradient(90deg, transparent 0%, rgba(226, 203, 151, 0.10) 45%, rgba(226, 203, 151, 0.20) 50%, rgba(226, 203, 151, 0.10) 55%, transparent 100%);
	pointer-events: none;
	transform: skewX(-18deg);
	animation: cbdco-sheen 8s 2s ease-in-out infinite;
	z-index: 0;
}
.sp-trust__item { position: relative; z-index: 1; }
@media (max-width: 720px) {
	.sp-trust { grid-template-columns: repeat(2, 1fr); }
}
.sp-trust__item {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 18px 16px;
	text-align: left;
	border-right: 1px solid var(--line);
}
.sp-trust__item:last-child { border-right: 0; }
@media (max-width: 720px) {
	.sp-trust__item:nth-child(2n) { border-right: 0; }
	.sp-trust__item:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}
.sp-trust__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px;
	flex-shrink: 0;
	border-radius: 50%;
	background: var(--btn-bg);
	border: 1px solid var(--gold);
	color: #1a1208;
	box-shadow: 0 2px 10px rgba(212, 168, 75, 0.30);
}
.sp-trust__label {
	font-size: 13px; font-weight: 600;
	color: var(--text);
	letter-spacing: 0;
	line-height: 1.3;
}

/* ----- 7b. ETA livraison (sous le bouton ATC) ----- */
.single-product .summary > .sp-eta,
.sp-eta {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	padding: 0;
	margin: 4px 0 18px;
	background: transparent;
	border: 0;
	border-radius: 0;
	font-size: 13px;
	color: var(--text);
}
.sp-eta__icon {
	display: inline-block;
	width: 22px; height: 22px;
	flex-shrink: 0;
	background: var(--gold-gradient);
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M16.5 9.4 7.55 4.24'/><path d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/><polyline points='3.27 6.96 12 12.01 20.73 6.96'/><line x1='12' y1='22.08' x2='12' y2='12'/></svg>") center / contain no-repeat;
	        mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M16.5 9.4 7.55 4.24'/><path d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/><polyline points='3.27 6.96 12 12.01 20.73 6.96'/><line x1='12' y1='22.08' x2='12' y2='12'/></svg>") center / contain no-repeat;
	border: 0;
}
.sp-eta__icon svg { display: none; }
.sp-eta__text { flex: 1 1 auto; line-height: 1.4; color: var(--text); }
.sp-eta__text strong {
	background: transparent;
	-webkit-background-clip: border-box;
	background-clip: border-box;
	-webkit-text-fill-color: #fff;
	color: #fff;
	font-weight: 600;
	letter-spacing: 0.01em;
}
.sp-eta__link {
	display: inline-flex; align-items: center; gap: 4px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #fff;
	-webkit-text-fill-color: #fff;
	font-size: 12px;
	font-weight: 500;
	cursor: pointer;
	transition: text-decoration-color .2s ease;
	white-space: nowrap;
	text-decoration: underline;
	text-decoration-color: rgba(255, 255, 255, 0.5);
	text-underline-offset: 3px;
}
.sp-eta__link:hover,
.sp-eta:hover .sp-eta__link {
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	text-decoration-color: var(--gold);
}
.sp-eta__info-icon {
	display: inline-flex;
	background: transparent;
	color: #fff;
	transition: color .2s ease;
}
.sp-eta__link:hover .sp-eta__info-icon,
.sp-eta:hover .sp-eta__info-icon { color: var(--gold); }

/* ----- 7b-bis. Modale "En savoir plus" (modes de livraison) ----- */
.sp-eta-modal {
	position: fixed;
	top: 50%;
	left: 50%;
	margin: 0;
	padding: 0;
	width: min(560px, calc(100vw - 32px));
	max-height: calc(100vh - 32px);
	color: var(--text);
	background:
		linear-gradient(var(--card), var(--card)) padding-box,
		var(--btn-bg) border-box;
	border: 1.5px solid transparent;
	border-radius: 14px;
	box-shadow: 0 22px 60px rgba(0, 0, 0, 0.55);
	overflow: hidden;
	opacity: 0;
	transform: translate(-50%, -48%);
	will-change: opacity, transform;
	transition:
		opacity .18s ease-out,
		transform .22s cubic-bezier(.2, .8, .25, 1),
		overlay .22s allow-discrete,
		display .22s allow-discrete;
}
.sp-eta-modal[open] {
	opacity: 1;
	transform: translate(-50%, -50%);
}
@starting-style {
	.sp-eta-modal[open] {
		opacity: 0;
		transform: translate(-50%, -46%);
	}
}
.sp-eta-modal::backdrop {
	background: rgba(0, 0, 0, 0);
	transition:
		background .2s ease-out,
		overlay .2s allow-discrete,
		display .2s allow-discrete;
}
.sp-eta-modal[open]::backdrop {
	background: rgba(0, 0, 0, 0.65);
}
@starting-style {
	.sp-eta-modal[open]::backdrop {
		background: rgba(0, 0, 0, 0);
	}
}
.sp-eta-modal:not([open]) { display: none; }
.sp-eta-modal__inner {
	display: flex; flex-direction: column;
	max-height: calc(100vh - 32px);
	overflow-y: auto;
	overscroll-behavior: contain;
}
/* Scrollbar custom dorée pour Webkit */
.sp-eta-modal__inner::-webkit-scrollbar { width: 8px; }
.sp-eta-modal__inner::-webkit-scrollbar-track { background: transparent; }
.sp-eta-modal__inner::-webkit-scrollbar-thumb {
	background: var(--gold-2);
	border-radius: 999px;
	border: 2px solid var(--card);
}
.sp-eta-modal__head {
	display: flex; align-items: center; justify-content: space-between;
	gap: 12px;
	padding: 18px 20px;
	border-bottom: 1px solid var(--gold-2);
	position: sticky; top: 0;
	background: var(--card);
	z-index: 2;
}
.sp-eta-modal__head h3 {
	margin: 0;
	font-family: var(--font-display);
	font-size: 16px; font-weight: 600;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	letter-spacing: 0.02em;
}
.sp-eta-modal__close {
	display: inline-flex; align-items: center; justify-content: center;
	width: 32px; height: 32px;
	background: transparent;
	border: 1px solid var(--line);
	border-radius: 50%;
	color: var(--text-mute);
	cursor: pointer;
	transition: all .15s ease;
}
.sp-eta-modal__close:hover {
	background: rgba(212, 168, 75, 0.10);
	color: var(--gold);
	border-color: var(--gold);
}
.sp-eta-modal__card {
	display: flex;
	gap: 14px;
	padding: 18px 20px;
	border-bottom: 1px solid var(--line);
	transition: background .2s ease;
}
.sp-eta-modal__card:hover { background: rgba(212, 168, 75, 0.04); }
.sp-eta-modal__card:last-child { border-bottom: 0; }
.sp-eta-modal__card-icon {
	flex-shrink: 0;
	width: 44px; height: 44px;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: 50%;
	background: var(--btn-bg);
	border: 1px solid var(--gold);
	color: #1a1208;
	box-shadow: 0 3px 12px rgba(212, 168, 75, 0.35);
}
.sp-eta-modal__card-body { flex: 1 1 auto; min-width: 0; }
.sp-eta-modal__card-title {
	margin: 0 0 6px;
	font-family: var(--font-display);
	font-size: 14px; font-weight: 600;
	color: var(--text);
	line-height: 1.3;
}
.sp-eta-modal__card-desc {
	margin: 0 0 8px;
	font-size: 12.5px;
	color: #fff;
	line-height: 1.5;
}
.sp-eta-modal__note {
	display: block;
	margin-top: 4px;
	font-size: 11px;
	color: #fff;
	font-style: italic;
	opacity: 0.85;
}
.sp-eta-modal__card-eta {
	margin: 0;
	padding: 8px 12px;
	background: var(--bg-3);
	border: 1px solid var(--line);
	border-radius: 6px;
	font-size: 12.5px;
	color: #fff;
	line-height: 1.4;
}
.sp-eta-modal__card-eta strong {
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	font-weight: 600;
}

/* ====================================================================
   sp-eta-modal — REFONTE : style "Trouve ton CBD" (head dark animé +
   body crème + texte noir). Override des règles précédentes ci-dessus.
   S'applique à : modale livraison "En savoir plus", modale avis produit,
   modale CGV checkout (toutes basées sur .sp-eta-modal).
   ==================================================================== */
.sp-eta-modal {
	width: min(640px, calc(100vw - 32px));
	max-height: calc(100vh - 48px);
	background:
		radial-gradient(circle at 0% 0%, rgba(216,183,104,.05) 0%, transparent 40%),
		radial-gradient(circle at 100% 100%, rgba(160,124,44,.04) 0%, transparent 40%),
		linear-gradient(180deg, #ffffff 0%, #fffdf6 100%);
	color: #1a1a1a;
	border: 1px solid rgba(216,183,104,0.2);
	border-radius: 24px;
	box-shadow:
		0 60px 120px rgba(0,0,0,.55),
		0 16px 40px rgba(0,0,0,.2),
		inset 0 1px 0 rgba(255,255,255,.8);
	overflow: hidden;
}
.sp-eta-modal__inner {
	display: flex;
	flex-direction: column;
	max-height: calc(100vh - 48px);
	overflow: hidden;
}
/* Head — gradient sombre animé + particules dorées */
.sp-eta-modal__head {
	background:
		radial-gradient(circle at 20% 50%, rgba(216,183,104,.25) 0%, transparent 50%),
		radial-gradient(circle at 80% 30%, rgba(160,124,44,.2) 0%, transparent 50%),
		linear-gradient(135deg, #0f0d08 0%, #2d2618 50%, #1a1308 100%) !important;
	background-size: 200% 200%, 200% 200%, 100% 100% !important;
	animation: cbdco-cart-head-shift 12s ease-in-out infinite;
	color: #fff !important;
	padding: 18px 22px;
	border-bottom: 1px solid rgba(216,183,104,.18);
	position: relative;
	overflow: hidden;
	flex: 0 0 auto;
}
.sp-eta-modal__head::before,
.sp-eta-modal__head::after {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background-image: radial-gradient(circle, rgba(216,183,104,.55) 1px, transparent 1.5px);
	background-size: 38px 38px;
	opacity: .3;
	animation: cbdco-cart-head-stars 8s linear infinite;
}
.sp-eta-modal__head::after {
	background-size: 22px 22px;
	opacity: .12;
	animation-duration: 14s;
	animation-direction: reverse;
}
.sp-eta-modal__head > * { position: relative; z-index: 1; }
.sp-eta-modal__head h3 {
	margin: 0;
	background: none !important;
	-webkit-background-clip: initial !important;
	background-clip: initial !important;
	-webkit-text-fill-color: #faf3df !important;
	color: #faf3df !important;
	font-family: var(--font-display);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-shadow: 0 1px 0 rgba(0,0,0,.2);
}
.sp-eta-modal__close {
	background: rgba(255,255,255,.08) !important;
	color: #fff !important;
	border: 1px solid rgba(255,255,255,.12) !important;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}
.sp-eta-modal__close svg { stroke: #fff !important; color: #fff !important; }
.sp-eta-modal__close:hover {
	background: rgba(216,183,104,.2) !important;
	border-color: rgba(216,183,104,.4) !important;
	color: #fff !important;
	transform: rotate(90deg) scale(1.05);
}

/* Body global : texte noir sur fond clair (override des cards de la modale livraison) */
.sp-eta-modal__card {
	background: rgba(0,0,0,0.02);
	border-bottom: 1px solid rgba(0,0,0,0.06);
	color: #1a1a1a;
}
.sp-eta-modal__card:hover { background: rgba(216,183,104,0.06); }
.sp-eta-modal__card-icon {
	background: linear-gradient(135deg, #d8b768 0%, #b58c3e 100%);
	border-color: #b58c3e;
	color: #1a1208;
	box-shadow: 0 3px 12px rgba(216,183,104,0.45);
}
.sp-eta-modal__card-title {
	color: #1a1208 !important;
	-webkit-text-fill-color: #1a1208 !important;
}
.sp-eta-modal__card-desc {
	color: #4a3f1f !important;
	-webkit-text-fill-color: #4a3f1f !important;
}
.sp-eta-modal__note {
	color: #6b5523 !important;
	-webkit-text-fill-color: #6b5523 !important;
}
.sp-eta-modal__card-eta {
	background: rgba(216,183,104,0.08);
	border: 1px solid rgba(216,183,104,0.25);
	color: #1a1208 !important;
	-webkit-text-fill-color: #1a1208 !important;
}
.sp-eta-modal__card-eta strong {
	background: none !important;
	-webkit-background-clip: initial !important;
	background-clip: initial !important;
	-webkit-text-fill-color: #8a6720 !important;
	color: #8a6720 !important;
	font-weight: 700;
}

/* Overrides modale avis (cbdco-rev-modal) sur le nouveau body crème :
   les textes "secondaires" (gris clair) deviennent illisibles sur clair → on les
   bascule en sombre. Le head reste sur le gradient noir/or (héritage générique). */
.cbdco-rev-modal .cbdco-rev-field label,
.cbdco-rev-modal .cbdco-rev-field label small,
.cbdco-rev-modal .cbdco-rev-counter,
.cbdco-rev-modal .cbdco-rev-toggle,
.cbdco-rev-modal .cbdco-rev-bigstar-label,
.cbdco-rev-modal .cbdco-rev-hint,
.cbdco-rev-modal .cbdco-rev-mention,
.cbdco-rev-modal .cbdco-rev-progress__steps span {
	color: #4a3f1f !important;
	-webkit-text-fill-color: #4a3f1f !important;
}
.cbdco-rev-modal .cbdco-rev-progress__steps span.is-active {
	color: #8a6720 !important;
	-webkit-text-fill-color: #8a6720 !important;
}
.cbdco-rev-modal .cbdco-rev-progress__bar {
	background: rgba(0,0,0,0.08) !important;
}
.cbdco-rev-modal .cbdco-rev-step__nav {
	border-top-color: rgba(0,0,0,0.08) !important;
}
.cbdco-rev-modal .cbdco-rev-btn--ghost {
	border-color: rgba(0,0,0,0.15) !important;
	color: #8a6720 !important;
}
.cbdco-rev-modal .cbdco-rev-bonus {
	color: #4a3f1f !important;
	background: linear-gradient(135deg, rgba(201,169,97,0.16), rgba(201,169,97,0.06)) !important;
}
.cbdco-rev-modal .cbdco-rev-bonus strong { color: #8a6720 !important; }
.cbdco-rev-modal input[type="text"],
.cbdco-rev-modal input[type="email"],
.cbdco-rev-modal textarea {
	background: #fff !important;
	border: 1px solid rgba(0,0,0,0.12) !important;
	color: #1a1a1a !important;
	-webkit-text-fill-color: #1a1a1a !important;
}
.cbdco-rev-modal input[type="text"]::placeholder,
.cbdco-rev-modal input[type="email"]::placeholder,
.cbdco-rev-modal textarea::placeholder {
	color: rgba(0,0,0,0.4) !important;
}

/* === Mobile fullscreen + safe-area === */
@media (max-width: 600px) {
	.sp-eta-modal,
	.sp-eta-modal[open] {
		position: fixed !important;
		inset: 0 !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		width: 100vw !important;
		max-width: 100vw !important;
		height: 100dvh !important;
		max-height: 100dvh !important;
		min-height: 100dvh !important;
		margin: 0 !important;
		padding: 0 !important;
		border-radius: 0 !important;
		border: none !important;
		transform: none !important;
	}
	.sp-eta-modal[open] {
		animation: cbdco-sp-eta-slide-up .35s cubic-bezier(.2,.9,.3,1.1);
	}
	@keyframes cbdco-sp-eta-slide-up {
		from { transform: translateY(100%); opacity: .8; }
		to   { transform: translateY(0); opacity: 1; }
	}
	.sp-eta-modal__inner {
		max-height: 100dvh;
		height: 100dvh;
	}
	.sp-eta-modal__head {
		padding: calc(22px + env(safe-area-inset-top, 22px)) 22px 18px !important;
		gap: 14px;
		align-items: center;
		min-height: auto;
	}
	.sp-eta-modal__head h3 {
		font-size: 15px !important;
		line-height: 1.25;
		flex: 1 1 auto;
		padding-right: 8px;
	}
	.sp-eta-modal__close {
		width: 36px !important;
		height: 36px !important;
		min-width: 36px !important;
		flex: 0 0 36px !important;
	}
	.sp-eta-modal__card {
		padding: 14px 18px;
		gap: 12px;
	}
	.sp-eta-modal__card-icon { width: 40px; height: 40px; }
	.sp-eta-modal__inner { overflow-y: auto; padding-bottom: env(safe-area-inset-bottom); }
}

/* Meta (catégories, étiquettes, SKU) */
.product_meta {
	font-size: 12px;
	color: var(--text-mute);
	margin: 6px 0 0;
	padding: 14px 0 0;
	border-top: 1px solid var(--line);
	display: flex; flex-direction: column; gap: 4px;
}
.product_meta > span { display: block; }
.product_meta a { color: var(--gold); text-decoration: none; }
.product_meta a:hover { color: var(--gold-soft); text-decoration: underline; }

/* ----- 8. Onglets (Description / Caractéristiques / Avis) ----- */
.woocommerce-tabs.wc-tabs-wrapper,
.woocommerce-tabs {
	margin: -27px 0 64px;
	padding: 0;
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 12px;
	overflow: hidden;
}
.woocommerce-tabs ul.tabs,
.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	gap: 0;
	list-style: none;
	padding: 0 28px;
	margin: 0;
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--line);
	border-radius: 0;
	overflow: hidden;
	overflow-x: auto;
	scrollbar-width: none;
	position: relative;
}
.woocommerce-tabs ul.tabs::-webkit-scrollbar { display: none; }
.woocommerce-tabs ul.tabs li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
}
.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce-tabs ul.tabs li a {
	position: relative;
	display: inline-flex !important;
	align-items: center;
	padding: 18px 26px !important;
	color: var(--text-mute) !important;
	font-family: var(--font-body);
	font-size: 13px; font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0;
	white-space: nowrap;
	transition: color .2s ease;
}
.woocommerce-tabs ul.tabs li a::after {
	content: "";
	position: absolute;
	left: 18px; right: 18px; bottom: -1px;
	height: 2px;
	background: var(--btn-bg);
	border-radius: 2px;
	transform: scaleX(0);
	transform-origin: center;
	transition: transform .25s cubic-bezier(.4, 0, .2, 1);
}
.woocommerce-tabs ul.tabs li a:hover { color: var(--text) !important; }
.woocommerce-tabs ul.tabs li a:hover::after { transform: scaleX(0.5); }
.woocommerce-tabs ul.tabs li.active a { color: var(--gold) !important; background: transparent !important; box-shadow: none !important; }
.woocommerce-tabs ul.tabs li.active a::after { transform: scaleX(1); }
.woocommerce-tabs .panel,
.woocommerce-tabs .wc-tab,
.woocommerce-tabs .woocommerce-Tabs-panel,
.woocommerce div.product .woocommerce-tabs .panel {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 24px 24px !important;
	color: var(--text-mute);
	line-height: 1.75;
	font-size: 14.5px;
	margin: 0 !important;
	box-sizing: border-box;
}
@media (max-width: 720px) {
	.woocommerce-tabs .panel,
	.woocommerce-tabs .wc-tab,
	.woocommerce-tabs .woocommerce-Tabs-panel,
	.woocommerce div.product .woocommerce-tabs .panel {
		padding: 0 16px 20px !important;
	}
}
/* Premier et dernier enfant du panel : on annule leur margin pour coller le contenu
   au padding du panel sans cumul d'espace vertical. */
.woocommerce-tabs .panel > *:first-child { margin-top: 0 !important; }
.woocommerce-tabs .panel > *:last-child  { margin-bottom: 0 !important; }
/* H1/H2/H3 dans la description : réduits drastiquement (le contenu rédactionnel
   utilisateur peut contenir n'importe quel niveau, on neutralise la grosse typo
   globale pour rester proportionnel au texte du panel). */
.woocommerce-tabs .panel h1,
.woocommerce-tabs .panel h2,
.woocommerce-tabs .panel h3,
.woocommerce-tabs .panel h4 {
	font-family: var(--font-display);
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.3;
	color: var(--text);
}
.woocommerce-tabs .panel h1 { font-size: 18px; margin: 24px 0 10px; }
.woocommerce-tabs .panel h2 { font-size: 16px; margin: 20px 0 8px; }
.woocommerce-tabs .panel h3 { font-size: 15px; margin: 18px 0 6px; }
.woocommerce-tabs .panel h4 { font-size: 14px; margin: 16px 0 6px; }
/* Le H2 généré par WC ("Description" / "Caractéristiques" / "Avis") garde
   un traitement spécial : titre or, accent souligné. */
.woocommerce-tabs .panel > h2:first-child {
	font-family: var(--font-display);
	font-size: 16px;
	font-weight: 700;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	margin: 0 0 14px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--line);
	position: relative;
}
.woocommerce-tabs .panel > h2:first-child::after {
	content: "";
	position: absolute;
	left: 0; bottom: -1px;
	width: 40px; height: 2px;
	background: var(--btn-bg);
	border-radius: 2px;
}
.woocommerce-tabs .panel p { color: var(--text-mute); }

/* ----- 8b. Description "Voir plus / Voir moins" ----- */
.sp-desc-collapse {
	position: relative;
	max-height: 320px;
	overflow: hidden;
	transition: max-height .45s cubic-bezier(.4, 0, .2, 1);
}
.sp-desc-collapse::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 110px;
	background: linear-gradient(
		to bottom,
		rgba(31, 31, 31, 0) 0%,
		rgba(31, 31, 31, 0.85) 65%,
		var(--card) 100%
	);
	pointer-events: none;
	transition: opacity .3s ease;
}
.sp-desc-collapse.is-expanded {
	max-height: 9999px;
}
.sp-desc-collapse.is-expanded::after { opacity: 0; }

.sp-desc-toggle {
	display: inline-flex; align-items: center; gap: 8px;
	margin: 5px auto 4px;
	padding: 11px 22px;
	background: var(--btn-bg);
	border: 1px solid var(--gold);
	border-radius: 999px;
	color: #1a1208;
	font-family: var(--font-body);
	font-size: 13px; font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: none;
	cursor: pointer;
	transition: transform .2s ease, box-shadow .2s ease;
	box-shadow: 0 4px 14px rgba(212, 168, 75, 0.30);
}
.sp-desc-toggle:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(212, 168, 75, 0.45);
}
.sp-desc-toggle__arrow {
	display: inline-flex;
	transition: transform .25s ease;
}
.sp-desc-toggle.is-expanded .sp-desc-toggle__arrow {
	transform: rotate(180deg);
}
/* Wrapper de centrage : on transforme le button (display: inline-flex) en bloc centré
   via un petit fix sur le panel — via :has() (largement supporté en 2026). */
.woocommerce-tabs .panel:has(> .sp-desc-toggle) {
	text-align: center;
}
.woocommerce-tabs .panel > .sp-desc-collapse,
.woocommerce-tabs .panel > p,
.woocommerce-tabs .panel > h1,
.woocommerce-tabs .panel > h2,
.woocommerce-tabs .panel > h3,
.woocommerce-tabs .panel > ul,
.woocommerce-tabs .panel > ol {
	text-align: left;
}
.woocommerce-tabs .panel strong { color: var(--text); font-weight: 700; }
.woocommerce-tabs .panel a { color: var(--gold); }
.woocommerce-tabs .panel a:hover { color: var(--gold-soft); text-decoration: underline; }

/* Listes à puces dorées dans les onglets */
.woocommerce-tabs .panel ul,
.woocommerce-Tabs-panel--description ul {
	list-style: none;
	padding: 0;
	margin: 0 0 16px;
}
.woocommerce-tabs .panel ul li,
.woocommerce-Tabs-panel--description ul li {
	position: relative;
	padding-left: 22px;
	margin-bottom: 6px;
	color: var(--text-mute);
}
.woocommerce-tabs .panel ul li::before,
.woocommerce-Tabs-panel--description ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 8px;
	width: 14px; height: 14px;
	background: var(--gold);
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center / contain no-repeat;
	        mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center / contain no-repeat;
	border-radius: 0;
	box-shadow: none;
}

/* Table caractéristiques (sp-specs + WC default shop_attributes) */
.woocommerce-tabs .panel table.sp-specs,
.woocommerce-tabs .panel table.shop_attributes,
table.shop_attributes {
	width: 100%;
	border-collapse: collapse;
	background: transparent;
	border: 1px solid var(--line);
	border-radius: 8px;
	overflow: hidden;
	margin: 0;
}
.sp-specs tr:nth-child(odd),
table.shop_attributes tr:nth-child(odd) { background: var(--bg-1); }
.sp-specs tr:nth-child(even),
table.shop_attributes tr:nth-child(even) { background: var(--card); }
.sp-specs th,
.sp-specs td,
.shop_attributes th,
.shop_attributes td {
	padding: 12px 18px;
	text-align: left;
	font-size: 14px;
	border: 0;
	border-bottom: 1px solid var(--line);
}
.sp-specs tr:last-child th,
.sp-specs tr:last-child td,
.shop_attributes tr:last-child th,
.shop_attributes tr:last-child td { border-bottom: 0; }
.sp-specs th,
.shop_attributes th {
	width: 38%;
	color: var(--text-mute);
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
}
.sp-specs td,
.shop_attributes td {
	color: var(--text);
	font-weight: 600;
	text-align: right;
}
.shop_attributes td p { margin: 0; padding: 0; }

/* ----- 9. Avis clients ----- */
#reviews { color: var(--text-mute); }
#reviews #comments > h2:first-child { display: none; }
.commentlist {
	list-style: none;
	padding: 0; margin: 0 0 24px;
	display: flex; flex-direction: column; gap: 14px;
}
.commentlist li.comment,
.commentlist li.review {
	padding: 16px 18px;
	background: var(--bg-1);
	border: 1px solid var(--line);
	border-radius: 10px;
	list-style: none;
}
.commentlist .comment_container { display: flex; gap: 14px; align-items: flex-start; }
.commentlist .avatar {
	width: 44px; height: 44px;
	border-radius: 50%;
	border: 2px solid var(--line);
	background: var(--bg-3);
	flex-shrink: 0;
}
.commentlist .comment-text { flex: 1; min-width: 0; }
.commentlist .star-rating { color: var(--gold); margin-bottom: 6px; }
.commentlist .meta {
	color: var(--text-mute);
	font-size: 12px;
	margin: 0 0 8px;
}
.commentlist .meta strong { color: var(--text); font-weight: 700; }
.commentlist .description { color: var(--text-mute); font-size: 14px; line-height: 1.6; }
.commentlist .description p:last-child { margin-bottom: 0; }

#review_form_wrapper {
	padding-top: 8px;
	border-top: 1px dashed var(--line);
	margin-top: 16px;
}
#review_form .comment-reply-title {
	font-family: var(--font-display);
	font-weight: 700;
	color: var(--text);
	font-size: 18px;
	display: block;
	margin-bottom: 12px;
}
#review_form p.stars a { color: var(--gold); }
#review_form .form-submit input,
#review_form #submit {
	display: inline-flex; align-items: center;
	background: transparent;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	border: 1px solid var(--gold);
	padding: 12px 20px;
	font-size: 14px; font-weight: 700;
	letter-spacing: 0.02em;
	border-radius: 8px;
	cursor: pointer;
	transition: all .2s ease;
}
#review_form .form-submit input:hover,
#review_form #submit:hover {
	background: var(--gold);
	color: #1a1208;
	box-shadow: 0 4px 14px rgba(212, 168, 75, 0.30);
}
.woocommerce-noreviews {
	color: var(--text-mute);
	font-style: italic;
	margin: 0 0 16px;
}

/* ----- 10. Produits similaires + upsells ----- */
.woocommerce div.product .related,
.woocommerce div.product .upsells {
	margin: -61px auto -29px;
	padding: 0;
	max-width: var(--container);
	width: 100%;
}
.related > h2,
.upsells > h2 {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 16px;
	color: var(--text);
	margin: 0 0 16px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	display: flex; align-items: center; gap: 10px;
}
.related > h2::before,
.upsells > h2::before {
	content: "";
	display: inline-block;
	width: 26px; height: 2px;
	background: var(--gold);
}
/* Grille produits similaires + upsells : 4 colonnes (au lieu des 3 du catalogue),
   même style de carte que la grille produit (hérité de ul.products li.product). */
.woocommerce .related ul.products,
.woocommerce .upsells ul.products,
.related ul.products,
.upsells ul.products {
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 16px !important;
	margin: 0 !important;
}
@media (max-width: 1279px) {
	.woocommerce .related ul.products,
	.woocommerce .upsells ul.products,
	.related ul.products,
	.upsells ul.products { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 900px) {
	.woocommerce .related ul.products,
	.woocommerce .upsells ul.products,
	.related ul.products,
	.upsells ul.products { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 480px) {
	.woocommerce .related ul.products,
	.woocommerce .upsells ul.products,
	.related ul.products,
	.upsells ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 10px !important;
	}
}

/* ----- 11. Adaptations responsive (fiche produit) ----- */
@media (max-width: 1024px) {
	/* Annulation des marges négatives desktop (-61px / -27px) qui faisaient
	   chevaucher les sections dès qu'on quitte le grid 2-colonnes. */
	.woocommerce div.product .related,
	.woocommerce div.product .upsells {
		margin: 24px 0 40px !important;
		padding: 0 !important;
	}
	.woocommerce-tabs.wc-tabs-wrapper,
	.woocommerce-tabs {
		margin: 16px 0 32px !important;
	}
	/* La galerie ne doit pas dépasser la largeur de sa colonne. */
	.single-product .woocommerce-product-gallery {
		max-width: 100% !important;
		width: 100%;
	}
}

@media (max-width: 768px) {
	.single-product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
		height: clamp(280px, 70vw, 460px) !important;
	}
	.single-product .summary { padding: 0 !important; }
	.woocommerce-tabs ul.tabs,
	.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0 12px !important; }
	.woocommerce-tabs ul.tabs li a { padding: 14px 14px !important; font-size: 12px; letter-spacing: 0.05em; }
	.woocommerce-tabs .panel,
	.woocommerce-tabs .wc-tab,
	.woocommerce-tabs .woocommerce-Tabs-panel,
	.woocommerce div.product .woocommerce-tabs .panel { padding: 0 16px 20px !important; }
	.related > h2,
	.upsells > h2 { font-size: 14px !important; }

	/* Bloc confiance : 2 colonnes */
	.sp-trust { grid-template-columns: repeat(2, 1fr) !important; }
	.sp-trust__item { padding: 14px 12px; gap: 10px; }

	/* Form cart : qty + ATC restent côte à côte sur mobile.
	   Quantité = largeur auto (compacte), ATC = flex 1 (prend le reste). */
	.single-product form.cart .woocommerce-variation-add-to-cart {
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: stretch;
		gap: 10px !important;
		width: 100%;
	}
	.single-product form.cart .quantity {
		flex: 0 0 auto !important;
		width: auto !important;
	}
	.single-product form.cart .quantity input.qty { width: 44px !important; }
	.single-product form.cart .quantity .qty-btn { width: 32px !important; }
	.single-product form.cart .single_add_to_cart_button {
		flex: 1 1 auto !important;
		min-width: 0;
	}

	/* ETA livraison : header en ligne, bouton "En savoir plus" en pleine largeur dessous */
	.sp-eta {
		display: grid !important;
		grid-template-columns: auto 1fr;
		gap: 10px 12px;
		padding: 12px 14px;
	}
	.sp-eta__icon { grid-row: 1; grid-column: 1; }
	.sp-eta__text { grid-row: 1; grid-column: 2; font-size: 12.5px; }
	.sp-eta__link {
		grid-row: 2; grid-column: 1 / -1;
		justify-content: center; width: 100%;
	}

	/* H2 onglets first-child plus petit */
	.woocommerce-tabs .panel > h2:first-child { font-size: 14px; }

	/* Variations cellules : 2 colonnes plus serrées */
	.cbdco-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 8px; }
}

@media (max-width: 480px) {
	.single-product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
		height: clamp(240px, 80vw, 360px) !important;
	}
	/* Cellules de variation compactes */
	.cbdco-cell { padding: 10px 8px 8px; min-height: 84px; gap: 4px; }
	.cbdco-cell__weight { font-size: 13px; }
	.cbdco-cell__price { font-size: 14px; }
	.cbdco-cell__regular { font-size: 10px; top: 24px; right: 6px; }
	.cbdco-cell__off { font-size: 9px; padding: 1px 4px; top: 6px; right: 6px; }
	.cbdco-cell__badge { font-size: 9px; padding: 3px 8px; top: -8px; }
	.cbdco-cell__ppg { font-size: 10px; }

	/* Bloc confiance 2 colonnes plus serrées */
	.sp-trust__item { padding: 12px 8px; gap: 8px; }
	.sp-trust__label { font-size: 11.5px; }
	.sp-trust__icon { width: 36px; height: 36px; }

	/* Modale : pleine largeur viewport - 16px */
	.sp-eta-modal {
		width: calc(100vw - 16px) !important;
		max-height: calc(100vh - 16px);
	}
	.sp-eta-modal__head { padding: 14px 16px; }
	.sp-eta-modal__card { padding: 14px 16px; gap: 10px; }
	.sp-eta-modal__card-icon { width: 38px; height: 38px; }

	/* Onglets très compacts */
	.woocommerce-tabs ul.tabs,
	.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0 8px !important; }
	.woocommerce-tabs ul.tabs li a { padding: 12px 10px !important; font-size: 11px !important; letter-spacing: 0.04em; }

	/* Titre H1 produit plus petit */
	.single-product .product_title.entry-title { font-size: 18px; line-height: 1.3; }

	/* Pills + badges plus compacts */
	.product__pills .pill { font-size: 10px; padding: 4px 10px; }
}

/* Anti-débordement horizontal — toujours actif (toutes tailles) */
html, body { overflow-x: clip; max-width: 100%; }
.single-product-wrap,
.woocommerce div.product,
.shop-layout,
.shop-main,
.shop-toolbar { max-width: 100%; min-width: 0; box-sizing: border-box; }

/* === Anti-overflow renforcé sur la fiche produit ===
   Sympôme observé (screenshot iPhone 12 Pro 390px) : titre + texte
   description + bouton ATC clipped à droite, scroll horizontal présent.
   Cause probable : un descendant de `.summary` a un min-content > parent,
   ou un attribut/select WC natif force une largeur. On verrouille la chaîne. */
.single-product .summary,
.single-product .summary > *,
.single-product .summary form.cart,
.single-product .summary form.cart > *,
.single-product .summary .woocommerce-variation-add-to-cart,
.single-product .summary .woocommerce-variation-add-to-cart > * {
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}
/* Texte qui force un long mot insécable (ex: URL, slug long) → on autorise
   la coupure pour ne pas exploser la largeur. */
.single-product .summary .product_title,
.single-product .summary .woocommerce-product-details__short-description,
.single-product .summary .woocommerce-product-details__short-description * {
	overflow-wrap: anywhere;
	word-break: break-word;
}
/* Grille des variations : verrouille au container, jamais déborder */
.cbdco-grid { max-width: 100%; min-width: 0; }
.cbdco-cell { min-width: 0; }
/* Bouton ATC : son contenu inline-flex peut dépasser. Sur < 768 on autorise
   le wrap interne pour que label + prix retombent sur 2 lignes plutôt que
   d'être clipped par overflow:hidden. */
@media (max-width: 768px) {
	.single-product form.cart .single_add_to_cart_button {
		flex-wrap: wrap;
		row-gap: 4px;
		padding-left: 14px !important;
		padding-right: 14px !important;
	}
	.single-product form.cart .single_add_to_cart_button .atc-label,
	.single-product form.cart .single_add_to_cart_button .atc-prices {
		max-width: 100%;
		min-width: 0;
	}
}
.shop-main > *,
.shop-main ul.products,
.shop-main ul.products li.product { max-width: 100%; min-width: 0; box-sizing: border-box; }
.shop-toolbar { flex-wrap: wrap; }
@media (max-width: 480px) {
	/* Tri compact sur très petit écran : iPhone SE & co. */
	.shop-toolbar { justify-content: stretch; }
	.shop-toolbar .woocommerce-ordering { width: 100%; }
	.shop-toolbar .cbdco-cardsel,
	.shop-toolbar .cbdco-cardsel__btn { width: 100%; max-width: 100%; }
	.shop-toolbar .cbdco-cardsel__btn { padding: 10px 32px 10px 12px; font-size: 13px; }

	/* Sélecteur de variation des cards : moins de padding, label aligné à gauche
	   et police plus petite pour que le texte du format tienne sur 1 ligne. */
	ul.products li.product .cbdco-cardsel__btn,
	ul.products li.product .card-variation-select {
		padding: 9px 26px 9px 10px;
		font-size: 11.5px;
	}
	ul.products li.product .cbdco-cardsel__label { text-align: left; }
	ul.products li.product .cbdco-cardsel__caret { right: 8px; }
	/* Liste déroulée : aligné à gauche + police compactée comme le bouton. */
	ul.products li.product .cbdco-cardsel__opt {
		text-align: left;
		font-size: 11.5px;
		padding: 7px 10px;
	}
	/* Bouton "Ajouter" sur mobile : label à gauche, prix empilés (barré au-dessus,
	   actuel en dessous) à droite — gain de largeur, prix barré reste visible.
	   min-height fixe pour que TOUS les boutons (promo ou non) aient la même
	   hauteur dans la grille → align-items: center du bouton centre alors
	   automatiquement le label face au bloc prix dans les deux cas. */
	/* Bouton "Ajouter" mobile — layout ROW : label "AJOUTER" centré à gauche,
	   séparateur vertical, bloc prix à droite (barré rouge à gauche, actuel
	   à droite sur la même ligne, baseline alignée).
	   !important pour être sûr d'override toute règle parasite. */
	ul.products li.product .button,
	ul.products li.product .card-cta,
	ul.products li.product .add_to_cart_button {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		justify-content: space-between !important;
		gap: 8px !important;
		padding: 10px 10px !important;
		font-size: 11.5px !important;
		min-height: 44px !important;
		text-align: left !important;
	}
	ul.products li.product .card-cta .card-cta__label,
	ul.products li.product .button .card-cta__label,
	ul.products li.product .add_to_cart_button .card-cta__label {
		flex: 1 1 0 !important;
		min-width: 0 !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		text-align: center !important;
		font-weight: 700 !important;
		text-transform: uppercase !important;
		line-height: 1.1 !important;
		font-size: 11px !important;
		white-space: nowrap !important;
		margin: 0 !important;
		transform: none !important;
	}
	ul.products li.product .card-cta .card-cta__prices,
	ul.products li.product .button .card-cta__prices,
	ul.products li.product .add_to_cart_button .card-cta__prices {
		flex: 0 0 auto !important;
		display: inline-flex !important;
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		align-items: flex-end !important;
		justify-content: center !important;
		gap: 0 !important;
		padding-left: 10px !important;
		margin-left: 0 !important;
		border-left: 1px solid rgba(26, 18, 8, 0.25) !important;
		line-height: 1.05 !important;
		transform: none !important;
		white-space: nowrap !important;
	}
	ul.products li.product .card-cta .card-cta__regular,
	ul.products li.product .card-cta .card-cta__price,
	ul.products li.product .button .card-cta__regular,
	ul.products li.product .button .card-cta__price {
		white-space: nowrap !important;
	}
	ul.products li.product .card-cta .card-cta__regular:not([style*="none"]) {
		display: block !important;
		font-size: 10.5px !important;
		line-height: 1.05 !important;
		order: 1 !important;
	}
	ul.products li.product .card-cta .card-cta__price {
		display: block !important;
		font-size: 12.5px !important;
		font-weight: 700 !important;
		line-height: 1.05 !important;
		order: 2 !important;
	}
	/* Sur mobile : label court "Ajouter" pour les produits simples (gain de place). */
	.card-cta__label-full { display: none !important; }
	.card-cta__label-short { display: inline !important; }
}
/* Desktop : label complet "Ajouter au panier" */
.card-cta__label-full { display: inline; }
.card-cta__label-short { display: none; }

/* ============================================================
   Bouton "Ajouter" — étend les règles du @media 480 jusqu'à 768px
   pour couvrir tablettes + grands phones, identiques home/cat/suggérés.
   ============================================================ */
@media (min-width: 481px) and (max-width: 768px) {
	ul.products li.product .button,
	ul.products li.product .card-cta,
	ul.products li.product .add_to_cart_button {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		justify-content: space-between !important;
		gap: 8px !important;
		padding: 10px 10px !important;
		font-size: 11.5px !important;
		min-height: 44px !important;
		text-align: left !important;
	}
	ul.products li.product .card-cta .card-cta__label,
	ul.products li.product .button .card-cta__label,
	ul.products li.product .add_to_cart_button .card-cta__label {
		flex: 1 1 0 !important;
		min-width: 0 !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		text-align: center !important;
		font-weight: 700 !important;
		text-transform: uppercase !important;
		line-height: 1.1 !important;
		font-size: 11px !important;
		white-space: nowrap !important;
		margin: 0 !important;
		transform: none !important;
	}
	ul.products li.product .card-cta .card-cta__prices,
	ul.products li.product .button .card-cta__prices,
	ul.products li.product .add_to_cart_button .card-cta__prices {
		flex: 0 0 auto !important;
		display: inline-flex !important;
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		align-items: flex-end !important;
		justify-content: center !important;
		gap: 0 !important;
		padding-left: 10px !important;
		margin-left: 0 !important;
		border-left: 1px solid rgba(26, 18, 8, 0.25) !important;
		line-height: 1.05 !important;
		transform: none !important;
		white-space: nowrap !important;
	}
	ul.products li.product .card-cta .card-cta__regular,
	ul.products li.product .card-cta .card-cta__price,
	ul.products li.product .button .card-cta__regular,
	ul.products li.product .button .card-cta__price {
		white-space: nowrap !important;
	}
	ul.products li.product .card-cta .card-cta__regular:not([style*="none"]) {
		display: block !important;
		font-size: 10.5px !important;
		line-height: 1.05 !important;
		order: 1 !important;
	}
	ul.products li.product .card-cta .card-cta__price {
		display: block !important;
		font-size: 12.5px !important;
		font-weight: 700 !important;
		line-height: 1.05 !important;
		order: 2 !important;
	}
}

/* ============================================================
   Utilitaires
   ============================================================ */
.sr-only, .screen-reader-text { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.alignleft { float: left; margin-right: 16px; }
.alignright { float: right; margin-left: 16px; }
.aligncenter { display: block; margin-inline: auto; }
.alignwide { width: 100%; }

@media (max-width: 768px) {
	.section { padding: 60px 24px; }
	h1 { font-size: 48px; }
	h2 { font-size: 36px; }
}

/* === Empty cart ============================================================ */
.cbdco-empty-cart {
	max-width: var(--container);
	margin: 0 auto;
	padding: 80px 24px;
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 55vh;
}
.cbdco-empty-cart__inner {
	max-width: 480px;
	margin: 0 auto;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
}
.cbdco-empty-cart__icon {
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	opacity: 0.85;
}
.cbdco-empty-cart__title {
	font-family: var(--font-display, 'Inter', sans-serif);
	font-size: 22px;
	font-weight: 400;
	color: var(--text);
	margin: 0;
	letter-spacing: 0.01em;
}
.cbdco-empty-cart__text {
	color: #ffffff;
	font-size: 17px;
	margin: 0;
	line-height: 1.5;
}
.cbdco-empty-cart__cta,
.cbdco-empty-cart__cta:hover,
.cbdco-empty-cart__cta:focus,
.cbdco-empty-cart__cta:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 26px;
	margin-top: 8px;
	border: 1px solid transparent;
	border-radius: 10px;
	background: var(--btn-bg);
	color: #1a1208;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none !important;
	border-bottom: 0 !important;
	box-shadow: 0 4px 14px rgba(201,169,97,0.25);
	transition: filter .15s ease, transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.cbdco-empty-cart__cta:hover,
.cbdco-empty-cart__cta:focus {
	background: var(--btn-bg-hover);
	color: #000;
	transform: translateY(-1px);
	box-shadow: 0 8px 22px rgba(201,169,97,0.45);
}

@media (max-width: 600px) {
	.cbdco-empty-cart { padding: 56px 20px 72px; }
	.cbdco-empty-cart__title { font-size: 19px; }
}

/* === Empty products (catégorie sans produits) ============================== */
.cbdco-empty-products {
	max-width: var(--container);
	margin: 0 auto;
	padding: 80px 24px;
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 55vh;
}
.cbdco-empty-products__inner {
	max-width: 480px;
	margin: 0 auto;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
}
.cbdco-empty-products__icon {
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	opacity: 0.85;
}
.cbdco-empty-products__title {
	font-family: var(--font-display, 'Inter', sans-serif);
	font-size: 22px;
	font-weight: 600;
	color: var(--text);
	margin: 0;
	letter-spacing: 0.01em;
}
.cbdco-empty-products__text {
	color: #ffffff;
	font-size: 15px;
	margin: 0;
	line-height: 1.5;
}
.cbdco-empty-products__cta,
.cbdco-empty-products__cta:hover,
.cbdco-empty-products__cta:focus,
.cbdco-empty-products__cta:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 26px;
	margin-top: 8px;
	border: 1px solid transparent;
	border-radius: 10px;
	background: var(--btn-bg);
	color: #1a1208;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none !important;
	border-bottom: 0 !important;
	box-shadow: 0 4px 14px rgba(201,169,97,0.25);
	transition: filter .15s ease, transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.cbdco-empty-products__cta:hover,
.cbdco-empty-products__cta:focus {
	background: var(--btn-bg-hover);
	color: #000;
	transform: translateY(-1px);
	box-shadow: 0 8px 22px rgba(201,169,97,0.45);
}
@media (max-width: 600px) {
	.cbdco-empty-products { padding: 40px 20px 48px; min-height: 0; }
	.cbdco-empty-products__title { font-size: 22px; }
}

/* === Error pages (404 / 500) — même présentation que panier vide / catégorie vide */
.cbdco-error-page {
	max-width: var(--container);
	margin: 0 auto;
	padding: 80px 24px;
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 55vh;
}
.cbdco-error-page__inner {
	max-width: 480px;
	margin: 0 auto;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
}
.cbdco-error-page__icon {
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	opacity: 0.85;
}
.cbdco-error-page__title {
	font-family: var(--font-display, 'Inter', sans-serif);
	font-size: 22px !important;
	font-weight: 600;
	color: var(--text);
	margin: 0;
	letter-spacing: 0.01em;
}
.cbdco-error-page__text {
	color: #ffffff;
	font-size: 17px;
	margin: 0;
	line-height: 1.5;
}
.cbdco-error-page__cta,
.cbdco-error-page__cta:hover,
.cbdco-error-page__cta:focus,
.cbdco-error-page__cta:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 26px;
	margin-top: 8px;
	border: 1px solid transparent;
	border-radius: 10px;
	background: var(--btn-bg);
	color: #1a1208;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none !important;
	border-bottom: 0 !important;
	box-shadow: 0 4px 14px rgba(201,169,97,0.25);
	transition: filter .15s ease, transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.cbdco-error-page__cta:hover,
.cbdco-error-page__cta:focus {
	background: var(--btn-bg-hover);
	color: #000;
	transform: translateY(-1px);
	box-shadow: 0 8px 22px rgba(201,169,97,0.45);
}
@media (max-width: 600px) {
	.cbdco-error-page { padding: 56px 20px 72px; min-height: 50vh; }
	.cbdco-error-page__title { font-size: 26px; }
}

/* ==========================================================================
   Gradient gold — remplace la couleur unie var(--gold) par le dégradé
   var(--btn-bg) sur les éléments text "or" prominents (titres, accents,
   prix, badges, etc.). Technique : background-clip: text + transparent fill.
   ========================================================================== */
.text-gold,
h4,
.hero__title em,
.site-header__brand .display,
.search-result__price,
.cart-drawer__shipping-msg b,
.shop-sidebar .widget-title {
	background: var(--btn-bg);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
}

/* Exceptions : éléments où le dégradé casserait la lisibilité (drawer panier,
   bouton plein, etc.) — on revient à la couleur unie héritée. */
.cart-drawer .text-gold, .cart-drawer h4,
.btn--primary, .btn--primary * {
	background: none;
	-webkit-background-clip: initial;
	background-clip: initial;
	color: inherit;
	-webkit-text-fill-color: currentColor;
}

/* Bordures or → bordure dégradée via border-image. */
.btn--secondary,
.btn-ghost {
	border: 1px solid transparent;
	border-image: var(--btn-bg) 1;
}
.btn--secondary:hover,
.btn-ghost:hover {
	border-image: var(--btn-bg-hover) 1;
}
/* Texte du bouton ghost en dégradé. */
.btn--secondary,
.btn-ghost {
	background: var(--btn-bg);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
}

/* ==========================================================================
   Age gate — popup vérification d'âge
   ========================================================================== */
.cbdco-agegate {
	position: fixed; inset: 0;
	z-index: 100000;
	display: flex; align-items: center; justify-content: center;
	padding: 24px;
	contain: layout style paint;
}
.cbdco-agegate[hidden] { display: none; }
.cbdco-agegate__backdrop {
	position: absolute; inset: 0;
	background: rgba(0,0,0,0.82);
	opacity: 0;
	transition: opacity .22s ease-out;
	will-change: opacity;
}
.cbdco-agegate.is-open .cbdco-agegate__backdrop { opacity: 1; }

.cbdco-agegate__modal {
	position: relative;
	width: min(440px, 100%);
	background:
		linear-gradient(var(--card, #1f1f1f), var(--card, #1f1f1f)) padding-box,
		var(--btn-bg) border-box;
	border: 1.5px solid transparent;
	border-radius: 18px;
	padding: 36px 32px 28px;
	text-align: center;
	color: var(--text);
	box-shadow: 0 30px 80px rgba(0,0,0,0.6);
	opacity: 0;
	transform: translate3d(0, 14px, 0) scale(.96);
	transition: opacity .22s ease-out, transform .26s cubic-bezier(.2,.8,.25,1);
	will-change: opacity, transform;
}
.cbdco-agegate.is-open .cbdco-agegate__modal {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
}
.cbdco-agegate:not(.is-open) .cbdco-agegate__modal,
.cbdco-agegate:not(.is-open) .cbdco-agegate__backdrop { will-change: auto; }

.cbdco-agegate__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 84px; height: 84px;
	border-radius: 50%;
	background: var(--btn-bg);
	color: #1a1208;
	font-family: var(--font-display, 'Inter', sans-serif);
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -0.02em;
	margin: 0 auto 18px;
	box-shadow: 0 8px 24px rgba(168, 134, 89, 0.4);
}
.cbdco-agegate__icon span { line-height: 1; }

.cbdco-agegate__title {
	margin: 0 0 12px;
	font-family: var(--font-display, 'Inter', sans-serif);
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.01em;
	background: var(--btn-bg);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
}
.cbdco-agegate__message {
	margin: 0 0 24px;
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--text-dim);
}

.cbdco-agegate__actions {
	display: flex; flex-direction: column; gap: 10px;
}
.cbdco-agegate__btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 48px;
	padding: 0 22px;
	border-radius: 10px;
	font-family: var(--font-display, 'Inter', sans-serif);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
	border: 1px solid transparent;
	transition: transform .15s ease, filter .15s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease;
}
.cbdco-agegate__btn--yes {
	background: var(--btn-bg);
	color: #1a1208;
	box-shadow: 0 6px 18px rgba(168, 134, 89, 0.35);
}
.cbdco-agegate__btn--yes:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 24px rgba(168, 134, 89, 0.5);
	filter: brightness(1.05);
}
.cbdco-agegate__btn--no {
	background: transparent;
	color: var(--text-mute, #b0b0b0);
	border-color: rgba(255,255,255,0.12);
}
.cbdco-agegate__btn--no:hover {
	background: rgba(255,255,255,0.04);
	color: var(--text);
	border-color: rgba(255,255,255,0.2);
}

.cbdco-agegate__legal {
	margin: 18px 0 0;
	font-size: 11.5px;
	color: var(--text-mute, #888);
	letter-spacing: 0.02em;
	font-style: italic;
}

@media (max-width: 480px) {
	.cbdco-agegate { padding: 16px; }
	.cbdco-agegate__modal { padding: 28px 22px 22px; border-radius: 14px; }
	.cbdco-agegate__icon { width: 72px; height: 72px; font-size: 24px; }
	.cbdco-agegate__title { font-size: 20px; }
	.cbdco-agegate__message { font-size: 13.5px; }
}

/* Toggle dans l'admin (cbdco-settings). */
.cbdco-toggle { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; user-select: none; }
.cbdco-toggle input[type="checkbox"] { width: 18px; height: 18px; cursor: pointer; }
.cbdco-toggle span { font-size: 14px; color: #1d2327; }

/* ============================================================
   ALIGNEMENT GLOBAL — wrappers de contenu
   ============================================================
   Référence : `.container` (max-width 1500 + padding 24px chaque côté →
   contenu effectif 1452px). On force tous les wrappers qui n'avaient pas
   de padding horizontal à se conformer, pour que TOUTES les pages alignent
   leurs bords gauche/droit sur la même grille (homepage, fiche produit,
   catégories, panier, checkout, footer, breadcrumb, etc.).
   Mécanisme : on ajoute un padding horizontal de 24px + box-sizing
   border-box, ce qui transforme une `max-width: 1500` "sans padding"
   en équivalent strict de `.container`.
   ============================================================ */
.range-grid__inner,
.value-props__inner,
.stats-band__inner,
.lead-magnet__inner,
.blog-teasers__inner,
.contact-grid,
.woocommerce div.product .related,
.woocommerce div.product .upsells {
	padding-left: 24px;
	padding-right: 24px;
	box-sizing: border-box;
}
/* Le breadcrumb hérite double-classes (.breadcrumb.container) → on force le padding
   horizontal en !important pour échapper aux overrides spécifiques par page
   (notamment .woocommerce-account.logged-in .container qui passe à 10px). */
.breadcrumb,
.woocommerce-breadcrumb {
	padding-left: 24px !important;
	padding-right: 24px !important;
	box-sizing: border-box;
}
/* Footer : aligné via max-width réduit (déjà appliqué plus haut, on s'assure
   juste que le padding ne s'ajoute pas par-dessus). */
.footer-pillars__inner,
.site-footer__inner,
.site-footer__bottom { box-sizing: border-box; }

/* ============================================================
   Bundles natifs (.cbdco-bundle) — fiche produit
   ------------------------------------------------------------
   Liste des produits inclus dans un pack. Affichée sous le prix /
   description courte sur la fiche produit (priorité 25 dans le
   summary). Style dark + or.
   ============================================================ */
.cbdco-bundle {
	margin: 18px 0 22px;
	padding: 18px 20px;
	background: var(--bg-1);
	border: 1px solid var(--line);
	border-radius: 10px;
	margin-top: -13px;
}
.cbdco-bundle__title {
	margin: 0 0 14px;
	font-family: var(--font-display);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	background: linear-gradient(135deg, #e2cb97 4%, #a88659 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}
.cbdco-bundle__items {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
}
.cbdco-bundle__item { margin: 0; }
.cbdco-bundle__item-link {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 12px;
	padding: 10px 12px;
	background: var(--bg);
	border: 1px solid var(--line);
	border-radius: 8px;
	color: var(--text);
	text-decoration: none;
	transition: border-color .15s ease;
	line-height: 1.3;
}
.cbdco-bundle__item-link:hover {
	border-color: rgba(212, 168, 75, 0.5);
}
.cbdco-bundle__thumb {
	position: relative;
	width: 32px;
	height: 32px;
	flex: 0 0 32px;
	aspect-ratio: auto;
	overflow: hidden;
	border-radius: 5px;
	background: rgba(255, 255, 255, 0.04);
}
.cbdco-bundle__thumb-img,
.cbdco-bundle__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border-radius: 5px;
}
.cbdco-bundle__qty {
	color: var(--gold);
	font-weight: 700;
	font-size: 12px;
	margin-right: 5px;
}
.cbdco-bundle__name {
	flex: 1 1 auto;
	min-width: 0;
	font-size: 13px;
	line-height: 1.35;
	color: var(--text);
	font-weight: 500;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.cbdco-bundle__item-link:hover .cbdco-bundle__name { color: var(--gold-soft); }
@media (max-width: 540px) {
	.cbdco-bundle__items { grid-template-columns: 1fr; }
}

/* Affichage panier / commande : "Inclus dans le pack" en meta */
.woocommerce-cart .cart_item .variation,
.woocommerce-checkout .product-name dl.variation {
	font-size: 12px;
	line-height: 1.5;
	color: var(--text-mute);
}
.cbdco-bundle__cart-list {
	list-style: disc;
	margin: 4px 0 0 16px;
	padding: 0;
	color: var(--text-mute);
	font-size: 12px;
}

/* ============================================================
   Espace membre — Pages plugin wc-loyalty-cashback
   ------------------------------------------------------------
   Adapte les cards du plugin (`.wc-loyalty-dashboard`,
   `.loyalty-card`, etc.) au thème dark + or de l'espace membre.
   ============================================================ */
.woocommerce-account .wc-loyalty-dashboard {
	display: grid;
	gap: 16px;
}
.woocommerce-account .wc-loyalty-dashboard .loyalty-card {
	background: var(--bg-1);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 22px 24px;
	color: var(--text);
	display: flex;
	gap: 18px;
	align-items: flex-start;
}
.woocommerce-account .wc-loyalty-dashboard .loyalty-card h3 {
	margin: 0 0 10px;
	font-family: var(--font-display);
	font-size: 16px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--gold);
}
.woocommerce-account .wc-loyalty-dashboard .loyalty-card .card-icon {
	width: 44px; height: 44px;
	flex: 0 0 44px;
	display: flex; align-items: center; justify-content: center;
	border-radius: 50%;
	background: rgba(212, 168, 75, 0.1);
	font-size: 22px;
}
.woocommerce-account .wc-loyalty-dashboard .loyalty-card .card-content {
	flex: 1 1 auto;
	min-width: 0;
}
.woocommerce-account .wc-loyalty-dashboard .balance-card .balance-amount {
	font-family: var(--font-display);
	font-size: 32px;
	font-weight: 700;
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
	margin: 6px 0 4px;
}
.woocommerce-account .wc-loyalty-dashboard .balance-card .balance-info {
	color: var(--text-mute);
	font-size: 13px;
	margin: 0;
}
.woocommerce-account .wc-loyalty-dashboard .tier-card .tier-name {
	font-family: var(--font-display);
	font-size: 22px;
	font-weight: 700;
	color: var(--gold);
	margin: 4px 0 4px;
}
.woocommerce-account .wc-loyalty-dashboard .tier-card .tier-rate {
	color: var(--text-mute);
	margin: 0;
	font-size: 13px;
}
/* Grille des niveaux */
.woocommerce-account .wc-loyalty-dashboard .tiers-overview {
	flex-direction: column;
}
.woocommerce-account .wc-loyalty-dashboard .tiers-overview h3 {
	margin-bottom: 14px;
}
.woocommerce-account .wc-loyalty-dashboard .tiers-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 12px;
	width: 100%;
}
.woocommerce-account .wc-loyalty-dashboard .tier-item {
	background: var(--bg);
	border: 1px solid var(--line);
	border-radius: 10px;
	padding: 14px 16px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	align-items: flex-start;
	transition: border-color .15s ease, transform .15s ease;
}
.woocommerce-account .wc-loyalty-dashboard .tier-item:hover {
	border-color: rgba(212, 168, 75, 0.3);
	transform: translateY(-2px);
}
.woocommerce-account .wc-loyalty-dashboard .tier-item.current {
	border-color: var(--gold);
	background: linear-gradient(135deg, rgba(212, 168, 75, 0.08), transparent);
	box-shadow: 0 6px 22px -10px rgba(212, 168, 75, 0.45);
}
.woocommerce-account .wc-loyalty-dashboard .tier-item.locked {
	opacity: 0.55;
}
.woocommerce-account .wc-loyalty-dashboard .tier-item .tier-icon {
	font-size: 22px;
}
.woocommerce-account .wc-loyalty-dashboard .tier-item .tier-details h4 {
	margin: 0;
	font-size: 14px;
	font-family: var(--font-display);
	color: var(--gold);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.woocommerce-account .wc-loyalty-dashboard .tier-item .tier-threshold,
.woocommerce-account .wc-loyalty-dashboard .tier-item .tier-cashback {
	margin: 0;
	font-size: 12px;
	color: var(--text-mute);
}
/* Progression */
.woocommerce-account .wc-loyalty-dashboard .progress-card {
	flex-direction: column;
	gap: 10px;
}
.woocommerce-account .wc-loyalty-dashboard .progress-card .tier-progress {
	width: 100%;
}
.woocommerce-account .wc-loyalty-dashboard .progress-card .progress-header {
	display: flex;
	justify-content: space-between;
	font-size: 12px;
	color: var(--text-mute);
	margin-bottom: 8px;
	font-family: var(--font-display);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.woocommerce-account .wc-loyalty-dashboard .progress-bar,
.woocommerce-account .wc-loyalty-dashboard .progress-card progress {
	width: 100%;
	height: 8px;
	border-radius: 4px;
	background: var(--bg);
	border: 1px solid var(--line);
	overflow: hidden;
}
.woocommerce-account .wc-loyalty-dashboard .progress-bar > * {
	background: var(--gold-gradient);
	height: 100%;
	display: block;
}
/* Avantages liste */
.woocommerce-account .wc-loyalty-dashboard .benefits-card {
	flex-direction: column;
}
.woocommerce-account .wc-loyalty-dashboard .benefits-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.woocommerce-account .wc-loyalty-dashboard .benefits-list li {
	color: var(--text);
	font-size: 14px;
	padding-left: 4px;
}
/* Quick actions (boutons) */
.woocommerce-account .wc-loyalty-dashboard .loyalty-actions {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.woocommerce-account .wc-loyalty-dashboard .loyalty-actions .button,
.woocommerce-account .wc-loyalty-dashboard .help-button {
	background: var(--btn-bg);
	color: var(--btn-fg);
	border: none;
	border-radius: 6px;
	padding: 10px 18px;
	font-family: var(--font-display);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: transform .15s ease, background .15s ease;
	display: inline-flex;
	align-items: center;
}
.woocommerce-account .wc-loyalty-dashboard .loyalty-actions .button:hover,
.woocommerce-account .wc-loyalty-dashboard .help-button:hover {
	background: var(--btn-bg-hover);
	transform: translateY(-1px);
}
/* Card "Comment utiliser cashback" */
.woocommerce-account .wc-loyalty-dashboard .help-card .help-content p {
	color: var(--text-mute);
	font-size: 14px;
	line-height: 1.55;
	margin: 0 0 10px;
}
.woocommerce-account .wc-loyalty-dashboard .help-card .help-steps {
	color: var(--text);
	font-size: 13px;
	margin: 0 0 14px;
	padding-left: 22px;
}
.woocommerce-account .wc-loyalty-dashboard .help-card .help-steps li { margin-bottom: 6px; }
.woocommerce-account .wc-loyalty-dashboard .help-card .help-note {
	background: rgba(212, 168, 75, 0.06);
	border-left: 3px solid var(--gold);
	padding: 10px 14px;
	font-size: 13px;
	color: var(--text);
	margin-bottom: 14px;
}

/* Responsive : passe les cards en colonne sur mobile */
@media (max-width: 760px) {
	.woocommerce-account .wc-loyalty-dashboard .loyalty-card {
		flex-direction: column;
		padding: 18px 16px;
	}
	.woocommerce-account .wc-loyalty-dashboard .balance-card .balance-amount {
		font-size: 26px;
	}
}


/* ============================================================
   GLOBAL — letter-spacing supprimé partout sur le site
   (demande utilisateur — texte naturel sans espacement forcé)
   ============================================================ */
* {
	letter-spacing: 0 !important;
}


/* ============================================================
   CLOSE BUTTONS — toujours ronds (aspect-ratio 1:1)
   Sur mobile en flex, certaines modales peuvent squeezer le close en ovale.
   Ce safeguard global force des dimensions carrées partout.
   ============================================================ */
/* Verrou strict : tous les boutons close (toutes conventions de nommage) doivent
   être carrés (et donc ronds avec border-radius 50%). Style unifié calqué sur
   .cbdco-modal__close (fond blanc 8%, border blanc 12%, backdrop-blur, hover
   doré + rotation 90°). */
button[class*="__close"],
button[class*="-close"],
button[class*="_close"],
[class*="__close"][role="button"],
[class*="-close"][role="button"],
[id*="close"][role="button"],
[data-cbdco-modal-close],
.cbdco-lightbox__nav,
button[aria-label*="ermer" i],
button[aria-label*="lose" i] {
	aspect-ratio: 1 / 1 !important;
	flex: 0 0 auto !important;
	flex-shrink: 0 !important;
	flex-grow: 0 !important;
	flex-basis: auto !important;
	padding: 0 !important;
	margin: 0 !important;
	box-sizing: border-box !important;
	border-radius: 50% !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: rgba(255,255,255,0.08) !important;
	border: 1px solid rgba(255,255,255,0.12) !important;
	color: rgba(245,240,227,0.85) !important;
	cursor: pointer !important;
	transition: background .25s ease, border-color .25s ease, color .25s ease, transform .25s ease !important;
	backdrop-filter: blur(8px) !important;
	-webkit-backdrop-filter: blur(8px) !important;
	box-shadow: none !important;
}
/* Hover unifié : fond doré 20%, border dorée, rotation 90° + scale */
button[class*="__close"]:hover,
button[class*="-close"]:hover,
button[class*="_close"]:hover,
[class*="__close"][role="button"]:hover,
[class*="-close"][role="button"]:hover,
[id*="close"][role="button"]:hover,
[data-cbdco-modal-close]:hover,
.cbdco-lightbox__nav:hover,
button[aria-label*="ermer" i]:hover,
button[aria-label*="lose" i]:hover {
	background: rgba(216,183,104,0.2) !important;
	border-color: rgba(216,183,104,0.5) !important;
	color: #faf3df !important;
	transform: rotate(90deg) scale(1.05) !important;
}
/* Hover : forcer la couleur du SVG aussi */
button[class*="__close"]:hover svg,
button[class*="-close"]:hover svg,
[class*="__close"][role="button"]:hover svg,
[class*="-close"][role="button"]:hover svg,
[data-cbdco-modal-close]:hover svg,
button[aria-label*="ermer" i]:hover svg,
button[aria-label*="lose" i]:hover svg {
	color: #faf3df !important;
	stroke: #faf3df !important;
}
/* Pas de rotation sur les flèches de la lightbox (chevrons gauche/droite) */
.cbdco-lightbox__nav:hover { transform: scale(1.08) !important; }
/* Tailles strictes par modale — width = height = min = max, en !important */
.cart-drawer__close,
.cart-drawer__close.cart-drawer__close {
	width: 36px !important; height: 36px !important;
	min-width: 36px !important; min-height: 36px !important;
	max-width: 36px !important; max-height: 36px !important;
}
.cbdco-modal__close,
.sp-eta-modal__close,
.cbdco-quiz-close {
	width: 36px !important; height: 36px !important;
	min-width: 36px !important; min-height: 36px !important;
	max-width: 36px !important; max-height: 36px !important;
}
.cbdco-lightbox__close,
.cbdco-lightbox__nav {
	width: 44px !important; height: 44px !important;
	min-width: 44px !important; min-height: 44px !important;
	max-width: 44px !important; max-height: 44px !important;
}


/* ============================================================
   Bouton "Ajouter" — override final mobile/tablette (<=768px).
   Layout : label "AJOUTER" à gauche, séparateur vertical, bloc prix
   à droite EMPILÉ (barré rouge AU-DESSUS, prix actuel EN DESSOUS).
   ============================================================ */
@media (max-width: 768px) {
	body .card-cta .card-cta__prices,
	body .button .card-cta__prices,
	body .add_to_cart_button .card-cta__prices,
	body ul.products li.product .card-cta .card-cta__prices,
	body ul.products li.product .button .card-cta__prices {
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		display: inline-flex !important;
		align-items: flex-end !important;
		justify-content: center !important;
		gap: 0 !important;
		white-space: nowrap !important;
	}
	body .card-cta .card-cta__regular:not([style*="none"]) {
		display: block !important;
		white-space: nowrap !important;
		float: none !important;
		order: 1 !important;
	}
	body .card-cta .card-cta__price {
		display: block !important;
		white-space: nowrap !important;
		float: none !important;
		order: 2 !important;
	}
}

/* Desktop : prix côte à côte (row). IMPORTANT : `:not([style*="none"])` pour
   respecter le display:none que pose le JS quand price === regular (pas de
   promo). Sans ce filtre, le prix barré resterait visible même sans promo. */
@media (min-width: 769px) {
	.card-cta__prices,
	.card-cta .card-cta__prices,
	ul.products li.product .card-cta .card-cta__prices,
	body .card-cta__prices {
		display: inline-flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: baseline !important;
		white-space: nowrap !important;
	}
	.card-cta__regular:not([style*="none"]),
	.card-cta__price,
	.card-cta .card-cta__regular:not([style*="none"]),
	.card-cta .card-cta__price {
		display: inline-block !important;
		float: none !important;
		clear: none !important;
		white-space: nowrap !important;
		vertical-align: baseline !important;
	}
}
