/**
 * Pages publiques : Accueil + Contact.
 *
 * Trois règles de conduite, parce que ce fichier part dans TOUS les clones :
 *
 *  1. AUCUNE couleur de marque ÉCRITE ICI. Rien qui ressemble à un choix esthétique
 *     de client : ni hex, ni `rgb()`. On n'utilise que `currentColor`, des gris
 *     neutres transparents (donc lisibles sur fond clair comme sombre) et les
 *     styles du thème. L'habillage appartient au thème déposé par l'owner.
 *
 *     ⚠️ CETTE RÈGLE A ÉTÉ AMENDÉE LE 2026-08-07 (Phase 50, dette `D45`), et
 *     l'amendement en respecte l'esprit plutôt qu'il ne l'entame. Elle disait
 *     aussi « et les styles de bouton du thème (`.button`) ». C'était le choix
 *     prudent tant qu'aucune couleur de marque n'était disponible — mais son
 *     résultat, mesuré, était l'inverse du but : le bouton **« Commander »** des
 *     grilles prenait le bleu par défaut d'Astra (`#046BD2`), donc une couleur
 *     que PERSONNE n'avait choisie, pendant que le bouton d'envoi du formulaire,
 *     deux écrans plus loin, en affichait une autre. Déléguer au thème n'était
 *     pas neutre : c'était choisir la couleur d'un thème par défaut.
 *
 *     Le seul contrôle d'ACHAT rendu par ces pages prend donc la couleur de la
 *     marque — `var(--aod-a…)`, calculée par `AOD_COD_Accent` depuis le
 *     Personnalisateur. Aucune valeur n'est écrite ici : la règle « rien de
 *     spécifique à un client en dur » est tenue au sens fort, celui de la
 *     règle n°1 du template. Tout le RESTE (titres, sections, liens) continue
 *     d'appartenir au thème.
 *
 *  2. PROPRIÉTÉS LOGIQUES uniquement (`margin-inline`, `padding-inline`, `start`/`end`),
 *     jamais `left`/`right`. Le site bascule en RTL dès que le visiteur passe en
 *     arabe : une seule marge en `left` et la page se déchire.
 *
 *  3. MOBILE D'ABORD. Le trafic DZ est mobile ; le desktop est l'exception, décrite
 *     dans les media queries.
 */

/* ─────────────────────────────────────────────────────────── Accueil ─────── */

/*
 * 🚨 LE FOND N'EST PLUS LE BLANC DE LA PAGE (Phase 58). Mesuré avant : 359 px de
 * blanc à 1440 px, 250 px à 390 — le premier écran de la boutique ne disait rien
 * du client. `--aod-a-wash` est la teinte de sa couleur de marque, et c'est aussi
 * la surface contre laquelle `--aod-a-text` et `--aod-a-line` sont CALIBRÉS
 * (Phase 50) : le titre, le slogan et le bouton gardent donc exactement le
 * contraste qu'ils avaient, sans qu'aucune surface nouvelle soit à garantir.
 */
.aod-home__hero {
	position: relative;
	text-align: center;
	padding-block: clamp(2.5rem, 8vw, 5rem);
	padding-inline: 1rem;
	background: var(--aod-a-wash);
	/* La photo est en `cover` : sans ça, elle déborderait aux ratios extrêmes. */
	overflow: hidden;
}

/*
 * La photo du gérant, quand il en a posé une. Elle remplit le héro et reste
 * DERRIÈRE le panneau de texte — pas par un `z-index`, mais parce qu'elle le
 * précède dans le flux et que les deux sont positionnés. Un `z-index` ici
 * créerait un contexte d'empilement dont le panneau devrait ensuite sortir.
 */
.aod-home__hero-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.aod-home__hero-panel {
	position: relative;
}

/*
 * ⛔ AVEC UNE PHOTO, LE TEXTE NE REPOSE JAMAIS DESSUS. Le panneau reprend le
 * MÊME `--aod-a-wash` que le héro sans photo : c'est ce qui fait qu'une image
 * quelconque — donc une surface inconnue — n'ajoute aucune surface de contraste.
 * Ne pas remplacer ce fond par un voile semi-transparent : pour tenir 4,5:1 sur
 * une photo claire il faudrait ~85 % d'opacité, c'est-à-dire cacher l'image
 * qu'on vient d'ajouter.
 */
.aod-home__hero--img .aod-home__hero-panel {
	max-width: 46rem;
	margin-inline: auto;
	padding: clamp(1.25rem, 5vw, 2.5rem);
	background: var(--aod-a-wash);
	border-radius: 12px;
}

.aod-home__title {
	margin: 0;
	font-size: var(--aod-fs-3xl);
	line-height: 1.15;
}

.aod-home__tagline {
	margin-block: 0.75rem 0;
	margin-inline: auto;
	max-width: 42ch;
	font-size: var(--aod-fs-lg);
	opacity: 0.75;
}

.aod-home__cta {
	margin-block-start: 1.75rem;
	text-align: center;
}

/* ⚠️ CE BLOC PORTAIT UNE DISTINCTION DÉLIBÉRÉE, RENVERSÉE PAR L'OWNER
 * (2026-09-08) : « Voir tous les produits » était en CONTOUR (une invitation,
 * pas l'achat) pour se distinguer du bouton « Commander » des cartes, en
 * PLEIN. L'owner a demandé ce bouton arrondi et VERT plein, explicitement —
 * la distinction contour/plein ne tient donc plus pour ce bouton précis.
 * 🎨 Vert FIXE (pas `--aod-a`) : demande explicite d'une couleur nommée,
 * cohérente avec le prix et les boutons rapides des cartes ailleurs dans ce
 * dépôt. ⛔ TOUJOURS AUCUN littéral `background`/`border`/`outline`/`color`
 * écrit ici, au sens du cliquet (`test-couleurs-publiques.php`,
 * `test-surfaces-publiques.php`) : les deux valeurs sont posées en propriété
 * personnalisée SUR LE SÉLECTEUR (pas `:root`, ce bouton est le seul à les
 * utiliser), puis consommées par `var()` — un `background: var(--x)` n'est pas
 * une déclaration littérale, quelle que soit la valeur de `--x`. Portée par
 * l'élément, donc visible de `:hover`/`:focus-visible` sans redéclaration.
 * La zone tactile reste à 44 px : le minimum d'une cible au doigt. */
a.aod-home__btn {
	--aod-home-btn-fg: var(--aod-a);
	--aod-home-btn-fg-dark: var(--aod-a-strong);
	--aod-home-btn-ink: var(--aod-a-ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding-block: 0.75rem;
	padding-inline: 1.75rem;
	border: 1.5px solid var(--aod-home-btn-fg);
	border-radius: 8px;
	background: var(--aod-home-btn-fg);
	color: var(--aod-home-btn-ink);
	font-size: var(--aod-fs-md);
	font-weight: 600;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease;
}
a.aod-home__btn:hover,
a.aod-home__btn:focus {
	background: var(--aod-home-btn-fg-dark);
	border-color: var(--aod-home-btn-fg-dark);
	color: var(--aod-home-btn-ink);
}
a.aod-home__btn:focus-visible {
	outline: 2px solid var(--aod-home-btn-fg-dark);
	outline-offset: 2px;
}
/* 🚨 Un soulignement blanc traversait le texte, mesuré et identifié : Astra
 * imprime `.ast-single-post .entry-content a, …` en (0,2,1) sur un ancêtre —
 * `(0,1,1)` (le sélecteur de base ci-dessus) ne suffisait pas. Le triplet
 * passe à (0,3,1), qui l'emporte par le calcul. */
a.aod-home__btn.aod-home__btn.aod-home__btn {
	text-decoration: none;
}

/* ─────────────────────────────────────────────── La couleur d'achat ─────── */
/*
 * 🚨 SPÉCIFICITÉ (0,2,2), ET LE CHIFFRE A ÉTÉ MESURÉ, PAS ESTIMÉ.
 *
 * Premier essai : `a.aod-loop-cta`, soit (0,1,1) — le raisonnement était « ça bat
 * `.button` (0,1,0) quel que soit l'ordre des feuilles ». Il était juste et
 * insuffisant : relevé dans le CSS **en ligne** d'Astra, le sélecteur qui peint
 * réellement ce bouton n'est pas `.button` mais **`.woocommerce-js a.button`**,
 * soit **(0,2,1)**. Astra gagnait donc par SPÉCIFICITÉ, pas par ordre — et le
 * bouton restait bleu alors que la règle était bien servie et bien orthographiée.
 * *Vérifier qu'on bat le sélecteur qu'on avait en tête ne dit rien de celui qui
 * gagne vraiment.*
 *
 * `body a.aod-loop-cta.aod-loop-cta` = 2 classes + 2 éléments = (0,2,2) > (0,2,1).
 * Il l'emporte par le calcul, jamais par la position dans le document — ce que
 * l'ordre des feuilles ne garantirait pas.
 *
 * ⓘ Nos TROIS autres boutons (`aod-home__btn`, `aod-landing__cta`,
 * `aod-landing__sticky-cta`) n'ont pas eu besoin de ça : ils portaient
 * `class="… button"` dans NOTRE markup, et on l'a simplement retiré — le patron
 * déjà écrit en tête de `aod-cart.css` (« le sélecteur `.button` a disparu du
 * markup ET d'ici : le porter revenait à inviter les règles de boutons du
 * thème »). Ce bouton-ci est le seul dont le markup appartient à WooCommerce :
 * lui retirer `button` changerait ce que voient les extensions tierces, donc on
 * paie la spécificité plutôt que de toucher à un contrat qui n'est pas le nôtre.
 *
 * ⚠️ NE JAMAIS viser `.add_to_cart_button` ni une classe d'Astra depuis ici : la
 * classe `aod-loop-cta` nous vient d'un filtre **WooCommerce**
 * (`woocommerce_loop_add_to_cart_args`, cf. `AOD_COD_No_Tunnel`), donc elle
 * survit au changement de thème d'un clone. Une classe de thème, non.
 *
 * ⚠️ Le liseré n'est pas décoratif : un accent très clair (le jaune par défaut du
 * template donne 1,24:1 sur blanc) produirait un bouton sans contour visible.
 * `--aod-a-line` est garanti à 3:1 sur nos fonds clairs pour TOUT accent — sur un
 * accent déjà foncé il vaut l'accent lui-même, donc le liseré ne se voit pas. Il
 * n'apparaît que là où il manquerait.
 */
body a.aod-loop-cta.aod-loop-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding-block: 0.55rem;
	padding-inline: 1.1rem;
	border: 1px solid var(--aod-a-line);
	border-radius: 8px;
	background: var(--aod-a);
	color: var(--aod-a-ink);
	font-size: var(--aod-fs-sm);
	font-weight: 600;
	text-decoration: none;
	transition: background-color .15s ease;
}
body a.aod-loop-cta.aod-loop-cta:hover,
body a.aod-loop-cta.aod-loop-cta:focus {
	background: var(--aod-a-strong);
	color: var(--aod-a-ink);
}
body a.aod-loop-cta.aod-loop-cta:focus-visible {
	outline: 2px solid var(--aod-a-line);
	outline-offset: 2px;
}

/* `prefers-reduced-motion` est un réglage SYSTÈME, souvent posé pour un trouble
   vestibulaire : on coupe la transition, jamais le changement de couleur — sans
   quoi le survol cesserait d'exister pour ces visiteurs. */
@media (prefers-reduced-motion: reduce) {
	a.aod-home__btn,
	body a.aod-loop-cta.aod-loop-cta { transition: none; }
}

/* ─────────────────────────────────────────────────── Le prix affiché ─────── */
/*
 * Prix des cartes produit (Boutique/Accueil/produits liés) — demande owner
 * (2026-09-08) : une couleur, une taille plus grande, « stylé ».
 *
 * 🎨 SECONDE EXCEPTION à la règle n°1 de ce fichier (la première est le bouton
 * d'achat ci-dessus, Phase 50) : le prix COURANT prend `--aod-a-text`, la
 * couleur de marque calculée par `AOD_COD_Accent` — ≥ 4,5:1 sur nos fonds
 * clairs quel que soit l'accent choisi dans le Personnalisateur, jamais une
 * valeur en dur. Le prix BARRÉ (l'ancien prix, en cas de réduction) reste un
 * gris neutre transparent, plus petit : lui donner la couleur de marque
 * ferait deux prix « actifs » sur la même ligne.
 * ⚠️ Scopé à `li.product` (la grille), jamais au résumé de la fiche produit —
 * pas la demande, et ce prix-là a déjà sa propre mise en avant dans le thème.
 *
 * 🚨 SPÉCIFICITÉ (0,5,1..2), ET LE CHIFFRE A ÉTÉ MESURÉ (même piège que
 * `.aod-loop-cta` plus haut). Astra imprime en CSS **inline** :
 * `.woocommerce-js ul.products li.product .price, .woocommerce-page ul.products
 * li.product .price` — (0,4,2). Un simple `li.product .price` (0,2,1) perdait :
 * mesuré, la taille de police restait celle d'Astra (13 px, pas 18). Le triplet
 * `.product.product` + `.price.price.price` porte le total à (0,5,x), qui
 * l'emporte par le calcul quel que soit l'ordre des feuilles — jamais par une
 * égalité qui dépendrait de qui charge en dernier. */
body li.product.product .price.price.price {
	grid-area: price;
	display: inline-flex;
	align-items: baseline;
	justify-content: flex-end;
	gap: 4px;
	margin: 0;
	padding: 0;
	font-size: var(--aod-fs-md);
	font-weight: 800;
	color: var(--aod-a-text);
	white-space: nowrap;
	line-height: 1.3;
	text-align: end;
}
body li.product.product .price.price.price .amount,
body li.product.product .price.price.price bdi {
	color: var(--aod-a-text);
	font-weight: 800;
}
body li.product.product .price.price.price ins {
	color: var(--aod-a-text);
	font-weight: 800;
	text-decoration: none;
}
body li.product.product .price.price.price del {
	color: var(--aod-n-muted);
	font-size: var(--aod-fs-xs);
	font-weight: 500;
	opacity: 0.6;
}

/* Marge verticale resserrée */
body li.product.product .ast-woo-product-category.ast-woo-product-category.ast-woo-product-category {
	margin-block-end: 2px;
}
body li.product.product h2.woocommerce-loop-product__title.woocommerce-loop-product__title.woocommerce-loop-product__title {
	margin-block-end: 0;
}

/* ────────────────────────── Cartes produits : rectangle stylé premium ─────── */
/*
 * Cartes produit unifiées en rectangle vertical (Boutique, Accueil, similaires).
 * Transforme la grille brute Astra/WooCommerce en cartes modernes et élégantes :
 * conteneur blanc doux, liseré discret, ombre portée progressive au survol,
 * ratio vertical équilibré (aspect-ratio 4/4.75 sur la vignette), typographie
 * hiérarchisée et alignement rigoureux des prix et boutons sur chaque rangée.
 */
body.woocommerce ul.products li.product,
body.woocommerce-page ul.products li.product,
body ul.products li.product {
	display: flex;
	flex-direction: column;
	background: var(--aod-n-bg);
	border: 1px solid var(--aod-n-line-soft);
	border-radius: 10px;
	box-shadow: 0 4px 16px -2px rgba(var(--aod-n-shadow-rgb), .05), 0 2px 6px -1px rgba(var(--aod-n-shadow-rgb), .02);
	overflow: hidden;
	padding: 0;
	margin-bottom: 24px;
	transition: transform .3s cubic-bezier(.16, 1, .3, 1), box-shadow .3s cubic-bezier(.16, 1, .3, 1), border-color .3s ease;
}
body ul.products li.product:hover {
	transform: translateY(-5px);
	box-shadow: 0 16px 32px -4px rgba(var(--aod-n-shadow-rgb), .1), 0 6px 16px -2px rgba(var(--aod-n-shadow-rgb), .04);
	border-color: var(--aod-n-line);
}

/* Grille desktop : 5 produits par ligne par défaut */
@media (min-width: 992px) {
	body.woocommerce ul.products:not(.elementor-grid),
	body.woocommerce-page ul.products:not(.elementor-grid),
	body ul.products {
		display: grid !important;
		grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
		column-gap: 14px !important;
		row-gap: 18px !important;
	}
	body.woocommerce ul.products li.product,
	body.woocommerce-page ul.products li.product,
	body ul.products li.product {
		margin-bottom: 0 !important;
	}
}

/* Grille tablette */
@media (min-width: 768px) and (max-width: 991px) {
	body.woocommerce ul.products:not(.elementor-grid),
	body.woocommerce-page ul.products:not(.elementor-grid),
	body ul.products {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 12px !important;
	}
	body.woocommerce ul.products li.product,
	body.woocommerce-page ul.products li.product,
	body ul.products li.product {
		margin-bottom: 0 !important;
	}
}

/* Grille mobile : 2 produits par ligne avec décalage alterné (staggered product grid) */
@media (max-width: 767px) {
	body.woocommerce ul.products:not(.elementor-grid),
	body.woocommerce-page ul.products:not(.elementor-grid),
	body ul.products {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		column-gap: 8px !important;
		row-gap: 8px !important;
		align-items: start !important;
		padding-bottom: 24px !important;
	}
	body.woocommerce ul.products li.product,
	body.woocommerce-page ul.products li.product,
	body ul.products li.product {
		margin-bottom: 0 !important;
		margin-top: 0 !important;
	}
	/* Décalage vertical alterné sur la 2nde colonne (produits uniquement, pas les catégories) */
	body.woocommerce ul.products li.product:not(.product-category):nth-child(2n),
	body.woocommerce-page ul.products li.product:not(.product-category):nth-child(2n),
	body ul.products li.product:not(.product-category):nth-child(2n) {
		transform: translateY(20px);
	}
	body.woocommerce ul.products li.product:not(.product-category):nth-child(2n):hover,
	body.woocommerce-page ul.products li.product:not(.product-category):nth-child(2n):hover,
	body ul.products li.product:not(.product-category):nth-child(2n):hover {
		transform: translateY(16px);
	}
}

/* Vignette visuelle : hauteur agrandie (ratio vertical 4/4.75) */
body ul.products li.product .astra-shop-thumbnail-wrap {
	position: relative;
	overflow: hidden;
	width: 100%;
	aspect-ratio: 4 / 4.75;
	background: var(--aod-n-bg-sub);
	margin: 0;
	display: block;
}


body ul.products li.product .astra-shop-thumbnail-wrap a {
	display: block;
	width: 100%;
	height: 100%;
}

body ul.products li.product .astra-shop-thumbnail-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .4s cubic-bezier(.16, 1, .3, 1);
}

body ul.products li.product:hover .astra-shop-thumbnail-wrap img {
	transform: scale(1.04);
}

/* Badges unifiés sur la carte produit (Promo & Rupture de stock) */
body ul.products li.product .ast-onsale-card,
body ul.products li.product .onsale,
body.woocommerce ul.products li.product span.onsale,
body.woocommerce ul.products li.product span.ast-onsale-card,
body ul.products li.product .ast-shop-product-out-of-stock,
body.woocommerce-js ul.products li.product.product .ast-shop-product-out-of-stock,
.single-product div.product .ast-onsale-card,
.single-product div.product span.onsale {
	position: absolute !important;
	top: 10px !important;
	bottom: auto !important;
	inset-inline-start: 10px !important;
	inset-inline-end: auto !important;
	right: auto !important;
	left: auto !important;
	width: auto !important;
	max-width: calc(100% - 20px) !important;
	min-height: 0 !important;
	min-width: 0 !important;
	height: auto !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 4px 8px !important;
	border-radius: 4px !important;
	font-size: var(--aod-fs-2xs, 11px) !important;
	letter-spacing: .4px !important;
	text-transform: uppercase !important;
	line-height: 1.1 !important;
	white-space: nowrap !important;
	box-shadow: 0 2px 8px rgba(var(--aod-n-shadow-rgb), .08) !important;
	backdrop-filter: blur(6px) !important;
	-webkit-backdrop-filter: blur(6px) !important;
	pointer-events: none !important;
	z-index: 3 !important;
	opacity: 1 !important;
	visibility: visible !important;
}

/* Badge Promo : pastille raffinée couleur accent (fond doux, texte accent, liseré) */
body ul.products li.product .ast-onsale-card,
body ul.products li.product .onsale,
body.woocommerce ul.products li.product span.onsale,
body.woocommerce ul.products li.product span.ast-onsale-card,
.single-product div.product .ast-onsale-card,
.single-product div.product span.onsale {
	background: var(--aod-a-wash) !important;
	color: var(--aod-a-text) !important;
	border: 1px solid var(--aod-a) !important;
}

/* Badge Rupture de stock : pastille raffinée statut (fond doux, texte alerte, liseré) */
body ul.products li.product .ast-shop-product-out-of-stock,
body.woocommerce-js ul.products li.product.product .ast-shop-product-out-of-stock {
	background: var(--aod-n-bad-soft) !important;
	color: var(--aod-n-bad) !important;
	border: 1px solid var(--aod-n-bad-line) !important;
}

/* Empilement vertical sans chevauchement quand le produit cumule Rupture ET Promo */
body ul.products li.product.outofstock.sale .ast-shop-product-out-of-stock,
body.woocommerce-js ul.products li.product.outofstock.sale .ast-shop-product-out-of-stock {
	top: 38px !important;
}

/* Bloc d'informations : disposition compacte en grille */
body.woocommerce ul.products li.product .astra-shop-summary-wrap,
body.woocommerce-page ul.products li.product .astra-shop-summary-wrap,
body ul.products li.product .astra-shop-summary-wrap,
body li.product.product .astra-shop-summary-wrap {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto !important;
	grid-template-areas:
		"cat cat"
		"title price" !important;
	align-items: baseline !important;
	column-gap: 8px !important;
	row-gap: 2px !important;
	padding: 8px 12px 10px !important;
	background: var(--aod-n-bg) !important;
	text-align: start !important;
}

/* Catégorie sur sa propre ligne */
body ul.products li.product .ast-woo-product-category,
body li.product.product .ast-woo-product-category.ast-woo-product-category {
	grid-area: cat !important;
	display: block !important;
	font-size: var(--aod-fs-xs) !important;
	text-transform: uppercase !important;
	letter-spacing: .5px !important;
	opacity: .6 !important;
	font-weight: 600 !important;
	margin: 0 0 2px 0 !important;
	line-height: 1.2 !important;
}

/* Titre produit sur la même ligne que le prix (sans classe interdite) */
body ul.products li.product .astra-shop-summary-wrap > a:not(.aod-loop-cta),
body li.product.product .astra-shop-summary-wrap > a:not(.aod-loop-cta) {
	grid-area: title !important;
	min-width: 0 !important;
	text-decoration: none !important;
	display: block !important;
}
body ul.products li.product h2.woocommerce-loop-product__title,
body li.product.product h2.woocommerce-loop-product__title.woocommerce-loop-product__title {
	font-size: var(--aod-fs-sm) !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	margin: 0 !important;
	padding: 0 !important;
	min-height: auto !important;
	display: -webkit-box !important;
	-webkit-line-clamp: 2 !important;
	-webkit-box-orient: vertical !important;
	overflow: hidden !important;
	color: var(--aod-n-ink) !important;
}

/* Bouton natif dans le summary masqué au profit de la barre d'action entre photo et texte */
body ul.products li.product .astra-shop-summary-wrap a.aod-loop-cta,
body li.product .astra-shop-summary-wrap a.aod-loop-cta.aod-loop-cta {
	display: none !important;
}

/* Style du bouton d'action directe pleine largeur quand le panier est inactif */
body ul.products li.product .aod-cart__quickgrp--direct {
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
	width: 100% !important;
}
body ul.products li.product .aod-cart__quickgrp--direct .aod-cart__quickorder {
	width: 100% !important;
	height: 42px !important;
	min-height: 42px !important;
	border-radius: 0 !important;
	border-inline: none !important;
	border-top: 1px solid var(--aod-n-line-soft) !important;
	border-bottom: 1px solid var(--aod-n-line-soft) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	margin: 0 !important;
	padding: 0 16px !important;
	box-sizing: border-box !important;
	font-size: var(--aod-fs-sm) !important;
	font-weight: 700 !important;
	letter-spacing: .3px !important;
	transform: none !important;
}
body ul.products li.product .aod-cart__quickgrp--direct .aod-cart__quickorder:hover,
body ul.products li.product .aod-cart__quickgrp--direct .aod-cart__quickorder:focus {
	background: var(--aod-a-strong) !important;
	color: var(--aod-a-ink) !important;
	transform: none !important;
}

/* Barre d'actions entre l'image et les informations */
body ul.products li.product .aod-cart__quickgrp {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 6px;
	padding: 6px 10px;
	background: var(--aod-n-bg-sub);
	border-bottom: 1px solid var(--aod-n-line-soft);
	width: 100%;
	box-sizing: border-box;
	margin: 0;
}
body ul.products li.product .aod-cart__quickgrp .aod-cart__quickadd {
	width: 38px;
	height: 38px;
	min-width: 38px;
	min-height: 38px;
	flex: 0 0 38px;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--aod-n-bg);
	color: var(--aod-a-text);
	border: 1px solid var(--aod-n-line);
	border-radius: 8px;
	cursor: pointer;
	box-shadow: 0 1px 3px rgba(var(--aod-n-shadow-rgb), .04);
	transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}
body ul.products li.product .aod-cart__quickgrp .aod-cart__quickadd:hover {
	background: var(--aod-a-wash);
	border-color: var(--aod-a);
	color: var(--aod-a-text);
	transform: scale(1.04);
}
body ul.products li.product .aod-cart__quickgrp .aod-cart__quickadd.is-added {
	background: var(--aod-n-ok-soft);
	border-color: var(--aod-n-ok-line);
	color: var(--aod-n-ok);
}
body ul.products li.product .aod-cart__quickgrp .aod-cart__quickorder {
	flex: 1 1 auto;
	height: 38px;
	min-height: 38px;
	padding: 0 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--aod-a);
	color: var(--aod-a-ink);
	border: 1px solid var(--aod-a-line);
	border-radius: 8px;
	font-size: var(--aod-fs-sm);
	font-weight: 700;
	cursor: pointer;
	transition: background-color .15s ease, transform .15s ease;
	white-space: nowrap;
	text-decoration: none;
}
body ul.products li.product .aod-cart__quickgrp .aod-cart__quickorder:hover {
	background: var(--aod-a-strong);
	color: var(--aod-a-ink);
	transform: scale(1.02);
}

/* Tuiles de catégories dans les boucles WooCommerce */
body.woocommerce ul.products li.product-category,
body ul.products li.product-category {
	position: relative;
	border-radius: 16px;
	overflow: hidden;
}
body ul.products li.product-category img {
	aspect-ratio: 4 / 4.75;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .4s cubic-bezier(.16, 1, .3, 1);
}
body ul.products li.product-category:hover img {
	transform: scale(1.04);
}
body ul.products li.product-category .woocommerce-loop-category__title {
	position: absolute;
	bottom: 12px;
	inset-inline: 12px;
	margin: 0;
	background: rgba(var(--aod-n-bg-rgb), .94);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-radius: 10px;
	padding: 8px 12px;
	border: 1px solid var(--aod-n-line-soft);
	font-size: var(--aod-fs-sm);
	font-weight: 700;
	text-align: center;
}

@media (prefers-reduced-motion: reduce) {
	body ul.products li.product,
	body ul.products li.product .astra-shop-thumbnail-wrap img,
	body ul.products li.product-category img {
		transition: none;
		transform: none;
	}
}

.aod-home__section {
	padding-block: clamp(1.5rem, 5vw, 3rem);
}

.aod-home__h2 {
	margin-block: 0 1.25rem;
	text-align: center;
	font-size: var(--aod-fs-2xl);
}

/* ── Réassurance ── */

.aod-home__reassure {
	display: grid;
	gap: 1.5rem;
	padding-block: clamp(2rem, 6vw, 3.5rem);
	padding-inline: 1rem;
	/* Gris neutre translucide : se pose aussi bien sur un thème clair que sombre,
	   sans jamais imposer une teinte. */
	background: rgba(128, 128, 128, 0.07);
	border-radius: 12px;
}

.aod-home__promise {
	text-align: center;
}

.aod-home__promise h3 {
	margin-block: 0.6rem 0.35rem;
	font-size: var(--aod-fs-lg);
}

.aod-home__promise p {
	margin: 0;
	font-size: var(--aod-fs-sm);
	line-height: 1.55;
	opacity: 0.8;
}

.aod-home__ico {
	/* Depuis la 54.2 ce n'est plus un glyphe mais un SVG de 30 px (`AOD_COD_Icon`).
	   `display:block` + `line-height:1` retirent l'espace sous la ligne de base
	   qu'un conteneur en ligne réserve encore à du texte absent — sans quoi les
	   trois promesses gagneraient quelques pixels de haut sans raison visible. */
	display: block;
	line-height: 1;
	/* La marque, pas du texte : `--aod-a-text` est le jeton prévu pour porter
	   l'accent du client sur fond clair, garanti ≥ 4,5:1 par la Phase 50. Un
	   emoji apportait ses propres couleurs ; un SVG en `currentColor` hériterait
	   sinon du gris du paragraphe et ces trois arguments s'éteindraient. */
	color: var(--aod-a-text, currentColor);
}

.aod-home__ico .aod-i {
	/* Le SVG porte ses dimensions en attributs (30×30). Ce garde-fou empêche
	   qu'une règle du thème du clone les écrase — c'est le piège de la 49.4 :
	   Astra imprime son CSS *inline*, donc après nous. */
	display: block;
	width: 30px;
	height: 30px;
	/* 🚨 `margin-inline: auto` RESTITUE UN CENTRAGE QUE LE PASSAGE AU SVG AVAIT
	   FAIT PERDRE, et ce n'est pas une préférence. L'emoji était un glyphe EN
	   LIGNE : il héritait du `text-align: center` de la promesse, comme le titre
	   et le paragraphe au-dessous. Passer à un SVG en `display: block` l'a
	   silencieusement plaqué au bord — trois icônes à gauche sous trois textes
	   centrés. Aucun test ne pouvait le voir : le markup est correct, la couleur
	   est juste, la taille est juste. Seule une capture d'écran l'a montré.
	   ⚠️ `margin-inline` et non `margin-left` : le bloc miroite en arabe. */
	margin-inline: auto;
}

@media (min-width: 700px) {
	.aod-home__reassure {
		grid-template-columns: repeat(3, 1fr);
		gap: 2rem;
	}
}

/* ─────────────────────────────────────────────────────────── Contact ─────── */

.aod-contact {
	width: 100%;
	max-width: 100%;
	display: grid;
	gap: clamp(1.75rem, 4vw, 3rem);
	padding-block: clamp(1rem, 4vw, 2.5rem);
}

.aod-contact__details {
	background: var(--aod-n-bg-sub);
	border: 1px solid var(--aod-n-line);
	border-radius: var(--aod-radius, 16px);
	padding: clamp(1.5rem, 2.5vw, 2.25rem);
}

/* Le titre de l'Accueil est centré (c'est une vitrine) ; celui du Contact ne doit
   pas l'être — il coiffe un bloc de texte aligné au bord. `start`, pas `left` : en
   arabe, le bord de départ est à droite. */
.aod-contact__details .aod-home__h2 {
	text-align: start;
	margin-block: 0 1rem;
}

.aod-contact__intro {
	margin-block: 0 1.5rem;
	max-width: none;
	font-size: var(--aod-fs-md);
	line-height: 1.6;
	opacity: 0.85;
}

.aod-contact__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}

.aod-contact__list li {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-size: var(--aod-fs-md);
	padding: 0.75rem 1rem;
	background: var(--aod-n-bg);
	border: 1px solid var(--aod-n-line);
	border-radius: 12px;
}

.aod-contact__list li a {
	color: inherit;
	text-decoration: none;
	word-break: break-all;
}

.aod-contact__list li a:hover {
	text-decoration: underline;
}

.aod-contact__ico {
	flex: 0 0 auto;
	/* Métrique de GLYPHE, pas du texte : la taille est dictée par la boîte qui
	   la contient, pas par l'échelle. La ranger sur un cran casserait son rapport
	   optique au cadre (même arbitrage qu'en 46.5bis pour `/gestion`). */
	font-size: 18px;
}

.aod-contact .aod-contact__form,
form.aod-cod.aod-contact__form {
	width: 100%;
	max-width: 100%;
	background: var(--aod-n-bg);
	border: 1px solid var(--aod-n-line);
	border-radius: var(--aod-radius, 16px);
	padding: clamp(1.5rem, 3.5vw, 2.5rem);
}

@media (min-width: 640px) {
	.aod-contact__form {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 1.25rem;
	}

	.aod-contact__field--full,
	.aod-contact__form > .aod-cod__field:nth-of-type(3),
	.aod-contact__form > .aod-cod__field:nth-of-type(4),
	.aod-contact__form > .aod-cod__hp,
	.aod-contact__form > .aod-cod__turnstile,
	.aod-contact__form > .aod-cod__submit,
	.aod-contact__form > .aod-cod__msg {
		grid-column: 1 / -1;
	}
}

.aod-contact__form textarea {
	width: 100%;
	min-height: 140px;
	resize: vertical;
}

/* 🚨 PLANCHER iOS — LA TAILLE SEULE, JAMAIS LA PEAU.
 *
 * Le formulaire de contact porte `aod-cod aod-contact__form`, PAS
 * `aod-cod__form` : la règle de champ du formulaire COD ne l'a jamais atteint.
 * Ses champs tenaient donc leurs 16 px du THÈME — mesuré sur Astra, qui les
 * habille lui-même. Un thème de clone plus sobre les laisserait à la racine
 * responsive (14,59 px à 390 px), et sous 16 px Safari mobile zoome la page à
 * la mise au point : le visiteur touche « Message » et l'écran saute.
 *
 * ⚠️ On ne pose QUE `font-size`. Rebrancher toute la peau du formulaire COD sur
 * ces champs serait une refonte visuelle — l'arbitrage rendu en 49.4, dont la
 * note est trois blocs plus haut. Une garantie technique, pas un restylage. */
.aod-contact__form input,
.aod-contact__form textarea,
.aod-contact__form select {
	font-size: var(--aod-fs-md);
}

/* Deux colonnes en desktop : coordonnées à gauche (ou à droite en arabe — c'est la
   grille logique qui s'en charge, aucune règle à écrire), formulaire en face. */
@media (min-width: 900px) {
	.aod-contact {
		grid-template-columns: 1fr 1fr;
		align-items: start;
		gap: 2.5rem;
	}
}

@media (min-width: 1200px) {
	.aod-contact {
		grid-template-columns: 1fr 1fr;
		gap: 3rem;
	}
}

/* ── Message de retour du formulaire ── */

.aod-cod__msg.is-ok,
.aod-cod__msg.is-error {
	margin-block-start: 0.85rem;
	padding: 0.75rem 1rem;
	border-radius: 8px;
	border-inline-start: 3px solid currentColor;
	font-weight: 600;
}

/* Vert / rouge : ce ne sont pas des couleurs de marque mais du SENS (succès, échec).
   Un client qui change d'accent ne doit pas voir son message d'erreur virer au vert.

   🚨 CES QUATRE DÉCLARATIONS NE PEIGNAIENT RIEN, ET PERSONNE NE LE SAVAIT (71.2bis).
   `aod-cod-form.css` déclare LE MÊME sélecteur `.aod-cod__msg.is-ok` / `.is-error`, à
   spécificité ÉGALE (0,2,0) — donc c'est l'ordre d'enfilage qui tranche, et rien ne
   l'épingle : aucune dépendance déclarée entre les deux feuilles, les deux hooks à la
   même priorité. Mesuré au navigateur sur les TROIS surfaces qui rendent ce message
   (fiche produit, page de vente, Contact) : l'autre feuille gagne à chaque fois. Ces
   couleurs, choisies avec soin et certifiées par le recensement de la Phase 49,
   étaient du code MORT — et le recensement certifiait donc des valeurs jamais
   peintes, en vert, depuis toujours.

   ⛔ Le correctif n'est PAS de gagner la bataille de l'ordre (un `!important`, une
   dépendance, une spécificité de plus) : ce serait choisir un gagnant entre deux
   vérités concurrentes. Les deux feuilles lisent désormais LA MÊME variable du socle
   — *deux familles qui lisent la même variable ne peuvent plus diverger*, et l'ordre
   d'enfilage cesse d'avoir un effet observable. Même patron qu'en 71.2 pour
   `--sh-*` / `--ac-*`.

   ⚠️ Le fond n'est plus une teinte en `rgba()` de l'encre mais l'aplat du socle : ce
   qui était `rgba(21,128,61,.08)` (#ecf5ef) devient `--aod-n-ok-soft` (#f0faf6). Le
   rendu de CE fichier change donc — mais pas celui de l'ÉCRAN, puisque ces règles
   perdaient déjà. Le contraste est garanti par R6 de `test-couleurs-publiques.php`,
   qui lit le socle et calcule. */
.aod-cod__msg.is-ok {
	color: var(--aod-n-ok);
	background: var(--aod-n-ok-soft);
}

.aod-cod__msg.is-error {
	color: var(--aod-n-bad);
	background: var(--aod-n-bad-soft);
}

/* Honeypot : hors écran plutôt que `display:none`. Certains robots ignorent les
   champs masqués en display — ils ne se feraient plus prendre. */
.aod-cod__hp {
	position: absolute;
	inset-inline-start: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ---- 49.4 — Cibles tactiles publiques : 44 px au pouce, MOBILE SEULEMENT ----
 *
 * Le patron vient de la 46.6 (`dashboard.css`), qui l'a tenu sur 530 cibles de
 * `/gestion`. Il n'avait jamais été appliqué au côté ACHETEUR — parce qu'aucune
 * porte n'y regardait avant la 49.1.
 *
 * 🚨 MOBILE UNIQUEMENT, même arbitrage qu'en 46.6 (D3 de §A.22) : à la souris,
 * 44 px de haut sur un bouton de carte alourdirait chaque grille pour résoudre
 * un problème qui n'existe qu'au pouce. Le point de rupture est celui de
 * `/gestion` — une seconde valeur serait une seconde règle à tenir.
 *
 * ⚠️ ON BORNE, ON NE MASQUE PAS (leçon 45.5) : `min-height` et de la marge
 * intérieure. Jamais `display:none`, qui retirerait l'élément de l'ordre de
 * tabulation ET son nom accessible.
 *
 * `.aod-loop-cta` est LE bouton d'achat du catalogue (135×39 px mesurés). Sa
 * classe nous vient d'un filtre WooCommerce — cf. `AOD_COD_No_Tunnel` —, jamais
 * du thème : la règle marche donc sur n'importe quel thème déposé par un clone.
 */
@media (max-width: 780px) {
	/* ⚠️ MÊME SPÉCIFICITÉ QUE LA RÈGLE DE BASE (0,2,2) — cf. la note « La couleur
	   d'achat » plus haut. Laisser ce bloc en (0,1,0) marcherait aujourd'hui (rien
	   d'autre ne déclare `min-height` ici) et se casserait au premier thème qui en
	   déclarerait un : le plancher tactile de la 49.4 tomberait alors en silence,
	   sur mobile seulement, donc là où personne ne regarde depuis un bureau. */
	body a.aod-loop-cta.aod-loop-cta {
		min-height: 44px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	/* Les coordonnées de la page Contact : l'e-mail et le téléphone sont des
	   liens `mailto:` / `tel:` — donc de VRAIS gestes, pas de la décoration.
	   Mesurés à 148×24 px. Le `li` est déjà `flex`, la ligne ne bouge pas. */
	.aod-contact__list li a {
		min-height: 44px;
		display: inline-flex;
		align-items: center;
	}

	/* 🚨 LES CHAMPS DU FORMULAIRE DE CONTACT, ET LA RAISON EST UNE SURPRISE.
	 * Le commentaire de `.aod-contact__form`, quinze lignes plus haut, affirme
	 * que « le formulaire réutilise les champs du formulaire COD (.aod-cod) :
	 * mêmes styles ». C'est FAUX, et mesuré : les styles de champs sont écrits
	 * sur `.aod-cod__form input[...]` (aod-cod-form.css), or ce formulaire-ci
	 * porte `.aod-cod` — le conteneur, pas le formulaire. Aucune de ces règles
	 * ne l'atteint : ses champs sortaient à **40 px** quand ceux du formulaire
	 * COD font 48. Le commentaire a été corrigé avec sa mesure ; on ne rebranche
	 * PAS les styles ici (ce serait une refonte visuelle, pas une correction de
	 * cible), on pose le plancher tactile. */
	.aod-contact__form input[type="text"],
	.aod-contact__form input[type="email"],
	.aod-contact__form input[type="tel"] {
		min-height: 44px;
	}
}

/* ─────────────────────────────────────────────────────────── Catalogue & Filtres ─────── */

/* Masquage des contrôles WooCommerce natifs bruts au profit de la barre intégrée */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	display: none !important;
}

.aod-catalog-bar {
	margin-block-end: 2.25rem;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

/* 1. Vitrine visuelle des Types de produits / Rayons */
.aod-cat-showcase {
	background: var(--aod-n-bg);
	border: 1px solid var(--aod-n-line-soft);
	border-radius: var(--aod-radius, 16px);
	padding: 1.25rem;
	box-shadow: 0 2px 10px rgba(var(--aod-n-shadow-rgb), .02);
}

.aod-cat-showcase__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-block-end: 1rem;
}

.aod-cat-showcase__title-wrap {
	display: flex;
	align-items: center;
	gap: 0.625rem;
}

.aod-cat-showcase__title {
	font-size: var(--aod-fs-md);
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--aod-n-ink);
}

.aod-cat-showcase__total {
	font-size: var(--aod-fs-2xs);
	font-weight: 600;
	padding: 2px 8px;
	border-radius: 9999px;
	background: var(--aod-n-bg-sub);
	color: var(--aod-n-muted);
	border: 1px solid var(--aod-n-line-soft);
}

.aod-cat-showcase__all {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-size: var(--aod-fs-xs);
	font-weight: 600;
	color: var(--aod-a-text);
	text-decoration: none;
	transition: opacity 0.15s ease;
}

.aod-cat-showcase__all:hover {
	opacity: 0.75;
	text-decoration: underline;
}

/* Piste de défilement horizontal fluide avec momentum et scroll-snap */
.aod-cat-cards-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scroll-snap-type: x mandatory;
	padding-block-end: 0.35rem;
	scrollbar-width: none;
}

.aod-cat-cards-scroll::-webkit-scrollbar {
	display: none;
}

.aod-cat-cards-track {
	display: flex;
	gap: 0.875rem;
	min-width: min-content;
}

.aod-cat-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.5rem;
	padding-block: 0.875rem;
	padding-inline: 0.625rem;
	border: 1px solid var(--aod-n-line-soft);
	border-radius: 12px;
	background: var(--aod-n-bg);
	color: inherit;
	text-decoration: none;
	width: 104px;
	flex: 0 0 104px;
	scroll-snap-align: start;
	transition: transform 0.2s cubic-bezier(0.23, 1, 0.32, 1), border-color 0.2s ease, box-shadow 0.2s ease;
}

.aod-cat-card:hover {
	transform: translateY(-2px);
	border-color: var(--aod-a-line);
	box-shadow: 0 6px 14px rgba(var(--aod-n-shadow-rgb), .05);
}

.aod-cat-card:active {
	transform: scale(0.96);
}

.aod-cat-card.is-active {
	border-color: var(--aod-a);
	background: var(--aod-a-wash);
	box-shadow: 0 0 0 2px var(--aod-a);
}

.aod-cat-card__thumb {
	width: 58px;
	height: 58px;
	border-radius: 10px;
	overflow: hidden;
	background: var(--aod-n-bg-sub);
	border: 1px solid var(--aod-n-line-soft);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.2s ease;
}

.aod-cat-card:hover .aod-cat-card__thumb {
	transform: scale(1.04);
}

.aod-cat-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.aod-cat-card__thumb--all {
	color: var(--aod-a-text);
}

.aod-cat-card__name {
	font-size: var(--aod-fs-xs);
	font-weight: 700;
	line-height: 1.25;
	color: var(--aod-n-ink);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.aod-cat-card__count {
	font-size: var(--aod-fs-2xs);
	color: var(--aod-n-muted);
}

/* 2. Barre de contrôle unifiée (Filtres, Puces rapides, Tri, Compteur) */
.aod-filter-control-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	padding: 0.75rem 1rem;
	background: var(--aod-n-bg);
	border: 1px solid var(--aod-n-line-soft);
	border-radius: 14px;
	box-shadow: 0 2px 8px rgba(var(--aod-n-shadow-rgb), .02);
}

.aod-filter-control-bar__start {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	flex-wrap: wrap;
}

.aod-filter-control-bar__end {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-inline-start: auto;
}

/* Bouton déclencheur principal du tiroir */
.aod-filter-trigger-btn,
button.aod-filter-trigger-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 1rem !important;
	border-radius: 10px;
	background: var(--aod-a) !important;
	color: var(--aod-a-ink) !important;
	border: 1px solid var(--aod-a-line) !important;
	font-size: var(--aod-fs-sm);
	font-weight: 700;
	cursor: pointer;
	min-height: 0 !important;
	transition: transform 0.16s ease, opacity 0.16s ease, background-color 0.16s ease;
}

.aod-filter-trigger-btn:hover {
	opacity: 0.9;
}

.aod-filter-trigger-btn:active {
	transform: scale(0.96);
}

.aod-filter-trigger-btn__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding-inline: 4px;
	border-radius: 9999px;
	background: var(--aod-a-ink) !important;
	color: var(--aod-a) !important;
	font-size: var(--aod-fs-2xs);
	font-weight: 800;
	line-height: 1;
}

/* Puces rapides interactives */
.aod-quick-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.45rem 0.85rem;
	border-radius: 9999px;
	background: var(--aod-n-bg-sub);
	border: 1px solid var(--aod-n-line-soft);
	color: var(--aod-n-text);
	font-size: var(--aod-fs-xs);
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease, transform 0.16s ease;
	line-height: 1.2;
}

.aod-quick-chip:hover {
	border-color: var(--aod-a-line);
	background: var(--aod-a-wash);
	color: var(--aod-a-text);
}

.aod-quick-chip:active {
	transform: scale(0.96);
}

.aod-quick-chip.is-active {
	background: var(--aod-a-wash);
	border-color: var(--aod-a);
	color: var(--aod-a-text);
	font-weight: 700;
}

.aod-quick-chip__dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--aod-n-muted);
	transition: background-color 0.15s ease;
}

.aod-quick-chip.is-active .aod-quick-chip__dot {
	background: var(--aod-a);
}

.aod-quick-chip__count {
	font-size: var(--aod-fs-2xs);
	padding: 1px 6px;
	border-radius: 9999px;
	background: var(--aod-n-line-soft);
	color: var(--aod-n-muted);
}

.aod-quick-chip__x {
	font-size: var(--aod-fs-sm);
	font-weight: 700;
	margin-inline-start: 2px;
}

/* Badge compteur de résultats */
.aod-results-badge {
	font-size: var(--aod-fs-xs);
	font-weight: 600;
	color: var(--aod-n-muted);
	white-space: nowrap;
}

/* Sélecteur de Tri stylisé */
.aod-sort-select-wrap {
	position: relative;
	display: inline-flex;
	align-items: center;
}

.aod-sort-select {
	appearance: none;
	-webkit-appearance: none;
	background: var(--aod-n-bg-sub);
	border: 1px solid var(--aod-n-line-soft);
	border-radius: 10px;
	padding-block: 0.45rem;
	padding-inline-start: 0.85rem;
	padding-inline-end: 2rem;
	font-size: var(--aod-fs-xs);
	font-weight: 600;
	color: var(--aod-n-text);
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.aod-sort-select:hover {
	border-color: var(--aod-a-line);
}

.aod-sort-select:focus-visible {
	outline: 2px solid var(--aod-a-line);
	outline-offset: 1px;
}

.aod-sort-select-wrap__arrow {
	position: absolute;
	inset-inline-end: 0.75rem;
	pointer-events: none;
	color: var(--aod-n-muted);
}

/* 3. Bandeau des filtres appliqués */
.aod-active-filters-bar {
	background: var(--aod-a-wash);
	border: 1px solid var(--aod-a-line);
	border-radius: 12px;
	padding: 0.625rem 0.875rem;
	animation: aodFadeIn 0.2s ease-out;
}

.aod-active-filters-inner {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.aod-active-filters-title {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	font-size: var(--aod-fs-xs);
	font-weight: 700;
	color: var(--aod-a-text);
	white-space: nowrap;
}

.aod-active-filters-list {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
	flex: 1 1 auto;
}

.aod-active-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding-block: 0.25rem;
	padding-inline: 0.625rem;
	background: var(--aod-n-bg);
	border: 1px solid var(--aod-a-line);
	border-radius: 6px;
	font-size: var(--aod-fs-xs);
	font-weight: 600;
	color: var(--aod-n-ink);
	text-decoration: none;
	transition: transform 0.12s ease, border-color 0.12s ease;
}

.aod-active-chip:hover {
	transform: translateY(-1px);
	border-color: var(--aod-a);
}

.aod-active-chip__type {
	font-size: var(--aod-fs-2xs);
	text-transform: uppercase;
	letter-spacing: 0.3px;
	opacity: 0.65;
}

.aod-active-chip__label {
	font-weight: 700;
}

.aod-active-chip__x {
	font-size: var(--aod-fs-sm);
	font-weight: 700;
	color: var(--aod-a-text);
	line-height: 1;
}

.aod-active-filters-reset-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-size: var(--aod-fs-xs);
	font-weight: 700;
	color: var(--aod-a-text);
	text-decoration: underline;
	margin-inline-start: auto;
	transition: opacity 0.15s ease;
}

.aod-active-filters-reset-btn:hover {
	opacity: 0.75;
}

/* 4. Le Tiroir / Bottom Sheet de filtres (Modal responsive haute couture) */
.aod-drawer {
	position: fixed;
	inset: 0;
	z-index: 99999;
	visibility: hidden;
	pointer-events: none;
	transition: visibility 0.28s ease;
}

.aod-drawer.is-open {
	visibility: visible;
	pointer-events: auto;
}

body.aod-drawer-locked {
	overflow: hidden !important;
	touch-action: none;
}

.aod-drawer__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(var(--aod-n-veil-rgb), .45);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	opacity: 0;
	transition: opacity 0.28s ease-out;
}

.aod-drawer.is-open .aod-drawer__backdrop {
	opacity: 1;
}

/* Panneau Desktop : Slide-over latéral droit (gauche en RTL) */
.aod-drawer__panel {
	position: absolute;
	top: 0;
	bottom: 0;
	inset-inline-end: 0;
	width: 420px;
	max-width: 92vw;
	background: var(--aod-n-bg);
	box-shadow: -8px 0 32px rgba(var(--aod-n-shadow-rgb), .15);
	display: flex;
	flex-direction: column;
	transform: translateX(100%);
	transition: transform 0.28s cubic-bezier(0.23, 1, 0.32, 1);
}

[dir="rtl"] .aod-drawer__panel {
	transform: translateX(-100%);
}

.aod-drawer.is-open .aod-drawer__panel {
	transform: translateX(0) !important;
}

.aod-drawer__handle {
	display: none;
}

.aod-drawer__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.25rem 1.5rem;
	border-bottom: 1px solid var(--aod-n-line-soft);
}

.aod-drawer__heading-grp {
	display: flex;
	align-items: center;
	gap: 0.625rem;
}

.aod-drawer__title {
	margin: 0;
	font-size: var(--aod-fs-lg);
	font-weight: 800;
	color: var(--aod-n-ink);
}

.aod-drawer__badge {
	font-size: var(--aod-fs-2xs);
	font-weight: 800;
	padding: 2px 7px;
	border-radius: 9999px;
	background: var(--aod-a);
	color: var(--aod-a-ink);
}

.aod-drawer__close,
button.aod-drawer__close {
	width: 36px !important;
	height: 36px !important;
	padding: 0 !important;
	min-height: 0 !important;
	border-radius: 50% !important;
	background: var(--aod-n-bg-sub);
	border: 1px solid var(--aod-n-line-soft);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: var(--aod-n-ink);
	transition: transform 0.15s ease, background-color 0.15s ease;
}

.aod-drawer__close:hover {
	background: var(--aod-n-line-soft);
}

.aod-drawer__close:active {
	transform: scale(0.92);
}

.aod-drawer__form {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	overflow: hidden;
}

.aod-drawer__body {
	flex: 1 1 auto;
	overflow-y: auto;
	padding: 1.25rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
}

.aod-drawer__section {
	border: none;
	padding: 0;
	margin: 0;
}

.aod-drawer__section-title {
	font-size: var(--aod-fs-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--aod-n-muted);
	margin-block-end: 0.75rem;
	display: block;
}

/* Liste de catégories dans le tiroir */
.aod-drawer__cat-list {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.aod-drawer__cat-item {
	display: flex;
	align-items: center;
	padding: 0.65rem 0.85rem;
	border-radius: 10px;
	border: 1px solid transparent;
	background: transparent;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.aod-drawer__cat-item:hover {
	background: var(--aod-n-bg-sub);
}

.aod-drawer__cat-item:has(input:checked) {
	background: var(--aod-a-wash);
	border-color: var(--aod-a-line);
	font-weight: 700;
}

.aod-drawer__cat-item input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.aod-drawer__cat-custom-radio {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	border: 2px solid var(--aod-n-line);
	margin-inline-end: 0.65rem;
	display: inline-block;
	position: relative;
	flex-shrink: 0;
	transition: all 0.15s ease;
}

.aod-drawer__cat-item input:checked ~ .aod-drawer__cat-custom-radio {
	border-color: var(--aod-a);
	background: var(--aod-a);
	box-shadow: inset 0 0 0 3px var(--aod-n-bg);
}

.aod-drawer__cat-name {
	flex: 1 1 auto;
	font-size: var(--aod-fs-sm);
	color: var(--aod-n-ink);
}

.aod-drawer__cat-count {
	font-size: var(--aod-fs-xs);
	color: var(--aod-n-muted);
}

/* Nuage de pastilles (Sous-catégories et Marques) */
.aod-drawer__pills-cloud {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.aod-drawer__pill-checkbox {
	cursor: pointer;
}

.aod-drawer__pill-checkbox input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.aod-drawer__pill-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.4rem 0.8rem;
	border-radius: 9999px;
	background: var(--aod-n-bg-sub);
	border: 1px solid var(--aod-n-line-soft);
	color: var(--aod-n-text);
	font-size: var(--aod-fs-xs);
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.aod-drawer__pill-checkbox:hover .aod-drawer__pill-btn {
	border-color: var(--aod-a-line);
	color: var(--aod-a-text);
}

.aod-drawer__pill-checkbox input:checked ~ .aod-drawer__pill-btn {
	background: var(--aod-a);
	border-color: var(--aod-a);
	color: var(--aod-a-ink);
}

.aod-drawer__pill-count {
	font-size: var(--aod-fs-2xs);
	opacity: 0.75;
}

/* Section Prix */
.aod-drawer__price-inputs {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-block-end: 0.875rem;
}

.aod-drawer__price-field {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.aod-drawer__price-label {
	font-size: var(--aod-fs-2xs);
	color: var(--aod-n-muted);
	font-weight: 600;
}

.aod-drawer__price-box {
	position: relative;
	display: flex;
	align-items: center;
}

.aod-drawer__price-box input {
	width: 100%;
	height: 42px;
	border-radius: 8px;
	border: 1px solid var(--aod-n-line);
	background: var(--aod-n-bg);
	padding-inline: 0.75rem 2rem;
	font-size: var(--aod-fs-sm);
	font-weight: 600;
	color: var(--aod-n-ink);
	box-sizing: border-box;
}

.aod-drawer__price-box input:focus {
	border-color: var(--aod-a);
	outline: none;
	box-shadow: 0 0 0 2px var(--aod-a-wash);
}

.aod-drawer__price-unit {
	position: absolute;
	inset-inline-end: 0.75rem;
	font-size: var(--aod-fs-xs);
	color: var(--aod-n-muted);
	font-weight: 700;
	pointer-events: none;
}

.aod-drawer__price-sep {
	font-size: var(--aod-fs-md);
	color: var(--aod-n-muted);
	margin-block-start: 1rem;
}

.aod-drawer__price-presets {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.aod-price-preset-chip,
button.aod-price-preset-chip {
	padding: 0.35rem 0.75rem !important;
	min-height: 0 !important;
	border-radius: 6px;
	background: var(--aod-n-bg-sub);
	border: 1px solid var(--aod-n-line-soft);
	font-size: var(--aod-fs-xs);
	font-weight: 600;
	color: var(--aod-n-text);
	cursor: pointer;
	transition: all 0.15s ease;
}

button.aod-quick-chip--trigger {
	min-height: 0 !important;
}

.aod-price-preset-chip:hover,
.aod-price-preset-chip.is-active {
	background: var(--aod-a-wash);
	border-color: var(--aod-a);
	color: var(--aod-a-text);
}

/* Section Disponibilité (Interrupteur toggle switch style iOS) */
.aod-drawer__toggle-row {
	display: flex;
	align-items: center;
	gap: 0.875rem;
	padding: 0.875rem 1rem;
	border-radius: 12px;
	background: var(--aod-n-bg-sub);
	border: 1px solid var(--aod-n-line-soft);
	cursor: pointer;
	user-select: none;
}

.aod-drawer__toggle-row input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.aod-drawer__toggle-switch {
	width: 44px;
	height: 26px;
	border-radius: 9999px;
	background: var(--aod-n-line);
	position: relative;
	transition: background-color 0.2s ease;
	flex-shrink: 0;
}

.aod-drawer__toggle-switch::after {
	content: "";
	position: absolute;
	top: 3px;
	inset-inline-start: 3px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--aod-n-bg);
	box-shadow: 0 1px 3px rgba(var(--aod-n-shadow-rgb), .2);
	transition: transform 0.2s cubic-bezier(0.23, 1, 0.32, 1);
}

.aod-drawer__toggle-row input:checked ~ .aod-drawer__toggle-switch {
	background: var(--aod-a);
}

.aod-drawer__toggle-row input:checked ~ .aod-drawer__toggle-switch::after {
	transform: translateX(18px);
}

[dir="rtl"] .aod-drawer__toggle-row input:checked ~ .aod-drawer__toggle-switch::after {
	transform: translateX(-18px);
}

.aod-drawer__toggle-label {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.aod-drawer__toggle-label strong {
	font-size: var(--aod-fs-sm);
	color: var(--aod-n-ink);
}

.aod-drawer__toggle-label small {
	font-size: var(--aod-fs-2xs);
	color: var(--aod-n-muted);
}

/* Pied du tiroir (Boutons d'action) */
.aod-drawer__footer {
	display: flex;
	align-items: center;
	gap: 0.875rem;
	padding: 1.25rem 1.5rem;
	border-top: 1px solid var(--aod-n-line-soft);
	background: var(--aod-n-bg);
	position: sticky;
	bottom: 0;
	z-index: 2;
}

.aod-drawer__reset-btn {
	flex: 0 0 auto;
	padding: 0.75rem 1.1rem;
	border-radius: 10px;
	background: var(--aod-n-bg-sub);
	border: 1px solid var(--aod-n-line-soft);
	color: var(--aod-n-text);
	font-size: var(--aod-fs-sm);
	font-weight: 600;
	text-decoration: none;
	text-align: center;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.aod-drawer__reset-btn:hover {
	background: var(--aod-a-wash);
	color: var(--aod-a-text);
}

.aod-drawer__apply-btn,
button.aod-drawer__apply-btn {
	flex: 1 1 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.75rem 1.25rem !important;
	border-radius: 10px;
	background: var(--aod-a) !important;
	border: 1px solid var(--aod-a-line) !important;
	color: var(--aod-a-ink) !important;
	font-size: var(--aod-fs-sm);
	font-weight: 700;
	cursor: pointer;
	min-height: 0 !important;
	transition: background-color 0.15s ease, transform 0.15s ease;
}

.aod-drawer__apply-btn:hover {
	background: var(--aod-a-strong);
}

.aod-drawer__apply-btn:active {
	transform: scale(0.97);
}

/* Fiche produit : marque au-dessus du titre */
.aod-prod-brand-meta {
	margin-block-end: 0.5rem;
}

.aod-prod-brand-badge {
	display: inline-block;
	padding-block: 0.2rem;
	padding-inline: 0.6rem;
	background: var(--aod-a-wash);
	border: 1px solid var(--aod-a-line);
	border-radius: 4px;
	font-size: var(--aod-fs-xs);
	font-weight: 700;
	color: var(--aod-a-text);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Utilitaires RTL et animations */
.aod-i--rtl-flip {
	transition: transform 0.2s ease;
}

[dir="rtl"] .aod-i--rtl-flip {
	transform: scaleX(-1);
}

@keyframes aodFadeIn {
	from { opacity: 0; transform: translateY(-4px); }
	to { opacity: 1; transform: translateY(0); }
}

/* Adaptation Responsive Mobile (< 768px) */
@media (max-width: 768px) {
	.aod-cat-card {
		width: 92px;
		flex: 0 0 92px;
		padding-block: 0.75rem;
	}

	.aod-cat-card__thumb {
		width: 50px;
		height: 50px;
	}

	.aod-filter-control-bar {
		padding: 0.625rem 0.75rem;
		gap: 0.625rem;
	}

	.aod-filter-control-bar__start {
		flex: 1 1 100%;
		gap: 0.5rem;
	}

	.aod-filter-control-bar__end {
		flex: 1 1 100%;
		justify-content: space-between;
		margin-inline-start: 0;
		border-top: 1px solid var(--aod-n-line-soft);
		padding-top: 0.5rem;
	}

	/* Sur mobile, le tiroir devient une Bottom-Sheet fluide */
	.aod-drawer__panel {
		top: auto;
		bottom: 0;
		left: 0;
		right: 0;
		inset-inline-end: 0;
		width: 100%;
		max-width: 100%;
		max-height: 86vh;
		border-radius: 20px 20px 0 0;
		box-shadow: 0 -8px 32px rgba(var(--aod-n-shadow-rgb), .15);
		transform: translateY(100%) !important;
		transition: transform 0.28s cubic-bezier(0.32, 0.72, 0, 1);
	}

	[dir="rtl"] .aod-drawer__panel {
		transform: translateY(100%) !important;
	}

	.aod-drawer.is-open .aod-drawer__panel {
		transform: translateY(0) !important;
	}

	.aod-drawer__handle {
		display: block;
		width: 44px;
		height: 5px;
		border-radius: 9999px;
		background: var(--aod-n-line);
		margin: 10px auto 0;
		cursor: grab;
	}

	.aod-drawer__header {
		padding: 0.875rem 1.25rem;
	}

	.aod-drawer__body {
		padding: 1rem 1.25rem;
	}

	.aod-drawer__footer {
		padding: 1rem 1.25rem;
	}
}
/* ==========================================================================
   Page Produit : Disposition 2 colonnes (Galerie à gauche, Contenu + Formulaire à droite)
   ========================================================================== */

/* Desktop & Tablettes (>= 768px) : 2 colonnes côte à côte */
@media (min-width: 768px) {
	.single-product div.product {
		display: grid !important;
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) !important;
		column-gap: 40px !important;
		align-items: start !important;
		position: relative !important;
	}
	.single-product div.product .summary.entry-summary {
		grid-column: 2 !important;
		grid-row: 1 !important;
		display: flex !important;
		flex-direction: column !important;
		float: none !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
	}
	.single-product div.product .woocommerce-product-gallery {
		grid-column: 1 !important;
		grid-row: 1 !important;
		float: none !important;
		width: 100% !important;
		margin: 0 !important;
	}
	.single-product div.product .ast-onsale-card,
	.single-product div.product span.onsale {
		position: absolute !important;
		top: 14px !important;
		inset-inline-start: 96px !important;
		inset-inline-end: auto !important;
		z-index: 10 !important;
	}
}

/* Mobile (< 768px) : Empilement naturel fluide */
@media (max-width: 767px) {
	.single-product div.product {
		display: flex !important;
		flex-direction: column !important;
		position: relative !important;
	}
	.single-product div.product .ast-onsale-card,
	.single-product div.product span.onsale {
		position: absolute !important;
		top: 12px !important;
		inset-inline-start: 88px !important;
		inset-inline-end: auto !important;
		z-index: 10 !important;
	}
	.single-product div.product .summary.entry-summary {
		width: 100% !important;
		margin-top: 16px !important;
	}
	.single-product div.product .woocommerce-product-gallery {
		width: 100% !important;
		margin-bottom: 16px !important;
	}
}

/* --- Galerie : Vignettes verticales alignées sur la gauche --- */
.single-product .woocommerce-product-gallery {
	display: flex !important;
	flex-direction: row-reverse !important;
	align-items: flex-start !important;
	gap: 12px !important;
	position: relative !important;
}
.single-product .woocommerce-product-gallery .flex-viewport {
	flex: 1 1 auto !important;
	width: calc(100% - 84px) !important;
	border-radius: 12px !important;
	overflow: hidden !important;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs {
	display: flex !important;
	flex-direction: column !important;
	flex: 0 0 72px !important;
	width: 72px !important;
	gap: 8px !important;
	padding: 0 !important;
	margin: 0 !important;
	list-style: none !important;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs li {
	width: 72px !important;
	height: 72px !important;
	flex: 0 0 72px !important;
	border-radius: 8px !important;
	overflow: hidden !important;
	border: 2px solid transparent !important;
	cursor: pointer !important;
	box-sizing: border-box !important;
	transition: border-color .15s ease !important;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active,
.single-product .woocommerce-product-gallery .flex-control-thumbs li:hover {
	border-color: var(--aod-a) !important;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs li img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
}

/* --- Colonne de droite : Contenu produit au-dessus du formulaire --- */
.single-product div.product .summary.entry-summary .woocommerce-breadcrumb {
	margin: 0 0 8px !important;
	font-size: var(--aod-fs-xs) !important;
	color: var(--aod-n-muted) !important;
}
.single-product div.product .summary.entry-summary .woocommerce-breadcrumb a {
	color: var(--aod-n-text) !important;
	opacity: 0.75 !important;
	text-decoration: none !important;
	transition: opacity .15s ease, color .15s ease !important;
}
.single-product div.product .summary.entry-summary .woocommerce-breadcrumb a:hover {
	opacity: 1 !important;
	color: var(--aod-a-text) !important;
}

/* Nom de produit : taille affinée et élégante (pas trop grande) */
.single-product div.product .summary.entry-summary .product_title {
	font-size: var(--aod-fs-xl) !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	letter-spacing: -.015em !important;
	margin: 0 0 8px !important;
	color: var(--aod-n-text) !important;
}

/* Prix sous le titre produit : agrandi, gras et coloré */
.single-product div.product .summary.entry-summary p.price {
	font-size: var(--aod-fs-2xl) !important;
	font-weight: 800 !important;
	margin: 0 0 10px !important;
	display: flex !important;
	align-items: baseline !important;
	gap: 10px !important;
	color: var(--aod-a-text) !important;
}
.single-product div.product .summary.entry-summary p.price del {
	font-size: var(--aod-fs-sm) !important;
	color: var(--aod-n-muted) !important;
	opacity: 0.6 !important;
	font-weight: 500 !important;
}
.single-product div.product .summary.entry-summary p.price ins,
.single-product div.product .summary.entry-summary p.price .amount,
.single-product div.product .summary.entry-summary p.price bdi {
	text-decoration: none !important;
	color: var(--aod-a-text) !important;
	font-weight: 800 !important;
}

/* Description courte */
.single-product div.product .summary.entry-summary .woocommerce-product-details__short-description {
	font-size: var(--aod-fs-sm) !important;
	line-height: 1.55 !important;
	color: var(--aod-n-text) !important;
	opacity: 0.85 !important;
	margin: 0 0 14px !important;
	padding-bottom: 12px !important;
	border-bottom: 1px solid var(--aod-n-line-soft) !important;
}

/* Suppression des redondances de catégorie */
.single-product div.product .summary.entry-summary .product_meta,
.single-product div.product .summary.entry-summary .single-product-category {
	display: none !important;
}

/* Ne JAMAIS afficher la boîte "Votre panier" sur la fiche produit */
.single-product .aod-cart__box {
	display: none !important;
}

/* Ne pas afficher le prix de produit au dessous de la quantité */
.single-product .aod-cod__offers--solo,
.single-product .aod-cod__offers--solo .aod-cod__offer-head,
.single-product .aod-cod__offers--solo .aod-cod__offer-price {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Formulaire COD / Section de commande compacte */
.single-product div.product .summary.entry-summary #aod-commander {
	margin-top: 0 !important;
	padding: 16px 18px !important;
	width: 100% !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__title {
	margin: 0 0 8px !important;
	font-size: var(--aod-fs-md) !important;
	font-weight: 700 !important;
	color: var(--aod-n-text) !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__stock-status {
	margin-bottom: 8px !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__qty-wrap {
	margin: 6px 0 10px !important;
	padding: 6px 12px !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__qty-btn {
	width: 32px !important;
	height: 32px !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__step {
	margin-top: 12px !important;
	padding-top: 10px !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__step:first-of-type {
	margin-top: 4px !important;
	padding-top: 0 !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__step-header {
	margin-bottom: 8px !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__step-num {
	width: 22px !important;
	height: 22px !important;
	font-size: var(--aod-fs-2xs) !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__step-title {
	font-size: var(--aod-fs-sm) !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__field {
	margin-bottom: 8px !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__row {
	gap: 8px !important;
	margin-bottom: 8px !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__float > input,
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__float > select {
	height: 46px !important;
	padding-top: 18px !important;
	padding-bottom: 4px !important;
	padding-inline: 12px !important;
	font-size: var(--aod-fs-md) !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__float > label {
	font-size: var(--aod-fs-sm) !important;
	inset-inline-start: 12px !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__float > input:focus + label,
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__float > input:not(:placeholder-shown) + label,
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__float--sel > select + label {
	transform: translateY(-90%) scale(.8) !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__radio-card {
	padding: 10px 10px !important;
	gap: 8px !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__summary {
	margin: 10px 0 !important;
	padding: 10px 14px !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__summary > div {
	padding: 3px 0 !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__item {
	padding-bottom: 8px !important;
	margin-bottom: 4px !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__grand {
	margin-top: 6px !important;
	padding-top: 8px !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__submit {
	padding: 12px 16px !important;
	min-height: 44px !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__addcart {
	margin-top: 6px !important;
	padding: 10px 16px !important;
	min-height: 42px !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__reassure {
	margin-top: 8px !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__reassure-grid {
	margin: 10px 0 6px !important;
	padding: 8px 10px !important;
	gap: 6px 10px !important;
}
.single-product div.product .summary.entry-summary #aod-commander .aod-cod__reassure-item {
	gap: 6px !important;
}
/* Onglets et produits similaires pleine largeur */
.single-product div.product .woocommerce-tabs,
.single-product div.product .related.products {
	grid-column: 1 / -1 !important;
	width: 100% !important;
}

/* ─────────────────────────────────── Barre de retour en arrière ─────── */
.aod-back-bar {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	width: 100%;
	box-sizing: border-box;
}
/* RTL : calé physiquement sur la droite */
[dir="rtl"] .aod-back-bar,
body.rtl .aod-back-bar {
	justify-content: flex-start;
}

.aod-back-bar--top {
	margin-top: 2px !important;
	margin-bottom: 10px !important;
	padding-top: 0 !important;
}
.aod-back-bar--bottom {
	margin-block: 24px 16px;
	justify-content: flex-end;
}
[dir="rtl"] .aod-back-bar--bottom,
body.rtl .aod-back-bar--bottom {
	justify-content: flex-start;
}
/* ─── Cadrage et adaptation parfaite du logo dans la topbar ─────────── */
#masthead .site-branding {
	display: inline-flex !important;
	align-items: center !important;
	gap: 10px !important;
	padding: 6px 0 !important;
}

#masthead .site-logo-img,
#masthead .site-logo-img .custom-logo-link {
	display: inline-flex !important;
	align-items: center !important;
	line-height: 1 !important;
}

#masthead .site-logo-img img,
#masthead .custom-logo,
.site-header .custom-logo-link img {
	max-height: 44px !important;
	max-width: 140px !important;
	width: auto !important;
	height: auto !important;
	object-fit: contain !important;
	display: block !important;
	vertical-align: middle !important;
}

#masthead .site-title {
	margin: 0 !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	white-space: nowrap !important;
}

#masthead .site-title a {
	color: inherit !important;
	text-decoration: none !important;
}

@media (max-width: 768px) {
	#masthead .site-branding {
		gap: 8px !important;
		padding: 4px 0 !important;
	}
	#masthead .site-logo-img img,
	#masthead .custom-logo,
	.site-header .custom-logo-link img {
		max-height: 34px !important;
		max-width: 100px !important;
	}
}


/* Réduction maximale de l'espace vertical entre la topbar (header) et le contenu sur toutes les pages */
.site-content,
#content.site-content,
.single-product .site-content,
.woocommerce.single-product .site-content {
	padding-top: 4px !important;
}
.home .site-content,
.home #content.site-content {
	padding-top: 0 !important;
}
body.ast-plain-container.ast-no-sidebar #primary,
body.ast-plain-container #primary,
body #primary,
#primary.content-area,
.single-product #primary,
.single-product.ast-plain-container.ast-no-sidebar #primary,
.woocommerce.single-product #primary {
	margin-top: 0 !important;
	padding-top: 0 !important;
}
body #main,
.single-product #main,
.woocommerce.single-product #main,
body .ast-woocommerce-container,
.single-product .ast-woocommerce-container,
.woocommerce.single-product .ast-woocommerce-container {
	margin-top: 0 !important;
	padding-top: 0 !important;
}
.ast-woo-shop-archive .woocommerce-breadcrumb,
.ast-woo-shop-archive .ast-woocommerce-container > .woocommerce-breadcrumb {
	margin-top: 4px !important;
	margin-bottom: 6px !important;
}
.ast-woo-shop-archive .woocommerce-products-header,
.woocommerce-products-header {
	margin-top: 0 !important;
	margin-bottom: 12px !important;
}
.aod-contact {
	margin-top: 8px !important;
}
.aod-landing__main .aod-back-bar--top,
.aod-order__main .aod-back-bar--top {
	margin-top: 4px !important;
	margin-bottom: 10px !important;
	padding-inline: 12px;
}
.aod-back-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	border-radius: 9999px;
	background: var(--aod-n-bg-sub);
	border: 1px solid var(--aod-n-line-soft);
	color: var(--aod-n-ink);
	font-size: var(--aod-fs-sm);
	font-weight: 600;
	text-decoration: none;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
	cursor: pointer;
}
.aod-back-btn:hover,
.aod-back-btn:focus {
	background: var(--aod-n-bg);
	border-color: var(--aod-n-line);
	color: var(--aod-a-text);
	text-decoration: none;
}
.aod-back-btn .aod-i--back {
	transition: transform .15s ease;
	flex-shrink: 0;
}
.aod-back-btn:hover .aod-i--back {
	transform: translateX(-3px);
}
/* RTL : la flèche pointe vers la droite et s'anime vers la droite */
[dir="rtl"] .aod-back-btn .aod-i--back,
body.rtl .aod-back-btn .aod-i--back {
	transform: scaleX(-1);
}
[dir="rtl"] .aod-back-btn:hover .aod-i--back,
body.rtl .aod-back-btn:hover .aod-i--back {
	transform: scaleX(-1) translateX(-3px);
}
@media (max-width: 780px) {
	.aod-back-btn {
		min-height: 44px;
		padding: 10px 18px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.aod-back-btn,
	.aod-back-btn .aod-i--back {
		transition: none;
	}
}

/* ==========================================================================
   Recherche Topbar & Live Search Instantané (.aod-topbar-search & .aod-search-modal)
   ========================================================================== */

/* 1. Élément de menu navigation (Desktop) */
.menu-item-aod-search {
	display: inline-flex !important;
	align-items: center !important;
	padding-inline: 0.5rem !important;
	position: relative !important;
}

.aod-topbar-search {
	position: relative;
	width: 220px;
	transition: width 0.22s cubic-bezier(0.2, 0.9, 0.3, 1);
}

.aod-topbar-search:focus-within {
	width: 300px;
}

.aod-topbar-search__form {
	margin: 0;
	position: relative;
}

.aod-topbar-search__field {
	position: relative;
	display: flex;
	align-items: center;
	background: var(--aod-n-bg-sub);
	border: 1px solid var(--aod-n-line-soft);
	border-radius: 9999px;
	padding-inline-start: 0.75rem;
	padding-inline-end: 0.625rem;
	height: 38px;
	transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.aod-topbar-search__field:hover {
	border-color: var(--aod-n-line);
}

.aod-topbar-search:focus-within .aod-topbar-search__field {
	background: var(--aod-n-bg);
	border-color: var(--aod-a);
	box-shadow: 0 0 0 3px var(--aod-a-wash), 0 4px 12px rgba(var(--aod-n-shadow-rgb), 0.08);
}

.aod-topbar-search__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--aod-n-muted);
	margin-inline-end: 0.5rem;
	flex-shrink: 0;
	transition: color 0.15s ease;
}

.aod-topbar-search:focus-within .aod-topbar-search__icon {
	color: var(--aod-a);
}

.aod-topbar-search__input,
input.aod-topbar-search__input[type="search"] {
	border: none !important;
	outline: none !important;
	background: transparent !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
	height: 100% !important;
	width: 100% !important;
	min-height: 0 !important;
	font-size: var(--aod-fs-sm) !important;
	color: var(--aod-n-text) !important;
}

.aod-topbar-search__input::placeholder {
	color: var(--aod-n-muted);
	font-size: var(--aod-fs-xs);
	opacity: 0.85;
}

.aod-topbar-search__clear,
button.aod-topbar-search__clear {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px !important;
	height: 20px !important;
	min-height: 0 !important;
	padding: 0 !important;
	border: none !important;
	border-radius: 50% !important;
	background: var(--aod-n-line-soft) !important;
	color: var(--aod-n-muted) !important;
	font-size: var(--aod-fs-xs) !important;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	flex-shrink: 0;
	margin-inline-end: 0.35rem;
	transition: background-color 0.12s ease, color 0.12s ease;
}

.aod-topbar-search__clear:hover,
button.aod-topbar-search__clear:hover {
	background: var(--aod-n-line) !important;
	color: var(--aod-n-text) !important;
}

.aod-topbar-search__kbd {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 20px;
	padding-inline: 5px;
	font-family: inherit;
	font-size: var(--aod-fs-2xs);
	font-weight: 700;
	color: var(--aod-n-muted);
	background: var(--aod-n-bg);
	border: 1px solid var(--aod-n-line-soft);
	border-radius: 4px;
	user-select: none;
	pointer-events: none;
	flex-shrink: 0;
}

.aod-topbar-search:focus-within .aod-topbar-search__kbd {
	display: none;
}

/* 2. Panneau déroulant flottant des résultats (Desktop) */
.aod-topbar-search__dropdown {
	position: absolute;
	top: calc(100% + 8px);
	inset-inline-end: 0;
	width: 360px;
	max-height: 460px;
	overflow-y: auto;
	background: var(--aod-n-bg);
	border: 1px solid var(--aod-n-line-soft);
	border-radius: 14px;
	box-shadow: 0 12px 32px rgba(var(--aod-n-shadow-rgb), 0.12), 0 2px 6px rgba(var(--aod-n-shadow-rgb), 0.04);
	z-index: 1000;
	padding: 0.75rem;
	animation: aod-search-fade-in 0.18s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes aod-search-fade-in {
	from {
		opacity: 0;
		transform: translateY(-6px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Réinitialisation de la hauteur de ligne héritée du menu de thème */
.aod-topbar-search,
.aod-topbar-search__dropdown,
.aod-search-modal {
	line-height: 1.4 !important;
}

.aod-topbar-search a,
.aod-search-modal a {
	line-height: normal !important;
}

/* Rayons populaires / Suggestions rapides */
.aod-topbar-search__quick-head,
.aod-search-modal__quick-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-block-end: 0.5rem;
}

.aod-topbar-search__quick-title,
.aod-search-modal__quick-title {
	font-size: var(--aod-fs-xs);
	font-weight: 700;
	color: var(--aod-n-muted);
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.aod-topbar-search__quick-pills,
.aod-search-modal__quick-pills {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 0.5rem !important;
	margin-block-start: 0.25rem !important;
}

.aod-topbar-search__quick-pill,
.aod-search-modal__quick-pill,
.main-header-menu .aod-topbar-search__quick-pill {
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.4rem !important;
	height: 30px !important;
	padding-inline: 0.75rem !important;
	padding-block: 0 !important;
	line-height: 1 !important;
	border-radius: 9999px !important;
	background: var(--aod-n-bg-sub) !important;
	border: 1px solid var(--aod-n-line-soft) !important;
	color: var(--aod-n-text) !important;
	font-size: var(--aod-fs-xs) !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	box-shadow: 0 1px 2px rgba(var(--aod-n-shadow-rgb), 0.04) !important;
	transition: all 0.15s cubic-bezier(0.16, 1, 0.3, 1) !important;
	white-space: nowrap !important;
}

.aod-topbar-search__quick-pill:hover,
.aod-search-modal__quick-pill:hover,
.main-header-menu .aod-topbar-search__quick-pill:hover {
	background: var(--aod-a-wash) !important;
	border-color: var(--aod-a) !important;
	color: var(--aod-a-text) !important;
	transform: translateY(-1px) !important;
	box-shadow: 0 2px 6px rgba(var(--aod-n-shadow-rgb), 0.08) !important;
}

.aod-search-pill-count {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: var(--aod-fs-2xs) !important;
	font-weight: 700 !important;
	color: var(--aod-n-muted) !important;
	background: var(--aod-n-bg) !important;
	border-radius: 9999px !important;
	padding-inline: 0.35rem !important;
	padding-block: 0.1rem !important;
	line-height: 1 !important;
}
/* Indicateur de chargement */
.aod-search-loading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.625rem;
	padding: 1.5rem 1rem;
	font-size: var(--aod-fs-sm);
	color: var(--aod-n-muted);
}

.aod-search-spinner {
	width: 18px;
	height: 18px;
	border: 2px solid var(--aod-n-line-soft);
	border-top-color: var(--aod-a);
	border-radius: 50%;
	animation: aod-search-spin 0.6s linear infinite;
}

@keyframes aod-search-spin {
	to { transform: rotate(360deg); }
}

/* Liste des résultats */
.aod-search-list {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.aod-search-item {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 10px;
	transition: background-color 0.12s ease;
}

.aod-search-item:hover,
.aod-search-item.is-selected {
	background: var(--aod-a-wash);
}

.aod-search-item__link {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.5rem;
	text-decoration: none !important;
	color: inherit !important;
}

.aod-search-item__media {
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	border-radius: 8px;
	overflow: hidden;
	background: var(--aod-n-bg-sub);
	border: 1px solid var(--aod-n-line-soft);
	display: flex;
	align-items: center;
	justify-content: center;
}

.aod-search-item__thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.aod-search-item__monogram {
	font-size: var(--aod-fs-base);
	font-weight: 800;
	color: var(--aod-n-muted);
}

.aod-search-item__content {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}

.aod-search-item__title {
	font-size: var(--aod-fs-sm);
	font-weight: 600;
	color: var(--aod-n-ink);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.aod-search-highlight {
	background: var(--aod-a-wash);
	color: var(--aod-a-text);
	font-weight: 700;
	border-radius: 2px;
	padding-inline: 2px;
}

.aod-search-item__meta {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: var(--aod-fs-2xs);
}

.aod-search-item__category {
	color: var(--aod-n-muted);
	font-weight: 500;
}

.aod-search-item__stock {
	font-weight: 600;
}

.aod-search-item__stock--in {
	color: var(--aod-n-ok);
}

.aod-search-item__stock--out {
	color: var(--aod-n-bad);
}

.aod-search-item__price {
	flex-shrink: 0;
	font-size: var(--aod-fs-xs);
	font-weight: 700;
	color: var(--aod-n-ink);
	text-align: end;
}

/* Pied de liste : voir tous les résultats */
.aod-topbar-search__footer,
.aod-search-modal__footer {
	margin-block-start: 0.5rem;
	padding-block-start: 0.5rem;
	border-top: 1px solid var(--aod-n-line-soft);
}

.aod-topbar-search__view-all,
.aod-search-modal__view-all {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.5rem 0.625rem;
	border-radius: 8px;
	background: var(--aod-n-bg-sub);
	color: var(--aod-n-text);
	font-size: var(--aod-fs-xs);
	font-weight: 700;
	text-decoration: none !important;
	transition: background-color 0.12s ease, color 0.12s ease;
}

.aod-topbar-search__view-all:hover,
.aod-search-modal__view-all:hover {
	background: var(--aod-a);
	color: var(--aod-a-ink);
}

.aod-search-arrow {
	transition: transform 0.15s ease;
}

.aod-topbar-search__view-all:hover .aod-search-arrow,
.aod-search-modal__view-all:hover .aod-search-arrow {
	transform: translateX(3px);
}

[dir="rtl"] .aod-topbar-search__view-all:hover .aod-search-arrow,
[dir="rtl"] .aod-search-modal__view-all:hover .aod-search-arrow {
	transform: scaleX(-1) translateX(3px);
}

/* État vide */
.aod-search-empty {
	padding: 1.5rem 1rem;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.35rem;
}

.aod-search-empty__icon {
	color: var(--aod-n-muted);
	opacity: 0.6;
	margin-block-end: 0.25rem;
}

.aod-search-empty__title {
	font-size: var(--aod-fs-sm);
	font-weight: 700;
	color: var(--aod-n-ink);
	margin: 0;
}

.aod-search-empty__hint {
	font-size: var(--aod-fs-xs);
	color: var(--aod-n-muted);
	margin: 0;
}

/* 3. Déclencheur Mobile dans l'en-tête (Topbar) */
.aod-mobile-search-trigger,
button.aod-mobile-search-trigger {
	display: none;
	align-items: center;
	justify-content: center;
	width: 44px !important;
	height: 44px !important;
	min-height: 44px !important;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	border: none !important;
	color: var(--aod-n-ink) !important;
	cursor: pointer;
	border-radius: 10px;
	transition: background-color 0.12s ease, transform 0.12s ease;
}

.aod-mobile-search-trigger:hover,
button.aod-mobile-search-trigger:hover {
	background: var(--aod-n-bg-sub) !important;
}

.aod-mobile-search-trigger:active,
button.aod-mobile-search-trigger:active {
	transform: scale(0.94);
}

/* 4. Modale de recherche mobile (Overlay plein écran / Top-sheet) */
.aod-search-modal {
	position: fixed;
	inset: 0;
	z-index: 100050;
	display: flex;
	flex-direction: column;
	pointer-events: none;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.22s cubic-bezier(0.2, 0.9, 0.3, 1), visibility 0.22s ease;
}

.aod-search-modal.is-open {
	pointer-events: auto;
	opacity: 1;
	visibility: visible;
}

body.aod-search-locked {
	overflow: hidden !important;
}

.aod-search-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(var(--aod-n-shadow-rgb), 0.45);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.aod-search-modal__sheet {
	position: relative;
	z-index: 1;
	width: 100%;
	max-height: 85vh;
	background: var(--aod-n-bg);
	border-bottom: 1px solid var(--aod-n-line-soft);
	border-radius: 0 0 20px 20px;
	box-shadow: 0 16px 40px rgba(var(--aod-n-shadow-rgb), 0.16);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	transform: translateY(-20px);
	transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.aod-search-modal.is-open .aod-search-modal__sheet {
	transform: translateY(0);
}

.aod-search-modal__header {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	padding: 0.875rem 1rem;
	border-bottom: 1px solid var(--aod-n-line-soft);
}

.aod-search-modal__form {
	flex: 1 1 auto;
	margin: 0;
}

.aod-search-modal__field {
	display: flex;
	align-items: center;
	height: 44px;
	background: var(--aod-n-bg-sub);
	border: 1px solid var(--aod-n-line-soft);
	border-radius: 9999px;
	padding-inline-start: 0.875rem;
	padding-inline-end: 0.75rem;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.aod-search-modal__field:focus-within {
	background: var(--aod-n-bg);
	border-color: var(--aod-a);
	box-shadow: 0 0 0 3px var(--aod-a-wash);
}

.aod-search-modal__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--aod-n-muted);
	margin-inline-end: 0.5rem;
	flex-shrink: 0;
}

.aod-search-modal__input,
input.aod-search-modal__input[type="search"] {
	flex: 1 1 auto;
	border: none !important;
	outline: none !important;
	background: transparent !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
	height: 100% !important;
	min-height: 44px !important;
	font-size: var(--aod-fs-base) !important;
	color: var(--aod-n-text) !important;
}

.aod-search-modal__input::placeholder {
	color: var(--aod-n-muted);
	font-size: var(--aod-fs-sm);
}

.aod-search-modal__clear,
button.aod-search-modal__clear {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px !important;
	height: 24px !important;
	min-height: 0 !important;
	padding: 0 !important;
	border: none !important;
	border-radius: 50% !important;
	background: var(--aod-n-line-soft) !important;
	color: var(--aod-n-muted) !important;
	font-size: var(--aod-fs-sm) !important;
	font-weight: 700;
	cursor: pointer;
	flex-shrink: 0;
}

.aod-search-modal__close,
button.aod-search-modal__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px !important;
	height: 44px !important;
	min-height: 44px !important;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	border: none !important;
	color: var(--aod-n-ink) !important;
	font-size: var(--aod-fs-2xl) !important;
	line-height: 1 !important;
	cursor: pointer;
	border-radius: 10px;
	flex-shrink: 0;
}

.aod-search-modal__close:hover,
button.aod-search-modal__close:hover {
	background: var(--aod-n-bg-sub) !important;
}

.aod-search-modal__body {
	flex: 1 1 auto;
	overflow-y: auto;
	padding: 1rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.aod-search-modal__body .aod-search-item__link {
	padding: 0.625rem 0.5rem;
}

.aod-search-modal__footer {
	padding: 0.875rem 1rem;
}

.aod-search-modal__view-all {
	padding: 0.75rem 1rem;
	font-size: var(--aod-fs-sm);
}

/* Adaptations Mobile (< 781px) */
@media (max-width: 780px) {
	.aod-mobile-search-trigger,
	button.aod-mobile-search-trigger {
		display: inline-flex !important;
	}

	.menu-item-aod-search {
		width: 100% !important;
		padding: 0.5rem 1rem !important;
	}

	.menu-item-aod-search .aod-topbar-search {
		width: 100% !important;
	}

	.menu-item-aod-search .aod-topbar-search__dropdown {
		display: none !important;
	}
}

/* ─── Showrooms & Présentation Entreprise (Boutiques Béjaïa) ─────────── */
.aod-showrooms {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--aod-n-line-soft);
}

.aod-showrooms__title {
	font-size: var(--aod-fs-xl) !important;
	font-weight: 700;
	color: var(--aod-n-ink);
	margin-bottom: 1rem;
}

.aod-home__section-desc,
.aod-home__about-lead {
	font-size: var(--aod-fs-md);
	color: var(--aod-n-muted);
	line-height: 1.6;
	margin-bottom: 2rem;
	max-width: 820px;
}

.aod-showrooms__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 1.5rem;
	margin-bottom: 2rem;
}

.aod-showroom-card {
	background: var(--aod-n-bg);
	border: 1px solid var(--aod-a-line);
	border-radius: 16px;
	padding: 1.5rem;
	box-shadow: 0 4px 20px rgba(var(--aod-n-shadow-rgb), 0.06);
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.aod-showroom-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 30px rgba(var(--aod-a-rgb), 0.16);
	border-color: var(--aod-a);
}

.aod-showroom-card__header {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.5rem;
}

[dir="rtl"] .aod-showroom-card__header {
	align-items: flex-start;
}

.aod-showroom-card__badge {
	display: inline-block;
	font-size: var(--aod-fs-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--aod-a-text);
	background: var(--aod-a-wash);
	border: 1px solid var(--aod-a-line);
	padding: 0.25rem 0.75rem;
	border-radius: 9999px;
}

.aod-showroom-card__name {
	font-size: var(--aod-fs-lg) !important;
	font-weight: 700;
	color: var(--aod-n-ink);
	margin: 0;
}

.aod-showroom-card__addr {
	font-size: var(--aod-fs-sm);
	color: var(--aod-n-muted);
	line-height: 1.5;
	margin: 0;
}

.aod-showroom-card__hours {
	font-size: var(--aod-fs-sm);
	color: var(--aod-n-ink);
	background: var(--aod-n-bg-sub);
	padding: 0.5rem 0.75rem;
	border-radius: 8px;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.aod-showroom-card__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 44px;
	padding: 0.65rem 1.25rem;
	background: var(--aod-a);
	color: var(--aod-a-ink) !important;
	font-size: var(--aod-fs-sm);
	font-weight: 700;
	border-radius: 10px;
	text-decoration: none !important;
	margin-top: auto;
	box-shadow: 0 2px 8px rgba(var(--aod-a-rgb), 0.2);
	transition: background-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

.aod-showroom-card__btn:hover,
.aod-showroom-card__btn:focus-visible {
	background: var(--aod-a-strong);
	color: var(--aod-a-ink) !important;
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(var(--aod-a-rgb), 0.35);
}

.aod-contact__phone-link {
	font-size: var(--aod-fs-md);
	color: var(--aod-a-text) !important;
	text-decoration: none;
}

.aod-contact__phone-link:hover {
	text-decoration: underline;
}

/* ─── Piliers d'Excellence & Engagements ─── */
.aod-pillars-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1.25rem;
	margin: 2rem 0;
}

.aod-pillar-card {
	background: var(--aod-n-bg);
	border: 1px solid var(--aod-n-line-soft);
	border-radius: 14px;
	padding: 1.5rem;
	text-align: center;
	box-shadow: 0 4px 16px rgba(var(--aod-n-shadow-rgb), 0.04);
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.aod-pillar-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 24px rgba(var(--aod-a-rgb), 0.12);
	border-color: var(--aod-a-line);
}

.aod-pillar-card__icon {
	font-size: var(--aod-fs-3xl);
	display: inline-block;
	margin-bottom: 0.75rem;
}

.aod-pillar-card__title {
	font-size: var(--aod-fs-md) !important;
	font-weight: 700;
	color: var(--aod-n-ink);
	margin: 0 0 0.5rem 0;
}

.aod-pillar-card__desc {
	font-size: var(--aod-fs-sm);
	color: var(--aod-n-muted);
	line-height: 1.5;
	margin: 0;
}

/* ─── Finitions de Carte Produit & Reflets Dorés ─── */
body.woocommerce ul.products li.product,
body ul.products li.product {
	transition: transform 0.25s ease, box-shadow 0.25s ease;
	border-radius: 12px;
	overflow: hidden;
}

body.woocommerce ul.products li.product:hover,
body ul.products li.product:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 28px rgba(var(--aod-n-shadow-rgb), 0.08), 0 0 0 1px var(--aod-a-line);
}

.aod-home__section {
	margin-top: 3rem;
	margin-bottom: 3rem;
}
