/* ==========================================================================
   Exomori – palette « Arcade »
   Mesures relevées sur exomori.fr (Shopipi) pour un rendu identique.
   ========================================================================== */

:root {
	--fond: #0d0f1a;
	--carte: #161a2e;
	--surface: #1d2238;
	--bordure: #262c4a;
	--bordure-carte: #3a4fb8;
	--ligne: color-mix(in srgb, var(--jaune) 22%, transparent);
	--texte: #f5f6ff;
	--texte-2: #a9aecb;
	--creme: #f4ece0;
	--titre: #f7f0e5;
	--jaune: #ffd23f;
	--jaune-clair: #ffe27a;
	--sur-jaune: #171204;
	--rouge: #ff4d4d;
	--rouge-tag: #e5232f;
	--bleu-roi: #1f2a6b;
	--bleu: #4db8ff;
	--promo: #e5232f;
	--sur-promo: #ffffff;
	--promo-texte: #ff7a70;
	--nouv-a: #8fd3ff;
	--nouv-b: #4db8ff;
	--sur-nouv: #06121f;
	--nouv-texte: #6cc6ff;
	--nouv-rgb: 77, 184, 255;
	--dem-a: #cdbcff;
	--dem-b: #a78bfa;
	--sur-dem: #150a33;
	--dem-texte: #b9a2ff;
	--dem-rgb: 167, 139, 250;

	--f-titre: "Cinzel", "Times New Roman", serif;
	--f-carte: "Montserrat", system-ui, sans-serif; /* Noms de produits : avant Cormorant Garamond, trop fine en petit. */
	--f-texte: "Montserrat", "Helvetica Neue", Arial, sans-serif;
	--f-jp: "Noto Serif JP", serif;

	--r-sm: 8px;
	--r-md: 12px;
	--largeur: 1600px; /* 1440 px jusqu'au 03/10/2026 (largeur de Shopipi) ; élargi pour des photos de produits plus grandes. */
	--marge: 44px;
	--degrade-jaune: linear-gradient(180deg, var(--jaune-clair), var(--jaune));
	--lueur: linear-gradient(90deg, color-mix(in srgb, var(--jaune) 15%, transparent), var(--jaune) 25%, var(--jaune-clair) 50%, var(--jaune) 75%, color-mix(in srgb, var(--jaune) 15%, transparent));
}

/* ---------- Base ---------- */

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

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--fond);
	color: var(--texte);
	font-family: var(--f-texte);
	font-size: 15px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--jaune-clair); text-decoration: none; }
a:hover { color: var(--jaune); }

h1, h2, h3, h4 { color: var(--titre); font-weight: 400; line-height: 1.2; margin: 0; }
p { margin: 0; }

:focus-visible { outline: 2px solid var(--jaune); outline-offset: 2px; }

::selection { background: var(--jaune); color: var(--sur-jaune); }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}

.exo-sauter {
	position: absolute; left: 16px; top: -60px; z-index: 100;
	background: var(--jaune); color: var(--sur-jaune); padding: 8px 14px; border-radius: 8px; font-weight: 700;
}
.exo-sauter:focus { top: 12px; }

.exo-wrap {
	width: 100%;
	max-width: var(--largeur);
	margin-inline: auto;
	padding-inline: var(--marge);
}

.exo-main { padding-block: 32px 64px; min-height: 50vh; }
.exo-main--accueil { padding: 0; }

.exo-ico { flex: none; }

.exo-jp, [lang="ja"] { font-family: var(--f-jp); }
.exo-jp { color: var(--jaune); letter-spacing: .3em; font-size: 13px; margin: 0 0 8px; }

/* Barre lumineuse animée (sous le menu et sous la bannière, synchronisées) */
@keyframes exoLueur {
	from { background-position: 0 0; }
	to   { background-position: 200% 0; }
}

/* ---------- Boutons (tous les boutons d'achat sont jaunes) ---------- */

.exo-btn,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt,
.wp-element-button, .wc-block-components-button:not(.is-link) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	min-height: 46px;
	padding: 14px 20px;
	border: 1px solid transparent;
	border-radius: var(--r-sm);
	background: var(--degrade-jaune);
	color: var(--sur-jaune);
	font-family: var(--f-texte);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .2em;
	line-height: 1.6;
	text-transform: uppercase;
	text-align: center;
	cursor: pointer;
	transition: background .25s, color .25s, border-color .25s, transform .25s, filter .2s;
}
.exo-btn:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.wp-element-button:hover, .wc-block-components-button:not(.is-link):hover {
	background: var(--jaune-clair);
	color: var(--sur-jaune);
}
.exo-btn .exo-ico { width: 16px; height: 16px; transition: transform .25s; }
.exo-btn:hover .exo-ico { transform: translateX(4px); }

/* Bouton contour (« Voir tout ») */
.exo-btn--contour {
	min-height: 38px;
	padding: 10px 22px;
	background: transparent;
	border-color: var(--jaune);
	color: var(--jaune-clair);
	font-size: 11px;
}
.exo-btn--contour:hover { background: var(--jaune); color: var(--sur-jaune); }

/* Bouton contour « désactivé » (Épuisé / Me prévenir) */
.exo-btn--ghost,
.exo-btn--ghost:hover { background: none; border-color: var(--jaune); color: var(--jaune-clair); box-shadow: none; }

.exo-btn.loading { pointer-events: none; position: relative; color: transparent !important; }
.exo-btn.loading > * { visibility: hidden; }
.exo-btn.loading::before {
	content: ""; position: absolute; left: 50%; top: 50%; width: 18px; height: 18px; margin: -9px 0 0 -9px;
	border: 2px solid currentColor; border-color: var(--sur-jaune) transparent var(--sur-jaune) transparent; border-radius: 50%; animation: exoTourne .7s linear infinite;
}
body.boutons-blancs .exo-btn.loading::before { border-color: #0b1030 transparent #0b1030 transparent; }
@keyframes exoTourne { to { transform: rotate(360deg); } }
.exo-btn.is-ajoute { background: #2fd67b !important; border-color: #2fd67b !important; color: #052513 !important; }
.exo-btn.is-ajoute .exo-ico { display: none; }
.added_to_cart.wc-forward { display: none !important; }

/* ---------- En-tête ---------- */

.exo-entete { background: var(--fond); position: relative; z-index: 40; }

/* Grille à 3 colonnes égales : la recherche est pile au centre de la page,
   quelle que soit la largeur du logo et des icônes. */
.exo-entete__haut {
	display: grid;
	grid-template-columns: 1fr minmax(0, 640px) 1fr;
	align-items: center;
	gap: 32px;
	min-height: 84px;
}
.exo-entete__haut > .exo-logo { justify-self: start; }
.exo-entete__haut > .exo-icones { justify-self: end; }

.exo-burger {
	display: none;
	background: none; border: 0; color: var(--texte); padding: 6px; cursor: pointer;
}

/* Logo */
/* EXOMORI en Chakra Petch gras, coupe de sabre (template-parts/logo.php). EXO = couleur d'accent, MORI = texte clair. */
.exo-logo { display: inline-flex; flex-direction: column; align-items: center; gap: 7px; line-height: 1; flex: none; }
.exo-logo__svg { display: block; width: 210px; height: auto; overflow: visible; }
.exo-logo__exo { fill: var(--logo-exo, var(--jaune)); }
.exo-logo__mori { fill: var(--logo-mori, #f5f6ff); }
.exo-logo__phrase { font-family: var(--f-texte); font-size: 9.5px; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; white-space: nowrap; color: var(--texte-2); padding-left: .3em; }

/* Recherche */
.exo-recherche {
	display: flex;
	align-items: center;
	width: 100%;
	height: 44px;
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 22px;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 6px 20px rgba(0, 0, 0, .35);
	backdrop-filter: blur(12px);
	transition: border-color .15s, background .15s;
}
.exo-recherche:focus-within { border-color: color-mix(in srgb, var(--jaune) 70%, transparent); background: rgba(255, 255, 255, .09); }
.exo-recherche input[type="search"] {
	flex: 1; min-width: 0; height: 100%;
	background: transparent; border: 0; border-radius: 22px 0 0 22px; outline: 0;
	color: var(--texte); font: 400 14px var(--f-texte); padding: 0 10px 0 20px;
}
.exo-recherche input::placeholder { color: rgba(241, 232, 218, .55); }
.exo-recherche input::-webkit-search-cancel-button { filter: invert(1); }
.exo-recherche button {
	background: none; border: 0; color: var(--jaune); padding: 0 18px; height: 100%; cursor: pointer; display: grid; place-items: center;
}
.exo-recherche button .exo-ico { width: 17px; height: 17px; }

/* Icônes */
.exo-icones { display: flex; align-items: center; gap: 26px; flex: none; }
.exo-icone { display: grid; place-items: center; gap: 5px; color: var(--texte); }
.exo-icone:hover { color: var(--jaune-clair); }
.exo-icone .exo-ico { width: 24px; height: 24px; }
.exo-icone__lbl { font-size: 10px; font-weight: 600; letter-spacing: .08em; line-height: 1.6; text-transform: uppercase; color: #cfc4b7; white-space: nowrap; }
.exo-icone:hover .exo-icone__lbl { color: var(--jaune-clair); }
.exo-icone__pic { position: relative; display: grid; place-items: center; }
.exo-compteur {
	position: absolute; top: -7px; right: -2px;
	min-width: 19px; height: 19px; padding: 0 5px;
	border-radius: 10px; background: var(--jaune); color: var(--sur-jaune);
	font-size: 10.5px; font-weight: 700; line-height: 19px; text-align: center;
	transform: translateX(50%);
}
.exo-compteur.is-vide { display: none; }

/* Bande menu bleu roi + barre lumineuse */
.exo-bande { position: relative; background: var(--bleu-roi); overflow-x: clip; }
.exo-bande::after,
.exo-heros::after {
	content: "";
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 5;
	height: 2px;
	background-image: var(--lueur);
	background-size: 200% 100%;
	animation: exoLueur 10s linear infinite;
	pointer-events: none;
}
.exo-bande__in { position: relative; display: flex; align-items: stretch; }

.exo-menu__liste { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; flex-wrap: nowrap; }
.exo-menu__liste > li { position: relative; }
.exo-menu__liste > li + li::before {
	content: ""; position: absolute; left: 0; top: 50%;
	width: 1px; height: 16px; margin-top: -8px;
	background: color-mix(in srgb, var(--jaune) 45%, transparent);
}
.exo-menu__liste a {
	display: flex; align-items: center; gap: 7px;
	padding: 14px 18px;
	color: var(--texte);
	font-size: 13.5px; font-weight: 600; letter-spacing: .12em; line-height: 1.6; text-transform: uppercase;
	white-space: nowrap;
	transition: color .2s, box-shadow .2s;
}
.exo-menu__liste > li:first-child > a { padding-left: 0; }
.exo-menu__liste a:hover,
.exo-menu__liste .current-menu-item > a,
.exo-menu__liste .current-product_cat-ancestor > a { color: var(--jaune-clair); box-shadow: inset 0 -3px 0 var(--jaune); }
/* « Promotions » : pastille rouge vif, comme le tag « −X % » des cartes (suit la couleur des promos des réglages).
   Texte blanc sur rouge : bien plus lisible que du rouge sur la bande bleue. */
.exo-menu__liste .exo-promo > a { margin-left: 12px; padding: 6px 13px; border-radius: 6px; background: var(--rouge-tag); color: var(--sur-promo, #fff); box-shadow: 0 0 16px rgba(255, 59, 48, .45); }
.exo-menu__liste .exo-promo > a:hover,
.exo-menu__liste .exo-promo.current-menu-item > a { color: var(--sur-promo, #fff); filter: brightness(1.12); box-shadow: 0 0 22px rgba(255, 59, 48, .7); }
@media (max-width: 1199px) {
	.exo-menu__liste .exo-promo > a { align-self: flex-start; display: inline-flex; margin: 12px 0 4px; padding: 8px 14px; border-bottom: 0; }
}

/* Sous-menus */
.exo-menu__liste .sub-menu {
	list-style: none; margin: 0; padding: 8px 0;
	position: absolute; top: 100%; left: 0; min-width: 220px; z-index: 10;
	background: var(--carte); border: 1px solid var(--bordure); border-radius: 10px;
	box-shadow: 0 16px 40px rgba(0, 0, 0, .45);
	opacity: 0; visibility: hidden; transform: translateY(6px); transition: .15s;
}
.exo-menu__liste li:hover > .sub-menu,
.exo-menu__liste li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.exo-menu__liste .sub-menu a { padding: 8px 16px; text-transform: none; letter-spacing: 0; font-weight: 500; font-size: 13px; box-shadow: none; }

/* Onglet suspendu « Boutique française / Offerte dès 80 € » */
.exo-bande__infos {
	/* top: -1px pour recouvrir le liseré bleu que l'arrondi des pixels laissait apparaître en haut */
	position: absolute; top: -1px; right: 0; bottom: 11px;
	display: flex; align-items: center;
	padding: 0 14px;
	background: var(--fond);
	border-radius: 0 0 10px 10px;
	font-size: 11.5px; font-weight: 500; line-height: 1; color: #cfc4b7; white-space: nowrap;
}
.exo-info { display: flex; align-items: center; gap: 7px; }
.exo-info + .exo-info { margin-left: 12px; padding-left: 12px; border-left: 1px solid color-mix(in srgb, var(--jaune) 45%, transparent); }
.exo-info .exo-ico { width: 16px; height: 16px; color: var(--jaune); stroke-width: 2; }
.exo-drapeau { width: 17px; height: 12px; display: block; }

/* ---------- Titres de pages ---------- */

.exo-titre-page { text-align: center; padding: 24px 0 36px; }
.exo-titre-page h1,
.woocommerce-products-header__title.page-title,
.exo-wc h1.page-title {
	font-family: var(--f-titre);
	font-size: clamp(28px, 3.4vw, 46px);
	letter-spacing: .14em;
	text-transform: uppercase;
	margin: 0;
}

.exo-ariane {
	text-align: center;
	font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase;
	color: var(--texte-2);
	margin: 0 0 14px;
}
.exo-ariane a { color: var(--texte-2); }
.exo-ariane a:hover { color: var(--jaune); }
.exo-ariane .sep { margin: 0 8px; opacity: .6; }

.woocommerce-products-header { text-align: center; padding: 24px 0 30px; border-bottom: 1px solid var(--ligne); margin-bottom: 28px; }
.term-description { color: #cfc4b7; max-width: 680px; margin: 14px auto 0; }

/* ---------- Grille de produits ---------- */

.exo-main ul.products,
.exo-rangee ul.products {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 22px;
}
.exo-main ul.products.columns-5,
.exo-rangee ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.exo-main ul.products::before,
.exo-main ul.products::after { display: none !important; content: none !important; }

/* Carte */
.exo-main ul.products li.product.exo-carte.type-product,
.exo-carte {
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	background: var(--carte);
	border: 1px solid var(--bordure-carte);
	border-radius: var(--r-md);
	overflow: hidden;
	transition: border-color .3s, transform .3s, box-shadow .3s;
}
.exo-main ul.products li.product.exo-carte.type-product:hover,
.exo-carte:hover {
	border-color: var(--jaune);
	transform: translateY(-3px);
	box-shadow: 0 14px 30px rgba(0, 0, 0, .5);
}

.exo-carte__media { position: relative; aspect-ratio: 1 / 1; overflow: hidden; background: #1a1515; }
.exo-carte__img { display: block; width: 100%; height: 100%; }
.exo-carte__img img,
.exo-main ul.products li.product .exo-carte__img img {
	position: absolute; inset: 0;
	width: 100%; height: 100%; margin: 0;
	object-fit: cover;
	object-position: 50% 0; /* Calée en haut comme sur Shopipi : une photo en hauteur garde la tête visible. */
	transition: opacity .5s, transform .6s;
}
.exo-carte:hover .exo-carte__img img { transform: scale(1.04); }

/* Tag rouge « −5 % » incliné (précommandes et promos) */
.exo-tag-remise {
	position: absolute; top: 10px; left: 10px; z-index: 3;
	padding: 5px 9px;
	border-radius: 8px;
	background: var(--rouge-tag);
	color: #fff;
	font-size: 13px; font-weight: 800; letter-spacing: .01em; line-height: 1;
	transform: rotate(-4deg);
	box-shadow: 0 4px 14px rgba(229, 35, 47, .45);
	pointer-events: none;
}

/* Cœur favoris */
.exo-fav {
	position: absolute; top: 8px; right: 8px; z-index: 2;
	width: 34px; height: 34px; padding: 0;
	display: grid; place-items: center;
	border-radius: 50%;
	background: rgba(20, 18, 18, .75);
	border: 1px solid rgba(241, 232, 218, .3);
	color: var(--texte);
	cursor: pointer;
	transition: transform .2s, color .2s, border-color .2s;
}
.exo-fav .exo-ico { width: 18px; height: 18px; }
.exo-fav:hover { transform: scale(1.12); }
.exo-fav:hover, .exo-fav.is-actif { color: var(--jaune-clair); border-color: var(--jaune); }
.exo-fav.is-actif .exo-ico { fill: currentColor; }

.exo-carte__info {
	display: flex; flex-direction: column;
	flex: 1;
	padding: 12px 14px 14px;
}

/* Badges */
.exo-badge {
	align-self: flex-start;
	margin: 0 0 8px;
	padding: 4px 10px;
	border-radius: 20px;
	font-size: 9.5px; font-weight: 600; letter-spacing: .14em; line-height: 1.3;
	text-transform: uppercase;
}
.exo-badge--precommande { background: linear-gradient(180deg, var(--pre-a), var(--pre-b)); color: var(--sur-pre); }
.exo-badge--nouveau     { background: rgba(var(--nouv-rgb), .14); color: var(--nouv-texte); }
.exo-badge--en-stock    { background: rgba(47, 214, 123, .14); color: #35e08a; }
.exo-badge--sur-demande { background: rgba(var(--dem-rgb), .16); color: var(--dem-texte); }
.exo-badge--epuise      { background: rgba(169, 174, 203, .1); color: #8a8fa8; }

.exo-carte__titre,
.exo-main ul.products li.product .exo-carte__titre {
	margin: 0;
	padding: 0;
	font-family: var(--f-carte);
	font-size: 15px; font-weight: 700; line-height: 1.3; letter-spacing: .005em;
	color: var(--creme);
}
.exo-carte__titre a { color: inherit; }
.exo-carte__titre a:hover { color: var(--jaune-clair); }

.exo-carte__bas {
	margin-top: auto;
	padding-top: 10px;
	display: flex; flex-direction: column; align-items: stretch; gap: 10px;
}
.exo-carte__prix,
.exo-main ul.products li.product .exo-carte__prix {
	display: flex; align-items: baseline; flex-wrap: wrap;
	margin: 0;
	font-size: 17px; font-weight: 700; letter-spacing: .01em; line-height: 1.6; color: #fff;
}
.exo-carte__prix del { order: -1; margin-right: 6px; font-size: 13px; font-weight: 400; color: var(--texte-2); opacity: 1; }
.exo-carte__prix ins { text-decoration: none; color: #fff; }
.exo-prix-devis { font-size: 13px; font-weight: 600; color: #b9a2ff; letter-spacing: .02em; }

/* Bouton de la carte */
.exo-carte .exo-btn {
	width: 100%;
	min-height: 0; height: 40px;
	padding: 0 12px;
	font-size: 11px; font-weight: 700; letter-spacing: .12em; white-space: nowrap;
	transition: filter .2s, transform .2s;
}
.exo-carte .exo-btn:hover { background: var(--degrade-jaune); filter: brightness(1.08); transform: translateY(-1px); }
.exo-carte .exo-btn--ghost,
.exo-carte .exo-btn--ghost:hover { background: none; border: 1px solid var(--jaune); color: var(--jaune-clair); }

/* Épuisé : image légèrement éteinte */
/* (Ancien gris des photos « épuisé » retiré : les couleurs des figurines ne sont jamais modifiées.) */

/* ---------- Boutique (liste des produits) ---------- */

.exo-wc .woocommerce-result-count {
	float: none; margin: 0 0 20px;
	font-size: 11px; font-weight: 600; letter-spacing: .12em; line-height: 42px; text-transform: uppercase; color: var(--texte-2);
	display: inline-block;
}
.exo-wc .woocommerce-ordering { float: right; margin: 0; }
.exo-wc .woocommerce-notices-wrapper:empty { display: none; }
.exo-wc ul.products { clear: both; }

select,
.exo-wc .woocommerce-ordering select {
	appearance: none;
	height: 42px;
	padding: 0 40px 0 16px;
	background: var(--carte) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23ffd23f' stroke-width='1.6'%3E%3Cpath d='m1 1 5 5 5-5'/%3E%3C/svg%3E") no-repeat right 16px center;
	border: 1px solid var(--bordure);
	border-radius: var(--r-sm);
	color: var(--texte);
	font: 500 13px var(--f-texte);
	cursor: pointer;
}
select:focus { border-color: var(--jaune); outline: 0; }
select option { background: var(--carte); color: var(--texte); }

.woocommerce nav.woocommerce-pagination { margin-top: 40px; text-align: center; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 8px; max-width: 100%; } /* Beaucoup de pages : les numéros passent à la ligne (plus de débordement sur téléphone). */
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	min-width: 40px; height: 40px; line-height: 40px; padding: 0 10px;
	border-radius: var(--r-sm); background: var(--carte); border: 1px solid var(--bordure); color: var(--texte);
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--jaune); color: var(--sur-jaune); border-color: var(--jaune); }

.exo-vide, .woocommerce-info.woocommerce-no-products-found { text-align: center; color: var(--texte-2); }

/* Messages WooCommerce (sombres) */
.woocommerce-message, .woocommerce-info, .woocommerce-error,
.wc-block-components-notice-banner {
	background: var(--carte) !important;
	color: var(--texte) !important;
	border: 1px solid var(--bordure) !important;
	border-top: 3px solid var(--jaune) !important;
	border-radius: 10px;
}
.woocommerce-error { border-top-color: var(--rouge) !important; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--jaune) !important; }
.woocommerce-error::before { color: var(--rouge) !important; }

/* Formulaires (base sombre pour toutes les pages) */
input[type="text"], input[type="email"], input[type="tel"], input[type="password"],
input[type="number"], input[type="url"], textarea,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea {
	background: var(--surface);
	border: 1px solid var(--bordure);
	border-radius: var(--r-sm);
	color: var(--texte);
	font: 400 15px var(--f-texte);
	padding: 11px 14px;
}
input:focus, textarea:focus { border-color: var(--jaune); outline: 0; }
label { color: var(--texte-2); }

/* ---------- Pages simples ---------- */

.exo-contenu { max-width: 1100px; margin-inline: auto; }
.exo-page .exo-contenu > p, .exo-page .exo-contenu > ul, .exo-page .exo-contenu > ol { max-width: 760px; margin-bottom: 1em; }

/* ==========================================================================
   Accueil : bannière (hauteur fixe 360 px, diapos superposées)
   ========================================================================== */

.exo-heros { position: relative; overflow: hidden; background: var(--carte); }

.exo-heros__piste { display: grid; }

.exo-diapo {
	grid-area: 1 / 1;
	position: relative;
	min-height: 360px;
	opacity: 0;
	visibility: hidden;
	transition: opacity 1s, visibility 1s;
}
.exo-diapo.is-active { opacity: 1; visibility: visible; }

.exo-diapo__fond { position: absolute; inset: 0; background: var(--bleu-roi); }
.exo-diapo::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background:
		linear-gradient(90deg, rgba(8, 6, 6, .96), rgba(8, 6, 6, .82), rgba(8, 6, 6, .25) 52%, rgba(8, 6, 6, 0) 70%, rgba(8, 6, 6, .55)),
		linear-gradient(0deg, rgba(8, 6, 6, .7) 0%, transparent 25%);
}

.exo-diapo__contenu { position: relative; z-index: 2; height: 100%; min-height: inherit; display: flex; align-items: center; }
.exo-diapo__in { position: relative; display: flex; align-items: center; min-height: inherit; }
.exo-diapo__texte-bloc { max-width: 560px; margin-left: 120px; padding: 26px 0; }

.exo-diapo__sur {
	display: block; margin-bottom: 12px;
	font-size: 12px; font-weight: 500; letter-spacing: .3em; line-height: 1.6; text-transform: uppercase;
	color: #d7c3a5;
}
.exo-diapo__titre {
	font-family: var(--f-titre);
	font-size: clamp(34px, 3.3vw, 50px);
	line-height: 1.02; letter-spacing: .07em; text-transform: uppercase;
	color: var(--titre);
}
.exo-diapo__sous {
	margin-top: 12px;
	font-family: var(--f-titre);
	font-size: clamp(14px, 1.2vw, 17px);
	letter-spacing: .32em; line-height: 1.6; text-transform: uppercase;
	color: #efe5d6;
}
.exo-diapo__texte {
	margin-top: 12px; max-width: 480px;
	font-size: 16px; line-height: 1.45; letter-spacing: .01em;
	color: #e2d7c8;
}
.exo-btn--heros { margin-top: 16px; }

/* Colonnes latérales */
.exo-heros__cote {
	position: absolute; top: 0; bottom: 0; z-index: 3;
	display: flex; flex-direction: column; justify-content: center;
	padding: 30px 0;
	overflow: hidden;
	pointer-events: none;
}
.exo-heros__cote--g { left: var(--marge); align-items: center; min-width: 90px; }
.exo-heros__cote--d { right: 40px; align-items: flex-start; }

.exo-heros__kanji { font-size: 40px; line-height: 1.2; text-align: center; flex-shrink: 0; color: rgba(108, 196, 255, .4); }
.exo-heros__trait { width: 1px; height: 22px; margin: 22px 0; background: rgba(241, 232, 218, .3); }
.exo-heros__mots {
	align-self: flex-start;
	font-size: 9.5px; letter-spacing: .3em; line-height: 1.95; text-transform: uppercase; text-align: left;
	color: rgba(241, 232, 218, .45);
}
.exo-heros__cote--d .exo-heros__mots { margin-top: 44px; font-size: 8.5px; color: rgba(241, 232, 218, .6); }
.exo-heros__jp {
	writing-mode: vertical-rl;
	flex-shrink: 0;
	min-height: max-content;
	margin-left: 20px;
	font-size: 15px; line-height: 1.9; letter-spacing: .12em;
	color: #efe5d6;
}

/* Points */
.exo-heros__points {
	position: absolute; left: 50%; bottom: 18px; z-index: 4;
	transform: translateX(-50%);
	display: flex; align-items: center; gap: 8px;
}
.exo-heros__point {
	width: 6px; height: 2px; padding: 0; border: 0; cursor: pointer;
	background: rgba(241, 232, 218, .35);
	transition: width .3s, background .3s;
}
.exo-heros__point.is-active { width: 44px; background: var(--jaune-clair); }
.exo-heros__point:hover { background: var(--jaune); }
/* Zone cliquable plus grande que le trait */
.exo-heros__point { position: relative; }
.exo-heros__point::before { content: ""; position: absolute; inset: -10px -2px; }

/* ---------- Accueil : rangées ---------- */

.exo-rangee { padding: 32px 0 16px; }
.exo-rangee__tete { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-bottom: 14px; }
.exo-rangee__titres { display: flex; align-items: center; gap: 22px; margin-right: auto; }
.exo-rangee__titre {
	font-family: var(--f-titre);
	font-size: clamp(24px, 2.4vw, 34px);
	letter-spacing: .14em; line-height: 1.6; text-transform: uppercase;
	color: var(--texte);
}
.exo-rangee__trait { width: 30px; height: 1px; background: var(--bleu); }
.exo-rangee__jp { font-size: 12px; letter-spacing: .3em; color: var(--bleu); }
.exo-rangee__tout { margin-left: 60px; }

/* ---------- Accueil : encadrés ---------- */

.exo-encadres { padding: 16px 0 40px; }
.exo-encadres__grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.exo-encadre {
	position: relative;
	display: flex;
	min-height: 100px;
	background: var(--bleu-roi);
	border: 1px solid #3a6fa3;
	border-radius: var(--r-md);
	overflow: hidden;
	color: var(--texte);
	transition: border-color .3s, transform .3s;
}
.exo-encadre::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(90deg, rgba(10, 8, 8, 0), rgba(10, 8, 8, .35) 40%, rgba(10, 8, 8, .9));
}
.exo-encadre:hover { border-color: var(--jaune); color: var(--texte); }
.exo-encadre__contenu {
	position: relative; z-index: 1;
	display: flex; align-items: center; gap: 22px;
	width: 58%;
	margin-left: auto;
	padding: 16px 20px 16px 0;
}
.exo-encadre__contenu > span { flex: 1; }
.exo-encadre__titre {
	display: block;
	font-family: var(--f-titre); font-size: 17px; letter-spacing: .2em; line-height: 1.25; text-transform: uppercase;
	color: #f3eadc;
}
.exo-encadre__texte {
	display: block; margin-top: 8px;
	font-size: 10.5px; letter-spacing: .2em; line-height: 1.6; text-transform: uppercase;
	color: #ddd3c6;
}
.exo-encadre .exo-ico { width: 16px; height: 16px; color: #e8dfd2; transition: transform .25s; }
.exo-encadre:hover .exo-ico { transform: translateX(4px); }

/* ---------- Garanties + pied de page ---------- */

.exo-garanties {
	background: var(--fond);
	border-top: 1px solid var(--ligne);
	border-bottom: 1px solid var(--ligne);
}
.exo-garanties__in { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
/* Contenu centré dans chaque case : la bande est équilibrée à gauche et à droite */
.exo-garantie { display: flex; align-items: center; justify-content: center; gap: 16px; padding: 26px 20px; }
.exo-garantie + .exo-garantie { border-left: 1px solid var(--bordure); }
.exo-garantie .exo-ico { width: 28px; height: 28px; color: var(--bleu); }
.exo-garantie strong { display: block; font-size: 12px; font-weight: 400; letter-spacing: .18em; line-height: 1.6; text-transform: uppercase; color: var(--jaune-clair); }
.exo-garantie span { display: block; font-size: 14px; line-height: 1.6; color: var(--texte-2); }

.exo-pied {
	background: var(--carte);
	border-top: 1px solid var(--ligne);
	padding-top: 60px;
	font-size: 15px;
}
/* Colonnes à leur largeur naturelle, espaces égaux entre elles : bloc équilibré sur toute la largeur */
.exo-pied__cols {
	display: grid;
	grid-template-columns: minmax(0, 300px) auto auto minmax(0, 360px);
	justify-content: space-between;
	gap: 40px;
	padding-bottom: 50px;
}
.exo-pied__marque .exo-logo { align-items: center; }
.exo-pied__marque p { color: var(--texte-2); margin-top: 18px; max-width: 300px; line-height: 1.6; }
.exo-pied__titre {
	margin: 0 0 18px;
	font-family: var(--f-texte); font-size: 11px; font-weight: 400; letter-spacing: .22em; line-height: 1.6; text-transform: uppercase;
	color: var(--jaune-clair);
}
.exo-pied__titre--doux { color: var(--texte-2); margin-bottom: 14px; }
.exo-pied ul { list-style: none; margin: 0; padding: 0; }
.exo-pied li + li { margin-top: 8px; }
.exo-pied nav a { color: #cfc4b7; transition: color .2s; }
.exo-pied nav a:hover { color: var(--jaune-clair); }
.exo-pied__cercle p { color: var(--texte-2); margin: 0 0 14px; }
.exo-cercle { display: flex; }
.exo-cercle input[type="email"] {
	flex: 1; min-width: 0; height: 44px;
	padding: 0 14px;
	background: var(--surface);
	border: 1px solid var(--bordure); border-right: 0; border-radius: 0;
	color: var(--texte);
}
.exo-cercle .exo-btn { height: 44px; min-height: 0; padding: 0 18px; }

/* Ligne du bas : 3 colonnes égales, texte japonais pile au centre */
.exo-pied__bas {
	display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px;
	padding-block: 20px;
	border-top: 1px solid var(--ligne);
	font-size: 11px; letter-spacing: .08em; line-height: 1.6; color: #7d736b;
}
.exo-pied__copy { justify-self: start; }
.exo-tva { display: block; }
.exo-pied__jp { justify-self: center; text-align: center; font-size: 11px; letter-spacing: .4em; margin-right: -.4em; color: var(--jaune); opacity: .6; }
.exo-paiements { justify-self: end; display: flex; justify-content: flex-end; gap: 6px; flex-wrap: wrap; }
.exo-paiements li, .exo-pied .exo-paiements li + li { margin: 0; }
.exo-paiements svg { display: block; width: 38px; height: 24px; }

/* ==========================================================================
   Fiche produit (mesures relevées sur exomori.fr)
   ========================================================================== */

.single-product .exo-main { padding-top: 0; }
.single-product .exo-ariane {
	text-align: left;
	padding-top: 24px; margin: 0;
	font-size: 10px; font-weight: 400; letter-spacing: .18em;
}

.exo-fiche {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: 60px;
	padding: 40px 0 60px;
	align-items: start;
}

/* Galerie */
.exo-fiche__galerie { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.exo-fiche__galerie.a-miniatures { grid-template-columns: 84px minmax(0, 1fr); }
.exo-fiche__minis { display: flex; flex-direction: column; gap: 10px; }
.exo-fiche__mini {
	padding: 0; border: 1px solid var(--bordure-carte); border-radius: var(--r-sm); overflow: hidden;
	background: var(--carte); cursor: pointer; aspect-ratio: 1 / 1; opacity: .7; transition: opacity .2s, border-color .2s;
}
.exo-fiche__mini img { width: 100%; height: 100%; object-fit: cover; }
.exo-fiche__mini:hover, .exo-fiche__mini.is-active { opacity: 1; border-color: var(--jaune); }
.exo-fiche__principale {
	position: relative;
	aspect-ratio: 1 / 1;
	background: var(--carte);
	border: 1px solid var(--bordure-carte);
	border-radius: var(--r-md);
	overflow: hidden;
}
.exo-fiche__principale img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 0; }
.exo-badge--grand { position: absolute; top: 16px; left: 16px; z-index: 2; margin: 0; padding: 5px 12px; font-size: 10px; line-height: 1.6; }
.exo-tag-remise--grand { top: 16px; left: auto; right: 16px; padding: 8px 12px; border-radius: 10px; font-size: 17px; }

/* Infos */
.exo-fiche__marque { font-size: 11px; letter-spacing: .22em; line-height: 1.6; text-transform: uppercase; color: var(--jaune); }
.exo-fiche__titre {
	margin-top: 10px;
	font-family: var(--f-titre); font-size: clamp(28px, 2.6vw, 38px); font-weight: 400; letter-spacing: .06em; line-height: 1.15;
	color: var(--texte);
}
.exo-fiche__serie { margin-top: 6px; font-size: 19px; line-height: 1.6; color: #cfc4b7; }
.exo-fiche__version {
	display: inline-flex; align-items: center; gap: 8px;
	margin-top: 10px; padding: 5px 12px;
	border: 1px solid var(--bordure); border-radius: 999px;
	font-size: 12.5px; letter-spacing: .02em; line-height: 20px; color: var(--texte-2);
}
.exo-fiche__version svg { border-radius: 2px; box-shadow: 0 0 0 1px rgba(255, 255, 255, .15); }

.exo-fiche__prix {
	display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px;
	margin: 22px 0; padding: 18px 0;
	border-top: 1px solid var(--ligne); border-bottom: 1px solid var(--ligne);
}
.exo-fiche__montant, .exo-fiche__montant .amount { font-size: 28px; font-weight: 700; line-height: 1.6; color: var(--texte); }
.exo-fiche__montant del { font-size: 18px; font-weight: 400; color: var(--texte-2); }
.exo-fiche__montant ins { text-decoration: none; }
.exo-fiche__barre { font-size: 18px; line-height: 1.6; color: var(--texte-2); margin-right: 6px; }
.exo-fiche__libelle-remise {
	margin-left: 12px; padding: 4px 10px; border-radius: 999px;
	background: var(--rouge-tag); color: #fff;
	font-size: 12px; font-weight: 700; letter-spacing: .02em; line-height: 1.6;
	align-self: center;
}
.exo-fiche__devis { font-size: 20px; font-weight: 600; color: #b9a2ff; }

/* 4x PayPal */
.exo-4x { margin-top: 12px; font-size: 13px; line-height: 1.6; color: var(--texte-2); }
.exo-4x__ligne { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; line-height: 1.5; }
.exo-4x__ligne b { font-weight: 600; color: var(--texte); }
.exo-4x__ligne b .amount { font-weight: 600; }
.exo-4x__tag { padding: 1px 7px; border-radius: 999px; background: #ffc439; color: #111; font-size: 11px; font-weight: 800; letter-spacing: .02em; line-height: 1.5; }
.exo-4x__legal { margin-top: 4px; }
.exo-4x__legal summary { display: inline; cursor: pointer; font-size: 11.5px; color: #8a8fa8; text-decoration: underline; text-underline-offset: 2px; }
.exo-4x__legal summary::-webkit-details-marker { display: none; }
.exo-4x__legal p { margin-top: 6px; font-size: 11px; line-height: 1.5; color: #8a8fa8; }

/* Stock faible */
.exo-stock-faible { display: flex; align-items: center; gap: 8px; margin-top: 12px; font-size: 13px; font-weight: 600; color: #ff7a70; }
.exo-stock-faible span { width: 7px; height: 7px; border-radius: 50%; background: var(--rouge); box-shadow: 0 0 0 3px rgba(255, 77, 77, .2); animation: exoPulse 1.8s ease-in-out infinite; }
@keyframes exoPulse { 50% { box-shadow: 0 0 0 6px rgba(255, 77, 77, 0); } }

/* Achat */
.exo-fiche__achat { display: flex; gap: 12px; margin: 26px 0 12px; }
.exo-qte { display: flex; align-items: stretch; height: 49px; border: 1px solid var(--bordure); border-radius: var(--r-sm); flex: none; }
.exo-qte > button { width: 42px; background: none; border: 0; color: var(--texte); font-size: 18px; cursor: pointer; }
.exo-qte > button:hover { color: var(--jaune); }
.exo-qte .quantity { display: flex; }
.exo-qte--fixe { width: 132px; justify-content: center; align-items: center; font-weight: 500; color: var(--texte-2); }
.exo-qte input.qty {
	width: 46px; height: 100%; padding: 0; border: 0; border-radius: 0; background: none; text-align: center;
	font: 500 15px var(--f-texte); color: var(--texte); -moz-appearance: textfield;
}
.exo-qte input.qty::-webkit-outer-spin-button, .exo-qte input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.exo-fiche__acheter { flex: 1; min-height: 49px; }
.exo-fiche__acheter .exo-ico { width: 18px; height: 18px; }
.exo-fiche__acheter:disabled { cursor: not-allowed; opacity: .7; }
.exo-fav--fiche { position: static; width: 52px; height: 49px; border-radius: var(--r-sm); border-color: var(--bordure-carte); background: none; flex: none; }
.exo-fav--fiche:hover { transform: none; }
.exo-fiche__note { font-size: 13px; color: var(--texte-2); }

/* Encarts : livraison, précommande */
.exo-encart {
	display: flex; gap: 12px; align-items: flex-start;
	margin-top: 16px; padding: 14px 16px;
	border: 1px solid var(--bordure); border-radius: var(--r-sm); background: rgba(255, 255, 255, .02);
	font-size: 14px; line-height: 1.6; color: var(--texte);
}
.exo-encart--preco { background: color-mix(in srgb, var(--pre-b) 6%, transparent); border-color: color-mix(in srgb, var(--pre-b) 35%, transparent); font-size: 15px; }
.exo-encart__ico { flex: none; margin-top: 2px; color: var(--jaune); }
.exo-livraison b { color: var(--jaune-clair); font-weight: 600; }
.exo-livraison__eta { color: var(--texte-2); font-size: 13.5px; }
.exo-livraison__eta b { color: var(--texte); }

/* Atouts */
.exo-fiche__atouts { list-style: none; margin: 22px 0; padding: 0; display: grid; gap: 12px; }
.exo-fiche__atouts li { display: flex; align-items: center; gap: 12px; font-size: 15px; color: #cfc4b7; }
.exo-fiche__atouts .exo-ico { width: 20px; height: 20px; color: var(--jaune); }

/* Accordéons */
.exo-fiche__accordeon details { border-top: 1px solid var(--ligne); }
.exo-fiche__accordeon details:last-child { border-bottom: 1px solid var(--bordure); }
.exo-fiche__accordeon summary {
	display: flex; align-items: center; justify-content: space-between;
	padding: 16px 0; cursor: pointer; list-style: none;
	font-size: 11px; letter-spacing: .2em; line-height: 1.6; text-transform: uppercase; color: var(--texte);
}
.exo-fiche__accordeon summary::-webkit-details-marker { display: none; }
.exo-fiche__accordeon summary::after { content: "+"; font-size: 18px; letter-spacing: 0; color: var(--texte-2); transition: transform .2s; }
.exo-fiche__accordeon details[open] > summary::after { transform: rotate(45deg); }
.exo-fiche__accordeon summary:hover { color: var(--jaune-clair); }

.exo-texte { padding-bottom: 18px; font-size: 16px; line-height: 1.7; color: #d4c9bc; }
.exo-texte > * + * { margin-top: 16px; }
.exo-texte h2, .exo-texte h3 { font-family: var(--f-texte); font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--jaune-clair); margin-top: 26px; }
.exo-texte ul { padding-left: 20px; }
.exo-texte li + li { margin-top: 4px; }
.exo-texte strong { color: var(--texte); font-weight: 600; }
.exo-texte a { color: var(--jaune); text-decoration: underline; text-underline-offset: 2px; }
.exo-texte details { border: 0; border-bottom: 1px solid var(--bordure); }
.exo-texte details summary { padding: 12px 0; font-size: 15px; letter-spacing: 0; text-transform: none; color: var(--texte); font-weight: 500; }
.exo-texte details p { padding-bottom: 12px; }

.exo-caracs { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.7; }
.exo-caracs th, .exo-caracs td { padding: 8px 0; border-bottom: 1px solid var(--bordure); text-align: left; vertical-align: top; }
.exo-caracs tr:last-child th, .exo-caracs tr:last-child td { border-bottom: 0; }
.exo-caracs th { width: 40%; padding-right: 16px; font-weight: 400; color: var(--texte-2); }
.exo-caracs td { color: var(--texte); }

/* Encart « Commander sur demande » */
.exo-demande-encart {
	margin-top: 22px; padding: 16px 18px;
	background: var(--carte); border: 1px solid var(--bordure-carte); border-radius: 10px;
	font-size: 14px; line-height: 1.6; color: #cfc4b7;
}
.exo-demande-encart__titre { margin-bottom: 8px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--jaune); }
.exo-demande-form { margin-top: 16px; display: grid; gap: 14px; }
.exo-demande-form__qte { display: flex; align-items: center; gap: 12px; font-size: 13px; }
.exo-demande-form__qte input { width: 70px; padding: 8px 10px; }

/* Rangée « Vous aimerez aussi » */
.exo-rangee--fiche { padding: 32px 0 16px; }
.exo-main ul.products.columns-6,
.exo-rangee ul.products.columns-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

/* Page « Ma demande » */
.exo-demande { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 40px; max-width: 1100px; margin-inline: auto; }
.exo-demande__h2 { margin-bottom: 18px; font-family: var(--f-texte); font-size: 12px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--jaune-clair); }
.exo-demande__liste { list-style: none; margin: 0; padding: 0; }
.exo-demande__liste li { display: grid; grid-template-columns: 64px 1fr auto auto; align-items: center; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--bordure); }
.exo-demande__img img { width: 64px; height: 64px; object-fit: cover; border-radius: var(--r-sm); border: 1px solid var(--bordure-carte); }
.exo-demande__nom { font-family: var(--f-carte); font-size: 15.5px; font-weight: 700; color: var(--creme); }
.exo-demande__qte { color: var(--texte-2); }
.exo-demande__retirer { font-size: 12px; color: var(--texte-2); text-decoration: underline; }
.exo-demande__envoi { padding: 22px; background: var(--carte); border: 1px solid var(--bordure-carte); border-radius: var(--r-md); }
.exo-demande__form p { margin-bottom: 14px; }
.exo-demande__form label { display: block; margin-bottom: 6px; font-size: 13px; }
.exo-demande__form input, .exo-demande__form textarea { width: 100%; }
.exo-demande__form .exo-btn { width: 100%; }
.exo-demande__note { margin-top: 10px; font-size: 12px; color: var(--texte-2); text-align: center; }
.exo-demande__erreur { margin-bottom: 14px; color: #ff7a70; }
.exo-demande-ok { max-width: 620px; margin: 0 auto; padding: 28px; text-align: center; background: var(--carte); border: 1px solid var(--bordure-carte); border-radius: var(--r-md); }
.exo-demande-ok__titre { font-family: var(--f-titre); font-size: 22px; color: var(--titre); margin-bottom: 10px; }
.exo-demande-ok .exo-btn { margin-top: 18px; }
.exo-piege { position: absolute; left: -9999px; }

/* ==========================================================================
   Boutique : filtres à gauche, produits à droite
   ========================================================================== */

.exo-catalogue { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 32px; align-items: start; }
.exo-catalogue .exo-catalogue__liste ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.exo-filtres { position: sticky; top: 20px; }
.exo-filtres__bouton {
	list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px;
	padding-bottom: 12px; border-bottom: 1px solid var(--ligne);
	font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--jaune-clair);
}
.exo-filtres__bouton::-webkit-details-marker { display: none; }
.exo-filtres__nb { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--jaune); color: var(--sur-jaune); font-size: 10px; line-height: 18px; text-align: center; letter-spacing: 0; }
.exo-filtre { margin: 0; padding: 16px 0; border: 0; border-bottom: 1px solid var(--bordure); }
.exo-filtre legend { float: left; width: 100%; margin-bottom: 10px; padding: 0; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--texte); }
.exo-filtre__choix { display: flex; align-items: center; gap: 10px; padding: 5px 0; cursor: pointer; font-size: 14px; color: var(--texte-2); clear: both; }
.exo-filtre__choix:hover { color: var(--texte); }
.exo-filtre__choix input { width: 16px; height: 16px; accent-color: var(--jaune); margin: 0; }
.exo-filtre__choix span { flex: 1; }
.exo-filtre__choix small { font-size: 12px; color: var(--texte-2); opacity: .7; }
.exo-filtre__choix input:checked ~ span { color: var(--texte); font-weight: 500; }
.exo-filtre__prix { display: flex; align-items: center; gap: 8px; clear: both; color: var(--texte-2); }
.exo-filtre__prix label { flex: 1; }
.exo-filtre__prix input { width: 100%; padding: 9px 10px; -moz-appearance: textfield; }
.exo-filtre__prix input::-webkit-outer-spin-button, .exo-filtre__prix input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.exo-filtres__actions { padding-top: 16px; display: grid; gap: 10px; text-align: center; }
.exo-filtres__actions .exo-btn { min-height: 40px; padding: 0 12px; font-size: 11px; }
.exo-filtres__effacer { font-size: 12px; color: var(--texte-2); text-decoration: underline; }

/* ==========================================================================
   Espace client (Mon compte)
   ========================================================================== */

.woocommerce-account .exo-contenu { max-width: none; }
.woocommerce-account .exo-contenu > .woocommerce { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 36px; align-items: start; }
.woocommerce-account .exo-contenu > .woocommerce > * { grid-column: 1 / -1; }
.woocommerce-account .exo-contenu > .woocommerce > .woocommerce-MyAccount-navigation { grid-column: 1; grid-row: span 20; }
.woocommerce-account .exo-contenu > .woocommerce > .woocommerce-MyAccount-content { grid-column: 2; }
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce-MyAccount-navigation { position: sticky; top: 20px; background: var(--carte); border: 1px solid var(--bordure-carte); border-radius: var(--r-md); padding: 8px; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-MyAccount-navigation li a { display: block; padding: 10px 12px; border-radius: var(--r-sm); font-size: 14px; color: var(--texte-2); }
.woocommerce-MyAccount-navigation li a:hover { background: var(--surface); color: var(--texte); }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--surface); color: var(--jaune-clair); font-weight: 600; box-shadow: inset 3px 0 0 var(--jaune); }
.woocommerce-MyAccount-navigation-link--customer-logout { border-top: 1px solid var(--bordure); margin-top: 6px; padding-top: 6px; }
.woocommerce-MyAccount-content { min-width: 0; color: var(--texte); }
.woocommerce-MyAccount-content > p:first-child { margin-top: 0; }
.woocommerce-MyAccount-content h2, .woocommerce-MyAccount-content h3, .exo-compte__titre {
	font-family: var(--f-texte); font-size: 12px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--jaune-clair); margin: 26px 0 12px;
}
.exo-compte__bonjour { font-family: var(--f-titre); font-size: 24px; color: var(--titre); margin: 0 0 18px; }

.exo-tuiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; }
.exo-tuile {
	display: flex; align-items: center; gap: 14px; padding: 18px;
	background: var(--carte); border: 1px solid var(--bordure-carte); border-radius: var(--r-md);
	color: var(--texte); transition: border-color .2s, transform .2s;
}
.exo-tuile:hover { border-color: var(--jaune); color: var(--texte); transform: translateY(-2px); }
.exo-tuile .exo-ico { width: 26px; height: 26px; color: var(--jaune); flex: none; }
.exo-tuile strong { display: block; font-size: 15px; font-weight: 600; }
.exo-tuile small { display: block; font-size: 12.5px; color: var(--texte-2); }
.exo-derniere { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 14px 18px; background: var(--carte); border: 1px solid var(--bordure); border-radius: var(--r-md); color: var(--texte); }
.exo-derniere strong { margin-left: auto; }
.exo-derniere:hover { border-color: var(--jaune); color: var(--texte); }

.exo-statut, mark.order-status { display: inline-block; padding: 3px 10px; border-radius: 20px; background: var(--surface); color: var(--texte-2); font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.exo-statut--processing, .exo-statut--completed { background: rgba(47, 214, 123, .14); color: #35e08a; }
.exo-statut--on-hold, .exo-statut--pending { background: color-mix(in srgb, var(--jaune) 14%, transparent); color: var(--jaune-clair); }
.exo-statut--cancelled, .exo-statut--refunded, .exo-statut--failed { background: rgba(255, 77, 77, .12); color: #ff7a70; }

/* Liste des commandes */
.woocommerce-orders-table .woocommerce-button, .woocommerce-MyAccount-content .button {
	display: inline-flex; width: auto; min-height: 34px; padding: 6px 12px; margin: 2px 4px 2px 0;
	font-size: 10.5px; letter-spacing: .08em;
}
.woocommerce-orders-table .woocommerce-button:not(.view) { background: none; border: 1px solid var(--jaune); color: var(--jaune-clair); }
.woocommerce-orders-table .woocommerce-button.annuler-preco { border-color: rgba(255, 77, 77, .6); color: #ff9a92; }
.woocommerce-orders-table__cell-order-number a { color: var(--jaune-clair); font-weight: 600; }
.exo-commande-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0; }
.exo-commande-actions .exo-btn { width: auto; }
.woocommerce-order-details, .woocommerce-customer-details { margin-top: 20px; }
.woocommerce-MyAccount-content .woocommerce-order-details__title, .woocommerce-column__title { margin-top: 24px; }
.woocommerce-MyAccount-content mark { background: none; color: var(--jaune-clair); font-weight: 600; }
.woocommerce-OrderUpdates { list-style: none; padding: 0; }
.woocommerce-OrderUpdate { border-left: 2px solid var(--jaune); padding: 6px 12px; margin-bottom: 10px; color: var(--texte-2); }

/* Blocs, listes, encarts */
.exo-bloc-compte { background: var(--carte); border: 1px solid var(--bordure-carte); border-radius: var(--r-md); padding: 20px; }
.exo-bloc-compte form { margin-top: 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.exo-bloc-compte form .exo-btn { width: auto; }
.exo-liste-lignes { list-style: none; margin: 12px 0; padding: 0; }
.exo-liste-lignes li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--bordure); }
.exo-liste-compte { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.exo-liste-compte > li { display: flex; align-items: center; gap: 14px; padding: 12px 14px; background: var(--carte); border: 1px solid var(--bordure); border-radius: var(--r-md); }
.exo-liste-compte > li > div:not(.exo-liste-precos__haut) { flex: 1; min-width: 0; display: grid; gap: 2px; }
.exo-liste-compte > li > div span, .exo-liste-precos__haut span { font-size: 13px; color: var(--texte-2); }
.exo-liste-compte__img img { width: 56px; height: 56px; object-fit: cover; object-position: 50% 0; border-radius: var(--r-sm); border: 1px solid var(--bordure-carte); }
.exo-liste-compte__nom { font-family: var(--f-carte); font-size: 15px; font-weight: 700; color: var(--creme) !important; }
.exo-liste-compte .exo-btn { width: auto; min-height: 36px; padding: 6px 14px; font-size: 10.5px; }
.exo-lien-retour { font-size: 13px; color: var(--texte-2); text-decoration: underline; }
.exo-encart--ok { border-color: rgba(47, 214, 123, .5); background: rgba(47, 214, 123, .06); }
.exo-encart--erreur { border-color: rgba(255, 77, 77, .5); background: rgba(255, 77, 77, .06); color: #ffb3ad; }
.exo-encart--info { font-size: 14px; }

/* Retour / rétractation */
.exo-retour__intro { font-size: 14px; color: var(--texte-2); margin-bottom: 18px; }
.exo-retour form { display: block; }
.exo-etape { display: flex; align-items: center; gap: 10px; margin: 22px 0 12px !important; }
.exo-etape span { width: 24px; height: 24px; border-radius: 50%; background: var(--degrade-jaune); color: var(--sur-jaune); font-size: 12px; font-weight: 800; display: grid; place-items: center; letter-spacing: 0; }
.exo-retour__articles { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.exo-retour__articles li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid var(--bordure); border-radius: var(--r-sm); }
.exo-retour__articles label { display: flex; align-items: center; gap: 10px; color: var(--texte); cursor: pointer; }
.exo-retour__articles input { accent-color: var(--jaune); width: 16px; height: 16px; }
.exo-retour__articles select { height: 38px; padding: 0 34px 0 12px; }
.exo-retour select[name="motif"] { width: 100%; }
.exo-retour__commentaire { display: grid; gap: 6px; margin-top: 12px; font-size: 13px; }
.exo-retour__commentaire textarea { width: 100%; }
.exo-retour .exo-btn { width: auto; margin-top: 4px; }
.exo-retour__note { font-size: 12px; color: var(--texte-2); margin-top: 10px; }
.exo-retour__declaration { padding: 16px; border: 1px dashed color-mix(in srgb, var(--jaune) 50%, transparent); border-radius: var(--r-sm); margin-bottom: 16px; }
.exo-retour__client { font-size: 13px; color: var(--texte-2); }

/* Formulaires du compte (profil, adresses, connexion, rétractation WooCommerce) */
.woocommerce-MyAccount-content form .form-row, .woocommerce-form-login .form-row, .woocommerce-form-register .form-row { margin-bottom: 14px; }
.woocommerce-EditAccountForm fieldset { border: 1px solid var(--bordure); border-radius: var(--r-md); padding: 16px; margin: 20px 0; }
.woocommerce-EditAccountForm legend { padding: 0 8px; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--jaune-clair); }
.woocommerce-MyAccount-content form .button, .woocommerce-form-login .button, .woocommerce-form-register .button { width: auto; min-height: 44px; padding: 0 22px; font-size: 11.5px; }
.woocommerce-Addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.woocommerce-Addresses .woocommerce-Address { float: none; width: auto; background: var(--carte); border: 1px solid var(--bordure); border-radius: var(--r-md); padding: 16px; }
.woocommerce-Address-title { display: flex; justify-content: space-between; align-items: center; }
.woocommerce-Address-title h2 { margin: 0 !important; }
.woocommerce-Address-title a { font-size: 12px; color: var(--jaune); }
.woocommerce-Address address { font-style: normal; color: var(--texte-2); margin-top: 10px; }
.woocommerce-account:not(.logged-in) .exo-contenu > .woocommerce { display: block; max-width: 980px; margin-inline: auto; }
.woocommerce-account .u-columns.col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.woocommerce-account .u-columns .u-column1, .woocommerce-account .u-columns .u-column2 { float: none; width: auto; background: var(--carte); border: 1px solid var(--bordure-carte); border-radius: var(--r-md); padding: 22px; }
.woocommerce form.login, .woocommerce form.register { border: 0; padding: 0; margin: 0; background: none; }
.woocommerce-LostPassword a, .woocommerce-privacy-policy-text a { color: var(--jaune); }
.woocommerce-order-withdrawal-content { max-width: 720px; }
.woocommerce-order-withdrawal-content__steps { display: flex; gap: 16px; padding: 0; list-style: none; font-size: 12px; color: var(--texte-2); }
.woocommerce-order-withdrawal-content__step--current { color: var(--jaune-clair); font-weight: 600; }
.woocommerce-order-withdrawal-content__review-row { display: grid; grid-template-columns: 200px 1fr; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--bordure); }
.woocommerce-order-withdrawal-content__review-row dt { color: var(--texte-2); }
.woocommerce-order-withdrawal-content__review-row dd { margin: 0; }
.woocommerce-order-withdrawal-content__button--secondary { background: none !important; border: 1px solid var(--bordure) !important; color: var(--texte-2) !important; }

/* Mes favoris */
.exo-favoris-vide { text-align: center; padding: 40px 20px; color: var(--texte-2); }
.exo-favoris-vide .exo-btn { width: auto; margin-top: 16px; }
.exo-favoris__note { margin-top: 20px; text-align: center; font-size: 13px; color: var(--texte-2); }
.exo-favoris__note a { color: var(--jaune); }
.exo-favoris ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* ==========================================================================
   Panier et commande (WooCommerce classique, habillage sombre)
   ========================================================================== */

.woocommerce-cart .exo-contenu,
.woocommerce-checkout .exo-contenu { max-width: none; }

/* Tables communes */
.woocommerce table.shop_table {
	border: 1px solid var(--bordure); border-radius: var(--r-md); border-collapse: separate; border-spacing: 0;
	background: var(--carte); color: var(--texte); margin: 0;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td { border-top: 1px solid var(--bordure); padding: 14px 16px; vertical-align: middle; }
.woocommerce table.shop_table thead th { border-top: 0; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--texte-2); }
.woocommerce table.shop_table tbody tr:first-child td { border-top: 1px solid var(--bordure); }
.woocommerce table.shop_table tfoot th, .woocommerce table.shop_table tfoot td { font-weight: 500; }
.woocommerce table.shop_table .amount { color: var(--texte); font-weight: 600; }
.woocommerce table.shop_table del .amount { color: var(--texte-2); font-weight: 400; }
.woocommerce table.shop_table ins { text-decoration: none; }
.woocommerce table.shop_table .order-total .amount { font-size: 20px; color: var(--jaune-clair); }

/* Panier : articles à gauche, récapitulatif à droite */
.woocommerce-cart .exo-contenu > .woocommerce {
	display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(300px, 1fr); gap: 28px; align-items: start;
}
.woocommerce-cart .exo-contenu > .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-cart .exo-contenu > .woocommerce > .exo-barre-livraison,
.woocommerce-cart .exo-contenu > .woocommerce > .cart-empty,
.woocommerce-cart .exo-contenu > .woocommerce > .return-to-shop,
.woocommerce-cart .exo-contenu > .woocommerce > .wc-empty-cart-message { grid-column: 1 / -1; }
.woocommerce-cart .cart-collaterals { width: auto; position: sticky; top: 20px; }
.woocommerce-cart .cart-collaterals .cart_totals { float: none; width: 100%; }
.woocommerce .cart-collaterals .cart_totals h2 { font-family: var(--f-texte); font-size: 12px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--jaune-clair); margin: 0 0 12px; }

.woocommerce table.cart img { width: 72px; height: 72px; object-fit: cover; object-position: 50% 0; border-radius: var(--r-sm); border: 1px solid var(--bordure-carte); }
.woocommerce table.cart .product-name a { font-family: var(--f-carte); font-size: 15.5px; font-weight: 700; color: var(--creme); }
.woocommerce table.cart .product-name a:hover { color: var(--jaune-clair); }
.woocommerce table.cart .product-name dl.variation { margin: 4px 0 0; font-size: 12px; color: var(--jaune-clair); }
.woocommerce table.cart .product-name dl.variation dt, .woocommerce table.cart .product-name dl.variation dd { display: inline; margin: 0; }
.woocommerce table.cart .product-name dl.variation dt { font-weight: 600; margin-right: 4px; }
.woocommerce table.cart .product-name dl.variation dd p { display: inline; margin: 0; }
.woocommerce a.remove { color: var(--texte-2) !important; border: 1px solid var(--bordure); width: 26px; height: 26px; line-height: 24px; font-size: 18px; }
.woocommerce a.remove:hover { background: var(--rouge) !important; border-color: var(--rouge); color: #fff !important; }
.woocommerce table.cart td.actions { padding: 14px 16px; }
.woocommerce table.cart td.actions .coupon { display: flex; gap: 8px; }
.woocommerce table.cart td.actions .coupon .input-text { width: 180px; padding: 10px 12px; border: 1px solid var(--bordure); background: var(--surface); color: var(--texte); border-radius: var(--r-sm); }
.woocommerce table.cart td.actions .button { width: auto; min-height: 42px; padding: 0 16px; font-size: 11px; }
.woocommerce table.cart td.actions button[name="update_cart"] { background: none; border: 1px solid var(--bordure); color: var(--texte-2); }
.woocommerce table.cart td.actions button[name="update_cart"]:disabled { opacity: .5; }
.woocommerce .quantity .qty { width: 64px; padding: 9px 6px; text-align: center; background: var(--surface); border: 1px solid var(--bordure); border-radius: var(--r-sm); color: var(--texte); }
.wc-proceed-to-checkout { padding: 16px 0 0; }
.woocommerce .wc-proceed-to-checkout a.checkout-button { width: 100%; min-height: 52px; font-size: 13px; margin: 0; }
/* Modes de livraison : une carte par mode (thème : woocommerce/cart/cart-shipping.php) */
.woocommerce table.shop_table tr.exo-liv td { padding: 16px; text-align: left !important; }
.woocommerce table.shop_table_responsive tr.exo-liv td::before { display: none; }
.exo-liv__titre { margin: 0 0 10px; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--texte-2); }
.woocommerce ul.exo-liv__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.woocommerce ul#shipping_method.exo-liv__liste li { position: relative; padding: 0; text-indent: 0; margin: 0; line-height: 1.35; }
.woocommerce ul#shipping_method.exo-liv__liste li > input[type="radio"] { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.woocommerce ul#shipping_method.exo-liv__liste li .exo-liv__carte {
	display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; align-items: center; gap: 12px;
	margin: 0; padding: 12px 14px; cursor: pointer;
	background: var(--surface); border: 1px solid var(--bordure); border-radius: var(--r-sm);
	color: var(--texte); transition: border-color .15s, background .15s;
}
.exo-liv__carte:hover { border-color: var(--texte-2); }
.exo-liv__rond { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--texte-2); transition: border-color .15s, box-shadow .15s; }
.exo-liv__ico { width: 26px; height: 26px; color: var(--texte-2); transition: color .15s; }
.exo-liv__texte { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.exo-liv__nom { font-size: 14.5px; font-weight: 700; }
.exo-liv__detail { font-size: 12px; color: var(--texte-2); }
.exo-liv__prix { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; text-align: right; white-space: nowrap; }
.exo-liv__prix strong, .exo-liv__prix strong .amount { font-size: 15px; font-weight: 700; color: var(--texte); }
.woocommerce table.shop_table .exo-liv__prix del .amount, .exo-liv__prix del { font-size: 12px; color: var(--texte-2); font-weight: 400; }
.exo-liv__prix strong.exo-offert { color: #35e08a; }
/* Mode choisi */
.exo-liv__option > input:checked + .exo-liv__carte,
.exo-liv__option.is-seul .exo-liv__carte { border-color: var(--jaune); background: color-mix(in srgb, var(--jaune) 8%, var(--surface)); cursor: default; }
.exo-liv__option > input:checked + .exo-liv__carte .exo-liv__rond { border-color: var(--jaune); box-shadow: inset 0 0 0 3px var(--surface), inset 0 0 0 9px var(--jaune); }
.exo-liv__option > input:checked + .exo-liv__carte .exo-liv__ico,
.exo-liv__option.is-seul .exo-liv__ico { color: var(--jaune-clair); }
.exo-liv__option.is-seul .exo-liv__rond { display: none; }
.exo-liv__option > input:focus-visible + .exo-liv__carte { outline: 2px solid var(--jaune); outline-offset: 2px; }
.exo-offert { color: #35e08a; font-weight: 700; }
.woocommerce-shipping-destination { margin: 10px 0 0; font-size: 12px; color: var(--texte-2); }
#order_review table.shop_table tr.exo-liv td { padding: 14px 0; }
.woocommerce table.shop_table_responsive tr.exo-tva-ligne td::before { display: none; }
@media (max-width: 400px) {
	.woocommerce ul#shipping_method.exo-liv__liste li .exo-liv__carte { grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; padding: 11px 12px; }
	.exo-liv__ico { display: none; }
}
.exo-tva-ligne td { padding-top: 6px !important; border-top: 0 !important; font-size: 12px; font-weight: 400 !important; color: var(--texte-2); text-align: right; }
.exo-encart--panier { margin: 0 0 16px; font-size: 13.5px; }
/* 02/11/2026 : encadrés du panier / paiement plus visibles (jaune précommande, violet sur demande). */
.exo-encart--panier.exo-encart--preco { background: color-mix(in srgb, var(--pre-b) 11%, transparent); border-color: color-mix(in srgb, var(--pre-b) 45%, transparent); border-left: 4px solid var(--pre-b); }
.exo-encart--panier.exo-encart--preco strong { color: var(--pre-texte); }
.exo-encart--sd { background: color-mix(in srgb, var(--dem-b) 11%, transparent); border-color: color-mix(in srgb, var(--dem-b) 45%, transparent); border-left: 4px solid var(--dem-b); }
.exo-encart--sd strong { color: var(--dem-texte); }

/* Barre « point relais offert » */
.exo-barre-livraison {
	margin-bottom: 18px; padding: 14px 18px;
	background: var(--carte); border: 1px solid var(--bordure-carte); border-radius: var(--r-md);
	font-size: 14px; color: var(--texte);
}
.exo-barre-livraison p { margin: 0 0 10px; }
.exo-barre-livraison strong { color: var(--jaune-clair); font-weight: 600; }
.exo-barre-livraison__piste { height: 6px; border-radius: 999px; background: var(--surface); overflow: hidden; }
.exo-barre-livraison__piste span { display: block; height: 100%; border-radius: 999px; background: var(--lueur); background-size: 200% 100%; animation: exoLueur 6s linear infinite; transition: width .4s; }
.exo-barre-livraison.is-atteint { border-color: rgba(47, 214, 123, .5); }
.exo-barre-livraison.is-atteint strong { color: #35e08a; }

/* Panier vide */
.woocommerce-cart .cart-empty.woocommerce-info { text-align: center; padding: 28px !important; font-size: 16px; }
.woocommerce-cart .cart-empty.woocommerce-info::before { display: none; }
.woocommerce-cart .return-to-shop { text-align: center; }
.woocommerce-cart .return-to-shop .button { width: auto; }

/* Commande : coordonnées à gauche, récapitulatif + paiement à droite */
.woocommerce-checkout form.checkout {
	display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(320px, 1fr); column-gap: 36px; align-items: start;
}
.woocommerce-checkout form.checkout > * { grid-column: 1; }
.woocommerce-checkout form.checkout > #order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 12px; }
.woocommerce-checkout form.checkout > #order_review { grid-column: 2; grid-row: 2 / span 10; position: sticky; top: 20px; }
.woocommerce-checkout #customer_details { grid-row: 1 / span 11; }
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2 { float: none; width: 100%; }
.woocommerce-checkout h3, #order_review_heading {
	font-family: var(--f-texte); font-size: 12px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--jaune-clair);
	margin: 22px 0 14px;
}
.woocommerce-billing-fields > h3 { margin-top: 0; }
.woocommerce form .form-row { padding: 0; margin: 0 0 14px; }
.woocommerce form .form-row label { font-size: 13px; color: var(--texte-2); margin-bottom: 6px; line-height: 1.4; }
.woocommerce form .form-row .required { color: var(--jaune); text-decoration: none; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select { width: 100%; }
.woocommerce form .form-row .description { font-size: 12px; color: var(--texte-2); margin-top: 4px; }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--rouge); }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: rgba(47, 214, 123, .5); }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: calc(50% - 8px); }
#ship-to-different-address label { font-family: var(--f-texte); font-size: 14px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--texte); }
.woocommerce-checkout .woocommerce-shipping-fields, .woocommerce-checkout .woocommerce-additional-fields { margin-top: 8px; }
.select2-container .select2-selection--single { height: 44px; background: var(--surface); border: 1px solid var(--bordure); border-radius: var(--r-sm); }
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 44px; color: var(--texte); padding-left: 14px; }
.select2-dropdown { background: var(--carte); border-color: var(--bordure); color: var(--texte); }
.select2-results__option--highlighted { background: var(--bleu-roi) !important; }

#order_review { background: var(--carte); border: 1px solid var(--bordure-carte); border-radius: var(--r-md); padding: 18px; }
#order_review table.shop_table { border: 0; background: none; }
#order_review table.shop_table th, #order_review table.shop_table td { padding: 10px 0; }
#order_review .product-name { font-size: 14px; }
#order_review .product-quantity { color: var(--texte-2); font-weight: 400; }

/* Paiement */
.woocommerce-checkout #payment { background: none; border-radius: 0; margin-top: 16px; }
.woocommerce-checkout #payment ul.payment_methods { border: 0; padding: 0; margin: 0 0 14px; }
.woocommerce-checkout #payment ul.payment_methods li { padding: 12px 14px; border: 1px solid var(--bordure); border-radius: var(--r-sm); margin-bottom: 8px; background: var(--surface); list-style: none; color: var(--texte); }
.woocommerce-checkout #payment ul.payment_methods li label { color: var(--texte); font-weight: 500; }
.woocommerce-checkout #payment div.payment_box { background: var(--fond); color: var(--texte-2); border-radius: var(--r-sm); font-size: 13px; margin: 10px 0 0; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--fond); }
.woocommerce-checkout #payment div.form-row { padding: 0; }
.woocommerce-terms-and-conditions-wrapper { font-size: 13px; color: var(--texte-2); }
.woocommerce-terms-and-conditions-wrapper a { color: var(--jaune); }
.woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text p { margin-bottom: 12px; }
.woocommerce-form__label-for-checkbox { display: flex !important; gap: 8px; align-items: flex-start; color: var(--texte) !important; }
.woocommerce #payment #place_order { width: 100%; min-height: 54px; font-size: 13px; float: none; margin-top: 10px; }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-form-login-toggle .woocommerce-info { font-size: 14px; }
.woocommerce form.checkout_coupon, .woocommerce form.login { border: 1px solid var(--bordure); border-radius: var(--r-md); background: var(--carte); padding: 18px; }

/* Commande reçue */
.woocommerce-order { max-width: 860px; margin-inline: auto; }
.woocommerce-order .woocommerce-thankyou-order-received { font-family: var(--f-titre); font-size: 22px; color: var(--titre); text-align: center; margin-bottom: 20px; }
.woocommerce ul.order_details { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 0 0 24px; }
.woocommerce ul.order_details li { border: 1px solid var(--bordure) !important; border-radius: var(--r-sm); padding: 12px 14px; margin: 0; float: none; font-size: 11px; letter-spacing: .1em; color: var(--texte-2); }
.woocommerce ul.order_details li strong { font-size: 14px; letter-spacing: 0; color: var(--texte); margin-top: 4px; }
.woocommerce-order h2 { font-family: var(--f-texte); font-size: 12px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--jaune-clair); margin: 24px 0 12px; }
.woocommerce-customer-details address { border: 1px solid var(--bordure); border-radius: var(--r-md); padding: 16px; background: var(--carte); color: var(--texte); font-style: normal; }

/* Chargement (AJAX) sans voile blanc */
.woocommerce .blockUI.blockOverlay { background: rgba(13, 15, 26, .6) !important; }

/* ==========================================================================
   Adaptation aux écrans (mêmes paliers que Shopipi : 1440 / 1320 / 1199 / 989 / 749)
   ========================================================================== */

@media (max-width: 1440px) {
	.exo-menu__liste a { padding: 14px; font-size: 13px; letter-spacing: .1em; }
}

@media (max-width: 1320px) {
	.exo-menu__liste a { padding: 14px 11px; font-size: 12.5px; letter-spacing: .08em; }
}

@media (max-width: 1199px) {
	.exo-entete__haut { display: flex; flex-wrap: wrap; gap: 32px; min-height: 0; padding-block: 12px; }
	.exo-burger { display: block; }
	.exo-entete__haut > .exo-logo { flex: 1; }
	.exo-entete .exo-logo__svg { width: 150px; }
	.exo-entete .exo-logo__phrase { display: none; }
	.exo-icones { gap: 14px; }
	.exo-icone__lbl { display: none; } /* Téléphone : icônes seules, profil compris (accès à « Mon compte »). */
	.exo-recherche { order: 5; flex: 0 0 100%; max-width: none; margin: 0; height: 42px; }

	/* Menu mobile : la bande s'ouvre en liste */
	.exo-bande { display: none; }
	.exo-menu-ouvert .exo-bande { display: block; }
	.exo-bande__in { flex-direction: column; padding-block: 6px 16px; }
	.exo-menu { width: 100%; }
	.exo-menu__liste { flex-direction: column; align-items: stretch; }
	.exo-menu__liste > li + li::before { display: none; }
	.exo-menu__liste a,
	.exo-menu__liste > li:first-child > a { padding: 13px 0; border-bottom: 1px solid rgba(255, 255, 255, .08); font-size: 12.5px; box-shadow: none !important; }
	.exo-menu__liste .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; background: none; border: 0; box-shadow: none; padding: 0 0 0 14px; }
	.exo-bande__infos { position: static; margin-top: 12px; padding: 10px 14px; border-radius: 10px; align-self: flex-start; }

	.exo-main ul.products,
	.exo-main ul.products.columns-5,
	.exo-rangee ul.products.columns-5,
	.exo-rangee ul.products.columns-6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 989px) {
	.exo-fiche { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-top: 20px; }
	.exo-fiche__galerie { position: static; }
	.exo-fiche__galerie.a-miniatures { grid-template-columns: minmax(0, 1fr); }
	.exo-fiche__galerie.a-miniatures .exo-fiche__minis { order: 2; flex-direction: row; overflow-x: auto; }
	.exo-fiche__mini { width: 64px; flex: none; }
	.exo-demande { grid-template-columns: minmax(0, 1fr); }

	.woocommerce-cart .exo-contenu > .woocommerce,
	.woocommerce-checkout form.checkout { grid-template-columns: minmax(0, 1fr); }
	.woocommerce-checkout form.checkout > #order_review_heading,
	.woocommerce-checkout form.checkout > #order_review,
	.woocommerce-checkout #customer_details { grid-column: 1; grid-row: auto; position: static; }
	.woocommerce-cart .cart-collaterals { position: static; }

	/* Filtres repliés en haut de la liste */
	.exo-catalogue { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.exo-filtres { position: static; border: 1px solid var(--bordure); border-radius: var(--r-md); padding: 12px 16px; background: var(--carte); }
	.exo-filtres__bouton { padding-bottom: 0; border-bottom: 0; }
	.exo-filtres[open] .exo-filtres__bouton { padding-bottom: 12px; border-bottom: 1px solid var(--ligne); }
	.exo-catalogue .exo-catalogue__liste ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	/* Espace client : menu au-dessus */
	.woocommerce-account .exo-contenu > .woocommerce { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.woocommerce-MyAccount-navigation { position: static; }
	.woocommerce-account .exo-contenu > .woocommerce > .woocommerce-MyAccount-navigation,
	.woocommerce-account .exo-contenu > .woocommerce > .woocommerce-MyAccount-content { grid-column: 1; grid-row: auto; }
	.woocommerce-MyAccount-navigation { padding: 6px; } /* Menu du compte : une seule ligne qu’on fait glisser de côté (avant : 5 lignes de pastilles). */
	.woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: nowrap; gap: 4px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
	.woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
	.woocommerce-MyAccount-navigation li { flex: none; scroll-snap-align: start; }
	.woocommerce-MyAccount-navigation li a { padding: 9px 12px; font-size: 13.5px; white-space: nowrap; }
	.woocommerce-MyAccount-navigation-link--customer-logout { border-top: 0; margin: 0; padding: 0; }
	.woocommerce-account .u-columns.col2-set { grid-template-columns: minmax(0, 1fr); }
	.exo-favoris ul.products.columns-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 749px) {
	/* Panier en cartes empilées (WooCommerce passe la table en mode « responsive ») */
	.woocommerce table.shop_table_responsive tr td { padding: 8px 14px; }
	.woocommerce table.cart td.actions .coupon { flex-wrap: wrap; }
	.woocommerce table.cart td.actions .coupon .input-text { width: 100%; }
	.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; }
}

@media (max-width: 989px) {
	:root { --marge: 20px; }

	.exo-heros__cote { display: none; }
	.exo-diapo { min-height: 440px; }
	.exo-diapo::after { background: linear-gradient(0deg, rgba(8, 6, 6, .97), rgba(8, 6, 6, .75) 45%, rgba(8, 6, 6, .1) 80%); }
	.exo-diapo__in { align-items: flex-end; }
	.exo-diapo__texte-bloc { margin: 0; padding: 40px 0 70px; align-self: flex-end; }
	.exo-diapo__texte { font-size: 18px; line-height: 1.5; max-width: 340px; margin-top: 18px; }
	.exo-btn--heros { margin-top: 20px; }

	.exo-garanties__in { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.exo-garantie + .exo-garantie { border-left: 0; }
	.exo-garantie > div { min-width: 0; }

	.exo-pied__cols { grid-template-columns: 1fr 1fr; }
	.exo-pied__marque, .exo-pied__cercle { grid-column: 1 / -1; }

	.exo-encadres__grille { grid-template-columns: 1fr; }
}

@media (max-width: 749px) {
	.exo-main ul.products,
	.exo-main ul.products.columns-5,
	.exo-rangee ul.products.columns-5,
	.exo-rangee ul.products.columns-6 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }

	.exo-fiche__achat { flex-wrap: wrap; }
	.exo-fiche__acheter { flex: 1 1 100%; order: 3; }
	.exo-qte { flex: 1; justify-content: space-between; }
	.exo-fiche__libelle-remise { margin-left: 0; }
	.exo-demande__liste li { grid-template-columns: 56px 1fr auto; }
	.exo-demande__retirer { grid-column: 2 / -1; }

	.exo-rangee__tete { gap: 12px; }
	.exo-rangee__trait, .exo-rangee__jp { display: none; }
	.exo-rangee__titre { font-size: 20px; }
	.exo-rangee__tout { margin-left: auto; padding: 8px 12px; gap: 8px; font-size: 10px; }

	.exo-carte .exo-btn { font-size: 10px; letter-spacing: .05em; height: 38px; padding: 0 8px; }

	/* Garanties : sur Shopipi le texte déborde et se fait couper ; ici on le garde lisible. */
	.exo-garantie { padding: 22px 10px; gap: 12px; align-items: flex-start; justify-content: flex-start; }
	.exo-garantie:nth-child(odd) { padding-left: 0; }
	.exo-garantie .exo-ico { width: 24px; height: 24px; }
	.exo-garantie strong { font-size: 11px; letter-spacing: .12em; }
	.exo-garantie span { font-size: 13px; }

	.exo-encadre__contenu { width: 68%; gap: 12px; }
	.exo-encadre__titre { letter-spacing: .14em; }

	.exo-wc .woocommerce-ordering { float: none; display: block; margin-bottom: 16px; }
	.exo-wc .woocommerce-ordering select { width: 100%; }
}

@media (max-width: 749px) {
	.exo-pied__bas { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 14px; }
	.exo-pied__copy, .exo-paiements { justify-self: center; }
	.exo-paiements { justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
	.exo-bande::after, .exo-heros::after { animation: none; }
	*, *::before, *::after { transition: none !important; }
}

/* Univers : lien sur la fiche, page « Univers » en grille */
.exo-fiche__univers { margin-top: 4px; font-size: 13px; letter-spacing: .04em; }
.exo-fiche__univers a { color: var(--jaune); text-decoration: none; border-bottom: 1px solid color-mix(in srgb, var(--jaune) 35%, transparent); }
.exo-fiche__univers a:hover { color: var(--jaune-clair); border-bottom-color: var(--jaune-clair); }
.exo-univers-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 18px; margin: 10px 0 40px; }
.exo-univers-carte { position: relative; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--bordure-carte); border-radius: 16px; background: var(--carte, #161a2e); color: var(--texte, #f5f6ff); text-decoration: none; transition: transform .2s, border-color .2s; }
.exo-univers-carte:hover { transform: translateY(-3px); border-color: var(--jaune); color: var(--texte, #f5f6ff); }
.exo-univers-carte__img { aspect-ratio: 1; overflow: hidden; background: #0d0f1a; }
.exo-univers-carte__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 0; display: block; opacity: .9; }
.exo-univers-carte__nom { padding: 14px 16px 2px; font-family: var(--f-titre, "Cinzel", serif); font-size: 18px; letter-spacing: .04em; }
.exo-univers-carte__nb { padding: 0 16px 14px; font-size: 12px; color: var(--texte-2, #a9aecb); }

/* ==========================================================================
   Menus déroulants de la bande bleue (30/09/2026) : panneau sombre, liseré lumineux, chevron.
   « Univers » : panneau en deux colonnes avec vignettes.
   ========================================================================== */
.exo-menu__liste > .menu-item-has-children > a::after {
	content: ""; width: 6px; height: 6px; margin: -3px 0 0 2px;
	border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg); opacity: .7; transition: transform .2s;
}
.exo-menu__liste > .menu-item-has-children:hover > a::after,
.exo-menu__liste > .menu-item-has-children:focus-within > a::after { transform: rotate(225deg); margin-top: 3px; }
.exo-menu__liste .sub-menu {
	top: 100%; left: -8px; min-width: 230px; padding: 10px;
	background: linear-gradient(180deg, #1a1f3a 0%, #12162a 100%);
	border: 1px solid var(--bordure-carte); border-radius: 0 0 16px 16px; border-top: 0;
	box-shadow: 0 24px 50px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, .02) inset;
	transform: translateY(8px);
}
.exo-menu__liste .sub-menu::before {
	content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px;
	background: linear-gradient(90deg, var(--jaune), var(--jaune-clair), var(--jaune));
}
.exo-menu__liste .sub-menu li { position: relative; }
.exo-menu__liste .sub-menu a {
	display: flex; align-items: center; gap: 12px;
	padding: 10px 12px; border-radius: 10px;
	font-size: 13.5px; font-weight: 500; letter-spacing: .02em; color: var(--texte);
	transition: background .15s, color .15s, transform .15s;
}
.exo-menu__liste .sub-menu a:hover,
.exo-menu__liste .sub-menu .current-menu-item > a { background: color-mix(in srgb, var(--jaune) 9%, transparent); color: var(--jaune-clair); box-shadow: none; transform: translateX(2px); }

/* Panneau « Univers » */
.exo-menu__liste .exo-univers > .sub-menu { display: grid; grid-template-columns: repeat(2, minmax(220px, 1fr)); gap: 2px 6px; width: max-content; max-width: 560px; padding: 12px; }
.exo-sm__img { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 10px; overflow: hidden; background: #0d0f1a; border: 1px solid var(--bordure); }
.exo-sm__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 15%; display: block; }
.exo-sm__txt { display: grid; gap: 1px; min-width: 0; }
.exo-sm__nom { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 600; }
.exo-sm__nb { font-size: 11px; font-weight: 500; color: var(--texte-2); letter-spacing: .03em; }
.exo-menu__liste .exo-univers__tous { grid-column: 1 / -1; margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--bordure); }
.exo-menu__liste .exo-univers__tous a { justify-content: center; color: var(--jaune); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }

@media (max-width: 989px) {
	.exo-menu__liste > .menu-item-has-children > a::after { display: none; }
	.exo-menu__liste .sub-menu { background: none; border: 0; padding: 0 0 0 14px; }
	.exo-menu__liste .sub-menu::before { display: none; }
	.exo-menu__liste .exo-univers > .sub-menu { display: block; width: auto; max-width: none; }
	.exo-menu__liste .sub-menu a { padding: 9px 0; border-radius: 0; }
	.exo-menu__liste .exo-univers__tous { border-top: 0; margin: 0; }
	.exo-menu__liste .exo-univers__tous a { justify-content: flex-start; }
}

/* Pastilles « Univers » en haut des catégories */
.exo-univers-pastilles { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; margin: 14px auto 6px; max-width: 900px; }
.exo-univers-pastilles__lib { font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--texte-2); margin-right: 4px; }
.exo-univers-pastille { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border: 1px solid var(--bordure-carte); border-radius: 999px; font-size: 13px; color: var(--texte); text-decoration: none; transition: border-color .15s, color .15s, background .15s; }
.exo-univers-pastille small { font-size: 11px; color: var(--texte-2); }
.exo-univers-pastille:hover { border-color: var(--jaune); color: var(--jaune-clair); }
.exo-univers-pastille.is-actif { background: var(--jaune); border-color: var(--jaune); color: var(--sur-jaune); font-weight: 600; }
.exo-univers-pastille.is-actif small { color: var(--sur-jaune); }

/* Suivi de précommande « façon colis » (espace client) */
.exo-liste-precos > li { flex-direction: column; align-items: stretch !important; gap: 14px; }
.exo-liste-precos__haut { display: flex; align-items: center; gap: 16px; }
.exo-liste-precos__haut > div { flex: 1; display: grid; gap: 2px; }
.exo-frise { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); position: relative; }
.exo-frise__etape { position: relative; display: grid; justify-items: center; gap: 4px; padding: 0 4px; text-align: center; }
.exo-frise__etape::before { content: ""; position: absolute; top: 15px; left: -50%; width: 100%; height: 3px; background: var(--bordure); z-index: 0; }
.exo-frise__etape:first-child::before { display: none; }
.exo-frise__etape.is-fait::before { background: linear-gradient(90deg, var(--jaune), var(--jaune-clair)); }
.exo-frise__point { position: relative; z-index: 1; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--surface); border: 2px solid var(--bordure); color: var(--texte-2); font-size: 13px; font-weight: 700; }
.exo-frise__etape.is-fait .exo-frise__point { background: var(--jaune); border-color: var(--jaune); color: var(--sur-jaune); }
.exo-frise__etape.is-actuel .exo-frise__point { border-color: var(--jaune); color: var(--jaune); box-shadow: 0 0 0 4px color-mix(in srgb, var(--jaune) 15%, transparent); animation: exo-frise-pulse 2s ease-in-out infinite; }
@keyframes exo-frise-pulse { 50% { box-shadow: 0 0 0 7px color-mix(in srgb, var(--jaune) 6%, transparent); } }
@media (prefers-reduced-motion: reduce) { .exo-frise__etape.is-actuel .exo-frise__point { animation: none; } }
.exo-frise__lib { font-size: 12.5px; font-weight: 600; color: var(--texte); }
.exo-frise__etape:not(.is-fait):not(.is-actuel) .exo-frise__lib { color: var(--texte-2); }
.exo-frise__date { font-size: 11.5px; color: var(--texte-2); }
.exo-frise__lien { font-size: 12px; color: var(--jaune); }
.exo-frise__retard { margin: 10px 0 0; padding: 10px 14px; border-radius: 10px; border-left: 3px solid var(--jaune); background: color-mix(in srgb, var(--jaune) 7%, transparent); font-size: 13px; }
.exo-suivi-preco { margin: 24px 0; padding: 18px; border: 1px solid var(--bordure); border-radius: 14px; background: var(--carte); }
.exo-suivi-preco h3 { margin: 0 0 16px; font-size: 15px; }
@media (max-width: 600px) {
	.exo-frise { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.exo-frise__etape { grid-template-columns: 32px 1fr; justify-items: start; text-align: left; column-gap: 12px; }
	.exo-frise__etape::before { top: -12px; left: 15px; width: 3px; height: 14px; }
	.exo-frise__point { grid-row: span 3; }
}

/* Badge « 100 % officiel » (fiche produit) */
.exo-fiche__version + .exo-fiche__officiel { margin-left: 8px; }
.exo-fiche__officiel {
	position: relative; display: inline-flex; align-items: center; gap: 7px;
	margin-top: 10px; padding: 5px 12px;
	border: 1px solid rgba(88, 214, 141, .45); border-radius: 999px; background: rgba(88, 214, 141, .08);
	font-size: 12.5px; font-weight: 600; letter-spacing: .02em; line-height: 20px; color: #7fe3a8; cursor: help; outline: none;
}
.exo-fiche__officiel-aide {
	position: absolute; left: 0; top: calc(100% + 8px); z-index: 20; width: 300px; max-width: 80vw;
	padding: 12px 14px; border: 1px solid var(--bordure); border-radius: 12px; background: var(--carte);
	box-shadow: 0 16px 40px rgba(0, 0, 0, .5);
	font-size: 12.5px; font-weight: 400; line-height: 1.55; color: var(--texte); letter-spacing: 0;
	opacity: 0; visibility: hidden; transform: translateY(4px); transition: .15s;
}
.exo-fiche__officiel:hover .exo-fiche__officiel-aide,
.exo-fiche__officiel:focus .exo-fiche__officiel-aide { opacity: 1; visibility: visible; transform: none; }

/* « Me prévenir des nouveautés <univers> » */
.exo-alerte-univers { max-width: 520px; margin: 14px auto 4px; }
.exo-alerte-univers.is-compact { margin: 10px 0 0; }
.exo-alerte-univers summary { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border: 1px solid var(--bordure-carte); border-radius: 999px; font-size: 13px; color: var(--texte); cursor: pointer; list-style: none; transition: border-color .15s, color .15s; }
.exo-alerte-univers:not(.is-compact) summary { display: flex; width: max-content; margin: 0 auto; }
.exo-alerte-univers summary::-webkit-details-marker { display: none; }
.exo-alerte-univers summary:hover, .exo-alerte-univers[open] summary { border-color: var(--jaune); color: var(--jaune-clair); }
.exo-alerte-univers form, .exo-alerte-univers__ok { margin-top: 10px; padding: 14px; border: 1px solid var(--bordure); border-radius: 14px; background: var(--carte); }
.exo-alerte-univers__ligne { display: flex; gap: 8px; }
.exo-alerte-univers__ligne input { flex: 1; min-width: 0; height: 44px; padding: 0 14px; border: 1px solid var(--bordure); border-radius: 10px; background: var(--surface); color: var(--texte); }
.exo-alerte-univers__ligne .exo-btn { height: 44px; padding: 0 18px; }
.exo-alerte-univers__mention { margin: 8px 0 0; font-size: 11.5px; line-height: 1.5; color: var(--texte-2); }
.exo-alerte-univers__mention a { color: var(--texte-2); text-decoration: underline; }
.exo-alerte-univers__pot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.exo-alerte-univers__ok { color: #7fe3a8; font-size: 13.5px; }
.exo-alerte-univers__err { margin: 6px 0 0; color: var(--rouge); font-size: 12.5px; }

/* « Vos collections » : galerie des photos de clients (mosaïque) */
.exo-collections-intro { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 24px; padding: 18px 20px; border: 1px solid var(--bordure-carte); border-radius: 16px; background: var(--carte); }
.exo-collections-intro p { margin: 0; max-width: 620px; color: var(--texte-2); }
.exo-collections { columns: 4 240px; column-gap: 16px; }
.exo-collection { break-inside: avoid; margin: 0 0 16px; overflow: hidden; border: 1px solid var(--bordure-carte); border-radius: 16px; background: var(--carte); }
.exo-collection img { width: 100%; height: auto; display: block; }
.exo-collection figcaption { display: grid; gap: 4px; padding: 12px 14px 14px; font-size: 13px; }
.exo-collection figcaption strong { font-family: var(--f-titre); font-size: 15px; letter-spacing: .04em; }
.exo-collection__mot { color: var(--texte-2); font-style: italic; }
.exo-collection figcaption a { color: var(--jaune); text-decoration: none; font-size: 12.5px; }
.exo-collections-fiche { margin: 40px 0; }
.exo-collections--compte { columns: 3 180px; }
.exo-collections__item { break-inside: avoid; margin-bottom: 16px; }
.exo-collections__statut { display: inline-block; margin-top: -8px; font-size: 12px; color: var(--texte-2); }
.exo-form-collection { max-width: 560px; }
.exo-univers-recherche { max-width: 460px; margin: 0 auto 18px; }
.exo-univers-recherche input { width: 100%; height: 46px; padding: 0 18px; border: 1px solid var(--bordure-carte); border-radius: 999px; background: var(--carte); color: var(--texte); font-size: 14px; }
.exo-univers-carte[hidden] { display: none; }

/* Taille réelle (sous la galerie de la fiche) */
.exo-taille { grid-column: 1 / -1; margin: 0; padding: 14px 16px 6px; border: 1px solid var(--bordure); border-radius: 16px; background: var(--carte); }
.exo-taille figcaption { font-size: 13px; color: var(--texte-2); }
.exo-taille figcaption strong { color: var(--texte); margin-right: 6px; }
.exo-taille__svg { display: block; width: 100%; max-height: 260px; }
.exo-taille__regle { fill: #1d2238; stroke: var(--bordure-carte); stroke-width: 1.5; }
.exo-taille__trait { stroke: #a9aecb; stroke-width: 1.2; }
.exo-taille__cm { fill: #a9aecb; font: 10px var(--f-texte); text-anchor: end; }
.exo-taille__cm.is-fort { fill: var(--texte); font-weight: 700; }
.exo-taille__fig { fill: url(#exo-taille-or); filter: drop-shadow(0 0 6px color-mix(in srgb, var(--jaune) 25%, transparent)); }
.exo-taille__socle { fill: #2b3470; }
.exo-taille__socle-haut { fill: #4db8ff; opacity: .55; }
.exo-taille__detail { fill: #1f2a6b; }
.exo-taille__yeux { fill: #4db8ff; filter: drop-shadow(0 0 2px #4db8ff); }
.exo-taille__repere { stroke: var(--jaune); stroke-width: 1.2; stroke-dasharray: 4 4; }
.exo-taille__val { fill: var(--jaune); font: 700 14px var(--f-texte); }
.exo-taille__sol { stroke: var(--bordure-carte); stroke-width: 1.5; }

/* Fiche : explication « 100 % authentique » et encart « Fan de … ? » */
.exo-fiche__atouts .exo-fiche__officiel { position: relative; display: flex; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; font: inherit; color: inherit; cursor: help; }
.exo-fiche__rond-aide { display: inline-grid; place-items: center; width: 16px; height: 16px; margin-left: 6px; border: 1px solid var(--bordure-carte); border-radius: 50%; font-size: 10px; font-weight: 700; color: var(--texte-2); }
.exo-fiche__fan { margin-top: 22px; padding: 16px 18px; border: 1px dashed var(--bordure-carte); border-radius: 16px; }
.exo-fiche__fan p { margin: 0 0 4px; font-size: 13.5px; color: var(--texte-2); }
.exo-fiche__fan p strong { color: var(--texte); }
.exo-fiche__fan .exo-alerte-univers { margin-top: 8px; }

/* Date de sortie sur les cartes de précommande */
.exo-carte__sortie { display: inline-block; margin-left: 6px; vertical-align: middle; font-size: 11px; font-weight: 600; letter-spacing: .04em; color: var(--pre-texte); }
.exo-fiche__info .exo-taille { margin: 18px 0 4px; }
.exo-fiche__info .exo-taille__svg { max-height: 200px; }

/* Pastilles de la fiche : sortie, avant-première (à côté de « Version japonaise ») */
.exo-fiche__pastille {
	display: inline-flex; align-items: center; gap: 7px;
	margin: 10px 0 0 8px; padding: 5px 12px;
	border: 1px solid color-mix(in srgb, var(--jaune) 45%, transparent); border-radius: 999px; background: color-mix(in srgb, var(--jaune) 8%, transparent);
	font-size: 12.5px; font-weight: 600; line-height: 20px; color: var(--jaune-clair);
}
.exo-fiche__pastille svg { width: 15px; height: 15px; }
.exo-fiche__serie + .exo-fiche__pastille, .exo-fiche__univers + .exo-fiche__pastille, .exo-fiche__titre + .exo-fiche__pastille { margin-left: 0; }
.exo-fiche__pastille--ap { border-color: rgba(77, 184, 255, .5); background: rgba(77, 184, 255, .1); color: #8fd0ff; }
.exo-carte__ap { display: block; margin-top: 4px; font-size: 11px; font-weight: 600; letter-spacing: .04em; color: #8fd0ff; }

/* Encart « Avant-première réservée aux membres » (visiteurs non connectés) */
.exo-avant-premiere { margin: 22px 0 6px; padding: 18px 20px; border: 1px solid rgba(77, 184, 255, .45); border-radius: 16px; background: linear-gradient(135deg, rgba(31, 42, 107, .55), rgba(22, 26, 46, .9)); }
.exo-avant-premiere p { margin: 0 0 10px; color: var(--texte-2); font-size: 14px; line-height: 1.6; }
.exo-avant-premiere p strong { color: var(--texte); }
.exo-avant-premiere__titre { display: flex; align-items: center; gap: 8px; font-family: var(--f-titre); font-size: 17px; letter-spacing: .05em; color: #8fd0ff !important; }
.exo-avant-premiere__titre svg { width: 18px; height: 18px; }
.exo-avant-premiere__boutons { display: flex; flex-wrap: wrap; gap: 10px; margin: 6px 0 10px; }
.exo-avant-premiere__petit { font-size: 12px !important; margin: 0 !important; }

/* Mon compte › Parrainage */
.exo-parrainage { display: grid; gap: 18px; max-width: 640px; }
.exo-parrainage__accroche { margin: 0; font-size: 15px; line-height: 1.6; }
.exo-parrainage__accroche strong { color: var(--jaune); }
.exo-parrainage__lien { display: grid; gap: 6px; }
.exo-parrainage__lien span { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--texte-2); }
.exo-parrainage__lien input { width: 100%; padding: 12px 14px; background: var(--surface, #1d2238); border: 1px dashed var(--jaune); border-radius: var(--r-md); color: var(--texte); font-size: 14px; }
.exo-parrainage__boutons { display: flex; flex-wrap: wrap; gap: 10px; }
.exo-parrainage__boutons .exo-btn { width: auto; }
.exo-parrainage__stats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
.exo-parrainage__stats li { padding: 14px; background: var(--carte); border: 1px solid var(--bordure); border-radius: var(--r-md); color: var(--texte-2); font-size: 13px; }
.exo-parrainage__stats strong { display: block; font-size: 24px; color: var(--jaune); font-family: var(--f-titre, inherit); }
.exo-parrainage h3 { margin: 6px 0 0; font-size: 16px; }
.exo-bandeau-parrain { position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%); z-index: 90; width: min(560px, calc(100% - 32px)); display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: var(--carte); border: 1px solid var(--jaune); border-radius: var(--r-md); box-shadow: 0 12px 40px rgba(0,0,0,.5); font-size: 14px; line-height: 1.45; color: var(--texte); }
.exo-bandeau-parrain .exo-ico { flex: none; color: var(--jaune); }
.exo-bandeau-parrain strong { color: var(--jaune); }
.exo-bandeau-parrain button { flex: none; margin-left: auto; background: none; border: 0; color: var(--texte-2); font-size: 22px; line-height: 1; cursor: pointer; }

/* ---------- Cartes : ruban de statut et calendrier de sortie sur l'image ---------- */
.exo-ruban {
	position: absolute; left: 0; bottom: 14px; z-index: 3;
	display: flex; align-items: stretch;
	padding-right: 18px;
	font-size: 10px; font-weight: 800; letter-spacing: .12em; line-height: 1; text-transform: uppercase;
	clip-path: polygon(0 0, 100% 0, calc(100% - 9px) 50%, 100% 100%, 0 100%);
	pointer-events: none;
}
.exo-ruban__jp {
	display: flex; align-items: center;
	margin-right: 8px; padding: 0 7px;
	background: rgba(0, 0, 0, .24);
	font-family: var(--f-jp), "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 11px; font-weight: 600; letter-spacing: 0;
}
.exo-ruban { padding-top: 0; padding-bottom: 0; height: 24px; align-items: center; }
.exo-ruban__jp { align-self: stretch; }
.exo-ruban--precommande { background: linear-gradient(180deg, var(--pre-a), var(--pre-b)); color: var(--sur-pre); }
.exo-ruban--nouveau     { background: linear-gradient(180deg, var(--nouv-a), var(--nouv-b)); color: var(--sur-nouv); }
.exo-ruban--en-stock    { background: linear-gradient(180deg, #5fe39b, #2fd67b); color: #04170c; }
.exo-ruban--sur-demande { background: linear-gradient(180deg, var(--dem-a), var(--dem-b)); color: var(--sur-dem); }
.exo-ruban--epuise      { background: #3a3f58; color: #d4d7e8; }

.exo-cal {
	position: absolute; right: 10px; bottom: 10px; z-index: 3;
	min-width: 58px; max-width: 96px; padding: 0 0 7px;
	display: flex; flex-direction: column; align-items: center;
	text-align: center; color: var(--sur-jaune);
	/* Page de calendrier au coin corné. */
	background: linear-gradient(315deg, transparent 0 7px, #b9bdd6 7px 11px, #f5f6ff 11px);
	border-radius: 8px 8px 2px 8px;
	box-shadow: 0 8px 18px rgba(0, 0, 0, .45);
	transform: rotate(3deg);
	pointer-events: none;
}
.exo-cal::before, .exo-cal::after {
	content: ""; position: absolute; top: -5px;
	width: 6px; height: 11px; border-radius: 3px;
	background: #1d2238; border: 2px solid #f5f6ff;
}
.exo-cal::before { left: 13px; }
.exo-cal::after  { right: 13px; }
.exo-cal__haut {
	align-self: stretch;
	padding: 7px 8px 4px;
	border-radius: 8px 8px 0 0;
	background: var(--degrade-jaune);
	font-size: 8.5px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase;
}
.exo-cal__mois { margin-top: 5px; padding: 0 6px; font-family: var(--f-titre); font-size: 16px; font-weight: 700; line-height: 1.05; text-transform: uppercase; color: #1f2a6b; }
.exo-cal__an   { margin-top: 2px; font-size: 10.5px; font-weight: 700; letter-spacing: .1em; color: #171204; opacity: .65; }

/* Épuisé : « Me prévenir » entouré de rouge. */
.exo-carte .exo-btn--prevenir,
.exo-carte .exo-btn--prevenir:hover { border-color: #ff4d4d; color: #ff8080; }
.exo-carte .exo-btn--prevenir:hover { background: rgba(255, 77, 77, .1); }

@media (max-width: 749px) {
	.exo-ruban { bottom: 10px; height: 20px; padding-right: 14px; font-size: 8.5px; letter-spacing: .08em; }
	.exo-ruban__jp { margin-right: 6px; padding: 0 5px; font-size: 9.5px; }
	.exo-cal { right: 7px; bottom: 7px; min-width: 48px; padding-bottom: 5px; }
	.exo-cal__haut { padding: 6px 6px 3px; font-size: 7.5px; }
	.exo-cal__mois { font-size: 13px; }
	.exo-cal__an { font-size: 9px; }
}
.exo-caracs + .exo-taille { margin: 16px 0 4px; background: var(--surface, #1d2238); }

/* Favoris : cœur rouge quand il est ajouté (petit battement au clic). */
.exo-fav.is-actif, .exo-fav.is-actif:hover { color: #ff4d4d; border-color: rgba(255, 77, 77, .7); }
.exo-fav.is-actif .exo-ico { animation: exo-battement .35s ease-out; }
@keyframes exo-battement { 0% { transform: scale(1); } 45% { transform: scale(1.3); } 100% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .exo-fav.is-actif .exo-ico { animation: none; } }

/* Onglet « Questions fréquentes » de la fiche */
.exo-faq > details:first-child { margin-top: 0; }

/* Bulle « Ma demande » (produits sur demande), en bas de l'écran. */
.exo-bulle-demande {
	position: fixed; right: 20px; bottom: 20px; z-index: 80;
	display: flex; align-items: center; gap: 12px;
	padding: 10px 12px 10px 16px;
	background: var(--carte); border: 1px solid var(--dem-b); border-radius: 999px;
	box-shadow: 0 12px 34px rgba(0, 0, 0, .5), 0 0 0 4px rgba(var(--dem-rgb), .12);
	color: var(--texte); font-size: 13.5px;
	animation: exo-bulle .4s ease-out;
}
.exo-bulle-demande__jp { font-family: var(--f-jp), serif; color: var(--dem-texte); font-size: 15px; }
.exo-bulle-demande strong { color: var(--dem-texte); }
.exo-bulle-demande .exo-btn { width: auto; min-height: 0; height: 36px; padding: 0 16px; font-size: 11px; background: linear-gradient(180deg, var(--dem-a), var(--dem-b)); color: var(--sur-dem); }
.exo-bulle-demande__fermer { background: none; border: 0; color: var(--texte-2); font-size: 20px; line-height: 1; cursor: pointer; padding: 0 2px; }
@keyframes exo-bulle { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@media (max-width: 749px) {
	.exo-bulle-demande { left: 12px; right: 12px; bottom: 12px; border-radius: 16px; justify-content: space-between; }
}

/* Accueil : « Chez nos collectionneurs » (polaroïds penchés, centré) */
.exo-accueil-collec { padding: 70px 0 80px; text-align: center; background: radial-gradient(ellipse 60% 70% at 50% 40%, rgba(31, 42, 107, .45), transparent 70%); }
.exo-accueil-collec__jp { margin: 0 0 6px; font-family: var(--f-jp), serif; font-size: 15px; letter-spacing: .3em; color: var(--jaune); }
.exo-accueil-collec__titre { margin: 0; font-family: var(--f-titre); font-size: 34px; font-weight: 400; letter-spacing: .08em; color: var(--texte); }
.exo-accueil-collec__texte { max-width: 560px; margin: 12px auto 0; color: var(--texte-2); font-size: 14px; line-height: 1.6; }
.exo-accueil-collec__polas { display: flex; justify-content: center; align-items: center; margin: 44px auto 40px; padding: 0 10px; }
.exo-pola { flex: 0 0 auto; width: 190px; margin: 0 -10px; padding: 10px 10px 34px; background: #f5f6ff; border-radius: 4px; box-shadow: 0 16px 34px rgba(0, 0, 0, .55); transform: rotate(var(--r, 0deg)); transition: transform .3s, z-index 0s; position: relative; }
.exo-pola:nth-child(3) { z-index: 2; width: 220px; }
.exo-pola:hover { transform: rotate(0deg) scale(1.06); z-index: 3; }
.exo-pola img, .exo-pola__vide { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 2px; }
.exo-pola__vide { display: grid; place-items: center; background: linear-gradient(160deg, #1d2238, #0d0f1a); color: color-mix(in srgb, var(--jaune) 25%, transparent); font-family: var(--f-jp), serif; font-size: 56px; }
.exo-pola figcaption { position: absolute; left: 0; right: 0; bottom: 8px; font-family: "Caveat", "Segoe Print", "Bradley Hand", cursive; font-size: 15px; color: #1f2a6b; }
.exo-accueil-collec__boutons { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; }
.exo-accueil-collec__boutons .exo-btn { width: auto; padding: 0 28px; }
@media (max-width: 749px) {
	.exo-accueil-collec { padding: 50px 0 56px; }
	.exo-accueil-collec__titre { font-size: 25px; }
	.exo-pola { width: 120px; margin: 0 -14px; padding: 6px 6px 24px; }
	.exo-pola:nth-child(3) { width: 140px; }
	.exo-pola:nth-child(1), .exo-pola:nth-child(5) { display: none; }
	.exo-pola figcaption { font-size: 12px; bottom: 5px; }
	.exo-pola__vide { font-size: 36px; }
}

/* Fiche d'un produit épuisé : « Me prévenir de son retour » */
.exo-prevenir { margin: 14px 0 4px; padding: 14px 16px; border: 1px solid rgba(255, 77, 77, .45); border-radius: var(--r-md); background: rgba(255, 77, 77, .06); scroll-margin-top: 120px; }
.exo-prevenir__titre { margin: 0 0 10px; font-weight: 700; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: #ff8080; }
.exo-prevenir__ligne { display: flex; gap: 8px; }
.exo-prevenir__ligne input { flex: 1; min-width: 0; height: 44px; padding: 0 14px; border-radius: var(--r-sm); border: 1px solid var(--bordure-carte); background: var(--fond); color: var(--texte); }
.exo-prevenir__ligne .exo-btn { width: auto; height: 44px; min-height: 0; padding: 0 18px; border: 1px solid #ff4d4d; background: none; color: #ff8080; }
.exo-prevenir__ligne .exo-btn:hover { background: rgba(255, 77, 77, .12); }
.exo-prevenir__mention { margin: 8px 0 0; font-size: 11.5px; color: var(--texte-2); }
.exo-prevenir__ok { display: flex; align-items: center; gap: 8px; margin: 0; color: #ff8080; font-weight: 600; }
.exo-prevenir__ok .exo-ico { fill: currentColor; }

/* Cartes : bandeau en diagonale dans le coin bas droit de l'image (remplace ruban et calendrier). */
.exo-coin {
	position: absolute; right: -46px; bottom: 24px; z-index: 3;
	width: 180px; padding: 4px 0;
	transform: rotate(-45deg);
	text-align: center; font-weight: 800; font-size: 12px; line-height: 1.25; letter-spacing: .1em; text-transform: uppercase;
	box-shadow: 0 4px 12px rgba(0, 0, 0, .45);
	pointer-events: none;
}
.exo-coin--precommande { background: linear-gradient(180deg, var(--pre-a), var(--pre-b)); color: var(--sur-pre); }
.exo-coin--nouveau     { background: linear-gradient(180deg, var(--nouv-a), var(--nouv-b)); color: var(--sur-nouv); }
.exo-coin--sur-demande { background: linear-gradient(180deg, var(--dem-a), var(--dem-b)); color: var(--sur-dem); }
.exo-coin--epuise      { background: #3a3f58; color: #d4d7e8; }
.exo-coin--cadeau      { background: var(--degrade-jaune); color: var(--sur-jaune); }
@media (max-width: 749px) {
	.exo-coin { right: -40px; bottom: 16px; width: 150px; padding: 3px 0; font-size: 9.5px; }
}

/* Fiche « Carte cadeau » : choix du montant et du destinataire */
.exo-fiche__achat:has(.exo-cc) { flex-wrap: wrap; }
.exo-cc { flex: 0 0 100%; display: grid; gap: 16px; }
.exo-cc__bloc { margin: 0; padding: 0; border: 0; display: grid; gap: 10px; }
.exo-cc__bloc legend { margin-bottom: 8px; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--texte-2); }
.exo-cc__montants { display: flex; flex-wrap: wrap; gap: 8px; }
.exo-cc__puce input { position: absolute; opacity: 0; pointer-events: none; }
.exo-cc__puce span { display: inline-block; padding: 10px 18px; border: 1px solid var(--bordure-carte); border-radius: 999px; font-weight: 700; cursor: pointer; transition: border-color .2s, background .2s; }
.exo-cc__puce input:checked + span { border-color: var(--jaune); background: color-mix(in srgb, var(--jaune) 12%, transparent); color: var(--jaune-clair); }
.exo-cc__puce input:focus-visible + span { outline: 2px solid var(--jaune); outline-offset: 2px; }
.exo-cc label > span { display: block; margin-bottom: 5px; font-size: 12.5px; color: var(--texte-2); }
.exo-cc input[type="text"], .exo-cc input[type="email"], .exo-cc input[type="date"], .exo-cc input[type="number"], .exo-cc textarea { width: 100%; box-sizing: border-box; padding: 10px 12px; border-radius: var(--r-sm); border: 1px solid var(--bordure-carte); background: var(--fond); color: var(--texte); font: inherit; color-scheme: dark; }
.exo-cc__offrir { display: grid; gap: 10px; }
.exo-cc__deux { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.exo-cc__info { margin: 0; font-size: 12.5px; color: var(--texte-2); }
.exo-cc-des { font-size: .8em; font-weight: 500; color: var(--texte-2); }
.exo-cc-retirer { font-size: 12px; }
.exo-cc-reste { color: var(--texte-2); }
@media (max-width: 749px) { .exo-cc__deux { grid-template-columns: 1fr; } }

/* Bandeau diagonal : un peu plus à l'intérieur (texte long lisible en entier). */
.exo-coin { bottom: 34px; }
.exo-coin--long { font-size: 10.5px; letter-spacing: .05em; }
@media (max-width: 749px) {
	.exo-coin { bottom: 24px; }
	.exo-coin--long { font-size: 8.3px; letter-spacing: .03em; }
}

/* Carte : disponibilité discrète pour les produits en stock */
.exo-carte__dispo { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; font-size: 11.5px; font-weight: 600; color: #35e08a; }
.exo-carte__dispo::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #35e08a; box-shadow: 0 0 0 3px rgba(53, 224, 138, .18); }

/* Onglet « Cartes cadeaux » collé au bord gauche de l'écran */
.exo-onglet-cadeau {
	position: fixed; left: 0; top: 55%; z-index: 70;
	display: flex; align-items: center; gap: 8px;
	padding: 14px 9px; border-radius: 0 12px 12px 0;
	background: var(--degrade-jaune); color: var(--sur-jaune);
	writing-mode: vertical-rl; transform: translateY(-50%) rotate(180deg);
	font-weight: 800; font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .45);
	transition: padding .2s;
}
.exo-onglet-cadeau:hover { padding-right: 13px; color: var(--sur-jaune); }
.exo-onglet-cadeau .exo-ico { width: 18px; height: 18px; transform: rotate(90deg); }
@media (max-width: 749px) { .exo-onglet-cadeau { top: auto; bottom: 90px; transform: rotate(180deg); padding: 10px 7px; font-size: 9.5px; } }
.exo-cc-des { margin-right: 4px; }

/* Couleur des promos réglable (texte sur le tag « −X % »). */
.exo-tag-remise, .exo-fiche__libelle-remise { color: var(--sur-promo); }

/* ---------- Motif d'arrière-plan (Réglages › Boutique › Couleurs du site) ----------
   Couche fixe derrière tout le contenu, très légère : les cartes et textes gardent leur fond. */
body[class*="motif-"]::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; }
body.motif-trame::before { background: radial-gradient(rgba(255, 255, 255, .05) 1px, transparent 1.5px) 0 0 / 14px 14px; }
body.motif-hachures::before { background: repeating-linear-gradient(135deg, rgba(255, 255, 255, .03) 0 1px, transparent 1px 14px); }
body.motif-vitesse::before { background: repeating-conic-gradient(from 0deg at 50% -20%, rgba(255, 255, 255, .035) 0deg .5deg, transparent .5deg 3deg); }
body.motif-seigaiha::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.055' stroke-width='1.2'%3E%3Cg id='v'%3E%3Ccircle cx='0' cy='40' r='38'/%3E%3Ccircle cx='0' cy='40' r='29'/%3E%3Ccircle cx='0' cy='40' r='20'/%3E%3Ccircle cx='0' cy='40' r='11'/%3E%3C/g%3E%3Cuse href='%23v' x='80'/%3E%3Cuse href='%23v' x='40' y='-20'/%3E%3C/g%3E%3C/svg%3E");
	background-size: 80px 40px;
}
body.motif-asanoha::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='104'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.045' stroke-width='1'%3E%3Cpath d='M30 0v104M0 17.3l60 69.4M60 17.3L0 86.7M0 17.3h60M0 86.7h60M0 52h60M30 0L0 52l30 52 30-52z'/%3E%3C/g%3E%3C/svg%3E");
	background-size: 60px 104px;
}
/* Un léger voile au centre garde la lecture confortable. */
body[class*="motif-"]::after { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(ellipse 55% 60% at 50% 55%, var(--fond), transparent 75%); opacity: .55; }

/* ==========================================================================
   Mon compte : profil « Collectionneur » (photo, rang, progression, thèmes)
   ========================================================================== */
.exo-profil { --rang: linear-gradient(135deg, #cfd3e6, #8a8fa8); display: grid; gap: 22px; margin-bottom: 30px; padding: 26px; border: 1px solid var(--bordure-carte); border-radius: 20px; background: radial-gradient(ellipse 60% 90% at 0% 0%, rgba(77, 184, 255, .08), transparent 60%), var(--carte); }
.exo-profil--passionne  { --rang: linear-gradient(135deg, #f2f5fa, #8d97a6); }
.exo-profil--emerite    { --rang: linear-gradient(135deg, #f7e08f, #a8842a); }
.exo-profil--legendaire { --rang: linear-gradient(115deg, #ff9de6, #9ee7ff 30%, #b9ffc9 55%, #fff09e 80%, #ff9de6); }
.exo-profil__tete { display: flex; align-items: center; gap: 22px; }
.exo-profil__avatar { display: grid; justify-items: center; gap: 6px; }
.exo-profil__photo { position: relative; width: 104px; height: 104px; border-radius: 50%; padding: 4px; background: var(--rang); cursor: pointer; }
.exo-profil__photo img, .exo-profil__initiales { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: grid; place-items: center; background: var(--surface); border: 3px solid var(--carte); }
.exo-profil__initiales { font-family: var(--f-titre); font-size: 32px; color: var(--texte); }
.exo-profil__changer { position: absolute; inset: 4px; display: grid; place-items: center; border-radius: 50%; background: rgba(0, 0, 0, .55); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: 0; transition: opacity .2s; }
.exo-profil__photo:hover .exo-profil__changer, .exo-profil__photo:focus-within .exo-profil__changer { opacity: 1; }
.exo-profil__photo input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.exo-profil__retirer { background: none; border: 0; color: var(--texte-2); font-size: 11.5px; text-decoration: underline; cursor: pointer; }
.exo-profil__bonjour { margin: 0; font-family: var(--f-titre); font-size: 26px; color: var(--texte); }
.exo-profil__rang { display: inline-flex; align-items: center; gap: 10px; margin: 8px 0 4px; padding: 6px 16px 6px 6px; border-radius: 999px; background: rgba(255, 255, 255, .05); border: 1px solid var(--bordure-carte); font-weight: 800; font-size: 14px; letter-spacing: .04em; }
.exo-profil__embleme, .exo-rang__embleme { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--rang); color: #14121c; font-family: var(--f-jp), "Yu Mincho", serif; font-size: 15px; font-weight: 700; }
.exo-profil__depuis { margin: 0; font-size: 12.5px; color: var(--texte-2); }
.exo-profil__barre { height: 10px; border-radius: 999px; background: var(--surface); overflow: hidden; }
.exo-profil__barre span { display: block; height: 100%; border-radius: inherit; background: var(--rang); background-size: 200% 100%; }
.exo-profil--legendaire .exo-profil__barre span, .exo-profil--legendaire .exo-profil__photo { animation: exoHoloProfil 6s linear infinite; background-size: 300% 100%; }
@keyframes exoHoloProfil { from { background-position: 0% 50%; } to { background-position: 300% 50%; } }
.exo-profil__progression p { margin: 8px 0 0; font-size: 13.5px; color: var(--texte-2); }
.exo-profil__progression strong { color: var(--texte); }
.exo-profil__rangs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.exo-rang { --rang: linear-gradient(135deg, #cfd3e6, #8a8fa8); position: relative; display: grid; align-content: start; gap: 6px; padding: 16px 14px 40px; border: 1px solid var(--bordure); border-radius: 14px; background: var(--surface); opacity: .55; }
.exo-rang--passionne  { --rang: linear-gradient(135deg, #f2f5fa, #8d97a6); }
.exo-rang--emerite    { --rang: linear-gradient(135deg, #f7e08f, #a8842a); }
.exo-rang--legendaire { --rang: linear-gradient(115deg, #ff9de6, #9ee7ff 30%, #b9ffc9 55%, #fff09e 80%, #ff9de6); }
.exo-rang.is-atteint { opacity: 1; }
.exo-rang.is-actuel { border-color: transparent; background: linear-gradient(var(--surface), var(--surface)) padding-box, var(--rang) border-box; }
.exo-rang strong { font-size: 13.5px; line-height: 1.3; }
.exo-rang small { font-size: 11.5px; color: var(--texte-2); }
.exo-rang ul { margin: 4px 0 0; padding-left: 16px; font-size: 12px; line-height: 1.5; color: var(--texte-2); }
.exo-rang__etat { position: absolute; left: 14px; bottom: 12px; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--texte-2); }
.exo-rang.is-actuel .exo-rang__etat { color: var(--jaune); }
.exo-profil__themes h3 { margin: 0 0 4px; font-size: 16px; }
.exo-profil__aide { margin: 0 0 12px; font-size: 12.5px; color: var(--texte-2); }
.exo-themes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.exo-theme { position: relative; display: grid; gap: 4px; padding: 12px; border: 1px solid var(--bordure); border-radius: 14px; background: var(--surface); cursor: pointer; }
.exo-theme input { position: absolute; opacity: 0; pointer-events: none; }
.exo-theme:has(input:checked) { border-color: var(--jaune); box-shadow: 0 0 0 1px var(--jaune); }
.exo-theme:has(input:focus-visible) { outline: 2px solid var(--jaune); outline-offset: 2px; }
.exo-theme.is-verrouille { cursor: not-allowed; opacity: .5; }
.exo-theme__apercu { display: flex; height: 54px; border-radius: 10px; overflow: hidden; margin-bottom: 4px; }
.exo-theme__apercu i { flex: 1; }
.exo-theme__apercu i:nth-child(1) { background: var(--t1); flex: 2; }
.exo-theme__apercu i:nth-child(2) { background: var(--t2); }
.exo-theme__apercu i:nth-child(3) { background: var(--t3); }
.exo-theme--holo .exo-theme__apercu i:nth-child(2), .exo-theme--holo .exo-theme__apercu i:nth-child(3) { background: linear-gradient(115deg, #ff9de6, #9ee7ff, #b9ffc9, #fff09e); }
.exo-theme strong { font-size: 13.5px; }
.exo-theme small { font-size: 11.5px; color: var(--texte-2); }
@media (max-width: 989px) { .exo-profil__rangs, .exo-themes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .exo-profil { padding: 18px; } .exo-profil__tete { flex-direction: column; text-align: center; } .exo-profil__photo { width: 90px; height: 90px; } }

/* Mon compte › Mes adresses (et connexion / inscription) : la grille ignore les « clearfix » de WooCommerce,
   qui créaient des cases vides et décalaient les blocs. */
.woocommerce .col2-set::before, .woocommerce .col2-set::after,
.woocommerce-page .col2-set::before, .woocommerce-page .col2-set::after { display: none !important; content: none !important; }
.woocommerce-account .woocommerce-Addresses { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 16px; }
.woocommerce-Address-title { gap: 12px; flex-wrap: wrap; }
.woocommerce-Address-title h2 { font-size: 17px !important; }
.woocommerce-Address-title a.edit { padding: 6px 12px; border: 1px solid var(--jaune); border-radius: 999px; font-size: 11.5px; font-weight: 700; color: var(--jaune); text-decoration: none; }
.woocommerce-Address-title a.edit:hover { background: var(--jaune); color: var(--sur-jaune); }
@media (max-width: 749px) { .woocommerce-account .woocommerce-Addresses { grid-template-columns: minmax(0, 1fr); } }

/* Rang secret tant qu'il n'est pas atteint : aucune couleur ne doit le trahir. */
.exo-rang--legendaire:not(.is-atteint) { --rang: #06060a; }
.exo-rang--legendaire:not(.is-atteint) .exo-rang__embleme { background: #06060a; color: #4a4a58; box-shadow: inset 0 0 0 1px #24242e; }

.exo-parrainage__code { margin: 0; font-size: 13.5px; color: var(--texte-2); } .exo-parrainage__code strong { padding: 3px 10px; border: 1px dashed var(--jaune); border-radius: 6px; color: var(--jaune); letter-spacing: .12em; }
@media (max-width: 749px) { .exo-onglet-cadeau { font-size: 0; gap: 0; padding: 10px 7px; } .exo-onglet-cadeau .exo-ico { width: 20px; height: 20px; } }
.exo-encart--demande { background: rgba(var(--dem-rgb, 155, 89, 255), .07); border-color: rgba(var(--dem-rgb, 155, 89, 255), .4); font-size: 15px; }

/* ---------- En-tête collant : logo, recherche, icônes et bande du menu restent visibles en descendant ---------- */
:root { --entete-h: 0px; }
html { scroll-padding-top: calc(var(--entete-h) + 12px); } /* Les ancres (#me-prevenir…) ne passent pas sous l'en-tête. */
.exo-entete { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 60; transition: box-shadow .25s; }
.exo-entete__haut { transition: min-height .25s, padding .25s; }
.exo-entete.is-colle { box-shadow: 0 10px 28px rgba(0, 0, 0, .45); }
.exo-entete.is-colle .exo-entete__haut { min-height: 64px; }
.exo-entete .exo-logo { transition: transform .25s; transform-origin: left center; }
.exo-entete.is-colle .exo-logo { transform: scale(.86); }
/* Les éléments collants des pages se placent sous l'en-tête. */
.exo-filtres,
.woocommerce-MyAccount-navigation,
.woocommerce-cart .cart-collaterals,
.woocommerce-checkout form.checkout > #order_review { top: calc(var(--entete-h) + 20px); }
@media (max-width: 1199px) {
	.exo-entete.is-colle .exo-entete__haut { padding-block: 8px; gap: 10px 32px; }
	.exo-entete.is-colle .exo-recherche { height: 38px; }
	/* Menu ouvert sur mobile : il défile dans l'en-tête s'il est plus haut que l'écran. */
	.exo-menu-ouvert .exo-bande { max-height: calc(100vh - var(--entete-haut-h, 120px)); max-height: calc(100dvh - var(--entete-haut-h, 120px)); overflow-y: auto; }
}
/* Sur téléphone, la barre d'administration WordPress défile avec la page : l'en-tête se colle tout en haut. */
@media (max-width: 600px) { .exo-entete { top: 0; } }
@media (prefers-reduced-motion: reduce) { .exo-entete, .exo-entete__haut, .exo-entete .exo-logo { transition: none; } }


/* ---------- Bonus du rang Mythique : cœur des favoris en verre ---------- */
.exo-rang-mythique .exo-fav {
	overflow: hidden;
	background: linear-gradient(145deg, rgba(255, 255, 255, .22), rgba(255, 255, 255, .05) 55%, rgba(255, 255, 255, .12));
	-webkit-backdrop-filter: blur(10px) saturate(170%);
	backdrop-filter: blur(10px) saturate(170%);
	border: 1px solid rgba(255, 255, 255, .45);
	box-shadow: inset 0 1px 1px rgba(255, 255, 255, .6), inset 0 -6px 12px rgba(255, 255, 255, .08), 0 6px 16px rgba(0, 0, 0, .35);
	color: #fff;
}
/* Reflet en haut à gauche, comme une bille de verre. */
.exo-rang-mythique .exo-fav::before {
	content: ""; position: absolute; left: 14%; top: 8%; width: 46%; height: 34%;
	border-radius: 50%; background: radial-gradient(ellipse at 40% 40%, rgba(255, 255, 255, .7), rgba(255, 255, 255, 0) 70%);
	pointer-events: none;
}
/* Liseré irisé au survol et une fois ajouté aux favoris. */
.exo-rang-mythique .exo-fav:hover,
.exo-rang-mythique .exo-fav.is-actif {
	border-color: transparent;
	background: linear-gradient(145deg, rgba(255, 255, 255, .24), rgba(255, 255, 255, .06) 55%, rgba(255, 255, 255, .14)) padding-box,
		linear-gradient(120deg, #9ee7ff, #c8a8ff, #ff9de6, #fff1a8) border-box;
}
.exo-rang-mythique .exo-fav .exo-ico { position: relative; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .45)); }
/* 17/10/2026 : en favori, le cœur reste rouge comme pour tout le monde ; le dégradé irisé ne colore que le liseré
   (avant, le fond translucide le laissait déborder sur tout le bouton). */
.exo-rang-mythique .exo-fav:hover,
.exo-rang-mythique .exo-fav.is-actif {
	background: linear-gradient(145deg, rgba(40, 44, 70, .92), rgba(22, 25, 42, .92)) padding-box,
		linear-gradient(120deg, #9ee7ff, #c8a8ff, #ff9de6, #fff1a8) border-box;
}
.exo-rang-mythique .exo-fav.is-actif, .exo-rang-mythique .exo-fav.is-actif:hover { color: #ff4d4d; }
.exo-rang-mythique .exo-fav--fiche { border-radius: var(--r-sm); position: relative; } /* le reflet reste dans le bouton (sinon il s'étalait sur la photo) */
@media (prefers-reduced-transparency: reduce) {
	.exo-rang-mythique .exo-fav { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(40, 44, 70, .9); }
}
/* ---------- Boutons d'achat en blanc (option `exomori_boutons` = blanc) ----------
   L'accent garde ses autres rôles (précommandes, liens, soulignés) ; au survol, le bouton prend la couleur d'accent. */
.boutons-blancs .exo-btn:not(.exo-btn--contour):not(.exo-btn--ghost):not(.exo-btn--prevenir),
.boutons-blancs.woocommerce a.button, .boutons-blancs .woocommerce a.button, .boutons-blancs .woocommerce button.button, .boutons-blancs .woocommerce input.button,
.boutons-blancs .woocommerce a.button.alt, .boutons-blancs .woocommerce button.button.alt, .boutons-blancs .woocommerce #respond input#submit,
.boutons-blancs .wp-element-button, .boutons-blancs .wc-block-components-button:not(.is-link) {
	background: linear-gradient(180deg, #ffffff, #e4e8f5);
	color: #0b1030;
}
.boutons-blancs .exo-btn:not(.exo-btn--contour):not(.exo-btn--ghost):not(.exo-btn--prevenir):hover,
.boutons-blancs .woocommerce a.button:hover, .boutons-blancs .woocommerce button.button:hover, .boutons-blancs .woocommerce input.button:hover,
.boutons-blancs .woocommerce a.button.alt:hover, .boutons-blancs .woocommerce button.button.alt:hover,
.boutons-blancs .wp-element-button:hover, .boutons-blancs .wc-block-components-button:not(.is-link):hover,
.boutons-blancs .exo-carte .exo-btn:not(.exo-btn--ghost):not(.exo-btn--prevenir):hover {
	background: var(--degrade-jaune);
	color: var(--sur-jaune);
	filter: none;
}
/* Mon compte : mention « Thème complet » sur les thèmes de fidélité. */
.exo-theme__complet { display: block; margin-top: 2px; font-style: normal; font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--texte-2); opacity: .8; }
.exo-cadenas { display: inline-block; vertical-align: -1px; margin-right: 2px; }

/* ==========================================================================
   Mots de passe (exomori-boutique/includes/mot-de-passe.php) + boutons désactivés lisibles
   ========================================================================== */
.exo-mdp { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 8px 0 0; padding: 0; list-style: none; font-size: 12.5px; color: var(--texte-2); }
.exo-mdp li { display: inline-flex; align-items: center; gap: 6px; }
.exo-mdp li::before { content: ""; width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid currentColor; box-sizing: border-box; transition: background .2s, border-color .2s; }
.exo-mdp li.is-ok { color: #35e08a; }
.exo-mdp li.is-ok::before { border-color: #35e08a; background: #35e08a url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3.5 7.2 6 9.6l4.5-5' fill='none' stroke='%230b1030' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% no-repeat; }
.woocommerce-password-strength, .woocommerce-password-hint { display: none !important; }
/* WooCommerce met le texte des boutons désactivés en « inherit » (blanc sur bouton blanc) : on garde le texte lisible. */
.woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled], .woocommerce button.button.disabled,
.woocommerce input.button:disabled, .woocommerce a.button.disabled { color: var(--sur-jaune); opacity: .5; padding: 14px 20px; }
.boutons-blancs .woocommerce button.button:disabled, .boutons-blancs .woocommerce button.button:disabled[disabled], .boutons-blancs .woocommerce button.button.disabled,
.boutons-blancs .woocommerce input.button:disabled, .boutons-blancs .woocommerce a.button.disabled { color: #0b1030; }
/* ==========================================================================
   Pied de page compact (01/10/2026) : garanties en une ligne, 4 colonnes, Trustpilot, grand EXOMORI en filigrane
   ========================================================================== */
.exo-pied { position: relative; overflow: hidden; padding-top: 0; border-top: 1px solid var(--ligne); }
.exo-pied__garanties { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 22px 0; list-style: none; border-bottom: 1px solid var(--bordure); }
.exo-pied .exo-pied__garanties li { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 0; padding: 0 16px; }
.exo-pied__garanties li + li { border-left: 1px solid var(--bordure); }
.exo-pied__garanties .exo-ico { flex: none; width: 24px; height: 24px; color: var(--bleu); }
.exo-pied__garanties span { display: grid; font-size: 13px; line-height: 1.45; color: var(--texte-2); }
.exo-pied__garanties strong { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--texte); }
.exo-pied .exo-pied__cols { grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); justify-content: stretch; gap: 40px; padding: 40px 0 6px; }
.exo-pied__marque .exo-logo { align-items: flex-start; }
.exo-pied__marque .exo-logo__svg { width: 190px; }
.exo-pied .exo-pied__marque p { margin-top: 14px; max-width: 340px; font-size: 14px; }
.exo-pied .exo-cercle { display: grid; gap: 8px; max-width: 360px; margin-top: 20px; }
.exo-cercle__titre { font-size: 11.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--jaune-clair); }
.exo-cercle__titre small { display: block; margin-top: 3px; font-size: 12.5px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--texte-2); }
.exo-cercle__champ { display: flex; }
.exo-pied .exo-pied__titre { margin-bottom: 14px; }
.exo-pied .exo-pied__cols li + li { margin-top: 7px; }
.exo-pied nav a { font-size: 14px; color: var(--texte-2); }
.exo-pied__droite { display: grid; align-content: start; gap: 26px; }
.exo-trustpilot { display: inline-grid; justify-self: start; justify-items: start; gap: 5px; padding: 12px 14px; border: 1px solid var(--bordure); border-radius: var(--r-md); background: var(--surface); color: var(--texte); text-decoration: none; transition: border-color .2s; }
.exo-trustpilot:hover { border-color: #00b67a; color: var(--texte); }
.exo-trustpilot__txt { font-size: 12px; color: var(--texte-2); }
.exo-tp { display: inline-flex; align-items: center; gap: 6px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 17px; font-weight: 700; letter-spacing: -.01em; line-height: 1; color: var(--texte); }
.exo-tp__etoile { display: block; width: 20px; height: 19px; flex: none; }
a.exo-info--tp { color: inherit; }
.exo-info--tp .exo-tp { gap: 4px; font-size: 12.5px; color: inherit; }
.exo-info--tp .exo-tp__etoile { width: 14px; height: 13px; }
.exo-info--tp:hover .exo-tp { color: #00b67a; }
/* Grand « EXOMORI » en filigrane, posé sur le bas de page */
.exo-pied__geant { margin: 4px 0 -.2em; overflow: hidden; text-align: center; white-space: nowrap; pointer-events: none; user-select: none;
	font-family: "Chakra Petch", var(--f-titre); font-weight: 700; font-size: clamp(64px, 15.5vw, 250px); line-height: .9; letter-spacing: .05em;
	color: transparent; -webkit-text-stroke: 1px color-mix(in srgb, var(--texte) 16%, transparent);
	background: linear-gradient(180deg, color-mix(in srgb, var(--jaune) 16%, transparent), transparent 80%); -webkit-background-clip: text; background-clip: text; }
.exo-pied .exo-pied__bas { position: relative; grid-template-columns: 1fr auto; padding-block: 16px; }
@media (max-width: 1199px) {
	.exo-pied .exo-pied__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.exo-pied__marque { grid-column: 1 / -1; }
	.exo-pied__garanties { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 16px; }
	.exo-pied__garanties li:nth-child(3) { border-left: 0; }
	.exo-pied .exo-pied__garanties li { justify-content: flex-start; }
}
@media (max-width: 749px) {
	.exo-pied .exo-pied__cols { grid-template-columns: 1fr 1fr; gap: 28px 20px; padding-top: 30px; }
	.exo-pied__droite { grid-column: 1 / -1; grid-template-columns: 1fr auto; align-items: start; }
	.exo-pied__garanties { grid-template-columns: 1fr; }
	.exo-pied__garanties li + li { border-left: 0; }
	.exo-pied .exo-pied__garanties li { padding: 0; }
	.exo-pied .exo-pied__bas { grid-template-columns: 1fr; }
}

/* Logo : toujours en Chakra Petch, quelle que soit la palette. */
.exo-logo .exo-logo__svg text { font-family: "Chakra Petch", "Montserrat", sans-serif; }
.exo-logo .exo-logo__phrase { font-family: var(--f-texte); }
/* Filigrane posé derrière les colonnes : il n'ajoute aucune hauteur au bas de page. */
.exo-pied > .exo-wrap { position: relative; z-index: 1; }
.exo-pied .exo-pied__geant { position: absolute; left: 0; right: 0; bottom: 34px; z-index: 0; margin: 0; font-size: clamp(60px, 13vw, 210px); }

/* Onglet « Boutique française · Offerte dès 80 € · Trustpilot » centré sous Connexion / Favoris / Panier (ordinateur).
   La position exacte est calculée par exomori.js (--infos-centre) ; à défaut, centrage approché. */
@media (min-width: 1200px) {
	.exo-bande__infos { right: var(--infos-centre, calc(var(--marge) + 110px)); transform: translateX(50%); padding: 0 12px; font-size: 11px; }
	.exo-bande__infos.is-au-bord { right: 0; transform: none; }
	.exo-info { gap: 6px; }
	.exo-info + .exo-info { margin-left: 9px; padding-left: 9px; }
	.exo-info .exo-ico { width: 14px; height: 14px; }
	.exo-drapeau { width: 15px; height: 10px; }
	.exo-info--tp .exo-tp { font-size: 12px; }
}

/* Garanties du bas de page : plus d'air et un texte plus grand. */
.exo-pied__garanties { padding: 30px 0; row-gap: 22px; }
.exo-pied .exo-pied__garanties li { gap: 14px; padding: 4px 22px; }
.exo-pied__garanties .exo-ico { width: 28px; height: 28px; }
.exo-pied__garanties span { gap: 3px; font-size: 14.5px; }
.exo-pied__garanties strong { font-size: 12.5px; letter-spacing: .12em; }
@media (min-width: 1200px) {
	.exo-bande__infos { padding: 0 10px; font-size: 10.5px; }
	.exo-info { gap: 5px; }
	.exo-info + .exo-info { margin-left: 8px; padding-left: 8px; }
	.exo-info .exo-ico { width: 13px; height: 13px; }
	.exo-drapeau { width: 14px; height: 9px; }
	.exo-info--tp .exo-tp { font-size: 11px; }
	.exo-info--tp .exo-tp__etoile { width: 12px; height: 11px; }
	.exo-entete__haut > .exo-icones { gap: 46px; }
}

/* Menu de la bande (ordinateur) : texte plus grand, même hauteur de bande (on retire en marge ce qu'on ajoute en texte). */
@media (min-width: 1441px) { .exo-menu__liste > li > a { font-size: 15px; padding: 12.8px 13px; letter-spacing: .09em; } }
@media (min-width: 1321px) and (max-width: 1440px) { .exo-menu__liste > li > a { font-size: 14.5px; padding: 13.2px 11px; letter-spacing: .07em; } }
@media (min-width: 1200px) and (max-width: 1320px) { .exo-menu__liste > li > a { font-size: 13.5px; padding: 14px 8px; letter-spacing: .05em; } }
@media (min-width: 1200px) { .exo-menu__liste > li:first-child > a { padding-left: 0; } .exo-menu__liste .exo-promo > a { margin-left: 8px; } }

/* ==========================================================================
   En-tête des catégories (woocommerce/loop/header.php) : grand titre, barre lumineuse, nom en filigrane géant
   ========================================================================== */
.exo-cat-tete {
	position: relative; overflow: hidden; margin: 4px 0 30px; padding: 54px 20px 46px; text-align: center;
	border: 1px solid var(--bordure); border-radius: 18px;
	background:
		radial-gradient(ellipse 55% 130% at 50% -10%, color-mix(in srgb, var(--jaune) 16%, transparent), transparent 70%),
		linear-gradient(180deg, color-mix(in srgb, var(--carte) 85%, transparent), transparent);
}
.exo-cat-tete__fond {
	position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); pointer-events: none; user-select: none;
	font-family: var(--f-titre); font-weight: 700; font-size: clamp(70px, 12vw, 190px); line-height: 1; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap;
	color: transparent; -webkit-text-stroke: 1px color-mix(in srgb, var(--texte) 11%, transparent);
}
.exo-wc h1.exo-cat-tete__titre { position: relative; font-size: clamp(34px, 4.2vw, 60px); letter-spacing: .08em; line-height: 1.1; }
.exo-cat-tete__titre::after { content: ""; display: block; width: 96px; height: 4px; margin: 16px auto 0; border-radius: 2px; background: linear-gradient(90deg, var(--jaune), var(--jaune-clair)); box-shadow: 0 0 14px color-mix(in srgb, var(--jaune) 50%, transparent); }
.exo-cat-tete > :not(.exo-cat-tete__fond) { position: relative; }
.exo-cat-tete .exo-univers-pastilles { margin-top: 22px; }
/* Description de la catégorie, en bas de page */
.exo-cat-apropos { max-width: 820px; margin: 56px auto 10px; padding-top: 26px; border-top: 1px solid var(--bordure); text-align: center; }
.exo-cat-apropos__titre { margin: 0 0 10px; font-family: var(--f-texte); font-size: 12px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--texte-2); }
.exo-cat-apropos__texte, .exo-cat-apropos__texte p { margin: 0; font-size: 14px; line-height: 1.7; color: var(--texte-2); }
.exo-cat-apropos__texte p + p { margin-top: 10px; }
@media (max-width: 749px) {
	.exo-cat-tete { padding: 38px 14px 32px; border-radius: 14px; }
}
/* Le même en-tête sur les pages « vitrines » (page.php : Univers, Promotions, Vos collections, Mes favoris). */
.exo-cat-tete .exo-cat-tete__titre { margin: 0; font-family: var(--f-titre); font-size: clamp(34px, 4.2vw, 60px); font-weight: 400; letter-spacing: .08em; line-height: 1.1; text-transform: uppercase; color: var(--titre); }
.exo-page--vitrine .exo-ariane { margin-top: 24px; }

/* ==========================================================================
   Page Contact (exomori-boutique/includes/contact.php) : grand titre à gauche, formulaire à droite
   ========================================================================== */
.exo-ariane--contact { margin-top: 24px; }
.exo-contact { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: start; gap: 56px; padding: 20px 0 70px; }
.exo-contact__sur { margin: 0 0 8px; font-size: 12px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--jaune-clair); }
.exo-contact__titre { margin: 0 0 20px; font-family: var(--f-titre); font-size: clamp(38px, 4.6vw, 66px); font-weight: 400; line-height: 1.02; text-transform: uppercase; color: var(--titre); }
.exo-contact__titre span { color: transparent; -webkit-text-stroke: 1.5px var(--titre); }
.exo-contact__intro > p { max-width: 46ch; font-size: 16px; line-height: 1.7; color: var(--texte-2); }
.exo-contact__infos { display: grid; gap: 14px; margin: 28px 0 0; padding: 22px 0 0; list-style: none; border-top: 1px solid var(--bordure); }
.exo-contact__infos li { display: grid; gap: 2px; font-size: 14px; color: var(--texte-2); }
.exo-contact__infos strong { font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--texte); }
.exo-contact__form { display: grid; gap: 16px; padding: 28px; border: 1px solid var(--bordure); border-radius: 18px; background: var(--carte); }
.exo-contact__ligne { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.exo-contact__form label { display: grid; gap: 6px; font-size: 13px; color: var(--texte-2); }
.exo-contact__form small { color: var(--texte-2); opacity: .8; }
.exo-contact__form .required { color: var(--jaune); }
.exo-contact__form input[type="text"], .exo-contact__form input[type="email"], .exo-contact__form select, .exo-contact__form textarea {
	width: 100%; padding: 12px 14px; border: 1px solid var(--bordure); border-radius: var(--r-sm); background: var(--surface); color: var(--texte); font: inherit; font-size: 14.5px;
}
.exo-contact__form select { height: auto; }
.exo-contact__form textarea { resize: vertical; min-height: 140px; }
.exo-contact__form input:focus, .exo-contact__form select:focus, .exo-contact__form textarea:focus { outline: none; border-color: var(--jaune); box-shadow: 0 0 0 3px color-mix(in srgb, var(--jaune) 20%, transparent); }
.exo-contact__form label.exo-contact__accord { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; line-height: 1.5; }
.exo-contact__accord input { margin-top: 3px; accent-color: var(--jaune); }
.exo-contact__piege { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.exo-contact__form .exo-btn { justify-self: start; width: auto; }
.exo-contact__ok, .exo-contact__erreur { margin: 0; padding: 12px 14px; border-radius: 10px; font-size: 14px; }
.exo-contact__ok { border: 1px solid rgba(53, 224, 138, .45); background: rgba(53, 224, 138, .08); color: var(--texte); }
.exo-contact__erreur { border: 1px solid color-mix(in srgb, var(--promo) 55%, transparent); background: color-mix(in srgb, var(--promo) 10%, transparent); color: var(--texte); }
@media (max-width: 989px) { .exo-contact { grid-template-columns: minmax(0, 1fr); gap: 30px; } }
@media (max-width: 600px) { .exo-contact__ligne { grid-template-columns: 1fr; } .exo-contact__form { padding: 20px 16px; } }
.exo-contact__form label:not(.exo-contact__accord) { display: block; }
.exo-contact__form label:not(.exo-contact__accord) > input, .exo-contact__form label > select, .exo-contact__form label > textarea { display: block; margin-top: 6px; }

/* « J'aime » sur les photos de collection */
.exo-aime { display: inline-flex; align-items: center; gap: 6px; justify-self: start; padding: 5px 11px 5px 9px; border: 1px solid var(--bordure); border-radius: 999px; background: var(--surface); color: var(--texte-2); font: 600 12.5px/1 var(--f-texte); cursor: pointer; transition: color .2s, border-color .2s; }
.exo-aime svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linejoin: round; }
.exo-aime:hover { color: #ff4d6d; border-color: rgba(255, 77, 109, .5); }
.exo-aime.is-aime { color: #ff4d6d; border-color: rgba(255, 77, 109, .55); }
.exo-aime.is-aime svg { fill: currentColor; animation: exo-battement .35s ease-out; }
.exo-aime--pola { position: absolute; right: 10px; bottom: 6px; padding: 3px 8px 3px 7px; background: #ffffff; border-color: #e3e5ee; color: #6b7090; font-size: 11.5px; }
.exo-collections-tri { display: flex; gap: 8px; margin: 0 0 18px; }
.exo-collections-tri a { padding: 7px 14px; border: 1px solid var(--bordure); border-radius: 999px; font-size: 13px; font-weight: 600; color: var(--texte-2); text-decoration: none; }
.exo-collections-tri a.is-actif { border-color: var(--texte); background: var(--texte); color: var(--fond); }

/* ==========================================================================
   Liste de souhaits partagée + cadeau (exomori-boutique/includes/liste-cadeaux.php)
   ========================================================================== */
.exo-partage { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: center; gap: 18px 36px; margin: 0 0 30px; padding: 22px 24px; border: 1px solid var(--bordure-carte); border-radius: 16px; background: radial-gradient(ellipse 60% 120% at 0% 0%, color-mix(in srgb, var(--jaune) 12%, transparent), transparent 70%), var(--carte); }
.exo-partage h2 { margin: 0 0 6px; font-family: var(--f-titre); font-size: 22px; font-weight: 400; color: var(--titre); }
.exo-partage p { margin: 0; font-size: 14px; color: var(--texte-2); }
.exo-partage__form { display: grid; gap: 12px; }
.exo-partage__lien { display: flex; gap: 8px; }
.exo-partage__lien input { flex: 1; min-width: 0; padding: 10px 12px; border: 1px dashed var(--jaune); border-radius: var(--r-sm); background: var(--surface); color: var(--texte); font-size: 13px; }
.exo-partage__lien .exo-btn { width: auto; min-height: 0; padding: 0 16px; }
.exo-partage__case { display: flex; align-items: flex-start; gap: 10px; font-size: 13.5px; color: var(--texte); cursor: pointer; }
.exo-partage__case input { margin-top: 3px; accent-color: var(--jaune); }
.exo-partage__case small { display: block; color: var(--texte-2); }
.exo-partage__note { font-size: 12.5px !important; }
.exo-partage__arreter { justify-self: start; padding: 0; border: 0; background: none; color: var(--texte-2); font-size: 12px; text-decoration: underline; cursor: pointer; }
.exo-partage__form > .exo-btn { justify-self: start; width: auto; }
/* Page publique de la liste */
.exo-liste__tete { max-width: 680px; margin: 0 auto 28px; text-align: center; }
.exo-liste__sur { margin: 0 0 8px; font-size: 12px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--jaune-clair); }
.exo-liste__titre { margin: 0 0 12px; font-family: var(--f-titre); font-size: clamp(28px, 3.4vw, 46px); font-weight: 400; text-transform: uppercase; color: var(--titre); }
.exo-liste__tete p:last-child { color: var(--texte-2); }
.exo-liste__produits { display: grid; gap: 12px; max-width: 860px; margin: 0 auto; padding: 0; list-style: none; }
.exo-liste__produit { display: grid; grid-template-columns: 84px minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 12px 16px 12px 12px; border: 1px solid var(--bordure); border-radius: 14px; background: var(--carte); }
.exo-liste__img img { width: 84px; height: 84px; object-fit: cover; object-position: 50% 0; border-radius: 10px; }
.exo-liste__txt { display: grid; gap: 4px; }
.exo-liste__nom { font-family: var(--f-carte); font-size: 15.5px; font-weight: 700; color: var(--texte); text-decoration: none; }
.exo-liste__prix { font-weight: 700; color: var(--texte); }
.exo-liste__prix del { font-weight: 400; color: var(--texte-2); }
.exo-liste__prix ins { text-decoration: none; }
.exo-liste__produit .exo-btn { width: auto; }
.exo-liste__indispo { font-size: 12.5px; color: var(--texte-2); }
.exo-liste__tete .exo-liste__cc { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 12px; margin-top: 16px; color: var(--texte-2); }
.exo-liste__cc .exo-btn { width: auto; }
.exo-liste__cc small { flex-basis: 100%; font-size: 12px; }
.exo-liste__produit.is-offert { opacity: .7; }
.exo-liste__offert { padding: 6px 12px; border: 1px solid var(--bordure); border-radius: 999px; white-space: nowrap; }
.exo-cc__liste { margin: 0; padding: 12px 14px; border: 1px solid var(--bordure); border-radius: 12px; background: var(--surface, rgba(255,255,255,.04)); }
/* Commande : où livrer le cadeau */
.exo-cadeau { margin: 26px 0 0; padding: 20px; border: 1px solid var(--jaune); border-radius: 14px; background: color-mix(in srgb, var(--jaune) 6%, var(--carte)); }
.exo-cadeau h3 { margin-top: 0 !important; }
.exo-cadeau__choix { display: grid; gap: 10px; margin: 0 0 14px; padding: 0; border: 0; }
.exo-cadeau__choix label { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border: 1px solid var(--bordure); border-radius: 10px; background: var(--surface); color: var(--texte-2); font-size: 14px; cursor: pointer; }
.exo-cadeau__choix label:has(input:checked) { border-color: var(--jaune); color: var(--texte); }
.exo-cadeau__choix input { margin-top: 3px; accent-color: var(--jaune); }
.exo-cadeau__choix strong { color: var(--texte); }
.exo-cadeau__note { margin: 0; font-size: 13px; color: var(--texte-2); }
.exo-cadeau__mot { display: grid; gap: 6px; font-size: 13px; color: var(--texte-2); }
.exo-cadeau__mot textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--bordure); border-radius: var(--r-sm); background: var(--surface); color: var(--texte); font: inherit; }
@media (max-width: 749px) {
	.exo-partage { grid-template-columns: 1fr; }
	.exo-liste__produit { grid-template-columns: 64px minmax(0, 1fr); }
	.exo-liste__img img { width: 64px; height: 64px; }
	.exo-liste__produit .exo-btn, .exo-liste__indispo { grid-column: 1 / -1; justify-self: stretch; text-align: center; }
}

/* ---------- Filtres : choix à 0 produit, grisés (toujours affichés pour garder les mêmes choix partout) ---------- */
.exo-filtre__choix.is-vide { opacity: .42; }
.exo-filtre__choix.is-vide:hover { color: var(--texte-2); }

/* ---------- Liseré des cartes produit : couleur du bandeau (essai) ----------
   Liseré fin et discret au repos, plus franc avec une petite lueur au survol. En stock : liseré neutre. */
.exo-carte--precommande { --lis: var(--pre-b); }
.exo-carte--nouveau     { --lis: var(--nouv-b); }
.exo-carte--sur-demande { --lis: var(--dem-b); }
.exo-carte--epuise      { --lis: #5a6080; }
.exo-carte--precommande,
.exo-carte--nouveau,
.exo-carte--sur-demande,
.exo-carte--epuise {
	border-color: color-mix(in srgb, var(--lis) 75%, var(--bordure-carte));
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--lis) 14%, transparent), 0 0 12px -4px color-mix(in srgb, var(--lis) 35%, transparent);
}
.exo-main ul.products li.product.exo-carte.type-product[class*="exo-carte--"]:hover,
.exo-carte[class*="exo-carte--"]:hover {
	border-color: var(--lis, var(--jaune));
	box-shadow: 0 14px 30px rgba(0, 0, 0, .5), 0 0 18px color-mix(in srgb, var(--lis, var(--jaune)) 28%, transparent);
}
body.theme-complet .exo-carte[class*="exo-carte--"] { border-color: var(--bordure-carte); box-shadow: none; }

/* ---------- Accès au contact : fiche produit + garantie « Service client » du pied de page ---------- */
.exo-fiche__question a { color: var(--jaune); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.exo-fiche__question a:hover { color: var(--texte); }
.exo-pied__garanties li > a { display: flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.exo-pied__garanties li > a:hover span { color: var(--jaune); }
.exo-pied__garanties li > a:hover strong { color: var(--texte); }
.exo-contact__produit { display: flex; align-items: center; gap: 12px; margin: 0; padding: 10px 12px; border: 1px solid var(--bordure); border-radius: var(--r-md); background: var(--surface, #1d2238); }
.exo-contact__produit img { flex: none; width: 48px; height: 48px; object-fit: cover; object-position: 50% 0; border-radius: 6px; }
.exo-contact__produit span { display: grid; font-size: 12px; color: var(--texte-2); }
.exo-contact__produit strong { font-size: 14.5px; color: var(--texte); }
/* Liseré v2 : allumé en permanence (couleur pleine + légère lueur), en stock en vert. */
.exo-carte--en-stock { --lis: #35e08a; }
.exo-carte--precommande,
.exo-carte--nouveau,
.exo-carte--sur-demande,
.exo-carte--epuise,
.exo-carte--en-stock {
	border-color: var(--lis);
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--lis) 30%, transparent), 0 0 16px -3px color-mix(in srgb, var(--lis) 45%, transparent);
}
.exo-main ul.products li.product.exo-carte.type-product[class*="exo-carte--"]:hover,
.exo-carte[class*="exo-carte--"]:hover {
	box-shadow: 0 14px 30px rgba(0, 0, 0, .5), 0 0 0 1px color-mix(in srgb, var(--lis, var(--jaune)) 45%, transparent), 0 0 24px color-mix(in srgb, var(--lis, var(--jaune)) 40%, transparent);
}

/* ==========================================================================
   Mon compte › Mes commandes (woocommerce/myaccount/orders.php)
   ========================================================================== */
.exo-cmds { display: grid; gap: 14px; }
.exo-cmd { --st: var(--texte-2); border: 1px solid var(--bordure); border-left: 3px solid var(--st); border-radius: var(--r-md); background: var(--carte); overflow: hidden; }
.exo-cmd--preparation { --st: var(--bleu, #4db8ff); }
.exo-cmd--preco { --st: var(--pre-b); }
.exo-cmd--expediee { --st: #35e08a; }
.exo-cmd--attente { --st: #ffb547; }
.exo-cmd--annulee { --st: #6b7088; }
.exo-cmd__tete { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; padding: 14px 18px 0; }
.exo-cmd__num { font-weight: 700; font-size: 15.5px; color: var(--texte) !important; text-decoration: none; }
.exo-cmd__date { font-size: 13.5px; color: var(--texte-2); }
.exo-cmd__statut { margin-left: auto; display: inline-flex; align-items: center; gap: 7px; padding: 4px 11px; border-radius: 99px; background: color-mix(in srgb, var(--st) 14%, transparent); color: var(--st); font-size: 12.5px; font-weight: 600; }
.exo-cmd__statut::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.exo-cmd__corps { display: flex; align-items: center; gap: 18px; padding: 14px 18px; color: inherit !important; text-decoration: none !important; }
.exo-cmd__photos { flex: none; display: flex; gap: 8px; }
.exo-cmd__photo { position: relative; display: block; width: 64px; height: 64px; border-radius: var(--r-sm); overflow: hidden; border: 1px solid var(--bordure-carte); background: #fff; }
.exo-cmd__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 0; display: block; }
.exo-cmd__photo b { position: absolute; right: 3px; bottom: 3px; padding: 1px 5px; border-radius: 99px; background: rgba(8, 10, 20, .85); color: #fff; font-size: 11px; }
.exo-cmd__plus { display: grid; place-items: center; width: 64px; height: 64px; border-radius: var(--r-sm); border: 1px dashed var(--bordure); color: var(--texte-2); font-weight: 700; }
.exo-cmd__resume { min-width: 0; display: grid; gap: 4px; }
.exo-cmd__noms { font-family: var(--f-carte); font-weight: 700; font-size: 15px; color: var(--texte); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.exo-cmd__total { font-size: 13.5px; color: var(--texte-2); }
.exo-cmd__total strong { color: var(--texte); font-size: 15px; }
.exo-cmd__corps:hover .exo-cmd__noms { color: var(--jaune-clair); }
.exo-cmd__actions { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 18px 14px; border-top: 1px solid var(--bordure); background: color-mix(in srgb, var(--surface) 45%, transparent); }
.exo-cmd__actions .exo-btn { min-height: 38px; padding: 8px 16px; font-size: 11px; }
.exo-cmds__pages { display: flex; justify-content: space-between; gap: 10px; margin-top: 18px; }
.exo-cmds-vide { padding: 28px; border: 1px dashed var(--bordure); border-radius: var(--r-md); text-align: center; color: var(--texte-2); }
@media (max-width: 749px) {
	.exo-cmd__tete { padding: 12px 14px 0; }
	.exo-cmd__statut { margin-left: 0; }
	.exo-cmd__corps { flex-direction: column; align-items: flex-start; gap: 12px; padding: 12px 14px; }
	.exo-cmd__photo, .exo-cmd__plus { width: 56px; height: 56px; }
	.exo-cmd__noms { white-space: normal; }
	.exo-cmd__actions { padding: 12px 14px; }
	.exo-cmd__actions .exo-btn { flex: 1 1 auto; }
}

/* Détail d'une commande : photo de chaque article */
.woocommerce-table--order-details td.product-name { line-height: 1.4; }
.woocommerce-table--order-details td.product-name::after { content: ""; display: block; clear: both; }
.exo-ligne-img { float: left; display: block; width: 60px; height: 60px; margin: 0 14px 4px 0; border-radius: var(--r-sm); overflow: hidden; border: 1px solid var(--bordure-carte); background: #fff; }
.exo-ligne-img img { width: 100% !important; height: 100% !important; object-fit: cover; object-position: 50% 0; display: block; margin: 0 !important; }
.exo-ligne-nom a, .exo-ligne-nom { font-weight: 600; color: var(--texte); }

/* ==========================================================================
   Aide & FAQ ([exomori_faq])
   ========================================================================== */
.exo-faq { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 48px; align-items: start; max-width: 1100px; margin: 0 auto; }
.exo-faq__cote { position: sticky; top: calc(var(--entete-h, 0px) + 24px); display: grid; gap: 18px; }
.exo-faq__recherche { position: relative; display: block; }
.exo-faq__recherche svg { position: absolute; left: 14px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); color: var(--texte-2); }
.exo-faq__recherche input { width: 100%; height: 46px; padding: 0 14px 0 42px; border: 1px solid var(--bordure); border-radius: 99px; background: var(--surface); color: var(--texte); font: 500 14px var(--f-texte); }
.exo-faq__recherche input:focus { outline: none; border-color: var(--jaune); box-shadow: 0 0 0 3px color-mix(in srgb, var(--jaune) 20%, transparent); }
.exo-faq__sommaire { display: grid; border-left: 2px solid var(--bordure); }
.exo-faq__sommaire a { display: flex; justify-content: space-between; gap: 10px; margin-left: -2px; padding: 9px 14px; border-left: 2px solid transparent; color: var(--texte-2); font-size: 14.5px; font-weight: 500; text-decoration: none; }
.exo-faq__sommaire a:hover { color: var(--texte); border-left-color: var(--jaune); }
.exo-faq__sommaire small { font-size: 12px; opacity: .6; }
.exo-faq__rubrique { scroll-margin-top: calc(var(--entete-h, 0px) + 24px); margin: 0 0 40px; }
.exo-faq__rubrique h2 { margin: 0 0 12px; padding-bottom: 12px; border-bottom: 1px solid var(--bordure); font: 400 26px/1.2 var(--f-titre); color: var(--texte); }
.exo-faq__q { border-bottom: 1px solid var(--bordure); }
.exo-faq__q summary { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 18px 4px; list-style: none; cursor: pointer; font-size: 16.5px; font-weight: 600; color: var(--texte); }
.exo-faq__q summary::-webkit-details-marker { display: none; }
.exo-faq__q summary:hover { color: var(--jaune-clair); }
.exo-faq__plus { position: relative; flex: none; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--bordure); transition: transform .25s, background .25s; }
.exo-faq__plus::before, .exo-faq__plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 11px; height: 2px; background: currentColor; transform: translate(-50%, -50%); }
.exo-faq__plus::after { transform: translate(-50%, -50%) rotate(90deg); transition: opacity .2s; }
.exo-faq__q[open] .exo-faq__plus { background: var(--jaune); border-color: var(--jaune); color: var(--sur-jaune); transform: rotate(180deg); }
.exo-faq__q[open] .exo-faq__plus::after { opacity: 0; }
.exo-faq__r { padding: 0 48px 20px 4px; color: var(--texte-2); font-size: 15px; line-height: 1.7; }
.exo-faq__r p { margin: 0 0 10px; }
.exo-faq__r a { color: var(--jaune-clair); }
.exo-faq__r strong { color: var(--texte); }
.exo-faq__aucun { padding: 20px 0; color: var(--texte-2); }
.exo-faq__contact { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 10px; padding: 24px 28px; border-radius: var(--r-md); background: linear-gradient(110deg, color-mix(in srgb, var(--jaune) 16%, var(--carte)), var(--carte) 65%); border: 1px solid color-mix(in srgb, var(--jaune) 35%, var(--bordure)); }
.exo-faq__contact div { display: grid; gap: 4px; }
.exo-faq__contact strong { font-size: 18px; color: var(--texte); }
.exo-faq__contact span { color: var(--texte-2); font-size: 14.5px; }
@media (max-width: 989px) {
	.exo-faq { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.exo-faq__cote { position: static; }
	.exo-faq__sommaire { display: flex; flex-wrap: wrap; gap: 8px; border: 0; }
	.exo-faq__sommaire a { margin: 0; padding: 7px 13px; border: 1px solid var(--bordure); border-radius: 99px; font-size: 13.5px; }
	.exo-faq__r { padding-right: 4px; }
	.exo-faq__contact { flex-direction: column; align-items: flex-start; }
}
.woocommerce-table--order-details td.product-name .wc-item-meta { margin: 4px 0 0 74px; padding: 0; list-style: none; font-size: 12.5px; color: var(--texte-2); }
.woocommerce-table--order-details td.product-name .wc-item-meta li { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; }
.woocommerce-table--order-details td.product-name .wc-item-meta p { display: inline; margin: 0; }
/* FAQ : une couleur par rubrique (--c) pour se repérer d'un coup d'œil */
.exo-faq__rubrique h2 { display: flex; align-items: center; gap: 12px; color: var(--c, var(--texte)); border-bottom-color: color-mix(in srgb, var(--c, var(--bordure)) 45%, var(--bordure)); }
.exo-faq__rubrique h2::before { content: ""; width: 12px; height: 12px; border-radius: 3px; background: var(--c); box-shadow: 0 0 12px color-mix(in srgb, var(--c) 60%, transparent); transform: rotate(45deg); }
.exo-faq__rubrique .exo-faq__q[open] .exo-faq__plus { background: var(--c, var(--jaune)); border-color: var(--c, var(--jaune)); color: #0d0f1a; }
.exo-faq__rubrique .exo-faq__q summary:hover { color: var(--c, var(--jaune-clair)); }
.exo-faq__rubrique .exo-faq__q[open] { box-shadow: inset 3px 0 0 var(--c); }
.exo-faq__rubrique .exo-faq__q[open] summary, .exo-faq__rubrique .exo-faq__q[open] .exo-faq__r { padding-left: 16px; }
.exo-faq__sommaire a::before { content: ""; flex: none; align-self: center; width: 8px; height: 8px; margin-right: -2px; border-radius: 2px; background: var(--c); transform: rotate(45deg); }
.exo-faq__sommaire a { justify-content: flex-start; align-items: center; }
.exo-faq__sommaire a small { margin-left: auto; }
.exo-faq__sommaire a:hover { border-left-color: var(--c, var(--jaune)); color: var(--c, var(--texte)); }

/* ---------- Bas de page : réseaux sociaux (en bas à droite) + colonnes de liens remontées ---------- */
.exo-pied .exo-pied__bas { grid-template-columns: 1fr auto auto; align-items: center; gap: 28px; }
.exo-reseaux { display: flex; gap: 6px; margin: 0; padding: 0 0 0 26px; list-style: none; border-left: 1px solid var(--bordure); }
.exo-reseaux li { margin: 0; }
.exo-reseaux a, .exo-reseaux span { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--bordure); color: var(--texte); transition: color .2s, border-color .2s, background .2s, transform .2s; }
.exo-reseaux a:hover { color: var(--sur-jaune); background: var(--jaune); border-color: var(--jaune); transform: translateY(-2px); }
.exo-reseaux .is-bientot { opacity: .45; cursor: default; }
.exo-reseaux svg { width: 18px; height: 18px; }
@media (min-width: 990px) {
	.exo-pied .exo-pied__cols > nav, .exo-pied .exo-pied__droite { margin-top: -14px; }
	.exo-pied .exo-pied__cols li + li { margin-top: 5px; }
}
@media (max-width: 989px) {
	.exo-pied .exo-pied__bas { grid-template-columns: 1fr; justify-items: center; gap: 14px; }
	.exo-reseaux { padding: 0; border: 0; }
}
/* Réseaux sociaux v2 : colonne verticale à l'extrême droite du bas de page, aux couleurs de chaque réseau. */
@media (min-width: 990px) {
	.exo-pied .exo-pied__cols { grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)) auto; }
	.exo-pied .exo-pied__cols > .exo-reseaux { flex-direction: column; justify-self: end; margin-top: -14px; padding: 0 0 0 22px; border-left: 1px solid var(--bordure); }
}
.exo-pied .exo-pied__cols > .exo-reseaux { position: relative; z-index: 1; gap: 10px; }
.exo-reseaux a, .exo-reseaux span { width: 40px; height: 40px; border: 0; color: #fff; box-shadow: 0 6px 16px -6px rgba(0, 0, 0, .6); }
.exo-reseaux .is-bientot { opacity: 1; }
.exo-reseaux svg { width: 20px; height: 20px; }
.exo-reseaux__instagram a, .exo-reseaux__instagram span { background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%); }
.exo-reseaux__tiktok a, .exo-reseaux__tiktok span { background: #010101; box-shadow: inset 0 0 0 1px #2b2b2b, 0 6px 16px -6px rgba(0, 0, 0, .6); }
.exo-reseaux__tiktok svg { filter: drop-shadow(-1.2px -1px 0 #25f4ee) drop-shadow(1.2px 1px 0 #fe2c55); }
.exo-reseaux__facebook a, .exo-reseaux__facebook span { background: #1877f2; }
.exo-reseaux__x a, .exo-reseaux__x span { background: #000; box-shadow: inset 0 0 0 1px #333, 0 6px 16px -6px rgba(0, 0, 0, .6); }
.exo-reseaux a:hover { color: #fff; background-color: inherit; transform: translateY(-2px) scale(1.06); }
.exo-reseaux__facebook a:hover { background: #1877f2; }
.exo-reseaux__tiktok a:hover, .exo-reseaux__x a:hover { background: #000; }
@media (max-width: 989px) {
	.exo-pied .exo-pied__cols > .exo-reseaux { grid-column: 1 / -1; justify-content: center; padding: 6px 0 0; border: 0; }
}

/* Précommandes : couleur fixe (Réglages › Couleurs du site › Couleur Précommande) ; par défaut, l'accent. */
:root { --pre-a: var(--jaune-clair); --pre-b: var(--jaune); --sur-pre: var(--sur-jaune); --pre-texte: var(--jaune-clair); }
body.theme-complet { --pre-a: var(--jaune-clair); --pre-b: var(--jaune); --sur-pre: var(--sur-jaune); --pre-texte: var(--jaune-clair); }

/* ---------- Page de paiement : associations soutenues (exomori-boutique/includes/associations.php) ---------- */
.exo-asso { margin: 0 0 18px; padding: 14px 16px; border: 1px solid color-mix(in srgb, #ff5fa2 40%, var(--bordure)); border-radius: var(--r-md); background: linear-gradient(110deg, color-mix(in srgb, #ff5fa2 10%, var(--carte)), var(--carte) 70%); }
.exo-asso__ligne { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.exo-asso__ligne + .exo-asso__ligne { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--bordure); }
.exo-asso__ruban { flex: none; display: grid; color: #ff5fa2; filter: drop-shadow(0 0 6px rgba(255, 95, 162, .5)); }
.exo-asso__texte { flex: 1 1 220px; font-size: 14px; color: var(--texte); }
.exo-asso__bouton { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 99px; border: 1px solid #ff5fa2; color: #ff9cc6 !important; font-size: 12.5px; font-weight: 700; text-decoration: none !important; transition: background .2s, color .2s; }
.exo-asso__bouton:hover { background: #ff5fa2; color: #2a0618 !important; }
.exo-asso__note { margin: 10px 0 0; font-size: 11.5px; color: var(--texte-2); }

/* Tableaux des pages (ex. Confidentialité) : sur téléphone, chaque ligne devient une fiche empilée, avec le titre de colonne.
   Pas les tableaux de WooCommerce (panier, paiement : .shop_table), qui ont leur propre mise en page. */
.exo-contenu table:not(.shop_table) { width: 100%; border-collapse: collapse; margin: 18px 0 26px; font-size: 14px; }
.exo-contenu table:not(.shop_table) th, .exo-contenu table:not(.shop_table) td { padding: 10px 12px; border: 1px solid var(--bordure); text-align: left; vertical-align: top; }
.exo-contenu table:not(.shop_table) th { background: var(--surface); color: var(--texte); }
@media (max-width: 749px) {
	.exo-contenu table:not(.shop_table), .exo-contenu table:not(.shop_table) tbody, .exo-contenu table:not(.shop_table) tr, .exo-contenu table:not(.shop_table) td { display: block; width: 100%; }
	.exo-contenu table:not(.shop_table) thead { display: none; }
	.exo-contenu table:not(.shop_table) tr { margin-bottom: 14px; border: 1px solid var(--bordure); border-radius: 10px; overflow: hidden; }
	.exo-contenu table:not(.shop_table) td { border: 0; border-top: 1px solid var(--bordure); }
	.exo-contenu table:not(.shop_table) td:first-child { border-top: 0; background: var(--surface); }
	.exo-contenu table:not(.shop_table) td[data-col]::before { content: attr(data-col); display: block; margin-bottom: 2px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--texte-2); }
}

/* ==========================================================================
   « Studio Exomori » (exomori-boutique/includes/studio.php) : cartes et fiche produit.
   Figurine détourée posée sur un fond dessiné ici : bords bleu nuit, halo doux en forme de carré arrondi
   (blanc, ou couleur du bandeau en mode « statut »), ombre au sol, logo en petit en bas à gauche.
   ========================================================================== */
.exo-studio {
	--halo: #dfe6ff; --halo-o: .30;
	position: absolute; inset: 0; display: block; overflow: hidden; container-type: inline-size;
	background:
		radial-gradient(ellipse 34% 4.5% at 50% 94%, rgba(0, 0, 0, .55), transparent 72%),
		/* Encadrement : exactement la couleur de fond des cartes (zone du titre et du prix), plus claire vers le centre. */
		radial-gradient(ellipse closest-side at 50% 48%, var(--st-c1) 0, var(--st-c2) 55%, var(--carte, #161a2e) 100%);
}
.exo-studio[hidden] { display: none; }
/* Halo : grand carré aux angles très arrondis, flouté (plus de « rond » au centre). */
.exo-studio::before {
	content: ""; position: absolute; left: 13%; right: 13%; top: 10%; bottom: 14%;
	border-radius: 26%;
	background: var(--halo); opacity: var(--halo-o);
	filter: blur(7cqi);
}
/* Mode « couleur du bandeau » : couleur du statut du produit. */
.exo-studio--st-precommande { --st: var(--pre-b); }
.exo-studio--st-nouveau     { --st: var(--nouv-b); }
.exo-studio--st-sur-demande { --st: var(--dem-b); }
.exo-studio--st-epuise      { --st: #6a7090; }
.exo-studio--st-en-stock    { --st: #35e08a; }
body.studio-statut .exo-studio { --halo: var(--st, #dfe6ff); --halo-o: .34; }
.exo-studio img.exo-studio__fig,
.exo-carte__img img.exo-studio__fig,
.exo-fiche__principale img.exo-studio__fig,
.exo-fiche__mini img.exo-studio__fig,
.exo-main ul.products li.product .exo-carte__img img.exo-studio__fig {
	position: absolute; z-index: 1; inset: auto; left: 50%; bottom: 6%; top: auto;
	width: auto; height: auto; max-width: 92%; max-height: 88%;
	object-fit: contain; object-position: 50% 100%;
	transform: translateX(-50%); transform-origin: 50% 100%;
	/* Petit coup d’éclat (photos fabricant éclairées « à plat ») : contraste et couleurs un peu relevés. */
}
.exo-carte:hover .exo-carte__img img.exo-studio__fig { transform: translateX(-50%) scale(1.04); }
.exo-studio__logo { position: absolute; z-index: 1; left: 4%; bottom: 3.2%; width: 21%; line-height: 0; opacity: .88; pointer-events: none; }
.exo-studio__logo .exo-logo__svg { display: block; width: 100%; height: auto; }
.exo-studio__logo .exo-logo__mori { fill: #f5f6ff; }
.exo-fiche__mini--studio { position: relative; }
/* Marque du fabricant (fiche produit) : en haut à droite, sous le tag promo s'il y en a un. */
.exo-studio__marque {
	position: absolute; z-index: 2; top: 16px; right: 16px;
	display: grid; justify-items: end; gap: 1px; padding: 7px 11px 6px;
	border-radius: 10px; background: rgba(5, 7, 16, .55); border: 1px solid rgba(255, 255, 255, .12);
	font-family: "Chakra Petch", var(--f-texte); font-weight: 700; font-size: 15px; letter-spacing: .08em; line-height: 1.1;
	text-transform: uppercase; color: #f5f6ff; backdrop-filter: blur(4px); pointer-events: none;
}
.exo-studio__marque small { font-family: var(--f-texte); font-size: 9px; font-weight: 600; letter-spacing: .16em; color: var(--jaune); }
.exo-fiche__principale:has(.exo-tag-remise--grand) .exo-studio__marque { top: 66px; }
/* Cartes « sur demande » : petite ligne à la couleur du bandeau (comme « En stock ») ; « Demander » ajoute sur place. */
.exo-carte__dispo--demande { color: var(--dem-b); }
.exo-carte__dispo--demande::before { background: var(--dem-b); box-shadow: 0 0 0 3px color-mix(in srgb, var(--dem-b) 22%, transparent); }
.exo-btn--demander.is-envoi { opacity: .6; pointer-events: none; }
.exo-btn--demander.is-ajoute { background: linear-gradient(180deg, var(--dem-a), var(--dem-b)) !important; color: var(--sur-dem) !important; }
.exo-bulle-demande.is-nouvelle { animation: exoBulleDemande .5s cubic-bezier(.2, .9, .3, 1.3); }
@keyframes exoBulleDemande { from { transform: translateY(24px) scale(.96); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .exo-bulle-demande.is-nouvelle { animation: none; } }
/* Teinte du centre du studio (Réglages › Boutique) ; les bords prennent toujours la couleur de fond du thème. */
.exo-studio { --st-c1: #24346a; --st-c2: color-mix(in srgb, #15204a 62%, var(--carte, #161a2e)); }
body.studio-teinte-accent .exo-studio { --st-c1: color-mix(in srgb, var(--jaune) 26%, var(--carte, #161a2e)); --st-c2: color-mix(in srgb, var(--jaune) 10%, var(--carte, #161a2e)); }
body.studio-teinte-neutre .exo-studio { --st-c1: color-mix(in srgb, var(--carte, #161a2e) 80%, #fff); --st-c2: color-mix(in srgb, var(--carte, #161a2e) 92%, #fff); }
/* Lignes « En stock… » / « Prochaine commande fournisseur » : toujours sur une ligne, même taille ;
   sur les petites cartes (téléphone), la fin de la phrase est masquée. */
.exo-carte__dispo { min-width: 0; }
.exo-carte__dispo-txt { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 600px) { .exo-carte__dispo-suite { display: none; } }
.exo-carte__dispo--preco { color: var(--pre-b); }
.exo-carte__dispo--preco::before { background: var(--pre-b); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pre-b) 22%, transparent); }
.exo-carte__dispo--clos { color: var(--texte-2); }
.exo-carte__dispo--clos::before { background: var(--texte-2); box-shadow: none; }
.exo-carte__dispo-court { display: none; }
@media (max-width: 600px) { .exo-carte__dispo-long { display: none; } .exo-carte__dispo-court { display: inline; } }
/* Logo du fabricant / ligne « © » de la photo d'origine : sortis de la figurine (qui reste centrée) et posés
   dans les coins, à la même échelle que la figurine (--rap = hauteur de l'élément / hauteur de la figurine). Fiche seulement. */
.exo-studio img.exo-studio__extra {
	position: absolute; z-index: 1; inset: auto; right: 4%;
	width: auto; height: calc(var(--rap, .04) * 88cqi); max-width: 34%; object-fit: contain;
	transform: none; filter: none; opacity: .9; pointer-events: none;
}
.exo-studio img.exo-studio__extra--haut { top: 4%; }
.exo-studio img.exo-studio__extra--bas { bottom: 3.5%; }
.exo-fiche__principale:has(.exo-tag-remise--grand) .exo-studio img.exo-studio__extra--haut { top: 70px; }
/* Force du halo (Réglages › Boutique) : doux (conseillé), fort, aucun. Les photos fabricant sont exposées pour un
   fond blanc : sur fond sombre elles paraissent « éclairées » ; on les assombrit très légèrement et on les pose
   avec une ombre de contact au lieu d'une lueur. */
body.studio-halo-doux .exo-studio { --halo-o: .15; }
body.studio-halo-doux.studio-statut .exo-studio { --halo-o: .2; }
body.studio-halo-aucun .exo-studio::before { display: none; }
/* Studio v5 : un vrai SOL pour que la figurine soit posée (et non plus flottante).
   De haut en bas des calques : ombre de contact serrée sous les pieds, ombre douce, tache de lumière sur le sol,
   plan du sol (horizon vers 66 %), mur (dégradé vers la couleur des cartes). Reflet discret (navigateurs Chrome / Edge / Safari). */
.exo-studio {
	background:
		radial-gradient(ellipse 24% 1.8% at 50% 93.2%, rgba(0, 0, 0, .7), transparent 72%),
		radial-gradient(ellipse 40% 4.5% at 50% 93.5%, rgba(0, 0, 0, .38), transparent 75%),
		radial-gradient(ellipse 48% 13% at 50% 90%, color-mix(in srgb, var(--st-c1) 70%, #fff 8%), transparent 72%),
		linear-gradient(to bottom, transparent 0, transparent 62%, color-mix(in srgb, var(--st-c2) 80%, #000) 70%, var(--carte, #161a2e) 100%),
		radial-gradient(ellipse closest-side at 50% 44%, var(--st-c1) 0, var(--st-c2) 55%, var(--carte, #161a2e) 100%);
}
.exo-studio img.exo-studio__fig,
.exo-carte__img img.exo-studio__fig,
.exo-fiche__principale img.exo-studio__fig,
.exo-fiche__mini img.exo-studio__fig,
.exo-main ul.products li.product .exo-carte__img img.exo-studio__fig {
	bottom: 7%;
	-webkit-box-reflect: below 0 linear-gradient(to bottom, rgba(0, 0, 0, .22), transparent 14%);
}
/* Halo : plus haut (derrière le buste), pour ne pas éclairer le sol. */
.exo-studio::before { top: 6%; bottom: 30%; }
/* Studio v6 : la figurine et son ombre portée sont dans un même cadre (« pose ») à la taille exacte de la figurine
   (--ar = largeur / hauteur), posé sur le sol. L'ombre (--oh = sa hauteur / celle de la figurine) passe sous les pieds. */
.exo-studio__pose {
	position: absolute; z-index: 1; left: 50%; bottom: 7%;
	width: min(92cqi, calc(88cqi * var(--ar, 1))); aspect-ratio: var(--ar, 1);
	transform: translateX(-50%); transform-origin: 50% 100%; transition: transform .6s;
}
.exo-carte:hover .exo-studio__pose { transform: translateX(-50%) scale(1.04); }
.exo-studio img.exo-studio__fig,
.exo-carte__img img.exo-studio__fig,
.exo-fiche__principale img.exo-studio__fig,
.exo-fiche__mini img.exo-studio__fig,
.exo-main ul.products li.product .exo-carte__img img.exo-studio__fig,
.exo-carte:hover .exo-carte__img img.exo-studio__fig {
	position: absolute; inset: 0; left: 0; top: 0; bottom: auto;
	width: 100%; height: 100%; max-width: none; max-height: none;
	transform: none;
}
.exo-studio img.exo-studio__ombre,
.exo-main ul.products li.product .exo-carte__img img.exo-studio__ombre {
	position: absolute; inset: auto; left: 0; width: 100%;
	height: calc(var(--oh, .1) * 100%); top: calc(100% - var(--oh, .1) * 45%);
	object-fit: fill; transform: none; filter: none; pointer-events: none;
}
/* L'ovale d'ombre générique n'est plus utile : seule la tache de lumière du sol reste. */
.exo-studio {
	background:
		radial-gradient(ellipse 48% 13% at 50% 90%, color-mix(in srgb, var(--st-c1) 70%, #fff 8%), transparent 72%),
		linear-gradient(to bottom, transparent 0, transparent 62%, color-mix(in srgb, var(--st-c2) 80%, #000) 70%, var(--carte, #161a2e) 100%),
		radial-gradient(ellipse closest-side at 50% 44%, var(--st-c1) 0, var(--st-c2) 55%, var(--carte, #161a2e) 100%);
}
/* Studio v7 : fonds photo (fournis par Kevin, assets/img/studio/) : mur + sol avec projecteur, horizon vers 65 %.
   Un voile vers la couleur des cartes sur les bords garde le contour exactement de la couleur de la carte.
   Le halo dessiné et la lumière au sol ne servent plus (la photo a déjà sa lumière), sauf le halo « couleur du bandeau ». */
body.studio-fond-bleu .exo-studio,
body.studio-fond-noir .exo-studio,
body.studio-fond-gris .exo-studio {
	background:
		radial-gradient(ellipse farthest-corner at 50% 46%, transparent 58%, var(--carte, #161a2e) 100%),
		var(--studio-photo) center / cover no-repeat;
}
body.studio-fond-bleu .exo-studio { --studio-photo: url(../img/studio/bleu.webp?v=2); }
body.studio-fond-noir .exo-studio { --studio-photo: url(../img/studio/noir.webp?v=2); }
body.studio-fond-gris .exo-studio { --studio-photo: url(../img/studio/gris.webp?v=2); }
body.studio-fond-bleu:not(.studio-statut) .exo-studio::before,
body.studio-fond-noir:not(.studio-statut) .exo-studio::before,
body.studio-fond-gris:not(.studio-statut) .exo-studio::before { display: none; }/* Règle de Kevin : les couleurs des figurines ne sont JAMAIS modifiées (ni éclat, ni contraste, ni gris « épuisé »).
   Seule une ombre neutre (noire) sous la figurine. Le fond ne déteint pas sur elle (le halo est derrière). */
.exo-studio img.exo-studio__fig,
.exo-carte__img img.exo-studio__fig,
.exo-fiche__principale img.exo-studio__fig,
.exo-fiche__mini img.exo-studio__fig,
.exo-main ul.products li.product .exo-carte__img img.exo-studio__fig,
.exo-carte--epuise .exo-carte__img img.exo-studio__fig {
	filter: drop-shadow(0 .25cqi .4cqi rgba(0, 0, 0, .55));
	mix-blend-mode: normal; opacity: 1;
}
/* Fiche produit : agrandir les photos (exomori-boutique/assets/fiche.js). */
.exo-fiche__principale.is-agrandissable { cursor: zoom-in; }
.exo-fiche__principale.is-agrandissable:focus-visible { outline: 2px solid var(--jaune); outline-offset: 3px; }
html.exo-zoom-ouvert { overflow: hidden; }
.exo-zoom { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; background: rgba(4, 5, 10, .94); animation: exoZoomEntree .2s ease-out; }
@keyframes exoZoomEntree { from { opacity: 0; } to { opacity: 1; } }
.exo-zoom__scene { position: absolute; inset: 0; display: grid; place-items: center; padding: 56px 72px; overflow: hidden; }
.exo-zoom__img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 10px; cursor: zoom-in; transition: transform .25s ease; user-select: none; -webkit-user-drag: none; }
.exo-zoom__img.is-zoom { transform: scale(2.2); cursor: zoom-out; }
.exo-zoom__studio { position: relative; width: min(100%, calc(100vh - 112px)); aspect-ratio: 1; border-radius: 14px; overflow: hidden; background: var(--carte); }
.exo-zoom__fermer, .exo-zoom__prec, .exo-zoom__suiv {
	position: absolute; z-index: 2; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .18); background: rgba(20, 22, 34, .7); color: #fff; font-size: 26px; line-height: 1; cursor: pointer;
}
.exo-zoom__fermer { top: 14px; right: 14px; font-size: 18px; }
.exo-zoom__prec { left: 14px; top: 50%; transform: translateY(-50%); }
.exo-zoom__suiv { right: 14px; top: 50%; transform: translateY(-50%); }
.exo-zoom:not(.a-plusieurs) .exo-zoom__prec, .exo-zoom:not(.a-plusieurs) .exo-zoom__suiv { display: none; }
.exo-zoom__fermer:hover, .exo-zoom__prec:hover, .exo-zoom__suiv:hover { background: rgba(40, 44, 66, .9); border-color: var(--jaune); }
.exo-zoom__compteur { position: absolute; bottom: 14px; left: 50%; transform: translateX(-50%); margin: 0; font-size: 13px; color: rgba(255, 255, 255, .75); }
@media (max-width: 749px) {
	.exo-zoom__scene { padding: 64px 8px 60px; }
	.exo-zoom__prec, .exo-zoom__suiv { top: auto; bottom: 8px; transform: none; width: 42px; height: 42px; }
	.exo-zoom__compteur { bottom: 20px; }
}
@media (prefers-reduced-motion: reduce) { .exo-zoom, .exo-zoom__img { animation: none; transition: none; } }
/* Fonds photo recolorés (même photo que le bleu, seule la teinte change) : vermillon et cerise. */
body.studio-fond-vermillon .exo-studio,
body.studio-fond-cerise .exo-studio {
	background:
		radial-gradient(ellipse farthest-corner at 50% 46%, transparent 58%, var(--carte, #161a2e) 100%),
		var(--studio-photo) center / cover no-repeat;
}
body.studio-fond-vermillon .exo-studio { --studio-photo: url(../img/studio/vermillon.webp?v=2); }
body.studio-fond-cerise .exo-studio { --studio-photo: url(../img/studio/cerise.webp?v=2); }
body.studio-fond-vermillon:not(.studio-statut) .exo-studio::before,
body.studio-fond-cerise:not(.studio-statut) .exo-studio::before { display: none; }/* Autres fonds photo fournis par Kevin. */
body.studio-fond-violet .exo-studio,
body.studio-fond-violet-nuit .exo-studio,
body.studio-fond-petrole .exo-studio,
body.studio-fond-vert .exo-studio,
body.studio-fond-rouge .exo-studio {
	background:
		radial-gradient(ellipse farthest-corner at 50% 46%, transparent 58%, var(--carte, #161a2e) 100%),
		var(--studio-photo) center / cover no-repeat;
}
body.studio-fond-violet .exo-studio { --studio-photo: url(../img/studio/violet.webp?v=2); }
body.studio-fond-violet-nuit .exo-studio { --studio-photo: url(../img/studio/violet-nuit.webp?v=2); }
body.studio-fond-petrole .exo-studio { --studio-photo: url(../img/studio/petrole.webp?v=2); }
body.studio-fond-vert .exo-studio { --studio-photo: url(../img/studio/vert.webp?v=2); }
body.studio-fond-rouge .exo-studio { --studio-photo: url(../img/studio/rouge.webp?v=2); }
body.studio-fond-violet:not(.studio-statut) .exo-studio::before,
body.studio-fond-violet-nuit:not(.studio-statut) .exo-studio::before,
body.studio-fond-petrole:not(.studio-statut) .exo-studio::before,
body.studio-fond-vert:not(.studio-statut) .exo-studio::before,
body.studio-fond-rouge:not(.studio-statut) .exo-studio::before { display: none; }
/* Logos / textes de la photo d'origine rangés par coin (fiche produit). En bas à gauche : au-dessus du logo EXOMORI ;
   en haut à gauche : sous le badge de statut s'il y en a un. */
.exo-studio img.exo-studio__extra--haut-d { top: 4%; right: 4%; left: auto; bottom: auto; }
.exo-studio img.exo-studio__extra--haut-g { top: 4%; left: 4%; right: auto; bottom: auto; }
.exo-studio img.exo-studio__extra--bas-d  { bottom: 3.5%; right: 4%; left: auto; top: auto; }
.exo-studio img.exo-studio__extra--bas-g  { bottom: 11%; left: 4%; right: auto; top: auto; }
.exo-fiche__principale:has(.exo-badge--grand) .exo-studio img.exo-studio__extra--haut-g { top: 56px; }
.exo-fiche__principale:has(.exo-tag-remise--grand) .exo-studio img.exo-studio__extra--haut-d { top: 70px; }
/* Fond studio « gris foncé » (même photo que le gris, luminosité × 0,88). */
body.studio-fond-gris-fonce .exo-studio {
	--studio-photo: url(../img/studio/gris-fonce.webp?v=2);
	background:
		radial-gradient(ellipse farthest-corner at 50% 46%, transparent 58%, var(--carte, #161a2e) 100%),
		var(--studio-photo) center / cover no-repeat;
}
body.studio-fond-gris-fonce:not(.studio-statut) .exo-studio::before { display: none; }
/* Mode « Figurine détourée, sans fond » (Réglages › Photos des cartes) : la figurine seule, centrée,
   sans fond, sans halo, sans sol, sans reflet ni ombre. Ses couleurs ne sont jamais modifiées. */
body.studio-detoure .exo-studio { background: none; }
body.studio-detoure .exo-studio::before,
body.studio-detoure .exo-studio::after { display: none; }
body.studio-detoure .exo-studio__pose {
	bottom: 50%; width: min(90cqi, calc(90cqi * var(--ar, 1)));
	transform: translate(-50%, 50%); transform-origin: 50% 50%;
}
body.studio-detoure .exo-carte:hover .exo-studio__pose { transform: translate(-50%, 50%) scale(1.04); }
body.studio-detoure .exo-studio img.exo-studio__fig,
body.studio-detoure .exo-carte__img img.exo-studio__fig,
body.studio-detoure .exo-fiche__principale img.exo-studio__fig,
body.studio-detoure .exo-fiche__mini img.exo-studio__fig,
body.studio-detoure .exo-main ul.products li.product .exo-carte__img img.exo-studio__fig,
body.studio-detoure .exo-carte--epuise .exo-carte__img img.exo-studio__fig {
	filter: none; -webkit-box-reflect: none;
}
/* Fiche : plus de cadre autour de la grande photo quand c'est la figurine détourée qui s'affiche. */
body.studio-detoure .exo-fiche__principale:has(> .exo-studio:not([hidden])) { background: transparent; border-color: transparent; }
/* La photo d'origine cachée (attribut hidden) ne doit plus apparaître sous la figurine détourée transparente. */
.exo-fiche__principale > img[hidden] { display: none; }
/* Photos d'origine encadrées « carte imprimée » (Réglages › Photos des cartes, classe photos-cadre sur le body) :
   la photo (fond blanc compris) est posée dans la carte avec une petite marge sombre et des coins arrondis.
   Rien n'est retouché sur la photo elle-même. */
body.photos-cadre .exo-carte__media { background: var(--carte); }
body.photos-cadre .exo-carte__media .exo-carte__img {
	position: absolute; inset: 10px 10px 0 10px; width: auto; height: auto;
	border-radius: 12px; overflow: hidden;
}
body.photos-cadre .exo-fiche__principale { padding: 12px; }
body.photos-cadre .exo-fiche__principale > img { border-radius: 12px; }
body.photos-cadre .exo-fiche__mini img { border-radius: 6px; }
@media (max-width: 749px) {
	body.photos-cadre .exo-carte__media .exo-carte__img { inset: 6px 6px 0 6px; border-radius: 9px; }
	body.photos-cadre .exo-fiche__principale { padding: 8px; }
	body.photos-cadre .exo-fiche__principale > img { border-radius: 10px; }
}
/* Pages catalogue (boutique, catégories, univers…) : 4 produits par ligne sur grand écran, 3 sur écran moyen, 2 sur téléphone. */
.exo-catalogue .exo-catalogue__liste ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1199px) { .exo-catalogue .exo-catalogue__liste ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 989px) { .exo-catalogue .exo-catalogue__liste ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Cadre « carte imprimée » : même marge en bas qu'en haut, pour que la photo reste parfaitement carrée (rien n'est rogné). */
body.photos-cadre .exo-carte__media .exo-carte__img { inset: 10px; }
@media (max-width: 749px) { body.photos-cadre .exo-carte__media .exo-carte__img { inset: 6px; } }
/* Pages catalogue (boutique, catégories, univers, étiquettes) : seule la zone centrale (en-tête de la catégorie,
   filtres, cartes) s’élargit sur grand écran, jusqu’à 1600 px ; l’en-tête du site, la bande du menu et le bas de page
   gardent leur largeur. Toujours 4 produits par ligne. Marges, colonne des filtres et espaces un peu resserrés pour
   des photos légèrement plus grandes que chez Shin Sekai (≈ 290 px à 1920 px d’écran). */
/* (la largeur de la zone suit maintenant --largeur, la même que l'en-tête et le bas de page) */
@media (min-width: 1200px) {

	.exo-catalogue { grid-template-columns: 220px minmax(0, 1fr); gap: 28px; }
	.exo-catalogue .exo-catalogue__liste ul.products { gap: 18px; }
	body.photos-cadre .exo-catalogue .exo-carte__media .exo-carte__img { inset: 8px; }
}
/* Mentions des cartes : version courte quand la carte est étroite (4 par ligne sur écran moyen), selon la largeur réelle de la carte. */
.exo-catalogue ul.products li.exo-carte { container-type: inline-size; }
@container (max-width: 262px) {
	.exo-carte__dispo-suite, .exo-carte__dispo-long { display: none; }
	.exo-carte__dispo-court { display: inline; }
}
/* Fiche produit : colonne des photos plus large (photo ≈ 710 px à 1920 px d'écran, plus grande que chez Shin Sekai). */
@media (min-width: 990px) {
	.exo-fiche { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); }
}
/* Agrandissement des photos de la fiche : taille raisonnable (au plus 760 px et 75 % de la hauteur de l'écran),
   jamais plus grande que la photo elle-même ; le clic pour zoomer sur un détail reste possible. */
.exo-zoom .exo-zoom__img { width: auto; height: auto; max-width: 760px; max-height: 75vh; } /* « .exo-zoom » devant : sinon la règle « .woocommerce img » de WooCommerce l’emporte */
.exo-zoom__studio { width: min(100%, 760px, 75vh); }
@media (max-width: 749px) { .exo-zoom .exo-zoom__img { max-width: 100%; max-height: 80vh; } .exo-zoom__studio { width: min(100%, 80vh); } }
/* Fiche produit : logo officiel de la licence en tête des infos (petit, tel quel). */
.exo-fiche__licence { display: inline-block; margin: 0 0 12px; line-height: 0; }
.exo-fiche__licence-img { display: block; width: auto !important; height: auto; max-height: 52px; max-width: 200px; object-fit: contain; }
.exo-fiche__licence:hover .exo-fiche__licence-img { filter: drop-shadow(0 0 8px rgba(255, 255, 255, .18)); }
@media (max-width: 749px) { .exo-fiche__licence-img { max-height: 42px; max-width: 160px; } }
/* Badges de la grande photo de la fiche (Nouveau, Sur demande, Épuisé…) : fond plein et ombre,
   pour rester lisibles sur une photo à fond blanc (avant : fond transparent à 14 %). */
.exo-fiche__principale .exo-badge--grand { box-shadow: 0 2px 10px rgba(0, 0, 0, .35); }
.exo-fiche__principale .exo-badge--nouveau { background: linear-gradient(180deg, var(--nouv-a), var(--nouv-b)); color: var(--sur-nouv); }
.exo-fiche__principale .exo-badge--sur-demande { background: linear-gradient(180deg, var(--dem-a), var(--dem-b)); color: var(--sur-dem); }
.exo-fiche__principale .exo-badge--epuise { background: #3a3f58; color: #f5f6ff; }
/* Univers : logo officiel de la licence à la place de la photo du produit (menu déroulant et page /univers/). */
.exo-sm__img--logo { flex: 0 0 64px; width: 64px; height: 40px; padding: 3px 4px; display: flex; align-items: center; justify-content: center; }
.exo-sm__img--logo img { width: 100%; height: 100%; object-fit: contain; object-position: 50% 50%; }
.exo-univers-carte--logo .exo-univers-carte__img { display: flex; align-items: center; justify-content: center; padding: 14%; background: radial-gradient(circle at 50% 45%, #1d2238, #0d0f1a 75%); }
.exo-univers-carte--logo .exo-univers-carte__img img { width: 100%; height: 100%; object-fit: contain; object-position: 50% 50%; opacity: 1; transition: transform .3s; }
.exo-univers-carte--logo:hover .exo-univers-carte__img img { transform: scale(1.05); }
/* Rangées de l'accueil défilantes (jusqu'à 12 produits) avec flèches ‹ › : 5 visibles, 3 sur écran moyen, 2 sur téléphone. */
.exo-rangee ul.products {
	grid-template-columns: none !important; grid-auto-flow: column;
	grid-auto-columns: calc((100% - 4 * 22px) / 5);
	overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none;
	padding: 8px 4px 14px; margin: -8px -4px -14px;
}
.exo-rangee ul.products::-webkit-scrollbar { display: none; }
.exo-rangee ul.products > li { scroll-snap-align: start; }
@media (max-width: 1199px) { .exo-rangee ul.products { grid-auto-columns: calc((100% - 2 * 22px) / 3); } }
@media (max-width: 749px) { .exo-rangee ul.products { grid-auto-columns: calc((100% - 12px) / 2); gap: 12px; } }
.exo-rangee__fleches { display: flex; gap: 8px; margin-left: auto; }
.exo-rangee__fleches[hidden] { display: none; }
.exo-rangee__fleches:not([hidden]) + .exo-rangee__tout { margin-left: 14px; }
.exo-rangee__fleche {
	display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%;
	border: 1px solid var(--bordure); background: var(--carte); color: var(--texte);
	font-size: 24px; line-height: 1; cursor: pointer; transition: border-color .2s, color .2s, opacity .2s;
}
.exo-rangee__fleche:hover:not(:disabled) { border-color: var(--jaune); color: var(--jaune); }
.exo-rangee__fleche:disabled { opacity: .35; cursor: default; }
@media (max-width: 749px) { .exo-rangee__fleche { width: 34px; height: 34px; font-size: 20px; } }
/* Filtres Univers / Marque : petite recherche au-dessus de la liste. */
.exo-filtre__cherche {
	display: block; width: 100%; margin: 0 0 10px; padding: 7px 10px 7px 30px; border-radius: 8px;
	border: 1px solid var(--bordure); background: var(--surface, #1d2238) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23a9aecb' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 10px 50%;
	color: var(--texte); font: 500 13px/1.3 var(--f-texte);
}
.exo-filtre__cherche:focus { outline: none; border-color: var(--jaune); }
.exo-filtre__cherche::placeholder { color: var(--texte-2); }
.exo-filtre__choix[hidden] { display: none !important; }
.exo-filtre__aucun { margin: 0 0 6px; font-size: 12px; color: var(--texte-2); }
/* Flèches des rangées : sur les côtés de la rangée, à hauteur des photos (« › » à droite du dernier produit visible). */
.exo-rangee__piste { position: relative; }
.exo-rangee__piste .exo-rangee__fleches { position: absolute; inset: 0; margin: 0; pointer-events: none; display: block; }
.exo-rangee__piste .exo-rangee__fleches[hidden] { display: none; }
.exo-rangee__piste .exo-rangee__fleche {
	position: absolute; top: var(--fl-top, 40%); transform: translateY(-50%); z-index: 3; pointer-events: auto;
	width: 44px; height: 44px; font-size: 28px; background: color-mix(in srgb, var(--carte) 88%, transparent);
	box-shadow: 0 4px 14px rgba(0, 0, 0, .45); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
.exo-rangee__fleche--prec { left: -22px; }
.exo-rangee__fleche--suiv { right: -22px; }
.exo-rangee__piste .exo-rangee__fleche:disabled { opacity: 0; pointer-events: none; }
@media (max-width: 989px) { .exo-rangee__fleche--prec { left: 4px; } .exo-rangee__fleche--suiv { right: 4px; } .exo-rangee__piste .exo-rangee__fleche { width: 38px; height: 38px; font-size: 24px; } }
/* Fiche produit : tableau « Caractéristiques » sous les photos (ordinateur). Sur téléphone, il reste dans les onglets. */
.exo-fiche__fiche-tech { grid-column: 1 / -1; margin-top: 18px; padding: 18px 20px 8px; border: 1px solid var(--bordure-carte, var(--bordure)); border-radius: var(--r-md); background: linear-gradient(180deg, color-mix(in srgb, var(--carte) 96%, var(--jaune)), var(--carte)); }
.exo-fiche__fiche-tech-titre { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; font: 700 13px/1 var(--f-texte); letter-spacing: .16em; text-transform: uppercase; color: var(--texte); }
.exo-fiche__fiche-tech-titre::before { content: ""; width: 4px; height: 16px; border-radius: 2px; background: var(--jaune); box-shadow: 0 0 10px color-mix(in srgb, var(--jaune) 60%, transparent); }
.exo-fiche__fiche-tech-liste { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 26px; margin: 0; }
.exo-fiche__fiche-tech-ligne { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 12px; align-items: baseline; padding: 10px 0; border-bottom: 1px solid color-mix(in srgb, var(--bordure) 70%, transparent); }
.exo-fiche__fiche-tech-ligne dt { margin: 0; font: 600 11px/1.3 var(--f-texte); letter-spacing: .1em; text-transform: uppercase; color: var(--texte-2); }
.exo-fiche__fiche-tech-ligne dd { margin: 0; font: 600 14px/1.4 var(--f-texte); color: var(--texte); overflow-wrap: anywhere; }
@media (max-width: 1199px) { .exo-fiche__fiche-tech-liste { grid-template-columns: minmax(0, 1fr); } }
@media (min-width: 990px) { .exo-fiche__caracs-onglet .exo-caracs { display: none; } }
@media (max-width: 989px) { .exo-fiche__fiche-tech { display: none; } }
.exo-seul-bureau { display: none; }
@media (min-width: 990px) {
	.exo-seul-mobile { display: none; } .exo-seul-bureau { display: inline; }
	.exo-fiche__caracs-onglet.sans-taille { display: none; }
}
/* Flèches des rangées v3 (choix de Kevin) : les deux à droite, en dehors des cartes, l'une sous l'autre (› puis ‹). */
.exo-rangee__piste .exo-rangee__fleches { inset: auto; top: var(--fl-top, 40%); right: -46px; left: auto; bottom: auto; width: 40px; transform: translateY(-50%); display: flex; flex-direction: column; gap: 8px; pointer-events: auto; }
.exo-rangee__piste .exo-rangee__fleche { position: static; transform: none; width: 40px; height: 40px; font-size: 26px; }
.exo-rangee__piste .exo-rangee__fleche:disabled { opacity: .3; pointer-events: none; }
.exo-rangee__fleche--prec, .exo-rangee__fleche--suiv { left: auto; right: auto; }
@media (max-width: 1100px) {
	/* Plus de place à droite : les flèches passent sous la rangée, alignées à droite. */
	.exo-rangee__piste .exo-rangee__fleches { position: static; transform: none; width: auto; flex-direction: row-reverse; justify-content: flex-start; margin-top: 12px; }
	.exo-rangee__piste .exo-rangee__fleche { width: 38px; height: 38px; font-size: 24px; }
}
.exo-fiche__faq-lien { margin: 14px 0 0; font-size: 13px; color: var(--texte-2); }
.exo-fiche__faq-lien a { color: var(--jaune); text-decoration: none; border-bottom: 1px solid color-mix(in srgb, var(--jaune) 35%, transparent); white-space: nowrap; }
.exo-fiche__faq-lien a:hover { color: var(--jaune-clair); }
/* 4x PayPal sous le bouton d'achat : une ligne discrète, centrée sous le bouton. */
.exo-fiche__info .exo-4x { margin: 10px 0 4px; padding: 8px 12px; border-radius: 10px; background: color-mix(in srgb, var(--carte) 70%, transparent); border: 1px solid color-mix(in srgb, var(--bordure) 70%, transparent); }
.exo-fiche__info .exo-4x__ligne { margin: 0; }
.exo-fiche__info .exo-4x__legal { display: inline; margin-left: 6px; }
.exo-fiche__info .exo-4x__legal summary { display: inline; cursor: pointer; font-size: 12px; text-decoration: underline; }
/* Logo PayPal officiel dans l'encadré 4x (sur une pastille blanche, comme le demande la marque sur fond sombre). */
.exo-4x__ligne { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; }
.exo-4x__logo { display: inline-flex; align-items: center; padding: 4px 8px; border-radius: 6px; background: #fff; line-height: 0; flex: none; }
.exo-4x__logo img { display: block; width: 58px; height: auto; }
/* 4x PayPal : une seule ligne, sans encadré, « Conditions » à droite (le texte légal s'ouvre dessous). */
.exo-fiche__info .exo-4x { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin: 12px 0 4px; padding: 0; background: none; border: 0; border-radius: 0; }
.exo-fiche__info .exo-4x__ligne { flex: 1 1 auto; min-width: 0; }
.exo-fiche__info .exo-4x__legal { display: block; margin: 0 0 0 auto; text-align: right; }
.exo-fiche__info .exo-4x__legal[open] { flex-basis: 100%; }
.exo-fiche__info .exo-4x__legal p { text-align: left; }

/* ---------- Commande : finitions (04/10/2026) ---------- */

/* Case « Notes de commande » : le style blanc de WooCommerce (.form-row .input-text) l'emportait. */
.woocommerce form .form-row textarea.input-text {
	background: var(--surface); color: var(--texte); border: 1px solid var(--bordure); min-height: 92px; resize: vertical; line-height: 1.5;
}
/* Champs remplis automatiquement par le navigateur : garder nos couleurs sombres (sinon fond bleu clair). */
input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus,
textarea:-webkit-autofill, select:-webkit-autofill {
	-webkit-text-fill-color: var(--texte);
	-webkit-box-shadow: 0 0 0 1000px var(--surface) inset;
	box-shadow: 0 0 0 1000px var(--surface) inset;
	caret-color: var(--texte);
	transition: background-color 600000s 0s, color 600000s 0s;
}
/* Pays : un seul possible (France) → WooCommerce affiche une liste à un choix sans cadre ; on la présente comme un champ en lecture seule. */
.woocommerce form .form-row select.country_to_state--single {
	-webkit-appearance: none; appearance: none; width: 100%; box-sizing: border-box; height: auto;
	padding: 11px 14px; background: var(--surface); border: 1px solid var(--bordure); border-radius: var(--r-sm);
	color: var(--texte); font: 500 15px var(--f-texte); pointer-events: none; opacity: 1;
}
.woocommerce form .form-row select.country_to_state--single + .select2 { display: none; }
#billing_country_field .woocommerce-input-wrapper, #shipping_country_field .woocommerce-input-wrapper { position: relative; display: block; }
#billing_country_field .woocommerce-input-wrapper:has(> select.country_to_state--single)::after, #shipping_country_field .woocommerce-input-wrapper:has(> select.country_to_state--single)::after {
	content: "Livraison en France uniquement"; position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
	font-size: 12px; color: var(--texte-2); pointer-events: none;
}
/* Cases à cocher et boutons radio à la couleur d'accent */
.woocommerce-checkout input[type="checkbox"], .woocommerce-checkout input[type="radio"] { accent-color: var(--jaune); }
.woocommerce-checkout input[type="checkbox"] { width: 18px; height: 18px; flex: none; margin: 0; }
.woocommerce-checkout .woocommerce-form__label-for-checkbox { align-items: center; cursor: pointer; }
#ship-to-different-address { margin: 18px 0 6px; }
#ship-to-different-address label { display: flex; align-items: center; gap: 10px; }
/* Moyens de paiement */
.woocommerce-checkout #payment ul.payment_methods li > input[type="radio"] { width: 18px; height: 18px; margin: 0 8px 0 0; vertical-align: -3px; }
.woocommerce-checkout #payment ul.payment_methods li > label { font-size: 15px; font-weight: 600; }
.woocommerce-checkout #payment div.payment_box { padding: 14px; }
.woocommerce-checkout #payment div.payment_box p:last-child { margin-bottom: 0; }
/* Phrase CGV au-dessus du bouton (à la place de la case à cocher) */
.woocommerce-terms-and-conditions-wrapper { margin-top: 4px; }
.woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text p { margin-bottom: 8px; }
.exo-cgv-mention { margin: 0 0 6px; font-size: 13px; line-height: 1.55; color: var(--texte-2); }
.exo-cgv-mention a { color: var(--texte); text-decoration: underline; text-underline-offset: 2px; }
.exo-cgv-mention a:hover { color: var(--jaune); }
/* Cases à cocher sombres (la case blanche du navigateur jurait), cochées = couleur d'accent */
.woocommerce-checkout input[type="checkbox"] {
	-webkit-appearance: none; appearance: none; display: inline-grid !important; place-content: center; vertical-align: middle;
	border: 1.5px solid color-mix(in srgb, var(--texte) 35%, transparent); border-radius: 5px; background: var(--surface); cursor: pointer;
}
.woocommerce-checkout input[type="checkbox"]::before {
	content: ""; width: 9px; height: 5px; margin-top: -2px;
	border-left: 2px solid var(--sur-jaune); border-bottom: 2px solid var(--sur-jaune); transform: rotate(-45deg) scale(0); transition: transform .12s;
}
.woocommerce-checkout input[type="checkbox"]:checked { background: var(--jaune); border-color: var(--jaune); }
.woocommerce-checkout input[type="checkbox"]:checked::before { transform: rotate(-45deg) scale(1); }
.woocommerce-checkout input[type="checkbox"]:focus-visible { outline: 2px solid var(--jaune); outline-offset: 2px; }
.select2-container .select2-selection--single .select2-selection__arrow { height: 42px; }
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 42px; }
/* Récapitulatif de la commande : plus de traits verticaux collés aux textes et aux prix */
#order_review table.shop_table th, #order_review table.shop_table td { border-left: 0 !important; border-right: 0 !important; padding: 11px 8px; }
#order_review table.shop_table th:first-child, #order_review table.shop_table td:first-child { padding-left: 0; }
#order_review table.shop_table th:last-child, #order_review table.shop_table td:last-child { padding-right: 0; text-align: right; white-space: nowrap; }
#order_review table.shop_table tr.woocommerce-shipping-totals td { padding-right: 0; text-align: left; white-space: normal; }
#order_review table.shop_table th, #order_review table.shop_table td, #order_review table.shop_table tfoot th, #order_review table.shop_table tfoot td { background: transparent !important; }

/* ---------- Ajout au panier : envol, rebond du panier, fenêtre « Ajouté au panier » (panier-ajout.js) ---------- */
.exo-envol {
	position: fixed; z-index: 10000; object-fit: cover; pointer-events: none;
	border-radius: 14px; box-shadow: 0 12px 34px rgba(0, 0, 0, .5), 0 0 0 2px var(--jaune);
}
@keyframes exoRebond {
	0% { transform: scale(1); } 30% { transform: scale(1.28) rotate(-8deg); } 55% { transform: scale(.92) rotate(5deg); } 80% { transform: scale(1.08); } 100% { transform: scale(1); }
}
.exo-icone--panier.is-rebond .exo-icone__pic { animation: exoRebond .55s ease; }
.exo-icone--panier.is-rebond .exo-compteur { animation: exoRebond .55s ease .1s; }

.exo-ajout {
	position: fixed; z-index: 9999; top: calc(var(--entete-h, 120px) + 12px); right: 20px;
	width: min(360px, calc(100vw - 32px)); box-sizing: border-box;
	background: var(--carte); color: var(--texte); border: 1px solid color-mix(in srgb, var(--jaune) 40%, var(--bordure));
	border-radius: 16px; box-shadow: 0 22px 60px rgba(0, 0, 0, .55); padding: 14px 16px 16px;
	opacity: 0; transform: translateY(-10px) scale(.98); transition: opacity .25s, transform .25s; pointer-events: none;
}
.exo-ajout.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.exo-ajout::before {
	content: ""; position: absolute; left: 16px; right: 16px; top: -1px; height: 2px; border-radius: 2px;
	background: var(--lueur); background-size: 200% 100%; animation: exoLueur 6s linear infinite;
}
.exo-ajout__tete { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 14px; margin-bottom: 12px; }
.exo-ajout__ok {
	width: 20px; height: 20px; border-radius: 50%; background: #2fd67b; display: inline-grid; place-content: center; flex: none;
}
.exo-ajout__ok::before { content: ""; width: 8px; height: 4px; margin-top: -2px; border-left: 2px solid #052513; border-bottom: 2px solid #052513; transform: rotate(-45deg); }
.exo-ajout__fermer {
	margin-left: auto; width: 28px; height: 28px; border: 0; border-radius: 50%; background: transparent; color: var(--texte-2);
	font-size: 20px; line-height: 1; cursor: pointer;
}
.exo-ajout__fermer:hover { background: var(--surface); color: var(--texte); }
.exo-ajout__produit { display: flex; gap: 12px; align-items: center; margin-bottom: 14px; }
.exo-ajout__produit img { width: 64px; height: 64px; object-fit: cover; object-position: 50% 0; border-radius: 10px; flex: none; background: var(--surface); }
.exo-ajout__nom { margin: 0 0 4px; font: 600 14px/1.35 var(--f-carte); }
.exo-ajout__prix { margin: 0; font-size: 13px; color: var(--texte-2); }
.exo-ajout__boutons { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.exo-ajout__boutons .exo-btn { min-height: 42px; font-size: 12px; padding: 0 10px; width: 100%; justify-content: center; text-align: center; }
@media (max-width: 749px) {
	.exo-ajout { top: auto; bottom: 12px; right: 16px; left: 16px; width: auto; transform: translateY(14px); }
}
@media (prefers-reduced-motion: reduce) {
	.exo-icone--panier.is-rebond .exo-icone__pic, .exo-icone--panier.is-rebond .exo-compteur, .exo-ajout::before { animation: none; }
	.exo-ajout { transition: opacity .2s; transform: none; }
}

/* ---------- Panier : retirer un article (corbeille bien visible) et « Vider le panier » ---------- */
.woocommerce table.cart a.remove {
	display: grid; place-content: center; width: 36px; height: 36px; border-radius: 50%; font-size: 0 !important; line-height: 0;
	color: #ff6b6b !important; background: color-mix(in srgb, #ff4d4d 12%, transparent) !important; border: 1px solid color-mix(in srgb, #ff4d4d 45%, transparent);
	transition: background .15s, color .15s, transform .15s;
}
.woocommerce table.cart a.remove::before {
	content: ""; width: 18px; height: 18px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M8 6V4h8v2M6 6l1 14h10l1-14M10 11v6M14 11v6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M8 6V4h8v2M6 6l1 14h10l1-14M10 11v6M14 11v6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce table.cart a.remove:hover, .woocommerce table.cart a.remove:focus-visible { background: #ff4d4d !important; border-color: #ff4d4d; color: #fff !important; transform: scale(1.08); }
.woocommerce table.cart td.product-remove { width: 56px; text-align: center; }
.woocommerce table.cart td.actions .exo-vider-panier {
	float: right; display: inline-flex; align-items: center; gap: 8px; margin-left: 10px;
	background: none !important; border: 1px solid color-mix(in srgb, #ff4d4d 50%, transparent) !important; color: #ff6b6b !important;
}
.woocommerce table.cart td.actions .exo-vider-panier:hover { background: #ff4d4d !important; border-color: #ff4d4d !important; color: #fff !important; }
@media (max-width: 749px) {
	.woocommerce table.cart td.actions .exo-vider-panier { float: none; width: 100%; justify-content: center; margin: 10px 0 0; }
}
.woocommerce table.cart td.actions button[name="update_cart"].exo-masque { display: none !important; }

/* ==========================================================================
   Panier « aéré » (maquette B, 04/10/2026) : woocommerce/cart/cart.php + cart-totals.php
   ========================================================================== */
.woocommerce-cart .exo-contenu > .woocommerce { grid-template-columns: minmax(0, 1fr) 380px; gap: 18px 40px; }
.woocommerce-cart .exo-contenu > .woocommerce > .exo-panier-tete { grid-column: 1 / -1; }
.woocommerce-cart .exo-contenu > .woocommerce > .woocommerce-cart-form { grid-column: 1; }
.woocommerce-cart .exo-contenu > .woocommerce > .cart-collaterals { grid-column: 2; }
.woocommerce-cart .cart-collaterals { top: calc(var(--entete-h, 120px) + 20px); }

.exo-panier-tete { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; margin: 6px 0 0; }
.exo-panier-tete__titre { margin: 0; font-family: var(--f-titre); font-size: 36px; letter-spacing: .03em; color: var(--titre, var(--texte)); }
.exo-panier-tete__nb { color: var(--texte-2); font-size: 14px; }
.exo-panier-tete__retour { margin-left: auto; font-size: 13px; color: var(--texte-2); text-decoration: none; }
.exo-panier-tete__retour:hover { color: var(--jaune-clair); }

.exo-panier__liste { border: 0 !important; border-top: 1px solid var(--bordure) !important; border-radius: 0 !important; background: none !important; }
.exo-panier__ligne {
	display: grid; grid-template-columns: 110px minmax(0, 1fr) 124px 118px 44px; gap: 18px; align-items: center;
	padding: 20px 0; border-bottom: 1px solid var(--bordure);
}
.exo-panier__photo img { display: block; width: 110px; height: 110px; object-fit: cover; object-position: 50% 0; border-radius: 12px; border: 1px solid var(--bordure-carte); background: #fff; }
.exo-panier__infos { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.exo-panier__nom { font: 700 16px/1.35 var(--f-carte); color: var(--texte); text-decoration: none; }
a.exo-panier__nom:hover { color: var(--jaune-clair); }
.exo-panier__sous { font-size: 13px; color: var(--texte-2); }
.exo-panier__etat { margin-top: 6px; font-size: 12.5px; color: #35e08a; }
.exo-panier__etat::before { content: "● "; }
.exo-panier__etat--precommande { color: var(--pre-a, var(--jaune)); }
.exo-panier__etat--sur-demande { color: var(--dem-a, #ff9f43); }
.exo-panier__etat--cadeau { color: var(--texte-2); }
.exo-panier__infos dl.variation { margin: 4px 0 0; font-size: 12px; color: var(--texte-2); }
.exo-panier__infos dl.variation dt, .exo-panier__infos dl.variation dd { display: inline; margin: 0; }
.exo-panier__infos dl.variation dd p { display: inline; margin: 0; }

.exo-qte.exo-qte--panier { height: 42px; width: 118px; justify-content: space-between; border-radius: 10px; }
.exo-qte--panier > button { width: 38px; }
.exo-qte--panier > button:disabled { opacity: .3; cursor: default; }
.exo-qte--panier .quantity { flex: 1; justify-content: center; }
.exo-qte--panier input.qty { width: 40px; text-align: center; background: none; border: 0; padding: 0; color: var(--texte); font-weight: 600; }

.exo-panier__prix { text-align: right; font-size: 16px; }
.exo-panier__prix .amount { font-weight: 700; color: var(--texte); }
.exo-panier__prix del .amount { font-weight: 400; font-size: 12.5px; color: var(--texte-2); }
.exo-panier__prix ins { text-decoration: none; }
.exo-panier__prix ins .amount { color: var(--promo, #ff5c70); }
.exo-panier__unite { display: block; margin-top: 4px; font-size: 11.5px; color: var(--texte-2); }
.exo-panier__unite .amount { font-weight: 400; font-size: 11.5px; color: var(--texte-2); }

.exo-panier a.remove {
	display: grid; place-content: center; width: 40px; height: 40px; border-radius: 50%; font-size: 0 !important; line-height: 0;
	color: #ff6b6b !important; background: color-mix(in srgb, #ff4d4d 12%, transparent) !important; border: 1px solid color-mix(in srgb, #ff4d4d 45%, transparent);
	transition: background .15s, color .15s, transform .15s;
}
.exo-panier a.remove::before {
	content: ""; width: 18px; height: 18px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M8 6V4h8v2M6 6l1 14h10l1-14M10 11v6M14 11v6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M8 6V4h8v2M6 6l1 14h10l1-14M10 11v6M14 11v6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.exo-panier a.remove:hover, .exo-panier a.remove:focus-visible { background: #ff4d4d !important; border-color: #ff4d4d; color: #fff !important; transform: scale(1.08); }

.exo-panier__actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px; padding-top: 18px; }
.exo-panier__actions button[name="update_cart"].exo-masque { display: none !important; }
.exo-panier__code { flex: 1 1 320px; }
.exo-panier__code summary { cursor: pointer; font-size: 13.5px; color: var(--texte-2); padding: 10px 0; list-style: none; }
.exo-panier__code summary::-webkit-details-marker { display: none; }
.exo-panier__code summary::before { content: "+"; display: inline-grid; place-content: center; width: 20px; height: 20px; margin-right: 8px; border-radius: 50%; border: 1px solid var(--bordure-carte); font-size: 14px; }
.exo-panier__code[open] summary::before { content: "−"; }
.exo-panier__code summary:hover { color: var(--texte); }
.exo-panier__code .coupon { display: flex; gap: 8px; margin-top: 4px; }
.exo-panier__code .coupon .input-text { flex: 1; max-width: 260px; height: 44px; box-sizing: border-box; }
.exo-panier__code .coupon .button { min-height: 44px; padding: 0 18px; font-size: 11.5px; width: auto; }
.exo-panier__actions .exo-vider-panier {
	margin-left: auto; display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 16px; font-size: 11.5px; width: auto;
	background: none !important; border: 1px solid color-mix(in srgb, #ff4d4d 50%, transparent) !important; color: #ff6b6b !important; border-radius: 10px;
}
.exo-panier__actions .exo-vider-panier:hover { background: #ff4d4d !important; border-color: #ff4d4d !important; color: #fff !important; }

.exo-recap { display: flex; flex-direction: column; gap: 12px; background: var(--carte); border: 1px solid var(--bordure-carte); border-radius: 18px; padding: 22px; }
.exo-recap .exo-barre-livraison { margin: 0; }
.exo-recap__table { border: 0 !important; background: none !important; width: 100%; }
.exo-recap__table th, .exo-recap__table td { border: 0 !important; padding: 7px 0 !important; background: transparent !important; vertical-align: top; }
.exo-recap__table th { text-align: left; font-weight: 400 !important; font-size: 14px; color: var(--texte-2); }
.exo-recap__table td { text-align: right; font-size: 14px; }
.exo-recap__liv td { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.exo-recap__liv-mode { font-size: 13.5px; }
.exo-recap__liv-mode strong { font-weight: 600; }
.exo-recap__liv small { font-size: 11.5px; color: var(--texte-2); }
.exo-recap__table .order-total th, .exo-recap__table .order-total td { border-top: 1px solid var(--bordure) !important; padding-top: 14px !important; }
.exo-recap__table .order-total th { font-weight: 600 !important; color: var(--texte); font-size: 15px; vertical-align: baseline; }
.exo-recap__table .order-total .amount { font-size: 26px; color: var(--texte) !important; }
.exo-recap__table .exo-tva-ligne td { text-align: right; font-size: 11.5px; color: var(--texte-2); padding-top: 0 !important; }
.exo-recap .wc-proceed-to-checkout { padding: 4px 0 0; }
.woocommerce .exo-recap .wc-proceed-to-checkout a.exo-btn-commander {
	display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 56px; border-radius: 12px; font-size: 14px; letter-spacing: .12em;
}
.exo-recap__garanties { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 9px; font-size: 12.5px; color: var(--texte-2); }
.exo-recap__garanties li { display: flex; align-items: center; gap: 10px; }
.exo-recap__garanties svg { flex: none; }

@media (max-width: 989px) {
	.woocommerce-cart .exo-contenu > .woocommerce { grid-template-columns: minmax(0, 1fr); }
	.woocommerce-cart .exo-contenu > .woocommerce > .cart-collaterals { grid-column: 1; position: static; }
}
@media (max-width: 749px) {
	.exo-panier__ligne { grid-template-columns: 84px minmax(0, 1fr) 40px; grid-template-areas: "photo infos retirer" "photo qte prix"; gap: 10px 14px; }
	.exo-panier__photo { grid-area: photo; align-self: start; }
	.exo-panier__photo img { width: 84px; height: 84px; }
	.exo-panier__infos { grid-area: infos; }
	.exo-panier__qte { grid-area: qte; }
	.exo-panier__prix { grid-area: prix; align-self: center; }
	.exo-panier__retirer { grid-area: retirer; align-self: start; }
	.exo-panier-tete__retour { margin-left: 0; width: 100%; }
}

/* ==========================================================================
   Paiement en 3 étapes (maquette C, 04/10/2026) : woocommerce/checkout/*.php, inc/paiement.php, assets/js/paiement.js
   ========================================================================== */
/* En-tête allégé : logo, « Paiement sécurisé », retour au panier (pas de menu ni de recherche pendant le paiement). */
.exo-page-paiement .exo-recherche,
.exo-page-paiement .exo-icones,
.exo-page-paiement .exo-burger,
.exo-page-paiement .exo-bande,
.exo-page-paiement .exo-onglet-cadeau { display: none !important; }
.exo-page-paiement .exo-entete__haut { display: flex; align-items: center; gap: 28px; }
.exo-entete__securise { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--texte-2); }
.exo-entete__retour-panier { font-size: 13px; color: var(--texte-2); text-decoration: none; }
.exo-entete__retour-panier:hover { color: var(--jaune-clair); }

/* Barre des étapes */
.exo-etapes-barre { display: flex; align-items: center; gap: 14px; list-style: none; margin: 4px 0 22px; padding: 0; font-size: 13px; font-weight: 600; color: var(--texte-2); }
.exo-etapes-barre__pas { display: flex; align-items: center; gap: 8px; }
.exo-etapes-barre__num { width: 26px; height: 26px; border-radius: 50%; display: grid; place-content: center; font-size: 12px; border: 1.5px solid var(--bordure-carte); }
.exo-etapes-barre__pas.is-courante { color: var(--texte); }
.exo-etapes-barre__pas.is-courante .exo-etapes-barre__num { background: var(--jaune); border-color: var(--jaune); color: var(--sur-jaune); }
.exo-etapes-barre__pas.is-faite { color: #35e08a; }
.exo-etapes-barre__pas.is-faite .exo-etapes-barre__num { background: #35e08a; border-color: #35e08a; color: #052513; font-size: 0; }
.exo-etapes-barre__pas.is-faite .exo-etapes-barre__num::after { content: "✓"; font-size: 13px; }
.exo-etapes-barre__trait { width: 60px; height: 2px; border-radius: 2px; background: var(--bordure-carte); }
.exo-etapes-barre__trait.is-faite { background: #35e08a; }

/* Mise en page : étapes à gauche, récapitulatif collant à droite */
.woocommerce-checkout form.checkout.exo-paiement { grid-template-columns: minmax(0, 1fr) 400px; column-gap: 36px; }
.woocommerce-checkout form.checkout.exo-paiement > .exo-paiement__col { grid-column: 1; }
.woocommerce-checkout form.checkout.exo-paiement > .exo-paiement__recap { grid-column: 2; grid-row: 1 / span 3; position: sticky; top: calc(var(--entete-h, 100px) + 20px); }
.exo-paiement__col { display: flex; flex-direction: column; gap: 14px; min-width: 0; }

/* Étapes */
.exo-cmd-etape { background: var(--carte); border: 1px solid var(--bordure); border-radius: 16px; padding: 20px 22px; transition: border-color .2s, opacity .2s; }
.exo-cmd-etape__tete { display: flex; align-items: center; gap: 12px; }
.exo-cmd-etape__num { width: 28px; height: 28px; flex: none; border-radius: 50%; display: grid; place-content: center; font-size: 12.5px; font-weight: 700; border: 1.5px solid var(--bordure-carte); color: var(--texte-2); }
.woocommerce-checkout .exo-cmd-etape__titre { margin: 0; font: 600 12.5px var(--f-texte); letter-spacing: .16em; text-transform: uppercase; color: var(--texte-2); }
.exo-cmd-etape__modifier { display: none; margin-left: auto; background: none; border: 0; padding: 6px 0; color: var(--texte-2); font: 500 13px var(--f-texte); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.exo-cmd-etape__modifier:hover { color: var(--jaune-clair); }
.exo-cmd-etape__resume { display: none; margin: 8px 0 0 40px; font-size: 14px; line-height: 1.55; white-space: pre-line; color: var(--texte); }
.exo-cmd-etape__corps { margin-top: 18px; }
.exo-cmd-etape__suite { margin-top: 18px; width: 100%; min-height: 52px; display: flex; align-items: center; justify-content: center; gap: 10px; }
.exo-cmd-etape__erreur { margin: 14px 0 0; font-size: 13px; color: var(--rouge, #ff4d4d); }
.exo-paiement:not(.exo-etapes-actif) .exo-cmd-etape__suite { display: none; }

.exo-etapes-actif .exo-cmd-etape:not(.is-ouverte) .exo-cmd-etape__corps { display: none; }
.exo-etapes-actif .exo-cmd-etape.is-ouverte { border-color: var(--jaune); }
.exo-etapes-actif .exo-cmd-etape.is-ouverte .exo-cmd-etape__titre { color: var(--jaune-clair); }
.exo-etapes-actif .exo-cmd-etape.is-ouverte .exo-cmd-etape__num { background: var(--jaune); border-color: var(--jaune); color: var(--sur-jaune); }
.exo-etapes-actif .exo-cmd-etape.is-faite .exo-cmd-etape__modifier,
.exo-etapes-actif .exo-cmd-etape.is-faite .exo-cmd-etape__resume { display: block; }
.exo-etapes-actif .exo-cmd-etape.is-faite .exo-cmd-etape__num { background: #35e08a; border-color: #35e08a; color: #052513; font-size: 0; }
.exo-etapes-actif .exo-cmd-etape.is-faite .exo-cmd-etape__num::after { content: "✓"; font-size: 13px; }
.exo-etapes-actif .exo-cmd-etape.is-a-venir { opacity: .55; }

/* Contenu des étapes */
.exo-cmd-etape .woocommerce-billing-fields > h3 { display: none; }
.exo-cmd-etape .col2-set { margin: 0; }
.exo-cmd-etape #ship-to-different-address { margin-top: 6px; }
.exo-livraison-choix__table { width: 100%; border: 0 !important; background: none !important; border-collapse: collapse; }
.exo-livraison-choix__table td { padding: 0 !important; border: 0 !important; background: none !important; }
.exo-livraison-choix .exo-liv__titre { display: none; }
.exo-livraison-choix__vide { margin: 0; color: var(--texte-2); font-size: 14px; }
.exo-cmd-etape .exo-cadeau { margin-top: 18px; }
.woocommerce-checkout .exo-cmd-etape #payment { margin-top: 0; }

/* Récapitulatif */
.exo-paiement__recap { background: var(--carte); border: 1px solid var(--bordure-carte); border-radius: 18px; padding: 22px; min-width: 0; }
.exo-paiement__recap #order_review_heading { margin: 0 0 12px; }
.exo-paiement__recap #order_review { background: none; border: 0; padding: 0; }
.exo-recap-table { width: 100%; }
#order_review .exo-recap-table td, #order_review .exo-recap-table th { padding: 8px 0 !important; }
#order_review .exo-recap-table tbody tr:first-child td { border-top: 0 !important; }
#order_review .exo-recap-table tbody td { border-top: 0 !important; }
.exo-recap-article { display: flex; align-items: center; gap: 12px; }
.exo-recap-article__photo { position: relative; flex: none; }
.exo-recap-article__photo img { display: block; width: 56px !important; height: 56px !important; object-fit: cover; object-position: 50% 0; border-radius: 10px; border: 1px solid var(--bordure-carte); background: #fff; }
.exo-recap-article__qte { position: absolute; top: -7px; right: -7px; min-width: 20px; height: 20px; padding: 0 5px; box-sizing: border-box; border-radius: 10px; background: var(--jaune); color: var(--sur-jaune); font-size: 11px; font-weight: 700; display: grid; place-content: center; }
.exo-recap-article__texte { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.exo-recap-article__nom { font: 600 13.5px/1.35 var(--f-carte); color: var(--texte); }
.exo-recap-article__texte dl.variation { margin: 0; font-size: 11.5px; color: var(--texte-2); }
.exo-recap-article__texte dl.variation dt, .exo-recap-article__texte dl.variation dd { display: inline; margin: 0; }
.exo-recap-article__texte dl.variation dd p { display: inline; margin: 0; }
#order_review .exo-recap-table tfoot tr:first-child th, #order_review .exo-recap-table tfoot tr:first-child td { border-top: 1px solid var(--bordure) !important; padding-top: 14px !important; }
#order_review .exo-recap-table tfoot th { font-weight: 400; font-size: 14px; color: var(--texte-2); text-align: left; }
#order_review .exo-recap-table tfoot td { font-size: 14px; }
#order_review .exo-recap-table .order-total th, #order_review .exo-recap-table .order-total td { border-top: 1px solid var(--bordure) !important; padding-top: 14px !important; }
#order_review .exo-recap-table .order-total th { font-weight: 600; color: var(--texte); font-size: 15px; vertical-align: baseline; }
#order_review .exo-recap-table .order-total .amount { font-size: 26px; color: var(--texte); }
#order_review .exo-recap-table .exo-tva-ligne td { font-size: 11.5px; color: var(--texte-2); padding-top: 0 !important; }

.exo-recap-code { margin-top: 10px; border-top: 1px solid var(--bordure); padding-top: 4px; }
.exo-recap-code summary { cursor: pointer; font-size: 13px; color: var(--texte-2); padding: 10px 0; list-style: none; }
.exo-recap-code summary::-webkit-details-marker { display: none; }
.exo-recap-code summary::before { content: "+"; display: inline-grid; place-content: center; width: 20px; height: 20px; margin-right: 8px; border-radius: 50%; border: 1px solid var(--bordure-carte); font-size: 14px; }
.exo-recap-code[open] summary::before { content: "−"; }
.exo-recap-code summary:hover { color: var(--texte); }
.exo-recap-code__ligne { display: flex; gap: 8px; }
.exo-recap-code__ligne .input-text { flex: 1; min-width: 0; height: 44px; box-sizing: border-box; }
.woocommerce .exo-recap-code__ligne .button { min-height: 44px; padding: 0 16px; font-size: 11.5px; width: auto; }
.exo-recap-code__message:not(:empty) { margin-top: 10px; font-size: 13px; }
.exo-recap-code__message .woocommerce-error, .exo-recap-code__message .woocommerce-message { margin: 0 !important; padding: 10px 12px 10px 38px !important; font-size: 13px; }

@media (max-width: 989px) {
	.woocommerce-checkout form.checkout.exo-paiement { grid-template-columns: minmax(0, 1fr); }
	.woocommerce-checkout form.checkout.exo-paiement > .exo-paiement__recap { grid-column: 1; grid-row: auto; position: static; }
	.exo-entete__retour-panier { display: none; }
}
@media (max-width: 749px) {
	.exo-etapes-barre { gap: 8px; font-size: 12px; }
	.exo-etapes-barre__trait { width: 18px; }
	.exo-cmd-etape { padding: 16px; }
	.exo-cmd-etape__resume { margin-left: 0; }
}
/* Bandeau diagonal coupé au bord de la photo : avec le cadre « carte imprimée », la photo est plus petite que la zone
   image, le bandeau débordait dans la marge. Il est maintenant dans un cadre aux mêmes dimensions que la photo. */
.exo-coin-cadre { position: absolute; inset: 0; z-index: 3; overflow: hidden; pointer-events: none; }
body.photos-cadre .exo-coin-cadre { inset: 10px; border-radius: 12px; }
@media (max-width: 749px) { body.photos-cadre .exo-coin-cadre { inset: 6px; border-radius: 9px; } }
@media (min-width: 1200px) { body.photos-cadre .exo-catalogue .exo-coin-cadre { inset: 8px; } }

/* ---------- Panier mélangé (précommande + stock) : encart et fenêtre « tout partira ensemble » (panier.php) ---------- */
.exo-encart--melange { border-left: 4px solid var(--pre-a, var(--jaune)); }
dialog.exo-melange {
	width: min(520px, calc(100vw - 32px));
	max-height: calc(100dvh - 32px);
	padding: 0;
	border: 1px solid var(--bordure);
	border-top: 4px solid var(--pre-a, var(--jaune));
	border-radius: 16px;
	background: var(--carte);
	color: var(--texte);
	box-shadow: 0 30px 80px rgba(0, 0, 0, .55);
	overflow: auto;
}
dialog.exo-melange::backdrop { background: rgba(5, 6, 12, .72); backdrop-filter: blur(3px); }
.exo-melange__boite { position: relative; margin: 0; padding: 26px 26px 22px; }
.exo-melange__fermer { position: absolute; top: 10px; right: 12px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: transparent; color: var(--texte-2); font-size: 24px; line-height: 1; cursor: pointer; }
.exo-melange__fermer:hover { color: var(--texte); background: var(--surface); }
.exo-melange__sur { margin: 0 0 4px; font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--pre-a, var(--jaune)); }
.exo-melange h2 { margin: 0 0 12px; padding-right: 30px; font-family: var(--f-titre); font-size: 22px; line-height: 1.2; color: var(--texte); }
.exo-melange__texte, .exo-melange__astuce { margin: 0 0 14px; font-size: 14px; line-height: 1.55; color: var(--texte-2); }
.exo-melange__texte strong, .exo-melange__astuce strong { color: var(--texte); }
.exo-melange__liste { list-style: none; margin: 0 0 16px; padding: 0; border-top: 1px solid var(--bordure); }
.exo-melange__liste li { display: flex; flex-direction: column; gap: 2px; padding: 9px 0 9px 14px; border-bottom: 1px solid var(--bordure); border-left: 3px solid #35e08a; font-size: 14px; }
.exo-melange__liste li.is-preco { border-left-color: var(--pre-a, var(--jaune)); }
.exo-melange__liste span { font-weight: 600; }
.exo-melange__liste em { font-style: normal; font-size: 12.5px; color: var(--texte-2); }
.exo-melange__liste li.is-preco em { color: var(--pre-a, var(--jaune)); }
.exo-melange__liste li.is-demande { border-left-color: var(--dem-a, #a78bfa); }
.exo-melange__liste li.is-demande em { color: var(--dem-a, #a78bfa); } /* Sur demande : sa propre couleur (comme son bandeau). */
.exo-melange__boutons { display: flex; flex-wrap: wrap; gap: 10px; }
.exo-melange__boutons .exo-btn { flex: 1 1 200px; justify-content: center; }
@media (max-width: 480px) { .exo-melange__boite { padding: 22px 18px 18px; } .exo-melange h2 { font-size: 19px; } }
body dialog.exo-melange .exo-melange__boite h2 { margin: 0 0 12px; padding: 0 30px 0 0; border: 0; font-family: var(--f-titre); font-size: 22px; font-weight: 700; line-height: 1.2; letter-spacing: 0; text-transform: none; color: var(--texte); }
@media (max-width: 480px) { body dialog.exo-melange .exo-melange__boite h2 { font-size: 19px; } }

/* ---------- Rappels « Ma demande » : panier, paiement, après la commande (sur-demande.php) ---------- */
.exo-encart--rappel-demande { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin: 0 0 20px; border-left: 4px solid var(--dem-a, #a78bfa); }
.exo-encart--rappel-demande p { flex: 1 1 320px; margin: 0; }
.exo-encart--rappel-demande .exo-btn { flex: 0 0 auto; }
.exo-paiement-demande { margin: 0 0 18px; border-left: 4px solid var(--dem-a, #a78bfa); }
.exo-paiement-demande__case { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; font-size: 14.5px; line-height: 1.45; color: var(--texte); }
.exo-paiement-demande__case input { flex: 0 0 auto; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--dem-a, #a78bfa); }
.exo-paiement-demande__note { margin: 8px 0 0 28px; font-size: 13px; line-height: 1.5; color: var(--texte-2); }

/* ---------- Fiche produit (ordinateur) : suite de la colonne de gauche, sous les Caractéristiques (exomori.js) ---------- */
.exo-fiche__gauche-suite { grid-column: 1 / -1; display: grid; gap: 18px; margin-top: 18px; }
.exo-fiche__gauche-suite[hidden] { display: none; }
.exo-fiche__gauche-suite > details { margin: 0; padding: 18px 20px; border: 1px solid var(--bordure-carte, var(--bordure)); border-radius: var(--r-md); background: var(--carte); }
.exo-fiche__gauche-suite > details.sans-taille { display: none; }
.exo-fiche__gauche-suite > details > summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0; padding: 0; list-style: none; cursor: pointer; font: 700 13px/1 var(--f-texte); letter-spacing: .16em; text-transform: uppercase; color: var(--texte); }
.exo-fiche__gauche-suite > details > summary::-webkit-details-marker { display: none; }
.exo-fiche__gauche-suite > details > summary::before { content: ""; flex: 0 0 4px; height: 16px; border-radius: 2px; background: var(--jaune); box-shadow: 0 0 10px color-mix(in srgb, var(--jaune) 60%, transparent); }
.exo-fiche__gauche-suite > details > summary > span:first-child,
.exo-fiche__gauche-suite > details > summary { justify-content: flex-start; }
.exo-fiche__gauche-suite > details > summary::after { content: "+"; margin-left: auto; font-size: 18px; letter-spacing: 0; color: var(--texte-2); transition: transform .2s; }
.exo-fiche__gauche-suite > details[open] > summary::after { transform: rotate(45deg); }
.exo-fiche__gauche-suite > details > .exo-texte { margin-top: 14px; }
.exo-fiche__gauche-suite .exo-taille { margin: 0; }
.exo-fiche__gauche-suite .exo-fiche__fan { margin: 0; }
.exo-fiche__gauche-suite .exo-fiche__faq-lien { margin: 0; padding: 0 4px; }

/* ---------- Cartes cadeaux : « Offrir » dans les icônes de l'en-tête (ordinateur), onglet du bord gauche sur téléphone ---------- */
@media (min-width: 750px) { .exo-onglet-cadeau { display: none; } }
.exo-fiche__offrir a { color: var(--jaune); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.exo-fiche__offrir a:hover { color: var(--texte); }

/* ---------- « Offrir » dans la bande du menu, à droite de Promotions (inc/woocommerce.php) ---------- */
.exo-menu__liste .exo-offrir > a { display: inline-flex; align-items: center; gap: 7px; }
.exo-menu__liste .exo-offrir .exo-ico { width: 17px; height: 17px; color: var(--jaune); flex: 0 0 auto; }
.exo-menu__liste .exo-offrir > a:hover .exo-ico { filter: drop-shadow(0 0 6px color-mix(in srgb, var(--jaune) 60%, transparent)); }
@media (min-width: 990px) { .exo-menu__liste .exo-offrir { margin-left: 4px; } }
/* « Cartes cadeaux » : icône seule dans la bande ; dans le menu du téléphone (burger), le texte s'affiche à côté. */
.exo-menu__liste .exo-offrir .exo-ico { width: 30px; height: 30px; stroke-width: 1.7; color: #f5f6ff; }
.exo-menu__liste .exo-offrir > a:hover .exo-ico { color: var(--promo, #e6ff1f); } /* 01/11/2026 : plus grande, icône carte cadeau (Kevin). */
@media (max-width: 1199px) {
	.exo-menu__liste .exo-offrir .screen-reader-text { position: static !important; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; }
}
/* Taille réelle : canette de 33 cl à côté du pictogramme (fiche-produit.php). */
.exo-taille__canette rect:first-child { fill: #5c6390; }
.exo-taille__canette-bande { fill: #7a82b5; }
.exo-taille__canette-haut { fill: #a9aecb; opacity: .6; }
.exo-taille__canette-txt { fill: #161a2e; font: 700 13px var(--f-texte); text-anchor: middle; }
.exo-taille__val { paint-order: stroke; stroke: var(--carte); stroke-width: 4px; }

/* Filtre « Univers » : 10 licences les plus fournies, puis les autres de A à Z dans une liste qui défile seule. */
.exo-filtre__sous { clear: both; margin: 2px 0 4px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--texte-2); }
.exo-filtre__tout { clear: both; margin-top: 8px; border: 1px solid var(--bordure); border-radius: 10px; background: color-mix(in srgb, var(--carte) 80%, transparent); }
.exo-filtre__tout > summary { display: flex; align-items: center; gap: 8px; padding: 9px 12px; cursor: pointer; list-style: none; font-size: 13px; font-weight: 600; color: var(--texte); }
.exo-filtre__tout > summary::-webkit-details-marker { display: none; }
.exo-filtre__tout > summary::after { content: ""; margin-left: auto; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .2s; }
.exo-filtre__tout[open] > summary::after { transform: rotate(-135deg) translateY(-2px); }
.exo-filtre__tout > summary small { font-size: 11px; font-weight: 500; color: var(--texte-2); }
.exo-filtre__defile { max-height: 260px; overflow-y: auto; overscroll-behavior: contain; padding: 0 10px 8px 12px; border-top: 1px solid var(--bordure); scrollbar-width: thin; scrollbar-color: var(--jaune) transparent; }

/* Fiche produit : chaque photo entière (rien n'est coupé) ; les côtés vides sont remplis par la même photo, floutée. */
/* Pas de filtre CSS « blur » : il mettait la photo dans un calque à part que Chrome découpait en tuiles (fine ligne sombre en travers de la photo sur certains écrans).
   La vignette de 100 px agrandie est floue d'elle-même ; un dégradé l'assombrit. */
.exo-fiche__principale > img { position: relative; z-index: 1; object-fit: contain; object-position: 50% 50%; }
/* 18/10/2026 : le fond flou et la photo sont chacun dans leur propre calque (vraies images, translateZ) : plus de fine ligne sombre avec l'accélération graphique de Chrome. */
.exo-fiche__principale > img { transform: translateZ(0); will-change: transform; }
.exo-fiche__flou { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.exo-fiche__flou img { position: absolute; left: -100%; top: -100%; width: 300% !important; height: 300% !important; max-width: none !important; object-fit: cover; transform: translateZ(0); will-change: transform; }
.exo-fiche__voile { position: absolute; inset: 0; z-index: 0; background: rgba(0, 0, 0, .3); transform: translateZ(0); pointer-events: none; }
/* Fiche : date de sortie estimée d'une précommande, à la couleur du bandeau Précommande. */
.exo-fiche__pastille--sortie { border-color: color-mix(in srgb, var(--pre-b) 60%, transparent); background: linear-gradient(180deg, var(--pre-a), var(--pre-b)); color: var(--sur-pre); }
/* La colonne de filtres défile avec la page (plus de colonne « collée » qui accroche au défilement). */
.exo-filtres { position: static; }

/* Aucun débordement sur le côté (téléphone) : un texte caché pour les lecteurs d'écran, placé dans une rangée
   qui défile de côté, élargissait la page (fond visible en glissant vers la droite). */
body { overflow-x: clip; }
.exo-rangee ul.products, .exo-sorties__frise, .exo-ubar__liste { position: relative; }

/* Menu du téléphone (burger) : Promotions et Cartes cadeaux en tête, Univers (longue liste) après Précommandes
   et Sur demande ; plus de barre lumineuse qui traverse la liste en défilant ; onglet « Cartes cadeaux » caché
   pendant que le menu est ouvert ; pastilles FR / 80 € / Trustpilot qui passent à la ligne. */
@media (max-width: 1199px) {
	.exo-menu__liste > li.exo-promo, .exo-menu__liste > li.exo-offrir { order: -1; }
	.exo-menu__liste > li.exo-univers { order: 1; }
	.exo-menu__liste > li.exo-promo { margin-bottom: 4px; }
	.exo-menu__liste .exo-offrir .screen-reader-text { clip-path: none !important; width: auto !important; height: auto !important; margin: 0 !important; overflow: visible !important; }
	.exo-menu__liste .exo-offrir > a { display: flex; align-items: center; gap: 10px; }
	body.exo-menu-ouvert .exo-bande::after { display: none; }
	body.exo-menu-ouvert .exo-onglet-cadeau { display: none; }
	.exo-bande__infos { flex-wrap: wrap; row-gap: 6px; max-width: calc(100vw - 40px); }
}
/* Téléphone : burger, logo et 3 icônes (profil, favoris, panier) sur une seule ligne. */
@media (max-width: 600px) {
	.exo-entete__haut { column-gap: 14px; }
	.exo-entete__haut > .exo-logo { min-width: 0; }
	.exo-entete__haut > .exo-logo svg { max-width: 100%; height: auto; }
	.exo-icones { gap: 12px; }
}
/* Téléphone : bouton d'un message (ex. « Renvoyer », « Voir le panier ») sous le texte, pas serré à côté. */
@media (max-width: 600px) {
	.woocommerce-info, .woocommerce-message { flex-wrap: wrap; }
	.woocommerce-info .button, .woocommerce-message .button { float: none !important; order: 9; width: 100%; margin: 12px 0 0 !important; text-align: center; }
}

/* Grand format : livraison à domicile uniquement (fiche produit) */
.exo-fiche__grand-format { margin: 10px 0 0; padding: 9px 12px; border: 1px solid var(--bordure, #262c4a); border-left: 3px solid var(--jaune); border-radius: 10px; font-size: 13.5px; color: var(--texte-2, #a9aecb); }
.exo-fiche__grand-format strong { color: var(--texte, #f5f6ff); }

/* Point relais choisi à la main (paiement, étape Livraison) */
.exo-relais { margin: 16px 0 6px; padding: 14px 16px; border: 1px solid var(--bordure, #262c4a); border-left: 3px solid var(--jaune); border-radius: 12px; background: rgba(255, 255, 255, .03); }
.exo-relais[hidden] { display: none; }
.exo-relais__lib { display: block; font-weight: 700; color: var(--texte, #f5f6ff); }
.exo-relais__aide { margin: 6px 0 10px; font-size: 13.5px; line-height: 1.5; color: var(--texte-2, #a9aecb); }
.exo-relais__carte { font-weight: 700; color: var(--jaune); }
.exo-relais__carte[hidden] { display: none; }
.exo-relais textarea { width: 100%; box-sizing: border-box; }
.exo-relais__erreur { margin: 8px 0 0; font-size: 13px; color: #ff6b6b; }
.exo-relais__erreur[hidden] { display: none; }

/* Plus de touches japonaises (choix de Kevin, 06/10/2026) : sous-titres des rangées, filigranes, bulles. */
[lang="ja"], .exo-jp, .exo-rangee__trait, .exo-rangee__jp, .exo-accueil-collec__jp, .exo-bulle-demande__jp, .exo-heros__kanji, .exo-heros__jp, .exo-pola__vide { display: none !important; }

/* Badge « Bêta » à côté du logo (Réglages › Boutique) */
.exo-logo { position: relative; }
.exo-beta { position: absolute; top: -6px; right: -50px; padding: 3px 7px 2px; border: 1px solid var(--jaune); border-radius: 6px; background: rgba(0, 0, 0, .35); font-family: var(--f-titre), sans-serif; font-size: 10px; font-weight: 700; line-height: 1; letter-spacing: .14em; text-transform: uppercase; color: var(--jaune); transform: rotate(8deg); }
@media (max-width: 1199px) { .exo-beta { top: -8px; right: -40px; font-size: 9px; } }

/* Cartes cadeaux : choix du design */
.exo-cc__designs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.exo-cc__design { position: relative; display: grid; gap: 6px; cursor: pointer; }
.exo-cc__design input { position: absolute; opacity: 0; pointer-events: none; }
.exo-cc__design img { display: block; width: 100%; height: auto; border-radius: 10px; border: 2px solid transparent; transition: border-color .2s, transform .2s; }
.exo-cc__design span { font-size: 13px; font-weight: 700; text-align: center; color: var(--texte-2, #a9aecb); }
.exo-cc__design:hover img { transform: translateY(-2px); }
.exo-cc__design input:checked + img { border-color: var(--cc); box-shadow: 0 0 0 3px rgba(255, 255, 255, .06), 0 6px 20px rgba(0, 0, 0, .4); }
.exo-cc__design input:checked ~ span { color: var(--cc); }
.exo-cc__design input:focus-visible + img { outline: 2px solid var(--cc); outline-offset: 2px; }
.exo-beta-pastille { display: inline-block; margin-left: 8px; padding: 3px 7px 2px; border: 1px solid var(--jaune); border-radius: 6px; font-family: var(--f-titre), sans-serif; font-size: 10px; font-weight: 700; line-height: 1; letter-spacing: .14em; text-transform: uppercase; color: var(--jaune); vertical-align: middle; transform: rotate(-4deg); }
.woocommerce-MyAccount-navigation-link--mon-album a::after { content: "En développement"; display: inline-block; margin-left: 8px; white-space: nowrap; /* 31/10 : « Bêta » → « En développement » (Kevin) */ padding: 2px 6px 1px; border: 1px solid var(--jaune); border-radius: 5px; font-family: var(--f-titre), sans-serif; font-size: 9.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--jaune); vertical-align: middle; }

/* ---------- Page introuvable (404) ---------- */
.exo-404 { max-width: 760px; text-align: center; padding-bottom: 60px; }
.exo-404__code { font-family: var(--f-titre); font-size: clamp(72px, 14vw, 140px); line-height: 1; margin: 0; color: transparent; -webkit-text-stroke: 2px var(--jaune); opacity: .8; }
.exo-404__texte { color: var(--texte-2); max-width: 560px; margin: 12px auto 0; line-height: 1.6; }
.exo-404__recherche { display: flex; gap: 10px; max-width: 560px; margin: 0 auto 28px; }
.exo-404__recherche input { flex: 1; min-width: 0; background: var(--surface); border: 1px solid var(--bordure); color: var(--texte); border-radius: 999px; padding: 12px 18px; font: inherit; }
.exo-404__recherche input:focus { outline: 2px solid var(--jaune); outline-offset: 1px; }
.exo-404__liens { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 28px; }
.exo-404__liens a { padding: 9px 16px; border: 1px solid var(--bordure); border-radius: 999px; background: var(--carte); color: var(--texte); text-decoration: none; font-weight: 600; font-size: 14px; }
.exo-404__liens a:hover { border-color: var(--jaune); color: var(--jaune); }
.exo-404__accueil a { color: var(--texte-2); }
@media (max-width: 600px) { .exo-404__recherche { flex-direction: column; } }

/* Page Univers sur téléphone : 3 cartes par ligne, plus compactes (une carte par ligne faisait ~51 000 px de haut). */
@media (max-width: 600px) {
	.exo-univers-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
	.exo-univers-carte { border-radius: 12px; }
	.exo-univers-carte__nom { padding: 8px 8px 1px; font-size: 12.5px; line-height: 1.25; letter-spacing: .01em; overflow-wrap: anywhere; }
	.exo-univers-carte__nb { padding: 0 8px 8px; font-size: 11px; }
	.exo-univers-carte--logo .exo-univers-carte__img { padding: 12%; }
}
@media (max-width: 360px) { .exo-univers-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Badge « Bêta » sur téléphone : sous la fin du logo (il chevauchait l'icône du compte). */
@media (max-width: 749px) { .exo-beta { top: auto; bottom: -11px; right: -4px; font-size: 8.5px; padding: 2px 5px 1px; transform: rotate(-3deg); } }

/* Intro courte sous le titre des pages univers */
.exo-cat-tete .exo-cat-tete__intro { position: relative; max-width: 720px; margin: 14px auto 0; font-size: 15px; line-height: 1.55; color: var(--texte-2, #a9aecb); text-align: center; }

/* Paiement : relais Sendcloud pas encore choisi (étape 2). */
.exo-relais-sc-alerte { margin: 10px 0 0; padding: 10px 14px; border-radius: 10px; font-size: 14px; list-style: none; }

/* ===== Retouches confort et ergonomie (09/10/2026) ===== */

/* Panier, téléphone : la 3e colonne prend la largeur du prix (il était coupé au bord de l'écran). */
@media (max-width: 749px) {
	.exo-panier__ligne { grid-template-columns: 84px minmax(0, 1fr) auto; }
	.exo-panier__prix { white-space: nowrap; }
}

/* Mentions des cartes (« Réservation ouverte… », « Commandée pour vous ») : version courte selon la largeur réelle
   de la carte, partout (rangées de l'accueil comprises) ; un peu plus petites sur les cartes très étroites (téléphone). */
ul.products li.exo-carte { container-type: inline-size; }
@container (max-width: 262px) {
	.exo-carte__dispo-suite, .exo-carte__dispo-long { display: none; }
	.exo-carte__dispo-court { display: inline; }
}
@container (max-width: 190px) {
	.exo-carte__dispo { font-size: 10.5px; letter-spacing: 0; }
}

/* Fiche produit, téléphone : barre « Commander » fixe en bas (content-single-product.php + exomori.js). */
.exo-barre-achat[hidden] { display: none !important; }
.exo-barre-achat {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
	display: flex; align-items: center; gap: 12px;
	padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
	background: color-mix(in srgb, var(--carte) 94%, transparent);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	border-top: 1px solid var(--bordure); box-shadow: 0 -10px 30px rgba(0, 0, 0, .45);
	animation: exoBarreAchat .25s ease-out;
}
@keyframes exoBarreAchat { from { transform: translateY(100%); } to { transform: none; } }
@media (prefers-reduced-motion: reduce) { .exo-barre-achat { animation: none; } }
.exo-barre-achat__img { flex: 0 0 44px; width: 44px; height: 44px; border-radius: 8px; object-fit: cover; object-position: 50% 0; background: #fff; }
.exo-barre-achat__txt { flex: 1; min-width: 0; display: grid; gap: 2px; }
.exo-barre-achat__nom { font: 700 13px/1.25 var(--f-carte); color: var(--texte); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.exo-barre-achat__prix { font-size: 15px; font-weight: 700; color: var(--texte); }
.exo-barre-achat__btn { flex: none; width: auto; min-height: 44px; padding: 0 18px; font-size: 12px; }
@media (min-width: 990px) { .exo-barre-achat { display: none !important; } }
body.exo-barre-achat-on { padding-bottom: 76px; }
body.exo-barre-achat-on .exo-bulle-demande { bottom: 84px; }

/* Menu du téléphone : sous-menus repliés, flèche pour les ouvrir (exomori.js). */
.exo-sm-toggle { display: none; }
@media (max-width: 1199px) {
	.exo-menu__liste > li.menu-item-has-children { position: relative; }
	.exo-menu__liste > li.menu-item-has-children > .sub-menu { display: none !important; }
	.exo-menu__liste > li.menu-item-has-children.is-deplie > .sub-menu { display: block !important; }
	.exo-menu__liste > li.menu-item-has-children > a { padding-right: 52px; }
	.exo-sm-toggle {
		display: grid; place-items: center; position: absolute; top: 0; right: 0;
		width: 48px; height: 46px; padding: 0; border: 0; background: none; color: var(--texte); cursor: pointer;
	}
	.exo-sm-toggle::before {
		content: ""; width: 8px; height: 8px; margin-top: -4px;
		border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .2s, margin .2s;
	}
	.is-deplie > .exo-sm-toggle::before { transform: rotate(225deg); margin-top: 4px; }
	.exo-menu__liste > .menu-item-has-children > a::after { display: none; }
}

/* Téléphone : icônes de l'en-tête (compte, favoris, panier) et burger plus faciles à toucher (zone de 44 px). */
@media (max-width: 1199px) {
	.exo-icone { min-width: 44px; min-height: 44px; }
	.exo-burger { min-width: 44px; min-height: 44px; }
}
@media (max-width: 600px) {
	.exo-icones { gap: 0; }
	.exo-entete__haut { column-gap: 8px; }
}

/* Page Univers : « Licences populaires » avant la liste de A à Z (univers.php). */
.exo-univers-bloc__titre { margin: 26px 0 12px; font: 700 15px/1.2 var(--f-titre); letter-spacing: .12em; text-transform: uppercase; color: var(--texte); }
.exo-univers-bloc__titre::after { content: ""; display: block; width: 46px; height: 3px; margin-top: 8px; border-radius: 2px; background: var(--jaune); }
.exo-univers-bloc .exo-univers-grille { margin-bottom: 10px; }
.exo-univers-bloc[hidden], .exo-univers-bloc[hidden] + .exo-univers-bloc__titre { display: none; }

/* Panier vide : raccourcis + 4 figurines (inc/woocommerce.php). */
.exo-panier-vide { margin: 28px 0 10px; text-align: center; }
.exo-panier-vide__titre { margin: 0 0 14px; font: 700 20px/1.2 var(--f-titre); color: var(--texte); }
.exo-panier-vide__liens { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 30px; }
.exo-panier-vide__lien { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border: 1px solid var(--bordure-carte); border-radius: 999px; background: var(--carte); color: var(--texte); font-size: 13.5px; font-weight: 600; text-decoration: none; }
.exo-panier-vide__lien:hover { border-color: var(--jaune); color: var(--jaune-clair); }
.exo-panier-vide__lien.is-preco { border-color: color-mix(in srgb, var(--pre-b) 60%, transparent); color: var(--pre-b); }
.exo-panier-vide__lien.is-demande { border-color: color-mix(in srgb, var(--dem-a) 60%, transparent); color: var(--dem-a); }
.exo-panier-vide__lien.is-promo { border-color: color-mix(in srgb, var(--rouge-tag) 60%, transparent); color: var(--rouge-tag); }
.exo-panier-vide__sous { margin: 0 0 14px; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--texte-2); }
.exo-panier-vide__produits { text-align: left; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; list-style: none; margin: 0; padding: 0; }
@media (max-width: 989px) { .exo-panier-vide__produits { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }

/* Paiement : « — OU — » masqué quand aucun bouton Apple Pay / Google Pay ne s'affiche (paiement.js). */
.exo-sans-express #wc-stripe-express-checkout-button-separator { display: none !important; }
@media (max-width: 1199px) { .exo-burger { display: grid; place-items: center; } }
/* Panier vide : sur toute la largeur (la page panier est en 2 colonnes) ; le bouton « Retour à la boutique » fait doublon. */
.woocommerce > .exo-panier-vide { grid-column: 1 / -1; }
.exo-panier-vide ~ .return-to-shop { display: none; }
/* Page Univers : les 8 licences populaires en 2 rangées de 4 sur ordinateur. */
@media (min-width: 990px) { .exo-univers-bloc--populaires .exo-univers-grille { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* Pages catalogue, téléphone et tablette (maquette validée le 09/10/2026) : titre compact avec le nombre de produits,
   « Filtres » et « Trier » côte à côte ; le panneau des filtres s'ouvre par-dessus les produits. */
.exo-cat-tete__nb { display: none; }
@media (max-width: 989px) {
	body:has(.exo-catalogue) .exo-ariane { display: none; }
	.exo-cat-tete { padding: 14px 16px; margin-bottom: 12px; text-align: left; border-radius: 12px; }
	.exo-cat-tete__fond { display: none; }
	.exo-wc h1.exo-cat-tete__titre, .exo-cat-tete .exo-cat-tete__titre { font-size: 24px; letter-spacing: .06em; text-align: left; }
	.exo-cat-tete__titre::after { display: none; }
	.exo-cat-tete__nb { display: block; position: relative; margin-top: 4px; font-size: 13px; color: var(--texte-2); }
	.exo-cat-tete .exo-cat-tete__intro { margin: 6px 0 0; font-size: 13px; text-align: left; }

	.exo-catalogue { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; position: relative; }
	.exo-catalogue__liste { display: contents; }
	.exo-catalogue__liste > * { grid-column: 1 / -1; }
	.exo-catalogue > .exo-filtres { grid-column: 1; grid-row: 1; padding: 0; border-radius: 10px; }
	.exo-catalogue__liste > .woocommerce-ordering { grid-column: 2; grid-row: 1; margin: 0; }
	.exo-catalogue__liste > .woocommerce-ordering select { height: 44px; font-size: 13px; }
	.exo-catalogue__liste > .woocommerce-result-count { display: none; }
	.exo-catalogue > .exo-filtres .exo-filtres__bouton { display: flex; align-items: center; justify-content: center; height: 44px; box-sizing: border-box; padding: 0 12px; }
	.exo-catalogue > .exo-filtres[open] .exo-filtres__bouton { padding-bottom: 0; border-bottom: 0; color: var(--jaune-clair); }
	.exo-catalogue > .exo-filtres[open] .exo-filtres__form {
		position: absolute; left: 0; right: 0; top: 54px; z-index: 40;
		max-height: 72vh; overflow-y: auto; overscroll-behavior: contain;
		padding: 6px 16px 16px; background: var(--carte); border: 1px solid var(--bordure-carte); border-radius: 12px;
		box-shadow: 0 18px 40px rgba(0, 0, 0, .55);
	}
}

/* Bande « nos atouts » sous l'en-tête (template-parts/atouts.php). */
.exo-atouts { background: color-mix(in srgb, var(--carte) 70%, transparent); border-bottom: 1px solid var(--bordure); }
.exo-atouts__liste { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0 auto; padding-block: 9px; list-style: none; }
.exo-atout a, .exo-atout { display: flex; align-items: center; justify-content: center; gap: 9px; color: var(--texte); text-decoration: none; min-width: 0; }
.exo-atout a:hover strong { color: var(--jaune-clair); }
.exo-atout .exo-ico { flex: 0 0 auto; width: 20px; height: 20px; color: var(--jaune); stroke-width: 2; }
.exo-atout span { min-width: 0; font-size: 12.5px; line-height: 1.25; }
.exo-atout strong { font-weight: 700; }
.exo-atout small { display: block; font-size: 11.5px; color: var(--texte-2); }
@media (max-width: 989px) {
	.exo-atouts__liste { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; gap: 18px; padding-block: 8px; }
	.exo-atouts__liste::-webkit-scrollbar { display: none; }
	.exo-atout { flex: 0 0 auto; scroll-snap-align: start; justify-content: flex-start; }
	.exo-atout small { display: inline; }
	.exo-atout span { white-space: nowrap; }
}
/* Précommande : « Pas encore décidé ? Être prévenu(e) de son arrivée » (retour-stock.php). */
.exo-prevenir-arrivee { margin: 12px 0 4px; border: 1px solid var(--bordure); border-radius: 12px; background: color-mix(in srgb, var(--carte) 80%, transparent); }
.exo-prevenir-arrivee > summary { display: flex; align-items: center; gap: 8px; padding: 10px 14px; cursor: pointer; list-style: none; font-size: 13.5px; font-weight: 600; color: var(--texte); }
.exo-prevenir-arrivee > summary::-webkit-details-marker { display: none; }
.exo-prevenir-arrivee > summary .exo-ico { width: 16px; height: 16px; color: var(--pre-b, var(--jaune)); }
.exo-prevenir-arrivee > summary::after { content: ""; margin-left: auto; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .2s; }
.exo-prevenir-arrivee[open] > summary::after { transform: rotate(-135deg); }
.exo-prevenir-arrivee .exo-prevenir { margin: 0; padding: 0 14px 12px; border: 0; background: none; }
.exo-prevenir-arrivee .exo-prevenir__titre { display: none; }
/* Bande des atouts plus visible (09/10/2026) : fond teinté de l'accent, icônes dans des pastilles, textes plus grands. */
.exo-atouts { background: linear-gradient(90deg, color-mix(in srgb, var(--jaune) 16%, var(--carte)), color-mix(in srgb, var(--jaune) 7%, var(--carte)) 50%, color-mix(in srgb, var(--jaune) 16%, var(--carte))); border-bottom: 1px solid color-mix(in srgb, var(--jaune) 45%, transparent); box-shadow: inset 0 1px 0 color-mix(in srgb, var(--jaune) 25%, transparent); }
.exo-atouts__liste { padding-block: 12px; gap: 16px; }
.exo-atout .exo-ico { width: 34px; height: 34px; padding: 7px; box-sizing: border-box; border-radius: 50%; background: var(--jaune); color: var(--sur-jaune, #111); stroke-width: 2.2; box-shadow: 0 0 14px color-mix(in srgb, var(--jaune) 45%, transparent); }
.exo-atout span { font-size: 14.5px; }
.exo-atout strong { font-weight: 800; letter-spacing: .01em; }
.exo-atout small { font-size: 12.5px; color: color-mix(in srgb, var(--texte) 78%, transparent); }
@media (max-width: 989px) {
	.exo-atouts__liste { padding-block: 10px; }
	.exo-atout .exo-ico { width: 30px; height: 30px; padding: 6px; }
	.exo-atout span { font-size: 13.5px; }
}
/* Emblème du chevalier à gauche du logo de l'en-tête (option exomori_logo_embleme). */
.exo-logo.has-embleme { padding-left: 64px; }
.exo-logo__embleme { position: absolute; left: 0; top: 50%; width: 54px; height: 54px; transform: translateY(-50%); filter: drop-shadow(0 0 10px rgba(0, 0, 0, .5)); }
@media (max-width: 1199px) {
	.exo-logo.has-embleme { padding-left: 46px; }
	.exo-logo__embleme { width: 38px; height: 38px; }
}
.exo-logo__embleme { background: none !important; border-radius: 50%; max-width: none; }

/* Emblème « chevalier seul » (sans rond) : un peu plus grand, sans cercle. */
.exo-logo__embleme[src*="chevalier-seul"] { border-radius: 0; width: 60px; height: 60px; filter: drop-shadow(0 2px 6px rgba(0,0,0,.6)); }
@media (max-width:1199px){ .exo-logo__embleme[src*="chevalier-seul"] { width: 42px; height: 42px; } }
.exo-logo__embleme[src*="chevalier-rouge"] { border-radius: 0; width: 62px; height: 62px; filter: drop-shadow(0 2px 6px rgba(0,0,0,.6)); }
@media (max-width:1199px){ .exo-logo__embleme[src*="chevalier-rouge"] { width: 44px; height: 44px; } }
.exo-logo__embleme[src*="hibou-ligne3"] { border-radius: 0; width: 60px; height: 60px; }
@media (max-width:1199px){ .exo-logo__embleme[src*="hibou-ligne3"] { width: 42px; height: 42px; } }
/* Tablette : avec un emblème, le logo ne s'étire plus sur toute la ligne (l'emblème restait collé au burger, loin du mot). */
@media (min-width: 601px) and (max-width: 1199px) {
	.exo-entete__haut > .exo-logo.has-embleme { flex: 0 1 auto; margin-inline: auto; }
}
/* Page /univers/ : pastilles de thèmes (Manga, Jeux vidéo…) au-dessus de la grille. */
.exo-univers-themes { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; max-width: 900px; margin: 0 auto 22px; }
.exo-univers-theme { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 16px; border: 1px solid var(--bordure-carte); border-radius: 999px; background: var(--carte); color: var(--texte); font: 600 13.5px/1 var(--f-texte); cursor: pointer; transition: border-color .2s, background .2s, color .2s; }
.exo-univers-theme small { font-size: 11.5px; font-weight: 700; color: var(--texte-2); }
.exo-univers-theme:hover { border-color: var(--jaune); }
.exo-univers-theme.is-actif { border-color: var(--jaune); background: var(--jaune); color: var(--sur-jaune); }
.exo-univers-theme.is-actif small { color: inherit; opacity: .75; }
@media (max-width: 600px) {
	.exo-univers-themes { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; margin-inline: -20px; padding: 0 20px 4px; scrollbar-width: none; }
	.exo-univers-theme { flex: none; }
}

/* Bas de page : « Gérer mes cookies » rouvre la bannière Complianz (18/10/2026) */
.exo-pied nav .exo-pied__lien-btn { background: none; border: 0; padding: 0; margin: 0; font: inherit; font-size: 14px; color: var(--texte-2); cursor: pointer; text-align: left; transition: color .2s; }
.exo-pied nav .exo-pied__lien-btn:hover { color: var(--jaune-clair); }

/* iPhone / écrans tactiles (18/10/2026) : un champ écrit en moins de 16 px fait zoomer Safari quand on le touche,
   et la page reste ensuite décalable sur le côté. 16 px = plus de zoom automatique. */
@media (pointer: coarse) {
	input[type="text"], input[type="search"], input[type="email"], input[type="tel"], input[type="number"],
	input[type="password"], input[type="url"], input[type="date"], input:not([type]), select, textarea { font-size: 16px !important; }
}

/* Fiche d'un produit épuisé en réassort chez le fournisseur (20/10/2026). */
.exo-prevenir__reassort { margin: 0 0 10px; padding: 10px 12px; border-radius: 10px; background: rgba(255, 255, 255, .05); border-left: 3px solid var(--jaune); font-size: 14px; line-height: 1.5; color: var(--texte-2, #a9aecb); }
.exo-prevenir__reassort strong { color: var(--texte, #f5f6ff); }


/* Fiche produit : barre « point relais offert » sous le bouton d'achat (21/10/2026) */
.exo-fiche__info .exo-barre-livraison { margin: 12px 0 4px; padding: 10px 14px; font-size: 13.5px; }
.exo-fiche__info .exo-barre-livraison p { margin: 0 0 8px; }

/* Code promo bien visible au panier et au paiement (25/10/2026) : toujours ouvert, encadré, astuce BIENVENUE5. */
.exo-code-promo { box-sizing: border-box; padding: 14px 16px; border: 1.5px dashed var(--jaune, #ffd23f); border-radius: 14px; background: color-mix(in srgb, var(--jaune, #ffd23f) 8%, transparent); }
.exo-panier__code.exo-code-promo { flex: 1 1 360px; max-width: 520px; }
.exo-recap-code.exo-code-promo { margin-top: 14px; padding-top: 14px; border-top: 1.5px dashed var(--jaune, #ffd23f); }
.exo-code-promo__titre { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; color: var(--texte, #f5f6ff); font-weight: 700; font-size: 15px; }
.exo-code-promo__titre svg { flex: none; color: var(--jaune, #ffd23f); }
.exo-code-promo__titre label { cursor: pointer; }
.exo-code-promo .coupon .input-text, .exo-code-promo .exo-recap-code__ligne .input-text { max-width: none; flex: 1; min-width: 0; height: 46px; font-size: 16px; }
.exo-code-promo .coupon { margin-top: 0; }
.exo-code-promo__astuce { margin: 10px 0 0; font-size: 13px; color: var(--texte-2, #a9aecb); }
.exo-code-promo__mettre { margin: 0 2px; padding: 3px 9px; border: 1.5px dashed var(--promo, #e5232f); border-radius: 8px; background: transparent; color: var(--texte, #f5f6ff); font: 800 13px/1.3 var(--f-titre, inherit); letter-spacing: .05em; cursor: pointer; }
.exo-code-promo__mettre:hover { background: var(--promo, #e5232f); color: var(--promo-texte, #fff); }

/* 25/10/2026 : panier : « Pas besoin de compte pour commander » sous le bouton (proceed-to-checkout-button.php). */
.exo-sans-compte { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 10px 0 0; font-size: 13px; font-weight: 600; color: var(--texte-2); text-align: center; }
.exo-sans-compte svg { color: #35e08a; flex: none; }
/* 25/10/2026 : téléphone : panier écarté des icônes compte et favoris (des visiteurs touchaient le compte au lieu du panier). */
@media (max-width: 600px) {
	.exo-icones { gap: 4px; }
	.exo-icones .exo-icone--panier { margin-left: 12px; }
}

/* Panneau « Kits à monter » : 2 colonnes avec le logo de chaque gamme (inc/menu-kits.php, 27/10/2026) */
.exo-menu__liste .exo-kits > .sub-menu { display: grid; grid-template-columns: repeat(2, minmax(220px, 1fr)); gap: 2px 6px; width: max-content; max-width: 560px; padding: 12px; }
.exo-sm__img--lumibricks { padding: 0; }
.exo-sm__img--lumibricks img { object-fit: cover; }
.exo-sm__img--photo { flex: 0 0 64px; width: 64px; height: 40px; background: #fff; }
.exo-sm__img--photo img { object-fit: contain; object-position: 50% 50%; }
.exo-menu__liste .exo-kits__tous a { color: var(--jaune); font-size: 13.5px; font-weight: 600; }
@media (max-width: 989px) {
	.exo-menu__liste .exo-kits > .sub-menu { display: block; width: auto; max-width: none; }
}

/* Précommande qui sort ce mois-ci ou le mois prochain : la remise s'arrête à la sortie (fiche-produit.php, 27/10/2026) */
.exo-encart--preco:has(.exo-encart__urgence) { flex-wrap: wrap; }
.exo-encart--preco:has(.exo-encart__urgence) > p:not(.exo-encart__urgence) { flex: 1 1 0; min-width: 0; }
.exo-encart__urgence { flex: 1 1 100%; margin: 2px 0 0; padding: 8px 12px; border-radius: var(--r-sm); background: color-mix(in srgb, var(--pre-b) 16%, transparent); border-left: 3px solid var(--pre-b); color: var(--texte); font-size: 14.5px; }
.exo-encart__urgence b { color: var(--pre-b); }

/* Page Précommandes sur téléphone (30/10/2026) : les mois de sortie sur une seule ligne qu'on fait glisser (avant : ~640 px de pastilles). */
@media (max-width: 749px) {
	.exo-cat-tete .exo-univers-pastilles { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; margin: 16px -20px 0; padding: 0 20px 4px; gap: 6px; -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
	.exo-cat-tete .exo-univers-pastilles::-webkit-scrollbar { display: none; }
	.exo-cat-tete .exo-univers-pastilles > * { flex: none; white-space: nowrap; }
	.exo-cat-tete .exo-univers-pastilles a { padding: 7px 12px; font-size: 13px; }
}

/* Petit mot « stock » en haut de Nouveautés et du filtre En stock (30/10/2026). */
.exo-mot-stock { margin: 0 0 22px; padding: 16px 20px; border: 1px solid var(--bordure); border-left: 3px solid var(--jaune); border-radius: 0 10px 10px 0; background: color-mix(in srgb, var(--carte, #1a1c22) 85%, transparent); }
.exo-mot-stock p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--texte-2); }
.exo-mot-stock .exo-mot-stock__titre { margin-bottom: 6px; font-family: var(--f-titre); font-size: 17px; color: var(--texte); }
.exo-mot-stock__liens { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px !important; }
.exo-mot-stock__liens a { display: inline-flex; align-items: baseline; gap: 8px; padding: 8px 14px; border: 1px solid var(--jaune); border-radius: 999px; color: var(--texte); font-size: 13px; font-weight: 700; text-decoration: none; }
.exo-mot-stock__liens a span { font-weight: 500; color: var(--texte-2); }
.exo-mot-stock__liens a:hover { background: var(--jaune); color: var(--sur-jaune, #12131a); }
.exo-mot-stock__liens a:hover span { color: inherit; }

/* Recherche instantanée (30/10/2026) : suggestions sous la barre. */
.exo-recherche { position: relative; }
.exo-entete__haut { position: relative; z-index: 6; } /* la liste de suggestions passe au-dessus de la bande menu */
.exo-suggest { position: absolute; z-index: 60; top: calc(100% + 8px); left: 0; right: 0; max-height: min(70vh, 560px); overflow-y: auto; padding: 8px; border: 1px solid var(--bordure); border-radius: 14px; background: var(--fond, #111216); box-shadow: 0 22px 50px rgba(0, 0, 0, .6); }
.exo-suggest[hidden] { display: none; }
.exo-suggest__titre { margin: 6px 8px 4px; font-size: 10.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--texte-2); }
.exo-suggest__univers { display: flex; flex-wrap: wrap; gap: 6px; padding: 2px 6px 6px; }
.exo-suggest__univers a { padding: 6px 12px; border: 1px solid var(--bordure); border-radius: 999px; font-size: 13px; font-weight: 600; color: var(--texte); text-decoration: none; }
.exo-suggest__univers a small { color: var(--texte-2); font-weight: 500; }
.exo-suggest__produit { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 6px 8px; border-radius: 10px; color: var(--texte); text-decoration: none; }
.exo-suggest__produit img { width: 52px; height: 52px; object-fit: cover; border-radius: 8px; background: #fff; }
.exo-suggest__nom { display: grid; gap: 3px; font-size: 13.5px; line-height: 1.3; }
.exo-suggest__st { justify-self: start; font-style: normal; font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--texte-2); }
.exo-suggest__st--preco { color: var(--pre-b, #ffd23f); }
.exo-suggest__st--stock { color: #2fd67b; }
.exo-suggest__st--demande { color: var(--dem-texte, #b9a2ff); }
.exo-suggest__prix { display: grid; justify-items: end; font-size: 14px; font-weight: 700; white-space: nowrap; }
.exo-suggest__prix s { font-size: 11.5px; font-weight: 500; color: var(--texte-2); }
.exo-suggest a:hover, .exo-suggest a.is-choisi { background: rgba(255, 255, 255, .07); }
.exo-suggest__univers a:hover, .exo-suggest__univers a.is-choisi { border-color: var(--jaune); }
.exo-suggest__tout { display: block; margin-top: 4px; padding: 10px 8px; border-top: 1px solid var(--bordure); border-radius: 0 0 10px 10px; text-align: center; font-size: 13px; font-weight: 700; color: var(--jaune-clair); text-decoration: none; }
.exo-suggest__vide { margin: 8px; font-size: 13.5px; line-height: 1.5; color: var(--texte-2); }
.exo-suggest__vide a { color: var(--jaune-clair); }

/* 31/10/2026 (Kevin) : téléphone, les filtres s'ouvrent dans un panneau qui monte du bas de l'écran ;
   « Appliquer » reste toujours visible en bas (avant : tout en bas des listes, ~1 600 px plus bas). */
.exo-filtres__tete-tel { display: none; }
@media (max-width: 989px) {
	.exo-catalogue > .exo-filtres[open] .exo-filtres__form {
		position: fixed; left: 0; right: 0; top: auto; bottom: 0; z-index: 1000;
		max-height: 86dvh; padding: 0 18px; border-radius: 16px 16px 0 0; border-bottom: 0;
		box-shadow: 0 0 0 100vmax rgba(5, 6, 12, .65), 0 -10px 30px rgba(0, 0, 0, .5);
	}
	.exo-filtres__tete-tel { display: flex; position: sticky; top: 0; z-index: 2; align-items: center; justify-content: space-between;
		margin: 0 -18px; padding: 14px 18px; background: var(--carte); border-bottom: 1px solid var(--bordure);
		font-weight: 800; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; }
	.exo-filtres__fermer { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid var(--bordure); border-radius: 8px;
		background: transparent; color: var(--texte); font: 600 12px/1 var(--f-texte); letter-spacing: .04em; text-transform: none; cursor: pointer; }
	.exo-catalogue > .exo-filtres[open] .exo-filtres__actions {
		position: sticky; bottom: 0; z-index: 2; margin: 12px -18px 0; padding: 12px 18px calc(14px + env(safe-area-inset-bottom, 0px));
		grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px;
		background: var(--carte); border-top: 1px solid var(--bordure);
	}
	.exo-catalogue > .exo-filtres[open] .exo-filtres__actions .exo-btn { min-height: 46px; font-size: 12.5px; }
	body:has(.exo-filtres[open]) { overflow: hidden; }
	body:has(.exo-filtres[open]) .exo-chat { display: none; } /* la bulle du chat cachait le bouton */
}

/* 31/10/2026 : téléphone, le menu de tri de « Promotions » (option « Plus grosse remise », plus longue) dépassait de l'écran. */
@media (max-width: 989px) {
	.exo-catalogue__liste > .woocommerce-ordering select { width: 100%; max-width: 100%; min-width: 0; text-overflow: ellipsis; }
}

/* 31/10/2026 : 8 designs de carte cadeau (4 couleurs de la carte Exomori ajoutées) : 4 par ligne. */
.exo-cc__designs { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 10px; } /* 9 designs : 3 par ligne */
.exo-cc__design img { border-radius: 7px; }
.exo-cc__design span { font-size: 12px; }

/* 31/10/2026 : titres de fiche répartis sur des lignes équilibrées (plus de mot isolé). */
.exo-fiche__titre { text-wrap: balance; }

/* Recherche sans résultat (01/11/2026) : proposition de faire venir la figurine + suggestions. */
.exo-rf-vide { margin: 10px 0 30px; }
.exo-rf-vide__titre { margin: 0; font-family: var(--f-titre); font-size: 24px; font-weight: 700; color: var(--texte); }
.exo-rf-vide__texte { margin: 8px 0 0; max-width: 640px; color: var(--texte-2); }
.exo-rf-vide__texte a { color: var(--jaune); font-weight: 700; }
.exo-rf-vide__sous { margin: 26px 0 12px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--texte-2); }

/* Panier : prix barré et économie (01/11/2026). */
.exo-panier__barre { display: block; font-size: 13px; font-weight: 500; color: var(--texte-2); text-align: right; }
.exo-panier__barre .woocommerce-Price-amount { color: inherit; }
.exo-economie th, .exo-economie td { padding-top: 6px; font-size: 14px; font-weight: 700; color: #35e08a; }
.exo-economie td { text-align: right; }

/* ---------- Page « Payer ma commande » (woocommerce/checkout/form-pay.php, 01/11/2026) ---------- */
.exo-payer__tete { max-width: 1240px; margin: 34px auto 22px; }
.exo-payer__sur { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--jaune-clair, var(--jaune)); }
.exo-payer__titre { margin: 8px 0 0; font-family: var(--f-titre); font-style: italic; font-size: 40px; line-height: 1; text-transform: uppercase; color: var(--texte); }
.exo-payer__intro { margin: 10px 0 0; max-width: 640px; color: var(--texte-2); }
form.exo-payer { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 36px; align-items: start; max-width: 1240px; margin: 0 auto 50px; padding: 0 !important; border: 0 !important; background: none !important; }
.exo-payer__col { min-width: 0; }
.exo-payer__bloc .exo-cmd-etape__num { font-size: 15px; }
.exo-payer__recap { position: sticky; top: calc(var(--entete-h, 100px) + 20px); }
.exo-payer__recap-titre { margin: 0 0 12px; font-family: var(--f-titre); font-size: 20px; color: var(--texte); }
.exo-payer__recap .exo-recap-table td.product-total { text-align: right; white-space: nowrap; vertical-align: middle; font-weight: 700; }
.exo-payer__recap tfoot th { text-align: left; font-weight: 600; color: var(--texte-2); }
.exo-payer__recap tfoot td { text-align: right; }
.exo-payer__ligne--order_total th, .exo-payer__ligne--order_total td { padding-top: 14px !important; font-size: 18px; font-weight: 800; color: var(--texte) !important; border-top: 1px solid var(--bordure) !important; }
.exo-payer__tva { margin: 6px 0 14px; font-size: 11.5px; text-align: right; color: var(--texte-2); }
.exo-payer #payment { background: none; border: 0; padding: 0; }
.exo-payer #payment .form-row { padding: 0; margin-top: 14px; }
.exo-payer #place_order { width: 100%; }
.exo-payer #payment .ppcp-messages, .exo-payer #payment [data-pp-message] { opacity: 1; }
@media (max-width: 989px) {
	form.exo-payer { grid-template-columns: minmax(0, 1fr); gap: 18px; }
	.exo-payer__recap { position: static; order: -1; }
	.exo-payer__titre { font-size: 30px; }
	.exo-payer__tete { margin: 22px 16px 16px; }
}

/* Bandeau cookies (Complianz) : « Accepter » à droite, « Refuser » à gauche (01/11/2026, Kevin). */
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny { order: 1; }
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept { order: 2; }
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn:not(.cmplz-accept):not(.cmplz-deny) { order: 3; }


/* ---------- Fiche produit « D » (02/11/2026), en aperçu avec ?fiche=d (classe fiche-d) ----------
   Comme Shin Sekai : sous le bouton d'achat, des lignes compactes (icône + texte) au lieu du gros panneau ;
   sur ordinateur, sous les photos, des volets Description (ouverte, titre bien visible) / Caractéristiques /
   Taille réelle / Livraison & retours. Téléphone : volets dans la colonne, comme avant. */
.fiche-d.exo-v2 .exo-v2-panneau { display: grid; gap: 12px; padding: 16px 0; border: 0; border-top: 1px solid var(--bordure); border-bottom: 1px solid var(--bordure); border-radius: 0; background: none; overflow: visible; }
.fiche-d.exo-v2 .exo-v2-panneau > * { padding: 0 !important; border: 0 !important; font-size: 13.5px; line-height: 1.45; color: var(--texte-2); }
.fiche-d.exo-v2 .exo-v2-panneau b, .fiche-d.exo-v2 .exo-v2-panneau strong { color: var(--texte); }
/* 1. Livraison (icône camion), 2. point relais (barre fine), 3. 4x PayPal, 4. bienvenue. */
.fiche-d.exo-v2 .exo-v2-panneau .exo-encart { order: 1; display: flex; gap: 12px; align-items: flex-start; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-encart > svg { flex: none; width: 20px; height: 20px; margin-top: 1px; color: var(--jaune); }
.fiche-d.exo-v2 .exo-v2-panneau .exo-encart p { margin: 0; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-livraison__eta { font-size: 12.5px; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-barre-livraison { order: 2; padding-left: 32px !important; position: relative; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-barre-livraison::before { content: ""; position: absolute; left: 3px; top: 2px; width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--jaune); }
.fiche-d.exo-v2 .exo-v2-panneau .exo-barre-livraison.is-atteint::before { border-color: #3ecf8e; background: radial-gradient(circle, #3ecf8e 0 3px, transparent 3.5px); }
.fiche-d.exo-v2 .exo-v2-panneau .exo-barre-livraison p { margin: 0 0 6px; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-barre-livraison p strong { color: var(--texte); }
.fiche-d.exo-v2 .exo-v2-panneau .exo-barre-livraison__piste { height: 4px; max-width: 280px; border-radius: 4px; background: color-mix(in srgb, var(--bordure) 90%, transparent); }
.fiche-d.exo-v2 .exo-v2-panneau .exo-barre-livraison__piste span { background: var(--jaune) !important; border-radius: 4px; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-barre-livraison.is-atteint .exo-barre-livraison__piste span { background: #3ecf8e !important; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-4x { order: 3; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin: 0 !important; background: none !important; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-4x__logo { padding: 2px 6px; border-radius: 5px; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-4x__logo img { width: 44px; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-4x__ligne { display: flex; align-items: center; gap: 10px; flex: 1 1 auto; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-4x__legal summary { font-size: 12px; color: var(--texte-2); }
.fiche-d.exo-v2 .exo-v2-panneau .exo-bienvenue { order: 4; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-bienvenue__badge { flex: none; display: grid; place-items: center; width: 20px; height: 20px; min-width: 0; padding: 0; border-radius: 5px; font-size: 0; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-bienvenue__badge::after { content: "%"; font: 800 12px/1 var(--f-texte); }
.fiche-d.exo-v2 .exo-v2-panneau .exo-bienvenue__txt { flex: 1 1 220px; min-width: 0; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-bienvenue__txt b { font-size: 13.5px; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-bienvenue__txt span { display: block; font-size: 12px; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-bienvenue__code { flex: none; width: auto; margin: 0; padding: 6px 10px; border-radius: 8px; font-size: 12px; }
@media (max-width: 989px) { .fiche-d.exo-v2 .exo-v2-panneau .exo-bienvenue__code { margin-left: 32px; } }

/* Volets sous les photos (ordinateur). */
.fiche-d .exo-fiche__desc-gauche { grid-column: 1 / -1; margin-top: 30px; }
.fiche-d .exo-fiche__desc-gauche > details { border-top: 1px solid var(--bordure); }
.fiche-d .exo-fiche__desc-gauche > details:last-child { border-bottom: 1px solid var(--bordure); }
.fiche-d .exo-fiche__desc-gauche > details > summary { display: flex; align-items: center; gap: 12px; padding: 20px 0; list-style: none; cursor: pointer; font: 700 15px/1.2 var(--f-texte); letter-spacing: .14em; text-transform: uppercase; color: var(--texte); }
.fiche-d .exo-fiche__desc-gauche > details > summary::-webkit-details-marker { display: none; }
.fiche-d .exo-fiche__desc-gauche > details > summary::before { content: ""; flex: none; width: 4px; height: 18px; border-radius: 2px; background: var(--jaune); }
.fiche-d .exo-fiche__desc-gauche > details > summary::after { content: "+"; margin-left: auto; font-size: 22px; font-weight: 400; letter-spacing: 0; color: var(--jaune); transition: transform .2s; }
.fiche-d .exo-fiche__desc-gauche > details[open] > summary::after { transform: rotate(45deg); }
.fiche-d .exo-fiche__desc-gauche > details > summary:hover { color: var(--jaune-clair); }
.fiche-d .exo-fiche__desc-gauche > details > .exo-texte { padding: 0 0 24px; font-size: 15.5px; line-height: 1.75; }
/* Description : titre plus grand. */
.fiche-d .exo-fiche__desc-gauche > details:first-child > summary { font-size: 20px; letter-spacing: .12em; }
.fiche-d .exo-fiche__desc-gauche > details:first-child > summary::before { height: 24px; }
.fiche-d .exo-fiche__caracs-onglet .exo-caracs { display: table; }
.fiche-d .exo-fiche__desc-gauche .exo-taille { margin: 0; }
/* « Une question sur cette figurine ? Écrivez-nous · réponse… » sur une ligne (le texte se coupait en 3 colonnes). */
.fiche-d .exo-fiche__atouts > li.exo-fiche__question { display: block; }
.fiche-d .exo-fiche__atouts > li.exo-fiche__question .exo-ico { display: inline-block; vertical-align: -3px; margin-right: 8px; }

/* Aperçu D, 2e essai (02/11/2026) : moins d'annonces. 4x en petite ligne sous le prix ; barre du point relais retirée de la
   fiche (déjà dans les atouts « Relais offert dès 80 € » et dans le panier) ; bienvenue en une ligne avec le code. */
.fiche-d .exo-fiche__info > .exo-4x { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 2px 0 0; padding: 0; border: 0; background: none; font-size: 13.5px; color: var(--texte-2); }
.fiche-d .exo-fiche__info > .exo-4x .exo-4x__ligne { display: flex; align-items: center; gap: 8px; flex: 0 1 auto; margin: 0; }
.fiche-d .exo-fiche__info > .exo-4x .exo-4x__logo { padding: 2px 6px; border-radius: 5px; }
.fiche-d .exo-fiche__info > .exo-4x .exo-4x__logo img { width: 42px; }
.fiche-d .exo-fiche__info > .exo-4x b { color: var(--texte); }
.fiche-d .exo-fiche__info > .exo-4x .exo-4x__legal { margin: 0; text-align: left; }
.fiche-d .exo-fiche__info > .exo-4x .exo-4x__legal summary { font-size: 12px; color: var(--texte-2); }
.fiche-d .exo-fiche__info > .exo-4x .exo-4x__legal[open] { flex-basis: 100%; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-barre-livraison { display: none; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-bienvenue__txt span { display: none; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-bienvenue__txt { flex: 0 1 auto; }
.fiche-d.exo-v2 .exo-v2-panneau .exo-bienvenue__code { margin-left: 0; }
@media (max-width: 989px) { .fiche-d.exo-v2 .exo-v2-panneau .exo-bienvenue__code { margin-left: 0; } }
.fiche-d.exo-v2 .exo-v2-panneau .exo-bienvenue__code { display: inline-flex; align-items: center; gap: 8px; }

/* Encadré « Précommande » / « Sur demande » sous le prix de la fiche (04/11/2026, maquette validée par Kevin) :
   bandeau aux couleurs du badge, 3 étapes numérotées, ligne de garantie. Avant le bouton d'achat. */
.exo-mode { --m-a: var(--pre-a, #ddd2ff); --m-b: var(--pre-b, #b9a2ff); --m-sur: var(--sur-pre, #150a33); --m-txt: var(--pre-texte, #cbb8ff);
	margin: 14px 0 6px; border: 2px solid var(--m-b); border-radius: var(--r-md, 12px); overflow: hidden;
	background: color-mix(in srgb, var(--m-b) 7%, var(--carte, #161a2e)); color: var(--texte); }
.exo-mode--demande { --m-a: var(--dem-a, #fff06a); --m-b: var(--dem-b, #ffe81a); --m-sur: var(--sur-dem, #191500); --m-txt: var(--dem-texte, #fff06a); }
.exo-mode__bandeau { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; padding: 11px 16px;
	background: linear-gradient(180deg, var(--m-a), var(--m-b)); color: var(--m-sur); }
.exo-mode__titre { display: inline-flex; align-items: center; gap: 9px; font-weight: 800; font-size: 14px; letter-spacing: .1em; text-transform: uppercase; }
.exo-mode__titre .exo-encart__ico { margin: 0; color: currentColor; }
.exo-mode__date { margin-left: auto; font-weight: 700; font-size: 15px; }
.exo-mode__etapes { list-style: none; counter-reset: exo-mode; margin: 0; padding: 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.exo-mode__etapes li { counter-increment: exo-mode; display: flex; flex-direction: column; gap: 5px; font-size: 13px; line-height: 1.45; color: var(--texte-2); }
.exo-mode__etapes li::before { content: counter(exo-mode); display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%;
	background: var(--m-b); color: var(--m-sur); font-weight: 800; font-size: 14px; }
.exo-mode__etapes b { color: var(--texte); font-size: 14.5px; line-height: 1.3; }
.exo-mode__urgence { margin: 0 16px 12px; padding: 8px 12px; border-radius: var(--r-sm, 8px); background: color-mix(in srgb, var(--m-b) 16%, transparent); font-size: 13.5px; }
.exo-mode__urgence b { color: var(--m-txt); }
.exo-mode__garantie { display: flex; align-items: center; gap: 10px; margin: 0; padding: 10px 16px; border-top: 1px solid color-mix(in srgb, var(--m-b) 30%, transparent); font-size: 13px; color: var(--texte-2); }
.exo-mode__garantie .exo-encart__ico { margin: 0; color: var(--m-txt); }
@media (max-width: 700px) {
	.exo-mode__bandeau { flex-direction: column; align-items: flex-start; }
	.exo-mode__date { margin-left: 0; font-size: 16px; }
	.exo-mode__etapes { grid-template-columns: 1fr; }
	.exo-mode__etapes li { display: grid; grid-template-columns: 28px 1fr; column-gap: 12px; row-gap: 2px; }
	.exo-mode__etapes li::before { grid-row: 1 / 3; }
}

/* Fiche produit (04/11/2026, d'après les fiches de Shin Sekai, 1001 Hobbies, Mangatori) :
   mini-fiche en étiquettes sous le titre, moyens de paiement sous le bouton. */
.exo-fiche__puces { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 0; padding: 0; }
.exo-fiche__puces li { padding: 4px 10px; border: 1px solid var(--bordure); border-radius: 6px; background: color-mix(in srgb, var(--carte) 80%, transparent); font-size: 12.5px; font-weight: 600; line-height: 1.3; color: var(--texte); }
.exo-fiche__paiement { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 10px 0 0; font-size: 12.5px; color: var(--texte-2); }
.exo-fiche__paiement > span { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.exo-fiche__paiement > span .exo-ico { width: 16px; height: 16px; color: #3ddc84; }
.exo-fiche__paiement .exo-paiements { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; padding: 0; list-style: none; }
.exo-fiche__paiement .exo-paiements li { display: flex; }
.exo-fiche__paiement .exo-paiements svg { width: 32px; height: 20px; }
