/*
 * Styles principaux du thème Ceyssat Ma Bougie.
 * Approche mobile-first, CSS natif. Référence : docs/design-system.md.
 *
 * Sommaire
 * 1. Jetons (variables)
 * 2. Base
 * 3. Utilitaires
 * 4. Header
 * 5. Navigation principale
 * 6. Footer
 * 7. Boutons
 * 8. Accueil (Hero, réassurance, univers olfactifs)
 * 9. WooCommerce (fondations, boutique, catégories, carte produit, fiche produit, pagination)
 * 10. Mouvement réduit
 */

/* ==========================================================================
   1. Jetons
   ========================================================================== */

:root {
	/* Palette */
	--cmb-color-charcoal: #181614;
	--cmb-color-ivory: #f7f3ec;
	--cmb-color-white: #fffdf9;
	--cmb-color-linen: #efe8dc;
	--cmb-color-beige: #ded4c5;
	--cmb-color-taupe: #8c847b;
	--cmb-color-stone: #645e58;
	--cmb-color-copper: #b66a3c;
	--cmb-color-copper-dark: #94512b;

	/* Rôles */
	--cmb-color-text: var(--cmb-color-charcoal);
	--cmb-color-text-muted: var(--cmb-color-stone);
	--cmb-color-background: var(--cmb-color-ivory);
	--cmb-color-surface: var(--cmb-color-white);
	--cmb-color-surface-alt: var(--cmb-color-linen);
	--cmb-color-border: var(--cmb-color-beige);
	--cmb-color-border-strong: var(--cmb-color-taupe);
	--cmb-color-accent: var(--cmb-color-copper);
	--cmb-color-accent-strong: var(--cmb-color-copper-dark);
	--cmb-color-on-accent: var(--cmb-color-white);
	--cmb-color-focus: var(--cmb-color-copper-dark);
	--cmb-color-success: #3f6b4a;
	--cmb-color-error: #a23b2a;

	/* Typographie */
	--cmb-font-serif: ui-serif, "Iowan Old Style", "Apple Garamond", Baskerville, "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
	--cmb-font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
	--cmb-font-heading: var(--cmb-font-serif);
	--cmb-font-body: var(--cmb-font-sans);

	--cmb-text-xs: 0.8125rem;
	--cmb-text-sm: 0.875rem;
	--cmb-text-base: clamp(1rem, 0.96rem + 0.18vw, 1.0625rem);
	--cmb-text-lg: clamp(1.125rem, 1.07rem + 0.24vw, 1.25rem);
	--cmb-text-xl: clamp(1.375rem, 1.27rem + 0.45vw, 1.625rem);
	--cmb-text-2xl: clamp(1.75rem, 1.55rem + 0.87vw, 2.25rem);
	--cmb-text-3xl: clamp(2.125rem, 1.8rem + 1.4vw, 3rem);
	--cmb-text-4xl: clamp(2.5rem, 1.95rem + 2.4vw, 4rem);

	--cmb-leading-tight: 1.15;
	--cmb-leading-snug: 1.35;
	--cmb-leading-normal: 1.65;

	--cmb-weight-regular: 400;
	--cmb-weight-medium: 500;
	--cmb-weight-semibold: 600;

	--cmb-tracking-wide: 0.04em;
	--cmb-tracking-wider: 0.14em;

	/* Espacements */
	--cmb-space-3xs: 0.25rem;
	--cmb-space-2xs: 0.5rem;
	--cmb-space-xs: 0.75rem;
	--cmb-space-s: 1rem;
	--cmb-space-m: 1.5rem;
	--cmb-space-l: 2rem;
	--cmb-space-xl: clamp(2.5rem, 2rem + 2vw, 3.5rem);
	--cmb-space-2xl: clamp(3.5rem, 2.6rem + 4vw, 6rem);
	--cmb-space-3xl: clamp(5rem, 3.5rem + 6vw, 9rem);

	/* Mise en page */
	--cmb-gutter: clamp(1rem, 0.6rem + 1.8vw, 2rem);
	--cmb-container-max: 75rem;
	--cmb-container-narrow: 46rem;
	--cmb-tap-target: 2.75rem; /* 44 px */

	/* Rayons */
	--cmb-radius-s: 0.25rem;
	--cmb-radius-m: 0.5rem;
	--cmb-radius-l: 1rem;
	--cmb-radius-pill: 999px;

	/* Ombres (chaudes, très légères) */
	--cmb-shadow-xs: 0 1px 0 rgb(24 22 20 / 0.06);
	--cmb-shadow-s: 0 2px 8px rgb(24 22 20 / 0.06);
	--cmb-shadow-m: 0 8px 24px rgb(24 22 20 / 0.08);
	--cmb-shadow-l: 0 16px 48px rgb(24 22 20 / 0.1);

	/* Transitions */
	--cmb-duration-fast: 150ms;
	--cmb-duration-base: 250ms;
	--cmb-duration-slow: 400ms;
	--cmb-ease: cubic-bezier(0.2, 0.6, 0.2, 1);

	/* Composants */
	--cmb-header-height: 4.25rem;
	--cmb-logo-width: 7.5rem;
	--cmb-z-header: 100;
	--cmb-admin-bar: var(--wp-admin--admin-bar--height, 0px);
}

@media (min-width: 72em) {
	:root {
		--cmb-header-height: 5.75rem;
		--cmb-logo-width: 10rem;
	}
}

/* ==========================================================================
   2. Base
   ========================================================================== */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scrollbar-gutter: stable; /* évite un décalage quand le menu mobile bloque le défilement */
	scroll-padding-top: calc(var(--cmb-header-height) + var(--cmb-admin-bar) + var(--cmb-space-s));
}

html.cmb-scroll-locked {
	overflow: hidden;
}

body {
	margin: 0;
	min-height: 100vh;
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
	background: var(--cmb-color-background);
	color: var(--cmb-color-text);
	font-family: var(--cmb-font-body);
	font-size: var(--cmb-text-base);
	line-height: var(--cmb-leading-normal);
	-webkit-font-smoothing: antialiased;
}

.site-main {
	flex: 1 0 auto;
}

h1,
h2,
h3,
h4 {
	margin: 0 0 var(--cmb-space-s);
	font-family: var(--cmb-font-heading);
	font-weight: var(--cmb-weight-regular);
	line-height: var(--cmb-leading-tight);
	text-wrap: balance;
}

h1 { font-size: var(--cmb-text-4xl); }
h2 { font-size: var(--cmb-text-3xl); }
h3 { font-size: var(--cmb-text-2xl); }
h4 { font-size: var(--cmb-text-xl); }

p {
	margin: 0 0 var(--cmb-space-s);
}

a {
	color: inherit;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	transition: color var(--cmb-duration-fast) var(--cmb-ease);
}

a:hover {
	color: var(--cmb-color-accent-strong);
}

/* Pas de display: block global : les images et SVG inline (contenu, logos de paiement,
   extensions) doivent pouvoir rester dans le flux du texte. */
img,
svg {
	max-width: 100%;
}

img {
	height: auto;
}

:focus-visible {
	outline: 2px solid var(--cmb-color-focus);
	outline-offset: 3px;
}

::selection {
	background: var(--cmb-color-beige);
	color: var(--cmb-color-charcoal);
}

/* ==========================================================================
   3. Utilitaires
   ========================================================================== */

.cmb-container {
	width: min(100% - 2 * var(--cmb-gutter), var(--cmb-container-max));
	margin-inline: auto;
}

.cmb-content {
	padding-block: var(--cmb-space-xl);
}

/* Texte réservé aux lecteurs d'écran. */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* Lien d'évitement : visible au focus clavier. */
.skip-link:focus {
	position: fixed !important;
	top: calc(var(--cmb-admin-bar) + var(--cmb-space-2xs));
	left: var(--cmb-space-2xs);
	z-index: calc(var(--cmb-z-header) + 1);
	width: auto;
	height: auto;
	margin: 0;
	padding: var(--cmb-space-xs) var(--cmb-space-s);
	clip: auto;
	background: var(--cmb-color-charcoal);
	color: var(--cmb-color-white);
	font-weight: var(--cmb-weight-medium);
	text-decoration: none;
	border-radius: var(--cmb-radius-m);
	box-shadow: var(--cmb-shadow-m);
}

/* Logo officiel : version web déjà recadrée (512 × 245), ratio donné par width/height. */
.cmb-logo {
	display: block;
	width: 100%;
	height: auto;
}

.cmb-icon {
	display: block;
	width: 1.5rem;
	height: 1.5rem;
	flex-shrink: 0;
}

/* Surtitre de section : petites capitales espacées, cuivre foncé (lisible en petit texte). */
.cmb-eyebrow {
	margin: 0 0 var(--cmb-space-2xs);
	color: var(--cmb-color-accent-strong);
	font-family: var(--cmb-font-body);
	font-size: var(--cmb-text-xs);
	font-weight: var(--cmb-weight-semibold);
	letter-spacing: var(--cmb-tracking-wider);
	line-height: var(--cmb-leading-snug);
	text-transform: uppercase;
}

.cmb-badge {
	display: inline-grid;
	place-items: center;
	min-width: 1.25rem;
	height: 1.25rem;
	padding-inline: 0.3rem;
	background: var(--cmb-color-accent-strong);
	color: var(--cmb-color-on-accent);
	font-size: 0.6875rem;
	font-weight: var(--cmb-weight-semibold);
	line-height: 1;
	border-radius: var(--cmb-radius-pill);
}

/* ==========================================================================
   4. Header
   ========================================================================== */

.site-header {
	position: sticky;
	top: var(--cmb-admin-bar);
	z-index: var(--cmb-z-header);
	background: var(--cmb-color-surface);
	border-bottom: 1px solid var(--cmb-color-border);
	box-shadow: var(--cmb-shadow-xs);
}

/* Barre d'admin WordPress non fixe sous 600 px. */
@media (max-width: 600px) {
	.admin-bar .site-header {
		top: 0;
	}
}

.site-header__inner {
	display: flex;
	align-items: center;
	gap: var(--cmb-space-s);
	min-height: var(--cmb-header-height);
}

.site-header__brand {
	display: block;
	width: var(--cmb-logo-width);
	flex-shrink: 0;
	margin-right: auto;
	padding-block: var(--cmb-space-2xs);
}

.site-header__actions {
	display: flex;
	align-items: center;
	gap: var(--cmb-space-3xs);
	margin-right: calc(-1 * var(--cmb-space-2xs));
}

.site-header__action {
	position: relative;
	display: inline-grid;
	place-items: center;
	width: var(--cmb-tap-target);
	height: var(--cmb-tap-target);
	padding: 0;
	background: transparent;
	color: var(--cmb-color-text);
	border: 0;
	border-radius: var(--cmb-radius-pill);
	cursor: pointer;
	transition: background-color var(--cmb-duration-fast) var(--cmb-ease), color var(--cmb-duration-fast) var(--cmb-ease);
}

.site-header__action:hover {
	background: var(--cmb-color-linen);
	color: var(--cmb-color-text);
}

.site-header__cart .cmb-badge {
	position: absolute;
	top: 0.2rem;
	right: 0.1rem;
	box-shadow: 0 0 0 2px var(--cmb-color-surface);
}

/* Bouton menu : une icône à la fois selon l'état. */
.site-header__toggle .cmb-icon--close,
.site-header__toggle[aria-expanded="true"] .cmb-icon--menu {
	display: none;
}

.site-header__toggle[aria-expanded="true"] .cmb-icon--close {
	display: block;
}

.no-js .site-header__toggle {
	display: none;
}

@media (min-width: 72em) {
	.site-header__inner {
		display: grid;
		grid-template-columns: 1fr auto 1fr;
		gap: var(--cmb-space-l);
	}

	.site-header__brand {
		margin-right: 0;
	}

	/* Toujours en 3e colonne, même sans menu principal assigné. */
	.site-header__actions {
		grid-column: 3;
		justify-self: end;
	}

	.site-header__toggle {
		display: none;
	}
}

/* ==========================================================================
   5. Navigation principale
   ========================================================================== */

.primary-nav__list,
.primary-nav .sub-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.primary-nav a {
	display: block;
	text-decoration: none;
}

/* Mobile : panneau plein écran sous le header. */
@media (max-width: 71.999em) {
	.primary-nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		display: none;
		height: calc(100vh - 100% - var(--cmb-admin-bar));
		height: calc(100dvh - 100% - var(--cmb-admin-bar));
		padding: var(--cmb-space-m) var(--cmb-gutter) var(--cmb-space-2xl);
		overflow-y: auto;
		overscroll-behavior: contain;
		background: var(--cmb-color-background);
		border-top: 1px solid var(--cmb-color-border);
	}

	.is-nav-open .primary-nav {
		display: block;
		animation: cmb-fade-in var(--cmb-duration-base) var(--cmb-ease);
	}

	/* Sans JavaScript : menu affiché sous le header. */
	.no-js .primary-nav {
		position: static;
		display: block;
		height: auto;
		padding-block: 0 var(--cmb-space-s);
		border-top: 0;
		background: none;
		order: 3;
		flex-basis: 100%;
	}

	.no-js .site-header__inner {
		flex-wrap: wrap;
	}

	/* Menu déplié en permanence : le header ne doit pas rester collé en haut. */
	.no-js .site-header {
		position: static;
	}

	.primary-nav__list > li {
		border-bottom: 1px solid var(--cmb-color-border);
	}

	.primary-nav__list > li > a {
		padding-block: var(--cmb-space-s);
		font-family: var(--cmb-font-heading);
		font-size: var(--cmb-text-xl);
		line-height: var(--cmb-leading-snug);
	}

	.primary-nav .sub-menu {
		padding: 0 0 var(--cmb-space-s) var(--cmb-space-s);
	}

	.primary-nav .sub-menu a {
		padding-block: var(--cmb-space-xs);
		color: var(--cmb-color-text-muted);
	}

	.primary-nav [aria-current="page"] {
		color: var(--cmb-color-accent-strong);
	}
}

/* Desktop : menu horizontal centré. */
@media (min-width: 72em) {
	.primary-nav__list {
		display: flex;
		align-items: center;
		gap: var(--cmb-space-m);
	}

	.primary-nav__list > li {
		position: relative;
	}

	.primary-nav__list > li > a {
		position: relative;
		padding-block: var(--cmb-space-xs);
		font-size: var(--cmb-text-sm);
		font-weight: var(--cmb-weight-medium);
		letter-spacing: var(--cmb-tracking-wide);
		white-space: nowrap;
	}

	/* Filet cuivré discret au survol et sur la page courante. */
	.primary-nav__list > li > a::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0.35rem;
		height: 1px;
		background: var(--cmb-color-accent);
		transform: scaleX(0);
		transition: transform var(--cmb-duration-base) var(--cmb-ease);
	}

	.primary-nav__list > li > a:hover::after,
	.primary-nav__list > li > a[aria-current="page"]::after,
	.primary-nav__list > .current-menu-ancestor > a::after {
		transform: scaleX(1);
	}

	.primary-nav__list > li > a:hover {
		color: var(--cmb-color-text);
	}

	/* Sous-menus (si ajoutés plus tard dans l'admin). */
	.primary-nav .sub-menu {
		position: absolute;
		top: 100%;
		left: 50%;
		min-width: 13rem;
		padding: var(--cmb-space-2xs);
		background: var(--cmb-color-surface);
		border: 1px solid var(--cmb-color-border);
		border-radius: var(--cmb-radius-m);
		box-shadow: var(--cmb-shadow-m);
		opacity: 0;
		visibility: hidden;
		transform: translate(-50%, 0.25rem);
		transition: opacity var(--cmb-duration-fast) var(--cmb-ease), transform var(--cmb-duration-fast) var(--cmb-ease), visibility var(--cmb-duration-fast);
	}

	.primary-nav li:hover > .sub-menu,
	.primary-nav li:focus-within > .sub-menu {
		opacity: 1;
		visibility: visible;
		transform: translate(-50%, 0);
	}

	.primary-nav .sub-menu a {
		padding: var(--cmb-space-2xs) var(--cmb-space-xs);
		font-size: var(--cmb-text-sm);
		border-radius: var(--cmb-radius-s);
	}

	.primary-nav .sub-menu a:hover {
		background: var(--cmb-color-ivory);
	}
}

@keyframes cmb-fade-in {
	from {
		opacity: 0;
		transform: translateY(-0.25rem);
	}
}

/* ==========================================================================
   6. Footer
   ========================================================================== */

/* Partie principale sur fond lin (marque, navigation, fabrique), puis bande anthracite
   (copyright, liens légaux). Mobile : une colonne, les deux listes de liens côte à côte
   dès qu'elles tiennent ; 48em : marque + fabrique à gauche, navigation à droite ;
   64em : trois zones sur une ligne. */
.site-footer {
	margin-top: var(--cmb-space-2xl);
	background: var(--cmb-color-surface-alt);
	color: var(--cmb-color-text-muted);
	font-size: var(--cmb-text-sm);
	border-top: 1px solid var(--cmb-color-border);
}

.site-footer__main {
	display: grid;
	grid-template-areas:
		"brand"
		"nav"
		"workshop";
	gap: var(--cmb-space-xl);
	padding-block: var(--cmb-space-2xl) var(--cmb-space-xl);
}

.site-footer__brand {
	grid-area: brand;
}

.site-footer__home {
	display: inline-block;
	border-radius: var(--cmb-radius-s);
}

.site-footer__logo {
	display: block;
	width: 10rem;
}

.site-footer__tagline {
	max-width: 30ch;
	margin: var(--cmb-space-s) 0 0;
}

.site-footer__title {
	margin-bottom: var(--cmb-space-2xs);
	color: var(--cmb-color-accent-strong);
	font-family: var(--cmb-font-body);
	font-size: var(--cmb-text-xs);
	font-weight: var(--cmb-weight-semibold);
	letter-spacing: var(--cmb-tracking-wider);
	line-height: var(--cmb-leading-snug);
	text-transform: uppercase;
}

/* Deux listes courtes : côte à côte dès 2 × 8,5rem (320 px compris), sinon empilées. */
.site-footer__nav {
	grid-area: nav;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 8.5rem), 1fr));
	gap: var(--cmb-space-l) var(--cmb-space-s);
	align-content: start;
}

.site-footer__menu,
.site-footer__facts,
.site-footer__legal {
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__menu a {
	display: inline-flex;
	align-items: center;
	min-height: var(--cmb-tap-target);
	color: var(--cmb-color-text);
	font-size: 0.9375rem;
	line-height: var(--cmb-leading-snug);
	text-decoration: none;
}

.site-footer__menu a:hover {
	color: var(--cmb-color-accent-strong);
	text-decoration: underline;
}

.site-footer__menu a[aria-current="page"] {
	text-decoration: underline;
	text-decoration-color: var(--cmb-color-accent);
}

/* La fabrique : encart blanc chaud, deux informations sobres. */
.site-footer__workshop {
	grid-area: workshop;
	align-self: start;
	padding: var(--cmb-space-m);
	background: var(--cmb-color-surface);
	border: 1px solid var(--cmb-color-border);
	border-radius: var(--cmb-radius-l);
}

.site-footer__workshop .site-footer__title {
	margin-bottom: var(--cmb-space-s);
}

.site-footer__facts {
	display: grid;
	gap: var(--cmb-space-s);
}

.site-footer__facts li {
	display: grid;
	grid-template-columns: 1.25rem minmax(0, 1fr);
	gap: var(--cmb-space-xs);
	align-items: start;
	max-width: 40ch;
}

.site-footer__facts .cmb-icon {
	width: 1.25rem;
	height: 1.25rem;
	margin-top: 0.0625rem;
	color: var(--cmb-color-accent);
}

/* Bande anthracite. Focus clair : le cuivre foncé du focus global ne ressort pas sur charbon. */
.site-footer__bar {
	background: var(--cmb-color-charcoal);
	color: var(--cmb-color-beige);
}

.site-footer__bar :focus-visible {
	outline-color: var(--cmb-color-ivory);
}

.site-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0 var(--cmb-space-m);
	min-height: 3.5rem;
	padding-block: var(--cmb-space-2xs);
	font-size: var(--cmb-text-xs);
}

.site-footer__copyright {
	margin: 0;
	padding-block: var(--cmb-space-2xs);
}

.site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 0 var(--cmb-space-m);
}

.site-footer__legal a {
	display: inline-flex;
	align-items: center;
	min-height: var(--cmb-tap-target);
	color: var(--cmb-color-ivory);
	text-decoration: none;
}

.site-footer__legal a:hover {
	color: var(--cmb-color-white);
	text-decoration: underline;
}

@media (min-width: 48em) {
	.site-footer__main {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-areas:
			"brand nav"
			"workshop nav";
		column-gap: var(--cmb-space-2xl);
	}
}

@media (min-width: 64em) {
	.site-footer__main {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 1.1fr);
		grid-template-areas: "brand nav workshop";
	}
}

/* Footer 0.11.0 : marque à gauche, trois colonnes de liens (Ceyssat Ma Bougie, Commander,
   Informations légales), plus d'encart « fabrique » (son message tient en une ligne sous la
   marque). Mobile : une colonne ; colonnes de liens côte à côte dès qu'elles tiennent. */
.site-footer__nav--columns {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 9.5rem), 1fr));
	gap: var(--cmb-space-l) var(--cmb-space-m);
}

.site-footer__note {
	max-width: 34ch;
	margin: var(--cmb-space-xs) 0 0;
	font-size: var(--cmb-text-xs);
}

.site-footer__main:not(:has(.site-footer__workshop)) {
	grid-template-areas:
		"brand"
		"nav";
}

/* « Gérer mes cookies » : un bouton (il rouvre le choix) présenté comme les liens de la bande. */
.site-footer__action {
	display: inline-flex;
	align-items: center;
	min-height: var(--cmb-tap-target);
	padding: 0;
	border: 0;
	background: none;
	color: var(--cmb-color-ivory);
	font: inherit;
	cursor: pointer;
}

.site-footer__action:hover {
	color: var(--cmb-color-white);
	text-decoration: underline;
}

@media (min-width: 48em) {
	.site-footer__main:not(:has(.site-footer__workshop)) {
		grid-template-columns: minmax(0, 1fr) minmax(0, 2.6fr);
		grid-template-areas: "brand nav";
	}
}

/* Compatibilité : markup du footer du thème 0.7.0 (.site-footer__grid, bas de page sans bande).
   Des pages HTML encore en cache LWS, ou servies pendant le déploiement, peuvent l'associer à
   cette feuille : il garde alors son rendu 0.7.0. Ces sélecteurs ne visent aucun élément du
   nouveau markup (.site-footer__main, .site-footer__bar). */
.site-footer__grid {
	display: grid;
	gap: var(--cmb-space-xl);
	padding-block: var(--cmb-space-2xl) var(--cmb-space-xl);
}

.site-footer__grid > .site-footer__brand {
	grid-area: auto;
}

.site-footer__grid .site-footer__logo {
	margin-bottom: var(--cmb-space-s);
}

.site-footer__name {
	margin-bottom: var(--cmb-space-2xs);
	color: var(--cmb-color-text);
	font-family: var(--cmb-font-heading);
	font-size: var(--cmb-text-xl);
	line-height: var(--cmb-leading-snug);
}

.site-footer__grid .site-footer__tagline {
	max-width: 32ch;
	margin: 0 0 var(--cmb-space-s);
}

.site-footer__grid .site-footer__title {
	margin-bottom: var(--cmb-space-xs);
	line-height: var(--cmb-leading-tight);
}

.site-footer__grid .site-footer__col p {
	max-width: 36ch;
}

.site-footer__grid .site-footer__menu a {
	padding-block: 0.625rem;
	color: inherit;
	font-size: inherit;
}

.site-footer__grid .site-footer__menu a:hover,
.site-footer > .site-footer__bottom .site-footer__legal a:hover {
	color: var(--cmb-color-text);
}

.site-footer > .site-footer__bottom {
	min-height: 0;
	gap: var(--cmb-space-2xs) var(--cmb-space-m);
	padding-block: var(--cmb-space-m);
	border-top: 1px solid var(--cmb-color-border);
}

.site-footer > .site-footer__bottom .site-footer__copyright {
	padding-block: 0;
}

.site-footer > .site-footer__bottom .site-footer__legal a {
	display: inline-block;
	min-height: 0;
	padding-block: 0.75rem;
	color: inherit;
}

@media (min-width: 48em) {
	.site-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.site-footer__grid > .site-footer__brand {
		grid-column: 1 / -1;
	}
}

@media (min-width: 64em) {
	.site-footer__grid {
		grid-template-columns: 1.4fr 1fr 1fr;
		gap: var(--cmb-space-2xl);
	}

	.site-footer__grid > .site-footer__brand {
		grid-column: auto;
	}
}

/* ==========================================================================
   7. Boutons
   ========================================================================== */

/* Les boutons WooCommerce (.button) partagent exactement ces déclarations : un seul
   système de boutons. .button.alt (ajout au panier, validation) = principal ;
   les autres .button = secondaire. */
.cmb-button,
.woocommerce .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3rem;
	padding: 0.75rem 1.25rem;
	font-family: var(--cmb-font-body);
	font-size: 0.9375rem;
	font-weight: var(--cmb-weight-medium);
	letter-spacing: var(--cmb-tracking-wide);
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	border: 1px solid transparent;
	border-radius: var(--cmb-radius-pill);
	transition: background-color var(--cmb-duration-fast) var(--cmb-ease), border-color var(--cmb-duration-fast) var(--cmb-ease), color var(--cmb-duration-fast) var(--cmb-ease);
}

@media (min-width: 30em) {
	.cmb-button,
	.woocommerce .button {
		padding-inline: 1.75rem;
	}
}

.cmb-button--primary,
.woocommerce .button.alt {
	background: var(--cmb-color-charcoal);
	color: var(--cmb-color-white);
}

.cmb-button--primary:hover,
.woocommerce .button.alt:hover {
	background: var(--cmb-color-accent-strong);
	color: var(--cmb-color-on-accent);
}

.cmb-button--secondary,
.woocommerce .button:not(.alt) {
	background: transparent;
	color: var(--cmb-color-text);
	border-color: var(--cmb-color-border-strong);
}

.cmb-button--secondary:hover,
.woocommerce .button:not(.alt):hover {
	background: var(--cmb-color-linen);
	color: var(--cmb-color-text);
	border-color: var(--cmb-color-charcoal);
}

/* Désactivé (ex. bouton en attente) : lisible mais clairement inactif. */
.woocommerce .button:disabled,
.woocommerce .button.disabled,
.woocommerce .button:disabled:hover,
.woocommerce .button.disabled:hover {
	background: var(--cmb-color-beige);
	color: var(--cmb-color-stone);
	border-color: transparent;
	cursor: not-allowed;
}

/* ==========================================================================
   8. Accueil (front-page.php)
   ========================================================================== */

/* --- Hero --- */

.cmb-hero {
	padding-block: var(--cmb-space-l) var(--cmb-space-xl);
}

.cmb-hero__inner {
	display: grid;
	gap: var(--cmb-space-l);
}

.cmb-hero__title {
	margin-bottom: var(--cmb-space-s);
	font-size: clamp(2.25rem, 1.5rem + 3.2vw, 4rem);
	line-height: 1.08;
	letter-spacing: -0.01em;
	text-wrap: balance;
}

.cmb-hero__lead {
	margin-bottom: var(--cmb-space-l);
	color: var(--cmb-color-text-muted);
	font-size: var(--cmb-text-lg);
	line-height: var(--cmb-leading-snug);
	text-wrap: balance;
}

.cmb-hero__actions {
	display: flex;
	flex-direction: column;
	gap: var(--cmb-space-xs);
}

@media (min-width: 30em) {
	.cmb-hero__actions {
		flex-direction: row;
		flex-wrap: wrap;
	}
}

/* Longueur de ligne maîtrisée dès que la largeur le permet (pas sur petit mobile). */
@media (min-width: 36em) {
	.cmb-hero__title {
		max-width: 18ch;
	}
}

/* Petits mobiles (≤ 390 px) : taille fluide 30 px → 36,5 px pour garder le titre sur 3 lignes,
   raccordée sans saut à la taille normale au-delà. */
@media (max-width: 24.375em) {
	.cmb-hero__title {
		font-size: clamp(
			1.875rem,
			calc(0.018rem + 9.286vw),
			2.28125rem
		);
	}
}

/* Visuel (image mise en avant de la page d'accueil) : au-dessus du texte sur mobile.
   Produit détouré sur fond transparent : affiché en entier (contain) sur l'aplat beige
   du conteneur, jamais recadré ni étiré. */
.cmb-hero__media {
	order: -1;
}

.cmb-hero__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	max-height: 28rem; /* tablette : l'image empilée ne repousse pas le titre trop bas */
	object-fit: contain;
	object-position: 50% 50%;
	background-color: var(--cmb-color-beige);
	border-radius: var(--cmb-radius-l);
}

/* Grands écrans avec visuel (900 px et plus) : composition asymétrique 7/5, visuel en arche
   (rappel de la flamme) posé sur un aplat lin décalé. En dessous, les tablettes en portrait
   gardent la composition empilée, pour un titre sur 3 lignes. */
@media (min-width: 56.25em) {
	.cmb-hero--media {
		padding-block: var(--cmb-space-xl);
	}

	.cmb-hero--media .cmb-hero__inner {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		align-items: center;
		gap: var(--cmb-space-2xl);
	}

	.cmb-hero--media .cmb-hero__media {
		position: relative;
		order: 0;
	}

	.cmb-hero--media .cmb-hero__media::before {
		content: "";
		position: absolute;
		inset: var(--cmb-space-m) calc(-1 * var(--cmb-space-s)) calc(-1 * var(--cmb-space-s)) var(--cmb-space-m);
		background: var(--cmb-color-linen);
		border-radius: 999px 999px var(--cmb-radius-l) var(--cmb-radius-l);
	}

	.cmb-hero--media .cmb-hero__img {
		position: relative;
		aspect-ratio: 4 / 5;
		max-height: 34rem; /* le Hero tient dans un écran 1280 × 800 */
		border-radius: 999px 999px var(--cmb-radius-l) var(--cmb-radius-l);
	}
}

/* Sans visuel : composition typographique centrée, carte blanc chaud sur lin. */
.cmb-hero--text {
	background: var(--cmb-color-linen);
}

.cmb-hero--text .cmb-hero__content {
	padding: var(--cmb-space-xl) var(--cmb-space-s);
	text-align: center;
	background: var(--cmb-color-surface);
	border-radius: var(--cmb-radius-l);
}

.cmb-hero--text .cmb-hero__title {
	margin-inline: auto;
}

/* Filet cuivré au-dessus du titre (repère discret, purement décoratif). */
.cmb-hero--text .cmb-hero__title::before {
	content: "";
	display: block;
	width: 3rem;
	height: 1px;
	margin: 0 auto var(--cmb-space-m);
	background: var(--cmb-color-accent);
}

.cmb-hero--text .cmb-hero__actions {
	justify-content: center;
}

@media (min-width: 36em) {
	.cmb-hero--text .cmb-hero__content {
		padding-inline: var(--cmb-space-l);
	}
}

@media (min-width: 64em) {
	.cmb-hero--text {
		padding-block: var(--cmb-space-xl);
	}

	.cmb-hero--text .cmb-hero__content {
		width: min(100%, 56rem);
		margin-inline: auto;
		padding: var(--cmb-space-xl);
	}
}

/* --- Bandeau de réassurance --- */

.cmb-reassurance {
	background: var(--cmb-color-surface);
	border-block: 1px solid var(--cmb-color-border);
}

.cmb-reassurance__list {
	display: grid;
	margin-block: 0;
	padding: 0;
	list-style: none;
}

.cmb-reassurance__item {
	display: flex;
	align-items: center;
	gap: var(--cmb-space-s);
	padding-block: var(--cmb-space-s);
}

.cmb-reassurance__item + .cmb-reassurance__item {
	border-top: 1px solid var(--cmb-color-border);
}

.cmb-reassurance .cmb-icon {
	width: 1.75rem;
	height: 1.75rem;
	color: var(--cmb-color-accent);
}

.cmb-reassurance__text {
	display: flex;
	flex-direction: column;
	margin: 0;
	line-height: var(--cmb-leading-snug);
}

.cmb-reassurance__title {
	font-weight: var(--cmb-weight-semibold);
}

.cmb-reassurance__detail {
	color: var(--cmb-color-text-muted);
	font-size: var(--cmb-text-sm);
}

/* 0.12.0 : quatre avantages (livraison offerte, retrait gratuit, 6e bougie, box) : 2 colonnes puis 4. */
@media (min-width: 48em) {
	.cmb-reassurance__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.cmb-reassurance__item {
		justify-content: center;
		padding: var(--cmb-space-m) var(--cmb-space-s);
	}

	.cmb-reassurance__item + .cmb-reassurance__item {
		border-top: 0;
	}

	.cmb-reassurance__item:nth-child(even) {
		border-left: 1px solid var(--cmb-color-border);
	}

	.cmb-reassurance__item:nth-child(n + 3) {
		border-top: 1px solid var(--cmb-color-border);
	}
}

@media (min-width: 64em) {
	.cmb-reassurance__list {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.cmb-reassurance__item:nth-child(n + 3) {
		border-top: 0;
	}

	.cmb-reassurance__item + .cmb-reassurance__item {
		border-left: 1px solid var(--cmb-color-border);
	}
}

/* --- Univers olfactifs --- */

/* Posée sur le fond ivoire de la page, sans bande : l'espace du haut la détache de la
   réassurance ; en bas, la marge du footer (ou de la section suivante) suffit. */
.cmb-universes {
	padding-top: var(--cmb-space-2xl);
}

.cmb-universes__title {
	margin-bottom: var(--cmb-space-l);
}

.cmb-universes__list {
	display: grid;
	gap: var(--cmb-space-xs);
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Mobile : ligne [vignette | nom + accroche | flèche], sans boîte ni séparateur
   (pour ne pas répéter la liste de réassurance). Toute la ligne est cliquable. */
.cmb-universe {
	display: grid;
	grid-template-columns: 5rem minmax(0, 1fr) auto;
	align-items: center;
	gap: var(--cmb-space-xs);
	height: 100%;
	color: var(--cmb-color-text);
	text-decoration: none;
	border-radius: var(--cmb-radius-m);
}

/* Pas de survol cuivré global des liens : seul le nom se souligne. */
a.cmb-universe:hover {
	color: var(--cmb-color-text);
}

a.cmb-universe:hover .cmb-universe__name {
	text-decoration-line: underline;
}

.cmb-universe__media {
	aspect-ratio: 1;
	overflow: hidden;
	background: var(--cmb-color-linen);
	border-radius: var(--cmb-radius-m);
}

/* Visuel carré : entier dans la vignette carrée (mobile), recadré au centre en 4:3 (48em+). */
.cmb-universe__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 50%;
}

/* Secours sans miniature de catégorie : aplat lin et pictogramme cuivre, même format. */
.cmb-universe__media--fallback {
	display: grid;
	place-items: center;
	color: var(--cmb-color-accent);
}

.cmb-universe__media--fallback .cmb-icon {
	width: 2rem;
	height: 2rem;
}

.cmb-universe__name {
	margin: 0 0 var(--cmb-space-3xs);
	font-size: var(--cmb-text-xl);
	line-height: var(--cmb-leading-tight);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.cmb-universe__text {
	margin: 0;
	color: var(--cmb-color-text-muted);
	font-size: var(--cmb-text-sm);
	line-height: var(--cmb-leading-snug);
	text-wrap: pretty; /* évite un mot isolé en dernière ligne (amélioration progressive) */
}

.cmb-universe .cmb-icon--arrow-right {
	width: 1.25rem;
	height: 1.25rem;
	color: var(--cmb-color-accent);
}

/* Tablette (48em+) : grille 2 × 2 ; desktop (64em+) : 4 colonnes. Carte éditoriale sans
   boîte : visuel 4:3 au-dessus, nom et accroche dessous, flèche à droite du nom. */
@media (min-width: 48em) {
	.cmb-universes__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--cmb-space-l) var(--cmb-space-m);
	}

	.cmb-universe {
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: start;
		align-content: start;
		gap: var(--cmb-space-s) var(--cmb-space-xs);
		border-radius: var(--cmb-radius-l);
	}

	.cmb-universe__media {
		grid-column: 1 / -1;
		aspect-ratio: 4 / 3;
		border-radius: var(--cmb-radius-l);
	}

	/* Pictogramme proportionné au grand aplat, trait affiné pour garder la finesse des icônes. */
	.cmb-universe__media--fallback .cmb-icon {
		width: 3.5rem;
		height: 3.5rem;
		stroke-width: 1;
	}

	/* Alignée sur la première ligne du nom. */
	.cmb-universe .cmb-icon--arrow-right {
		margin-top: 0.25rem;
	}
}

@media (min-width: 64em) {
	.cmb-universes__list {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* --- Sélection de produits (« Nos incontournables ») --- */

/* Bande blanc chaud pleine largeur. Les cartes sont celles de la boutique (section 9) :
   seules la grille et la place du lien changent ici. */
.cmb-featured {
	margin-top: var(--cmb-space-2xl);
	padding-block: var(--cmb-space-2xl);
	background: var(--cmb-color-surface);
}

/* Dernière section de l'accueil : le footer la suit directement (sa bordure haute les
   sépare), sans bande ivoire entre les deux. */
body:has(.cmb-home > .cmb-featured:last-child) .site-footer {
	margin-top: 0;
}

/* Mobile : en-tête, produits, puis le lien (secondaire) sous les produits. */
.cmb-featured__inner {
	display: grid;
	grid-template-areas:
		"header"
		"products"
		"all";
	gap: var(--cmb-space-l);
}

.cmb-featured__header {
	grid-area: header;
}

.cmb-featured__title {
	margin: 0;
}

.cmb-featured__products {
	grid-area: products;
}

/* Mobile : le premier produit occupe toute la largeur, les deux suivants partagent la
   ligne du dessous. Dès 48em : trois colonnes. */
.cmb-featured .woocommerce ul.products {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--cmb-space-l) var(--cmb-space-s);
	margin: 0;
}

.cmb-featured .woocommerce ul.products li.product:first-child {
	grid-column: 1 / -1;
}

.cmb-featured__all {
	grid-area: all;
	justify-self: start;
	display: inline-flex;
	align-items: center;
	gap: var(--cmb-space-2xs);
	min-height: var(--cmb-tap-target);
	color: var(--cmb-color-text);
	font-weight: var(--cmb-weight-medium);
	text-decoration-line: underline;
	text-decoration-color: var(--cmb-color-border-strong);
}

.cmb-featured__all:hover {
	color: var(--cmb-color-text);
	text-decoration-color: currentColor;
}

.cmb-featured__all .cmb-icon {
	width: 1.25rem;
	height: 1.25rem;
	color: var(--cmb-color-accent);
}

@media (min-width: 48em) {
	.cmb-featured .woocommerce ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: var(--cmb-space-m);
	}

	.cmb-featured .woocommerce ul.products li.product:first-child {
		grid-column: auto;
	}
}

/* Desktop : en-tête à gauche, lien à droite sur la même ligne, produits dessous. */
@media (min-width: 64em) {
	.cmb-featured__inner {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas:
			"header all"
			"products products";
		align-items: end;
	}

	.cmb-featured .woocommerce ul.products {
		gap: var(--cmb-space-l);
	}
}

/* --- La fabrique (0.12.3) --- */

/* Sur le fond ivoire de la page, entre la bande des incontournables et l'invitation au Studio :
   la dimension humaine et locale, sans nouveau langage graphique (surtitre, filet cuivre, icônes au
   trait, filets beige). Mobile : en-tête puis les trois faits ; dès 56.25em : en-tête à gauche (5/12),
   faits à droite (7/12). */
.cmb-workshop {
	padding-block: var(--cmb-space-2xl);
}

/* Dernière section affichée (Studio non ouvert au visiteur) : le footer la suit directement. */
body:has(.cmb-home > .cmb-workshop:last-child) .site-footer {
	margin-top: 0;
}

.cmb-workshop__inner {
	display: grid;
	gap: var(--cmb-space-l);
}

.cmb-workshop__title {
	max-width: 14ch;
	margin: 0;
}

/* En-tête : surtitre, titre, filet cuivre, puis le lien vers « Notre histoire » (ordre de lecture). */
.cmb-workshop__header {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.cmb-workshop__header::after {
	content: "";
	order: 3;
	display: block;
	width: 3rem;
	height: 1px;
	margin-top: var(--cmb-space-m);
	background: var(--cmb-color-accent);
}

.cmb-workshop__link {
	order: 4;
	display: inline-flex;
	align-items: center;
	gap: var(--cmb-space-2xs);
	min-height: var(--cmb-tap-target);
	margin-top: var(--cmb-space-s);
	color: var(--cmb-color-text);
	font-weight: var(--cmb-weight-medium);
	text-decoration-line: underline;
	text-decoration-color: var(--cmb-color-border-strong);
	text-underline-offset: 0.25em;
}

.cmb-workshop__link:hover {
	color: var(--cmb-color-text);
	text-decoration-color: currentColor;
}

.cmb-workshop__link .cmb-icon {
	width: 1.25rem;
	height: 1.25rem;
	color: var(--cmb-color-accent);
}

.cmb-workshop__facts {
	display: grid;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cmb-workshop__fact {
	display: flex;
	align-items: flex-start;
	gap: var(--cmb-space-s);
	padding-block: var(--cmb-space-s);
	border-top: 1px solid var(--cmb-color-border);
}

.cmb-workshop__fact:last-child {
	border-bottom: 1px solid var(--cmb-color-border);
}

.cmb-workshop__fact .cmb-icon {
	flex: none;
	width: 1.75rem;
	height: 1.75rem;
	color: var(--cmb-color-accent);
}

.cmb-workshop__fact-body {
	min-width: 0;
}

.cmb-workshop__fact-title {
	margin: 0 0 var(--cmb-space-3xs);
	font-size: var(--cmb-text-lg);
	line-height: var(--cmb-leading-tight);
}

.cmb-workshop__fact-text {
	max-width: 38rem;
	margin: 0;
	color: var(--cmb-color-text-muted);
	line-height: var(--cmb-leading-snug);
}

/* Dès 48em : plus d'air et titres des faits un cran plus grands (mobile volontairement compact). */
@media (min-width: 48em) {
	.cmb-workshop__fact {
		padding-block: var(--cmb-space-m);
	}

	.cmb-workshop__fact-title {
		font-size: var(--cmb-text-xl);
	}

	.cmb-workshop__fact-text {
		line-height: var(--cmb-leading-normal);
	}
}

@media (min-width: 56.25em) {
	.cmb-workshop__inner {
		grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
		column-gap: var(--cmb-space-2xl);
		align-items: start;
	}
}

/* --- Invitation au Studio de personnalisation (Home 4) --- */

/* Bande lin pleine largeur après la bande blanc chaud des incontournables.
   Mobile : surtitre + titre, visuel, texte, repères, bouton pleine largeur. */
.cmb-personalize {
	padding-block: var(--cmb-space-2xl);
	background: var(--cmb-color-surface-alt);
}

/* Dernière section de l'accueil : le footer (lin, bordure haute) la suit directement. */
body:has(.cmb-home > .cmb-personalize:last-child) .site-footer {
	margin-top: 0;
}

.cmb-personalize__inner {
	display: grid;
	grid-template-areas:
		"header"
		"media"
		"body";
	gap: var(--cmb-space-l);
}

.cmb-personalize__header {
	grid-area: header;
}

.cmb-personalize__title {
	margin: 0;
	max-width: 18ch;
}

/* Visuel : image mise en avant de la page « personnalisation », recadrée (cover). */
.cmb-personalize__media {
	grid-area: media;
}

.cmb-personalize__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: 50% 50%;
	background-color: var(--cmb-color-beige);
	border-radius: var(--cmb-radius-l);
}

.cmb-personalize__body {
	grid-area: body;
}

.cmb-personalize__text {
	max-width: 36rem;
	margin: 0 0 var(--cmb-space-l);
	font-size: var(--cmb-text-lg);
	line-height: var(--cmb-leading-normal);
}

/* Trois repères : une liste légère entre deux filets, pictogramme cuivre. */
.cmb-personalize__points {
	display: grid;
	gap: var(--cmb-space-xs);
	max-width: 36rem;
	margin: 0 0 var(--cmb-space-l);
	padding: var(--cmb-space-m) 0;
	list-style: none;
	border-block: 1px solid var(--cmb-color-border);
}

.cmb-personalize__point {
	display: flex;
	align-items: center;
	gap: var(--cmb-space-xs);
	font-weight: var(--cmb-weight-medium);
	line-height: var(--cmb-leading-snug);
}

.cmb-personalize__point .cmb-icon {
	width: 1.375rem;
	height: 1.375rem;
	color: var(--cmb-color-accent);
}

.cmb-personalize__cta {
	width: 100%;
}

@media (min-width: 30em) {
	.cmb-personalize__cta {
		width: auto;
	}
}

/* Sans visuel : une seule colonne centrée, largeur de lecture (aucune ligne vide pour le visuel). */
.cmb-personalize--text .cmb-personalize__inner {
	max-width: calc(var(--cmb-container-narrow) + 2 * var(--cmb-gutter));
	grid-template-areas:
		"header"
		"body";
}

/* Grands écrans avec visuel (900 px et plus) : visuel à gauche, contenu à droite. */
@media (min-width: 56.25em) {
	.cmb-personalize--media .cmb-personalize__inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		/* Contenu centré verticalement à côté du visuel (lignes vides souples au-dessus et dessous). */
		grid-template-areas:
			"media ."
			"media header"
			"media body"
			"media .";
		grid-template-rows: 1fr auto auto 1fr;
		column-gap: var(--cmb-space-2xl);
		row-gap: var(--cmb-space-m);
	}

	.cmb-personalize--media .cmb-personalize__img {
		aspect-ratio: 1 / 1;
	}
}

/* ==========================================================================
   9. WooCommerce
   Seule woocommerce-layout est chargée (inc/woocommerce.php) : l'habillage est ici.
   ========================================================================== */

/* --- Fondations : textes et contrôles natifs --- */

.woocommerce .woocommerce-breadcrumb {
	margin: 0 0 var(--cmb-space-m);
	color: var(--cmb-color-text-muted);
	font-size: var(--cmb-text-xs);
	letter-spacing: var(--cmb-tracking-wide);
}

.woocommerce .woocommerce-breadcrumb a {
	color: inherit;
	text-decoration: none;
}

.woocommerce .woocommerce-breadcrumb a:hover {
	color: var(--cmb-color-text);
	text-decoration-line: underline;
}

.cmb-breadcrumb__sep {
	margin-inline: 0.5em;
	color: var(--cmb-color-taupe);
}

.woocommerce .woocommerce-result-count {
	margin: 0 0 var(--cmb-space-m);
	color: var(--cmb-color-text-muted);
	font-size: var(--cmb-text-sm);
}

.woocommerce .woocommerce-ordering {
	margin: 0 0 var(--cmb-space-m);
}

/* Champs : même rendu pour les formulaires WooCommerce encore natifs (compte, tri…). */
.woocommerce form .form-row .input-text,
.woocommerce form .form-row select,
.woocommerce .woocommerce-ordering select,
.woocommerce .quantity .qty {
	min-height: var(--cmb-tap-target);
	padding: 0.5rem 0.75rem;
	background: var(--cmb-color-surface);
	color: var(--cmb-color-text);
	font: inherit;
	border: 1px solid var(--cmb-color-border-strong);
	border-radius: var(--cmb-radius-m);
}

.woocommerce form .form-row {
	margin: 0 0 var(--cmb-space-s);
	padding: 0;
}

.woocommerce form .form-row label {
	margin-bottom: var(--cmb-space-3xs);
	font-size: var(--cmb-text-sm);
	font-weight: var(--cmb-weight-medium);
}

.woocommerce form .form-row .required {
	color: var(--cmb-color-error);
	text-decoration: none;
}

.woocommerce .quantity .qty {
	width: 4.5rem;
	text-align: center;
	font-variant-numeric: tabular-nums;
}

/* Messages (ajout au panier, erreurs…). */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--cmb-space-xs) var(--cmb-space-m);
	margin: 0 0 var(--cmb-space-m);
	padding: var(--cmb-space-s) var(--cmb-space-m);
	background: var(--cmb-color-surface);
	list-style: none;
	border-left: 3px solid var(--cmb-color-accent);
	border-radius: var(--cmb-radius-m);
}

.woocommerce .woocommerce-error {
	border-left-color: var(--cmb-color-error);
}

.woocommerce .woocommerce-message .button {
	order: 1;
}

/* Petits écrans (repris de woocommerce-smallscreen, désactivée) : colonnes empilées. */
@media (max-width: 47.999em) {
	.woocommerce .col2-set .col-1,
	.woocommerce .col2-set .col-2,
	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last,
	.woocommerce-account .woocommerce-MyAccount-navigation,
	.woocommerce-account .woocommerce-MyAccount-content {
		float: none;
		width: 100%;
	}
}

/* --- Fiche produit --- */

/* Grille : une colonne éditoriale (36rem au plus, centrée) jusqu'à 64em, puis image 7/12
   et informations 5/12. Remplace les flottants de woocommerce-layout. Les autres blocs
   (informations, produits liés) occupent toute la largeur. */
.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	column-gap: var(--cmb-space-2xl);
}

.woocommerce div.product > * {
	grid-column: 1 / -1;
	min-width: 0;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary,
.woocommerce-page div.product div.images,
.woocommerce-page div.product div.summary {
	float: none;
	width: 100%;
	max-width: 36rem;
	margin-inline: auto;
}

.woocommerce div.product div.images {
	margin-bottom: var(--cmb-space-l);
}

@media (min-width: 64em) {
	.woocommerce div.product {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	}

	.woocommerce div.product div.images,
	.woocommerce-page div.product div.images {
		grid-column: 1;
		max-width: none;
		margin: 0;
	}

	.woocommerce div.product div.summary,
	.woocommerce-page div.product div.summary {
		grid-column: 2;
		align-self: start;
		max-width: 30rem;
		margin: 0;
	}
}

/* Colonne d'informations fixe pendant le défilement de l'image, seulement quand
   l'écran est assez haut pour la montrer en entier. */
@media (min-width: 64em) and (min-height: 48em) {
	.woocommerce div.product div.summary {
		position: sticky;
		top: calc(var(--cmb-header-height) + var(--cmb-admin-bar) + var(--cmb-space-m));
	}
}

/* Galerie : image carrée sur lin, coins arrondis, sans ombre ni bordure. */
.woocommerce div.product div.images.woocommerce-product-gallery {
	position: relative;
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
	margin: 0;
	padding: 0;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image,
.woocommerce div.product div.images .flex-viewport {
	overflow: hidden;
	background: var(--cmb-color-linen);
	border-radius: var(--cmb-radius-m);
}

.woocommerce div.product div.images img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
}

@media (min-width: 48em) {
	.woocommerce div.product div.images .woocommerce-product-gallery__image,
	.woocommerce div.product div.images .flex-viewport {
		border-radius: var(--cmb-radius-l);
	}
}

/* Focus clavier du lien vers la visionneuse : tracé à l'intérieur de l'image, sinon le
   conteneur arrondi (overflow: hidden) rogne le contour extérieur. */
.woocommerce div.product div.images .woocommerce-product-gallery__image a {
	display: block;
	border-radius: inherit;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image a:focus-visible {
	outline-offset: -4px;
}

/* Loupe vers la galerie plein écran : pastille blanc chaud, icône dessinée en CSS. */
.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	position: absolute;
	top: var(--cmb-space-xs);
	right: var(--cmb-space-xs);
	z-index: 9;
	width: var(--cmb-tap-target);
	height: var(--cmb-tap-target);
	background: var(--cmb-color-surface);
	border-radius: var(--cmb-radius-pill);
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger::before {
	content: "";
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	width: 0.875rem;
	height: 0.875rem;
	border: 1.5px solid var(--cmb-color-charcoal);
	border-radius: 50%;
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger::after {
	content: "";
	position: absolute;
	top: 1.625rem;
	left: 1.6875rem;
	width: 1.5px;
	height: 0.5rem;
	background: var(--cmb-color-charcoal);
	transform: rotate(-45deg);
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger span[aria-hidden="true"] {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}

.woocommerce div.product div.images .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--cmb-space-2xs);
	margin: var(--cmb-space-2xs) 0 0;
	padding: 0;
	list-style: none;
}

.woocommerce div.product div.images .flex-control-thumbs img {
	border-radius: var(--cmb-radius-s);
	cursor: pointer;
}

/* Informations : fil d'Ariane, univers, titre, prix, mention TTC, disponibilité.
   Fil d'Ariane de la fiche seulement à côté de l'image (64em+) : en dessous, les univers
   suivent directement la galerie. Celui des catégories (hors .summary) n'est pas concerné. */
.woocommerce div.product .summary .woocommerce-breadcrumb {
	display: none;
	margin-bottom: var(--cmb-space-s);
}

@media (min-width: 64em) {
	.woocommerce div.product .summary .woocommerce-breadcrumb {
		display: block;
	}
}

.cmb-product-universes {
	margin-bottom: var(--cmb-space-2xs);
}

.cmb-product-universes a {
	color: inherit;
	text-decoration: none;
}

.cmb-product-universes a:hover {
	color: inherit;
	text-decoration-line: underline;
}

.cmb-product-universes__sep {
	margin-inline: 0.5em;
	color: var(--cmb-color-taupe);
}

.woocommerce div.product .product_title {
	margin: 0 0 var(--cmb-space-xs);
	font-size: var(--cmb-text-2xl);
}

.woocommerce div.product .summary .price {
	margin: 0;
	color: var(--cmb-color-text);
	font-size: var(--cmb-text-xl);
	font-weight: var(--cmb-weight-medium);
	font-variant-numeric: tabular-nums;
}

.cmb-product-price-note {
	margin: var(--cmb-space-3xs) 0 var(--cmb-space-s);
	color: var(--cmb-color-text-muted);
	font-size: var(--cmb-text-xs);
}

/* Disponibilité : point décoratif + texte (le texte porte l'information). */
.woocommerce div.product .cmb-availability {
	display: flex;
	align-items: center;
	gap: 0.5em;
	margin: 0 0 var(--cmb-space-s);
	color: var(--cmb-color-text);
	font-size: var(--cmb-text-sm);
}

.cmb-availability::before {
	content: "";
	flex: none;
	width: 0.5rem;
	height: 0.5rem;
	background: var(--cmb-color-accent);
	border-radius: 50%;
}

.woocommerce div.product .cmb-availability--out {
	color: var(--cmb-color-text-muted);
}

.cmb-availability--out::before {
	background: var(--cmb-color-taupe);
}

/* Achat : quantité (si WooCommerce l'affiche) et bouton principal. Mobile : bouton
   pleine largeur ; dès 48em, quantité et bouton sur la même ligne. */
.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: var(--cmb-space-xs);
	margin: 0 0 var(--cmb-space-m);
}

/* Stock maximum de 1 : WooCommerce remplace la quantité par un champ caché (envoyé quand même). */
.woocommerce div.product form.cart .quantity:has(> input[type="hidden"]) {
	display: none;
}

.woocommerce div.product form.cart .qty {
	min-height: 3rem;
}

.woocommerce div.product form.cart .single_add_to_cart_button {
	flex: 1 1 100%;
}

@media (min-width: 48em) {
	.woocommerce div.product form.cart .single_add_to_cart_button {
		flex: 0 1 auto;
	}
}

/* Réassurance : deux lignes discrètes sous un filet, sans carte. */
.cmb-product-reassurance {
	display: grid;
	gap: var(--cmb-space-2xs);
	margin: 0 0 var(--cmb-space-m);
	padding: var(--cmb-space-s) 0 0;
	list-style: none;
	border-top: 1px solid var(--cmb-color-border);
}

.cmb-product-reassurance li {
	display: flex;
	align-items: center;
	gap: var(--cmb-space-2xs);
	color: var(--cmb-color-text-muted);
	font-size: var(--cmb-text-sm);
	line-height: var(--cmb-leading-snug);
}

.cmb-product-reassurance .cmb-icon {
	flex: none;
	width: 1.25rem;
	height: 1.25rem;
	color: var(--cmb-color-accent);
}

.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--cmb-color-text-muted);
}

/* Section « Informations » (affichée seulement si elle a un contenu réel). */
.cmb-product-info {
	max-width: var(--cmb-container-narrow);
	margin-top: var(--cmb-space-2xl);
}

.cmb-product-info__title {
	font-size: var(--cmb-text-2xl);
}

.woocommerce table.shop_attributes {
	width: 100%;
	margin: var(--cmb-space-m) 0 0;
	border-collapse: collapse;
	font-size: var(--cmb-text-sm);
}

.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	padding: var(--cmb-space-xs) var(--cmb-space-s) var(--cmb-space-xs) 0;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--cmb-color-border);
}

.woocommerce table.shop_attributes th {
	width: 40%;
	color: var(--cmb-color-text-muted);
	font-weight: var(--cmb-weight-medium);
}

.woocommerce table.shop_attributes td p {
	margin: 0;
}

/* Produits liés : même carte et même grille que la boutique. */
.woocommerce div.product .related.products {
	margin-top: var(--cmb-space-2xl);
}

.woocommerce .related.products > h2 {
	margin-bottom: var(--cmb-space-l);
	font-size: var(--cmb-text-2xl);
}

@media (min-width: 64em) {
	.woocommerce div.product .product_title {
		font-size: var(--cmb-text-3xl);
	}
}

/* --- Boutique et catégories : en-tête --- */

.woocommerce .woocommerce-products-header {
	margin-bottom: var(--cmb-space-l);
}

.cmb-shop-header__title {
	margin-bottom: var(--cmb-space-m);
	font-size: var(--cmb-text-3xl);
}

/* Catégorie : accroche de l'univers sous le titre (même texte que l'accueil). */
.cmb-shop-header--category .cmb-shop-header__title {
	margin-bottom: var(--cmb-space-2xs);
}

.cmb-shop-header__lead {
	max-width: 40ch;
	margin: 0 0 var(--cmb-space-m);
	color: var(--cmb-color-text-muted);
	line-height: var(--cmb-leading-snug);
	text-wrap: pretty;
}

/* --- Navigation par univers : liens texte, filet cuivre sous l'univers courant --- */

/* Mobile : pleine largeur de l'écran pour pouvoir défiler jusqu'au bord. Filet beige en
   pied de navigation (le filet cuivre du lien courant passe par-dessus). */
.cmb-universe-nav {
	margin-inline: calc(-1 * var(--cmb-gutter));
	box-shadow: inset 0 -1px 0 var(--cmb-color-border);
}

/* Les liens ont 0,25rem de marge intérieure (place pour le contour de focus) : la liste
   la compense pour que le premier mot reste aligné sur le titre. */
.cmb-universe-nav__list {
	display: flex;
	gap: var(--cmb-space-s);
	margin: 0;
	padding: 0 calc(var(--cmb-gutter) - 0.25rem);
	overflow-x: auto;
	overscroll-behavior-x: contain;
	list-style: none;
	scrollbar-width: none; /* barre masquée ; le défilement reste possible au doigt, à la molette et au clavier */
}

.cmb-universe-nav__list::-webkit-scrollbar {
	display: none;
}

.cmb-universe-nav__list li {
	flex: none;
}

.cmb-universe-nav__link {
	display: flex;
	align-items: center;
	min-height: var(--cmb-tap-target);
	padding-inline: 0.25rem;
	color: var(--cmb-color-text-muted);
	font-size: var(--cmb-text-sm);
	font-weight: var(--cmb-weight-medium);
	letter-spacing: var(--cmb-tracking-wide);
	white-space: nowrap;
	text-decoration: none;
	/* Filet de 2 px sous le mot seulement (hors marge intérieure), couleur selon l'état. */
	--cmb-nav-line: transparent;
	background: linear-gradient(var(--cmb-nav-line), var(--cmb-nav-line)) 50% 100% / calc(100% - 0.5rem) 2px no-repeat;
}

.cmb-universe-nav__link:hover {
	--cmb-nav-line: var(--cmb-color-border-strong);
	color: var(--cmb-color-text);
}

.cmb-universe-nav__link[aria-current="page"] {
	--cmb-nav-line: var(--cmb-color-accent);
	color: var(--cmb-color-text);
}

/* Focus dans la ligne (le défilement horizontal couperait un contour extérieur). */
.cmb-universe-nav__link:focus-visible {
	outline-offset: -2px;
}

@media (min-width: 48em) {
	.cmb-universe-nav {
		margin-inline: 0;
	}

	.cmb-universe-nav__list {
		flex-wrap: wrap;
		gap: var(--cmb-space-m);
		margin-inline: -0.25rem;
		padding: 0;
		overflow: visible;
	}
}

/* --- Grille des produits (boutique, catégories, produits liés) --- */

/* Remplace les flottants et largeurs en % de woocommerce-layout (y compris .columns-N). */
.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--cmb-space-l) var(--cmb-space-s);
	margin: 0 0 var(--cmb-space-xl);
	padding: 0;
	list-style: none;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
	content: none;
}

.woocommerce ul.products li.product,
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products li.product,
.woocommerce-page ul.products[class*="columns-"] li.product {
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
}

@media (min-width: 48em) {
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: var(--cmb-space-xl) var(--cmb-space-m);
	}
}

@media (min-width: 64em) {
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: var(--cmb-space-xl) var(--cmb-space-l);
	}
}

/* --- Carte produit : image lin, nom, prix (sans bordure, ombre ni fond) --- */

/* Toute la carte est le lien natif WooCommerce vers la fiche produit. */
.woocommerce ul.products li.product .woocommerce-loop-product__link {
	display: block;
	color: var(--cmb-color-text);
	text-decoration: none;
	border-radius: var(--cmb-radius-m);
}

.woocommerce ul.products li.product .woocommerce-loop-product__link:hover {
	color: var(--cmb-color-text);
}

.cmb-product-card__media {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 1;
	background: var(--cmb-color-linen);
	border-radius: var(--cmb-radius-m);
}

.cmb-product-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
	transition: transform var(--cmb-duration-slow) var(--cmb-ease);
}

/* Survol : très léger rapprochement de la photo, jamais spectaculaire (aucun si mouvement réduit). */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.woocommerce ul.products li.product .woocommerce-loop-product__link:hover .cmb-product-card__media img {
		transform: scale(1.02);
	}
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	display: -webkit-box;
	margin: var(--cmb-space-xs) 0 var(--cmb-space-3xs);
	padding: 0;
	overflow: hidden;
	font-family: var(--cmb-font-heading);
	font-size: var(--cmb-text-lg);
	font-weight: var(--cmb-weight-regular);
	line-height: var(--cmb-leading-snug);
	text-wrap: pretty;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
}

.woocommerce ul.products li.product .woocommerce-loop-product__link:hover .woocommerce-loop-product__title {
	text-decoration-line: underline;
}

.woocommerce ul.products li.product .price {
	display: block;
	margin: 0;
	color: var(--cmb-color-text);
	font-size: var(--cmb-text-sm);
	font-weight: var(--cmb-weight-medium);
	font-variant-numeric: tabular-nums;
}

.woocommerce ul.products li.product .price del {
	color: var(--cmb-color-text-muted);
	font-weight: var(--cmb-weight-regular);
}

.woocommerce ul.products li.product .price ins {
	text-decoration: none;
}

/* Rupture : mention calme sous le prix, précédée d'un point taupe (décoratif). */
.cmb-product-card__stock {
	display: flex;
	align-items: center;
	gap: 0.4em;
	margin-top: var(--cmb-space-3xs);
	color: var(--cmb-color-text-muted);
	font-size: var(--cmb-text-xs);
	line-height: var(--cmb-leading-snug);
}

.cmb-product-card__stock::before {
	content: "";
	flex: none;
	width: 0.375rem;
	height: 0.375rem;
	background: var(--cmb-color-taupe);
	border-radius: 50%;
}

/* Promotion éventuelle (aucune à ce jour) : pastille discrète dans l'image. */
.woocommerce ul.products li.product .onsale {
	position: absolute;
	top: var(--cmb-space-2xs);
	left: var(--cmb-space-2xs);
	z-index: 1;
	padding: 0.2em 0.6em;
	background: var(--cmb-color-surface);
	color: var(--cmb-color-accent-strong);
	font-size: var(--cmb-text-xs);
	font-weight: var(--cmb-weight-semibold);
	border-radius: var(--cmb-radius-pill);
}

@media (min-width: 48em) {
	.woocommerce ul.products li.product .woocommerce-loop-product__link,
	.cmb-product-card__media {
		border-radius: var(--cmb-radius-l);
	}
}

/* --- Pagination --- */

.woocommerce nav.woocommerce-pagination {
	margin-top: var(--cmb-space-xl);
}

.woocommerce nav.woocommerce-pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--cmb-space-2xs);
	margin: 0;
	padding: 0;
	list-style: none;
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers::before,
.woocommerce nav.woocommerce-pagination ul.page-numbers::after {
	content: none;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li {
	display: block;
	margin: 0;
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: var(--cmb-tap-target);
	min-height: var(--cmb-tap-target);
	padding: 0 var(--cmb-space-2xs);
	color: var(--cmb-color-text-muted);
	font-size: var(--cmb-text-sm);
	font-weight: var(--cmb-weight-medium);
	font-variant-numeric: tabular-nums;
	text-decoration: none;
	border-bottom: 2px solid transparent;
	transition: color var(--cmb-duration-fast) var(--cmb-ease), border-color var(--cmb-duration-fast) var(--cmb-ease);
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li a.page-numbers:hover {
	color: var(--cmb-color-text);
	border-bottom-color: var(--cmb-color-border-strong);
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li .page-numbers.current {
	color: var(--cmb-color-text);
	border-bottom-color: var(--cmb-color-accent);
}

.woocommerce nav.woocommerce-pagination ul.page-numbers li .page-numbers.dots {
	min-width: 0;
	color: var(--cmb-color-taupe);
}

.woocommerce nav.woocommerce-pagination .page-numbers .cmb-icon {
	width: 1.25rem;
	height: 1.25rem;
}

.woocommerce nav.woocommerce-pagination .page-numbers.prev .cmb-icon {
	transform: scaleX(-1);
}

/* ==========================================================================
   9 bis. Offres retrait (0.12.0)
   ========================================================================== */

/* Message de l'offre « 6e bougie offerte » (cmb-core), juste au-dessus du panier et du checkout en blocs. */
.cmb-pickup-offer {
	margin: 0 0 var(--cmb-space-m);
	padding: var(--cmb-space-s) var(--cmb-space-m);
	border-left: 3px solid var(--cmb-color-accent);
	border-radius: var(--cmb-radius-s, 6px);
	background: var(--cmb-color-surface);
	color: var(--cmb-color-text);
	font-size: var(--cmb-text-sm);
	line-height: var(--cmb-leading-snug);
}

.cmb-pickup-offer--applied {
	border-left-color: var(--cmb-color-charcoal);
	font-weight: var(--cmb-weight-semibold);
}

.cmb-pickup-offer[hidden] {
	display: none;
}

/* Page Contact : coordonnées de l'entreprise (cmb-core) dans l'encadré « Nous joindre ». */
.cmb-contact-card__address {
	margin: 0 0 var(--cmb-space-xs);
	font-style: normal;
	line-height: var(--cmb-leading-snug);
}

.cmb-contact-card__note {
	color: var(--cmb-color-text-muted);
	font-size: var(--cmb-text-sm);
}

/* Pages légales : liste des avantages (page Retrait). */
.cmb-legal-highlights {
	display: grid;
	gap: var(--cmb-space-xs);
	padding: var(--cmb-space-m);
	border: 1px solid var(--cmb-color-border);
	border-radius: var(--cmb-radius-m, 10px);
	background: var(--cmb-color-surface);
	list-style: none;
}

.cmb-legal-highlights li {
	margin: 0;
}

/* ==========================================================================
   10. Mouvement réduit
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
