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

/* ----- Variables ------------------------------------------- */
:root {
	/* Palette El Mundo — reprise à l'identique du thème d'origine
	   `elmundocbd-2026` (theme.json), seule source de vérité des couleurs :
	   crème + blanc, texte anthracite, UN SEUL accent = vert forêt.
	   L'or (#f4a419) n'existe que pour les étoiles d'avis — jamais pour du
	   texte, un titre ou un lien sur fond clair. */
	--bg-0: #f5f0e8;   /* bg          */
	/* Surface des blocs : crème très clair plutôt que blanc pur — les boîtes
	   ressortent du fond de page sans trancher. Le header, lui, reste blanc
	   (déclaré explicitement) pour rester net au-dessus du contenu. */
	--bg-1: #faf8f3;   /* surface     */
	--bg-2: #ede8df;   /* surface-2   */
	--bg-3: #e0d8cc;   /* surface-3   */
	--card:  #faf8f3;
	--line: #d8d0c4;   /* border      */
	--line-2: #c6bcae;

	--text: #1a1a1a;
	--text-dim: #5a5a5a;
	--text-mute: #8a8a8a;

	/* `--gold*` garde son nom historique (270+ usages hérités de
	   cbdconnection) mais porte désormais l'accent VERT du thème d'origine.
	   Renommer les variables casserait tout ; on retokenise à la place. */
	--gold: #2d4a2d;        /* accent       */
	--gold-2: #0f2a1e;      /* accent-deep  */
	--gold-soft: #3a5c3a;   /* accent-hover */
	/* Dégradé d'accent 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é). */
	/* APLAT, pas un vrai dégradé. Cette variable alimente ~166 blocs qui la
	   découpent sur du texte (`background-clip: text`). Le dégradé clair→foncé
	   sur des lettres donnait un vert délavé et sale, signalé sur à peu près
	   chaque titre du site. En mettant la même couleur aux deux extrémités, tous
	   ces textes deviennent d'un vert plein et net — sans avoir à reprendre les
	   166 règles une par une. Repasser à un vrai dégradé ici le rétablirait
	   partout d'un coup. */
	--gold-gradient: linear-gradient(135deg, var(--gold) 0%, var(--gold) 100%);
	--accent-soft: #e8f0e8;   /* aplats verts très clairs sur fond crème */
	--accent-light: #7ab87a;  /* vert clair — LISIBLE UNIQUEMENT sur fond sombre */
	--star: #f4a419;          /* or : étoiles d'avis, rien d'autre */
	--green: #2d4a2d;
	--success: #3cb371;
	--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 */

	/* Boutons : aplat vert forêt du thème d'origine (pas de dégradé — c'est
	   l'écart de vert entre le dégradé clair et l'accent qui faisait tache). */
	--btn-bg: var(--gold);
	--btn-bg-hover: var(--gold-soft);
	--btn-fg: #ffffff;
	/* Bandeau promo : même sombre que le footer, texte blanc, accent vert clair. */
	--topbar-bg: #1a2a1a;
	--topbar-fg: #ffffff;

	--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;
}

/* ----- Surfaces sombres ------------------------------------
   Le vert forêt (#2d4a2d) est fait pour le fond crème ; sur un bloc sombre
   il disparaît. Plutôt que de dupliquer des règles partout, on redéfinit les
   jetons d'accent DANS le bloc sombre : tous les descendants qui utilisent
   var(--gold*) basculent automatiquement sur le vert clair.
   Toute nouvelle zone sombre doit être ajoutée à cette liste. */
.topbar,
.site-footer,
.hp-mood__side {
	--gold: #7ab87a;
	--gold-2: #4e7d4e;
	--gold-soft: #c9e6c9;
	/* Contexte sombre : aplat vert clair (lisible sur fond foncé), même principe. */
	--gold-gradient: #2d4a2d;
	--line: rgba(255,255,255,0.12);
	--line-2: rgba(255,255,255,0.2);
	--text: #ffffff;
	--text-dim: rgba(255,255,255,0.72);
	--text-mute: rgba(255,255,255,0.5);
}

/* ----- 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 .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,
	.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: 11px 18px;
	font-family: var(--font-display);
	letter-spacing: 0.01em;
	font-size: 13.5px;
	font-weight: 600;
	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.15;
	text-transform: none;
}
.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(122,184,122, 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: #ffffff;
	background-image: repeating-linear-gradient(45deg, rgba(122,184,122, 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(--topbar-bg);
	border-bottom: 1px solid rgba(0,0,0,0.35);
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	/* Même échelle typo que la barre de réassurance juste en dessous. */
	font-size: 12.5px;
	font-weight: 500;
	letter-spacing: 0.01em;
	color: var(--btn-fg);
	text-transform: none;
}
/* Icônes SVG de la topbar : mêmes traits que .site-reassure__item svg. */
.topbar__icon {
	width: 17px;
	height: 17px;
	flex: 0 0 auto;
	color: var(--accent-light);
}
.topbar__list li,
.topbar__cta,
.topbar__shipping,
.topbar__mobile,
.topbar a[href^="tel:"] {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}
.topbar__sep { display: inline-block !important; }
/* Version mobile : le bandeau est forcé en `display:block; text-align:center`
   par le CSS inline du thème — l'icône doit donc rester en flux inline. */
.topbar__mobile .topbar__icon {
	display: inline-block !important;
	vertical-align: -4px;
	margin-right: 5px;
}
/* Bandeau un peu plus haut et texte moins gras : la barre respire, et le
   gras est réservé aux valeurs (code promo, montant du franco). */
.topbar strong,
.topbar b,
.topbar .woocommerce-Price-amount,
.topbar .woocommerce-Price-amount * { font-weight: 500; }
.topbar a {
	color: var(--btn-fg);
	text-decoration: none;
	transition: color .2s ease;
}
.topbar a:hover { color: var(--btn-fg); text-decoration: underline; text-underline-offset: 3px; }
/* Tel: pas d'underline au hover (numéro de téléphone n'est pas un lien
   classique, l'underline parasitait le rendu propre du picto + numéro). */
.topbar a[href^="tel:"]:hover { text-decoration: none; }
.topbar__inner {
	max-width: var(--container);
	margin: 0 auto;
	padding: 9px 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: var(--btn-fg); font-weight: 400; }
.topbar__code {
	display: inline-block;
	background: transparent;
	/* Le code promo est l'accent doré du bandeau noir (repris de la bannière). */
	color: var(--gold-soft);
	padding: 0 2px;
	border: 0;
	border-bottom: 1px dashed rgba(245,240,232,0.45);
	border-radius: 0;
	font: inherit;
	font-weight: 500;
	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: var(--gold-soft); }
.topbar__code.is-copied { color: #8ed18e; border-bottom-color: #8ed18e; }

/* 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(122,184,122, 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: var(--btn-fg); font-weight: 400; transition: color .2s; }
.topbar__shipping b,
.topbar__shipping bdi,
.topbar__shipping .woocommerce-Price-amount {
	display: inline;
	background: transparent;
	color: var(--btn-fg);
	padding: 0;
	border-radius: 0;
	font-weight: 500;
	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(9,25,11, 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: var(--btn-fg); }
.topbar__shipping bdi .woocommerce-Price-currencySymbol { color: inherit; font-weight: inherit; }
/* « Livraison gratuite débloquée ! » : vert CLAIR. C'était `#1a3d1a`, un vert
   foncé posé sur la topbar `#1a2a1a` — donc vert sur vert, illisible. */
.topbar__shipping.is-unlocked { color: var(--accent-light); font-weight: 500; }
.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: var(--accent-light);
	font-size: 1em;
}
.topbar__mobile {
	display: none;
	width: 100%;
	text-align: center;
	font-weight: 500;
	color: var(--btn-fg);
	font-size: 12px;
}
.topbar__mobile a { color: var(--btn-fg); text-decoration: none; }
.topbar__mobile a:hover { color: var(--btn-fg); 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; }
}

/* Tablet portrait (ex: Surface Pro 912px) — on garde uniquement le bloc promo/code,
   on cache le bloc téléphone/horaires et le compteur de livraison. */
@media (min-width: 769px) and (max-width: 1024px) {
	.topbar__inner { justify-content: center; }
	.topbar__list--desktop:first-of-type { display: none !important; }
	.topbar__list--desktop > li:not(.topbar__cta) { display: none !important; }
}


/* ============================================================
   Site header (logo + nav + actions)
   ============================================================ */
.site-header {
	background: #ffffff;
	border-bottom: 1px solid var(--line);
	position: relative;
	z-index: 1000;
}
html, body { overflow: visible; overflow-x: clip; }

/* Supprime tout indicateur "ajouté au panier" injecté par WooCommerce :
   le lien <a class="added_to_cart"> ET le pseudo ::after de coche sur le bouton. */
.added_to_cart.wc-forward,
.added_to_cart { display: none !important; }
.button.added::after,
.add_to_cart_button.added::after,
.single_add_to_cart_button.added::after,
button.added::after { content: none !important; display: none !important; }
.button.added,
.add_to_cart_button.added,
.single_add_to_cart_button.added,
button.added {
	color: var(--btn-fg) !important;
	-webkit-text-fill-color: var(--btn-fg) !important;
	opacity: 1 !important;
	visibility: visible !important;
}
.card-cta.added .card-cta__label,
.card-cta.added .card-cta__label-full,
.card-cta.added .card-cta__label-short,
.card-cta.added .card-cta__prices,
.card-cta.added .card-cta__price,
.card-cta.added .woocommerce-Price-amount,
.card-cta.added .woocommerce-Price-currencySymbol {
	color: var(--btn-fg) !important;
	-webkit-text-fill-color: var(--btn-fg) !important;
	opacity: 1 !important;
	visibility: visible !important;
}
/* 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;
}

/* ============================================================
   BARRE DE RÉASSURANCE — bande fine sous le header, sur toutes les pages
   (le markup est dans header.php ; le CSS doit donc vivre ici et pas dans
   homepage.css, qui n'est chargé que sur l'accueil).
   ============================================================ */
.site-reassure {
	padding: 0 !important;
	background: var(--bg-1);
	border-bottom: 1px solid var(--line);
}
.site-reassure__inner {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 24px;
}
.site-reassure__list {
	list-style: none;
	margin: 0;
	padding: 11px 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px 26px;
	flex-wrap: wrap;
}
.site-reassure__item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14.5px;
	font-weight: 500;
	letter-spacing: 0.01em;
	color: var(--text-dim);
	white-space: nowrap;
}
.site-reassure__item svg {
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
	color: var(--gold);
}
/* Sous 1100px on garde la ligne unique mais on la fait défiler plutôt que de
   la casser en deux — la bande reste une bande. */
@media (max-width: 1100px) {
	.site-reassure__list {
		flex-wrap: nowrap;
		justify-content: flex-start;
		gap: 22px;
		overflow-x: auto;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
		mask-image: linear-gradient(90deg, #000 0%, #000 92%, transparent 100%);
		-webkit-mask-image: linear-gradient(90deg, #000 0%, #000 92%, transparent 100%);
	}
	.site-reassure__list::-webkit-scrollbar { display: none; }
}
@media (max-width: 768px) {
	.site-reassure__list { padding: 9px 0; gap: 18px; }
	.site-reassure__item { font-size: 11.5px; gap: 6px; }
	.site-reassure__item svg { width: 16px; height: 16px; }
}

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

/* ============================================================
   HEADER DESKTOP — barre unique : logo à gauche, menu au centre,
   actions à droite (recherche, compte, fidélité, panier).
   Le markup reste inchangé : `.site-header__top` passe en
   `display: contents` pour que ses 3 enfants deviennent des items
   flex de `.site-header`, où on les réordonne avec `order`.
   Mobile (<=1024px) et tunnel panier/commande ne sont pas touchés.
   ============================================================ */
@media (min-width: 1025px) {
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header--centered {
		display: flex;
		align-items: center;
		gap: 24px;
		/* Contenu calé EXACTEMENT sur la grille du site (topbar, sections) :
		   le container fait --container de large, gouttière de 24px comprise.
		   Sans le `+ 24px`, la barre débordait de 48px sur grand écran et le
		   logo/panier tombaient plus à l'extérieur que la topbar. */
		padding: 8px max(24px, calc((100% - var(--container)) / 2 + 24px));
	}
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header--centered .site-header__top {
		display: contents;
	}

	/* 1 — Logo */
	/* Logo et bloc d'icônes prennent la même part d'espace de chaque côté :
	   c'est ce qui fait tomber le menu au milieu de la barre. */
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header__brand {
		order: 1;
		grid-column: auto;
		justify-content: flex-start;
		flex: 0 0 auto;
	}
	/* Sans ça, le logo (élément flex) se fait comprimer par sa colonne et
	   reste minuscule quel que soit le max-height qu'on lui donne. */
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header__brand > * { flex: 0 0 auto; }
	/* Le fichier logo (1080×300) porte une marge transparente : 11% de sa
	   hauteur à gauche/droite et 22% en haut/bas. Rendu tel quel, le dessin
	   paraît petit et décollé du bord. On agrandit donc l'image et on rogne
	   la marge morte en marges négatives — le dessin est alors aligné pile
	   sur la gouttière du site et la barre ne grandit pas pour autant. */
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header__brand img.custom-logo,
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header__brand img {
		max-height: 74px;
		margin: -16px -8px;
	}
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header__brand .display { font-size: 26px; }

	/* 2 — Menu, au centre, sur la même ligne */
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav--centered {
		order: 2;
		flex: 1 1 auto;
		min-width: 0;
		border-top: 0;
		padding: 0;
		/* La mega-bar des sous-menus doit rester pleine largeur : on la fait
		   se positionner par rapport à `.site-header` (déjà en relative) et
		   non plus par rapport à la nav, qui n'est plus qu'une colonne. */
		position: static;
	}
	/* La nav occupe toute la hauteur de la barre et ses items aussi : sans ça,
	   il reste un vide entre le bas d'un item et le haut de la mega-bar, et le
	   sous-menu se referme quand la souris descend dedans. */
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav--centered {
		display: flex;
		align-items: stretch;
		/* Centrage EXACT sur la page, quel que soit le poids du logo à gauche
		   et du groupe d'icônes à droite : la nav est hors flux, centrée sur
		   la fenêtre. Les sous-menus, eux, s'ancrent sur leur <li> (qui est
		   en position:relative), donc ils suivent bien leur item. */
		position: absolute;
		left: 50%;
		transform: translateX(-50%);
		top: 0;
		bottom: 0;
	}
	/* Menu centré et bien présent : c'est lui le repère de navigation de la
	   barre, il passe devant le reste en taille et en graisse. */
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list {
		gap: 9px;
		font-size: 14.5px;
		font-weight: 500;
		letter-spacing: 0.01em;
		text-transform: none;
		flex-wrap: nowrap;
		white-space: nowrap;
		width: 100%;
		margin: 0;
		justify-content: center;
		align-items: stretch;
	}
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li {
		display: flex;
		align-items: center;
	}
	/* Item de menu : chaque entrée EST une pastille, en permanence — pas un
	   effet au survol. Le survol/la page courante ne fait que passer la
	   pastille en vert plein.
	   Le <li>, lui, reste sur toute la hauteur de la barre : c'est lui qui
	   porte le survol du déroulant, donc pas de trou entre la pastille et le
	   panneau. */
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li > a {
		position: relative;
		display: flex;
		align-items: center;
		padding: 6px 12px;
		border-radius: 8px;
		/* Exactement la même matière que les icônes de droite : rien au repos,
		   pastille crème au survol. Le contour permanent faisait tache dans une
		   barre où plus aucun autre élément n'est encadré. */
		background: transparent;
		border: 1px solid transparent;
		color: var(--text);
		transition: background .18s ease, color .18s ease, border-color .18s ease;
	}
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li:hover > a,
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li:focus-within > a,
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li.current-menu-item > a,
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li.current-menu-parent > a,
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li.current-menu-ancestor > a {
		background: var(--bg-2);
		border-color: var(--line-2);
		color: var(--gold);
		-webkit-text-fill-color: var(--gold);
	}
	/* Page courante : pastille pleine, pour qu'on sache où on est. */
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li.current-menu-item > a,
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li.current-menu-parent > a,
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li.current-menu-ancestor > a {
		background: var(--gold);
		border-color: var(--gold);
		color: #ffffff;
		-webkit-text-fill-color: #ffffff;
	}
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li.current-menu-item > a > *,
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li.current-menu-parent > a > *,
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li.current-menu-ancestor > a > * {
		color: #ffffff;
		-webkit-text-fill-color: #ffffff;
		background: none;
	}
	/* Chevron : il se retourne quand le panneau est ouvert. */
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li.menu-item-has-children > a::after {
		width: 6px;
		height: 6px;
		transform-origin: 50% 50%;
		transform: rotate(45deg) translate(-1px, -1px);
		margin-left: 7px;
	}
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li.menu-item-has-children:hover > a::after,
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li.menu-item-has-children:focus-within > a::after {
		transform: rotate(225deg) translate(-1px, -1px);
	}

	/* 3 — Recherche puis 4 — icônes */
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header__actions--left  { order: 3; flex: 0 0 auto; }
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header__actions--right {
		order: 4;
		flex: 0 0 auto;
	}

	/* Recherche : pastille icône dans la barre. Au clic, elle ne s'étire PAS
	   dans la ligne (ça écrasait le menu) : le formulaire sort du flux et
	   s'ouvre en boîte flottante sous le header, alignée à droite sur la
	   gouttière du site. L'input occupe toute la pastille (l'icône est en
	   pointer-events:none) donc un clic n'importe où la focus. Aucun JS. */
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header__actions--left {
		flex: 1 1 auto;
		justify-content: flex-end;
		/* La loupe appartient visuellement au groupe d'icônes de droite : on
		   annule le gap du header pour qu'elle soit espacée comme le reste. */
		margin-right: -18px;
	}
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header__actions--left .site-search {
		width: 44px;
		max-width: none;
	}
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header__actions--left .site-search__icon {
		left: 50%;
		transform: translate(-50%, -50%);
		width: 20px;
		height: 20px;
	}
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header__actions--left .site-search input.site-search__input {
		height: 44px;
		padding: 0 14px;
		font-size: 0;
		cursor: pointer;
		background: transparent;
		border-color: transparent;
		border-radius: 999px;
		transition: background .15s;
	}
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header__actions--left .site-search:hover input.site-search__input {
		background: var(--bg-2);
	}
	/* Sur desktop, la loupe n'ouvre plus un champ dans la barre : elle ouvre
	   la modale de recherche AJAX (cf. responsive.css + main.js). Le champ du
	   header reste dans le DOM comme zone cliquable, jamais déplié. */
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header__actions--left .site-search__results {
		display: none !important;
	}

	/* ---- Sous-menus : déroulant simple sous l'item parent ----------------
	   (et non plus une barre pleine largeur sous le header) */
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li { position: relative; }
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li > .sub-menu {
		top: calc(100% + 9px);
		left: 0;
		right: auto;
		width: max-content;
		min-width: 210px;
		max-width: 320px;
		flex-direction: column;
		flex-wrap: nowrap;
		justify-content: flex-start;
		align-items: stretch;
		gap: 0;
		padding: 8px;
		/* Aplat très légèrement crème (ni blanc pur, ni dégradé). */
		background: #faf7f0;
		border: 1px solid var(--line);
		border-radius: 14px;
		box-shadow: 0 18px 34px rgba(15, 42, 30, 0.16);
	}
	/* Dernier item : le panneau s'ouvre vers la gauche pour ne pas déborder. */
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li:last-child > .sub-menu {
		left: auto;
		right: 0;
	}
	/* Le pont invisible doit couvrir l'espace entre le bas de l'item et le
	   haut du panneau, sinon le survol se coupe en descendant. */
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list .sub-menu::before {
		top: -14px;
		height: 14px;
	}
	/* Entrées : une par ligne, alignées à gauche, pastille au survol. */
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li > .sub-menu > li > a {
		display: flex;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: 10px;
		width: 100%;
		text-align: left;
		padding: 7px 11px;
		border-radius: 8px;
		font-size: 14.5px;
	}
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list .sub-menu .menu-item__title {
		font-size: 14.5px;
		font-weight: 500;
		letter-spacing: 0.01em;
	}
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list .sub-menu a:hover,
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list .sub-menu .current-menu-item > a {
		background: var(--accent-soft);
		-webkit-text-fill-color: currentColor;
		color: var(--gold);
	}
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list .sub-menu a:hover .menu-item__title { color: var(--gold); }

	/* Niveau 3 : sort sur le côté du panneau parent. */
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list .sub-menu li { position: relative; }
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list .sub-menu .sub-menu {
		top: -10px;
		left: calc(100% + 8px);
		right: auto;
		width: max-content;
		min-width: 190px;
		max-width: 300px;
		flex-direction: column;
		flex-wrap: nowrap;
		justify-content: flex-start;
		align-items: stretch;
		gap: 2px;
		padding: 10px;
		background: #faf7f0;
		border: 1px solid var(--line);
		border-radius: 14px;
		box-shadow: 0 18px 34px rgba(15, 42, 30, 0.16);
	}
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list .sub-menu .sub-menu::before {
		top: 0;
		left: -10px;
		right: auto;
		width: 10px;
		height: 100%;
	}
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list .sub-menu .sub-menu a {
		display: flex;
		align-items: center;
		width: 100%;
		text-align: left;
		padding: 9px 12px;
		border-radius: 9px;
	}

	/* Sous la taille confortable, on resserre le menu plutôt que de casser
	   la ligne (le logo et les icônes ne bougent pas). */
	@media (max-width: 1279px) {
		body:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header--centered { gap: 14px; }
		body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list { gap: 4px; font-size: 12.5px; letter-spacing: 0.03em; }
		body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li > a { padding: 5px 9px; border-radius: 7px; }
		body:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header__brand img.custom-logo,
		body:not(.woocommerce-cart):not(.woocommerce-checkout) .site-header__brand img { max-height: 64px; margin: -14px -7px; }
	}
}

.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: var(--text);
	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, #ffffff);
	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(122,184,122, 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 currentColor;
	border-bottom: 1.5px solid currentColor;
	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 currentColor;
	border-bottom: 1.5px solid currentColor;
	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, #ffffff);
	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: var(--text);
	z-index: 1;
}
.site-search input.site-search__input {
	width: 100%;
	background: var(--bg-2);
	border: 1px solid var(--line);
	color: var(--text);
	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: var(--text-dim); }
.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: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 11px 16px;
	margin: 10px auto 4px;
	width: calc(100% - 16px);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: #ffffff;
	-webkit-text-fill-color: #ffffff;
	background: var(--gold);
	border: 1px solid var(--gold);
	border-radius: 8px;
	text-decoration: none !important;
	text-transform: none;
	transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.search-result__more:hover {
	background: var(--gold-soft);
	border-color: var(--gold-soft);
	color: #fff;
}
.search-result__price .price-from {
	display: inline-block;
	margin-right: 4px;
	font-size: 0.85em;
	font-weight: 400;
	color: var(--text-mute);
}
.site-search__empty {
	padding: 18px 14px;
	text-align: center;
	color: var(--text);
	font-size: 13px;
}
.site-search__loading {
	padding: 18px 14px;
	text-align: center;
	color: var(--text);
	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(3,7,3,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(3,7,3,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 */
/* Tête sobre, aux couleurs du site : aplat crème + filet vert. L'ancien
   fond (dégradé animé + pluie de points verts) venait du thème sombre et
   n'appartenait à aucune autre surface du site. */
.cart-drawer__head {
	display: flex; align-items: center; justify-content: space-between;
	padding: 12px 18px;
	position: relative;
	overflow: hidden;
	border-bottom: 1px solid var(--line);
	background: var(--bg-2);
}
@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: none; }
@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: 15px;
	/* 700 + ombre portée : trop appuyé pour un simple titre de tiroir. */
	font-weight: 600;
	color: var(--text);
	letter-spacing: 0.01em;
	text-shadow: none;
}
.cart-drawer__close,
.cart-drawer__close.cart-drawer__close {
	background: rgba(245,240,232,0.064); border: 0;
	color: var(--text);
	width: 30px !important; height: 30px !important;
	min-width: 30px !important; min-height: 30px !important;
	max-width: 30px !important; max-height: 30px !important;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: 50%;
	cursor: pointer;
	transition: background .15s, color .15s;
	-webkit-tap-highlight-color: transparent;
	padding: 0;
}
.cart-drawer__close svg { width: 16px; height: 16px; }
.cart-drawer__close svg { stroke: currentColor; color: var(--text); }
.cart-drawer__close:hover { background: rgba(122,184,122,.25); color: var(--gold); }
.cart-drawer__close:hover svg { stroke: var(--gold); color: var(--gold); }
.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;
	background: transparent;
	color: var(--green);
	-webkit-text-fill-color: var(--green);
	padding: 0;
	border-radius: 0;
	font-weight: 700;
	font-size: 1em;
	margin: 0 2px;
	box-shadow: none;
}
.cart-drawer__shipping-msg.is-unlocked {
	color: var(--green);
	font-weight: 700;
}
.cart-drawer__shipping-msg.is-unlocked b {
	background: transparent;
	color: var(--green);
	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(45, 74, 45, 0.30);
}

/* ============================================================
   CDP (Cart Drawer Progression) — composant propre, UX clair :
   header avec emoji + montant + nom de la cible
   track avec rail + fill animé + nodes ronds aux seuils
   ============================================================ */
.cdp {
	padding: 15px 12px 18px 15px;
	background: linear-gradient(180deg, var(--bg-1, #ede8df) 0%, var(--bg, #f5f0e8) 100%);
	border-bottom: 1px solid var(--line, rgba(245,240,232,0.048));
}
.cdp:not(.cdp--gifts) {
	padding: 20px 12px 0px 15px;
}
.cdp__head {
	font-size: 13px;
	font-weight: 500;
	color: var(--text-dim);
	text-align: center;
	line-height: 1.4;
	margin-bottom: 22px;
}
.cdp__head b {
	color: var(--green) !important;
	-webkit-text-fill-color: var(--green) !important;
	background: transparent !important;
	padding: 0 !important;
	box-shadow: none !important;
	font-weight: 800;
	font-size: 1.05em;
}
.cdp__target {
	color: var(--text);
	-webkit-text-fill-color: var(--text);
	font-weight: 700;
}
.cdp__head .is-flash {
	animation: cdp-flash .6s cubic-bezier(.2,.9,.3,1.1) both;
}
@keyframes cdp-flash {
	0%   { opacity: 0; transform: translateY(-4px); }
	100% { opacity: 1; transform: translateY(0); }
}

/* Track : rail + fill, gère les nodes en absolute */
.cdp__track {
	position: relative;
	height: 6px;
	margin: 0 26px 26px 8px;
}
.cdp:not(.cdp--gifts) .cdp__track {
	margin: 0 26px 21px 8px;
}
.cdp__rail {
	position: absolute;
	inset: 0;
	/* Le rail était en crème à 5,6% d'opacité — invisible sur le fond clair du
	   tiroir (reste du thème sombre d'origine). Vert désaturé translucide :
	   on voit la piste vide sans qu'elle concurrence le remplissage. */
	background: rgba(45, 74, 45, 0.13);
	border-radius: 999px;
}
.cdp__fill {
	position: absolute;
	inset: 0 auto 0 0;
	width: 0%;
	/* Vert du site (--gold), pas le vert pâle #7ab87a qui n'est lisible que
	   sur fond sombre. Léger dégradé interne pour garder du relief. */
	background: linear-gradient(90deg, var(--gold) 0%, var(--gold-soft) 100%);
	border-radius: 999px;
	box-shadow: 0 0 8px rgba(45, 74, 45, 0.30);
	transition: width 1s cubic-bezier(.4,1.2,.4,1);
}

/* Nodes : circles 32px, centered on rail, emoji + check */
.cdp__node {
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 32px;
	height: 32px;
	z-index: 2;
	color: inherit;
	text-decoration: none;
	transition: transform .25s ease;
	cursor: default;
}
a.cdp__node { cursor: pointer; }
.cdp__node:hover { transform: translate(-50%, -50%) scale(1.12); }

.cdp__node-circle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--bg, #f5f0e8);
	border: 2px solid rgba(245,240,232,0.144);
	transition: background .3s ease, border-color .3s ease, box-shadow .3s ease;
	position: relative;
}
.cdp__node-emoji {
	font-size: 14px;
	line-height: 1;
	transition: opacity .25s ease, transform .25s ease;
	filter: grayscale(0.6);
	opacity: 0.65;
}
.cdp__node-check {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	font-weight: 800;
	color: var(--btn-fg);
	opacity: 0;
	transform: scale(0.4);
	transition: opacity .35s ease, transform .35s cubic-bezier(.3,1.5,.4,1);
}

/* État atteint : cercle doré plein, emoji caché, check visible */
.cdp__node.is-reached .cdp__node-circle {
	background: linear-gradient(135deg, #aedcae, #7ab87a);
	border-color: #7ab87a;
	box-shadow: 0 0 0 4px rgba(122,184,122,0.18), 0 4px 12px rgba(122,184,122,0.35);
}
.cdp__node.is-reached .cdp__node-emoji {
	opacity: 0;
	transform: scale(0.4);
}
.cdp__node.is-reached .cdp__node-check {
	opacity: 1;
	transform: scale(1);
}

/* État "prochain à atteindre" : pulse doré */
.cdp__node.is-next .cdp__node-circle {
	border-color: rgba(122,184,122,0.7);
	animation: cdp-node-pulse 1.8s ease-in-out infinite;
}
.cdp__node.is-next .cdp__node-emoji {
	opacity: 1;
	filter: none;
}
@keyframes cdp-node-pulse {
	0%, 100% { box-shadow: 0 0 0 0 rgba(122,184,122,0.5); }
	60%      { box-shadow: 0 0 0 10px rgba(122,184,122,0); }
}

/* Burst au moment du déblocage (classe temporaire ajoutée par JS) */
.cdp__node.is-just-reached .cdp__node-circle {
	animation: cdp-node-burst .7s cubic-bezier(.2,1.5,.4,1);
}
@keyframes cdp-node-burst {
	0%   { transform: scale(1);    box-shadow: 0 0 0 0  rgba(122,184,122,0.8); }
	45%  { transform: scale(1.45); box-shadow: 0 0 0 18px rgba(122,184,122,0); }
	100% { transform: scale(1);    box-shadow: 0 0 0 0  rgba(122,184,122,0); }
}

/* Label sous le node : montant € */
.cdp__node-amount {
	position: absolute;
	top: calc(100% + 8px);
	left: 50%;
	transform: translateX(-50%);
	font-size: 11px;
	font-weight: 700;
	color: var(--text-dim);
	white-space: nowrap;
	line-height: 1;
	transition: color .3s ease;
}
.cdp__node.is-reached .cdp__node-amount,
.cdp__node.is-next .cdp__node-amount {
	color: var(--green);
}
/* "Encore X€" stylé compact dans le résumé totaux */
.cart-drawer__ship-pending {
	color: var(--text-dim);
	font-size: 0.92em;
	font-style: italic;
}
.cart-drawer__ship-pending b {
	font-style: normal;
	color: var(--green);
	-webkit-text-fill-color: var(--green);
	background: transparent;
	padding: 0;
	margin: 0;
	box-shadow: none;
	font-weight: 700;
}

/* Body / items */
.cart-drawer__body {
	flex: 1;
	overflow-y: auto;
	padding: 8px 12px;
	position: relative;
	scrollbar-width: thin;
	scrollbar-color: #6ac671 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: #2d4a2d;
	border-radius: 4px;
	border: 1px solid rgba(0,0,0,0.15);
}
.cart-drawer__body::-webkit-scrollbar-thumb:hover {
	background-image: linear-gradient(135deg, #b4e3b8 4%, #68c16f 100%);
}
.cart-drawer__items {
	list-style: none; margin: 0; padding: 0;
}
.cart-drawer__item {
	display: grid;
	grid-template-columns: 62px 1fr auto;
	gap: 11px;
	padding: 11px 10px;
	border-bottom: 1px solid var(--line);
	align-items: center;
}
.cart-drawer__item:last-child { border-bottom: 0; }
.cart-drawer__item-img {
	width: 62px; height: 62px;
	background: #fff;
	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: 14px; font-weight: 500;
	color: var(--text);
	margin: 0 0 4px;
	line-height: 1.3;
	display: block;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	max-width: 100%;
}
.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;
	margin-top: 7px;
}
.cart-drawer__item-body:has(.cart-drawer__item-meta) .cart-drawer__item-actions {
	margin-top: -4px;
}
.cart-drawer__qty {
	display: inline-flex; align-items: center;
	/* Même discrétion que le bouton de fermeture du tiroir : un filet vert
	   très dilué. C'était `--gold-2` (#0f2a1e), un vert quasi noir qui
	   cerclait le sélecteur beaucoup trop fort pour un simple contrôle. */
	background: var(--bg-1);
	border: 1px solid rgba(45, 74, 45, 0.18);
	border-radius: 999px;
	overflow: hidden;
}
.cart-drawer__qty button {
	background: transparent;
	border: 0;
	color: var(--gold-soft);
	width: 26px; height: 26px;
	display: inline-flex; align-items: center; justify-content: center;
	cursor: pointer;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	transition: color .15s, background .15s;
}
.cart-drawer__qty button:hover { color: var(--btn-fg); background: var(--btn-bg); }
.cart-drawer__qty button:disabled { opacity: 0.35; cursor: not-allowed; }
.cart-drawer__qty span {
	min-width: 26px;
	text-align: center;
	font-size: 13.5px;
	font-weight: 700;
	color: var(--text);
	padding: 0 2px;
}
.cart-drawer__remove {
	display: inline-flex; align-items: center; justify-content: center;
	width: 26px; height: 26px;
	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: var(--text);
	background: #d33b3b;
	border-color: #d33b3b;
	transform: rotate(90deg);
}
.cart-drawer__item-price {
	font-size: 14px;
	font-weight: 600;
	background: transparent;
	-webkit-text-fill-color: var(--text);
	color: var(--text);
	text-align: right;
	min-width: 70px;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 2px;
}
/* Ordre visuel : badge réduction → del → ins (top → bottom). Aligné sur la
   page /panier/ qui montre nativement del avant ins. */
.cart-drawer__item-discount { order: 0; margin-bottom: 3px; }
.cart-drawer__item-price del { order: 1; background: transparent; text-decoration: line-through; 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-price ins { order: 2; background: transparent; text-decoration: none; color: var(--text); -webkit-text-fill-color: var(--text); font-size: 14px; font-weight: 600; line-height: 1.2; }
.cart-drawer__item-discount {
	display: inline-block;
	background: #d33b3b;
	color: var(--text);
	-webkit-text-fill-color: var(--text);
	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, var(--green)); 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: var(--green); 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, #ffffff);
	border: 1px solid var(--line);
	border-radius: 8px;
	position: relative;
	transition: border-color .15s ease;
}
.cart-drawer__coupon:focus-within { border-color: var(--gold, #7ab87a); }
/* 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, #7ab87a);
	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(122,184,122,.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: var(--btn-fg);
}
.cart-drawer__coupon-msg-text { flex: 1 1 auto; }
.cart-drawer__coupon-msg-close {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	min-width: 20px;
	min-height: 20px;
	max-width: 20px;
	max-height: 20px;
	padding: 0;
	margin: 0 0 0 4px;
	border: 0;
	border-radius: 50%;
	background: rgba(245,240,232,0.064);
	color: inherit;
	font-size: 0;
	line-height: 0;
	cursor: pointer;
	opacity: .6;
	transition: opacity .15s ease, background .15s ease;
	position: relative;
}
.cart-drawer__coupon-msg-close::before,
.cart-drawer__coupon-msg-close::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 9px;
	height: 1.5px;
	background: currentColor;
	border-radius: 1px;
}
.cart-drawer__coupon-msg-close::before { transform: translate(-50%, -50%) rotate(45deg); }
.cart-drawer__coupon-msg-close::after  { transform: translate(-50%, -50%) rotate(-45deg); }
.cart-drawer__coupon-msg-close:hover { opacity: 1; background: rgba(245,240,232,0.128); }

/* Croix rondes centrées : harmonise toutes les croix du checkout WC blocks +
   notices avec le rendu du drawer (cercle 20px + barres dessinées en pseudo). */
.wc-block-components-chip__remove,
.wc-block-components-chip__remove-icon,
.wc-block-components-notice-banner__close,
.wc-block-components-button--remove,
.wc-block-cart-item__remove-link {
	width: 20px !important;
	height: 20px !important;
	min-width: 20px !important;
	min-height: 20px !important;
	max-width: 20px !important;
	max-height: 20px !important;
	padding: 0 !important;
	margin: 0 0 0 4px !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: rgba(245,240,232,0.064) !important;
	color: inherit !important;
	font-size: 0 !important;
	line-height: 0 !important;
	cursor: pointer !important;
	opacity: .6;
	transition: opacity .15s ease, background .15s ease;
	position: relative !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto;
}
.wc-block-components-chip__remove svg,
.wc-block-components-chip__remove-icon svg,
.wc-block-components-notice-banner__close svg {
	display: none !important;
}
.wc-block-components-chip__remove::before,
.wc-block-components-chip__remove::after,
.wc-block-components-chip__remove-icon::before,
.wc-block-components-chip__remove-icon::after,
.wc-block-components-notice-banner__close::before,
.wc-block-components-notice-banner__close::after,
.wc-block-components-button--remove::before,
.wc-block-components-button--remove::after,
.wc-block-cart-item__remove-link::before,
.wc-block-cart-item__remove-link::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 9px;
	height: 1.5px;
	background: currentColor;
	border-radius: 1px;
}
.wc-block-components-chip__remove::before,
.wc-block-components-chip__remove-icon::before,
.wc-block-components-notice-banner__close::before,
.wc-block-components-button--remove::before,
.wc-block-cart-item__remove-link::before { transform: translate(-50%, -50%) rotate(45deg); }
.wc-block-components-chip__remove::after,
.wc-block-components-chip__remove-icon::after,
.wc-block-components-notice-banner__close::after,
.wc-block-components-button--remove::after,
.wc-block-cart-item__remove-link::after { transform: translate(-50%, -50%) rotate(-45deg); }
.wc-block-components-chip__remove:hover,
.wc-block-components-chip__remove-icon:hover,
.wc-block-components-notice-banner__close:hover,
.wc-block-components-button--remove:hover,
.wc-block-cart-item__remove-link:hover { opacity: 1; background: rgba(245,240,232,0.128) !important; }

.cart-drawer__coupon-msg.is-success {
	background: rgba(122,184,122, 0.12);
	color: var(--gold-soft);
	border-color: rgba(122,184,122, 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(245,240,232,0.032);
	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: none;
	color: var(--text, #1a1a1a);
	-webkit-text-fill-color: var(--text, #1a1a1a);
	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 des icônes header : le vert plein du site, pas un dégradé (le dégradé
   clair→foncé sur un trait de 1,5px donnait un rendu sale). On doit viser les
   enfants traçables un par un : `stroke` n'hérite pas quand l'enfant porte
   stroke="currentColor" en attribut. */
.header-action:hover svg :is(path, circle, line, rect, polygon, polyline, ellipse) {
	stroke: var(--gold);
}

/* 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(245,240,232,0.048)); }

.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(122,184,122,0.65), 0 0 0 4px var(--gold), 0 0 30px rgba(122,184,122,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: var(--btn-fg);
	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: var(--text);
	padding: 8px 12px;
	border-radius: 4px;
}
.menu-toggle svg { color: var(--text); stroke: currentColor; }
.menu-toggle svg line, .menu-toggle svg path, .menu-toggle svg rect { stroke: currentColor; }
@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 var(--line);
		background: var(--bg-2);
	}
	.main-nav--centered .main-nav__head::before,
	.main-nav--centered .main-nav__head::after { content: none; }
	.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: var(--text);
		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(245,240,232,0.064);
		border: 0;
		color: var(--text);
		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: currentColor; color: var(--text); }
	.main-nav--centered .main-nav__close:hover { background: rgba(122,184,122,.25); color: var(--gold); }
	.main-nav--centered .main-nav__close:hover svg { stroke: var(--gold); color: var(--gold); }
	.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: auto;
	height: auto;
	background: transparent;
	border: 0;
	box-shadow: none;
	overflow: visible;
	flex-shrink: 0;
	line-height: 1;
	padding: 0 2px;
}
.cart-drawer__pay-icons .cbdco-pay-brand .fa-brands { font-size: 24px; }
.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-body);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	color: var(--text);
	white-space: nowrap;
}
.sp-pay__label svg { width: 14px; height: 14px; opacity: 0.9; color: var(--text); }
.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: auto;
	height: auto;
	background: transparent;
	border: 0;
	overflow: visible;
	line-height: 1;
	padding: 0 3px;
}
.sp-pay__list .cbdco-pay-brand .fa-brands { font-size: 28px; }
.sp-pay__list .cbdco-pay-brand svg { display: block; width: 100%; height: 100%; }
@media (max-width: 720px) {
	.sp-pay { padding: 10px 12px; gap: 6px; justify-content: center; }
	.sp-pay__label { font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; }
	.sp-pay__label svg { width: 13px; height: 13px; }
	.sp-pay__list .cbdco-pay-brand { width: 32px; height: 22px; }
	.single-product .sp-eta,
	.sp-eta {
		display: block !important;
		text-align: center;
		font-size: 12px;
		margin-bottom: 10px;
	}
	.sp-eta__icon {
		display: inline-block !important;
		width: 18px; height: 18px;
		vertical-align: -4px;
		margin-right: 6px;
	}
	.sp-eta__text { display: inline !important; flex: 0 1 auto !important; }
	.sp-eta__link { display: inline-flex !important; margin-left: 6px; font-size: 11.5px; vertical-align: middle; }
}

/* === 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 14px !important; }
	.cart-drawer__shipping-msg { font-size: 13px; margin-bottom: 10px; }
	.cart-drawer__foot { padding: 14px 18px 18px; }
	.cart-drawer__coupon { padding: 2px; border-radius: 8px; box-shadow: none; }
	.cart-drawer__coupon::before { left: 9px; font-size: 12px; opacity: .7; }
	.cart-drawer__coupon-input {
		padding: 6px 8px 6px 28px !important;
		font-size: 12px;
		letter-spacing: 0.04em;
	}
	.cart-drawer__coupon-input::placeholder { font-size: 12px; }
	.cart-drawer__coupon-btn {
		padding: 0 10px;
		font-size: 10.5px;
		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: #ffffff;
	background-image: repeating-linear-gradient(45deg, rgba(122,184,122, 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, #f5f0e8 0%, #f5f0e8 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); }
/* Accordéon FAQ : cartes blanches arrondies, séparées, sans liseré vert.
   Le cadre vert qui apparaissait à l'ouverture était l'anneau de focus du
   navigateur sur le <summary> — neutralisé plus bas. */
.faq-item {
	background: #ffffff;
	border: 1px solid var(--line);
	border-radius: 12px;
	margin-bottom: 10px;
	padding: 0 18px;
	transition: border-color .18s ease, background .18s ease;
}
.faq-item[open] {
	background: var(--bg-1);
	border-color: var(--line-2);
}
.faq-item summary:focus { outline: none; }
.faq-item summary:focus-visible {
	outline: 2px solid var(--line-2);
	outline-offset: 2px;
	border-radius: 8px;
}
.faq-item summary {
	list-style: none;
	cursor: pointer;
	padding: 16px 0;
	display: flex; justify-content: space-between; align-items: center; gap: 16px;
	color: var(--text);
	font-size: 14.5px;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary span.faq-num {
	font-family: var(--font-mono);
	font-size: 12px;
	background: none;
	-webkit-text-fill-color: var(--green);
	color: var(--green);
	margin-right: 16px;
	letter-spacing: 0.15em;
}
.faq-item summary::after {
	content: "+";
	background: none;
	-webkit-text-fill-color: var(--green);
	color: var(--green);
	font-size: 21px;
	line-height: 1;
	transition: transform .2s ease;
}
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-item__answer { padding: 0 0 18px 36px; color: var(--text-dim); font-size: 14px; line-height: 1.6; }

/* ============================================================
   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;
	/* Cartes blanches, comme les autres blocs du site. */
	padding: 16px 18px;
	background: #ffffff;
	border: 1px solid var(--line, #d8d0c4);
	border-radius: 12px;
}
.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: 14.5px;
	font-weight: 600;
	color: var(--text, var(--text));
	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: 2px 0 0;
	font-size: 13.5px;
	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: #1a2a1a;
	padding: 56px var(--container-px, 24px) 24px;
	border-top: 1px solid var(--line);
}
/* Zone sombre : le footer redéfinit localement les tokens de couleur pour que
   TOUT ce qu'il contient (textes secondaires, filets, cartes) reste lisible sur
   noir, sans avoir à surcharger chaque règle une par une. Même principe pour le
   bandeau promo (.topbar). */
.site-footer {
	--text: #ffffff;
	--text-dim: rgba(255,255,255,0.74);
	--text-mute: rgba(255,255,255,0.55);
	--line: rgba(255,255,255,0.14);
	--line-2: rgba(255,255,255,0.24);
	--bg-0: #000000;
	--bg-1: #1a1a1a;
	--bg-2: #1b1e16;
	--bg-3: #22261d;
	--card: #1a1a1a;
	color: var(--text);
}
.topbar {
	--text: #ffffff;
	--text-dim: rgba(255,255,255,0.78);
	--text-mute: rgba(255,255,255,0.6);
	--line: rgba(255,255,255,0.16);
}
.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; }
/* Titres de colonnes : blanc plein, police du site. Ils étaient en police
   mono + `--gold-gradient` découpé sur le texte, ce qui donnait un dégradé
   vert pâle → vert moyen sur le fond sombre — sale et peu lisible. */
.site-footer h4,
.site-footer__col-title {
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 600;
	background: none;
	-webkit-background-clip: border-box;
	background-clip: border-box;
	-webkit-text-fill-color: #ffffff;
	color: #ffffff;
	letter-spacing: 0.18em;
	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; }
/* Survol : vert CLAIR. `--gold` (#2d4a2d) est le vert foncé du site — sur le
   fond sombre du footer, le lien devenait quasi invisible au survol. */
.site-footer a:hover { color: var(--accent-light) !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: auto;
	height: auto;
	overflow: visible;
	background: transparent;
	border: 0;
	flex: 0 0 auto;
	line-height: 1;
	padding: 0 4px;
	align-items: center;
}
.site-footer__payments-list .cbdco-pay-brand .fa-brands { font-size: 30px; }
.site-footer__payments-list .cbdco-pay-brand svg { width: 100%; height: 100%; display: block; }
/* Icônes Font Awesome (<i class="fa-brands fa-cc-visa">…) — rendu natif FA :
   couleur dorée uniforme, pas de fond, pas de bordure. Pour CB/Monetico/Maestro
   qui restent en SVG custom, on garde la teinte gold via filter (cf. plus bas). */
.cbdco-pay-brand .fa-brands {
	line-height: 1;
	color: var(--green);
	display: inline-block;
	width: 1.6em;
	text-align: center;
	overflow: visible;
}
.cbdco-pay-brand { align-items: center; justify-content: center; overflow: visible; }
.cbdco-pay-brand svg {
	display: block;
	color: var(--green);
	width: auto;
}
.cart-drawer__pay-icons .cbdco-pay-brand svg { height: 16px; }
.sp-pay__list .cbdco-pay-brand svg { height: 18px; }
.site-footer__payments-list .cbdco-pay-brand svg { height: 20px; }
.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: 12px;
	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: 12px;
	letter-spacing: 0.06em;
	text-transform: none;
}
.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(245,240,232,0.096) !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 currentColor;
		border-bottom: 1.5px solid currentColor;
		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: 10px;
	}
	.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(122,184,122,.22) 0%, transparent 50%),
		radial-gradient(circle at 80% 30%, rgba(45,74,45,.18) 0%, transparent 50%),
		linear-gradient(135deg, #f5f0e8 0%, #ede8df 50%, #f5f0e8 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(122,184,122,.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 (gauche-haut, pour cadrer
	   le sujet plutôt que le centrer sur le contenu coupé en mobile). */
	.page-hero--has-image::before { background-position: 20% 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; }
.page-hero--account-logout .page-hero__inner { margin-top: -10px; }
@media (max-width: 600px) {
	.page-hero--account-logout .page-hero__inner { margin-bottom: 21px; }
	body.woocommerce-account:not(.logged-in) .page-hero--account-logout { margin-left: 18px; margin-right: 18px; }
	body.woocommerce-account:not(.logged-in) .page-hero--account-logout > .container { padding-left: 16px !important; padding-right: 16px !important; }
}
/* 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 {
	background: none !important;
	-webkit-text-fill-color: var(--text) !important;
	color: var(--text) !important;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.6);
	font-size: 13px;
}
.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: var(--text);
	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: var(--text); 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: var(--text); 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: var(--text) !important;
	opacity: 1 !important;
}
body.tax-product_cat .page-hero .eyebrow {
	background: none !important;
	-webkit-text-fill-color: var(--text) !important;
	color: var(--text) !important;
}

/* ------------------------------------------------------------------
   Lisibilité du hero : deux fonds possibles, donc deux couleurs de texte.

   - Sans image : fond crème clair → texte sombre. `.page-hero__descr`
     était resté en #f5f5f5 (héritage du thème sombre d'origine), donc
     illisible ; on le repasse en var(--text).
   - Avec image : `.page-hero--has-image::after` pose un voile noir
     (0.45 à 0.70 d'opacité) prévu pour du texte clair, mais aucune règle
     ne passait titre / fil d'Ariane / compteur en blanc. On le fait ici,
     sinon toute image de catégorie rend l'en-tête illisible.
   `-webkit-text-fill-color` est indispensable : plusieurs de ces éléments
   portent un dégradé en background-clip, qui ignore `color` seul.
   ------------------------------------------------------------------ */
/* Hero sans image de catégorie : aplat vert du site (même valeur que la topbar
   et le footer) au lieu du dégradé crème animé d'origine. Le texte passe donc
   en clair, comme sur les autres zones vertes. Les particules du ::before, des
   points vert pâle pensés pour le fond crème, sont désactivées. */
.page-hero:not(.page-hero--has-image) {
	background: var(--topbar-bg);
	animation: none;
}
.page-hero:not(.page-hero--has-image)::before { display: none; }
.page-hero:not(.page-hero--has-image) h1,
.page-hero:not(.page-hero--has-image) .eyebrow,
.page-hero:not(.page-hero--has-image) .breadcrumb,
.page-hero:not(.page-hero--has-image) .breadcrumb a,
.page-hero:not(.page-hero--has-image) .breadcrumb a:visited,
.page-hero:not(.page-hero--has-image) .breadcrumb .breadcrumb__sep,
body.tax-product_cat .page-hero:not(.page-hero--has-image) .eyebrow,
body.tax-product_cat .page-hero:not(.page-hero--has-image) .breadcrumb,
body.tax-product_cat .page-hero:not(.page-hero--has-image) .breadcrumb a,
body.tax-product_cat .page-hero:not(.page-hero--has-image) .breadcrumb a:visited,
body.tax-product_cat .page-hero:not(.page-hero--has-image) .breadcrumb .breadcrumb__sep {
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	background: none !important;
	opacity: 1 !important;
}
.page-hero:not(.page-hero--has-image) .breadcrumb .breadcrumb__sep { opacity: 0.55 !important; }
.page-hero:not(.page-hero--has-image) .breadcrumb a:hover {
	color: var(--accent-light) !important;
	-webkit-text-fill-color: var(--accent-light) !important;
}
.page-hero:not(.page-hero--has-image) .page-hero__descr {
	color: #f0f0f0;
	text-shadow: none;
}
.page-hero--has-image h1,
.page-hero--has-image .eyebrow,
.page-hero--has-image .breadcrumb,
.page-hero--has-image .breadcrumb a,
.page-hero--has-image .breadcrumb a:visited,
.page-hero--has-image .breadcrumb .breadcrumb__sep,
body.tax-product_cat .page-hero--has-image .eyebrow,
body.tax-product_cat .page-hero--has-image .breadcrumb,
body.tax-product_cat .page-hero--has-image .breadcrumb a,
body.tax-product_cat .page-hero--has-image .breadcrumb a:visited,
body.tax-product_cat .page-hero--has-image .breadcrumb .breadcrumb__sep {
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	background: none !important;
	opacity: 1 !important;
}
.page-hero--has-image .breadcrumb a:hover {
	color: var(--accent-light) !important;
	-webkit-text-fill-color: var(--accent-light) !important;
}
.page-hero--has-image .breadcrumb .breadcrumb__sep { opacity: 0.55 !important; }
.page-hero--has-image .page-hero__descr { color: #f0f0f0; }

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

/* Catégories produit : si pas de pagination, on remonte la marge basse pour
   éviter le vide entre le dernier produit et le footer. */
body.woocommerce.archive .page-content:not(:has(.woocommerce-pagination)) {
	margin-bottom: -17px;
}
@media (max-width: 700px) {
	body.woocommerce.archive .page-content:not(:has(.woocommerce-pagination)) {
		margin-bottom: 1px;
	}
}

/* ============================================================
   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: 13px !important;
	}
	.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 .filter-group:first-child .filter-group__title {
		margin-top: -3px !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;
		margin-bottom: 19px;
	}
}
/* 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(122,184,122, 0.04);
	border: 1px dashed rgba(122,184,122, 0.28);
	border-radius: 10px;
	text-align: center;
}
.shop-filters__empty-icon {
	color: var(--gold, var(--green));
	opacity: 0.85;
}
.shop-filters__empty-title {
	margin: 0;
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 600;
	color: var(--text, #e8f5e9);
	letter-spacing: 0.2px;
}
.shop-filters__empty-text {
	margin: 0;
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--text-dim);
}
.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(122,184,122,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: var(--btn-fg);
	font-weight: 600;
}
.filter-pill.is-active em { color: rgba(9,25,11,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: var(--btn-fg);
}
.filter-bin.is-active span { color: rgba(9,25,11,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: var(--btn-fg);
	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: var(--btn-fg);
	color: var(--btn-fg);
}
.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(9,25,11,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(201,230,201, 0.10) 45%, rgba(201,230,201, 0.20) 50%, rgba(201,230,201, 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: var(--btn-fg);
	box-shadow: 0 2px 10px rgba(122,184,122, 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: var(--btn-fg);
	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); }
@media (max-width: 1023px) {
	.filter-price__btn,
	button.filter-price__btn,
	.shop-sidebar .filter-price__btn,
	.shop-sidebar button.filter-price__btn {
		font-size: 10.5px !important;
		padding: 5px 10px !important;
		letter-spacing: 0.06em !important;
		min-height: 28px !important;
		height: auto !important;
		line-height: 1.2 !important;
	}
}
/* 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: var(--btn-fg);
	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(4, 1fr);
	gap: 16px;
}
/* Sous 1500px la sidebar (280px + 32px de gouttière) laisse trop peu de place
   pour 4 cartes lisibles : on repasse à 3 avant de tomber à 2 à 1279px. */
@media (max-width: 1499px) { .woocommerce ul.products, ul.products { grid-template-columns: repeat(3, 1fr); } }
.shop-main > ul.products:last-child { margin-bottom: 0; }
@media (max-width: 768px) { .shop-main > ul.products:last-child { margin-bottom: 22px; } }
/* 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;
	/* Crème très clair (plus clair que le fond de page, sans aller au blanc
	   pur) : la carte ressort sans trancher. */
	background: var(--card);
	border: 1px solid var(--line);
	/* Coins arrondis, comme le hero et les pastilles du header. `overflow`
	   masque les angles de l'image produit qui déborderaient du rayon. */
	border-radius: 12px;
	overflow: hidden;
	padding: 0;
	display: flex; flex-direction: column;
	/* On ne transitionne PAS `background` : l'ancien survol passait d'une
	   couleur unie à un fond multi-couches (bordure dégradée), que le
	   navigateur ne sait pas interpoler — d'où l'éclair vert d'une demi-
	   seconde. Le survol ne touche plus qu'à la bordure et à l'ombre. */
	transition: border-color .2s ease, box-shadow .2s ease;
	position: relative;
}
ul.products li.product:hover {
	border-color: var(--gold);
	box-shadow: 0 10px 24px rgba(15, 42, 30, 0.08);
}
.product__media-wrap {
	position: relative;
	overflow: hidden;
}
.product__media {
	aspect-ratio: 1 / 1;
	background-color: #fff;
	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;
}
/* Pastilles "Nouveau"/"Coup de cœur" : fond vert plein, texte blanc (le texte
   était en anthracite sur du vert foncé, donc illisible). */
.badge--featured,
.badge--new,
.badge--limited {
	background: var(--gold);
	color: #ffffff;
	-webkit-text-fill-color: #ffffff;
	border: 1px solid var(--gold);
	font-weight: 600;
}
.badge--featured *,
.badge--new *,
.badge--limited * { color: inherit; -webkit-text-fill-color: inherit; }
.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(--star); 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: 280px;
	max-width: calc(100vw - 16px);
	/* Fond blanc + ombre douce : le beige et l'ombre noire à 50 % (héritées du
	   thème sombre) donnaient l'impression d'un bloc qui déborde de la carte. */
	background: #ffffff;
	border: 1px solid var(--line);
	border-radius: 12px;
	box-shadow: 0 8px 24px rgba(20, 40, 24, 0.14);
	padding: 12px 12px 10px;
	color: var(--text);
	font-size: 12.5px;
	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: #ffffff;
	border: 1px solid var(--line);
}
.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: 14px;
	margin-bottom: 8px;
	padding-bottom: 7px;
	border-bottom: 1px solid var(--line);
}
.cbdco-rating-popover__head strong {
	/* La note dominait toute l'infobulle. */
	font-size: 17px;
	font-weight: 700;
	color: var(--green, #2d4a2d);
}
.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(245,240,232,0.78);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border: 1px solid rgba(122,184,122,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(122,184,122,0.55);
	box-shadow: 0 6px 18px rgba(0,0,0,0.45);
}
.product__rating--overlay .cbdco-stars__avg {
	color: var(--text);
	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;
}

/* Ruban "offre du moment" (cadeaux / BOGO). Affiché À LA PLACE du nom de
   catégorie (.product__cat) quand le produit a une offre en cours, collé en
   bas de la photo : bandeau pleine largeur en haut du .product__body (qui a
   un padding 20px haut / 22px côtés → marges négatives pour déborder). */
.product__offers {
	align-self: stretch;           /* sinon centré (le body est align-items:center) → ici pleine largeur */
	margin: -20px -22px 8px;       /* -20px haut = annule le padding-top du body → ruban COLLÉ au bas de la photo ; -22px côtés = pleine largeur carte */
	display: flex; flex-direction: column;
}
.product__offer {
	position: relative;
	overflow: hidden;
	display: flex; align-items: center; justify-content: center; gap: 6px;
	margin-bottom: 10px;
	padding: 9px 12px;
	font-family: var(--font-display);
	font-size: 12.5px; font-weight: 600;
	letter-spacing: 0.02em; line-height: 1.15;
	text-align: center;
	/* Aplat vert très clair + texte vert foncé, comme la pastille de la fiche
	   produit. L'ancien ruban était un dégradé vert soutenu qui ondulait en
	   boucle, avec un reflet qui le balayait : beaucoup trop agressif sur une
	   grille de 20 cartes. */
	color: #ffffff;
	background: var(--green);
}
@keyframes cbdco-offer-bg {
	0%   { background-position:   0% 50%; }
	100% { background-position: 300% 50%; }
}
/* Reflet brillant qui balaie le ruban en continu. */
.product__offer::before {
	content: "";
	position: absolute;
	top: 0; bottom: 0; left: -75%;
	width: 50%;
	display: none;
}
@keyframes cbdco-offer-shine {
	0%   { left: -75%; }
	100% { left: 175%; }
}
@media (prefers-reduced-motion: reduce) {
	.product__offer,
	.product__offer::before,
	.product__offer-ico { animation: none !important; }
	.product__offer::before { display: none; }
}
/* Plusieurs offres empilées : fin séparateur. */
.product__offer + .product__offer { border-top: 1px solid rgba(255,255,255,0.25); }
/* Icône cadeau au trait, immobile. */
.product__offer-ico {
	display: inline-flex;
	align-items: center;
	line-height: 1;
	color: #ffffff;
}
.product__offer-ico svg { display: block; }
@keyframes cbdco-offer-ico {
	0%, 100% { transform: rotate(0deg)   scale(1); }
	20%      { transform: rotate(-14deg) scale(1.15); }
	40%      { transform: rotate(10deg)  scale(1.1); }
	60%      { transform: rotate(-6deg)  scale(1.12); }
	80%      { transform: rotate(4deg)   scale(1.05); }
}

/* Fiche produit — bannière offre du moment (plus grande). */
.sp-offers { display: flex; flex-direction: column; gap: 8px; margin: 14px 0 4px; }
.sp-offer {
	display: inline-flex; align-items: center; gap: 10px;
	align-self: flex-start;
	padding: 8px 13px;
	border-radius: 10px;
	font-family: var(--font-display);
	font-size: 13px; font-weight: 600; line-height: 1.1;
	/* Pastille d'offre : aplat vert TRÈS clair + texte vert foncé. L'ancien
	   dégradé vert soutenu portait un texte encre — illisible et beaucoup trop
	   agressif à côté du prix. */
	color: #ffffff;
	background: var(--green);
	border: 1px solid var(--green);
	box-shadow: none;
}
.sp-offer-ico { display: inline-flex; align-items: center; line-height: 1; color: #ffffff; }
.sp-offer-ico svg { display: block; }

/* "À 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; }
/* Produits simples (carte catalogue) : pas de sélecteur de format → le margin
   de 20px sous le prix crée un gros vide avant le bouton. On le supprime. */
li.product.product-type-simple .product__price-row { margin-bottom: 0; }
.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: var(--text);
	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 { font-size: 17px !important; }
	ul.products .product__price,
	ul.products li.product .price { font-size: 15px !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 { font-size: 15px !important; }
	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; }
	/* Ruban offre : collé au bas de la photo (-14px = padding-top mobile) + débord latéral (12px). */
	ul.products li.product .product__offers { margin: -14px -12px 4px; }
	ul.products li.product .product__offer { padding: 7px 10px; font-size: 11px; }
	/* 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).
   font-size scopé en min-width: 769px pour ne pas écraser les @media mobile
   (qui sont en amont en source order avec même spécificité + !important). */
ul.products .product__price,
ul.products li.product .price {
	color: var(--text);
	font-family: var(--font-display);
	font-weight: 600;
	margin: 0 0 8px;
	letter-spacing: 0.02em;
	line-height: 1;
}
@media (min-width: 769px) {
	ul.products .product__price,
	ul.products li.product .price { font-size: 20px !important; }
}
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: var(--text) !important; text-decoration: none; }
ul.products li.product .price del,
ul.products .product__price del { color: var(--text-mute); font-size: 0.8em; margin-right: 6px; font-weight: 400; }
/* Force le gris sur les enfants du <del> (.woocommerce-Price-amount et bdi
   héritent du #fff !important de la règle plus haut sinon → prix barré blanc). */
ul.products li.product .price del,
ul.products li.product .price del *,
ul.products li.product .price del .woocommerce-Price-amount,
ul.products li.product .price del .woocommerce-Price-amount *,
ul.products li.product .price del bdi,
ul.products .product__price del,
ul.products .product__price del *,
ul.products .product__price del .woocommerce-Price-amount,
ul.products .product__price del .woocommerce-Price-amount *,
ul.products .product__price del bdi { color: var(--text-mute) !important; -webkit-text-fill-color: var(--text-mute) !important; }

/* 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);
	/* (la barre passe en blanc dans le bouton vert — cf. .card-cta__regular) */
	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;
	/* Même arrondi que les boutons du site, pas une gélule. */
	border-radius: 6px;
	text-transform: uppercase;
	line-height: 1;
}
.pill__icon { font-size: 11px; line-height: 1; }
.pill--cbd {
	background: rgba(122,184,122, 0.14);
	color: var(--gold-soft);
	border: 1px solid var(--gold-2);
}
.pill--culture {
	background: rgba(76, 175, 80, 0.16);
	color: var(--green);
	border: 1px solid rgba(76, 175, 80, 0.45);
}
.pill--sale {
	background: #d33b3b;
	color: #fff;
	border: 1px solid transparent;
	font-weight: 700;
}
/* Mention légale THC : bleu pâle sur bleu pâle, illisible et hors charte.
   On la passe en vert clair du site, comme les autres pastilles. */
.pill--thc {
	background: var(--accent-soft, #e8f0e8);
	color: var(--green, #2d4a2d);
	border: 1px solid var(--line, #d8d0c4);
}
/* Échelle d'intensité — héritée de la charte sombre, où le texte était pâle
   sur fond noir : sur fond clair il devenait illisible. On garde la même
   progression (vert → ambre → rouge → vert profond) avec des aplats teintés
   très clairs et un texte foncé. */
.pill--intensity-leger {
	background: var(--accent-soft);
	color: var(--gold);
	border: 1px solid rgba(45, 74, 45, 0.28);
}
.pill--intensity-fort {
	background: rgba(244, 164, 25, 0.14);
	color: #8a5a06;
	border: 1px solid rgba(244, 164, 25, 0.55);
}
.pill--intensity-puissant {
	background: rgba(196, 82, 63, 0.12);
	color: var(--danger);
	border: 1px solid rgba(196, 82, 63, 0.45);
}
/* Niveau ultime « Extrêmement puissant » : le plus appuyé de l'échelle. */
.pill--intensity-extreme {
	background: var(--gold);
	color: #ffffff;
	border: 1px solid var(--gold-2);
	box-shadow: 0 2px 10px rgba(15, 42, 30, 0.22);
	font-weight: 700;
}

/* 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;
	/* Chevron au vert du thème : il était codé en dur en `%23d4a648`, le doré
	   de cbdconnection, seule touche dorée restante sur la carte.
	   Fond clair uni + vraie bordure fine, au lieu du montage
	   padding-box/border-box qui simulait un liseré vert épais sur un aplat
	   beige (--bg-3) étranger à la palette. */
	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='%232d4a2d' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat right 12px center,
		var(--bg-1);
	border-color: rgba(45, 74, 45, 0.22);
	/* 8px : rayon intérieur cohérent avec les 12px de la carte produit
	   (l'ancien 4px tranchait avec tout le reste). */
	border-radius: 8px;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.card-variation-select:hover { border-color: rgba(45, 74, 45, 0.45); }
.card-variation-select:focus {
	outline: none;
	border-color: var(--gold);
	box-shadow: 0 0 0 3px rgba(45, 74, 45, 0.12);
}
.card-variation-select option { background: var(--bg-1); color: var(--text); padding: 6px; font-size: 14px; text-align: center; }
.card-variation-select option:checked { background: var(--gold); color: var(--btn-fg); }

/* 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);
	/* Fond clair uni + vraie bordure fine, au lieu du montage
	   padding-box/border-box qui posait un aplat beige (--bg-3) cerné d'un
	   liseré vert épais — étranger au reste des cartes.
	   Rayon 8px : cohérent avec les 12px de la carte qui le contient
	   (l'ancien 4px tranchait avec tout le reste). */
	border: 1px solid rgba(45, 74, 45, 0.22);
	border-radius: 8px;
	cursor: pointer;
	background: var(--bg-1);
	transition: border-color .15s ease, box-shadow .15s ease;
	position: relative;
}
.cbdco-cardsel__btn:hover { border-color: rgba(45, 74, 45, 0.45); }
.cbdco-cardsel__btn:focus {
	outline: none;
	border-color: var(--gold);
	box-shadow: 0 0 0 3px rgba(45, 74, 45, 0.12);
}
/* 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: 14.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;
	/* Surface claire + ombre verte douce. C'était `--bg-2` (#ede8df, un beige
	   terne) avec une ombre noire à 40% héritée du thème sombre : le panneau
	   déroulé jurait avec la carte blanche qui l'ouvre. */
	background: #ffffff;
	border: 1px solid rgba(45, 74, 45, 0.18);
	border-radius: 8px;
	box-shadow: 0 10px 28px rgba(20, 40, 24, 0.16), 0 2px 6px rgba(20, 40, 24, 0.08);
	/* 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: 6px;
	cursor: pointer;
	transition: background .12s ease, color .12s ease;
}
.cbdco-cardsel__opt:hover { background: rgba(45, 74, 45, 0.08); }
/* Option courante : aplat vert du site + texte blanc, comme les autres
   éléments sélectionnés (case de variation, option d'un select natif). */
.cbdco-cardsel__opt.is-active {
	background: var(--gold);
	color: var(--btn-fg);
	-webkit-text-fill-color: var(--btn-fg);
}

/* 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: 12px;
		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: var(--btn-fg);
	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: 600; text-transform: uppercase; letter-spacing: 0; flex-shrink: 0; }
.card-cta__prices {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
}
/* Prix barré DANS le bouton vert : blanc translucide (il était gris foncé,
   donc illisible sur le vert). */
.card-cta__regular {
	color: rgba(255,255,255, 0.78);
	-webkit-text-fill-color: rgba(255,255,255, 0.78);
	text-decoration: line-through;
	text-decoration-thickness: 1px;
	font-size: 12px;
	font-weight: 500;
}
.card-cta__regular * {
	color: inherit;
	-webkit-text-fill-color: inherit;
}
/* La barre de rature du prix : blanche dans le bouton vert (elle était rouge,
   seule tache rouge sur un aplat vert). */
.card-cta__regular::after { background: rgba(255,255,255, 0.85); }
.card-cta__price { font-size: 14px; font-weight: 600; }
.card-cta:hover,
ul.products li.product .button:hover { transform: translateY(-1px); color: var(--btn-fg); }
/* 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: var(--btn-fg);
	cursor: pointer;
	outline: none;
}
ul.products li.product .added_to_cart { display: none; }
/* Force la persistance visuelle du bouton "Ajouter au panier" sur les cards loop,
   même après .loading ou .added (WC peut altérer l'opacité ou injecter du markup
   qui ferait disparaître le bouton). */
ul.products li.product .card-cta,
ul.products li.product .card-cta.added,
ul.products li.product .add_to_cart_button,
ul.products li.product .add_to_cart_button.added {
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
}
ul.products li.product .card-cta.loading,
ul.products li.product .add_to_cart_button.loading {
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: none !important;
	padding-right: 14px !important;
}
ul.products li.product .card-cta.loading::after,
ul.products li.product .add_to_cart_button.loading::after,
.card-cta.loading::after,
.button.loading::after,
.add_to_cart_button.loading::after { content: none !important; display: none !important; animation: none !important; }
ul.products li.product .card-cta { display: inline-flex !important; }
/* "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: #2d4a2d !important;
	color: var(--btn-fg) !important;
	box-shadow: 0 4px 14px rgba(122,184,122,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: #2d4a2d !important;
	color: var(--btn-fg) !important;
	font-weight: 700 !important;
	box-shadow: 0 4px 14px rgba(122,184,122,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(122,184,122,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: #2d4a2d !important;
	color: var(--btn-fg) !important;
	box-shadow: 0 4px 14px rgba(122,184,122,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(122,184,122, 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: var(--btn-fg);
	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: var(--btn-fg) !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(122,184,122, 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(122,184,122, 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"]:not(.cbdco-search-form__input):not(.site-search__input),
input[type="email"], input[type="password"], input[type="tel"], input[type="number"],
input[type="search"]:not(.cbdco-search-form__input):not(.site-search__input),
textarea, select {
	/* Champs de saisie en BLANC sur tout le site (le crème --bg-3 se confondait
	   avec le fond de page). Règle globale : elle gagne sur les feuilles
	   spécifiques (contact, checkout…) grâce à sa spécificité. */
	background: #ffffff;
	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(122,184,122, 0.15);
}
.cbdco-search-form__input:focus,
.site-search__input:focus { outline: none; box-shadow: none; border: 0; }

/* 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;
	margin-top: -16px;
}
.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 {
	/* Surface claire : `--bg-2` (#ede8df) donnait un encart terne, illisible
	   sous le texte gris de la description du moyen de paiement. */
	background: #ffffff;
	border: 1px solid rgba(45, 74, 45, 0.16);
	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: var(--btn-fg);
	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(122,184,122, 0.30);
	transition: transform .2s ease, box-shadow .2s ease;
}
.woocommerce-checkout #place_order:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 22px rgba(122,184,122, 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;
	/* Footer minimal posé sur le fond crème : on rétablit les tokens clairs
	   (le footer noir met --text à blanc, illisible ici). */
	--text: #1a1a1a;
	--text-dim: #5a5a5a;
	--text-mute: #8a8a8a;
	--line: #d8d0c4;
	--line-2: #c6bcae;
}
body.woocommerce-cart .site-footer a,
body.woocommerce-checkout .site-footer a,
body.woocommerce-cart .site-footer__legal-links a,
body.woocommerce-checkout .site-footer__legal-links a { color: var(--text-dim) !important; }
body.woocommerce-cart .site-footer__legal-links a:hover,
body.woocommerce-checkout .site-footer__legal-links a:hover { color: var(--gold) !important; }
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;
}
body:has(.cbdco-empty-cart) .site-footer__bottom { border-top: 0; }
/* 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: 22px 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) .site-main.wc-main > .container { padding: 0 var(--container-px); }
@media (max-width: 600px) {
	body.woocommerce-account:not(.logged-in) .site-main.wc-main > .container { padding: 0; }
	.cbdco-login { padding: 4px 0 0; }
	.cbdco-login__grid { grid-template-columns: 1fr; gap: 14px; margin-bottom: 10px; }
	.cbdco-login__card { padding: 16px 12px 14px; border-radius: 12px; }
	.cbdco-login__card--register { margin-bottom: 23px; }
	.cbdco-login__card--lostpw { margin-bottom: 24px; }
	.cbdco-login__grid--single { max-width: none; margin: 0 0 10px; }
	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 { padding: 10px 12px 10px 38px !important; font-size: 12.5px !important; }
	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 { left: 10px; width: 20px; height: 20px; font-size: 12px; }
	.cbdco-login__card-head { margin-bottom: 16px; }
	.cbdco-login__card-head h3 { font-size: 18px; }
	.cbdco-login__card-head p { font-size: 13px; }
	.cbdco-login__form { gap: 10px; }
	.cbdco-login__form label { font-size: 12px; }
	.cbdco-login__form input[type="text"],
	.cbdco-login__form input[type="email"],
	.cbdco-login__form input[type="password"],
	.cbdco-login__form .input-text { height: 44px !important; min-height: 44px !important; font-size: 14px !important; }
	.cbdco-login__row-meta { gap: 8px; font-size: 13px; flex-wrap: nowrap !important; justify-content: space-between !important; }
	.cbdco-login__row-meta .lost_password,
	.cbdco-login__row-meta a[href*="lost-password"],
	.cbdco-login__row-meta .cbdco-login__forgot { margin-left: auto !important; flex: 0 0 auto; white-space: nowrap; font-size: 13px; }
	.cbdco-login__remember { white-space: nowrap; flex: 0 0 auto; }
	.cbdco-login__remember span,
	.cbdco-login__remember label { white-space: nowrap; }
	.cbdco-login__submit { padding: 11px 20px; font-size: 13px; margin-top: 4px; }
}
@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(122,184,122, 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: var(--btn-fg) !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(122,184,122, 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(122,184,122, 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(122,184,122, 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: var(--btn-fg) !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: 27px 0 -32px;
}
@media (max-width: 1024px) { .account-layout { grid-template-columns: 1fr; gap: 20px; margin: 8px 0 -32px; } }

/* ============================================================
   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) !important;
	border: 1px solid var(--line) !important;
	border-radius: 16px !important;
	padding: 14px !important;
	position: sticky;
	top: 88px;
	align-self: start;
	outline: 0 !important;
	box-shadow: none !important;
	background-image: none !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation::before,
.woocommerce-account .woocommerce-MyAccount-navigation::after { display: none !important; content: none !important; }
.woocommerce-account .woocommerce-MyAccount-navigation > * { outline: 0 !important; border: 0 !important; padding: 0 !important; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { border: 0 !important; outline: 0 !important; box-shadow: none !important; }
.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(122,184,122, 0.07);
	color: var(--text);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
	background: var(--btn-bg);
	color: var(--btn-fg);
	font-weight: 700;
	box-shadow: 0 6px 20px -8px rgba(122,184,122, 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-radius: 10px;
	padding-top: 12px;
	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 --- */
/* Padding symetrique : meme marge haut / bas / gauche / droite, identique
   sur toutes les pages de l'espace membre (tableau de bord, commandes,
   adresses, cash back, missions, historique...). */
.woocommerce-account .woocommerce-MyAccount-content {
	background: var(--bg-2);
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 26px;
	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: 22px; } }

/* --- Hero (welcome) --- */
.cbdco-account__hero {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
	margin-bottom: 40px;
	padding-bottom: 0;
}
.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: var(--btn-fg);
	display: grid;
	place-items: center;
	font-size: 30px;
	font-weight: 800;
	letter-spacing: -0.02em;
	box-shadow: 0 8px 24px -8px rgba(122,184,122, 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(122,184,122, 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(122,184,122, 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: 16px 21px;
	display: flex;
	align-items: center;
	gap: 16px;
	transition: border-color .25s, transform .25s;
}
.cbdco-account__stat:hover { border-color: rgba(122,184,122, 0.32); transform: translateY(-2px); }
.cbdco-account__stat-icon {
	width: 48px; height: 48px;
	flex: 0 0 48px;
	border-radius: 12px;
	background: rgba(122,184,122, 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: 21px;
	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-family: var(--font-display);
	font-size: 22px;
	font-weight: 600;
	letter-spacing: 0.04em;
	background: var(--gold-gradient, #2d4a2d);
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent; color: transparent;
}
.cbdco-account__section-sub {
	color: var(--text-mute, var(--text-mute));
	font-size: 14px;
	margin: 0 0 22px;
}
.cbdco-account__page-head { margin-bottom: 22px; padding-top: 6px; }
.cbdco-account__page-head .cbdco-account__section-title { margin-bottom: 8px; }
.cbdco-account__page-head .cbdco-account__section-sub { margin: 0; }
/* Masquer les h2 natifs des templates plugin loyalty dont on a deja un header injecte. */
.woocommerce-account .wc-loyalty-history > h2:first-child { display: none; }
/* Rythme vertical unifie pour tous les onglets : top du card → 22px puis
   contenu, bottom du card → 25px puis contenu. Aucun margin-top du premier
   enfant ni margin-bottom du dernier enfant pour eviter les decalages. */
.woocommerce-MyAccount-content > :first-child,
.woocommerce-MyAccount-content > .cbdco-account__section:first-child,
.woocommerce-MyAccount-content .wc-loyalty-missions > :first-child,
.woocommerce-MyAccount-content .wc-loyalty-history > :first-child,
.woocommerce-MyAccount-content .wc-loyalty-dashboard > :first-child {
	margin-top: 0 !important;
}
.woocommerce-MyAccount-content > :last-child,
.woocommerce-MyAccount-content > .cbdco-account__section:last-child > :last-child,
.woocommerce-MyAccount-content .wc-loyalty-missions > :last-child,
.woocommerce-MyAccount-content .wc-loyalty-history > :last-child,
.woocommerce-MyAccount-content .wc-loyalty-dashboard > :last-child {
	margin-bottom: 0 !important;
}
.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(122,184,122, 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(245,240,232,0.04);
	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: var(--green); 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(122,184,122, 0.12); color: var(--gold); border-color: rgba(122,184,122, 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(122,184,122, 0.08); color: var(--gold); border-color: rgba(122,184,122, 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(122,184,122, 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(245,240,232,0.016);
	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(122,184,122, 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(122,184,122, 0.1);
	background: var(--gold-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--gold);
	border-color: rgba(122,184,122, 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(122,184,122, 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(122,184,122, 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(245,240,232,0.012);
	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: #ffffff !important;
	background-color: #ffffff !important;
	border: 1px solid #d8d0c4 !important;
	border-radius: 8px !important;
	color: var(--text) !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: #7ab87a !important;
	box-shadow: 0 0 0 3px rgba(122,184,122,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: var(--text) !important;
	-webkit-box-shadow: 0 0 0 1000px #ffffff inset !important;
	box-shadow: 0 0 0 1000px #ffffff inset !important;
	caret-color: var(--text);
	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: var(--text) !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: #ffffff !important; border: 1px solid #d8d0c4 !important; color: var(--text) !important; }
body .select2-search--dropdown .select2-search__field { background: #ffffff !important; border: 1px solid #d8d0c4 !important; color: var(--text) !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(122,184,122,0.12) !important;
	color: var(--green) !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(122,184,122,0.18) !important;
	color: var(--green) !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, var(--btn-fg));
	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(122,184,122, 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, var(--btn-fg));
	transform: translateY(-1px);
	box-shadow: 0 10px 22px -8px rgba(122,184,122, 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: var(--green) !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: var(--green);
	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: 11px 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-notices-wrapper,
body.woocommerce-account:not(.logged-in) .woocommerce-notices-wrapper *,
.cbdco-login .woocommerce-notices-wrapper,
.cbdco-login .woocommerce-notices-wrapper *,
body.woocommerce-account:not(.logged-in) .wc-block-components-notice-banner,
.cbdco-login .wc-block-components-notice-banner {
	box-shadow: none !important;
	outline: 0 !important;
}
body.woocommerce-account:not(.logged-in) .woocommerce-notices-wrapper,
.cbdco-login .woocommerce-notices-wrapper,
body.woocommerce-account:not(.logged-in) .wc-block-components-notice-banner,
.cbdco-login .wc-block-components-notice-banner {
	background: transparent !important;
	border: 0 !important;
	border-left: 0 !important;
	padding: 0 !important;
}
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: 0 !important;
	border-radius: 12px !important;
	padding: 12px 16px 12px 44px !important;
	margin: 0 0 -1px !important;
	color: var(--green) !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;
}
@media (min-width: 601px) {
	body.woocommerce-account.woocommerce-lost-password:not(.logged-in) .woocommerce-message,
	body.woocommerce-account.woocommerce-lost-password:not(.logged-in) .woocommerce-info,
	body.woocommerce-account.woocommerce-lost-password:not(.logged-in) .woocommerce-error,
	body.woocommerce-account.woocommerce-lost-password:not(.logged-in) .woocommerce-notices-wrapper > div {
		margin: -7px 0 12px !important;
	}
	body.woocommerce-account.woocommerce-lost-password.cbdco-reset-password:not(.logged-in) .woocommerce-message,
	body.woocommerce-account.woocommerce-lost-password.cbdco-reset-password:not(.logged-in) .woocommerce-info,
	body.woocommerce-account.woocommerce-lost-password.cbdco-reset-password:not(.logged-in) .woocommerce-error,
	body.woocommerce-account.woocommerce-lost-password.cbdco-reset-password:not(.logged-in) .woocommerce-notices-wrapper > div {
		margin: -2px 0 1px !important;
	}
}
@media (max-width: 600px) {
	body.woocommerce-account.woocommerce-lost-password:not(.logged-in) .woocommerce-message,
	body.woocommerce-account.woocommerce-lost-password:not(.logged-in) .woocommerce-info,
	body.woocommerce-account.woocommerce-lost-password:not(.logged-in) .woocommerce-error,
	body.woocommerce-account.woocommerce-lost-password:not(.logged-in) .woocommerce-notices-wrapper > div {
		margin: -1px 0 12px !important;
	}
	body.woocommerce-account.woocommerce-lost-password.cbdco-reset-password:not(.logged-in) .woocommerce-message,
	body.woocommerce-account.woocommerce-lost-password.cbdco-reset-password:not(.logged-in) .woocommerce-info,
	body.woocommerce-account.woocommerce-lost-password.cbdco-reset-password:not(.logged-in) .woocommerce-error,
	body.woocommerce-account.woocommerce-lost-password.cbdco-reset-password:not(.logged-in) .woocommerce-notices-wrapper > div {
		margin: 2px 0 3px !important;
	}
}
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: var(--green);
	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: 10px;
}
.cbdco-login__grid--single {
	grid-template-columns: 1fr;
	max-width: none;
	margin-top: 0;
	margin-bottom: 12px;
}
.cbdco-login__card--lostpw .cbdco-login__form,
.cbdco-login__card--lostpw .cbdco-login__back-link {
	max-width: 480px;
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}
.cbdco-login__intro {
	margin: 0 0 14px;
	color: var(--text-dim);
	font-size: 13.5px;
	line-height: 1.55;
	text-align: center;
	max-width: 480px;
	margin-left: auto;
	margin-right: auto;
}
.cbdco-login__back-link { text-align: center; margin: 16px 0 0; }
.cbdco-login__back-link a { color: var(--text-dim); font-size: 13px; text-decoration: none; transition: color .15s; }
.cbdco-login__back-link a:hover { color: var(--gold); }

.cbdco-login__confirm { text-align: center; max-width: 480px; margin: 0 auto; padding: 0 0 4px; }
.cbdco-login__confirm-icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 64px; height: 64px; border-radius: 50%;
	background: rgba(120, 200, 130, 0.12);
	color: var(--green);
	margin: 0 auto 14px;
	border: 1px solid rgba(120, 200, 130, 0.28);
}
.cbdco-login__confirm-title {
	margin: 0 0 10px;
	font-family: var(--font-display, 'Inter', sans-serif);
	font-size: 20px;
	font-weight: 700;
	color: var(--text);
	letter-spacing: -0.01em;
}
.cbdco-login__confirm-text {
	margin: 0 0 10px;
	color: var(--text-dim);
	font-size: 14px;
	line-height: 1.55;
}
.cbdco-login__confirm-hint {
	margin: 0;
	color: var(--text-mute, var(--text-mute));
	font-size: 12.5px;
	font-style: italic;
}
@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(122,184,122, 0.32); }
.cbdco-login__card--register {
	border: 1px solid var(--line);
	background: var(--bg-2);
	box-shadow: none;
}

.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: #ffffff !important;
	background-color: #ffffff !important;
	border: 1px solid #d8d0c4 !important;
	border-radius: 8px !important;
	color: var(--text) !important;
	font-family: inherit !important;
	font-size: 13.5px !important;
	height: 42px !important;
	min-height: 42px !important;
	padding: 0 12px !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: #7ab87a !important;
	box-shadow: 0 0 0 3px rgba(122,184,122,0.15) !important;
}
.cbdco-login__form input:-webkit-autofill {
	-webkit-text-fill-color: var(--text) !important;
	-webkit-box-shadow: 0 0 0 1000px #ffffff inset !important;
}
.cbdco-login__row-meta {
	flex-direction: row !important;
	justify-content: space-between !important;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	text-align: left;
}
.cbdco-login__row-meta > * { margin-left: 0 !important; margin-right: 0 !important; }
.cbdco-login__row-meta .lost_password,
.cbdco-login__row-meta a[href*="lost-password"],
.cbdco-login__row-meta .cbdco-login__forgot { margin-left: auto !important; }
.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: #7ab87a;
	cursor: pointer;
	flex-shrink: 0;
	-webkit-appearance: checkbox !important;
	appearance: checkbox !important;
}
.cbdco-login__remember input[type="checkbox"] { width: 16px; height: 16px; accent-color: #7ab87a; 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__remember,
.cbdco-login__cgv {
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-family: var(--font-body) !important;
	font-size: 14px !important;
}
.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: #7ab87a;
	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; }

/* Indicateur de force du mot de passe (WC injecte du noir par défaut) */
.cbdco-login .woocommerce-password-strength {
	margin: 6px 0 0 !important;
	padding: 6px 10px !important;
	border-radius: 6px !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: 0.02em;
	background: rgba(245,240,232,0.032) !important;
	border: 1px solid rgba(245,240,232,0.064) !important;
	color: var(--text) !important;
	-webkit-text-fill-color: var(--text) !important;
	text-align: left;
}
.cbdco-login .woocommerce-password-strength.short,
.cbdco-login .woocommerce-password-strength.bad {
	color: #ffb4ab !important;
	-webkit-text-fill-color: #ffb4ab !important;
	background: rgba(220,53,69,0.10) !important;
	border-color: rgba(220,53,69,0.35) !important;
}
.cbdco-login .woocommerce-password-strength.good {
	color: #ffd966 !important;
	-webkit-text-fill-color: #ffd966 !important;
	background: rgba(122,184,122,0.10) !important;
	border-color: rgba(122,184,122,0.35) !important;
}
.cbdco-login .woocommerce-password-strength.strong {
	color: #a7e1a4 !important;
	-webkit-text-fill-color: #a7e1a4 !important;
	background: rgba(40,167,69,0.12) !important;
	border-color: rgba(40,167,69,0.35) !important;
}
.cbdco-login .woocommerce-password-hint {
	color: var(--text-dim) !important;
	-webkit-text-fill-color: var(--text-dim) !important;
	font-size: 12px !important;
	display: block;
	margin-top: 4px;
}

/* Œ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: var(--btn-fg);
	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(122,184,122, 0.5);
	margin-top: 6px;
}
.cbdco-login__submit:hover { background: var(--btn-bg-hover); transform: translateY(-1px); box-shadow: 0 10px 22px -8px rgba(122,184,122, 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 / #7AB87A / #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,
.woocommerce div.product > .sp-reviews-section,
body.single-product .single-product-wrap > .sp-trust,
body.single-product .single-product-wrap > .sp-reviews-section {
	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) {
	/* Garde-fou GLOBAL anti-débordement horizontal : applique sur toute la
	   page (pas seulement single-product) pour les viewports tablette portrait
	   du type Surface Pro 912×1368. */
	html, body { overflow-x: clip; }
	body main, body .site-main, body .container { max-width: 100%; overflow-x: clip; }
	body img, body video, body iframe, body svg { max-width: 100%; height: auto; }
	body .single-product-wrap,
	body .single-product-wrap > * { max-width: 100%; box-sizing: border-box; }
	body.single-product .sp-reviews-section,
	body.single-product .woocommerce-tabs,
	body.single-product .related.products { overflow-x: clip; box-sizing: border-box; }
	/* Le bloc avis hero passe en 1 colonne dès la tablette portrait pour éviter
	   l'écrasement des barres de distribution */
	body.single-product .cbdco-reviews__hero { grid-template-columns: 1fr !important; }
	body.single-product .cbdco-reviews__hero > div + div { border-left: 0 !important; border-top: 1px solid rgba(122,184,122,0.12); }

}

/* Layout 1 colonne UNIQUEMENT sur mobile (≤768px). Au-dessus on garde le
   layout WC natif 2 colonnes (galerie + summary côte à côte). */
@media (max-width: 768px) {
	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: 0 auto 40px !important;
	}
	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: #fff;
	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: contain !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;
}

/* PhotoSwipe : pas de fond (top-bar + caption transparents), pas d'animation
   (transitions + opacity-fade tuées sur tout). X natif du sprite conservé. */
.pswp__top-bar,
.pswp__caption,
.pswp__ui--idle .pswp__top-bar,
.pswp__ui--fit .pswp__top-bar,
.pswp__ui--hidden .pswp__top-bar {
	background: none !important;
	background-color: transparent !important;
	opacity: 1 !important;
	transition: none !important;
	animation: none !important;
	will-change: auto !important;
}
.pswp__button,
.pswp__button:hover,
.pswp__button:focus,
.pswp__button:active,
.pswp__ui--over-close .pswp__button--close {
	opacity: 1 !important;
	transition: none !important;
	animation: none !important;
	background-color: transparent !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, #ffffff) !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, #ffffff) !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: #2d4a2d !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, #7ab87a) !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: #fff;
	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(122,184,122, 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(--star); }
.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: var(--text);
	color: var(--text) !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;
}
/* Wrapper inline-flex pour avoir le "Voir plus" sur la 2e ligne du texte. */
.single-product .woocommerce-product-details__short-description {
	font-size: 14.5px;
	line-height: 1.7;
	margin-bottom: 10px;
	position: relative;
	max-height: calc(1.7em * 2);
	overflow: hidden;
	transition: max-height .3s ease;
}
.single-product .woocommerce-product-details__short-description.is-expanded { max-height: 2000px; }
/* "Voir plus" : bloc en dessous de la description, aligné à gauche, sobre. */
.single-product .woocommerce-product-details__short-description .sp-shortdesc-toggle,
.single-product .sp-shortdesc-toggle {
	display: inline-flex;
	align-items: center;
	background: transparent !important;
	border: 1px solid var(--line, #d8d0c4);
	border-radius: 6px;
	padding: 7px 14px;
	margin: -24px 0 8px;
	color: var(--text) !important;
	font-size: 12.5px;
	font-weight: 600 !important;
	font-family: inherit;
	cursor: pointer;
	text-decoration: none;
	line-height: 1.2;
	text-align: left;
	transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.single-product .woocommerce-product-details__short-description .sp-shortdesc-toggle:hover,
.single-product .sp-shortdesc-toggle:hover {
	background: var(--green, #2d4a2d) !important;
	border-color: var(--green, #2d4a2d);
	color: #ffffff !important;
	text-decoration: none;
}
.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;
	/* Fond blanc + vraie bordure fine, et rayon aligné sur les boutons et les
	   cartes (12px). C'était un aplat beige `--bg-3` cerné d'un liseré vert
	   épais via le montage padding-box/border-box, en 4px : ça ne ressemblait
	   à rien d'autre sur le site. */
	background: #ffffff;
	color: var(--text);
	border: 1px solid rgba(45, 74, 45, 0.22);
	border-radius: 12px;
	font-family: var(--font-body);
	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(122,184,122, 0.22);
}
.cbdco-cell.is-active {
	background: var(--btn-bg);
	border-color: var(--gold);
	color: var(--btn-fg);
	box-shadow: 0 4px 14px rgba(45, 74, 45, 0.22);
}
.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: var(--btn-fg); }
/* 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(9,25,11, 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: var(--btn-fg);
	color: var(--btn-fg);
}
.cbdco-cell__ppg {
	margin-top: auto;
	font-family: var(--font-mono);
	font-size: 10.5px; font-weight: 400;
	/* Case non sélectionnée (fond clair) : gris soutenu. `--text-mute` (#8a8a8a)
	   était trop pâle pour une info de prix. */
	color: var(--text-dim);
	letter-spacing: 0.06em;
	white-space: nowrap;
}
/* Case sélectionnée : le fond passe en vert foncé, donc le prix au gramme doit
   passer en blanc. Il était en `rgba(9,25,11,0.7)` — un quasi-noir hérité de
   l'époque où la case active était dorée : illisible sur le vert. */
.cbdco-cell.is-active .cbdco-cell__ppg { color: rgba(255, 255, 255, 0.88); }
.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(245,240,232,0.85);
	color: var(--text);
	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(122,184,122, 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: var(--btn-fg) !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(122,184,122, 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(245,240,232,0.44) 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-label-full { display: inline; }
.single-product .atc-label-short { display: none; }
.single-product .atc-prices {
	display: inline-flex; align-items: baseline; gap: 6px;
}
.single-product .atc-regular {
	color: rgba(9,25,11, 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(122,184,122, 0.45);
	color: var(--btn-fg) !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(122,184,122, 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(122,184,122, 0.25); }
	30%  { transform: scale(1.035); box-shadow: 0 10px 28px rgba(122,184,122, 0.65); }
	100% { transform: scale(1);    box-shadow: 0 6px 20px rgba(122,184,122, 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: 0 0 0;
	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(201,230,201, 0.10) 45%, rgba(201,230,201, 0.20) 50%, rgba(201,230,201, 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: var(--btn-fg);
	box-shadow: 0 2px 10px rgba(122,184,122, 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;
	justify-content: 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);
	text-align: center;
}
.sp-eta__text { flex: 0 1 auto !important; }
.sp-eta__icon {
	display: inline-block;
	width: 18px; height: 18px;
	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: var(--text);
	color: var(--text);
	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: var(--text);
	-webkit-text-fill-color: var(--text);
	font-size: 12px;
	font-weight: 500;
	cursor: pointer;
	transition: text-decoration-color .2s ease;
	white-space: nowrap;
	text-decoration: underline;
	text-decoration-color: var(--text-dim);
	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: var(--text);
	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(122,184,122, 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(122,184,122, 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: var(--btn-fg);
	box-shadow: 0 3px 12px rgba(122,184,122, 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: var(--text);
	line-height: 1.5;
}
.sp-eta-modal__note {
	display: block;
	margin-top: 4px;
	font-size: 11px;
	color: var(--text);
	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: var(--text);
	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(122,184,122,.05) 0%, transparent 40%),
		radial-gradient(circle at 100% 100%, rgba(45,74,45,.04) 0%, transparent 40%),
		linear-gradient(180deg, #ffffff 0%, #e8f0e8 100%);
	color: #1a1a1a;
	border: 1px solid rgba(122,184,122,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(245,240,232,0.64);
	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: var(--bg-2) !important;
	color: var(--text) !important;
	padding: 18px 22px;
	border-bottom: 1px solid var(--line);
	position: relative;
	overflow: hidden;
	flex: 0 0 auto;
}
.sp-eta-modal__head::before,
.sp-eta-modal__head::after {
	content: none;
}
.sp-eta-modal__head::after {
}
.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: var(--text) !important;
	color: var(--text) !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(245,240,232,0.064) !important;
	color: var(--text) !important;
	border: 1px solid rgba(245,240,232,0.096) !important;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}
.sp-eta-modal__close svg { stroke: currentColor !important; color: var(--text) !important; }
.sp-eta-modal__close:hover {
	background: rgba(122,184,122,.2) !important;
	border-color: rgba(122,184,122,.4) !important;
	color: var(--text) !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(122,184,122,0.06); }
.sp-eta-modal__card-icon {
	background: linear-gradient(135deg, #7ab87a 0%, #43b04c 100%);
	border-color: #43b04c;
	color: var(--btn-fg);
	box-shadow: 0 3px 12px rgba(122,184,122,0.45);
}
.sp-eta-modal__card-title {
	color: var(--btn-fg) !important;
	-webkit-text-fill-color: var(--btn-fg) !important;
}
.sp-eta-modal__card-desc {
	color: #0f2a1e !important;
	-webkit-text-fill-color: #0f2a1e !important;
}
.sp-eta-modal__note {
	color: #27672c !important;
	-webkit-text-fill-color: #27672c !important;
}
.sp-eta-modal__card-eta {
	background: rgba(122,184,122,0.08);
	border: 1px solid rgba(122,184,122,0.25);
	color: var(--btn-fg) !important;
	-webkit-text-fill-color: var(--btn-fg) !important;
}
.sp-eta-modal__card-eta strong {
	background: none !important;
	-webkit-background-clip: initial !important;
	background-clip: initial !important;
	-webkit-text-fill-color: #2d4a2d !important;
	color: #2d4a2d !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: #0f2a1e !important;
	-webkit-text-fill-color: #0f2a1e !important;
}
.cbdco-rev-modal .cbdco-rev-progress__steps span.is-active {
	color: #2d4a2d !important;
	-webkit-text-fill-color: #2d4a2d !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: #2d4a2d !important;
}
.cbdco-rev-modal .cbdco-rev-bonus {
	color: #0f2a1e !important;
	background: linear-gradient(135deg, rgba(122,184,122,0.16), rgba(122,184,122,0.06)) !important;
}
.cbdco-rev-modal .cbdco-rev-bonus strong { color: #2d4a2d !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; }

/* ----- Bloc Avis autonome (rendu AVANT les onglets Description / Caractéristiques) ----- */
.sp-reviews-section {
	margin: 0 0 32px;
	/* Autant d'air en bas qu'en haut : le contenu venait coller le bord bas. */
	padding: 28px;
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 12px;
}
.sp-reviews-section > .cbdco-reviews { padding: 0; }
@media (max-width: 900px) {
	.sp-reviews-section { padding: 18px 14px; margin-bottom: 24px; }
}

/* ----- 8. Onglets (Description / Caractéristiques) ----- */
.woocommerce-tabs.wc-tabs-wrapper,
.woocommerce-tabs {
	margin: -32px 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: 16px 22px !important;
	color: var(--text-mute) !important;
	font-family: var(--font-body);
	font-size: 11.5px; font-weight: 600;
	letter-spacing: 0.06em;
	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;
	/* Aucun fondu : le dégradé (noir à l'origine, puis blanc) était jugé sale
	   dans les deux cas. Le bouton « Voir plus » suffit à signaler que le texte
	   est tronqué. */
	background: none;
	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: var(--btn-fg);
	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(122,184,122, 0.30);
}
.sp-desc-toggle:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(122,184,122, 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(--star); 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(--star); }
#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: var(--btn-fg);
	box-shadow: 0 4px 14px rgba(122,184,122, 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: -65px auto -58px;
	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 : alignée sur la grille catégorie
   (3 colonnes desktop, 2 sur tablette/mobile, gap 16px / 10px). */
.woocommerce .related ul.products,
.woocommerce .upsells ul.products,
.related ul.products,
.upsells ul.products {
	grid-template-columns: repeat(3, 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(2, 1fr) !important; }
}

/* Carrousel "Produits similaires" — quand JS active .sp-related-carousel.
   On bascule la grille en flex horizontal scrollable, --per-row pilote la
   largeur de chaque carte (configurable depuis l'admin). */
.sp-related-carousel ul.products {
	display: flex !important;
	grid-template-columns: none !important;
	overflow-x: hidden;
	scroll-snap-type: x mandatory;
	gap: 16px !important;
	-webkit-overflow-scrolling: touch;
}
.sp-related-carousel ul.products > li.product {
	flex: 0 0 calc((100% - 16px * (var(--per-row, 4) - 1)) / var(--per-row, 4)) !important;
	scroll-snap-align: start;
}
@media (max-width: 1279px) {
	.sp-related-carousel ul.products > li.product { flex-basis: calc((100% - 16px) / 2) !important; }
}
@media (max-width: 599px) {
	.sp-related-carousel ul.products { gap: 10px !important; }
	.sp-related-carousel ul.products > li.product { flex-basis: calc((100% - 10px) / 2) !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: 8px;
		flex-direction: column;
		text-align: center;
		justify-content: center;
	}
	.sp-trust__icon { width: 30px; height: 30px; }
	.sp-trust__icon svg { width: 16px; height: 16px; }
	.sp-trust__label { font-size: 11.5px; }

	/* 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; width: 16px; height: 16px; }
	.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%;
		margin-bottom: -11px;
		margin-top: -1px;
	}

	/* 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: 13.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: 12px !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: 12px !important;
		margin-left: 0 !important;
		border-left: 1px solid rgba(245,240,232,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;
	}
	/* Prix ≥ 100 € (.card-cta--wide-price ajouté server-side) : padding gauche
	   réduit pour laisser plus de place au chiffre. */
	ul.products li.product .card-cta.card-cta--wide-price .card-cta__prices,
	ul.products li.product .button.card-cta--wide-price .card-cta__prices,
	ul.products li.product .add_to_cart_button.card-cta--wide-price .card-cta__prices {
		padding-left: 8px !important;
	}
	ul.products li.product .product__cat {
		margin-bottom: 4px;
		font-size: 11.5px;
	}
	/* 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; }
}
/* Card cta dans le loop produits : version courte "Ajouter" partout, le slot
   est trop étroit pour "Ajouter au panier" sans empiéter sur le prix. */
.card-cta__label-full { display: none !important; }
.card-cta__label-short { display: inline !important; }

/* ============================================================
   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: 12px !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: 12px !important;
		margin-left: 0 !important;
		border-left: 1px solid rgba(245,240,232,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: 19px !important;
	font-weight: 600;
	color: var(--text);
	margin: 0;
	letter-spacing: 0.01em;
	text-transform: none;
}
.cbdco-empty-cart__text {
	color: var(--text);
	font-size: 14px;
	margin: 0;
	line-height: 1.5;
	text-transform: none;
}
.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: 42px;
	padding: 0 22px;
	margin-top: 8px;
	border: 1px solid transparent;
	border-radius: 10px;
	background: var(--btn-bg);
	color: var(--btn-fg);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.01em;
	text-transform: none;
	text-decoration: none !important;
	border-bottom: 0 !important;
	box-shadow: none;
	transition: background .15s ease, color .15s ease;
}
.cbdco-empty-cart__cta:hover,
.cbdco-empty-cart__cta:focus {
	background: var(--btn-bg-hover);
	color: #ffffff;
	box-shadow: none;
}

@media (max-width: 600px) {
	.cbdco-empty-cart { padding: 48px 16px 56px; min-height: 46vh; }
	.cbdco-empty-cart__inner { gap: 14px; max-width: 100%; }
	.cbdco-empty-cart__icon svg { width: 48px; height: 48px; }
	.cbdco-empty-cart__title { font-size: 17px !important; }
	.cbdco-empty-cart__text { font-size: 13px; }
	.cbdco-empty-cart__cta { min-height: 40px; padding: 0 18px; font-size: 12.5px; }
}

/* === 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: var(--text);
	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: var(--btn-fg);
	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(122,184,122,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(122,184,122,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: 19px !important;
	font-weight: 600;
	color: var(--text);
	margin: 0;
	letter-spacing: 0.01em;
	text-transform: none;
}
.cbdco-error-page__text {
	color: var(--text);
	font-size: 14px;
	margin: 0;
	line-height: 1.5;
	text-transform: none;
}
.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: 42px;
	padding: 0 22px;
	margin-top: 8px;
	border: 1px solid transparent;
	border-radius: 10px;
	background: var(--btn-bg);
	color: var(--btn-fg);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.01em;
	text-transform: none;
	text-decoration: none !important;
	border-bottom: 0 !important;
	box-shadow: 0 4px 14px rgba(122,184,122,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(122,184,122,0.45);
}
@media (max-width: 600px) {
	.cbdco-error-page { padding: 48px 16px 56px; min-height: 46vh; }
	.cbdco-error-page__inner { gap: 14px; max-width: 100%; }
	.cbdco-error-page__icon svg { width: 48px; height: 48px; }
	.cbdco-error-page__title { font-size: 17px !important; }
	.cbdco-error-page__text { font-size: 13px; }
	.cbdco-error-page__cta { min-height: 40px; padding: 0 18px; font-size: 12.5px; }
}

/* ==========================================================================
   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;
	padding: max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));
	contain: layout style paint;
}
.cbdco-agegate[hidden] { display: none; }
.cbdco-agegate__backdrop {
	position: absolute; inset: 0;
	background: rgba(3, 7, 3, 0.55);
	-webkit-backdrop-filter: blur(4px) saturate(1.05);
	        backdrop-filter: blur(4px) saturate(1.05);
	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(400px, 100%);
	max-height: 100%;
	overflow-y: auto;
	text-align: center;
	background: #ffffff;
	border: 1px solid var(--line, #d8d0c4);
	border-radius: 12px;
	padding: 30px 28px 24px;
	color: var(--text);
	box-shadow: 0 12px 40px rgba(20, 40, 24, 0.18);
	transform: translateY(14px);
	opacity: 0;
	transition: transform .28s ease, opacity .28s ease;
	will-change: transform, opacity;
}
.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: 58px; height: 58px;
	border-radius: 50%;
	background: var(--accent-soft, #e8f0e8);
	border: 1px solid var(--line, #d8d0c4);
	color: var(--green, #2d4a2d);
	font-family: var(--font-display, 'Inter', sans-serif);
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -0.02em;
	margin: 0 auto 18px;
	box-shadow: none;
}
.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: var(--btn-fg);
	box-shadow: 0 6px 18px rgba(78,125,78, 0.35);
}
.cbdco-agegate__btn--yes:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 24px rgba(78,125,78, 0.5);
	filter: brightness(1.05);
}
.cbdco-agegate__btn--no {
	background: transparent;
	color: var(--text-mute, #b0b0b0);
	border-color: rgba(245,240,232,0.096);
}
.cbdco-agegate__btn--no:hover {
	background: rgba(245,240,232,0.032);
	color: var(--text);
	border-color: rgba(245,240,232,0.16);
}

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

@media (max-width: 600px) {
	.cbdco-agegate {
		padding: 12px;
		padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
	}
	.cbdco-agegate__modal { padding: 24px 18px 20px; border-radius: 14px; }
	.cbdco-agegate__icon { width: 64px; height: 64px; font-size: 22px; margin-bottom: 14px; }
	.cbdco-agegate__title { font-size: clamp(18px, 5.4vw, 22px); margin-bottom: 8px; }
	.cbdco-agegate__message { font-size: 13.5px; margin-bottom: 18px; line-height: 1.5; }
	.cbdco-agegate__btn { min-height: 46px; font-size: 13px; padding: 0 16px; }
	.cbdco-agegate__legal { font-size: 11px; margin-top: 14px; }
}
@media (max-width: 600px) and (max-height: 560px) {
	.cbdco-agegate__icon { width: 52px; height: 52px; font-size: 18px; margin-bottom: 10px; }
	.cbdco-agegate__title { font-size: 17px; }
	.cbdco-agegate__message { margin-bottom: 14px; }
	.cbdco-agegate__modal { padding: 18px 16px 16px; }
}

/* 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: #1a1a1a; }

/* ============================================================
   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;
}
@media (min-width: 901px) {
	.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: 0;
		padding-right: 0;
	}
}
/* 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: #2d4a2d;
	-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(122,184,122, 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(245,240,232,0.032);
}
.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(122,184,122, 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(122,184,122, 0.3);
	transform: translateY(-2px);
}
.woocommerce-account .wc-loyalty-dashboard .tier-item.current {
	border-color: var(--gold);
	background: linear-gradient(135deg, rgba(122,184,122, 0.08), transparent);
	box-shadow: 0 6px 22px -10px rgba(122,184,122, 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(122,184,122, 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"]:not(.cbdco-rev-btn):not(.btn):not([class*="pswp__"]),
button[class*="-close"]:not(.cbdco-rev-btn):not(.btn):not([class*="pswp__"]),
button[class*="_close"]:not(.cbdco-rev-btn):not(.btn):not([class*="pswp__"]),
[class*="__close"][role="button"]:not(.cbdco-rev-btn):not(.btn):not([class*="pswp__"]),
[class*="-close"][role="button"]:not(.cbdco-rev-btn):not(.btn):not([class*="pswp__"]),
[id*="close"][role="button"]:not(.cbdco-rev-btn):not(.btn):not([class*="pswp__"]),
[data-cbdco-modal-close]:not(.cbdco-rev-btn):not(.btn):not(.cbdco-rev-btn--primary):not(.cbdco-rev-btn--ghost):not([class*="pswp__"]),
.cbdco-lightbox__nav,
button[aria-label*="ermer" i]:not(.cbdco-rev-btn):not(.btn):not([class*="pswp__"]),
button[aria-label*="lose" i]:not(.cbdco-rev-btn):not(.btn):not([class*="pswp__"]) {
	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(245,240,232,0.064) !important;
	border: 1px solid rgba(245,240,232,0.096) !important;
	color: rgba(227,245,229,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"]:not(.cbdco-rev-btn):not(.btn):not([class*="pswp__"]):hover,
button[class*="-close"]:not(.cbdco-rev-btn):not(.btn):not([class*="pswp__"]):hover,
button[class*="_close"]:not(.cbdco-rev-btn):not(.btn):not([class*="pswp__"]):hover,
[class*="__close"][role="button"]:not(.cbdco-rev-btn):not(.btn):not([class*="pswp__"]):hover,
[class*="-close"][role="button"]:not(.cbdco-rev-btn):not(.btn):not([class*="pswp__"]):hover,
[id*="close"][role="button"]:not(.cbdco-rev-btn):not(.btn):not([class*="pswp__"]):hover,
[data-cbdco-modal-close]:not(.cbdco-rev-btn):not(.btn):not(.cbdco-rev-btn--primary):not(.cbdco-rev-btn--ghost):not([class*="pswp__"]):hover,
.cbdco-lightbox__nav:hover,
button[aria-label*="ermer" i]:not(.cbdco-rev-btn):not(.btn):not([class*="pswp__"]):hover,
button[aria-label*="lose" i]:not(.cbdco-rev-btn):not(.btn):not([class*="pswp__"]):hover {
	background: rgba(122,184,122,0.2) !important;
	border-color: rgba(122,184,122,0.5) !important;
	color: var(--gold) !important;
	transform: rotate(90deg) scale(1.05) !important;
}
/* Hover : forcer la couleur du SVG aussi */
button[class*="__close"]:not([class*="pswp__"]):hover svg,
button[class*="-close"]:not([class*="pswp__"]):hover svg,
[class*="__close"][role="button"]:not([class*="pswp__"]):hover svg,
[class*="-close"][role="button"]:not([class*="pswp__"]):hover svg,
[data-cbdco-modal-close]:not([class*="pswp__"]):hover svg,
button[aria-label*="ermer" i]:not([class*="pswp__"]):hover svg,
button[aria-label*="lose" i]:not([class*="pswp__"]):hover svg {
	color: var(--gold) !important;
	stroke: var(--gold) !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: 30px !important; height: 30px !important;
	min-width: 30px !important; min-height: 30px !important;
	max-width: 30px !important; max-height: 30px !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;
	}
}

/* === HORS STOCK : badge + bouton désactivé (loop + single product) === */
.badge--oos {
	background: rgba(40,40,40,.92);
	color: #f3f3f3;
	border: 1px solid rgba(245,240,232,0.144);
	font-weight: 700;
}
li.product:has(.badge--oos) .product__media a,
li.product:has(.badge--oos) .product__media img {
	filter: grayscale(.85) brightness(.78);
}
ul.products li.product .card-cta--oos,
.card-cta--oos {
	background: #d8d0c4 !important;
	color: #d6d6d6 !important;
	cursor: not-allowed !important;
	opacity: .82 !important;
	pointer-events: none !important;
	border: 1px solid rgba(245,240,232,0.096) !important;
	box-shadow: none !important;
	transform: none !important;
}
ul.products li.product .card-cta--oos:hover,
.card-cta--oos:hover {
	background: #d8d0c4 !important;
	color: #d6d6d6 !important;
	transform: none !important;
}
.card-cta--oos .card-cta__label {
	font-weight: 700;
	letter-spacing: .04em;
}
/* Single product OOS */
.product.outofstock .single_add_to_cart_button,
.product.outofstock .single_add_to_cart_button:hover,
.product.outofstock .single_add_to_cart_button:focus,
.product.outofstock .single_add_to_cart_button:active,
.product.outofstock .single_add_to_cart_button:disabled,
.product.outofstock form.variations_form button.single_add_to_cart_button {
	background: #d8d0c4 !important;
	color: #d6d6d6 !important;
	opacity: .85 !important;
	cursor: not-allowed !important;
	pointer-events: none !important;
	border: 1px solid rgba(245,240,232,0.096) !important;
	box-shadow: none !important;
	transform: none !important;
}
.product.outofstock .quantity {
	opacity: .5;
	pointer-events: none;
}

/* === HORS STOCK : cacher les prix sur cards + fiche === */
li.product.outofstock .product__price-row,
li.product:has(.badge--oos) .product__price-row {
	display: none !important;
}
.product.outofstock .summary p.price,
.product.outofstock .entry-summary > p.price,
body.single-product .product.outofstock p.price {
	display: none !important;
}
.cart--oos {
	display: flex;
	align-items: center;
	gap: 12px;
}

/* === HORS STOCK : galerie produit grisée sur fiche === */
.product.outofstock .woocommerce-product-gallery img,
.product.outofstock .woocommerce-product-gallery__image img,
.product.outofstock .woocommerce-product-gallery .flex-control-thumbs img {
	filter: grayscale(.85) brightness(.78);
}

/* === HORS STOCK : sur fiche variable, cacher les déclinaisons + prix dynamique === */
.product.outofstock .cbdco-grid,
.product.outofstock .single_variation_wrap .woocommerce-variation-price,
.product.outofstock .single_variation_wrap .woocommerce-variation-availability,
.product.outofstock .woocommerce-variation,
.product.outofstock .reset_variations {
	display: none !important;
}

/* Logo du footer en blanc plein : `brightness(0)` aplatit le logo en
   noir uni (donc quelles que soient ses couleurs d'origine), puis
   `invert(1)` le retourne en blanc pur. */
.site-footer__brand img,
.site-footer__brand img.custom-logo {
	filter: brightness(0) invert(1);
}

/* Icônes de paiement du footer en blanc.
   Les règles génériques `.cbdco-pay-brand` les mettent en `var(--green)`
   (#2d4a2d), lisible sur les fonds clairs du checkout / tiroir panier mais
   quasi invisible sur le footer sombre. On surcharge donc UNIQUEMENT dans le
   footer — les autres emplacements gardent le vert.
   Les SVG (Visa, Mastercard) peignent en `currentColor` et les icônes Font
   Awesome (Apple Pay, Google Pay) suivent `color` : une seule couleur suffit. */
.site-footer__payments-list .cbdco-pay-brand,
.site-footer__payments-list .cbdco-pay-brand svg,
.site-footer__payments-list .cbdco-pay-brand .fa-brands {
	color: #ffffff;
}



/* Icônes du header et piliers du footer : même rayon que les cartes produit
   (12px) au lieu du cercle, pour rester cohérent avec les widgets flottants. */
.header-action {
	border-radius: 12px;
}
.footer-pillar__icon {
	border-radius: 12px;
}

/* Icônes du header : pastille de survol allégée. 44px avec un aplat `--bg-2`
   (beige soutenu) faisait un bloc lourd derrière chaque icône ; on resserre la
   surface et on passe sur un vert très dilué, dans la même famille que les
   autres survols du site. */
.header-action {
	width: 38px;
	height: 38px;
}
.header-action:hover {
	background: rgba(45, 74, 45, 0.08);
	color: var(--gold);
}

/* ============================================================
   Barre d'engagements — bande défilante
   ------------------------------------------------------------
   Une seule ligne visible : `.site-reassure__inner` sert de fenêtre,
   la liste défile en colonne. Le dernier item est un clone du premier,
   l'animation s'y termine donc le retour au début ne se voit pas.
   Le nombre d'items et la durée viennent des réglages (variables CSS
   posées en ligne sur la section) ; le `steps()` fait tenir chaque
   engagement à l'écran au lieu de faire défiler en continu.
   ============================================================ */
.site-reassure { --reassure-h: 42px; }
.site-reassure__item--clone { display: none; }

.site-reassure--rotate .site-reassure__inner {
	height: var(--reassure-h);
	overflow: hidden;
	padding: 0;
}
.site-reassure--rotate .site-reassure__list {
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 0;
	padding: 0;
	margin: 0;
	overflow: visible;
	animation-name: cbdco-reassure-roll;
	animation-duration: var(--reassure-duration, 17.5s);
	animation-iteration-count: infinite;
	animation-timing-function: steps(var(--reassure-count, 5));
}
.site-reassure--rotate .site-reassure__item,
.site-reassure--rotate .site-reassure__item--clone {
	display: flex;
	height: var(--reassure-h);
	flex: 0 0 var(--reassure-h);
	justify-content: center;
	font-size: 13.5px;
}
.site-reassure--rotate .site-reassure__item svg { width: 18px; height: 18px; }

@keyframes cbdco-reassure-roll {
	from { transform: translateY(0); }
	to   { transform: translateY(calc(-1 * var(--reassure-count, 5) * var(--reassure-h, 42px))); }
}

/* Accessibilité : pas de défilement automatique si l'utilisateur a demandé
   à réduire les animations — on retombe sur la liste complète. */
@media (prefers-reduced-motion: reduce) {
	.site-reassure--rotate .site-reassure__inner { height: auto; }
	.site-reassure--rotate .site-reassure__list {
		animation: none;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		gap: 18px;
	}
	.site-reassure--rotate .site-reassure__item { flex: 0 0 auto; height: auto; }
	.site-reassure__item--clone { display: none !important; }
}

/* Piliers de réassurance : typo resserrée — le bloc pesait trop lourd en bas
   de page, il doit rester une mention de réassurance, pas un pavé. */
.footer-pillar__sub { font-size: 13px; }
.footer-pillar__icon { width: 40px; height: 40px; }
.footer-pillar__icon svg { width: 20px; height: 20px; }
@media (max-width: 900px) {
	.footer-pillar__icon { width: 36px !important; height: 36px !important; }
	.footer-pillar__icon svg { width: 18px !important; height: 18px !important; }
	.footer-pillar__sub { font-size: 12.5px; }
}

/* Boîte « Tri par défaut » : fond blanc, comme le panneau qu'elle déroule.
   Elle était sur `--bg-2` (#ede8df), un beige qui ne correspondait ni aux
   cartes ni à la liste d'options. */
.woocommerce-ordering {
	background: #ffffff;
	border-color: rgba(45, 74, 45, 0.22);
}
.woocommerce-ordering:hover { border-color: rgba(45, 74, 45, 0.45); }

/* Cartes produit sur ordinateur : typo resserrée. Prix, titre et bouton
   étaient à la fois gros et gras, ce qui alourdissait toute la grille. */
@media (min-width: 769px) {
	.product__title,
	.woocommerce ul.products li.product .woocommerce-loop-product__title,
	ul.products li.product .woocommerce-loop-product__title {
		font-size: 0.84rem;
	}
	.product__price-now {
		font-size: 17px;
		font-weight: 500;
	}
	.product__price-label { font-size: 10px; }
	ul.products li.product .cbdco-cardsel__btn,
	ul.products li.product .card-variation-select { font-size: 13px; }
	ul.products li.product .card-cta { font-size: 12.5px; }
	.card-cta__label { font-weight: 500; }
	.card-cta__price { font-size: 13px; font-weight: 500; }
}

/* Options du tri : même typo que la valeur affichée dans le bouton.
   La règle d'origine passait par l'ancêtre `.woocommerce-ordering`, or la
   liste est déplacée dans <body> à l'ouverture — elle retombait donc sur la
   taille générique (14px) alors que le bouton est à 13px. On cible désormais
   le modificateur `--ordering` posé par le JS. */
.cbdco-cardsel__list--ordering .cbdco-cardsel__opt {
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0;
	text-align: left;
}

/* Boutons du tableau de bord fidélité : le libellé reste blanc au survol.
   Une règle générique de lien repassait le texte en `var(--gold)` (vert
   foncé) alors que le fond du bouton devient vert lui aussi. */
.woocommerce-account .wc-loyalty-dashboard .loyalty-actions .button:hover,
.woocommerce-account .wc-loyalty-dashboard .loyalty-actions .button:focus,
.woocommerce-account .wc-loyalty-dashboard .help-button:hover,
.woocommerce-account .wc-loyalty-dashboard .help-button:focus {
	color: var(--btn-fg) !important;
	-webkit-text-fill-color: var(--btn-fg) !important;
}

/* Colonne de filtres : fond blanc, comme les cartes produit et la boîte de tri.
   Elle était sur `--bg-2` (#ede8df), le beige qui traînait encore un peu partout. */
.shop-sidebar {
	background: #ffffff;
	border-color: rgba(45, 74, 45, 0.16);
	border-radius: 12px;
}

/* Panier du header quand il contient des articles : même pastille que le survol
   des autres icônes du header (rayon des cartes + vert très dilué), au lieu
   d'une gélule beige entièrement à part. */
.header-action--cart.has-items {
	border-radius: 12px;
	background: rgba(45, 74, 45, 0.08);
}
.header-action--cart.has-items:hover {
	background: rgba(45, 74, 45, 0.14);
}

/* Cartes produit en blanc franc : `--card` (#faf8f3) était un crème très
   proche du fond de page, les cartes ne se détachaient presque pas. */
ul.products li.product,
.woocommerce ul.products li.product {
	background: #ffffff;
}

/* Icône panier du header : plus de rebond permanent. L'animation
   `cbdco-cart-bounce` tournait en boucle infinie dès qu'il y avait un article,
   ce qui faisait sautiller le total en permanence. On garde `is-bumped`,
   le rebond ponctuel joué à l'ajout d'un produit — lui est informatif. */
.header-action--cart.has-items .header-action__icon-wrap {
	animation: none;
}

/* Logo du footer légèrement remonté sur ordinateur : il flottait trop bas par
   rapport aux titres de colonnes de la même rangée. */
@media (min-width: 901px) {
	.site-footer__brand {
		margin-top: -10px;
		margin-bottom: 14px;
	}
}

/* ============================================================
   Boutons du site : aplat vert, sans ombre portée
   ------------------------------------------------------------
   Les boutons d'action traînaient des ombres colorées (halo vert,
   « shine sweep », lueur au survol) héritées du thème d'origine.
   Sur fond clair ça faisait sale. On garde uniquement la couleur.
   ============================================================ */
.single-product form.cart .single_add_to_cart_button,
.single-product form.cart .single_add_to_cart_button:hover,
.single-product form.cart .single_add_to_cart_button.is-ready,
ul.products li.product .card-cta,
ul.products li.product .card-cta:hover,
.add_to_cart_button,
.add_to_cart_button:hover,
.btn-gold,
.btn-gold:hover,
.btn--primary,
.btn--primary:hover,
#place_order,
#place_order:hover {
	box-shadow: none !important;
}
/* Balayage lumineux du bouton « Ajouter au panier » de la fiche produit. */
.single-product form.cart .single_add_to_cart_button::after,
.single-product form.cart .single_add_to_cart_button.is-ready::after,
.single-product form.cart .single_add_to_cart_button.is-ready:hover::after {
	display: none !important;
	animation: none !important;
}

/* Prix barré affiché DANS le bouton « Ajouter au panier » (fond vert foncé) :
   il était en `rgba(9,25,11,.55)`, un quasi-noir hérité de l'époque où le
   bouton était doré — illisible sur le vert. */
.single-product .atc-regular {
	color: rgba(255, 255, 255, 0.72);
}

/* Sous-menus du header : fond blanc franc (ils étaient sur #faf7f0, un crème
   qui se confondait avec la page). */
@media (min-width: 1025px) {
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li > .sub-menu {
		background: #ffffff;
		border-color: rgba(45, 74, 45, 0.16);
	}
}

/* ============================================================
   Espace client — remise à la charte
   ------------------------------------------------------------
   Le module gardait les codes du thème sombre d'origine : aplats
   beiges `--bg-3` sur les tuiles et l'état vide, titres découpés
   dans un dégradé vert. On repasse sur des cartes blanches, un
   filet vert dilué et des titres en couleur pleine — comme les
   cartes produit et les panneaux de la boutique.
   ============================================================ */
.cbdco-account__stat,
.cbdco-account__empty {
	background: #ffffff;
	border-color: rgba(45, 74, 45, 0.16);
	border-radius: 12px;
}
.cbdco-account__stat:hover {
	border-color: rgba(45, 74, 45, 0.38);
	transform: none; /* le soulèvement faisait sautiller la rangée de tuiles */
}
/* Titres : couleur pleine. Le dégradé sur le texte rendait « Tableau de bord »
   et « Commandes récentes » verdâtres et sales. */
.cbdco-account__section-title {
	background: none !important;
	-webkit-background-clip: border-box !important;
	background-clip: border-box !important;
	-webkit-text-fill-color: var(--text) !important;
	color: var(--text) !important;
}
/* Pastille d'icône des tuiles : vert dilué plutôt qu'un aplat beige. */
.cbdco-account__stat-icon {
	background: rgba(45, 74, 45, 0.07);
	color: var(--gold);
	border-radius: 10px;
}
/* La BOÎTE GLOBALE passe en blanc (panneau de contenu + colonne de navigation).
   `.cbdco-account__section` n'est qu'un conteneur d'espacement sans padding :
   lui donner un fond de carte faisait déborder son en-tête
   (« Commandes récentes » / « Voir tout ») hors du bloc. */
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-navigation {
	/* `!important` obligatoire : la règle d'origine de la colonne de navigation
	   pose `background: var(--bg-2) !important`. */
	background: #ffffff !important;
	border-color: rgba(45, 74, 45, 0.16) !important;
	border-radius: 12px !important;
}
/* Cartes connexion / inscription (visiteur non connecté). */
.woocommerce-account:not(.logged-in) .u-column1,
.woocommerce-account:not(.logged-in) .u-column2,
.woocommerce-account:not(.logged-in) .col-1,
.woocommerce-account:not(.logged-in) .col-2 {
	background: #ffffff;
	border-color: rgba(45, 74, 45, 0.16);
}

/* --- Mobile ------------------------------------------------ */
@media (max-width: 768px) {
	/* Les 4 tuiles passent sur 2 colonnes : à 4 de front elles devenaient
	   illisibles, à 1 par ligne la page s'allongeait inutilement. */
	.cbdco-account__stats {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 10px !important;
	}
	.cbdco-account__stat {
		padding: 12px 13px;
		gap: 10px;
	}
	.cbdco-account__stat-icon { width: 34px; height: 34px; flex: 0 0 34px; }
	.cbdco-account__stat-icon svg { width: 17px; height: 17px; }
	.cbdco-account__stat-value { font-size: 19px; }
	.cbdco-account__stat-label { font-size: 11px; }
	.cbdco-account__empty { padding: 34px 16px; }
	.cbdco-account__section-title { font-size: 18px; }
}
@media (max-width: 400px) {
	/* Très petits écrans : une tuile par ligne, l'icône et la valeur
	   ne tiennent plus côte à côte sur deux colonnes. */
	.cbdco-account__stats { grid-template-columns: 1fr !important; }
}

/* Total du panier dans le header : moins gras (700 → 500), il pesait trop
   à côté des icônes. */
.cart-total { font-weight: 500; }

/* Espace client — l'entrée de menu active portait une lueur verte diffuse
   (`box-shadow: 0 6px 20px -8px …`). Aplat seul, comme le reste du site. */
.woocommerce-account .woocommerce-MyAccount-navigation ul li a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
	box-shadow: none !important;
}

/* « Découvrir la boutique » des états vides du compte : vrai bouton vert.
   Le markup porte déjà `.btn.btn--primary`, mais les règles de lien de la
   zone compte l'emportaient et le rendaient comme du texte simple. */
.cbdco-account__empty .btn,
.cbdco-account__empty .btn--primary,
.cbdco-account__empty a.btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	padding: 12px 26px !important;
	background: var(--btn-bg) !important;
	color: var(--btn-fg) !important;
	-webkit-text-fill-color: var(--btn-fg) !important;
	border: 0 !important;
	border-radius: 10px !important;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none !important;
	box-shadow: none !important;
}
.cbdco-account__empty .btn:hover,
.cbdco-account__empty a.btn:hover {
	background: var(--btn-bg-hover) !important;
	color: var(--btn-fg) !important;
	-webkit-text-fill-color: var(--btn-fg) !important;
}

/* Cartes des carrousels de la page d'accueil : elles réutilisent
   `content-product.php` mais vivent dans `.hp-carousel`, PAS dans
   `ul.products`. Toutes les règles scopées `ul.products li.product …`
   les manquaient — d'où des déroulants et une typo différents de la
   grille catégorie. On leur applique le même traitement. */
@media (min-width: 769px) {
	.hp-carousel .cbdco-cardsel__btn,
	.hp-carousel .card-variation-select { font-size: 13px; }
	.hp-carousel .card-cta { font-size: 12.5px; }
	.hp-carousel .product__title,
	.hp-carousel .woocommerce-loop-product__title { font-size: 0.84rem; }
	.hp-carousel .product__price-now { font-size: 17px; font-weight: 500; }
	.hp-carousel .product__price-label { font-size: 10px; }
}
.hp-carousel .product,
.hp-carousel li.product { background: #ffffff; }

/* Pastille du menu actif : exactement le vert des boutons « Ajouter au
   panier » (`--btn-bg`), et non `--gold` seul — les deux valent le même
   vert aujourd'hui, mais passer par le même token évite qu'ils divergent
   si la palette bouge. */
@media (min-width: 1025px) {
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li.current-menu-item > a,
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li.current-menu-parent > a,
	body:not(.woocommerce-cart):not(.woocommerce-checkout) .main-nav__list > li.current-menu-ancestor > a {
		background: var(--btn-bg);
		border-color: var(--btn-bg);
	}
}

/* ============================================================
   Avis & filtres de note — finitions
   ============================================================ */
/* Étoiles en OR partout. `--star` (#f4a419) est la seule couleur prévue pour
   elles, mais plusieurs blocs les laissaient hériter du vert du thème. */
.cbdco-stars,
.cbdco-stars__bg,
.cbdco-stars__fg,
.cbdco-rev-item__stars-row .cbdco-stars,
.cbdco-rev-item__stars-row .cbdco-stars__bg,
.cbdco-rev-item__stars-row .cbdco-stars__fg,
.cbdco-single-rating .cbdco-stars,
.cbdco-single-rating .cbdco-stars__fg,
.filter-rating-row .cbdco-stars,
.filter-rating-row .cbdco-stars__fg {
	color: var(--star) !important;
	-webkit-text-fill-color: var(--star) !important;
	background: none !important;
}
/* La piste (étoiles vides) reste visible mais en retrait. */
.cbdco-stars__bg,
.cbdco-rev-item__stars-row .cbdco-stars__bg {
	color: rgba(45, 74, 45, 0.22) !important;
	-webkit-text-fill-color: rgba(45, 74, 45, 0.22) !important;
}

/* Les étoiles touchaient le titre de l'avis : `gap: 0 !important` sur la
   rangée. On rétablit un écart. */
.cbdco-rev-item__stars-row {
	gap: 10px !important;
}

/* Filtres de la colonne (note, bins) : fond blanc au lieu du beige `--bg-3`,
   qui tirait vers le marron à côté des cartes. */
.filter-bin,
.filter-rating-row {
	background: #ffffff;
	border-color: rgba(45, 74, 45, 0.16);
}
.filter-bin:hover,
.filter-rating-row:hover {
	border-color: rgba(45, 74, 45, 0.42);
}
/* État actif : texte clair sur le vert plein (il était en quasi-noir). */
.filter-bin.is-active span,
.filter-rating-row.is-active span { color: rgba(255, 255, 255, 0.78) !important; }

/* Pastille de note sur la photo produit : rayon aligné sur le reste du site
   (999px la rendait ovale, ça jurait avec les cartes à 12px), voile clair et
   ombre douce. L'ombre de survol était en noir à 45 %, d'où l'impression
   qu'elle « sortait » de la carte. */
.product__rating--overlay {
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.9);
	border-color: rgba(45, 74, 45, 0.18);
}
.product__rating--overlay[data-rating-preview]:hover {
	border-color: rgba(45, 74, 45, 0.42);
	box-shadow: 0 4px 12px rgba(20, 40, 24, 0.16);
}

/* Lien « Voir les avis » sous la note de la fiche produit : il sortait en
   blanc souligné (couleur héritée du thème sombre). Vert du site, souligné
   uniquement au survol. */
.cbdco-single-rating__link,
.cbdco-single-rating__link:visited {
	color: var(--gold) !important;
	-webkit-text-fill-color: var(--gold) !important;
	text-decoration: none !important;
	font-weight: 500;
}
.cbdco-single-rating__link:hover {
	color: var(--gold-soft) !important;
	-webkit-text-fill-color: var(--gold-soft) !important;
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

/* « Voir plus d'avis » : même bouton que « Voir plus » de la description
   (vert plein). Il était en contour avec `var(--cbdco-gold)`, variable qui
   n'existe pas — la bordure retombait donc sur la couleur du texte. */
.cbdco-reviews__loadmore-btn {
	background: var(--btn-bg) !important;
	border: 1px solid var(--gold) !important;
	color: var(--btn-fg) !important;
	-webkit-text-fill-color: var(--btn-fg) !important;
	padding: 11px 22px !important;
	font-size: 13px !important;
	box-shadow: none !important;
}
.cbdco-reviews__loadmore-btn:hover {
	background: var(--btn-bg-hover) !important;
	border-color: var(--btn-bg-hover) !important;
	color: var(--btn-fg) !important;
}
/* Ombre verte retirée du bouton « Voir plus » de la description. */
.sp-desc-toggle { box-shadow: none !important; }

/* « N avis clients » aligné sur les étoiles (il retombait sous la ligne de
   base des ★, qui sont plus hautes que les chiffres). */
.cbdco-single-rating {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}
.cbdco-single-rating .cbdco-stars__count,
.cbdco-single-rating .cbdco-stars__avg {
	line-height: 1;
	display: inline-flex;
	align-items: center;
}

/* Barre d'engagements : texte noir et un cran plus petit. */
.site-reassure__item {
	font-size: 13px;
	color: var(--text);
}
.site-reassure__item svg { width: 18px; height: 18px; }
@media (max-width: 768px) {
	.site-reassure__item,
	.site-reassure__item--clone { font-size: 12.5px; }
}

/* ==================================================================
   Espace client — liens rendus en bouton (`a.button`)
   ------------------------------------------------------------------
   WooCommerce sort certaines actions du compte comme des <a class="button">
   (« Confirmer l'adresse e-mail », « Voir », « Commander à nouveau »…).
   Le thème leur donnait le fond vert mais pas la couleur de texte : le
   navigateur appliquait donc sa couleur de lien bleue + le soulignement,
   illisible sur le vert.
   ================================================================== */
.woocommerce-account .woocommerce-MyAccount-content a.button,
.woocommerce-account .woocommerce-message a.button,
.woocommerce-account .woocommerce-info a.button,
.woocommerce-account a.button.wc-forward {
	color: var(--btn-fg, #ffffff) !important;
	text-decoration: none !important;
}
.woocommerce-account .woocommerce-MyAccount-content a.button:hover,
.woocommerce-account a.button.wc-forward:hover {
	color: var(--btn-fg, #ffffff) !important;
	text-decoration: none !important;
}

/* ==================================================================
   Menu principal — onglet de la page courante
   ------------------------------------------------------------------
   Uniquement cet élément : `--btn-bg` lui appliquait le dégradé vert
   clair → vert moyen des boutons. On force l'aplat vert foncé du site.
   Rien d'autre n'est touché (les boutons gardent leur habillage).
   ================================================================== */
.main-nav__list > li.current-menu-item > a,
.main-nav__list > li.current-menu-parent > a,
.main-nav__list > li.current-menu-ancestor > a {
	background: #2d4a2d !important;
	background-image: none !important;
	border-color: #2d4a2d !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
}
.main-nav__list > li.current-menu-item > a *,
.main-nav__list > li.current-menu-parent > a *,
.main-nav__list > li.current-menu-ancestor > a * {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	background: none !important;
}

/* ==================================================================
   Page de confirmation de commande
   ------------------------------------------------------------------
   Les libellés du pied de tableau (Sous-total, Expédition, Total)
   héritaient d'un `-webkit-text-fill-color: transparent` venu d'un
   parent : le texte existait mais s'affichait en blanc invisible.
   ================================================================== */
.woocommerce-order-details .shop_table.order_details tfoot th,
.woocommerce-order-details .shop_table.order_details tfoot td,
.woocommerce-order-details .shop_table.order_details tfoot small {
	-webkit-text-fill-color: currentColor;
	color: var(--text);
}
.woocommerce-order-details .shop_table.order_details tfoot th {
	color: var(--text-dim);
	-webkit-text-fill-color: var(--text-dim);
}
.woocommerce-order-details .shop_table.order_details tfoot tr:last-child td bdi {
	background: none;
	color: var(--green, #2d4a2d);
	-webkit-text-fill-color: var(--green, #2d4a2d);
}

/* Bouton « Facture PDF » : vert plein comme les autres boutons. */
.cbdco-thankyou a.cbdco-invoice-link,
.woocommerce-order-details a[href*="cbdco_invoice"] {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--green, #2d4a2d) !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff;
	border: 1px solid var(--green, #2d4a2d) !important;
	border-radius: 6px;
	padding: 9px 16px;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none !important;
	box-shadow: none !important;
}
.cbdco-thankyou a.cbdco-invoice-link:hover,
.woocommerce-order-details a[href*="cbdco_invoice"]:hover {
	background: #3a5c3a !important;
	border-color: #3a5c3a !important;
	color: #ffffff !important;
}
