/* Electronarium — Style C « Papeterie premium » (2026-10-08), sur la base « L'étiquette honnête ». Compléments au theme.json,
 * d'après wordpress/plateau/DESIGN.md (section « Style C »). Les slugs de couleur historiques sont gardés, leurs valeurs ont changé.
 * Règles : propriétés logiques (inline/block) partout pour l'arabe ; couleurs uniquement par jetons ;
 * on n'anime que transform, opacity, clip-path. Lumière, profondeur et chorégraphies : directeur photo
 * (classes .elx-anim-*, attributs data-elx-vt). */

/* =========================================================================
   0. Jetons
   ========================================================================= */
:root {
	color-scheme: light;

	--elx-verre: var(--wp--preset--color--verre);
	--elx-vitrine: var(--wp--preset--color--vitrine);
	--elx-encre: var(--wp--preset--color--encre);
	--elx-ardoise: var(--wp--preset--color--ardoise);
	--elx-ardoise-claire: var(--wp--preset--color--ardoise-claire);
	--elx-trait: var(--wp--preset--color--trait);
	--elx-trait-fort: var(--wp--preset--color--trait-fort);
	--elx-cherenkov: var(--wp--preset--color--cherenkov);
	--elx-cherenkov-nuit: var(--wp--preset--color--cherenkov-nuit);
	--elx-cherenkov-pale: var(--wp--preset--color--cherenkov-pale);
	--elx-phosphore: var(--wp--preset--color--phosphore);
	--elx-recu: var(--wp--preset--color--recu);
	--elx-recu-pale: var(--wp--preset--color--recu-pale);
	--elx-alerte: var(--wp--preset--color--alerte);
	--elx-lumiere: var(--wp--preset--color--lumiere);
	--elx-filet: var(--wp--preset--color--filet, #CDBFA8);
	--elx-pied-texte: var(--wp--preset--color--verre);   /* 10,8:1 sur le vert */
	--elx-pied-discret: var(--wp--preset--color--filet); /* 6,8:1 sur le vert */

	--elx-encre-rgb: 30 27 22;
	--elx-vitrine-rgb: 255 253 248;
	--elx-cherenkov-rgb: 31 59 45;

	/* Style C : plus de mono. Les chiffres (prix, tailles) sont en Manrope à chasse fixe, quelle que soit la langue. */
	--elx-mono: "Electronarium Texte", "Segoe UI", system-ui, sans-serif;
	--elx-display: var(--wp--preset--font-family--display);
	--elx-body: var(--wp--preset--font-family--body);

	--elx-r-socle: 0;
	--elx-r-image: 2px;
	--elx-r-etiquette: 4px;
	--elx-r-bouton: 4px;
	--elx-r-champ: 4px;

	/* Ombre de sol en deux couches : contact (net, court) + portée (douce) */
	--elx-ombre-sol: 0 16px 28px -14px rgb(var(--elx-encre-rgb) / 0.5);
	--elx-ombre-sol-haute: 0 24px 40px -18px rgb(var(--elx-encre-rgb) / 0.5);
	--elx-ombre-pile: 0 20px 34px -14px rgb(var(--elx-encre-rgb) / 0.55);
	/* Lumière de vitrine : vient d'en haut, côté début de ligne (miroitée en arabe) */
	--elx-lumiere-x: 35%;
	--elx-sens: 1;
	--elx-ombre-flottant: 0 -6px 24px -12px rgb(var(--elx-encre-rgb) / 0.25);
	--elx-ombre-menu: 0 12px 32px -12px rgb(var(--elx-encre-rgb) / 0.3);

	--elx-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--elx-ease-inout: cubic-bezier(0.76, 0, 0.24, 1);
	--elx-dur-micro: 120ms;
	--elx-dur-small: 220ms;
	--elx-dur-medium: 380ms;
	--elx-dur-large: 700ms;

	--elx-entete: 56px;
	--elx-gouttiere: var(--wp--style--root--padding-left, 1rem);

	/* Largeur d'Anybody (signature) : paliers, la taille est fluide par ailleurs */
	/* Style C : Fraunces n'a pas d'axe de largeur ; les anciens jetons restent, neutres. */
	--elx-wdth-accueil: normal;
	--elx-wdth-fiche: normal;
	--elx-wdth-section: normal;
}

/* =========================================================================
   1. Bases
   ========================================================================= */
html { overflow-x: clip; }
body {
	background: var(--elx-verre);
	color: var(--elx-encre);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
:where(h1, h2) { text-wrap: balance; font-stretch: var(--elx-wdth-section); }
:where(p, li, dd) { text-wrap: pretty; }
:focus-visible { outline: 3px solid var(--elx-cherenkov); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--elx-phosphore); color: var(--elx-encre); }
img { max-inline-size: 100%; }

.screen-reader-text {
	position: absolute !important;
	inline-size: 1px;
	block-size: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}
.elx-main { min-block-size: 60vh; }
.elx-section { padding-block: var(--wp--preset--spacing--60); }

/* Le mono n'écrit que des chiffres */
.elx-chiffre,
.woocommerce-Price-amount {
	font-family: var(--elx-mono);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0;
	unicode-bidi: isolate;
}
/* M4 : en arabe, un montant garde l'ordre « 29,00 € » partout (mini-panier, panier, paiement), pas seulement sur la fiche */
[dir="rtl"] :is(.woocommerce-Price-amount, .wc-block-formatted-money-amount, .elx-resume__montant) {
	unicode-bidi: isolate;
	direction: ltr;
}

/* =========================================================================
   2. Typographie par alphabet
   ========================================================================= */
/* Arabe (choix de l'utilisateur, 2026-10-07) : Courier New si l'appareil l'a, sinon Arabic Typesetting (polices Windows,
   non redistribuables, appelées par local()), sinon Amiri auto-hébergée (même style naskh, OFL). Arabic Typesetting est ~1,5× plus petite : size-adjust aligne les deux.
   Portée html:lang(ar) seulement, pour que l'option « العربية » du menu des langues ne fasse pas charger Amiri ailleurs. */
@font-face { font-family: "Elx Courier"; src: local("Courier New"), local("CourierNewPSMT"); font-weight: 400; font-display: swap;
	unicode-range: U+0020, U+00A0, U+0600-06FF, U+0750-077F, U+0870-08FF, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-family: "Elx Courier"; src: local("Courier New Bold"), local("CourierNewPS-BoldMT"); font-weight: 700; font-display: swap;
	unicode-range: U+0020, U+00A0, U+0600-06FF, U+0750-077F, U+0870-08FF, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-family: "Elx Naskh"; src: local("Arabic Typesetting"), local("ArabicTypesetting"); size-adjust: 150%; font-display: swap;
	unicode-range: U+0600-06FF, U+0750-077F, U+0870-08FF, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-family: "Elx Naskh Repli"; src: url("../fonts/amiri-arabic-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap;
	unicode-range: U+0600-06FF, U+0750-077F, U+0870-08FF, U+200C-200E, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-family: "Elx Naskh Repli"; src: url("../fonts/amiri-arabic-700-normal.woff2") format("woff2"); font-weight: 700; font-display: swap;
	unicode-range: U+0600-06FF, U+0750-077F, U+0870-08FF, U+200C-200E, U+FB50-FDFF, U+FE70-FEFF; }
html:lang(ar) {
	--wp--preset--font-family--display: "Elx Courier", "Elx Naskh", "Elx Naskh Repli", "Electronarium Titres", "Segoe UI", system-ui, sans-serif;
	--wp--preset--font-family--body: "Elx Courier", "Elx Naskh", "Elx Naskh Repli", "Electronarium Texte", "Segoe UI", system-ui, sans-serif;
	--elx-display: var(--wp--preset--font-family--display);
	--elx-body: var(--wp--preset--font-family--body);
}
/* Arabe : jamais de largeur ni d'approche (les liaisons cassent) */
html[dir="rtl"] :is(h1, h2, h3, .elx-hero__titre, .elx-fiche__titre, .elx-recu-ticket__titre, .elx-specimen__nom),
html:lang(ar) :is(h1, h2, h3, .elx-hero__titre, .elx-fiche__titre, .elx-recu-ticket__titre, .elx-specimen__nom) {
	font-stretch: normal !important;
	letter-spacing: 0 !important;
	line-height: 1.45 !important;
	font-weight: 700 !important;
}
:lang(ar) body { font-size: max(1.25rem, var(--wp--preset--font-size--medium)); line-height: 1.9; }
:lang(ar) :where(.elx-specimen__type, .elx-fiche__type, .elx-etiquette dt) { letter-spacing: 0; }

/* Russe : IBM Plex Sans 600, la largeur variable n'existe pas ; on compense d'un cran */
html:lang(ru) :is(h1, h2, h3, .elx-hero__titre, .elx-fiche__titre, .elx-recu-ticket__titre, .elx-specimen__nom) { font-stretch: normal !important; font-weight: 600 !important; letter-spacing: -0.01em; }
:lang(ru) :where(h2) { font-size: calc(var(--wp--preset--font-size--x-large) * 1.08); }
html:lang(ru) .elx-hero__titre { line-height: 1.02 !important; }

/* Chinois : pile système, ni approche ni largeur, interligne 1,75, titres 600 */
html:lang(zh) :is(h1, h2, h3, .elx-hero__titre, .elx-fiche__titre, .elx-recu-ticket__titre, .elx-specimen__nom) { font-stretch: normal !important; letter-spacing: 0 !important; font-weight: 600 !important; line-height: 1.3 !important; }
:lang(zh) body { line-height: 1.75; font-size: max(1.0625rem, var(--wp--preset--font-size--medium)); }

/* =========================================================================
   3. Boutons et liens
   ========================================================================= */
.wp-element-button,
.wp-block-button__link,
.wc-block-components-button:not(.is-link),
.elx-bouton {
	min-block-size: 48px;
	border-radius: var(--elx-r-bouton);
	transition: transform var(--elx-dur-micro) var(--elx-ease-out), background-color var(--elx-dur-micro) linear;
	touch-action: manipulation;
}
.wp-element-button:active,
.wp-block-button__link:active,
.wc-block-components-button:not(.is-link):active,
.elx-bouton:active { transform: scale(0.98); background-color: var(--elx-cherenkov-nuit); }
.wp-element-button:disabled,
.wp-element-button[aria-disabled="true"],
.wc-block-components-button:disabled { opacity: 0.45; cursor: not-allowed; transform: none; }
.elx-bouton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.85rem 1.4rem;
	background: var(--elx-cherenkov);
	color: var(--elx-vitrine);
	font-weight: 600;
	text-decoration: none;
	line-height: 1.2;
}
.elx-bouton:hover { background: var(--elx-cherenkov-nuit); color: var(--elx-vitrine); }
.elx-bouton--achat { min-block-size: 56px; font-size: 1.0625rem; }

.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--elx-encre);
	border: 1.5px solid var(--elx-encre);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--elx-encre); color: var(--elx-vitrine); }

/* Seul lien fléché du site : « Tout le catalogue » */
.elx-lien-fleche { margin: 0; }
.elx-lien-fleche a { font-weight: 600; text-decoration: none; display: inline-block; padding-block: 0.6rem; }
.elx-lien-fleche a::after { content: " →"; }
[dir="rtl"] .elx-lien-fleche a::after { content: " ←"; }
.elx-lien-fleche a:hover { text-decoration: underline; text-underline-offset: 0.2em; }

/* =========================================================================
   4. En-tête (56 px, une ligne)
   ========================================================================= */
.elx-site-header {
	position: sticky;
	inset-block-start: 0;
	z-index: 50;
	background: rgb(var(--elx-vitrine-rgb) / 0.96);
	border-block-end: 1px solid var(--elx-trait);
	transition: transform var(--elx-dur-medium) var(--elx-ease-out);
}
@supports (backdrop-filter: blur(8px)) {
	.elx-site-header { background: rgb(var(--elx-vitrine-rgb) / 0.92); backdrop-filter: saturate(1.4) blur(10px); }
}
.elx-site-header.elx-site-header--cache { transform: translateY(-100%); }
.admin-bar .elx-site-header { inset-block-start: var(--wp-admin--admin-bar--height, 32px); }

.elx-header__bar { min-block-size: var(--elx-entete); gap: 0.5rem 1.25rem; }
.elx-header__bar > * { margin-block: 0 !important; }

.elx-wordmark {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-block-size: 44px;
	font-family: var(--elx-display);
	font-weight: 800;
	font-stretch: 125%;
	font-size: 1.05rem;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--elx-encre);
	text-decoration: none;
	white-space: nowrap;
	margin: 0;
}
@media (min-width: 1024px) { .elx-wordmark { font-size: 1.15rem; font-stretch: 120%; } }
@media (min-width: 1280px) { .elx-wordmark { font-size: 1.25rem; font-stretch: 140%; } }
a.elx-wordmark:hover { color: var(--elx-cherenkov); }
.elx-wordmark__dot {
	flex: none;
	inline-size: 0.65rem;
	block-size: 0.65rem;
	border-radius: 50%;
	background: var(--elx-cherenkov);
	box-shadow: 0 0 0 4px var(--elx-cherenkov-pale);
}

.elx-nav { display: none; }
.elx-nav ul { display: flex; gap: clamp(1rem, 1.6vw, 1.75rem); margin: 0; padding: 0; list-style: none; }
/* Une seule ligne : les familles qui ne tiennent pas passent à la ligne suivante, masquée (pas de chevauchement). */
.elx-nav ul { flex-wrap: wrap; block-size: 44px; overflow: hidden; row-gap: 0; }
.elx-nav a {
	display: inline-flex;
	align-items: center;
	min-block-size: 44px;
	font-weight: 600;
	color: var(--elx-encre);
	text-decoration: none;
	white-space: nowrap;
}
.elx-nav a:hover { color: var(--elx-cherenkov); text-decoration: underline; text-underline-offset: 0.35em; }

.elx-header__tools { gap: 0.25rem; flex: none; }
.elx-header__bar > .wp-block-html { min-inline-size: 0; }
.elx-header__bar > a.elx-wordmark { flex: none; }
.elx-nav { min-inline-size: 0; }
@media (max-width: 420px) {
	.elx-wordmark { font-size: 0.95rem; font-stretch: 112%; letter-spacing: 0.01em; gap: 0.4rem; }
	.elx-wordmark__dot { inline-size: 0.55rem; block-size: 0.55rem; box-shadow: 0 0 0 3px var(--elx-cherenkov-pale); }
	.elx-langues__puce { padding-inline: 0.6rem 0.55rem; }
}
.elx-header__securise { display: none; align-items: center; gap: 0.4rem; white-space: nowrap; font-size: 0.875rem; font-weight: 600; color: var(--elx-recu); margin: 0; }

.elx-icone {
	display: inline-grid;
	place-items: center;
	inline-size: 44px;
	block-size: 44px;
	border-radius: 999px;
	color: var(--elx-encre);
}
.elx-icone:hover { background: var(--elx-cherenkov-pale); color: var(--elx-cherenkov); }

.elx-header .elx-search { display: none; }
.elx-search .wp-block-search__inside-wrapper {
	border: 1px solid var(--elx-trait-fort);
	border-radius: 999px;
	background: var(--elx-vitrine);
	padding: 2px 4px;
	min-block-size: 44px;
}
.elx-search .wp-block-search__inside-wrapper:focus-within { border-color: var(--elx-cherenkov); outline: 3px solid var(--elx-cherenkov); outline-offset: 2px; }
.elx-search .wp-block-search__input { border: 0; background: transparent; padding-inline: 0.85rem; font-size: 1rem; min-inline-size: 0; color: var(--elx-encre); }
.elx-search .wp-block-search__input:focus { outline: none; }
.elx-search .wp-block-search__button {
	min-block-size: 0;
	border-radius: 999px;
	padding: 0.4rem 0.6rem;
	margin: 0;
	background: transparent;
	color: var(--elx-encre);
}
.elx-search .wp-block-search__button:hover { background: var(--elx-cherenkov-pale); color: var(--elx-cherenkov); }

@media (min-width: 1024px) {
	.elx-header__bar { gap: 1.5rem; }
	.elx-nav { display: block; flex: 1 1 auto; }
	.elx-header .elx-search { display: block; }
	.elx-header .elx-search .wp-block-search__inside-wrapper { inline-size: clamp(10rem, 14vw, 15rem) !important; }
	.elx-icone--recherche { display: none; }
}

/* Panier (mini-cart WooCommerce) */
.elx-panier .wc-block-mini-cart__button {
	min-inline-size: 44px;
	min-block-size: 44px;
	padding: 0.35rem;
	border-radius: 999px;
	color: var(--elx-encre);
}
.elx-panier .wc-block-mini-cart__button:hover { background: var(--elx-cherenkov-pale); color: var(--elx-cherenkov); }
.elx-panier .wc-block-mini-cart__badge { font-family: var(--elx-mono); background: var(--elx-cherenkov); color: var(--elx-vitrine); }
/* M1 : tiroir fermé = invisible ET hors du parcours clavier (visibility), sa fermeture reste animée (visibility décalée) */
.wc-block-components-drawer__screen-overlay { transition: opacity 0.3s, visibility 0s; }
.wc-block-components-drawer__screen-overlay--is-hidden { visibility: hidden; transition: opacity 0.3s, visibility 0s linear 0.3s; }
/* M4 : la croix (inset-inline-end) ne chevauche plus le titre, dans les deux sens d'écriture */
.wc-block-mini-cart__title { padding-inline-end: 56px; }
/* M5 : le jaune PayPal n'apparaît qu'au paiement. Fiche, panier et mini-panier : un seul appel, « Acheter et télécharger ». */
.single-product :is(.ppc-button-wrapper, #ppc-button-ppcp-gateway, .ppcp-messages),
.woocommerce-cart :is(.ppc-button-wrapper, #ppc-button-ppcp-gateway),
.wc-block-mini-cart__drawer :is(.ppc-button-wrapper, [id^="ppc-button"]),
.wc-block-mini-cart__footer :is(.ppc-button-wrapper, [id^="ppc-button"]) { display: none !important; }

/* Combo de langue : puce « FR » (Plex Mono), le <select> natif posé dessus */
.elx-langues--combo { position: relative; display: inline-grid; }
.elx-langues__puce {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	min-block-size: 44px;
	padding-inline: 0.75rem 0.7rem;
	border: 1px solid var(--elx-trait-fort);
	border-radius: 999px;
	background: var(--elx-vitrine);
	color: var(--elx-encre);
	font: 600 0.875rem/1 var(--elx-mono);
	transition: border-color var(--elx-dur-micro) linear;
}
.elx-langues__puce::after,
.elx-langues--pied::after {
	content: "";
	inline-size: 0.4rem;
	block-size: 0.4rem;
	border-right: 2px solid currentColor;  /* physique : un chevron vers le bas ne se miroite pas */
	border-bottom: 2px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	opacity: 0.75;
}
.elx-langues--code .elx-langues__select {
	position: absolute;
	inset: 0;
	inline-size: 100%;
	block-size: 100%;
	opacity: 0;
	cursor: pointer;
	font-size: 16px;
}
.elx-langues--code:hover .elx-langues__puce { border-color: var(--elx-cherenkov); }
.elx-langues--code:focus-within .elx-langues__puce { border-color: var(--elx-cherenkov); outline: 3px solid var(--elx-cherenkov); outline-offset: 2px; }
.elx-langues__select option { color: var(--elx-encre); background: var(--elx-vitrine); }
/* M2 : les noms des langues (« العربية », « Русский ») sont écrits en police système : ils ne déclenchent plus
   le téléchargement des polices arabe et cyrillique sur les pages des autres langues. */
.elx-langues__select,
.elx-langues__select option { font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important; }
.elx-langues noscript ul { display: flex; flex-wrap: wrap; gap: 0.25rem; list-style: none; margin: 0; padding: 0; }

/* =========================================================================
   5. Le socle 4:5 (toutes les couvertures du site)
   ========================================================================= */
.elx-socle {
	position: relative;
	aspect-ratio: 4 / 5;
	margin: 0 !important;
	border-radius: var(--elx-r-socle);
	background: var(--elx-teinte, var(--elx-cherenkov-pale));
	overflow: hidden;
	isolation: isolate;
}
.elx-socle > a { position: absolute; inset: 0; display: block; border-radius: inherit; }
.elx-socle img,
.elx-socle .wc-block-components-product-image__image {
	position: absolute;
	inset: 0;
	margin: auto !important;
	inline-size: auto !important;
	block-size: auto !important;
	max-inline-size: 82% !important;
	max-block-size: 82% !important;
	width: auto !important;
	height: auto !important;
	max-width: 82% !important;
	max-height: 82% !important;
	object-fit: fill !important;
	aspect-ratio: auto !important;
	border-radius: var(--elx-r-image);
	box-shadow: var(--elx-ombre-sol);
	transition: transform var(--elx-dur-small) var(--elx-ease-out); /* transform seul : l'ombre suit, sans repeindre */
}
/* Une couverture n'est jamais miroitée */
[dir="rtl"] .elx-socle img { transform: none; }

/* =========================================================================
   6. Carte produit « spécimen » — le socle, puis sans cadre : type, nom, prix
   ========================================================================= */
.wc-block-product-template.elx-vitrine,
.elx-vitrine {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 1.75rem 0.875rem !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
@media (min-width: 600px) { .wc-block-product-template.elx-vitrine, .elx-vitrine { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 2.25rem 1.25rem !important; } }
@media (min-width: 1200px) { .wc-block-product-template.elx-vitrine, .elx-vitrine { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 2.75rem 1.75rem !important; } }
.elx-vitrine > li { inline-size: auto !important; max-inline-size: none !important; margin: 0 !important; padding: 0; }

.elx-specimen { position: relative; display: flex; flex-direction: column; gap: 0.85rem; block-size: 100%; }
.elx-specimen > * { margin: 0 !important; }
.elx-specimen__texte { display: flex; flex-direction: column; align-items: flex-start; gap: 0.3rem; }
.elx-specimen__texte > * { margin: 0 !important; }
.elx-specimen__type {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	color: var(--elx-ardoise);
	line-height: 1.4;
}
.elx-specimen__type .wp-block-post-terms__separator { color: var(--elx-ardoise-claire); }
.elx-specimen__nom {
	font-family: var(--elx-body) !important;
	font-size: 1.0625rem !important;
	font-weight: 600 !important;
	font-stretch: normal !important;
	letter-spacing: 0 !important;
	line-height: 1.3 !important;
	text-align: start !important;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.elx-specimen__nom a { color: var(--elx-encre); text-decoration: none; }
/* Lien étiré : toute la carte mène à la fiche */
.elx-specimen__nom a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.elx-specimen__nom a:hover { color: var(--elx-cherenkov); }
.elx-specimen__benefice { display: none; color: var(--elx-ardoise); font-size: var(--wp--preset--font-size--medium); }
.elx-specimen__benefice p { margin: 0; }
.elx-specimen__benefice .wp-block-post-excerpt__more-text { display: none; }

@supports selector(:has(*)) {
	.elx-specimen__nom a:focus-visible { outline: none; }
	.elx-specimen:has(.elx-specimen__nom a:focus-visible) .elx-socle { outline: 3px solid var(--elx-cherenkov); outline-offset: 3px; }
	.elx-specimen:has(.elx-specimen__nom a:focus-visible) .elx-specimen__nom a { color: var(--elx-cherenkov); text-decoration: underline; }
}

/* Survol (souris seulement) : la couverture se soulève, la carte ne bouge pas */
@media (hover: hover) {
	.elx-specimen:hover .elx-socle img { transform: translateY(-4px); }
	.elx-specimen:hover .elx-specimen__nom a { color: var(--elx-cherenkov); }
}

/* Pastille de prix : phosphore, Plex Mono — le seul élément chaud */
.elx-specimen__prix,
.elx-specimen__prix .wc-block-components-product-price { text-align: start !important; font-size: 1rem !important; line-height: 1.4; }
.elx-specimen__prix .woocommerce-Price-amount,
.elx-fiche__prix .woocommerce-Price-amount,
.elx-prix {
	display: inline-block;
	padding: 0.1em 0.5em;
	border-radius: var(--elx-r-etiquette);
	background: var(--elx-phosphore);
	color: var(--elx-encre);
}
.elx-specimen__prix del { color: var(--elx-ardoise-claire); }

/* Catalogue de moins de 9 produits (bureau) : la première carte prend 2 colonnes, avec sa phrase de bénéfice */
@media (min-width: 1200px) {
	.elx-collection--catalogue .elx-vitrine:not(:has(> li:nth-child(9))) > li:first-child { grid-column: span 2; }
	.elx-collection--catalogue .elx-vitrine:not(:has(> li:nth-child(9))) > li:first-child .elx-specimen {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: end;
		gap: 1.75rem;
	}
	.elx-collection--catalogue .elx-vitrine:not(:has(> li:nth-child(9))) > li:first-child .elx-specimen__nom {
		font-family: var(--elx-display) !important;
		font-size: clamp(1.6rem, 0.9rem + 1vw, 2rem) !important;
		font-weight: 700 !important;
		font-stretch: 100% !important;
		letter-spacing: -0.02em !important;
		line-height: 1.1 !important;
		-webkit-line-clamp: 3;
	}
	.elx-collection--catalogue .elx-vitrine:not(:has(> li:nth-child(9))) > li:first-child .elx-specimen__benefice { display: block; margin-block: 0.4rem 0.6rem !important; }
	.elx-collection--catalogue .elx-vitrine:not(:has(> li:nth-child(9))) > li:first-child .elx-specimen__texte { padding-block-end: 0.5rem; gap: 0.5rem; }
}
:lang(ar) .elx-collection--catalogue .elx-specimen__nom,
:lang(ru) .elx-collection--catalogue .elx-specimen__nom,
:lang(zh) .elx-collection--catalogue .elx-specimen__nom { font-stretch: normal !important; letter-spacing: 0 !important; }

.elx-vide { text-align: center; padding-block: 2.5rem; color: var(--elx-ardoise); }
.elx-vide p { margin-inline: auto; }

/* =========================================================================
   7. Accueil
   ========================================================================= */
.elx-hero { padding-block: clamp(1.5rem, 5vw, 4.5rem) var(--wp--preset--spacing--50); }
.elx-hero__grille { display: grid; gap: 1.75rem; }
.elx-hero__titre {
	font-size: var(--wp--preset--font-size--xxx-large) !important;
	font-weight: 800 !important;
	font-stretch: var(--elx-wdth-accueil) !important;
	line-height: 0.95 !important;
	letter-spacing: -0.02em;
	max-inline-size: 16ch;
	margin: 0 0 1rem !important;
}
.elx-hero__lead {
	max-inline-size: 40ch;
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.45;
	color: var(--elx-ardoise);
}
:lang(ar) .elx-hero__titre { max-inline-size: 18ch; }
:lang(zh) .elx-hero__titre { max-inline-size: 12em; }
/* M7 : sous 480 px, 3 lignes au plus dans les 11 langues (360, 390, 414 px). On resserre (66 %) et on plafonne la taille ;
   la limite en ch, qui rétrécit avec la largeur de la police, est levée. Russe : pas de cran au-dessus, taille propre. */
@media (max-width: 479px) {
	.elx-hero__titre { font-size: min(var(--wp--preset--font-size--xxx-large), 2.2rem) !important; max-inline-size: none; }
	html:lang(ru) .elx-hero__titre { font-size: 1.9rem !important; }
}

/* Bande de couvertures : défile au doigt, la 3e est coupée exprès */
.elx-pile { margin-inline: calc(-1 * var(--elx-gouttiere)); }
.elx-bande {
	display: flex !important;
	gap: 0.875rem !important;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: var(--elx-gouttiere);
	padding-inline: var(--elx-gouttiere) !important;
	padding-block: 0.25rem 1.25rem !important;
	margin: 0 !important;
	list-style: none;
	scrollbar-width: none;
}
.elx-bande::-webkit-scrollbar { display: none; }
.elx-bande > li { flex: 0 0 41% !important; max-inline-size: 15rem !important; scroll-snap-align: start; margin: 0 !important; }
.elx-specimen--bande .elx-specimen__nom { font-size: 1rem !important; }

/* Bureau : pile de trois socles décalés, statique, à côté d'un titre sur 8 colonnes */
@media (min-width: 1024px) {
	.elx-hero__grille { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); align-items: center; gap: clamp(2rem, 4vw, 4rem); }
	.elx-hero__titre { max-inline-size: none; font-size: clamp(3rem, 1.6rem + 2.6vw, 4rem) !important; }
	.elx-pile { margin-inline: 0; }
	.elx-bande {
		display: grid !important;
		grid-template-areas: "pile";
		overflow: visible;
		padding: 0 0 2rem !important;
		justify-items: center;
	}
	.elx-bande > li { grid-area: pile; inline-size: 88%; max-inline-size: none !important; }
	.elx-bande > li:nth-child(1) { z-index: 3; }
	.elx-bande > li:nth-child(2) { z-index: 2; transform: translate(-22%, 7%) rotate(-5deg); }
	.elx-bande > li:nth-child(3) { z-index: 1; transform: translate(22%, 11%) rotate(5deg); }
	[dir="rtl"] .elx-bande > li:nth-child(2) { transform: translate(22%, 7%) rotate(5deg); }
	[dir="rtl"] .elx-bande > li:nth-child(3) { transform: translate(-22%, 11%) rotate(-5deg); }
	.elx-bande > li:not(:first-child) .elx-specimen__texte { display: none; }
	.elx-bande .elx-socle { box-shadow: 0 1px 0 rgb(var(--elx-vitrine-rgb) / 0.6) inset; }
	.elx-bande > li:first-child .elx-specimen__texte { padding-block-start: 0.25rem; }
}

.elx-section__head { margin-block-end: 1rem; gap: 0.25rem 1.5rem; }
.elx-section__head h2 { margin: 0; }
.elx-section--catalogue { padding-block-start: var(--wp--preset--spacing--50); }

/* Puces de type */
.elx-puces { margin-block: 0 1.5rem; margin-inline: calc(-1 * var(--elx-gouttiere)); }
.elx-puces ul {
	display: flex;
	gap: 0.5rem;
	margin: 0;
	padding: 0.25rem var(--elx-gouttiere);
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: none;
}
.elx-puces ul::-webkit-scrollbar { display: none; }
.elx-puces li { flex: none; scroll-snap-align: start; }
.elx-puce {
	display: inline-flex;
	align-items: center;
	min-block-size: 44px;
	padding-inline: 1.1rem;
	border: 1px solid var(--elx-trait-fort);
	border-radius: 999px;
	background: var(--elx-vitrine);
	color: var(--elx-encre);
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: border-color var(--elx-dur-small) linear, background-color var(--elx-dur-small) linear;
}
.elx-puce:hover { border-color: var(--elx-cherenkov); color: var(--elx-cherenkov); }
.elx-puce[aria-current="page"] { background: var(--elx-cherenkov-pale); border-color: var(--elx-cherenkov); color: var(--elx-cherenkov); }
@media (min-width: 1024px) { .elx-puces { margin-inline: 0; } .elx-puces ul { padding-inline: 0; flex-wrap: wrap; } }
/* Seconde rangée (types d'une famille) : un cran plus discrète, serrée sous la première */
.elx-puces--sous { margin-block: -0.75rem 1.5rem; }
.elx-puces--sous .elx-puce { min-block-size: 44px; padding-inline: 0.95rem; font-weight: 400; font-size: var(--wp--preset--font-size--small); }

/* Tous nos types de produits [elx_tous_les_types] : une colonne sur téléphone, puis grille ; tout aligné en début de ligne */
.elx-types {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
	gap: 2.25rem 2rem;
	margin-block: 1.5rem 0;
}
.elx-types__famille { min-inline-size: 0; padding-block-start: 0.9rem; border-block-start: 2px solid var(--elx-encre); }
.elx-page .elx-types__titre,
.elx-types__titre {
	margin: 0 0 0.35rem;
	font-family: var(--elx-body);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	font-stretch: normal;
	letter-spacing: 0;
	line-height: 1.3;
}
.elx-types__titre a { color: var(--elx-encre); text-decoration: none; }
.elx-types__titre a:hover { color: var(--elx-cherenkov); text-decoration: underline; text-underline-offset: 0.2em; }
.elx-types__desc { margin: 0 0 0.6rem; font-size: var(--wp--preset--font-size--small); color: var(--elx-ardoise); text-wrap: pretty; }
.elx-types__liste { margin: 0; padding: 0; list-style: none; }
.elx-types__liste li { border-block-start: 1px solid var(--elx-trait); }
.elx-types__lien,
.elx-types__vide {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	min-block-size: 44px;
	padding-block: 0.4rem;
	line-height: 1.35;
}
.elx-types__lien { color: var(--elx-encre); font-weight: 600; text-decoration: none; }
.elx-types__lien:hover { color: var(--elx-cherenkov); }
.elx-types__lien:hover .elx-types__nom { text-decoration: underline; text-underline-offset: 0.2em; }
.elx-types__nb { flex: none; color: var(--elx-ardoise); font-size: var(--wp--preset--font-size--small); }
.elx-types__vide { color: var(--elx-ardoise-claire); font-size: var(--wp--preset--font-size--small); }

/* Étapes : ligne de temps (verticale sur téléphone, horizontale ensuite) */
.elx-etapes { padding-block: var(--wp--preset--spacing--50); }
.elx-etapes h2 { margin-block-end: 1.5rem; }
.elx-etapes__liste { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.elx-etape { position: relative; display: grid; align-content: start; grid-template-columns: 2.75rem minmax(0, 1fr); gap: 1rem; padding-block-end: 1.75rem; }
.elx-etape:last-child { padding-block-end: 0; }
.elx-etape::before {
	content: "";
	position: absolute;
	inset-block: 2.75rem 0;
	inset-inline-start: calc(1.375rem - 1px);
	inline-size: 2px;
	background: var(--elx-trait);
}
.elx-etape:last-child::before { display: none; }
.elx-etape__num {
	display: grid;
	place-items: center;
	inline-size: 2.75rem;
	block-size: 2.75rem;
	border: 2px solid var(--elx-cherenkov);
	border-radius: 50%;
	background: var(--elx-verre);
	color: var(--elx-cherenkov);
	font-size: 1.05rem;
	position: relative;
	z-index: 1;
}
.elx-etape h3 { margin: 0.4rem 0 0.3rem; font-family: var(--elx-body); font-size: var(--wp--preset--font-size--large); font-weight: 600; letter-spacing: 0; font-stretch: normal; }
.elx-etape p { margin: 0; color: var(--elx-ardoise); max-inline-size: 42ch; }
@media (min-width: 768px) {
	.elx-etapes__liste { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
	.elx-etape { grid-template-columns: 1fr; gap: 0.75rem; padding-block-end: 0; }
	.elx-etape::before { inset-block: calc(1.375rem - 1px) auto; inset-inline: 2.75rem -2rem; inline-size: auto; block-size: 2px; }
}

/* Miniature du reçu (étape 3) : la promesse de la signature */
.elx-mini-recu {
	display: inline-flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-block-start: 1rem;
	padding: 0.85rem 1rem;
	background: var(--elx-vitrine);
	border: 1px solid var(--elx-trait);
	border-radius: var(--elx-r-etiquette);
	border-block-start: 3px solid var(--elx-recu);
}
.elx-mini-recu__titre { font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--elx-recu); }
.elx-mini-recu__bouton {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.45rem 0.8rem;
	border-radius: 8px;
	background: var(--elx-recu);
	color: var(--elx-vitrine);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

/* Questions */
.elx-faq > * { max-inline-size: 760px !important; margin-inline-start: max(0px, (100% - 1200px) / 2) !important; margin-inline-end: auto !important; }
.elx-faq { padding-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50); }
.elx-faq h2 { margin-block-end: 0.75rem; }
.elx-faq .wp-block-details { border-block-end: 1px solid var(--elx-trait); padding-block: 0; margin: 0; }
.elx-faq .wp-block-details summary {
	position: relative;
	display: block;
	min-block-size: 48px;
	padding-block: 0.9rem;
	padding-inline-end: 2.5rem;
	cursor: pointer;
	list-style: none;
	font-weight: 600;
	font-size: 1.0625rem;
}
.elx-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.elx-faq .wp-block-details summary::before,
.elx-faq .wp-block-details summary::after {
	content: "";
	position: absolute;
	inset-inline-end: 0.5rem;
	inset-block-start: calc(50% - 1px);
	inline-size: 14px;
	block-size: 2px;
	border-radius: 2px;
	background: var(--elx-cherenkov);
	transition: transform var(--elx-dur-small) var(--elx-ease-out);
}
.elx-faq .wp-block-details summary::after { transform: rotate(90deg); }
.elx-faq .wp-block-details[open] summary::after { transform: rotate(0deg); }
.elx-faq .wp-block-details summary:hover { color: var(--elx-cherenkov); }
.elx-faq .wp-block-details p { color: var(--elx-ardoise); margin-block: 0 1rem; }

/* =========================================================================
   8. Catalogue
   ========================================================================= */
.elx-catalogue { padding-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--60); }
.elx-fil, .woocommerce-breadcrumb { font-size: var(--wp--preset--font-size--small); color: var(--elx-ardoise-claire); margin-block: 0 0.5rem; }
.elx-fil a { color: var(--elx-ardoise-claire); }
.elx-fil a:hover { color: var(--elx-cherenkov); }
.elx-catalogue__tete { margin-block-end: 1.25rem; }
.elx-catalogue__titre { gap: 0.75rem; }
.elx-catalogue__titre .wp-block-query-title { margin: 0; }
.elx-compte { margin: 0 0 0.35em; color: var(--elx-ardoise); font-size: var(--wp--preset--font-size--large); }
.elx-catalogue__outils { gap: 0.75rem; margin-block-start: 1rem; }
.elx-search--catalogue { flex: 1 1 18rem; max-inline-size: 30rem; margin: 0; }
.elx-search--catalogue .wp-block-search__inside-wrapper { min-block-size: 48px; }
.elx-tri select,
.woocommerce-ordering select {
	min-block-size: 48px;
	padding-inline: 0.85rem 2rem;
	border: 1px solid var(--elx-trait-fort);
	border-radius: var(--elx-r-champ);
	background-color: var(--elx-vitrine);
	color: var(--elx-encre);
	font: inherit;
	font-size: 1rem;
}
.elx-tri select:focus-visible { outline: 3px solid var(--elx-cherenkov); outline-offset: 2px; }
.elx-tri, .woocommerce-ordering { margin: 0 !important; }
.wp-block-query-pagination { margin-block-start: 2.5rem; font-family: var(--elx-mono); }

/* =========================================================================
   9. Fiche produit (la page la plus importante)
   ========================================================================= */
.elx-fiche { padding-block: 0.75rem var(--wp--preset--spacing--60); }
@media (max-width: 767px) { .elx-fiche .elx-fil { display: none; } }
.elx-fiche__haut {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "visuel" "achat" "apercu";
	gap: 1.25rem;
	margin-block-start: 0.5rem;
}
.elx-fiche__visuel { grid-area: visuel; }
.elx-fiche__achat { grid-area: achat; display: flex; flex-direction: column; gap: 0.85rem; min-inline-size: 0; }
.elx-fiche__achat > * { margin: 0 !important; }
.elx-fiche__apercu { grid-area: apercu; min-inline-size: 0; }
.elx-fiche__apercu:empty { display: none; }

/* Le titre, le prix et le bouton tiennent dans le premier écran d'un 360 × 740 : c'est la couverture qui rétrécit */
.elx-socle--fiche { block-size: clamp(220px, 100svh - 470px, 52svh); inline-size: auto; max-inline-size: 100%; }
@media (min-width: 1024px) {
	.elx-fiche__haut {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		grid-template-areas: "visuel achat" "apercu achat";
		grid-template-rows: auto 1fr;
		column-gap: clamp(2rem, 4.5vw, 4.5rem);
		row-gap: 2rem;
		align-items: start;
	}
	.elx-fiche__achat { position: sticky; inset-block-start: calc(var(--elx-entete) + 1.5rem); }
	.elx-socle--fiche { block-size: auto; inline-size: 100%; max-block-size: none; }
	.elx-fiche__titre { font-size: clamp(2.4rem, 1.2rem + 1.9vw, 3.1rem) !important; }
}

.elx-fiche__type { margin: 0; font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--elx-ardoise); }
.elx-fiche__titre {
	font-size: var(--wp--preset--font-size--xx-large) !important;
	font-weight: 700;
	font-stretch: var(--elx-wdth-fiche) !important;
	line-height: 1.02 !important;
	letter-spacing: -0.02em;
}
.elx-fiche__benefice { font-size: var(--wp--preset--font-size--large); line-height: 1.45; color: var(--elx-ardoise); }
.elx-fiche__benefice p { margin: 0; }
.elx-fiche__prixligne { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.35rem 0.75rem; margin-block-start: 0.25rem !important; }
.elx-fiche__prixligne > * { margin: 0 !important; }
.elx-fiche__prix, .elx-fiche__prix .wc-block-components-product-price { font-size: 1.5rem !important; line-height: 1.3; text-align: start !important; }
.elx-fiche__pays { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--elx-ardoise-claire); }

/* Formulaire d'achat WooCommerce : un seul bouton, 56 px, pleine largeur */
.elx-fiche form.cart { display: block; inline-size: 100%; margin: 0 !important; }
.elx-fiche .quantity { display: none !important; }
.elx-fiche .single_add_to_cart_button {
	inline-size: 100% !important;
	min-block-size: 56px;
	margin: 0 !important;
	font-size: 1.0625rem !important;
	font-weight: 600;
	border-radius: var(--elx-r-bouton) !important;
	background: var(--elx-cherenkov) !important;
	color: var(--elx-vitrine) !important;
}
.elx-fiche .single_add_to_cart_button:hover,
.elx-fiche .single_add_to_cart_button:focus-visible { background: var(--elx-cherenkov-nuit) !important; }
.elx-fiche .single_add_to_cart_button:active { transform: scale(0.98); }
.elx-fiche__rassurance { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--elx-ardoise-claire); }

/* L'étiquette : un document, rayon sec, bordure trait-fort, lignes clé / valeur */
.elx-etiquette {
	margin-block-start: 0.75rem !important;
	padding: 1rem 1.1rem 0.9rem;
	background: var(--elx-vitrine);
	border: 1px solid var(--elx-trait-fort);
	border-radius: var(--elx-r-etiquette);
}
.elx-etiquette__titre {
	margin: 0 0 0.5rem;
	font-family: var(--elx-body);
	font-size: 1rem !important;
	font-weight: 600;
	font-stretch: normal !important;
	letter-spacing: 0;
	line-height: 1.4;
}
.elx-etiquette dl { margin: 0; }
.elx-etiquette__ligne {
	display: grid;
	grid-template-columns: minmax(7.5rem, 2fr) minmax(0, 3fr);
	gap: 0.75rem;
	padding-block: 0.55rem;
	border-block-start: 1px solid var(--elx-trait);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
}
.elx-etiquette dt { color: var(--elx-ardoise); font-weight: 600; }
.elx-etiquette dd { margin: 0; color: var(--elx-encre); overflow-wrap: anywhere; }
.elx-etiquette dd .woocommerce-Price-amount { font-size: inherit; }
.elx-etiquette__note { margin: 0.5rem 0 0; padding-block-start: 0.6rem; border-block-start: 1px solid var(--elx-trait); font-size: var(--wp--preset--font-size--small); color: var(--elx-ardoise); }

/* Aperçu : défilement horizontal à la main, le dernier élément est coupé */
.elx-apercu__titre { margin: 0 0 0.75rem; font-family: var(--elx-body); font-size: var(--wp--preset--font-size--large) !important; font-weight: 600; font-stretch: normal !important; letter-spacing: 0; }
.elx-apercu__liste {
	display: flex;
	gap: 0.75rem;
	margin: 0 calc(-1 * var(--elx-gouttiere));
	padding: 0 var(--elx-gouttiere) 0.75rem;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: var(--elx-gouttiere);
}
.elx-apercu__item {
	flex: 0 0 62%;
	position: relative;
	aspect-ratio: 4 / 5;
	border-radius: var(--elx-r-socle);
	background: var(--elx-teinte, var(--elx-cherenkov-pale));
	scroll-snap-align: start;
}
.elx-apercu__item img { position: absolute; inset: 0; margin: auto; max-inline-size: 84%; max-block-size: 84%; inline-size: auto; block-size: auto; border-radius: var(--elx-r-image); box-shadow: var(--elx-ombre-sol); }
@media (min-width: 1024px) { .elx-apercu__liste { margin: 0; padding-inline: 0; } .elx-apercu__item { flex-basis: 40%; } }

/* Description, pour ceux qui cherchent le détail */
.elx-fiche__details { margin-block-start: var(--wp--preset--spacing--50); }
.elx-fiche__details .wc-tabs, .elx-fiche__details .tabs { display: none !important; }
.elx-fiche__details .woocommerce-Tabs-panel { display: block !important; margin: 0; padding: 0; }
.elx-fiche__details h2 { font-family: var(--elx-body); font-size: var(--wp--preset--font-size--large); font-weight: 600; font-stretch: normal; letter-spacing: 0; margin-block: 2rem 0.5rem; }
.elx-fiche__details :where(p, li) { max-inline-size: 68ch; }

/* Barre d'achat collante (mobile) : prix au début, bouton à la fin (miroir exact en arabe) */
.elx-barre-achat {
	position: fixed;
	inset-inline: 0;
	inset-block-end: 0;
	z-index: 40;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.65rem var(--elx-gouttiere) calc(0.65rem + env(safe-area-inset-bottom));
	background: var(--elx-vitrine); /* B7 : opaque, le pied de page ne transparaît plus */
	border-block-start: 1px solid var(--elx-trait);
	box-shadow: var(--elx-ombre-flottant);
	transform: translateY(110%);
	transition: transform var(--elx-dur-medium) var(--elx-ease-out);
}
.elx-barre-achat.is-visible { transform: translateY(0); }
.elx-barre-achat[hidden] { display: none; }
.elx-barre-achat__prix { font-size: 1.25rem; color: var(--elx-encre); }
.elx-barre-achat .elx-bouton { flex: 0 1 auto; min-block-size: 52px; padding-inline: 1.25rem; }
@media (min-width: 1024px) { .elx-barre-achat { display: none !important; } }

/* =========================================================================
   10. Panier et paiement (blocs WooCommerce)
   ========================================================================= */
.elx-paiement-page, .elx-panier-page { padding-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50); }
.wc-block-cart, .wc-block-checkout { --wp--preset--color--contrast: var(--elx-encre); }
.wc-block-components-button:not(.is-link) { border-radius: var(--elx-r-bouton); }
.wc-block-components-button:not(.is-link):not(.wc-block-components-totals-coupon__button) {
	background-color: var(--elx-cherenkov);
	color: var(--elx-vitrine);
	min-block-size: 52px;
}
.wc-block-components-button:not(.is-link):hover { background-color: var(--elx-cherenkov-nuit); }

/* Champs : libellé au-dessus, 48 px, 16 px de texte (pas de zoom iOS), bordure trait-fort */
.wc-block-components-text-input,
.wc-block-components-combobox .wc-block-components-combobox-control,
.wc-blocks-components-select { margin-block-start: 1rem !important; }
.wc-block-components-text-input:not(.wc-block-components-totals-coupon__input) {
	display: flex;
	flex-direction: column;
}
.wc-block-components-text-input:not(.wc-block-components-totals-coupon__input) label {
	position: static !important;
	order: -1;
	transform: none !important;
	margin: 0 0 0.35rem !important;
	font-size: var(--wp--preset--font-size--small) !important;
	font-weight: 600;
	color: var(--elx-ardoise) !important;
	line-height: 1.4 !important;
	max-inline-size: 100%;
	white-space: normal !important;
}
.wc-block-components-text-input input,
.wc-block-components-combobox .components-combobox-control__input,
.wc-blocks-components-select__select,
.wc-block-components-textarea {
	min-block-size: 48px !important;
	padding: 0.7rem 0.9rem !important;
	border: 1px solid var(--elx-trait-fort) !important;
	border-radius: var(--elx-r-champ) !important;
	background: var(--elx-vitrine) !important;
	color: var(--elx-encre) !important;
	font-size: 16px !important;
	line-height: 1.4 !important;
}
.wc-block-components-text-input input:focus,
.wc-blocks-components-select__select:focus,
.wc-block-components-combobox .components-combobox-control__input:focus {
	border-color: var(--elx-cherenkov) !important;
	outline: 3px solid var(--elx-cherenkov) !important;
	outline-offset: 1px;
	box-shadow: none !important;
}
.wc-block-components-text-input input:disabled { background: var(--elx-verre) !important; color: var(--elx-ardoise-claire) !important; }
.wc-block-components-text-input.has-error input,
.wc-block-components-combobox.has-error input { border-color: var(--elx-alerte) !important; }
.wc-block-components-validation-error,
.wc-block-components-validation-error p { color: var(--elx-alerte) !important; font-size: var(--wp--preset--font-size--small); }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] { border-color: var(--elx-trait-fort); min-inline-size: 1.25rem; min-block-size: 1.25rem; }
.wc-block-checkout__terms, .wc-block-components-checkbox__label { color: var(--elx-encre); font-size: var(--wp--preset--font-size--small); }

/* Listes déroulantes (pays) : libellé au-dessus, comme les champs */
.wc-blocks-components-select .wc-blocks-components-select__container { display: flex; flex-direction: column; block-size: auto !important; background: none !important; }
.wc-blocks-components-select .wc-blocks-components-select__label {
	position: static !important;
	order: -1;
	transform: none !important;
	margin: 0 0 0.35rem;
	font-size: var(--wp--preset--font-size--small) !important;
	font-weight: 600;
	color: var(--elx-ardoise) !important;
	line-height: 1.4;
}
.wc-blocks-components-select .wc-blocks-components-select__expand { inset-block-start: auto !important; inset-block-end: 14px; transform: none !important; }

/* Récapitulatif : prix en encre, gros, Plex Mono — pas de pastille jaune (le seul jaune est le bouton PayPal) */
.wc-block-components-totals-item__value,
.wc-block-components-order-summary-item__total-price,
.wc-block-components-product-price { font-family: var(--elx-mono); font-weight: 600; color: var(--elx-encre); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 1.5rem; }
.wc-block-components-order-summary-item__image img { border-radius: var(--elx-r-image); }
@media (min-width: 1024px) {
	.wc-block-checkout .wc-block-components-sidebar { position: sticky; inset-block-start: calc(var(--elx-entete) + 1rem); align-self: flex-start; }
}

/* Paiement classique [woocommerce_checkout] (audit H1) : rendu serveur, sans React.
   Mobile : une colonne de 560 px (champs, puis récapitulatif, consentement et bouton PayPal).
   Bureau : champs à gauche, récapitulatif collant à droite. Places réservées : rien ne saute à l'arrivée des scripts. */
.elx-paiement .wp-block-post-content > .woocommerce { max-inline-size: 560px; margin-inline: auto; }
.elx-paiement .woocommerce-form-login-toggle .wc-block-components-notice-banner,
.elx-paiement .woocommerce-form-coupon-toggle .wc-block-components-notice-banner {
	margin: 0 0 0.75rem; padding: 0.6rem 0.9rem; font-size: var(--wp--preset--font-size--small);
	border-radius: var(--elx-r-champ); background: var(--elx-verre); border-color: var(--elx-trait-fort); color: var(--elx-encre);
}
.elx-paiement .woocommerce-form-login-toggle .wc-block-components-notice-banner > svg,
.elx-paiement .woocommerce-form-coupon-toggle .wc-block-components-notice-banner > svg { display: none; }

/* M8 : plus de bande vide sous l'en-tête */
.elx-paiement-page { padding-block-start: 1rem; }
.elx-paiement-page > *,
.elx-paiement-page .wp-block-post-content > *:first-child,
.elx-paiement .wp-block-post-content > .woocommerce > *:first-child { margin-block-start: 0 !important; }
.elx-paiement-page .woocommerce-notices-wrapper:empty,
.elx-paiement-page .wc-block-store-notices:empty { display: none; }

/* M9 : ce qu'on achète et combien, en premier (vignette, titre, total) */
.elx-resume {
	margin: 0 0 0.5rem;
	padding: 0.85rem 1rem;
	background: var(--elx-vitrine);
	border: 1px solid var(--elx-trait-fort);
	border-radius: var(--elx-r-etiquette);
}
.elx-resume__titre { margin: 0 0 0.5rem; font-family: var(--elx-body); font-size: var(--wp--preset--font-size--small) !important; font-weight: 600; font-stretch: normal; letter-spacing: 0; color: var(--elx-ardoise); }
.elx-resume__liste { display: grid; gap: 0.6rem; margin: 0; padding: 0; list-style: none; }
.elx-resume__ligne { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 0.75rem; }
.elx-resume__vignette {
	display: grid;
	place-items: center;
	inline-size: 48px;
	aspect-ratio: 4 / 5;
	padding: 4px;
	box-sizing: border-box;
	border-radius: 6px;
	background: var(--elx-teinte, var(--elx-cherenkov-pale));
}
.elx-resume__img { inline-size: 100%; block-size: 100%; object-fit: contain; border-radius: 2px; }
.elx-resume__nom { font-weight: 600; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.elx-resume__prix { font-size: var(--wp--preset--font-size--small); color: var(--elx-ardoise); white-space: nowrap; }
.elx-resume__prix .amount { color: var(--elx-ardoise); }
.elx-resume__total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	margin: 0.75rem 0 0;
	padding-block-start: 0.6rem;
	border-block-start: 1px solid var(--elx-trait);
	font-weight: 600;
}
.elx-resume__montant .amount { font-size: 1.5rem; color: var(--elx-encre); background: none; }
.elx-resume__liste:has(> li:only-child) .elx-resume__prix { display: none; } /* un seul article : le total suffit */

/* M9 : les codes promo restent disponibles, repliés derrière un lien discret (pas de bandeau) */
.elx-paiement .woocommerce-form-coupon-toggle .wc-block-components-notice-banner,
.elx-paiement .woocommerce-form-coupon-toggle .woocommerce-info {
	margin: 0 0 0.75rem; padding: 0; border: 0; background: none; box-shadow: none; font-size: var(--wp--preset--font-size--small);
}
.elx-paiement .woocommerce-form-coupon-toggle .wc-block-components-notice-banner__content { padding: 0; }
.elx-paiement .woocommerce-form-coupon-toggle .showcoupon {
	display: inline-flex; align-items: center; min-block-size: 44px; color: var(--elx-cherenkov); font-weight: 600; text-underline-offset: 0.2em;
}
.elx-paiement .woocommerce-form-coupon-toggle .woocommerce-info::before { display: none; }
.elx-paiement form.checkout_coupon .form-row { float: none; inline-size: auto; margin: 0 0 0.5rem; padding: 0; }
.elx-paiement form.checkout_coupon .input-text {
	box-sizing: border-box; inline-size: 100%; min-block-size: 48px; padding: 0.7rem 0.9rem; font-size: 16px;
	border: 1px solid var(--elx-trait-fort); border-radius: var(--elx-r-champ); background: var(--elx-vitrine); color: var(--elx-encre);
}
.elx-paiement form.checkout_coupon button { min-block-size: 48px; padding-inline: 1.1rem; border: 1.5px solid var(--elx-encre); border-radius: var(--elx-r-bouton); background: transparent; color: var(--elx-encre); font-weight: 600; cursor: pointer; }
.elx-paiement form.checkout_coupon button:hover { background: var(--elx-encre); color: var(--elx-vitrine); }

/* M10 : un seul appel au paiement. PayPal coché et son bouton prévu : « Continuer sur PayPal » (#place_order) est masqué
   dès le premier affichage (aucun saut). Il revient pour la carte, ou si le bouton PayPal n'a pas pu s'afficher (script). */
body:not(.elx-paypal-absent) #order_review:has(#payment_method_ppcp-gateway:checked):has(.ppc-button-wrapper) #place_order { display: none !important; }
.elx-paiement form.woocommerce-form-login,
.elx-paiement form.checkout_coupon { margin: 0 0 1rem; padding: 1rem; border: 1px solid var(--elx-trait-fort); border-radius: var(--elx-r-champ); }
form.checkout.woocommerce-checkout { display: flex; flex-direction: column; gap: 0; }
form.checkout .col2-set { display: block; inline-size: 100%; }
form.checkout .col2-set > .col-1, form.checkout .col2-set > .col-2 { float: none; inline-size: 100%; max-inline-size: none; padding: 0; }
form.checkout h3 { font-family: var(--elx-display); font-weight: 600; font-size: 1.25rem; margin: 1.5rem 0 0.25rem; color: var(--elx-encre); }
form.checkout .woocommerce-billing-fields > h3 { margin-block-start: 0; }
form.checkout .woocommerce-billing-fields__field-wrapper { display: flex; flex-wrap: wrap; column-gap: 0.75rem; }
form.checkout .form-row { display: flex; flex-direction: column; flex: 1 1 100%; margin: 1rem 0 0; padding: 0; float: none; inline-size: auto; }
form.checkout .form-row-first, form.checkout .form-row-last { flex: 1 1 calc(50% - 0.375rem); min-inline-size: 0; }
form.checkout .form-row > label:not(.checkbox):not(.woocommerce-form__label-for-checkbox) {
	margin: 0 0 0.35rem; font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--elx-ardoise); line-height: 1.4;
}
form.checkout .form-row .required { color: var(--elx-alerte); text-decoration: none; border: 0; }
form.checkout .form-row .woocommerce-input-wrapper { display: block; inline-size: 100%; }
form.checkout .form-row input.input-text,
form.checkout .form-row textarea,
form.checkout .form-row select,
form.checkout .select2-container .select2-selection--single {
	box-sizing: border-box; inline-size: 100%; min-block-size: 48px; margin: 0;
	padding: 0.7rem 0.9rem; border: 1px solid var(--elx-trait-fort); border-radius: var(--elx-r-champ);
	background: var(--elx-vitrine); color: var(--elx-encre); font: inherit; font-size: 16px; line-height: 1.4;
}
form.checkout .form-row textarea { min-block-size: 96px; }
form.checkout .select2-container { inline-size: 100% !important; }
form.checkout .select2-container .select2-selection--single { display: flex; align-items: center; block-size: 48px; padding-block: 0; }
form.checkout .select2-container .select2-selection--single .select2-selection__rendered { padding: 0 !important; line-height: 1.4; color: var(--elx-encre); }
form.checkout .select2-container .select2-selection--single .select2-selection__arrow { block-size: 46px; inset-inline-end: 8px; }
form.checkout .form-row input.input-text:focus,
form.checkout .form-row textarea:focus,
form.checkout .form-row select:focus,
form.checkout .select2-container--focus .select2-selection--single {
	border-color: var(--elx-cherenkov); outline: 3px solid var(--elx-cherenkov); outline-offset: 1px; box-shadow: none;
}
form.checkout .form-row.woocommerce-invalid input.input-text,
form.checkout .form-row.woocommerce-invalid .select2-selection { border-color: var(--elx-alerte); }
form.checkout .woocommerce-account-fields { min-block-size: 2.75rem; }
form.checkout .woocommerce-form__label-for-checkbox,
form.checkout label.checkbox { display: flex; align-items: flex-start; gap: 0.6rem; font-size: var(--wp--preset--font-size--small); font-weight: 400; color: var(--elx-encre); line-height: 1.5; cursor: pointer; }
form.checkout input[type="checkbox"], form.checkout input[type="radio"] { flex: none; inline-size: 1.25rem; block-size: 1.25rem; margin: 0.1rem 0 0; accent-color: var(--elx-cherenkov); }
/* Récapitulatif : prix en encre, Plex Mono, pas de pastille jaune (le seul jaune est le bouton PayPal) */
form.checkout #order_review_heading { margin-block-start: 2rem; }
form.checkout .woocommerce-checkout-review-order-table { inline-size: 100%; border: 0 !important; border-radius: 0 !important; border-collapse: collapse; margin: 0.5rem 0 0; font-size: var(--wp--preset--font-size--small); }
form.checkout .woocommerce-checkout-review-order-table th,
form.checkout .woocommerce-checkout-review-order-table td { padding: 0.7rem 0; border-block-end: 1px solid var(--elx-trait); text-align: start; vertical-align: top; }
form.checkout .woocommerce-checkout-review-order-table thead { display: none; }
form.checkout .woocommerce-checkout-review-order-table td:last-child { text-align: end; white-space: nowrap; padding-inline-start: 1rem; }
form.checkout .woocommerce-checkout-review-order-table .product-quantity { display: none; }
form.checkout .woocommerce-checkout-review-order-table .amount { font-family: var(--elx-mono); font-weight: 600; color: var(--elx-encre); background: none; padding: 0; unicode-bidi: isolate; direction: ltr; }
form.checkout .woocommerce-checkout-review-order-table .order-total th { font-size: 1rem; }
form.checkout .woocommerce-checkout-review-order-table .order-total .amount { font-size: 1.5rem; }
form.checkout .woocommerce-checkout-review-order-table .order-total td,
form.checkout .woocommerce-checkout-review-order-table .order-total th { border-block-end: 0; }
/* Moyens de paiement, consentement, bouton : place du bouton PayPal réservée (48 px) */
form.checkout #payment { margin-block-start: 1rem; padding: 0; background: none; border-radius: 0; }
form.checkout #payment ul.payment_methods { list-style: none; margin: 0; padding: 0; border: 1px solid var(--elx-trait-fort); border-radius: var(--elx-r-champ); }
form.checkout #payment ul.payment_methods li { padding: 0.75rem 1rem; margin: 0; }
form.checkout #payment ul.payment_methods li + li { border-block-start: 1px solid var(--elx-trait); }
form.checkout #payment ul.payment_methods li > label { display: inline-flex; align-items: center; gap: 0.5rem; min-block-size: 44px; margin-inline-start: 0.5rem; color: var(--elx-encre); font-weight: 600; cursor: pointer; }
form.checkout #payment ul.payment_methods li > input { vertical-align: middle; margin: 0; }
form.checkout #payment ul.payment_methods li img { display: none; }
form.checkout #payment .payment_box { margin: 0.25rem 0 0; padding: 0; background: none; font-size: var(--wp--preset--font-size--small); color: var(--elx-ardoise); }
form.checkout #payment .payment_box::before { display: none; }
form.checkout #payment .payment_box p { margin: 0; }
form.checkout #payment .form-row.place-order { margin: 1rem 0 0; padding: 0 !important; display: block; }
form.checkout .woocommerce-privacy-policy-text p,
form.checkout .woocommerce-terms-and-conditions-wrapper p { margin: 0 0 0.75rem; font-size: var(--wp--preset--font-size--small); color: var(--elx-ardoise); }
form.checkout .woocommerce-terms-and-conditions-wrapper .form-row { margin: 0 0 1rem; }
form.checkout #place_order {
	inline-size: 100%; min-block-size: 52px; border: 0; border-radius: var(--elx-r-bouton);
	background: var(--elx-cherenkov); color: var(--elx-vitrine); font-weight: 600; font-size: 1rem; cursor: pointer;
}
form.checkout #place_order:hover { background: var(--elx-cherenkov-nuit); }
form.checkout .ppc-button-wrapper { min-block-size: 48px; }
form.checkout .ppc-button-wrapper:empty::before { content: ""; display: block; block-size: 48px; border-radius: 4px; background: var(--elx-verre); }
form.checkout .blockUI.blockOverlay { background: var(--elx-vitrine) !important; }
@media (min-width: 1024px) {
	.elx-paiement .wp-block-post-content > .woocommerce { max-inline-size: 1100px; }
	.elx-resume { display: none; } /* bureau : le récapitulatif collant de droite montre déjà produit et total */
	.elx-paiement .woocommerce-form-login-toggle,
	.elx-paiement .woocommerce-form-coupon-toggle,
	.elx-paiement form.woocommerce-form-login,
	.elx-paiement form.checkout_coupon { max-inline-size: 560px; }
	form.checkout.woocommerce-checkout { display: grid; grid-template-columns: minmax(0, 560px) minmax(0, 420px); column-gap: 4rem; align-items: start; }
	form.checkout .col2-set { grid-column: 1; grid-row: 1 / span 3; }
	form.checkout #order_review_heading { grid-column: 2; grid-row: 1; margin-block-start: 0; }
	form.checkout #order_review { grid-column: 2; grid-row: 2; position: sticky; inset-block-start: calc(var(--elx-entete) + 1rem); }
}

/* Paiement : en-tête réduit (pas de menu), pied de page réduit à la ligne légale */
.elx-paiement .elx-nav,
.elx-paiement .elx-header__tools { display: none !important; }
.elx-paiement .elx-header__securise { display: inline-flex; }
.elx-paiement .elx-site-header { position: static; }

/* Panier classique [woocommerce_cart] (rendu serveur, traduit avec la page) : une ligne par produit, total, bouton */
.elx-panier-titre { margin: 0 0 1rem !important; font-size: var(--wp--preset--font-size--x-large) !important; }
.elx-panier-page .woocommerce { max-inline-size: 760px; margin-inline: auto; }
.woocommerce-cart-form .shop_table { inline-size: 100%; margin: 0; border: 0 !important; border-radius: 0 !important; border-collapse: collapse; }
.woocommerce-cart-form .shop_table thead { display: none; }
.woocommerce-cart-form .shop_table tbody { display: block; }
.woocommerce-cart-form .shop_table td { display: block; padding: 0 !important; border: 0 !important; background: none !important; text-align: start !important; }
.woocommerce-cart-form .shop_table td::before { display: none !important; }
.woocommerce-cart-form tr.cart_item {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr) auto 44px;
	grid-template-areas: "img nom prix retirer";
	align-items: center;
	gap: 0.25rem 0.85rem;
	padding-block: 0.9rem;
	border-block-end: 1px solid var(--elx-trait);
}
.woocommerce-cart-form td.product-thumbnail { grid-area: img; }
.woocommerce-cart-form td.product-thumbnail img {
	display: block; inline-size: 64px !important; block-size: 80px; max-inline-size: none; padding: 5px; box-sizing: border-box;
	object-fit: contain; border-radius: 8px; background: var(--elx-cherenkov-pale);
}
.woocommerce-cart-form td.product-name { grid-area: nom; font-weight: 600; line-height: 1.3; }
.woocommerce-cart-form td.product-name a { color: var(--elx-encre); text-decoration: none; }
.woocommerce-cart-form td.product-name a:hover { color: var(--elx-cherenkov); text-decoration: underline; }
.woocommerce-cart-form td.product-name :is(dl, .variation) { margin: 0.25rem 0 0; font-size: var(--wp--preset--font-size--small); font-weight: 400; color: var(--elx-ardoise); }
.woocommerce-cart-form td.product-price,
.woocommerce-cart-form td.product-quantity { display: none !important; }
.woocommerce-cart-form td.product-subtotal { grid-area: prix; white-space: nowrap; }
.woocommerce-cart-form td.product-remove { grid-area: retirer; }
.woocommerce-cart-form a.remove {
	display: grid; place-items: center; inline-size: 44px; block-size: 44px; border-radius: 999px;
	font-size: 1.5rem; line-height: 1; color: var(--elx-ardoise) !important; background: none !important; text-decoration: none;
}
.woocommerce-cart-form a.remove:hover { background: var(--elx-cherenkov-pale) !important; color: var(--elx-alerte) !important; }
.woocommerce-cart-form tr:not(.cart_item) { display: block; }
.woocommerce-cart-form td.actions { padding-block: 1rem 0 !important; }
.woocommerce-cart-form td.actions button[name="update_cart"] { display: none; } /* vendu à l'unité : rien à mettre à jour */
.woocommerce-cart-form td.actions .coupon { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.woocommerce-cart-form td.actions .coupon .input-text {
	flex: 1 1 12rem; box-sizing: border-box; min-block-size: 48px; padding: 0.7rem 0.9rem; font-size: 16px; margin: 0;
	border: 1px solid var(--elx-trait-fort); border-radius: var(--elx-r-champ); background: var(--elx-vitrine); color: var(--elx-encre);
}
.woocommerce-cart-form td.actions .coupon .input-text:focus { border-color: var(--elx-cherenkov); outline: 3px solid var(--elx-cherenkov); outline-offset: 1px; }
.woocommerce-cart-form td.actions .coupon button {
	min-block-size: 48px; padding-inline: 1.1rem; margin: 0; border: 1.5px solid var(--elx-encre); border-radius: var(--elx-r-bouton);
	background: transparent; color: var(--elx-encre); font-weight: 600; cursor: pointer;
}
.woocommerce-cart-form td.actions .coupon button:hover { background: var(--elx-encre); color: var(--elx-vitrine); }
.elx-panier-page .cart-collaterals { margin-block-start: 1.5rem; }
.elx-panier-page .cart_totals { float: none; inline-size: 100%; }
.elx-panier-page .cart_totals > h2 { margin: 0 0 0.25rem; font-family: var(--elx-body); font-size: var(--wp--preset--font-size--small); font-weight: 600; font-stretch: normal; letter-spacing: 0; color: var(--elx-ardoise); }
.elx-panier-page .cart_totals table { inline-size: 100%; border: 0 !important; border-collapse: collapse; }
.elx-panier-page .cart_totals :is(th, td) { padding: 0.6rem 0 !important; border: 0 !important; border-block-end: 1px solid var(--elx-trait) !important; background: none !important; text-align: start; }
.elx-panier-page .cart_totals td { text-align: end !important; }
.elx-panier-page .cart_totals td::before { display: none !important; }
.elx-panier-page .cart_totals .order-total :is(th, td) { border-block-end: 0 !important; }
.elx-panier-page .cart_totals .order-total .amount { font-size: 1.5rem; color: var(--elx-encre); }
.elx-panier-page .wc-proceed-to-checkout { padding: 1rem 0 0 !important; }
.elx-panier-page .wc-proceed-to-checkout a.checkout-button {
	display: flex; align-items: center; justify-content: center; inline-size: 100%; box-sizing: border-box; min-block-size: 56px; margin: 0;
	padding: 0.85rem 1.4rem; border-radius: var(--elx-r-bouton); background: var(--elx-cherenkov); color: var(--elx-vitrine);
	font-size: 1.0625rem; font-weight: 600; text-decoration: none;
	transition: transform var(--elx-dur-micro) var(--elx-ease-out), background-color var(--elx-dur-micro) linear;
}
.elx-panier-page .wc-proceed-to-checkout a.checkout-button:hover { background: var(--elx-cherenkov-nuit); }
.elx-panier-page .wc-proceed-to-checkout a.checkout-button:active { transform: scale(0.98); background: var(--elx-cherenkov-nuit); }

/* Panier vide (M3, DESIGN §6.3) : centré, une phrase, le lien vers le catalogue, puis trois cartes */
.elx-panier-vide { text-align: center; padding-block: 1.5rem 2rem; }
.elx-panier-vide__texte { margin: 0 0 0.25rem; font-size: var(--wp--preset--font-size--large); color: var(--elx-ardoise); }
.elx-panier-vide__produits { margin-block-start: 0.5rem; }
@media (min-width: 600px) { .elx-panier-vide__produits .elx-vitrine { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
.elx-panier-page:has(.elx-panier-vide) .elx-panier-titre { text-align: center; }

/* =========================================================================
   11. Commande reçue : le reçu
   ========================================================================= */
.elx-commande { background: var(--elx-recu-pale); padding-block: var(--wp--preset--spacing--50) 0; }
.elx-recu-page { text-align: center; padding-block-end: var(--wp--preset--spacing--40); }
.elx-recu-ticket {
	--elx-dent: 8px;
	position: relative;
	padding: calc(1.75rem + var(--elx-dent)) 1.5rem calc(1.5rem + var(--elx-dent));
	background: var(--elx-vitrine);
	text-align: start;
	-webkit-mask:
		conic-gradient(from 135deg at top, transparent, black 1deg 89deg, transparent 90deg) top / calc(2 * var(--elx-dent)) var(--elx-dent) repeat-x,
		conic-gradient(from -45deg at bottom, transparent, black 1deg 89deg, transparent 90deg) bottom / calc(2 * var(--elx-dent)) var(--elx-dent) repeat-x,
		linear-gradient(black 0 0) center / 100% calc(100% - 2 * var(--elx-dent) + 1px) no-repeat;
	mask:
		conic-gradient(from 135deg at top, transparent, black 1deg 89deg, transparent 90deg) top / calc(2 * var(--elx-dent)) var(--elx-dent) repeat-x,
		conic-gradient(from -45deg at bottom, transparent, black 1deg 89deg, transparent 90deg) bottom / calc(2 * var(--elx-dent)) var(--elx-dent) repeat-x,
		linear-gradient(black 0 0) center / 100% calc(100% - 2 * var(--elx-dent) + 1px) no-repeat;
}
.elx-recu-ticket > * { margin-block: 0 !important; }
.elx-recu-ticket > * + * { margin-block-start: 1rem !important; }
.elx-recu-ticket__titre {
	text-align: center;
	font-family: var(--elx-display);
	font-weight: 800;
	font-size: var(--wp--preset--font-size--x-large);
	font-stretch: var(--elx-wdth-section);
	color: var(--elx-recu);
	line-height: 1.1;
}
:lang(ar) .elx-recu-ticket__titre, :lang(ru) .elx-recu-ticket__titre, :lang(zh) .elx-recu-ticket__titre { font-stretch: normal; font-weight: 600; }
.elx-recu-ticket .wc-block-order-confirmation-status { text-align: center; color: var(--elx-ardoise); font-size: var(--wp--preset--font-size--medium) !important; }
.elx-recu-ticket .wc-block-order-confirmation-status h1 { font-size: var(--wp--preset--font-size--x-large); }
.wc-block-order-confirmation-summary-list {
	display: grid;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	border-block: 1px dashed var(--elx-trait-fort);
}
.wc-block-order-confirmation-summary-list-item {
	display: flex !important;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 0.5rem;
	border: 0 !important;
	font-size: var(--wp--preset--font-size--small);
}
.wc-block-order-confirmation-summary-list-item + .wc-block-order-confirmation-summary-list-item { border-block-start: 1px solid var(--elx-trait) !important; }
.wc-block-order-confirmation-summary-list-item__key { color: var(--elx-ardoise); font-weight: 600; }
.wc-block-order-confirmation-summary-list-item__value { font-family: var(--elx-mono); font-weight: 600; text-align: end; overflow-wrap: anywhere; unicode-bidi: isolate; }

/* Téléchargements : chaque fichier devient le bouton « Télécharger », couleur reçu, 56 px */
.elx-recu-ticket__fichiers table,
.elx-recu-ticket__fichiers tbody,
.elx-recu-ticket__fichiers tr,
.elx-recu-ticket__fichiers td { display: block; border: 0 !important; padding: 0 !important; background: none !important; inline-size: 100%; }
.elx-recu-ticket__fichiers thead { display: none; }
.elx-recu-ticket__fichiers td::before { display: none !important; }
.elx-recu-ticket__fichiers tr + tr { margin-block-start: 0.75rem; }
.elx-recu-ticket__fichiers td:not(.download-file) { font-size: var(--wp--preset--font-size--small); color: var(--elx-ardoise); text-align: center; }
.elx-recu-ticket__fichiers td.download-file { margin-block: 0.4rem; }
.elx-recu-ticket__fichiers a.woocommerce-MyAccount-downloads-file,
.elx-recu-ticket__fichiers td.download-file a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-block-size: 56px;
	padding: 0.75rem 1.25rem;
	border-radius: var(--elx-r-bouton);
	background: var(--elx-recu) !important;
	color: var(--elx-vitrine) !important;
	font-weight: 600;
	text-decoration: none;
	text-align: center;
	overflow-wrap: anywhere;
	transition: transform var(--elx-dur-micro) var(--elx-ease-out);
}
.elx-recu-ticket__fichiers td.download-file a:hover { background: color-mix(in srgb, var(--elx-recu) 80%, var(--elx-encre)) !important; }
.elx-recu-ticket__fichiers td.download-file a:active { transform: scale(0.98); }
.elx-recu-ticket__fichiers td.download-file a:focus-visible { outline-color: var(--elx-encre); }
.elx-recu-ticket__totaux table { inline-size: 100%; font-size: var(--wp--preset--font-size--small); border-collapse: collapse; }
.elx-recu-ticket__totaux :where(th, td) { padding: 0.4rem 0; border: 0; border-block-start: 1px solid var(--elx-trait); text-align: start; }
.elx-recu-ticket__totaux td:last-child, .elx-recu-ticket__totaux th:last-child { text-align: end; }
.elx-recu-page__copie { margin-block: 1.5rem 0.25rem; font-weight: 600; }
.elx-recu-page__aide { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--elx-ardoise); }
.elx-recu-autres { background: var(--elx-verre); padding-block: var(--wp--preset--spacing--50); }
.elx-recu-autres__titre { font-size: var(--wp--preset--font-size--large) !important; font-family: var(--elx-body); font-weight: 600; font-stretch: normal !important; letter-spacing: 0; }

/* =========================================================================
   12. Pages (CGV, contact…) et articles
   ========================================================================= */
.elx-page h2 { font-size: var(--wp--preset--font-size--large); font-family: var(--elx-body); font-stretch: normal; letter-spacing: 0; margin-block-start: 2rem; }
.elx-meta { font-size: var(--wp--preset--font-size--small); color: var(--elx-ardoise-claire); }
.elx-promesse { color: var(--elx-ardoise); }

/* =========================================================================
   13. Pied de page (fond encre ; liens et focus en « lumière »)
   ========================================================================= */
.elx-site-footer { margin-block-start: 0; background: var(--elx-encre); color: var(--elx-pied-texte); }
.elx-site-footer :focus-visible { outline-color: var(--elx-lumiere); }
.elx-footer { padding-block: var(--wp--preset--spacing--50) 1.25rem; }
.elx-footer__grid { display: grid; grid-template-columns: 1fr; gap: 1.75rem; }
@media (min-width: 600px) { .elx-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .elx-footer__marque { grid-column: 1 / -1; } }
@media (min-width: 1024px) { .elx-footer__grid { grid-template-columns: 1.5fr repeat(3, minmax(0, 1fr)); } .elx-footer__marque { grid-column: auto; } }
.elx-wordmark--footer { color: var(--elx-vitrine); }
.elx-footer__note { max-inline-size: 36ch; margin-block: 0.75rem 0; font-size: 0.9375rem; color: var(--elx-pied-texte); }
.elx-footer__titre { margin: 0 0 0.5rem; font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--elx-pied-discret); }
.elx-footer__liens { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.elx-footer__liens a,
.elx-footer__legal a {
	display: inline-flex;
	align-items: center;
	min-block-size: 44px;
	color: var(--elx-pied-texte);
	text-decoration: none;
}
.elx-footer__liens a:hover,
.elx-footer__legal a:hover { color: var(--elx-lumiere); text-decoration: underline; text-underline-offset: 0.25em; }
.elx-footer__bas {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.5rem;
	margin-block-start: 2rem;
	padding-block-start: 1.25rem;
	border-block-start: 1px solid rgb(var(--elx-vitrine-rgb) / 0.14);
}
.elx-footer__paiement, .elx-footer__copy { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--elx-pied-discret); }
.elx-footer__copy { margin-inline-start: auto; }
.elx-footer__legal { display: none; flex-wrap: wrap; gap: 0 1.5rem; font-size: var(--wp--preset--font-size--small); }

.elx-langues--pied::after { position: absolute; inset-inline-end: 0.9rem; inset-block-start: calc(50% - 0.3rem); pointer-events: none; color: var(--elx-pied-texte); }
.elx-langues--pied .elx-langues__select {
	appearance: none;
	-webkit-appearance: none;
	min-block-size: 44px;
	min-inline-size: 10rem;
	padding-inline: 1rem 2.25rem;
	border: 1px solid rgb(var(--elx-vitrine-rgb) / 0.3);
	border-radius: 999px;
	background: transparent;
	color: var(--elx-pied-texte);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
}
.elx-langues--pied .elx-langues__select:hover { border-color: var(--elx-lumiere); }
.elx-langues--pied .elx-langues__select:focus-visible { outline: 3px solid var(--elx-lumiere); outline-offset: 2px; }

.elx-paiement .elx-footer__grid,
.elx-paiement .elx-footer__bas { display: none; }
.elx-paiement .elx-footer__legal { display: flex; }
:lang(ar) :is(.elx-footer__legal, .elx-footer__paiement, .elx-footer__copy, .elx-footer__titre) { font-size: 1rem; } /* B11 : texte arabe ≥ 16 px */
.elx-paiement .elx-footer { padding-block: 1rem; }

/* =========================================================================
   14. Lumière, profondeur et mouvement (directeur photo)
   Liste fermée du brief § 8 : appui, survol de couverture, carte → fiche, reçu.
   Rien ne joue seul. Mobile : transform et opacity seulement, aucune transition d'ombre.
   ========================================================================= */
[dir="rtl"] { --elx-lumiere-x: 65%; --elx-sens: -1; }

/* Socle : éclairé d'en haut comme une vitrine, avec un bord de verre. Statique, peint une fois. */
.elx-socle {
	box-shadow: inset 0 1px 0 rgb(var(--elx-vitrine-rgb) / 0.7), inset 0 -1px 0 rgb(var(--elx-encre-rgb) / 0.05);
}
.elx-socle::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background:
		radial-gradient(120% 60% at var(--elx-lumiere-x) -12%, rgb(var(--elx-vitrine-rgb) / 0.4), transparent 60%),
		linear-gradient(to bottom, transparent 80%, rgb(var(--elx-encre-rgb) / 0.045));
	opacity: 0.75;
	transition: opacity var(--elx-dur-small) var(--elx-ease-out);
}
/* Tactile : pas de transition (rien qui reste collé, rien à recalculer) */
@media (hover: none) {
	.elx-socle img, .elx-socle .wc-block-components-product-image__image { transition: none; }
}
@media (hover: hover) {
	.elx-specimen:hover .elx-socle::before { opacity: 1; } /* la lumière accroche la couverture soulevée */
}

/* Boutons : un fil de lumière sur l'arête haute, qui disparaît quand on enfonce */
.elx-bouton,
.elx-fiche .single_add_to_cart_button,
.elx-recu-ticket__fichiers td.download-file a { box-shadow: inset 0 1px 0 rgb(var(--elx-vitrine-rgb) / 0.18); }
.elx-bouton:active,
.elx-fiche .single_add_to_cart_button:active,
.elx-recu-ticket__fichiers td.download-file a:active { box-shadow: none; }
.elx-fiche .single_add_to_cart_button { transition: transform var(--elx-dur-micro) var(--elx-ease-out), background-color var(--elx-dur-micro) linear; }
.elx-puce { transition: transform var(--elx-dur-micro) var(--elx-ease-out), border-color var(--elx-dur-small) linear, background-color var(--elx-dur-small) linear; }
.elx-puce:active { transform: scale(0.97); }

/* Pile du hero (bureau) : trois plans. Le premier porte son ombre sur les autres, ceux du fond
   sont un peu dans l'ombre ; une flaque de lumière derrière. Statique. */
@media (min-width: 1024px) {
	.elx-pile { position: relative; isolation: isolate; }
	.elx-pile::before {
		content: "";
		position: absolute;
		inset: -8% -4% 4%;
		z-index: -1;
		pointer-events: none;
		background: radial-gradient(closest-side, rgb(var(--elx-vitrine-rgb) / 0.95), rgb(var(--elx-vitrine-rgb) / 0) 100%);
	}
	.elx-bande > li:nth-child(1) .elx-socle {
		box-shadow: inset 0 1px 0 rgb(var(--elx-vitrine-rgb) / 0.7), 0 28px 40px -26px rgb(var(--elx-encre-rgb) / 0.42);
	}
	.elx-bande > li:nth-child(2) .elx-socle {
		box-shadow: inset 0 1px 0 rgb(var(--elx-vitrine-rgb) / 0.6), 0 20px 30px -24px rgb(var(--elx-encre-rgb) / 0.3);
	}
	.elx-bande > li:not(:first-child) .elx-socle::after {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 2;
		pointer-events: none;
		background: rgb(var(--elx-encre-rgb) / 0.07);
		transition: opacity var(--elx-dur-small) var(--elx-ease-out);
	}
	.elx-bande > li:nth-child(3) .elx-socle::after { background: rgb(var(--elx-encre-rgb) / 0.11); }
}
@media (min-width: 1024px) and (hover: hover) {
	.elx-bande > li:not(:first-child) .elx-specimen:hover .elx-socle::after { opacity: 0; } /* on la sort de l'ombre */
}

/* Carte → fiche : transition native entre documents. La fiche nomme sa couverture ; la carte cliquée
   reçoit le même nom au départ (electronarium.js, événement pageswap). Repli silencieux ailleurs. */
@view-transition { navigation: auto; }
.elx-socle--fiche { view-transition-name: elx-couverture; }
::view-transition-group(elx-couverture) {
	animation-duration: var(--elx-dur-medium);
	animation-timing-function: var(--elx-ease-inout);
}
::view-transition-old(elx-couverture),
::view-transition-new(elx-couverture) { animation-duration: var(--elx-dur-medium); }
::view-transition-old(root),
::view-transition-new(root) { animation-duration: var(--elx-dur-small); }
/* L'en-tête a son propre plan : il ne clignote pas et la couverture passe dessous (l'ordre des groupes suit z-index). */
.elx-site-header { view-transition-name: elx-entete; }
::view-transition-group(elx-entete) { z-index: 50; animation-duration: var(--elx-dur-small); }
::view-transition-group(elx-couverture) { z-index: 45; }
/* Le contenu qui part s'efface plus vite que celui qui arrive (sortie < entrée) */
::view-transition-old(root) { animation-duration: var(--elx-dur-micro); }
/* Téléphone : même geste, plus court */
@media (max-width: 1023px) {
	::view-transition-group(elx-couverture),
	::view-transition-old(elx-couverture),
	::view-transition-new(elx-couverture) { animation-duration: 300ms; }
}

/* Le reçu (signature) : le ticket sort de sa fente, puis le bouton arrive 150 ms après.
   Partout transform et opacity seulement (plus de clip-path) ; la page coupe ce qui est encore dans la fente. Une seule fois. */
@keyframes elx-recu-fente {
	from { transform: translateY(-100%); }
	to { transform: none; }
}
@keyframes elx-fondu { from { opacity: 0; } to { opacity: 1; } }
@keyframes elx-fondu-monte { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.elx-anim-recu { animation: elx-recu-fente var(--elx-dur-large) var(--elx-ease-out) both; }
.elx-recu-page:has(> .elx-anim-recu) { overflow: clip; overflow-clip-margin: 6px; }
.elx-anim-recu-bouton { animation: elx-fondu-monte var(--elx-dur-small) var(--elx-ease-out) calc(var(--elx-dur-large) + 150ms) both; }
.elx-recu-vu .elx-anim-recu,
.elx-recu-vu .elx-anim-recu-bouton { animation: none !important; }

/* =========================================================================
   14 bis. Style C « Papeterie premium » (2026-10-08) — DESIGN.md § C1 à C9
   Crème, carton, encre brune, un seul vert. Fraunces (titres, marque, prix mis en avant), Manrope (le reste).
   Placé après les sections 1 à 14 : il les précise sans toucher aux corrections H1/H2 et M1 à M10.
   ========================================================================= */

/* L'arabe garde sa police (Courier New → Arabic Typesetting → Amiri, choix de l'utilisateur, 2026-10-07).
   Corrections MS3 (2026-10-08) : les caractères LATINS des pages arabes (marque, chiffres, prix, « PayPal ») passent
   par Fraunces et Manrope, déjà chargées ; Anybody, IBM Plex Mono et IBM Plex Sans Arabic ne sont plus déclarées. */
html:lang(ar) :is(.elx-fiche__prix, .elx-fiche__prix .woocommerce-Price-amount, .elx-fiche__prix .wc-block-components-product-price,
	.elx-barre-achat__prix, .elx-barre-achat__prix .woocommerce-Price-amount, .elx-etape__num, .elx-specimen__prix) { font-family: "Electronarium Titres", "Electronarium Texte", var(--elx-body) !important; }

/* --- Bases --- */
body { font-family: var(--elx-body); }
a { text-underline-offset: 0.18em; }
:where(h1, h2, h3) { font-optical-sizing: auto; }
.elx-chiffre, .woocommerce-Price-amount { font-weight: 700; }

/* Sur-titre : petites capitales espacées (latin, cyrillique) ; capitale initiale en arabe et en chinois */
.elx-surtitre,
.elx-fiche__type {
	margin: 0;
	font-family: var(--elx-body);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	line-height: 1.4;
	color: var(--elx-ardoise-claire);
}
:lang(ar) :is(.elx-surtitre, .elx-fiche__type) { letter-spacing: 0; text-transform: none; font-size: 1rem; }
:lang(zh) :is(.elx-surtitre, .elx-fiche__type) { letter-spacing: 0; text-transform: none; font-size: 0.875rem; }

/* --- Boutons : vert, rayon 4 px, Manrope 700, sans reflet --- */
.elx-bouton,
.wp-element-button { font-weight: 700; }
.elx-bouton { color: var(--elx-verre); }
.elx-bouton:hover { color: var(--elx-verre); }
.elx-bouton,
.elx-fiche .single_add_to_cart_button,
.elx-recu-ticket__fichiers td.download-file a { box-shadow: none; }
.elx-bouton--second {
	background: transparent;
	color: var(--elx-cherenkov);
	border: 1px solid var(--elx-cherenkov);
}
.elx-bouton--second:hover { background: var(--elx-cherenkov); color: var(--elx-verre); }
.elx-bouton--second:active { background: var(--elx-cherenkov-nuit); color: var(--elx-verre); }
.wp-block-button.is-style-outline > .wp-block-button__link { border: 1px solid var(--elx-cherenkov); color: var(--elx-cherenkov); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--elx-cherenkov); color: var(--elx-verre); }
.elx-fiche .single_add_to_cart_button { font-weight: 700 !important; color: var(--elx-verre) !important; }
.elx-lien-fleche a { font-weight: 700; text-decoration: underline; }
.elx-lien-fleche a:hover { color: var(--elx-cherenkov-nuit); text-decoration: none; }

/* --- En-tête : crème, une ligne de 56 px ; 72 px et filet au bureau --- */
.elx-site-header { background: var(--elx-verre); border-block-end: 0; backdrop-filter: none; }
.elx-wordmark {
	font-family: var(--elx-display);
	font-weight: 700;
	font-stretch: normal;
	font-size: 1.25rem;
	letter-spacing: -0.01em;
	text-transform: none;
}
.elx-wordmark__dot { display: none; }
a.elx-wordmark:hover { color: var(--elx-cherenkov); }
.elx-nav a { font-size: 0.9375rem; }
.elx-nav a:hover { color: var(--elx-cherenkov); }
.elx-icone:hover,
.elx-panier .wc-block-mini-cart__button:hover { background: var(--elx-cherenkov-pale); color: var(--elx-encre); }
.elx-panier .wc-block-mini-cart__badge { background: var(--elx-cherenkov); color: var(--elx-verre); font-weight: 700; }
.elx-search .wp-block-search__input { font-size: 0.875rem; }
.elx-search .wp-block-search__button:hover { background: var(--elx-cherenkov-pale); color: var(--elx-encre); }
@media (min-width: 1024px) {
	:root { --elx-entete: 72px; }
	.elx-site-header { border-block-end: 1px solid var(--elx-trait); }
	.elx-wordmark { font-size: 1.5rem; }
	.elx-header__bar { gap: 2rem; }
	.elx-header .elx-search .wp-block-search__inside-wrapper { inline-size: 12.5rem !important; min-block-size: 40px; }
}
/* Pastille de langue « FR » : Manrope 700, filet carton ; la zone tactile reste de 44 px */
.elx-langues--code { block-size: 44px; align-items: center; }
.elx-langues__puce {
	min-block-size: 34px;
	padding-inline: 0.75rem;
	border-color: var(--elx-filet);
	background: transparent;
	font: 700 0.8125rem/1 var(--elx-body);
}
.elx-langues__puce::after { display: none; }
.elx-langues--code:hover .elx-langues__puce { border-color: var(--elx-cherenkov); }
.elx-langues--code:focus-within .elx-langues__puce { border-color: var(--elx-cherenkov); outline-color: var(--elx-cherenkov); }

/* --- Socle : carton uni, angles droits, couverture entière à 80 % --- */
.elx-socle { border-radius: 0; background: var(--elx-cherenkov-pale); box-shadow: none; }
.elx-socle::before { display: none; }
.elx-socle img,
.elx-socle .wc-block-components-product-image__image {
	max-inline-size: 80% !important;
	max-block-size: 80% !important;
	max-width: 80% !important;
	max-height: 80% !important;
	border-radius: var(--elx-r-image);
	box-shadow: var(--elx-ombre-sol);
}
.elx-apercu__item { border-radius: 0; background: var(--elx-cherenkov-pale); }
.elx-resume__vignette { border-radius: 0; background: var(--elx-cherenkov-pale); }
.woocommerce-cart-form td.product-thumbnail img { border-radius: 0; }

/* --- Carte produit : socle, type, nom Fraunces, prix sans pastille --- */
.elx-vitrine,
.wc-block-product-template.elx-vitrine { gap: 1.25rem 0.875rem !important; }
@media (min-width: 600px) { .elx-vitrine, .wc-block-product-template.elx-vitrine { gap: 1.75rem 1.25rem !important; } }
@media (min-width: 1200px) { .elx-vitrine, .wc-block-product-template.elx-vitrine { gap: 2rem 1.5rem !important; } }
.elx-specimen { gap: 0.5rem; }
.elx-specimen__texte { gap: 0.375rem; }
.elx-specimen__type { font-size: 0.8125rem; font-weight: 400; color: var(--elx-ardoise-claire); }
.elx-specimen__nom {
	font-family: var(--elx-display) !important;
	font-size: 1.0625rem !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
}
@media (min-width: 1024px) { .elx-specimen__nom { font-size: 1.25rem !important; } }
.elx-specimen__nom a:hover,
.elx-specimen:hover .elx-specimen__nom a { color: var(--elx-encre); text-decoration: underline; text-decoration-thickness: 1px; }
.elx-specimen__prix .woocommerce-Price-amount,
.elx-fiche__prix .woocommerce-Price-amount,
.elx-prix { display: inline; padding: 0; border-radius: 0; background: none; color: var(--elx-encre); }
.elx-specimen__prix,
.elx-specimen__prix .wc-block-components-product-price { font-family: var(--elx-mono); font-weight: 700; font-size: 1rem !important; }
.elx-specimen__prix del { font-weight: 400; }

/* --- Accueil : sur-titre, titre, phrase, bouton ; pile en éventail sur carton --- */
.elx-hero { padding-block: 1.75rem 0; }
.elx-hero__grille { gap: 1.75rem; grid-template-columns: minmax(0, 1fr); }
.elx-hero__texte { display: flex; flex-direction: column; gap: 0.875rem; }
.elx-hero__texte > * { margin: 0 !important; }
.elx-hero__titre {
	font-weight: 700 !important;
	font-stretch: normal !important;
	line-height: 1.05 !important;
	letter-spacing: -0.015em;
	max-inline-size: 18ch;
}
.elx-hero__lead { max-inline-size: 32rem; font-size: var(--wp--preset--font-size--large); line-height: 1.6; color: var(--elx-ardoise); }
.elx-hero__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.elx-bouton--hero { flex: 1 1 100%; min-block-size: 54px; font-size: 1.0625rem; }
.elx-bouton--second { display: none; }
/* Fraunces est large : sous 480 px le titre suit la largeur d'écran (30 px à 360, 34 px à 414) et tient en 4 lignes au plus
   dans les 10 langues non arabes (banc local, 360/390/414 px). Russe (IBM Plex Sans) : un cran en dessous. */
@media (max-width: 479px) {
	.elx-hero__titre { font-size: clamp(1.875rem, 0.4rem + 6.6vw, 2.375rem) !important; max-inline-size: none; }
	html:lang(ru) .elx-hero__titre { font-size: clamp(1.625rem, 0.15rem + 6.6vw, 2.125rem) !important; }
}

.elx-pile { margin-inline: calc(-1 * var(--elx-gouttiere)); padding-block: 1.75rem; background: var(--elx-cherenkov-pale); overflow: clip; }
.elx-bande {
	display: flex !important;
	justify-content: center;
	align-items: center;
	gap: 0 !important;
	overflow: visible;
	scroll-snap-type: none;
	padding: 0 !important;
}
.elx-bande > li { flex: 0 0 auto !important; inline-size: min(8.125rem, 31vw); max-inline-size: none !important; position: relative; }
.elx-bande > li:nth-child(1) { order: 2; inline-size: min(9.375rem, 36vw); z-index: 2; }
.elx-bande > li:nth-child(2) { order: 1; z-index: 1; transform: rotate(-6deg) translateX(18px); }
.elx-bande > li:nth-child(3) { order: 3; z-index: 1; transform: rotate(6deg) translateX(-18px); }
[dir="rtl"] .elx-bande > li:nth-child(2) { transform: rotate(6deg) translateX(-18px); }
[dir="rtl"] .elx-bande > li:nth-child(3) { transform: rotate(-6deg) translateX(18px); }
.elx-pile .elx-specimen { gap: 0; }
.elx-pile .elx-socle { background: transparent; }
.elx-pile .elx-socle img,
.elx-pile .elx-socle .wc-block-components-product-image__image {
	max-inline-size: 100% !important; max-block-size: 100% !important; max-width: 100% !important; max-height: 100% !important;
	border-radius: 0;
}
.elx-bande > li:nth-child(1) .elx-socle img { box-shadow: var(--elx-ombre-pile); }
/* Le nom et le prix restent lus par les lecteurs d'écran et portent le lien étiré ; l'éventail ne montre que les couvertures */
.elx-pile .elx-specimen__texte { position: absolute; inset: 0; display: block !important; opacity: 0; overflow: hidden; }

@media (min-width: 1024px) {
	.elx-hero { padding-block: 4.5rem 3.5rem; }
	.elx-hero__grille { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3.5rem; }
	.elx-hero__texte { gap: 1.25rem; }
	.elx-hero__titre { font-size: clamp(2.75rem, 1rem + 3.2vw, 3.75rem) !important; line-height: 1.02 !important; }
	.elx-surtitre { font-size: 0.8125rem; letter-spacing: 0.14em; }
	.elx-bouton--hero { flex: 0 0 auto; padding-inline: 1.75rem; }
	.elx-bouton--second { display: inline-flex; min-block-size: 54px; padding-inline: 1.5rem; font-size: 1.0625rem; }
	.elx-pile { margin-inline: 0; padding: 3rem 1.5rem; }
	.elx-pile::before { display: none; }
	.elx-bande { grid-template-areas: none; }
	.elx-bande > li { grid-area: auto; inline-size: 11.25rem; }
	.elx-bande > li:nth-child(1) { inline-size: 13.125rem; transform: none; }
	.elx-bande > li:nth-child(2) { transform: rotate(-6deg) translateX(26px); }
	.elx-bande > li:nth-child(3) { transform: rotate(6deg) translateX(-26px); }
	[dir="rtl"] .elx-bande > li:nth-child(2) { transform: rotate(6deg) translateX(-26px); }
	[dir="rtl"] .elx-bande > li:nth-child(3) { transform: rotate(-6deg) translateX(26px); }
	.elx-bande .elx-socle,
	.elx-bande > li:nth-child(n) .elx-socle { box-shadow: none; }
	.elx-bande > li .elx-socle::after { display: none; }
}

/* --- Pastilles de type (« Tout », familles, « Tous les types ») --- */
.elx-section--catalogue { padding-block: 1.5rem var(--wp--preset--spacing--50); }
.elx-section--catalogue .elx-puces { margin-block: 0 1.75rem; }
.elx-puce { border-color: var(--elx-filet); background: transparent; font-size: 0.875rem; padding-inline: 1rem; }
.elx-puce:hover { border-color: var(--elx-cherenkov); color: var(--elx-encre); }
.elx-puce[aria-current="page"] { background: var(--elx-cherenkov); border-color: var(--elx-cherenkov); color: var(--elx-verre); font-weight: 700; }
.elx-puce[aria-current="page"]:hover { background: var(--elx-cherenkov-nuit); color: var(--elx-verre); }
.elx-section__head { margin-block-end: 1rem; align-items: baseline; }

/* Familles (accordéon) et page « Tous nos types de produits » : filets carton */
.elx-section .elx-familles { border-block-start: 1px solid var(--elx-filet); }
.elx-familles__item li a { border-color: var(--elx-filet); }
.elx-familles__item li a:hover { border-color: var(--elx-cherenkov); color: var(--elx-encre); }
.elx-familles__item summary:hover .elx-familles__nom { color: var(--elx-encre); text-decoration: underline; }
.elx-types__famille { border-block-start: 1px solid var(--elx-filet); }
.elx-types__titre { font-family: var(--elx-display); font-weight: 700; }

/* --- Étapes : chiffre Fraunces vert, sans cercle ni ligne de temps --- */
.elx-etapes h2 { padding-block-start: 1.5rem; border-block-start: 1px solid var(--elx-filet); margin-block-end: 1rem; }
.elx-etapes__liste { gap: 1rem; }
.elx-etape { grid-template-columns: 1.75rem minmax(0, 1fr); gap: 0.875rem; padding-block-end: 0; }
.elx-etape::before { display: none; }
.elx-etape__num {
	display: block;
	inline-size: auto;
	block-size: auto;
	border: 0;
	border-radius: 0;
	background: none;
	font-family: var(--elx-display);
	font-weight: 700;
	font-size: 1.75rem;
	line-height: 1;
	color: var(--elx-cherenkov);
}
.elx-etape h3 { margin: 0 0 0.125rem; font-size: 1rem; font-weight: 700; line-height: 1.4; }
.elx-etape p { font-size: 0.9375rem; }
@media (min-width: 768px) {
	.elx-etapes__liste { gap: 2rem; }
	.elx-etape { grid-template-columns: 1fr; gap: 0.375rem; }
	.elx-etape__num { font-size: 2.75rem; }
	.elx-etape h3 { font-size: 1.125rem; }
}
.elx-faq .wp-block-details summary:hover { color: var(--elx-encre); text-decoration: underline; }

/* --- Fiche produit --- */
.elx-fiche { padding-block-start: 0.5rem; }
.elx-fiche__haut { gap: 1.5rem; margin-block-start: 0; }
.elx-fiche__achat { gap: 0.75rem; }
.elx-fiche__titre { font-weight: 700; font-stretch: normal !important; line-height: 1.08 !important; letter-spacing: -0.01em; }
.elx-fiche__benefice { line-height: 1.6; }
.elx-fiche__prixligne { gap: 0.25rem 0.625rem; margin-block-start: 0.25rem !important; }
.elx-fiche__prix,
.elx-fiche__prix .wc-block-components-product-price,
.elx-fiche__prix .woocommerce-Price-amount { font-family: var(--elx-display) !important; font-weight: 700; font-size: 1.75rem !important; line-height: 1.2; }
.elx-fiche__pays,
.elx-fiche__rassurance { font-size: 0.8125rem; color: var(--elx-ardoise-claire); }
.elx-fiche__rassurance { text-align: center; }
/* Mobile : la couverture sur un carton pleine largeur ; elle rétrécit pour que titre, prix et bouton tiennent dans 360 × 740 */
@media (max-width: 1023px) {
	.elx-fiche__visuel {
		display: flex;
		justify-content: center;
		margin-inline: calc(-1 * var(--elx-gouttiere));
		padding-block: 1.25rem;
		background: var(--elx-cherenkov-pale);
	}
	.elx-socle--fiche { block-size: clamp(180px, 100svh - 520px, 46svh); background: transparent; }
	.elx-socle--fiche img { max-inline-size: 100% !important; max-block-size: 100% !important; max-width: 100% !important; max-height: 100% !important; box-shadow: var(--elx-ombre-sol-haute); }
}
@media (min-width: 1024px) {
	.elx-socle--fiche img { box-shadow: var(--elx-ombre-sol-haute); }
	.elx-fiche__prix, .elx-fiche__prix .woocommerce-Price-amount { font-size: 2rem !important; }
}
/* Étiquette de faits : mêmes lignes, même ordre ; présentée en filets carton, deux colonnes */
.elx-etiquette { margin-block-start: 1rem !important; padding: 1rem 0; background: none; border: 0; border-block: 1px solid var(--elx-filet); border-radius: 0; }
.elx-etiquette__titre { font-size: 0.75rem !important; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--elx-ardoise-claire); margin-block-end: 0.75rem; }
:lang(ar) .elx-etiquette__titre, :lang(zh) .elx-etiquette__titre { letter-spacing: 0; text-transform: none; font-size: 1rem !important; }
.elx-etiquette dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.875rem; }
.elx-etiquette__ligne { display: flex; flex-direction: column; gap: 0.125rem; padding: 0; border: 0; font-size: 0.9375rem; }
.elx-etiquette dt { font-size: 0.75rem; font-weight: 400; color: var(--elx-ardoise-claire); }
.elx-etiquette dd { font-weight: 700; }
:lang(ar) .elx-etiquette dt { font-size: 1rem; }
.elx-etiquette__note { margin-block-start: 0.875rem; border-block-start-color: var(--elx-trait); }
/* Barre d'achat collante : crème, filet carton, prix Fraunces, bouton vert */
.elx-barre-achat { background: var(--elx-verre); border-block-start: 1px solid var(--elx-filet); box-shadow: none; padding-block: 0.625rem calc(0.625rem + env(safe-area-inset-bottom)); }
.elx-barre-achat__prix,
.elx-barre-achat__prix .woocommerce-Price-amount { font-family: var(--elx-display); font-weight: 700; font-size: 1.25rem; }
.elx-barre-achat .elx-bouton { flex: 1 1 auto; min-block-size: 48px; }
/* HS3 (2026-10-08) : sur téléphone, le sur-titre se limite au type (le volume reste dans l'étiquette) ;
   la barre d'achat s'affiche dès l'arrivée tant que le bouton principal n'est pas entièrement visible (electronarium.js). */
@media (max-width: 1023px) { .elx-fiche__volume { display: none; } }

/* --- Panier, paiement, reçu : les jetons font l'essentiel ; titres en Fraunces --- */
form.checkout h3 { font-weight: 700; }
.elx-panier-titre { font-weight: 700; }
.elx-recu-ticket__titre { font-weight: 700; font-stretch: normal; }
.elx-recu-ticket { background: var(--elx-vitrine); }

/* --- Pages (CGV, mentions légales, confidentialité, contact) --- */
.elx-page h2 { font-family: var(--elx-display); font-weight: 700; font-size: 1.5rem; }

/* --- Pied de page : fond vert, texte crème, liens soulignés --- */
.elx-site-footer { background: var(--elx-cherenkov); color: var(--elx-pied-texte); }
.elx-wordmark--footer { color: var(--elx-verre); }
.elx-footer__liens a,
.elx-footer__legal a { text-decoration: underline; text-decoration-color: color-mix(in srgb, currentColor 45%, transparent); }
.elx-footer__liens a:hover,
.elx-footer__legal a:hover { color: var(--elx-verre); text-decoration-color: currentColor; }
.elx-footer__bas { border-block-start-color: rgb(var(--elx-vitrine-rgb) / 0.2); }
.elx-langues--pied .elx-langues__select { border-color: var(--elx-pied-discret); }
.elx-langues--pied .elx-langues__select:hover { border-color: var(--elx-verre); }

/* =========================================================================
   14 ter. Style C — lumière et profondeur (directeur photo, 2026-10-08)
   Une lumière de comptoir, en haut et un peu devant : ombres chaudes (encre brune), en trois couches
   (contact, demi-teinte, portée) comme un papier posé sur du carton. Tout est statique ; seuls transform
   et opacity bougent, et seulement au survol d'une souris.
   ========================================================================= */
:root {
	--elx-ombre-sol:
		0 1px 1px rgb(var(--elx-encre-rgb) / 0.12),
		0 6px 10px -6px rgb(var(--elx-encre-rgb) / 0.22),
		0 18px 28px -16px rgb(var(--elx-encre-rgb) / 0.36);
	--elx-ombre-sol-haute:
		0 1px 2px rgb(var(--elx-encre-rgb) / 0.12),
		0 10px 16px -8px rgb(var(--elx-encre-rgb) / 0.22),
		0 28px 44px -20px rgb(var(--elx-encre-rgb) / 0.4);
	--elx-ombre-pile:
		0 1px 2px rgb(var(--elx-encre-rgb) / 0.14),
		0 12px 20px -10px rgb(var(--elx-encre-rgb) / 0.28),
		0 32px 48px -22px rgb(var(--elx-encre-rgb) / 0.45);
}

/* Pile en éventail (bureau) : la couverture du milieu porte son ombre sur le bord des deux autres.
   Le dégradé suit la rotation de chaque couverture (il est dans son socle) ; miroir exact en arabe. */
@media (min-width: 1024px) {
	.elx-bande > li:nth-child(2) .elx-socle::after,
	.elx-bande > li:nth-child(3) .elx-socle::after {
		display: block;
		content: "";
		position: absolute;
		inset: 0;
		z-index: 1;
		pointer-events: none;
		opacity: 1;
		background: linear-gradient(to right, transparent 62%, rgb(var(--elx-encre-rgb) / 0.14));
		transition: opacity var(--elx-dur-small) var(--elx-ease-out);
	}
	.elx-bande > li:nth-child(3) .elx-socle::after { background: linear-gradient(to left, transparent 62%, rgb(var(--elx-encre-rgb) / 0.14)); }
	[dir="rtl"] .elx-bande > li:nth-child(2) .elx-socle::after { background: linear-gradient(to left, transparent 62%, rgb(var(--elx-encre-rgb) / 0.14)); }
	[dir="rtl"] .elx-bande > li:nth-child(3) .elx-socle::after { background: linear-gradient(to right, transparent 62%, rgb(var(--elx-encre-rgb) / 0.14)); }
}
/* Survol dans la pile : c'est le socle entier qui se soulève (l'ombre portée du milieu part avec lui, puis s'efface) */
@media (min-width: 1024px) and (hover: hover) {
	.elx-pile .elx-socle { transition: transform var(--elx-dur-small) var(--elx-ease-out); }
	.elx-pile .elx-specimen:hover .elx-socle { transform: translateY(-4px); }
	.elx-pile .elx-specimen:hover .elx-socle img { transform: none; }
	.elx-bande > li:not(:first-child) .elx-specimen:hover .elx-socle::after { opacity: 0; }
}

/* Reçu : une fente dans le carton, d'où sort le ticket ; sa lèvre ombre à peine le haut du papier. Statique. */
.elx-recu-page:has(> .elx-anim-recu) { position: relative; }
.elx-recu-page:has(> .elx-anim-recu)::before {
	content: "";
	position: absolute;
	inset-block-start: -2px;
	inset-inline: max(calc(var(--elx-gouttiere) - 6px), calc((100% - 572px) / 2)); /* la largeur du ticket, 6 px de jeu de chaque côté */
	z-index: 2;
	block-size: 10px;
	pointer-events: none;
	background:
		linear-gradient(var(--elx-trait-fort) 0 2px, rgb(var(--elx-encre-rgb) / 0.12) 2px, transparent 10px);
	border-radius: 1px;
}
.wc-block-order-confirmation-summary-list { border-block-color: var(--elx-filet); }
.elx-recu-ticket__fichiers a.woocommerce-MyAccount-downloads-file,
.elx-recu-ticket__fichiers td.download-file a { font-weight: 700; color: var(--elx-verre) !important; }
.elx-recu-ticket__fichiers td.download-file a:hover { background: var(--elx-cherenkov-nuit) !important; }

/* =========================================================================
   15. Mouvement réduit : aucun déplacement, des fondus courts
   ========================================================================= */
@media (prefers-reduced-motion: reduce) {
	/* Carte → fiche : plus de vol de la couverture, un simple fondu de 120 ms entre les deux pages */
	.elx-socle--fiche, .elx-site-header, [data-elx-vt] { view-transition-name: none !important; }
	::view-transition-group(*),
	::view-transition-old(*),
	::view-transition-new(*) { animation-duration: var(--elx-dur-micro) !important; animation-timing-function: linear !important; }
	.elx-pile .elx-specimen:hover .elx-socle { transform: none; }
	.elx-anim-recu, .elx-anim-recu-bouton { animation: elx-fondu var(--elx-dur-micro) linear both !important; }
	.elx-puce:active { transform: none; }
	*, *::before, *::after {
		animation-duration: 1ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: var(--elx-dur-micro) !important;
		transition-property: opacity, color, background-color, border-color !important;
	}
	.elx-specimen:hover .elx-socle img { transform: none; }
	.elx-site-header.elx-site-header--cache { transform: none; opacity: 0; pointer-events: none; }
	.elx-barre-achat { transform: none; opacity: 0; pointer-events: none; }
	.elx-barre-achat.is-visible { opacity: 1; pointer-events: auto; }
	.wp-element-button:active, .elx-bouton:active, .elx-fiche .single_add_to_cart_button:active { transform: none; }
}

/* =========================================================================
 * Accueil : les familles de produits en accordéon ([elx_familles])
 * ========================================================================= */
.elx-familles { display: grid; grid-template-columns: 1fr; gap: 0 2rem; border-block-start: 2px solid var(--elx-encre); }
@media (min-width: 768px) { .elx-familles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .elx-familles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.elx-familles__item { border-block-end: 1px solid var(--elx-trait); min-inline-size: 0; }
.elx-familles__item summary {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	min-block-size: 52px; padding-block: 0.6rem; cursor: pointer; list-style: none;
	font-weight: 600; color: var(--elx-encre);
}
.elx-familles__item summary::-webkit-details-marker { display: none; }
.elx-familles__item summary::after {
	content: ""; flex: none; inline-size: 0.55rem; block-size: 0.55rem; margin-inline-start: 0.25rem;
	border-inline-end: 2px solid currentColor; border-block-end: 2px solid currentColor; transform: rotate(45deg) translateY(-2px);
	transition: transform 0.2s ease;
}
.elx-familles__item[open] summary::after { transform: rotate(-135deg) translateY(-2px); }
.elx-familles__item summary:hover .elx-familles__nom { color: var(--elx-cherenkov); }
.elx-familles__item summary:focus-visible { outline: 3px solid var(--elx-cherenkov); outline-offset: 2px; }
.elx-familles__nom { flex: 1 1 auto; min-inline-size: 0; }
.elx-familles__nb { flex: none; font-size: var(--wp--preset--font-size--small); font-weight: 400; color: var(--elx-ardoise); }
.elx-familles__item ul { margin: 0 0 0.9rem; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.elx-familles__item li { font-size: var(--wp--preset--font-size--small); }
.elx-familles__item li a, .elx-familles__item li .elx-types__vide {
	display: inline-flex; align-items: center; min-block-size: 36px; padding: 0.2rem 0.75rem;
	border: 1px solid var(--elx-trait); border-radius: 999px;
}
.elx-familles__item li a { color: var(--elx-encre); border-color: var(--elx-trait-fort); text-decoration: none; font-weight: 600; }
.elx-familles__item li a:hover { color: var(--elx-cherenkov); border-color: var(--elx-cherenkov); }
@media (prefers-reduced-motion: reduce) { .elx-familles__item summary::after { transition: none; } }

/* =========================================================================
   Contre-audit Style C (2026-10-09) : MS7, MS8, BC6
   ========================================================================= */
/* MS7 : chinois, coupure de ligne stricte (jamais de ponctuation fermante en début de ligne), sans casser les mots latins */
html:lang(zh) body { line-break: strict; word-break: normal; overflow-wrap: break-word; }
html:lang(zh) :is(h1, h2, h3, .elx-hero__titre, .elx-fiche__titre, .elx-fiche__benefice) { text-wrap: pretty; }

/* MS8 : russe, note PayPal discrète sous le bouton d'achat et au paiement */
.elx-note-paypal { margin: 0.6rem 0 0; font-size: 0.875rem; line-height: 1.5; color: var(--elx-ardoise); }
.woocommerce-checkout .elx-note-paypal { margin-block: 1rem; }

/* BC6 : russe, titres dans une seule police (IBM Plex Sans 600 : cyrillique et latin/chiffres), plus de Fraunces sur « 2027 » */
@font-face { font-family: "Elx Titres RU"; src: url("../fonts/ibm-plex-sans-cyrillic-600-normal.woff2") format("woff2"); font-weight: 400 900; font-display: swap;
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Elx Titres RU"; src: url("../fonts/ibm-plex-sans-arabic-latin-600-normal.woff2") format("woff2"); font-weight: 400 900; font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212; }
html:lang(ru) :is(h1, h2, h3, .elx-hero__titre, .elx-fiche__titre, .elx-recu-ticket__titre, .elx-specimen__nom) {
	--elx-titres-ru: "Elx Titres RU", "Segoe UI", system-ui, sans-serif;
	--elx-display: var(--elx-titres-ru);
	--wp--preset--font-family--display: var(--elx-titres-ru);
	font-family: var(--elx-titres-ru) !important;
}

/* =========================================================================
   Galerie, visionneuse, « Feuilleter l’extrait », badge Aperçu (2026-10-09) — DESIGN.md G1 à G9
   Formats fixes partout (CLS) ; la couverture ne rétrécit pas ; rien ne bouge sans le doigt du visiteur.
   ========================================================================= */
.elx-galerie { inline-size: 100%; min-inline-size: 0; }
.elx-fiche__visuel > .elx-galerie { flex: 1 1 auto; }
.elx-galerie__piste {
	display: flex; margin: 0; padding: 0; list-style: none;
	overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none;
}
.elx-galerie__piste::-webkit-scrollbar { display: none; }
.elx-galerie__diapo { flex: 0 0 100%; min-inline-size: 0; margin: 0; scroll-snap-align: center; }
.elx-galerie .elx-galerie__socle { inline-size: 100%; }
.elx-galerie__ouvrir { position: absolute; inset: 0; display: block; cursor: zoom-in; }
.elx-galerie__ouvrir:focus-visible { outline: 3px solid var(--elx-cherenkov); outline-offset: -3px; }
@media (hover: hover) { .elx-galerie__ouvrir:hover img { transform: translateY(-4px); } }

/* Points (mobile) */
.elx-galerie__points { display: flex; justify-content: center; gap: 0.5rem; margin-block-start: 0.75rem; }
.elx-galerie__points span { inline-size: 8px; block-size: 8px; border-radius: 999px; background: var(--elx-trait-fort); transition: background-color var(--elx-dur-micro) linear; }
.elx-galerie__points span.is-actif { background: var(--elx-cherenkov); }

/* Miniatures */
.elx-galerie__vignettes { display: flex; justify-content: center; gap: 0.5rem; margin: 0.75rem 0 0; padding: 0; list-style: none; }
.elx-galerie__vignette {
	display: block; inline-size: 44px; block-size: 55px; padding: 0; overflow: hidden; cursor: pointer;
	border: 2px solid transparent; border-radius: var(--elx-r-image); background: var(--elx-vitrine);
	transition: border-color var(--elx-dur-micro) linear, transform var(--elx-dur-micro) var(--elx-ease-out);
}
.elx-galerie__vignette img { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; }
.elx-galerie__vignette[aria-current="true"] { border-color: var(--elx-cherenkov); }
.elx-galerie__vignette:active { transform: scale(0.97); }
.elx-galerie__vignette:focus-visible { outline: 3px solid var(--elx-cherenkov); outline-offset: 3px; }
@media (hover: hover) { .elx-galerie__vignette:hover:not([aria-current="true"]) { border-color: var(--elx-filet); } }

/* Téléphone et tablette : la bande carton garde la hauteur de couverture d’avant (HS3) */
@media (max-width: 1023px) {
	.elx-fiche__visuel:has(.elx-galerie--plusieurs) { padding-block-end: 0.875rem; }
	.elx-galerie .elx-galerie__socle { block-size: clamp(180px, 100svh - 520px, 46svh); aspect-ratio: auto; background: transparent; }
	.elx-galerie .elx-galerie__socle img {
		max-inline-size: 86% !important; max-block-size: 100% !important; max-width: 86% !important; max-height: 100% !important;
		box-shadow: var(--elx-ombre-sol-haute);
	}
}
/* Bureau : diapo 4:5 pleine colonne, miniatures dessous, sans points */
@media (min-width: 1024px) {
	.elx-galerie .elx-galerie__socle { aspect-ratio: 4 / 5; block-size: auto; background: var(--elx-cherenkov-pale); }
	.elx-galerie__points { display: none; }
	.elx-galerie__vignettes { justify-content: flex-start; gap: 0.75rem; margin-block-start: 1rem; }
	.elx-galerie__vignette { inline-size: 64px; block-size: 80px; }
}

/* Feuilleter l’extrait */
.elx-extrait { padding-block-start: 1.5rem; border-block-start: 1px solid var(--elx-filet); }
.elx-extrait__titre { margin: 0; font-size: var(--wp--preset--font-size--x-large) !important; line-height: 1.15; }
.elx-extrait__intro { margin: 0.5rem 0 0; font-size: 0.9375rem; color: var(--elx-ardoise); }
.elx-extrait__pages { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 0.875rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }
@media (min-width: 600px) { .elx-extrait__pages { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.elx-extrait__page { display: block; color: var(--elx-ardoise-claire); text-decoration: none; cursor: zoom-in; }
.elx-extrait__page:focus-visible { outline: 3px solid var(--elx-cherenkov); outline-offset: 3px; }
.elx-extrait__socle { position: relative; display: block; aspect-ratio: 4 / 5; background: var(--elx-cherenkov-pale); }
.elx-extrait__socle img {
	position: absolute; inset: 0; margin: auto; inline-size: auto; block-size: auto; max-inline-size: 84%; max-block-size: 84%;
	border-radius: var(--elx-r-image); box-shadow: var(--elx-ombre-sol); background: var(--elx-vitrine);
	transition: transform var(--elx-dur-small) var(--elx-ease-out);
}
.elx-extrait__page:active .elx-extrait__socle { transform: scale(0.98); }
@media (hover: hover) { .elx-extrait__page:hover img { transform: translateY(-4px); } .elx-extrait__page:hover { color: var(--elx-encre); } }
.elx-extrait__num { display: block; margin-block-start: 0.375rem; text-align: center; font: 700 0.8125rem/1.4 var(--elx-body); font-variant-numeric: tabular-nums; }
.elx-extrait__pdf { margin: 1.25rem 0 0; }
.elx-extrait__pdf .elx-bouton {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; min-block-size: 48px; max-inline-size: 100%; box-sizing: border-box;
	padding: 0.625rem 1.125rem; background: transparent; color: var(--elx-cherenkov); border: 1px solid var(--elx-cherenkov);
	border-radius: var(--elx-r-bouton); font-weight: 700; text-decoration: none; text-align: center;
}
.elx-extrait__pdf .elx-bouton:hover { background: var(--elx-cherenkov); color: var(--elx-verre); }
.elx-extrait__pdf .elx-bouton:focus-visible { outline: 3px solid var(--elx-cherenkov); outline-offset: 3px; }
.elx-extrait__pdf .elx-bouton svg { flex: none; }
@media (max-width: 599px) { .elx-extrait__pdf .elx-bouton { inline-size: 100%; } }

/* Badge « Aperçu » sur les cartes */
.elx-badge-apercu {
	position: absolute; inset-block-start: 0.5rem; inset-inline-start: 0.5rem; z-index: 2; pointer-events: none;
	padding: 0.25rem 0.625rem; border: 1px solid var(--elx-filet); border-radius: 999px; background: var(--elx-vitrine);
	color: var(--elx-encre); font: 700 0.75rem/1.2 var(--elx-body); letter-spacing: 0.04em;
}
:lang(ar) .elx-badge-apercu, :lang(zh) .elx-badge-apercu { letter-spacing: 0; }
:lang(ar) .elx-badge-apercu { font-size: 0.9375rem; }

/* Visionneuse : table lumineuse plein écran */
html.elx-sans-defilement { overflow: hidden; }
.elx-visionneuse {
	position: fixed; inset: 0; inline-size: 100%; block-size: 100%; max-inline-size: none; max-block-size: none;
	margin: 0; padding: 0; border: 0; overflow: hidden; background: var(--elx-encre); color: var(--elx-verre);
}
.elx-visionneuse::backdrop { background: rgb(var(--elx-encre-rgb) / 0.6); }
.elx-visionneuse__scene { position: absolute; inset: 0; overflow: hidden; touch-action: none; user-select: none; -webkit-user-select: none; }
.elx-visionneuse__scene.is-zoom { cursor: grab; }
.elx-visionneuse__rail { display: flex; block-size: 100%; will-change: transform; }
.elx-visionneuse__rail.is-glisse { transition: transform var(--elx-dur-small) var(--elx-ease-out); }
.elx-visionneuse__diapo { flex: 0 0 100%; display: flex; align-items: center; justify-content: center; margin: 0; padding: 4rem 0.75rem 3.5rem; box-sizing: border-box; }
.elx-visionneuse__diapo img {
	display: block; max-inline-size: 100%; max-block-size: 100%; inline-size: auto; block-size: auto; object-fit: contain;
	transform-origin: center; -webkit-user-drag: none; pointer-events: none; background: var(--elx-vitrine);
}
.elx-visionneuse__cpt { position: absolute; inset-block-start: 1.1rem; inset-inline-start: 1rem; margin: 0; font: 700 0.875rem/1 var(--elx-body); font-variant-numeric: tabular-nums; }
.elx-visionneuse__btn {
	position: absolute; display: grid; place-items: center; inline-size: 48px; block-size: 48px; padding: 0; cursor: pointer;
	border: 0; border-radius: 999px; background: rgb(var(--elx-encre-rgb) / 0.6); color: var(--elx-verre);
	transition: background-color var(--elx-dur-micro) linear;
}
.elx-visionneuse__btn:hover { background: var(--elx-encre); }
.elx-visionneuse__btn:active { transform: scale(0.97); }
.elx-visionneuse__btn:focus-visible { outline: 3px solid var(--elx-lumiere); outline-offset: 2px; }
.elx-visionneuse__btn:disabled { opacity: 0.35; cursor: default; }
.elx-visionneuse__fermer { inset-block-start: 0.5rem; inset-inline-end: 0.5rem; }
.elx-visionneuse__prec, .elx-visionneuse__suiv { inset-block-start: 50%; margin-block-start: -24px; }
.elx-visionneuse__prec { inset-inline-start: 0.75rem; }
.elx-visionneuse__suiv { inset-inline-end: 0.75rem; }
@media (max-width: 599px), (hover: none) { .elx-visionneuse__prec, .elx-visionneuse__suiv { display: none; } }
@media (prefers-reduced-motion: reduce) {
	.elx-visionneuse__rail.is-glisse { transition: none; }
	.elx-galerie__ouvrir:hover img, .elx-extrait__page:hover img { transform: none; }
}
