/*
 * Finitions Autodistri. Les couleurs et polices se règlent dans
 * Elementor > Réglages du site ; les classes ci-dessous s'ajoutent à un
 * élément via Avancé > Classes CSS.
 *
 *   ad-carte         carte blanche arrondie avec ombre, qui se soulève au survol
 *   ad-logo-marque   logo en gris, en couleur au survol
 *   ad-etape         pastille ronde numérotée
 *   ad-halo          halo caramel décoratif en haut à droite
 *   ad-icone-sombre  icône blanche affichée en couleur café
 *
 * Animations (désactivées si le visiteur a demandé moins d'animations) :
 *   ad-hero-3d        bandeau avec grains de café en 3D et entrée animée
 *   ad-hero-intro     élément du bandeau qui apparaît après le titre
 *   ad-scene-3d       visuel incliné en 3D qui se redresse au défilement
 *   ad-puce           étiquette flottante du visuel (parallaxe)
 *   ad-titre-lignes   titre révélé mot par mot en 3D
 *   ad-apparition     élément qui apparaît en glissant vers le haut
 *   ad-cascade        enfants d'un conteneur qui apparaissent l'un après l'autre
 *   ad-defilant       conteneur dont le contenu défile en boucle (logos)
 *   ad-remplissage    texte qui se remplit mot à mot au défilement
 *   ad-eventail       grille de cartes distribuées en éventail 3D
 *   ad-scene-pile     section épinglée ; .ad-pile = cartes qui se retournent, .ad-etape-item = étapes surlignées
 *   ad-depot          section « principe du dépôt » : .ad-depot-nav = étapes, .ad-depot-piste = diapositives
 *   ad-horizontal     section épinglée ; .ad-piste = rangée qui défile horizontalement
 *   ad-rotation-3d    image qui pivote en 3D à son arrivée
 *   ad-compteur       titre chiffré qui compte jusqu'à sa valeur
 *   ad-inclinaison    carte qui s'incline en 3D sous la souris
 *   ad-lueur          bloc qui s'agrandit, avec halo qui suit la souris
 */

html { scroll-behavior: smooth; }

/* En-tête fixe */
#site-header.dynamic-header {
	position: sticky;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid rgb(83 50 28 / 0.1);
	padding-block: 0.95rem 0.85rem;
}
.admin-bar #site-header.dynamic-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar #site-header.dynamic-header { top: 0; } }

/* ==========================================================================
   Menu de l'en-tête — ordinateur
   Tous les liens du premier niveau partagent la même forme (pastille de 42 px)
   et le même surlignage ; la flèche des sous-menus fait partie du lien.
   ========================================================================== */
#site-header {
	--ad-menu-h: 42px;
	--ad-menu-survol: rgb(235 220 198 / 0.75); /* latte */
}
#site-header .header-inner {
	flex-wrap: nowrap;
	align-items: center;
	gap: 1.5rem;
}
#site-header .site-branding { flex: none; }
#site-header .site-navigation { margin-inline-start: auto; }
#site-header .site-navigation ul.menu {
	flex-wrap: nowrap;
	align-items: center;
	gap: 10px; /* espace entre les éléments du menu */
	margin: 0;
}
#site-header .site-navigation ul.menu > li {
	align-items: center;
	padding: 0 !important;
}
/* Flèche d'origine de Hello : placée hors du lien, elle décalait la zone de survol. */
#site-header .site-navigation ul.menu li.menu-item-has-children::after {
	content: none !important;
	display: none !important;
}

/* Liens de premier niveau */
#site-header .site-navigation ul.menu > li > a {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	height: var(--ad-menu-h);
	padding: 0 15px;
	border-radius: 999px;
	color: var(--e-global-color-primary, #2B1A10);
	font-size: 0.95rem;
	font-weight: 500;
	line-height: 1;
	white-space: nowrap;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}
#site-header .site-navigation ul.menu > li:not(.menu-devis) > a:hover,
#site-header .site-navigation ul.menu > li.menu-item-has-children:hover > a,
#site-header .site-navigation ul.menu > li.menu-item-has-children:focus-within > a {
	background-color: var(--ad-menu-survol);
	color: var(--e-global-color-primary, #2B1A10);
}
/* Rubrique de la page en cours */
#site-header .site-navigation ul.menu > li:is(.current-menu-item, .current-menu-parent, .current-menu-ancestor):not(.menu-devis):not(.menu-panier) > a {
	color: var(--e-global-color-caramelf, #A95A17);
	font-weight: 600;
}

/* Flèche des rubriques à sous-menu, dans le lien, qui pivote à l'ouverture */
#site-header .site-navigation ul.menu > li.menu-item-has-children > a::after {
	content: "";
	width: 6px;
	height: 6px;
	border-right: 1.8px solid currentColor;
	border-bottom: 1.8px solid currentColor;
	opacity: 0.75;
	transform: translateY(-2px) rotate(45deg);
	transition: transform 0.25s ease;
}
#site-header .site-navigation ul.menu > li.menu-item-has-children:hover > a::after,
#site-header .site-navigation ul.menu > li.menu-item-has-children:focus-within > a::after {
	transform: translateY(1px) rotate(225deg);
}

/* Panneau des sous-menus */
#site-header .site-navigation ul.menu li ul.sub-menu {
	display: block;
	visibility: hidden;
	opacity: 0;
	transform: translateY(8px);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s;
	inset-block-start: calc(100% + 10px);
	inset-inline-start: 0;
	min-width: 250px;
	margin: 0;
	padding: 8px;
	background: var(--e-global-color-blanc, #fff);
	border: 1px solid rgb(83 50 28 / 0.1);
	border-radius: 16px;
	box-shadow: 0 24px 48px -20px rgb(43 26 16 / 0.4);
	z-index: 20;
}
/* Pont invisible : la souris peut descendre vers le panneau sans qu'il se referme. */
#site-header .site-navigation ul.menu li ul.sub-menu::before {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-start: -12px;
	height: 12px;
}
#site-header .site-navigation ul.menu li:hover > ul.sub-menu,
#site-header .site-navigation ul.menu li:focus-within > ul.sub-menu {
	visibility: visible;
	opacity: 1;
	transform: none;
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s;
}
#site-header .site-navigation ul.menu li ul.sub-menu li {
	display: block;
	border: 0 !important;
}
#site-header .site-navigation ul.menu li ul.sub-menu li a {
	display: flex;
	align-items: center;
	padding: 11px 14px;
	border-radius: 10px;
	color: var(--e-global-color-primary, #2B1A10);
	font-size: 0.95rem;
	font-weight: 500;
	line-height: 1.3;
	white-space: nowrap;
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease;
}
/* Même surlignage qu'au premier niveau ; la page en cours se reconnaît à son texte caramel. */
#site-header .site-navigation ul.menu li ul.sub-menu li a:hover,
#site-header .site-navigation ul.menu li ul.sub-menu li a:focus-visible {
	background-color: var(--ad-menu-survol);
	color: var(--e-global-color-primary, #2B1A10);
}
#site-header .site-navigation ul.menu li ul.sub-menu li.current-menu-item > a {
	color: var(--e-global-color-caramelf, #A95A17);
	font-weight: 600;
}
#site-header .site-navigation ul.menu li ul.sub-menu li.current-menu-item > a::before {
	content: "";
	width: 6px;
	height: 6px;
	margin-inline-end: 10px;
	border-radius: 50%;
	background: currentColor;
	flex: none;
}

/* Panier, Mon compte et Rechercher : même pastille, en icône (le libellé reste lu par les
   lecteurs d'écran). Rechercher et Mon compte sont ajoutés par inc/boutique-page.php. */
#site-header {
	--ad-ico-panier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.7 13.4a2 2 0 0 0 2 1.6h9.7a2 2 0 0 0 2-1.6L23 6H6'/%3E%3C/svg%3E");
	--ad-ico-compte: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E");
	--ad-ico-loupe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");
}
#site-header li:is(.menu-panier, .menu-compte) > a {
	position: relative;
	font-size: 0 !important;
	gap: 0 !important;
}
#site-header .site-navigation li:is(.menu-panier, .menu-compte) > a {
	justify-content: center;
	width: var(--ad-menu-h);
	padding: 0 !important;
}
#site-header li:is(.menu-panier, .menu-compte) > a::before,
#site-header .ad-recherche-bouton::before {
	content: "";
	flex: none;
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: var(--ad-ico-panier) center / contain no-repeat;
	mask: var(--ad-ico-panier) center / contain no-repeat;
}
#site-header li.menu-compte > a::before { -webkit-mask-image: var(--ad-ico-compte); mask-image: var(--ad-ico-compte); }
#site-header .ad-recherche-bouton::before { -webkit-mask-image: var(--ad-ico-loupe); mask-image: var(--ad-ico-loupe); }
/* Les icônes se suivent de plus près que les rubriques. */
#site-header .site-navigation ul.menu > li:is(.menu-recherche, .menu-compte) + li:is(.menu-compte, .menu-panier) { margin-inline-start: -6px; }

/* Pastille du nombre d'articles sur le panier (ajoutée et mise à jour par inc/boutique-page.php) */
#site-header .site-navigation-toggle { position: relative; }
#site-header li.menu-panier > a .ad-pastille-panier,
#site-header .site-navigation-toggle .ad-pastille-panier {
	position: absolute;
	top: 1px;
	right: -2px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	box-sizing: border-box;
	border-radius: 999px;
	background: var(--e-global-color-accent, #D47B2C);
	box-shadow: 0 0 0 2px var(--e-global-color-creme, #FBF5EC);
	color: var(--e-global-color-primary, #2B1A10);
	font-size: 11px;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
	pointer-events: none;
}
#site-header .site-navigation-dropdown li.menu-panier > a .ad-pastille-panier { position: static; margin-inline-start: 2px; box-shadow: none; }
.ad-pastille-panier[hidden] { display: none !important; }
.ad-pastille-pop { animation: ad-pastille-pop 0.45s ease; }
@keyframes ad-pastille-pop { 40% { transform: scale(1.35); } }
@media (prefers-reduced-motion: reduce) { .ad-pastille-pop { animation: none; } }

/* Rechercher : bouton-icône, champ dans un panneau sous l'en-tête, aligné à droite */
#site-header .header-inner { position: relative; }
#site-header li.menu-recherche { position: static; }
#site-header .ad-recherche-bouton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--ad-menu-h);
	height: var(--ad-menu-h);
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--e-global-color-primary, #2B1A10);
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}
#site-header .ad-recherche-bouton:hover,
#site-header .ad-recherche-ouverte .ad-recherche-bouton { background-color: var(--ad-menu-survol); }
#site-header .ad-recherche-bouton:focus-visible { outline: 2px solid var(--e-global-color-accent, #D47B2C); outline-offset: 2px; }
body.ad-entete-transparent #site-header:not(.ad-entete-plein) .ad-recherche-bouton { color: var(--e-global-color-creme, #FBF5EC); }
#site-header .ad-recherche-panneau {
	position: absolute;
	top: calc(100% + 14px);
	right: 0;
	z-index: 30;
	width: min(420px, calc(100vw - 32px));
	padding: 10px;
	background: var(--e-global-color-blanc, #fff);
	border: 1px solid rgb(83 50 28 / 0.1);
	border-radius: 18px;
	box-shadow: 0 24px 48px -20px rgb(43 26 16 / 0.4);
}
#site-header .ad-recherche-panneau[hidden] { display: none; }

/* Formulaire de recherche (en-tête et menu mobile) : champ arrondi, loupe dans le bouton */
.ad-recherche { position: relative; display: flex; align-items: center; margin: 0; }
.ad-recherche .search-field {
	width: 100%;
	min-height: 48px;
	padding: 0 56px 0 18px;
	border: 1.5px solid rgb(83 50 28 / 0.2);
	border-radius: 999px;
	background: var(--e-global-color-creme, #FBF5EC);
	color: var(--e-global-color-primary, #2B1A10);
	font: inherit;
	font-size: 1rem;
}
.ad-recherche .search-field::placeholder { color: var(--e-global-color-doux, #6B5646); opacity: 0.8; }
.ad-recherche .search-field:focus { border-color: var(--e-global-color-accent, #D47B2C); outline: 2px solid rgb(212 123 44 / 0.25); outline-offset: 0; background: #fff; }
.ad-recherche .search-field::-webkit-search-cancel-button { cursor: pointer; }
#site-header .ad-recherche-envoyer {
	position: absolute;
	right: 5px;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--e-global-color-accent, #D47B2C);
	color: var(--e-global-color-primary, #2B1A10);
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}
#site-header .ad-recherche-envoyer:hover, #site-header .ad-recherche-envoyer:focus-visible { background: var(--e-global-color-primary, #2B1A10); color: var(--e-global-color-creme, #FBF5EC); }
#site-header .ad-recherche-envoyer svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }

/* Bouton « Devis gratuit » (classe CSS du lien de menu : menu-devis) */
#site-header .site-navigation li.menu-devis { margin-inline-start: 8px; }
#site-header .site-navigation ul.menu > li.menu-devis > a {
	padding: 0 22px;
	background-color: var(--e-global-color-accent, #D47B2C);
	color: var(--e-global-color-primary, #2B1A10);
	font-weight: 600;
}
#site-header .site-navigation ul.menu > li.menu-devis > a:hover,
#site-header .site-navigation ul.menu > li.menu-devis > a:focus-visible {
	background-color: var(--e-global-color-primary, #2B1A10);
	color: var(--e-global-color-creme, #FBF5EC);
}

/* Liens un peu plus serrés sur les écrans moyens */
@media (max-width: 1200px) {
	#site-header .site-navigation ul.menu { gap: 8px; }
	#site-header .site-navigation ul.menu > li:not(.menu-panier):not(.menu-devis) > a { padding: 0 11px; }
	#site-header .site-navigation li.menu-devis { margin-inline-start: 4px; }
}
/* Petits ordinateurs (jusqu'à 1100 px) : menu resserré pour loger Rechercher et Mon compte */
@media (max-width: 1100px) {
	#site-header .header-inner { gap: 1rem; }
	#site-header .site-navigation ul.menu { gap: 4px; }
	#site-header .site-navigation ul.menu > li:not(.menu-panier):not(.menu-devis):not(.menu-compte) > a { padding: 0 10px; }
	#site-header .site-navigation ul.menu > li.menu-devis > a { padding: 0 18px; }
	#site-header .site-navigation ul.menu > li:is(.menu-recherche, .menu-compte) + li:is(.menu-compte, .menu-panier) { margin-inline-start: -2px; }
}

/* ==========================================================================
   En-tête transparent superposé au bandeau
   Actif sur les pages qui commencent par un bandeau foncé (classe ajoutée par
   functions.php) ; l'en-tête redevient crème dès qu'on fait défiler la page.
   ========================================================================== */
body.ad-entete-transparent #site-header {
	/* En-tête fixe au-dessus du bandeau : sa hauteur peut varier sans faire bouger la page. */
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	transition: background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, padding 0.3s ease;
}
/* Hauteur de l'en-tête transparent (marges + logo de 66 px), connue dès le premier affichage */
body.ad-entete-transparent { --ad-entete-h: 106px; }
/* Deux logos dans l'en-tête : le clair tant qu'il est transparent, l'original ensuite */
#site-header .ad-logo-clair { display: none; }
body.ad-entete-transparent #site-header:not(.ad-entete-plein) .site-logo .custom-logo { display: none; }
body.ad-entete-transparent #site-header:not(.ad-entete-plein) .site-logo .ad-logo-clair { display: block; }
body.ad-entete-transparent.admin-bar #site-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { body.ad-entete-transparent.admin-bar #site-header { top: 0; } }
/* Le premier bandeau démarre sous l'en-tête : on ajoute seulement la hauteur de l'en-tête.
   (Section « en boîte » : Elementor met déjà la marge réglée sur la zone intérieure.) */
body.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con-boxed:first-child {
	padding-block-start: var(--ad-entete-h) !important;
}
body.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con-full:first-child {
	padding-block-start: calc(var(--padding-top, 0px) + var(--ad-entete-h)) !important;
}
/* État transparent (en haut de page) : plus d'air en haut et en bas */
body.ad-entete-transparent #site-header:not(.ad-entete-plein) {
	padding-block: 1.35rem 1.1rem;
	background-color: transparent !important;
	background-image: none !important;
	border-bottom-color: transparent;
	box-shadow: none;
	--ad-menu-survol: rgb(251 245 236 / 0.14);
}
/* Les sous-menus restent sur fond blanc : ils gardent le surlignage latte habituel. */
#site-header .site-navigation ul.menu li ul.sub-menu { --ad-menu-survol: rgb(235 220 198 / 0.75); }

/* Accueil : le premier bandeau occupe tout l'écran, contenu centré verticalement */
body.home.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con:first-child {
	min-height: 100vh !important;
	min-height: 100svh !important;
}
/* Le bandeau (accueil et pages intérieures .ad-hero-page) s'adapte à la HAUTEUR de l'écran
   (portables, navigateur non plein écran) : sur un grand écran rien ne change, sur un écran
   plus bas tout se réduit en proportion. Pages intérieures : marges, écarts et hauteur
   restent ceux réglés dans Elementor (seule la hauteur de l'en-tête est ajoutée en haut). */
@media (min-width: 1025px) {
	body.home.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con-boxed:first-child > .e-con-inner {
		/* Marges dégressives : elles fondent d'abord quand l'écran est bas (≈ 30 px à 680 px). */
		padding-block: clamp(12px, calc(9vh - 30px), 80px) clamp(12px, calc(9vh - 36px), 96px) !important;
	}
	/* Grand titre du bandeau, plafonné à 3,5rem (56 px) pour tenir sur 2 lignes. Dans le
	   sélecteur, le titre du 2e panneau est un H2 (un seul H1 par page) mais il doit avoir
	   exactement la même taille que le H1. */
	body.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con:first-child:is(body.home *, .ad-hero-page) h1.elementor-heading-title,
	body.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con:first-child:is(body.home *, .ad-hero-page) .ad-bascule-panneau h2.elementor-heading-title {
		font-size: clamp(2.25rem, min(4.7vw, 8.2vh), 3.5rem) !important;
	}
	body.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con:first-child:is(body.home *, .ad-hero-page) h2.elementor-heading-title:not(.ad-bascule-panneau h2) {
		font-size: clamp(1.4rem, min(2.4vw, 4vh), 1.9rem) !important;
	}
	body.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con:first-child:is(body.home *, .ad-hero-page) .elementor-widget-text-editor {
		font-size: clamp(0.98rem, 2.3vh, 1.25rem) !important;
	}
	body.home.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con:first-child .e-con {
		--row-gap: clamp(10px, 2.6vh, 24px);
		--gap: clamp(10px, 2.6vh, 24px) var(--column-gap, 24px);
	}
	body.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con:first-child:is(body.home *, .ad-hero-page) {
		--row-gap: clamp(16px, 4vh, 40px);
	}
	/* Visuels (photo des machines) et cartes du bandeau « double entrée » */
	body.home.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con:first-child .ad-scene-3d img {
		max-height: min(62vh, 560px);
		width: auto;
		margin-inline: auto;
	}
	body.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con:first-child:is(body.home *, .ad-hero-page) .ad-carte {
		--padding-top: clamp(20px, 4vh, 44px);
		--padding-bottom: clamp(20px, 4vh, 44px);
	}
}
/* Téléphones : même principe, adapté à la hauteur de l'écran */
@media (max-width: 767px) {
	body.home.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con-boxed:first-child > .e-con-inner {
		padding-block: clamp(12px, 3vh, 40px) clamp(12px, 2vh, 56px) !important;
	}
	body.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con:first-child:is(body.home *, .ad-hero-page) h1.elementor-heading-title,
	body.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con:first-child:is(body.home *, .ad-hero-page) .ad-bascule-panneau h2.elementor-heading-title {
		font-size: clamp(1.9rem, 5.6vh, 2.6rem) !important;
	}
	body.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con:first-child:is(body.home *, .ad-hero-page) .elementor-widget-text-editor {
		font-size: clamp(0.95rem, 2.1vh, 1.1rem) !important;
	}
	body.home.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con:first-child .e-con {
		--row-gap: clamp(10px, 2vh, 22px);
		--gap: clamp(10px, 2vh, 22px) var(--column-gap, 12px);
	}
}
/* Téléphones peu hauts : la liste d'arguments du bandeau est masquée
   (les mêmes informations figurent juste en dessous, dans « Tout est inclus »). */
@media (max-width: 767px) and (max-height: 760px) {
	body.home.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con:first-child .elementor-widget-icon-list { display: none; }
}
body.home.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con:first-child.ad-hero-double { justify-content: center; }
@media (max-width: 1024px) {
	body.home.ad-entete-transparent [data-elementor-type="wp-page"] > .e-con:first-child { justify-content: center; }
}
/* Pages intérieures : la hauteur (« Hauteur mini », 82 vh / 72 vh sur téléphone), les marges
   et les écarts du bandeau se règlent dans Elementor ; seule la taille du titre s'adapte ici
   à la hauteur de l'écran. */
@media (min-width: 1025px) {
	body.ad-entete-transparent:not(.home) [data-elementor-type="wp-page"] > .e-con.ad-hero-page:first-child h1.elementor-heading-title {
		font-size: clamp(2.25rem, min(4.7vw, 9.4vh), 3.5rem) !important;
	}
}
/* Titres des bandeaux de pages intérieures : lignes équilibrées (pas de mot seul sur la
   dernière ligne). Pas sur l'accueil : la coupure naturelle y donne la bonne phrase
   (« Un distributeur dans vos locaux, / sans investissement. »). */
[data-elementor-type="wp-page"] > .e-con.ad-hero-page:first-child h1.elementor-heading-title { text-wrap: balance; }
/* Expression à ne pas couper dans un titre (« distributeur automatique »), sur ordinateur
   seulement : sur téléphone, elle serait plus large que l'écran. */
@media (min-width: 1025px) {
	.ad-ensemble { white-space: nowrap; }
}
/* Accueil : la colonne s'élargit pour le titre ; le paragraphe garde une largeur de lecture. */
.ad-bascule-panneau > .elementor-widget-text-editor { max-width: 46rem !important; }
@media (max-width: 767px) {
	body.ad-entete-transparent:not(.home) [data-elementor-type="wp-page"] > .e-con.ad-hero-page:first-child h1.elementor-heading-title {
		font-size: clamp(2rem, 5.9vh, 2.5rem) !important;
	}
}
body.ad-entete-transparent #site-header:not(.ad-entete-plein) .site-navigation ul.menu > li:not(.menu-devis) > a {
	color: var(--e-global-color-creme, #FBF5EC);
	text-shadow: 0 1px 12px rgb(0 0 0 / 0.25);
}
body.ad-entete-transparent #site-header:not(.ad-entete-plein) .site-navigation ul.menu > li:not(.menu-devis) > a:hover,
body.ad-entete-transparent #site-header:not(.ad-entete-plein) .site-navigation ul.menu > li.menu-item-has-children:is(:hover, :focus-within) > a {
	background-color: var(--ad-menu-survol);
	color: var(--e-global-color-creme, #FBF5EC);
}
body.ad-entete-transparent #site-header:not(.ad-entete-plein) .site-navigation ul.menu > li:is(.current-menu-item, .current-menu-parent, .current-menu-ancestor):not(.menu-devis):not(.menu-panier) > a {
	color: var(--e-global-color-accent, #D47B2C);
}
body.ad-entete-transparent #site-header:not(.ad-entete-plein) .site-navigation ul.menu > li.menu-devis > a:hover,
body.ad-entete-transparent #site-header:not(.ad-entete-plein) .site-navigation ul.menu > li.menu-devis > a:focus-visible {
	background-color: var(--e-global-color-creme, #FBF5EC);
	color: var(--e-global-color-primary, #2B1A10);
}
body.ad-entete-transparent #site-header:not(.ad-entete-plein) .site-navigation-toggle-holder .site-navigation-toggle {
	background-color: rgb(251 245 236 / 0.16);
	color: var(--e-global-color-creme, #FBF5EC);
}
body.ad-entete-transparent #site-header:not(.ad-entete-plein) .ad-progression { opacity: 0; }
/* État plein (après défilement ou menu mobile ouvert) : fond crème légèrement translucide */
body.ad-entete-transparent #site-header.ad-entete-plein {
	background-color: rgb(251 245 236 / 0.94) !important;
	backdrop-filter: saturate(1.4) blur(10px);
	-webkit-backdrop-filter: saturate(1.4) blur(10px);
}

/* ==========================================================================
   Menu de l'en-tête — mobile et tablette
   ========================================================================== */
#site-header .site-navigation-toggle-holder { padding: 0; }
#site-header .site-navigation-toggle-holder .site-navigation-toggle {
	width: 44px;
	height: 44px;
	padding: 0;
	border-radius: 50%;
	background-color: var(--ad-menu-survol);
	color: var(--e-global-color-primary, #2B1A10);
	transition: background-color 0.2s ease;
}
#site-header .site-navigation-toggle-holder .site-navigation-toggle:hover,
#site-header .site-navigation-toggle-holder .site-navigation-toggle[aria-expanded="true"] {
	background-color: var(--e-global-color-latte, #EBDCC6);
}
#site-header .site-navigation-dropdown { margin-block-start: 0; }
#site-header .site-navigation-dropdown ul.menu {
	max-height: calc(100vh - 90px);
	overflow-y: auto;
	padding: 8px 12px 18px;
	background: var(--e-global-color-creme, #FBF5EC);
	border-bottom: 1px solid rgb(83 50 28 / 0.1);
	box-shadow: 0 28px 40px -28px rgb(43 26 16 / 0.55);
}
#site-header .site-navigation-dropdown ul.menu > li + li { border-top: 1px solid rgb(83 50 28 / 0.08); }
#site-header .site-navigation-dropdown ul.menu li a {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 3px 0;
	padding: 13px 14px;
	border-radius: 12px;
	background: transparent;
	box-shadow: none;
	color: var(--e-global-color-primary, #2B1A10);
	font-size: 1rem;
	font-weight: 500;
	text-decoration: none;
}
#site-header .site-navigation-dropdown ul.menu li a:hover,
#site-header .site-navigation-dropdown ul.menu li a:focus-visible { background-color: var(--ad-menu-survol); }
#site-header .site-navigation-dropdown ul.menu li:is(.current-menu-parent, .current-menu-ancestor) > a { color: var(--e-global-color-caramelf, #A95A17); font-weight: 600; background: transparent; }
#site-header .site-navigation-dropdown ul.menu li.current-menu-item > a {
	color: var(--e-global-color-caramelf, #A95A17);
	font-weight: 600;
}
#site-header .site-navigation-dropdown ul.menu li.current-menu-item:not(.menu-devis):not(.menu-panier) > a::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
	flex: none;
}
/* Sous-pages toujours visibles, en retrait */
#site-header .site-navigation-dropdown ul.menu li ul.sub-menu {
	display: block !important;
	position: static;
	margin: 0 0 6px;
	padding: 0 0 0 14px;
	background: transparent;
	border: 0;
	box-shadow: none;
	transform: none;
	opacity: 1;
	visibility: visible;
}
#site-header .site-navigation-dropdown ul.menu li ul.sub-menu li {
	max-height: none !important;
	transform: none !important;
	border: 0;
}
#site-header .site-navigation-dropdown ul.menu li ul.sub-menu li a {
	margin: 1px 0;
	padding: 10px 14px;
	color: var(--e-global-color-doux, #6B5646);
	font-size: 0.95rem;
}
#site-header .site-navigation-dropdown ul.menu li ul.sub-menu li.current-menu-item > a { color: var(--e-global-color-caramelf, #A95A17); }
/* Panier et Mon compte en ligne avec leur libellé, recherche en tête de menu, Devis en bouton pleine largeur */
#site-header .site-navigation-dropdown li:is(.menu-panier, .menu-compte) > a { font-size: 1rem !important; gap: 10px !important; }
#site-header .site-navigation-dropdown ul.menu > li.menu-recherche-mobile { padding: 10px 2px 12px; }
#site-header .site-navigation-dropdown ul.menu > li.menu-devis { border-top: 0; margin-top: 10px; }
#site-header .site-navigation-dropdown ul.menu > li.menu-devis > a {
	justify-content: center;
	border-radius: 999px;
	background-color: var(--e-global-color-accent, #D47B2C);
	color: var(--e-global-color-primary, #2B1A10);
	font-weight: 600;
}
#site-header .site-navigation-dropdown ul.menu > li.menu-devis > a:hover { background-color: var(--e-global-color-primary, #2B1A10); color: var(--e-global-color-creme, #FBF5EC); }

@media (prefers-reduced-motion: reduce) {
	#site-header .site-navigation ul.menu li ul.sub-menu,
	#site-header .site-navigation ul.menu > li > a::after { transition: none; }
}

/* Cartes */
.ad-carte {
	box-shadow: 0 1px 2px rgb(43 26 16 / 0.04), 0 12px 32px -18px rgb(43 26 16 / 0.25);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.ad-carte:hover {
	transform: translateY(-3px);
	box-shadow: 0 1px 2px rgb(43 26 16 / 0.05), 0 22px 40px -20px rgb(43 26 16 / 0.35);
}
.ad-carte.ad-carte-sombre { box-shadow: none; }
.ad-enveloppe > .ad-carte { flex-grow: 1; }

/* Logos de marques */
.ad-logo-marque img {
	filter: grayscale(1);
	opacity: 0.7;
	transition: filter 0.25s ease, opacity 0.25s ease;
}
.ad-logo-marque:hover img { filter: none; opacity: 1; }

/* Pastille numérotée des étapes */
.ad-etape .elementor-heading-title {
	display: inline-grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: var(--e-global-color-accent, #D47B2C);
}

/* Halo décoratif des bandeaux sombres */
.ad-halo { position: relative; overflow: hidden; }
.ad-halo::after {
	content: "";
	position: absolute;
	right: -120px;
	top: -140px;
	width: 520px;
	height: 520px;
	border-radius: 50%;
	background: radial-gradient(circle, rgb(212 123 44 / 0.28), transparent 65%);
	pointer-events: none;
}
.ad-halo > * { position: relative; z-index: 1; }
/* .ad-halo-suivi : le halo suit la souris, comme dans la CTA finale (animations.js) ;
   il part de la place du halo fixe, qu'il remplace. */
.ad-halo-actif::after { display: none; }
.ad-halo > .ad-halo-curseur {
	position: absolute;
	left: calc(100% - 140px);
	top: 120px;
	z-index: 0;
	width: 560px;
	height: 560px;
	border-radius: 50%;
	background: radial-gradient(circle, rgb(212 123 44 / 0.5) 0%, transparent 65%);
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.ad-icone-sombre img { filter: brightness(0) opacity(0.72); }

/* Liens du pied de page */
.ad-pied a { color: inherit; text-decoration: none; }
.ad-pied a:hover { color: var(--e-global-color-accent, #D47B2C); }

/* Bande des marques en haut du pied de page (.ad-pied-marques) : fine, logos en crème
   monochrome qui défilent ; hauteur des logos selon leur forme pour un poids visuel égal.
   Au survol, le logo reprend ses couleurs sur une pastille crème (sur le chocolat, certains
   logos — Nescafé noir, Drink'n Like bleu-vert foncé — seraient sinon invisibles). */
.ad-pied-marques { border-bottom: 1px solid rgb(235 220 198 / 0.12); --padding-bottom: 14px !important; }
.ad-pied-defilant { flex: 1 1 0; min-width: 0; width: 100%; }
.ad-pied-defilant .ad-piste-defilante { gap: 28px; padding-right: 28px; }
/* La pastille est portée par le widget lui-même (Elementor n'ajoute pas de conteneur autour de l'image). */
.ad-pied-logo {
	width: auto !important;
	line-height: 0;
	padding: 7px 12px;
	border-radius: 10px;
	background-color: transparent;
	transition: background-color 0.3s ease, box-shadow 0.3s ease;
}
.ad-pied-logo img {
	width: auto !important;
	max-width: 120px !important;
	/* Silhouette crème */
	filter: brightness(0) invert(0.96) sepia(0.12);
	opacity: 0.65;
	transition: filter 0.3s ease, opacity 0.3s ease;
}
.ad-pied-logo-gris img { filter: grayscale(1) brightness(1.7) contrast(0.95); }
.ad-pied-logo:hover {
	background-color: var(--e-global-color-creme, #FBF5EC);
	box-shadow: 0 10px 24px -12px rgb(0 0 0 / 0.6);
}
.ad-pied-logo:hover img { filter: none; opacity: 1; }
.ad-pied-logo-l img { height: 20px !important; }
.ad-pied-logo-m img { height: 28px !important; }
.ad-pied-logo-s img { height: 36px !important; }
/* Pas de distraction au moment de payer */
body.woocommerce-cart .ad-pied-marques,
body.woocommerce-checkout .ad-pied-marques { display: none !important; }
@media (max-width: 767px) {
	.ad-pied-defilant .ad-piste-defilante { gap: 20px; padding-right: 20px; }
	.ad-pied-logo-l img { height: 17px !important; }
	.ad-pied-logo-m img { height: 24px !important; }
	.ad-pied-logo-s img { height: 30px !important; }
}

/* ==========================================================================
   Animations
   ========================================================================== */

/* En-tête : ombre une fois défilé, barre de progression de lecture */
#site-header.dynamic-header { transition: box-shadow 0.3s ease, padding 0.3s ease; }
#site-header.ad-defile { box-shadow: 0 10px 30px -18px rgb(43 26 16 / 0.45); padding-block: 0.6rem; }
.ad-progression {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 3px;
	background: linear-gradient(90deg, var(--e-global-color-accent, #D47B2C), var(--e-global-color-caramelf, #A95A17));
	transform: scaleX(0);
	transform-origin: 0 50%;
	pointer-events: none;
}

/* Bandeau caché le temps de son entrée animée (filet de sécurité : .ad-pret) */
.ad-js:not(.ad-pret) .ad-hero-3d .ad-titre-lignes,
.ad-js:not(.ad-pret) .ad-hero-3d .ad-hero-intro,
.ad-js:not(.ad-pret) .ad-hero-3d .ad-scene-3d,
.ad-js:not(.ad-pret) .ad-hero-3d .ad-visuel-plat { opacity: 0; }

/* Scène 3D du bandeau */
.ad-hero-3d { position: relative; overflow: hidden; isolation: isolate; }
.ad-canvas-3d {
	position: absolute;
	inset: 0 0 auto 0;
	width: 100% !important;
	height: calc(100% + var(--ad-debord, 0px)) !important;
	z-index: 0;
	pointer-events: none;
}
/* Grains qui débordent sous le bandeau (animations.js) : coupé sur les côtés, ouvert en bas,
   et passé au-dessus de la section suivante. */
@supports (overflow: clip) {
	.ad-hero-3d.ad-grains-debord { overflow-x: clip !important; overflow-y: visible !important; z-index: 2; }
}
.ad-hero-3d > .e-con-inner, .ad-hero-3d > .e-con { position: relative; z-index: 1; }
.ad-scene-3d { position: relative; transform-style: preserve-3d; }
.ad-scene-3d .elementor-widget-image img {
	filter: drop-shadow(0 50px 60px rgb(0 0 0 / 0.55));
	will-change: transform;
}

/* Bandeau avec vidéo de fond : la vidéo couvre toute la section (pas seulement la
   zone de contenu centrée), le voile passe au-dessus, le texte au-dessus du voile. */
.ad-hero-video > .e-con-inner { position: static !important; }
.ad-hero-video .elementor-background-video-container {
	position: absolute !important;
	inset: 0 !important;
	z-index: 0 !important;
	overflow: hidden;
}
.ad-hero-video::before { z-index: 1 !important; }
.ad-hero-video > .e-con-inner > .e-con { position: relative; z-index: 2; }
.ad-hero-video .elementor-background-video-hosted {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	transform: none !important; /* annule le centrage d'Elementor (translate -50 %), inutile avec object-fit */
	object-fit: cover;
}
@media (max-width: 1024px) {
	/* Sur tablette et mobile, le texte occupe toute la largeur : voile uniforme. */
	.ad-hero-video::before { background-image: none !important; background-color: rgb(43 26 16 / 0.72) !important; opacity: 1 !important; }
}
@media (prefers-reduced-motion: reduce) {
	/* Pas de vidéo en lecture automatique : l'image d'aperçu s'affiche à la place. */
	.ad-hero-video .elementor-background-video-container { display: none; }
}

/* Bandeau de réassurance : éléments côte à côte, passage à la ligne si l'écran rétrécit */
.ad-reassurance > .e-con { width: auto !important; flex: 1 1 210px; }
.ad-reassurance .elementor-widget-text-editor p { margin: 0; }
@media (max-width: 767px) { .ad-reassurance > .e-con { flex-basis: 100%; } }

/* Bandeau de réassurance (preuves) : 5 arguments sur une ligne, en grille sur petits écrans */
.ad-preuves { align-items: stretch !important; }
.ad-preuves > .ad-preuve { width: auto !important; flex: 1 1 200px; }
.ad-preuve .elementor-widget-text-editor p { margin: 0; line-height: 1.45; }
.ad-preuve .elementor-widget-text-editor strong { color: var(--e-global-color-creme, #FBF5EC); font-size: 1.02rem; }
.ad-preuve .elementor-widget-icon { flex: none; width: auto !important; }
.ad-preuve .elementor-icon { position: relative; transition: transform 0.3s ease; }
/* Onde lumineuse diffusée une fois autour de la pastille après son apparition */
.ad-preuve .elementor-icon::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	box-shadow: 0 0 0 0 rgb(212 123 44 / 0.65);
	pointer-events: none;
}
.ad-preuve.ad-onde .elementor-icon::after { animation: ad-onde 0.9s ease-out 1; }
@keyframes ad-onde {
	0%   { box-shadow: 0 0 0 0 rgb(212 123 44 / 0.65); }
	100% { box-shadow: 0 0 0 18px rgb(212 123 44 / 0); }
}.ad-preuve:hover .elementor-icon { transform: rotate(-8deg) scale(1.08); }
/* Fins séparateurs verticaux entre les arguments (grand écran) */
@media (min-width: 1200px) {
	.ad-preuves { flex-wrap: nowrap !important; }
	.ad-preuves > .ad-preuve + .ad-preuve { border-inline-start: 1px solid rgb(235 220 198 / 0.18); padding-inline-start: 24px !important; }
}
@media (max-width: 767px) {
	.ad-preuves { display: grid !important; grid-template-columns: 1fr; gap: 18px !important; }
}
@media (prefers-reduced-motion: reduce) {
	.ad-preuve:hover .elementor-icon { transform: none; }
}

/* Encadré de réassurance dans la boutique (.ad-garanties) : carte blanche, filet caramel en
   haut, pastilles teintées qui se remplissent au survol. Rattache les arguments à la boutique. */
.ad-garanties {
	position: relative;
	overflow: hidden;
	margin-top: 8px;
	border: 1px solid rgb(83 50 28 / 0.1);
	box-shadow: 0 1px 2px rgb(43 26 16 / 0.04), 0 18px 44px -28px rgb(43 26 16 / 0.3);
}
.ad-garanties::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 3px;
	background: linear-gradient(90deg, var(--e-global-color-accent, #D47B2C), var(--e-global-color-caramelf, #A95A17) 60%, rgb(169 90 23 / 0));
}
.ad-garanties::after {
	content: "";
	position: absolute;
	right: -140px;
	top: -180px;
	width: 420px;
	height: 420px;
	border-radius: 50%;
	background: radial-gradient(circle, rgb(212 123 44 / 0.1), transparent 65%);
	pointer-events: none;
}
.ad-garanties > .elementor-element { position: relative; z-index: 1; }
/* Surtitre suivi d'un filet qui occupe le reste de la ligne */
.ad-garanties-titre .elementor-heading-title { display: flex; align-items: center; gap: 14px; margin: 0; }
.ad-garanties-titre .elementor-heading-title::after { content: ""; flex: 1; height: 1px; background: rgb(83 50 28 / 0.12); }
.ad-garanties .ad-preuve .elementor-widget-text-editor strong { color: var(--e-global-color-primary, #2B1A10); }
/* L'icône reste toujours à gauche du texte, même quand le titre est long. */
.ad-garanties .ad-preuve { flex-wrap: nowrap !important; }
.ad-garanties .ad-preuve .elementor-widget-text-editor { flex: 1 1 auto; min-width: 0; }
.ad-garanties .elementor-view-stacked .elementor-icon {
	background-color: rgb(212 123 44 / 0.14) !important;
	color: var(--e-global-color-caramelf, #A95A17) !important;
	fill: var(--e-global-color-caramelf, #A95A17) !important;
	transition: transform 0.3s ease, background-color 0.3s ease, color 0.3s ease;
}
.ad-garanties .elementor-view-stacked .elementor-icon svg { fill: currentColor; }
.ad-garanties .ad-preuve:hover .elementor-icon {
	background-color: var(--e-global-color-accent, #D47B2C) !important;
	color: var(--e-global-color-primary, #2B1A10) !important;
	fill: var(--e-global-color-primary, #2B1A10) !important;
}
@media (min-width: 1200px) {
	.ad-garanties .ad-preuves > .ad-preuve + .ad-preuve { border-inline-start-color: rgb(83 50 28 / 0.12); padding-inline-start: 22px !important; }
}
@media (min-width: 768px) and (max-width: 1199px) {
	/* 3 + 2 arguments, alignés en grille plutôt qu'étirés */
	.ad-garanties .ad-preuves { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px 24px !important; }
}
@media (max-width: 767px) {
	.ad-garanties .ad-preuves { gap: 14px !important; }
	.ad-garanties::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.ad-garanties .elementor-view-stacked .elementor-icon { transition: none; }
}

/* Bandeau « deux entrées » : blocs translucides sur la vidéo */
.ad-verre {
	background-color: rgb(43 26 16 / 0.55) !important;
	border-color: rgb(235 220 198 / 0.22) !important;
	backdrop-filter: blur(10px) saturate(1.2);
	-webkit-backdrop-filter: blur(10px) saturate(1.2);
}
.ad-hero-choix .ad-verre .elementor-widget-icon-list { flex-grow: 1; }

/* Bandeau « sélecteur » : onglets + panneaux */
.ad-bascule-onglets {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 28px;
	padding: 6px;
	border: 1px solid rgb(235 220 198 / 0.22);
	border-radius: 999px;
	background: rgb(43 26 16 / 0.45);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	align-self: flex-start;
}
.ad-bascule-onglets [role="tab"] {
	min-height: 44px;
	padding: 0 22px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: transparent !important;
	color: var(--e-global-color-latte, #EBDCC6) !important;
	font: inherit;
	font-size: 0.95rem !important;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	cursor: pointer;
	transition: background-color 0.25s ease, color 0.25s ease;
}
.ad-bascule-onglets [role="tab"]:hover { background: rgb(251 245 236 / 0.12) !important; color: var(--e-global-color-creme, #FBF5EC) !important; }
.ad-bascule-onglets [role="tab"][aria-selected="true"] {
	background: var(--e-global-color-accent, #D47B2C) !important;
	color: var(--e-global-color-primary, #2B1A10) !important;
}
.ad-bascule-onglets [role="tab"]:focus-visible { outline: 2px solid var(--e-global-color-creme, #FBF5EC); outline-offset: 2px; }
/* Mobile : les deux onglets côte à côte sur toute la largeur */
@media (max-width: 767px) {
	.ad-bascule-onglets { display: flex; flex-wrap: nowrap; width: 100%; }
	.ad-bascule-onglets [role="tab"] { flex: 1 1 0; padding: 0 10px !important; font-size: 0.85rem !important; white-space: nowrap; }
}
/* Les libellés servent aux onglets : masqués une fois ceux-ci construits */
.ad-bascule-active .ad-bascule-libelle { display: none !important; }
.ad-bascule-active .ad-bascule-panneau[hidden] { display: none !important; }
.ad-bascule-entree { animation: ad-bascule-entree 0.55s cubic-bezier(0.2, 0.8, 0.2, 1) both; }
@keyframes ad-bascule-entree {
	from { opacity: 0; transform: translateY(16px); filter: blur(4px); }
	to   { opacity: 1; transform: none; filter: none; }
}
@media (prefers-reduced-motion: reduce) {
	.ad-bascule-entree { animation: none; }
}
/* Sans script : les deux panneaux s'affichent l'un sous l'autre */
.ad-bascule:not(.ad-bascule-active) .ad-bascule-panneau + .ad-bascule-panneau { margin-top: 48px; }

/* Section atteinte par un onglet raccourci (.ad-arrivee, functions.php) : halo caramel bref. */
.ad-arrivee { animation: ad-arrivee 2s ease-out; }
@keyframes ad-arrivee {
	0%, 20% { box-shadow: inset 0 0 0 0 rgb(212 123 44 / 0), inset 0 0 160px rgb(212 123 44 / 0.28); }
	100% { box-shadow: inset 0 0 0 0 rgb(212 123 44 / 0), inset 0 0 160px rgb(212 123 44 / 0); }
}
@media (prefers-reduced-motion: reduce) {
	.ad-arrivee { animation: none; }
}

/* Mini-vitrine « Meilleures ventes » ([autodistri_meilleures_ventes], functions.php) : cartes
   compactes en verre fumé sur fond foncé, 3 colonnes → 1 colonne sur téléphone. */
.ad-mini-produits { margin-top: 6px; }
.ad-mini-titre {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 12px;
	color: var(--e-global-color-accent, #D47B2C);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.ad-mini-titre::after { content: ""; flex: 1; max-width: 120px; height: 1px; background: rgb(212 123 44 / 0.4); }
.ad-mini-liste { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; max-width: 900px; }
a.ad-mini-produit {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 34px 10px 10px;
	border-radius: 16px;
	color: var(--e-global-color-creme, #FBF5EC);
	text-decoration: none;
	background: rgb(43 26 16 / 0.55);
	box-shadow: inset 0 0 0 1px rgb(235 220 198 / 0.14);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
}
a.ad-mini-produit:hover, a.ad-mini-produit:focus-visible {
	transform: translateY(-3px);
	background: rgb(43 26 16 / 0.7);
	box-shadow: inset 0 0 0 1px rgb(212 123 44 / 0.6), 0 20px 40px -24px rgb(0 0 0 / 0.7);
}
a.ad-mini-produit:focus-visible { outline: 2px solid var(--e-global-color-accent, #D47B2C); outline-offset: 2px; }
.ad-mini-vignette {
	flex: none;
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	overflow: hidden;
	border-radius: 12px;
	background: var(--e-global-color-creme, #FBF5EC);
}
.ad-mini-vignette img { width: 100%; height: 100%; object-fit: contain; padding: 4px; margin: 0 !important; }
.ad-mini-texte { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ad-mini-nom {
	font-size: 0.88rem;
	font-weight: 600;
	line-height: 1.3;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ad-mini-prix { font-size: 0.85rem; color: var(--e-global-color-latte, #EBDCC6); }
.ad-mini-prix ins { text-decoration: none; color: var(--e-global-color-accent, #D47B2C); font-weight: 700; }
.ad-mini-prix del { opacity: 0.6; margin-right: 4px; }
.ad-mini-fleche {
	position: absolute;
	right: 12px;
	top: 50%;
	color: var(--e-global-color-accent, #D47B2C);
	opacity: 0.6;
	transform: translateY(-50%);
	transition: opacity 0.3s ease, transform 0.3s ease;
}
a.ad-mini-produit:hover .ad-mini-fleche { opacity: 1; transform: translate(3px, -50%); }
/* Grand écran : dans le bandeau de l'accueil, la mini-vitrine passe dans l'espace libre à droite
   du texte (colonne de 75 %), cartes empilées et centrées : le bandeau ne grandit pas. */
@media (min-width: 1280px) {
	.ad-bascule-panneau:has(> .ad-hero-produits) { position: relative; }
	.ad-bascule-panneau > .ad-hero-produits {
		position: absolute !important;
		left: calc(100% + 32px);
		top: 50%;
		width: 280px !important;
		transform: translateY(-50%);
	}
	.ad-hero-produits .ad-mini-produits { margin-top: 0; }
	.ad-hero-produits .ad-mini-liste { grid-template-columns: 1fr; }
}
/* Écrans plus étroits : sous le texte, 2 produits pour limiter la hauteur du bandeau. */
@media (max-width: 1279px) {
	.ad-mini-liste > :nth-child(n + 3) { display: none; }
	.ad-mini-liste { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 640px; }
}
@media (max-width: 600px) {
	.ad-mini-liste { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	a.ad-mini-produit, .ad-mini-fleche { transition: none; }
	a.ad-mini-produit:hover { transform: none; }
}

/* Étiquettes flottantes autour du visuel */
.ad-puce {
	position: absolute !important;
	z-index: 3;
	width: auto !important;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	box-shadow: 0 20px 40px -20px rgb(0 0 0 / 0.7);
	white-space: nowrap;
}
.ad-puce { margin-top: var(--ad-flotte, 0px) !important; }
.ad-puce-1 { left: -4%; top: 14%; }
.ad-puce-2 { right: -2%; top: 46%; }
.ad-puce-3 { left: 6%; bottom: 6%; }
@media (max-width: 767px) {
	.ad-puce { display: none !important; }
}

/* Titres révélés mot par mot */
.ad-titre-lignes .elementor-heading-title { perspective: 900px; }
.ad-mot {
	display: inline-block;
	overflow: hidden;
	vertical-align: top;
	padding-bottom: 0.1em;
	margin-bottom: -0.1em;
}
.ad-mot > span { display: inline-block; transform-origin: 50% 100%; will-change: transform; }

/* Logos en boucle */
.ad-defilant-actif {
	overflow: hidden;
	flex-wrap: nowrap !important;
	justify-content: flex-start !important;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}
.ad-piste-defilante {
	display: flex;
	align-items: center;
	gap: 64px;
	width: max-content;
	flex: none;
	padding-right: 64px;
}
.ad-piste-defilante > * { flex: none; }

/* Services : 3 cartes d'offre (.ad-offre) remontées sur le bas du bandeau pleine page ;
   illustration vectorielle en haut (assets/images/services/), étiquette posée dessus, titre,
   texte, points clés en pastilles ; carte entière cliquable, flèche en bas à droite ;
   apparition de bas en haut (.ad-montee, animations.js). 3 colonnes, 1 en dessous de 900 px. */
.ad-js:not(.ad-sans-animation) .ad-montee:not(.ad-monte) > * { opacity: 0; }
.ad-offres { position: relative; z-index: 2; display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); }
a.ad-offre {
	position: relative;
	overflow: hidden;
	width: auto !important;
	color: inherit;
	text-decoration: none !important;
	box-shadow: 0 0 0 1px rgb(83 50 28 / 0.08), 0 50px 80px -45px rgb(43 26 16 / 0.6);
	top: 0;
	/* Tirage lent et progressif : départ en douceur, accélération légère, arrivée amortie. */
	transition: top 1.6s cubic-bezier(0.45, 0.05, 0.2, 1), box-shadow 1.3s ease !important;
}
/* La règle générale « .ad-js .e-con » limite les transitions des conteneurs au fond, à la
   bordure et à l'ombre : on y remet « top » pour les cartes d'offre. */
.ad-js:not(.ad-sans-animation) .ad-offres > a.ad-offre.e-con { transition-property: top, box-shadow !important; }
/* Carte « tirée du paquet » : décalage par top (position relative), que GSAP ne touche pas
   (un translate serait repris dans son transform et appliqué deux fois),
   hauteur calculée par animations.js (--ad-tirage) ; 6 px au clavier ou sans calcul. */
a.ad-offre:focus-visible, a.ad-offre.ad-tiree, a.ad-offre:hover:not(.ad-tiree-possible) {
	z-index: 3;
	top: calc(-1 * var(--ad-tirage, 6px));
	box-shadow: 0 0 0 1.5px rgb(212 123 44 / 0.6), 0 70px 110px -40px rgb(20 12 7 / 0.75);
}
a.ad-offre:focus-visible:not(.ad-tiree) { --ad-tirage: 6px !important; }
a.ad-offre:focus-visible { outline: 2px solid var(--e-global-color-accent, #D47B2C); outline-offset: 3px; }
a.ad-offre::after {
	content: "→";
	position: absolute;
	right: 24px;
	bottom: 18px;
	color: var(--e-global-color-accent, #D47B2C);
	font-size: 1.3rem;
	line-height: 1;
	opacity: 0.55;
	transition: opacity 0.3s ease, transform 0.3s ease;
}
a.ad-offre:hover::after, a.ad-offre:focus-visible::after { opacity: 1; transform: translateX(4px); }
.ad-offre > .e-con { width: 100% !important; }
/* Illustration pleine largeur, ratio 4:3, léger zoom au survol. */
.ad-offre-visuel { position: relative; overflow: hidden; }
.ad-offre-illu { width: 100% !important; }
.ad-offre-illu img {
	display: block;
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transform-origin: 50% 60%;
	transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
}
a.ad-offre:hover .ad-offre-illu img { transform: scale(1.045); }
/* Variante produit (Boutique, « Nos gammes ») : produit détouré entier, posé sur un fond latte
   avec halo caramel et ombre portée ; il se soulève légèrement au survol. */
.ad-offre--produit .ad-offre-visuel {
	background:
		radial-gradient(ellipse 60% 55% at 50% 60%, rgb(212 123 44 / 0.22), transparent 70%),
		linear-gradient(180deg, var(--e-global-color-creme, #FBF5EC), var(--e-global-color-latte, #EBDCC6));
}
.ad-offre--produit .ad-offre-illu img {
	object-fit: contain;
	padding: 4% 0 7%;
	filter: drop-shadow(0 18px 18px rgb(43 26 16 / 0.28));
	transform-origin: 50% 100%;
}
a.ad-offre--produit:hover .ad-offre-illu img { transform: translateY(-6px) scale(1.04); }
/* Bandeau à grains 3D suivi de cartes .ad-offre (Boutique) : les grains restent opaques et
   sont placés uniquement à droite (animations.js) pour garder le titre lisible. */

/* Étiquette posée sur l'illustration, en bas à gauche. */
.ad-offre-visuel > .ad-offre-tag { position: absolute !important; left: 18px; bottom: 16px; width: auto !important; z-index: 1; }
.ad-offre-tag .elementor-heading-title {
	margin: 0;
	padding: 7px 14px;
	border-radius: 999px;
	background: var(--e-global-color-creme, #FBF5EC);
	box-shadow: 0 8px 20px -10px rgb(43 26 16 / 0.45);
}
.ad-offre-corps .elementor-heading-title { margin: 0; }
.ad-offre-corps p { margin: 0; }
/* Points clés en pastilles. */
.ad-offre-points { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 0; padding: 0; list-style: none; }
.ad-offre-points li {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px 6px 10px;
	border-radius: 999px;
	background: rgb(212 123 44 / 0.1);
	font-size: 0.85rem;
	font-weight: 600;
	line-height: 1.2;
}
.ad-offre-points li::before {
	content: "";
	width: 14px;
	height: 14px;
	flex: none;
	border-radius: 50%;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3.5 7.2l2.3 2.3 4.7-4.9' fill='none' stroke='%23FBF5EC' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat,
		var(--e-global-color-accent, #D47B2C);
}
@media (max-width: 899px) {
	.ad-offres { grid-template-columns: 1fr; gap: 18px !important; }
}
@media (prefers-reduced-motion: reduce) {
	a.ad-offre, a.ad-offre::after, .ad-offre-illu img { transition: none !important; }
	a.ad-offre:hover, a.ad-offre:hover .ad-offre-illu img { transform: none; }
}

/* « Proches de vous », version 3 (.ad-zones-v3) : texte + bouton à gauche, 3 cartes de zones
   empilées à droite (pastille caramel avec onde, grand code en filigrane, badge « Notre base »),
   bandeau contact dessous avec lumière qui suit la souris (.ad-lueur). */
.ad-zones-v3 { position: relative; overflow: hidden; isolation: isolate; }
.ad-zones-v3::before {
	content: "";
	position: absolute;
	right: -180px;
	top: -200px;
	width: 680px;
	height: 680px;
	border-radius: 50%;
	background: radial-gradient(circle, rgb(212 123 44 / 0.2), transparent 65%);
	pointer-events: none;
	z-index: 0;
}
.ad-zones-v3 > .e-con-inner { position: relative; z-index: 1; }
.ad-zones-v3 .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.ad-zones-action { margin-top: 6px; }
/* Carte empilée : pastille à gauche, texte à droite, code en filigrane à droite. */
.ad-zone {
	position: relative;
	overflow: hidden;
	display: grid !important;
	grid-template-columns: 48px minmax(0, 1fr);
	column-gap: 18px;
	row-gap: 6px;
	align-items: start;
	width: auto !important;
	padding-right: 96px !important;
	background: rgb(43 26 16 / 0.5);
	box-shadow: inset 0 0 0 1px rgb(235 220 198 / 0.12);
	transition: box-shadow 0.3s ease, transform 0.3s ease !important;
}
.ad-zone-icone { grid-column: 1; grid-row: 1 / span 3; }
.ad-zone > .elementor-widget:not(.ad-zone-icone):not(.ad-zone-code) { grid-column: 2; }
.ad-zone:hover { transform: translateX(-4px); box-shadow: inset 0 0 0 1px rgb(212 123 44 / 0.55), 0 30px 50px -30px rgb(0 0 0 / 0.6); }
.ad-zone > .elementor-widget { width: auto !important; position: relative; z-index: 1; }
.ad-zone .elementor-heading-title { margin: 0; line-height: 1.25; }
.ad-zone p { margin: 0; line-height: 1.55; }
/* Grand code du département en filigrane, qui s'éclaire au survol. */
.ad-zone > .ad-zone-code { position: absolute !important; top: 50%; right: 22px; transform: translateY(-50%); z-index: 0 !important; pointer-events: none; }
.ad-zone-code .elementor-heading-title { font-size: clamp(2.75rem, 4.5vw, 4rem) !important; line-height: 1; opacity: 0.14; transition: opacity 0.3s ease; }
.ad-zone:hover .ad-zone-code .elementor-heading-title { opacity: 0.3; }
/* Pastille caramel avec onde qui pulse (zones et téléphone). */
.ad-zone-icone .elementor-icon {
	position: relative;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--e-global-color-accent, #D47B2C);
}
.ad-zone-icone .elementor-icon::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	border: 2px solid var(--e-global-color-accent, #D47B2C);
	animation: ad-zone-onde 2.6s ease-out infinite;
}
.ad-zone:nth-child(2) .ad-zone-icone .elementor-icon::after { animation-delay: 0.6s; }
.ad-zone:nth-child(3) .ad-zone-icone .elementor-icon::after { animation-delay: 1.2s; }
@keyframes ad-zone-onde {
	from { transform: scale(1); opacity: 0.7; }
	to { transform: scale(1.9); opacity: 0; }
}
.ad-zone-badge .elementor-heading-title {
	display: inline-block;
	padding: 5px 12px;
	border-radius: 999px;
	background: rgb(212 123 44 / 0.16);
}
/* Bandeau contact */
.ad-zones-bandeau {
	background: rgb(43 26 16 / 0.55);
	box-shadow: inset 0 0 0 1px rgb(212 123 44 / 0.25), 0 40px 80px -50px rgb(0 0 0 / 0.7);
}
.ad-zones-bandeau > .elementor-element, .ad-zones-bandeau > .e-con { width: auto !important; position: relative; z-index: 1; }
.ad-zones-bandeau .elementor-heading-title { margin: 0; line-height: 1.35; }
.ad-zones-tel > .elementor-widget, .ad-zones-tel > .e-con { width: auto !important; }
.ad-zones-bandeau a:not(.elementor-button) { color: inherit; text-decoration: none; }
.ad-zones-bandeau a:not(.elementor-button):hover { color: var(--e-global-color-accent, #D47B2C); }
.ad-zones-horaires { padding-left: 24px; border-left: 1px solid rgb(235 220 198 / 0.16); }
@media (max-width: 767px) {
	.ad-zones-horaires { padding-left: 0; border-left: 0; }
	.ad-zone { padding-right: 72px !important; column-gap: 16px; }
	.ad-zone > .ad-zone-code { top: 18px; transform: none; }
	.ad-zone-code .elementor-heading-title { font-size: 2.5rem !important; }
	.ad-zones-action .elementor-widget-button, .ad-zones-action .elementor-button { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
	.ad-zone, .ad-zone-code .elementor-heading-title { transition: none !important; }
	.ad-zone:hover { transform: none; }
	.ad-zone-icone .elementor-icon::after { animation: none; opacity: 0; }
}

/* Dépôt, version compacte de l'accueil (.ad-depot-express) : 4 étapes visibles d'un coup,
   cartes reliées par un fil caramel (4 → 2 → 1 colonnes). */
.ad-depot-express { position: relative; overflow: hidden; isolation: isolate; }
.ad-depot-express::before {
	content: "";
	position: absolute;
	left: -180px;
	bottom: -220px;
	width: 620px;
	height: 620px;
	border-radius: 50%;
	background: radial-gradient(circle, rgb(212 123 44 / 0.22), transparent 65%);
	pointer-events: none;
	z-index: 0;
}
.ad-depot-express > .e-con-inner { position: relative; z-index: 1; }
.ad-depot-express .elementor-widget-text-editor p { margin: 0; }
.ad-depot-express-entete { max-width: 680px; }
.ad-depot-express-actions { margin-top: -8px; }
@media (max-width: 600px) {
	.ad-depot-express-actions .elementor-widget-button { width: 100%; }
	.ad-depot-express-actions .elementor-button { width: 100%; justify-content: center; }
}
/* Carte entière cliquable (lien vers la page Dépôt gratuit) : flèche qui apparaît au survol. */
a.ad-etape-express { color: inherit; text-decoration: none !important; cursor: pointer; }
a.ad-etape-express::after {
	content: "→";
	position: absolute;
	right: 22px;
	bottom: 18px;
	color: var(--e-global-color-accent, #D47B2C);
	font-size: 1.2rem;
	line-height: 1;
	opacity: 0;
	transform: translateX(-6px);
	transition: opacity 0.3s ease, transform 0.3s ease;
}
a.ad-etape-express:hover::after, a.ad-etape-express:focus-visible::after { opacity: 1; transform: none; }
a.ad-etape-express:focus-visible { outline: 2px solid var(--e-global-color-accent, #D47B2C); outline-offset: 3px; }
.ad-etapes-express { position: relative; display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); }
/* Fil caramel qui relie les étapes, à hauteur des pastilles. */
.ad-etapes-express::before {
	content: "";
	position: absolute;
	left: 48px;
	right: 48px;
	top: 48px;
	height: 2px;
	background: linear-gradient(90deg, rgb(212 123 44 / 0.7), rgb(212 123 44 / 0.15));
	z-index: 0;
}
.ad-etape-express {
	position: relative;
	z-index: 1;
	width: auto !important;
	background: rgb(43 26 16 / 0.55);
	box-shadow: inset 0 0 0 1px rgb(235 220 198 / 0.12);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	transition: box-shadow 0.3s ease, transform 0.3s ease !important;
}
.ad-etape-express:hover, .ad-etape-express:focus-visible { transform: translateY(-4px); box-shadow: inset 0 0 0 1px rgb(212 123 44 / 0.55), 0 30px 50px -30px rgb(0 0 0 / 0.6); }
.ad-etape-express > .e-con > .elementor-widget, .ad-etape-express > .elementor-widget { width: auto !important; }
.ad-etape-express .elementor-heading-title { margin: 0; line-height: 1.25; }
.ad-etape-express p { margin: 0; line-height: 1.5; }
.ad-etape-express-icone .elementor-icon {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--e-global-color-accent, #D47B2C);
	box-shadow: 0 0 0 7px rgb(212 123 44 / 0.15);
}
.ad-etape-express-num .elementor-heading-title { opacity: 0.35; font-variant-numeric: tabular-nums; line-height: 1; }
.ad-etape-express-cle .elementor-heading-title {
	display: inline-block;
	padding: 5px 12px;
	border-radius: 999px;
	background: rgb(212 123 44 / 0.14);
}
@media (max-width: 1024px) {
	.ad-etapes-express { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ad-etapes-express::before { display: none; }
}
@media (max-width: 600px) {
	.ad-etapes-express { grid-template-columns: 1fr; gap: 12px !important; }
	/* Carte compacte : pastille à gauche, contenu à droite, numéro en haut à droite. */
	.ad-etape-express {
		display: grid !important;
		grid-template-columns: 48px minmax(0, 1fr);
		column-gap: 16px;
		row-gap: 6px;
		align-items: start;
		padding-right: 56px !important;
	}
	.ad-etape-express > .e-con:first-child { display: contents; }
	.ad-etape-express-icone { grid-column: 1; grid-row: 1 / span 3; }
	.ad-etape-express-num { position: absolute !important; top: 20px; right: 20px; }
	.ad-etape-express > .elementor-widget { grid-column: 2; }
}
@media (prefers-reduced-motion: reduce) {
	.ad-etape-express { transition: none !important; }
	.ad-etape-express:hover { transform: none; }
}

/* Éligibilité, version 2 (.ad-eligibilite-v2) : à gauche, texte puis critères en liste de
   lignes plates cochées une à une ; à droite, carte « plan B » avec deux tuiles cliquables. */
.ad-eligibilite-v2 .elementor-widget-text-editor p { margin: 0; }
.ad-criteres { margin-top: 6px; }
/* Tablette : la colonne prend toute la largeur, les lignes passent sur 2 colonnes. */
@media (min-width: 601px) and (max-width: 1024px) {
	.ad-criteres { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Ligne plate : icône à gauche, titre et texte au centre, coche à droite. */
.ad-critere {
	position: relative;
	display: grid !important;
	grid-template-columns: 44px minmax(0, 1fr);
	column-gap: 16px;
	row-gap: 2px;
	align-items: center;
	padding: 14px 56px 14px 16px !important;
	border-radius: 16px !important;
}
.ad-critere > .e-con:first-child { display: contents; }
.ad-critere-icone { grid-column: 1; grid-row: 1 / span 2; }
.ad-critere-coche { position: absolute !important; top: 50%; right: 18px; transform: translateY(-50%); }
.ad-critere > .elementor-widget-heading,
.ad-critere > .elementor-widget-text-editor { grid-column: 2; }
.ad-critere {
	width: auto !important;
	box-shadow: 0 0 0 1px rgb(83 50 28 / 0.08), 0 18px 36px -24px rgb(43 26 16 / 0.35);
	transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}
.ad-critere:hover { transform: translateY(-3px); box-shadow: 0 0 0 1px rgb(212 123 44 / 0.35), 0 24px 40px -24px rgb(43 26 16 / 0.4); }
.ad-critere > .e-con > .elementor-widget, .ad-critere > .elementor-widget { width: auto !important; }
.ad-critere .elementor-heading-title { margin: 0; line-height: 1.25; }
.ad-critere p { margin: 0; line-height: 1.5; }
.ad-critere-icone .elementor-icon {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: rgb(212 123 44 / 0.12);
}
.ad-critere-coche .elementor-icon {
	display: grid;
	place-items: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--e-global-color-accent, #D47B2C);
	transition: transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.ad-js:not(.ad-sans-animation) .ad-criteres:not(.ad-coche) .ad-critere-coche .elementor-icon { transform: scale(0); }
.ad-criteres > :nth-child(2) .ad-critere-coche .elementor-icon { transition-delay: 0.25s; }
.ad-criteres > :nth-child(3) .ad-critere-coche .elementor-icon { transition-delay: 0.5s; }
.ad-criteres > :nth-child(4) .ad-critere-coche .elementor-icon { transition-delay: 0.75s; }
.ad-eligibilite-action { margin-top: 8px; }
.ad-eligibilite-action > .elementor-widget { width: auto !important; }
.ad-eligibilite-action .elementor-heading-title { margin: 0; }
.ad-plan-b { position: relative; overflow: hidden; isolation: isolate; box-shadow: 0 40px 80px -40px rgb(43 26 16 / 0.6); }
.ad-plan-b::after {
	content: "";
	position: absolute;
	right: -120px;
	top: -140px;
	width: 380px;
	height: 380px;
	border-radius: 50%;
	background: radial-gradient(circle, rgb(212 123 44 / 0.28), transparent 65%);
	pointer-events: none;
	z-index: -1;
}
.ad-plan-b-badge .elementor-heading-title {
	display: inline-block;
	margin: 0;
	padding: 6px 14px;
	border-radius: 999px;
	background: rgb(212 123 44 / 0.14);
}
.ad-plan-b .elementor-heading-title, .ad-plan-b p { margin: 0; }
.ad-plan-b-option {
	flex-wrap: nowrap !important;
	text-decoration: none !important;
	background: rgb(251 245 236 / 0.06);
	box-shadow: inset 0 0 0 1px rgb(235 220 198 / 0.12);
	transition: background-color 0.25s ease, box-shadow 0.25s ease !important;
}
.ad-plan-b-option:hover, .ad-plan-b-option:focus-visible { background: rgb(251 245 236 / 0.1); box-shadow: inset 0 0 0 1px rgb(212 123 44 / 0.6); }
.ad-plan-b-option > .elementor-widget { width: auto !important; flex: none; }
.ad-plan-b-texte { flex: 1 1 auto !important; min-width: 0; }
.ad-plan-b-icone .elementor-icon {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--e-global-color-accent, #D47B2C);
}
.ad-plan-b-fleche .elementor-icon { display: flex; transition: transform 0.25s ease; }
.ad-plan-b-option:hover .ad-plan-b-fleche .elementor-icon { transform: translateX(4px); }
/* Tablette : la carte prend toute la largeur, les tuiles passent côte à côte. */
@media (min-width: 601px) and (max-width: 1024px) {
	.ad-plan-b-options { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
	.ad-critere, .ad-critere-coche .elementor-icon, .ad-plan-b-fleche .elementor-icon { transition: none !important; }
	.ad-critere:hover, .ad-plan-b-option:hover .ad-plan-b-fleche .elementor-icon { transform: none; }
}

/* Avantages du dépôt (.ad-avantages-depot) : bande chocolat, 5 colonnes séparées par un filet. */
.ad-avantages-depot { position: relative; overflow: hidden; isolation: isolate; }
.ad-avantages-depot::before {
	content: "";
	position: absolute;
	left: 50%;
	top: -260px;
	width: 760px;
	height: 520px;
	transform: translateX(-50%);
	border-radius: 50%;
	background: radial-gradient(ellipse, rgb(212 123 44 / 0.2), transparent 65%);
	pointer-events: none;
	z-index: 0;
}
.ad-avantages-depot > .e-con-inner { position: relative; z-index: 1; }
.ad-avantages-titre .elementor-heading-title { display: flex; align-items: center; justify-content: center; gap: 16px; margin: 0; }
.ad-avantages-titre .elementor-heading-title::before,
.ad-avantages-titre .elementor-heading-title::after { content: ""; width: 48px; height: 1px; background: rgb(212 123 44 / 0.5); }
.ad-avantages { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.ad-avantage { width: auto !important; padding: 4px 24px !important; align-items: center !important; text-align: center; }
.ad-avantage .elementor-icon-wrapper { text-align: center; }
.ad-avantage + .ad-avantage { border-inline-start: 1px solid rgb(235 220 198 / 0.14); }
.ad-avantage > .elementor-element { width: auto !important; }
.ad-avantage .elementor-heading-title { margin: 0; line-height: 1.25; }
.ad-avantage p { margin: 0; line-height: 1.5; }
.ad-avantage-icone .elementor-icon {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--e-global-color-accent, #D47B2C);
	box-shadow: 0 0 0 7px rgb(212 123 44 / 0.15);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.ad-avantage:hover .ad-avantage-icone .elementor-icon { transform: translateY(-3px); box-shadow: 0 0 0 10px rgb(212 123 44 / 0.2); }
@media (max-width: 1024px) {
	.ad-avantages { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 32px; }
	.ad-avantage:nth-child(3n + 1) { border-inline-start: 0; }
}
@media (max-width: 767px) {
	.ad-avantages { grid-template-columns: 1fr 1fr; row-gap: 28px; }
	.ad-avantage { padding: 0 14px !important; }
	.ad-avantage:nth-child(3n + 1) { border-inline-start: 1px solid rgb(235 220 198 / 0.14); }
	.ad-avantage:nth-child(odd) { border-inline-start: 0; }
	.ad-avantage:last-child { grid-column: 1 / -1; }
}
/* Variante 4 colonnes (page À propos, « Nos engagements ») : 4 → 2 × 2 → 2 × 2. */
.ad-avantages.ad-avantages--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) {
	.ad-avantages.ad-avantages--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ad-avantages--4 > .ad-avantage:nth-child(n) { border-inline-start: 1px solid rgb(235 220 198 / 0.14); grid-column: auto; }
	.ad-avantages--4 > .ad-avantage:nth-child(odd) { border-inline-start: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.ad-avantage-icone .elementor-icon { transition: none; }
	.ad-avantage:hover .ad-avantage-icone .elementor-icon { transform: none; }
}

/* Séparateur boutique (.ad-separateur-boutique) : bande chocolat pleine largeur entre la
   boutique et le dépôt, les preuves de la boutique défilent (.ad-sep-piste). */
.ad-separateur-boutique .ad-sep-piste:only-child { flex: 1 1 100% !important; width: 100% !important; }
.ad-separateur-boutique .ad-sep-piste.ad-defilant-actif {
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.ad-separateur-boutique .ad-sep-item { padding-inline: 32px !important; }
.ad-separateur-boutique { position: relative; overflow: hidden; isolation: isolate; border-block: 1px solid rgb(212 123 44 / 0.35); }
.ad-separateur-boutique::before {
	content: "";
	position: absolute;
	left: -140px;
	top: 50%;
	width: 440px;
	height: 440px;
	transform: translateY(-50%);
	border-radius: 50%;
	background: radial-gradient(circle, rgb(212 123 44 / 0.24), transparent 65%);
	pointer-events: none;
	z-index: 0;
}
.ad-separateur-boutique > .e-con-inner { position: relative; z-index: 1; }
.ad-sep-label { flex: none !important; width: auto !important; padding-inline-end: 28px !important; border-inline-end: 1px solid rgb(235 220 198 / 0.14); }
.ad-sep-label .e-con, .ad-sep-label > .elementor-element { width: auto !important; }
.ad-sep-label .elementor-heading-title { margin: 0; line-height: 1.2; white-space: nowrap; }
.ad-sep-pastille .elementor-icon {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--e-global-color-accent, #D47B2C);
	box-shadow: 0 0 0 6px rgb(212 123 44 / 0.16);
}
.ad-sep-piste { flex: 1 1 0 !important; min-width: 0; width: auto !important; }
.ad-sep-piste .ad-piste-defilante { gap: 0; padding-right: 0; }
.ad-sep-item { position: relative; width: auto !important; flex-wrap: nowrap !important; padding-inline: 26px !important; }
.ad-sep-item::after {
	content: "";
	position: absolute;
	right: -3px;
	top: 50%;
	width: 6px;
	height: 6px;
	margin-top: -3px;
	border-radius: 50%;
	background: var(--e-global-color-accent, #D47B2C);
	opacity: 0.6;
}
.ad-sep-item > .elementor-element { width: auto !important; }
.ad-sep-item .elementor-icon { display: flex; }
.ad-sep-item p { margin: 0; white-space: nowrap; }
.ad-sep-item strong { color: var(--e-global-color-creme, #FBF5EC); font-weight: 600; }
/* Sans animation (moins d'animations demandé) : les arguments passent à la ligne. */
.ad-sep-piste:not(.ad-defilant-actif) { flex-wrap: wrap !important; row-gap: 10px; }
.ad-sep-lien { flex: none !important; width: auto !important; }
.ad-sep-lien .elementor-heading-title { margin: 0; white-space: nowrap; }
.ad-sep-lien a { color: inherit; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgb(212 123 44 / 0.6); }
.ad-sep-lien a:hover { color: var(--e-global-color-accent, #D47B2C); }
@media (max-width: 767px) {
	.ad-sep-label { padding-inline-end: 0 !important; border-inline-end: 0; }
	.ad-sep-piste { flex: none !important; width: 100% !important; }
}

/* Réassurance développée de la boutique (.ad-reassurance-boutique), collée au pied de page :
   même chocolat que le pied, halo caramel à gauche, filet caramel en haut et filet clair en bas
   pour la détacher du pied. 5 garanties en colonnes (pastille, titre, précision), animées comme
   le bandeau .ad-preuves. */
.ad-reassurance-boutique { position: relative; overflow: hidden; isolation: isolate; border-top: 1px solid rgb(212 123 44 / 0.35); }
.ad-reassurance-boutique::before {
	content: "";
	position: absolute;
	left: -180px;
	top: -120px;
	width: 560px;
	height: 560px;
	border-radius: 50%;
	background: radial-gradient(circle, rgb(212 123 44 / 0.2), transparent 65%);
	pointer-events: none;
	z-index: -1;
}
.ad-reassurance-boutique > .e-con-inner { padding-bottom: 56px; border-bottom: 1px solid rgb(235 220 198 / 0.14); }
.ad-rb-tete > .e-con, .ad-rb-tete > .elementor-element { width: auto !important; }
.ad-rb-titres { flex: 1 1 320px; }
.ad-rb-titres .elementor-heading-title { margin: 0; }
.ad-rb-contact p { margin: 0; text-align: right; line-height: 1.6; }
.ad-rb-contact a { color: var(--e-global-color-creme, #FBF5EC); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgb(212 123 44 / 0.6); }
.ad-rb-contact a:hover { color: var(--e-global-color-accent, #D47B2C); }
.ad-reassurance-boutique .ad-rb-grille.ad-preuves {
	display: grid !important;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 0 48px !important;
}
/* Colonnes de même largeur de texte : écart régulier, filet tracé au milieu de l'écart. */
.ad-reassurance-boutique .ad-rb-grille > .ad-preuve { position: relative; flex: none; padding: 4px 0 0 !important; border-inline-start: 0 !important; }
.ad-rb-grille > .ad-preuve + .ad-preuve::before {
	content: "";
	position: absolute;
	left: -24px;
	top: 0;
	bottom: 0;
	width: 1px;
	background: rgb(235 220 198 / 0.14);
}
.ad-rb-grille .ad-preuve .elementor-widget-text-editor p + p { margin-top: 6px; }
.ad-rb-grille .ad-preuve .elementor-widget-text-editor strong { font-family: var(--e-global-typography-primary-font-family, Fraunces), Georgia, serif; font-size: 1.12rem; font-weight: 600; line-height: 1.3; }
.ad-rb-grille .ad-preuve .elementor-widget-text-editor p:first-child { text-wrap: balance; }
/* Tablette : 3 + 2 */
@media (max-width: 1024px) {
	.ad-reassurance-boutique .ad-rb-grille.ad-preuves { grid-template-columns: repeat(6, minmax(0, 1fr)); row-gap: 36px !important; }
	.ad-rb-grille > .ad-preuve { grid-column: span 2; }
	.ad-rb-grille > .ad-preuve:nth-child(4) { grid-column: 2 / span 2; }
	.ad-rb-grille > .ad-preuve:nth-child(4)::before { display: none; }
	.ad-rb-contact p { text-align: left; }
	.ad-reassurance-boutique > .e-con-inner { padding-bottom: 44px; }
}
/* Téléphone : une garantie par ligne, pastille à gauche */
@media (max-width: 767px) {
	.ad-reassurance-boutique .ad-rb-grille.ad-preuves { grid-template-columns: 1fr; row-gap: 0 !important; }
	.ad-reassurance-boutique .ad-rb-grille > .ad-preuve { grid-column: auto; flex-direction: row !important; align-items: flex-start; gap: 16px !important; padding: 18px 0 !important; border-inline-start: 0 !important; }
	.ad-rb-grille > .ad-preuve + .ad-preuve { border-top: 1px solid rgb(235 220 198 / 0.12); }
	.ad-rb-grille > .ad-preuve + .ad-preuve::before { display: none; }
	.ad-reassurance-boutique .ad-rb-grille > .ad-preuve:first-child { padding-top: 0 !important; }
	.ad-rb-grille .ad-preuve .elementor-widget-text-editor { flex: 1 1 0; min-width: 0; }
	.ad-reassurance-boutique > .e-con-inner { padding-bottom: 36px; }
}

/* ==========================================================================
   Page « À propos » (outils/apropos-refonte.php)
   ========================================================================== */

/* Hero : étiquettes flottantes sur le visuel, indice « Découvrir » en bas du bandeau */
.ad-apropos-visuel { position: relative; }
.ad-apropos-puce {
	position: absolute !important;
	z-index: 3;
	width: auto !important;
	padding: 11px 18px 11px 14px !important;
	border: 1px solid rgb(235 220 198 / 0.18);
	border-radius: 999px;
	background: rgb(43 26 16 / 0.72);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	box-shadow: 0 20px 40px -20px rgb(0 0 0 / 0.7);
	animation: ad-flotte 4.5s ease-in-out infinite;
}
.ad-apropos-puce > .elementor-element, .ad-apropos-puce .elementor-widget { width: auto !important; }
.ad-apropos-puce .elementor-heading-title { margin: 0; white-space: nowrap; font-weight: 600; }
.ad-apropos-puce .elementor-icon { display: flex; }
.ad-apropos-puce-1 { left: -3%; top: 16%; }
.ad-apropos-puce-2 { right: -2%; bottom: 14%; animation-delay: -2.2s; }
@keyframes ad-flotte { 50% { transform: translateY(-8px); } }

.ad-defiler-widget { position: absolute !important; left: 50%; bottom: clamp(48px, 7vh, 72px); z-index: 2; width: auto !important; transform: translateX(-50%); }
.ad-defiler {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	color: var(--e-global-color-latte, #EBDCC6);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	text-decoration: none;
	opacity: 0.85;
	transition: opacity 0.2s ease, color 0.2s ease;
}
.ad-defiler:hover { opacity: 1; color: var(--e-global-color-accent, #D47B2C); }
/* Masqué par animations.js quand il chevaucherait le texte de la hero (écran peu haut) */
.ad-defiler-widget.ad-defiler-cache { visibility: hidden; }
/* Accueil : version plus compacte, posée plus bas (le texte de la hero descend plus bas),
   lisible aussi sur la vidéo claire */
.ad-hero-video .ad-defiler-widget { bottom: clamp(16px, 2.5vh, 28px); }
.ad-hero-video .ad-defiler { gap: 6px; filter: drop-shadow(0 1px 6px rgb(0 0 0 / 0.55)); }
.ad-hero-video .ad-defiler-souris { width: 20px; height: 32px; border-radius: 12px; }
.ad-hero-video .ad-defiler-souris::after { top: 6px; height: 7px; }
.ad-defiler-souris { position: relative; width: 24px; height: 38px; border: 2px solid currentColor; border-radius: 14px; }
.ad-defiler-souris::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 7px;
	width: 4px;
	height: 8px;
	margin-left: -2px;
	border-radius: 2px;
	background: var(--e-global-color-accent, #D47B2C);
	animation: ad-molette 1.8s ease-in-out infinite;
}
@keyframes ad-molette {
	0% { opacity: 0; transform: translateY(0); }
	30% { opacity: 1; }
	100% { opacity: 0; transform: translateY(12px); }
}

/* Citation dans le bandeau, sous le bouton : filet caramel à gauche, guillemet en filigrane */
.ad-hero-citation {
	position: relative;
	max-width: 34rem;
	margin-top: 18px !important;
	padding: 4px 0 4px 22px !important;
	border-left: 3px solid var(--e-global-color-accent, #D47B2C);
}
.ad-hero-citation .elementor-heading-title { margin: 0; }
.ad-hero-citation-texte .elementor-heading-title {
	font-size: clamp(1.15rem, 1.7vw, 1.45rem) !important;
	font-style: italic;
	line-height: 1.35 !important;
	text-wrap: balance;
}
.ad-hero-citation-texte .elementor-heading-title::before { content: "« "; color: var(--e-global-color-accent, #D47B2C); }
.ad-hero-citation-texte .elementor-heading-title::after { content: " »"; color: var(--e-global-color-accent, #D47B2C); }
.ad-hero-citation-auteur .elementor-heading-title { font-weight: 600; }

/* Notre histoire : année en grand (colonne collante) et frise en 3 étapes */
/* « clip » (et non « hidden ») : coupe la parallaxe de l'année sans empêcher la colonne collante. */
.ad-apropos-histoire { overflow: clip !important; }
.ad-annee .elementor-heading-title {
	margin: 18px 0 0;
	font-size: clamp(5rem, 11vw, 9.5rem) !important;
	line-height: 0.9 !important;
	/* Fraunces dessine ses chiffres en plusieurs formes qui se chevauchent : un contour seul
	   laisse voir les traits intérieurs. Remplissage couleur du fond, contour peint dessous
	   (paint-order) et deux fois plus épais : seul le contour extérieur reste visible. */
	color: var(--e-global-color-creme, #FBF5EC) !important;
	-webkit-text-stroke: 4px var(--e-global-color-accent, #D47B2C);
	paint-order: stroke fill;
	letter-spacing: -0.02em;
}
.ad-annee-legende p { margin: 0; }
@media (min-width: 1025px) {
	.ad-histoire-titre { position: sticky !important; top: 130px; align-self: flex-start; }
	/* Section à la hauteur de l'écran, contenu centré (un peu plus d'air en haut, sous l'en-tête) */
	.ad-apropos-histoire {
		min-height: 100svh;
		justify-content: center !important;
		--padding-top: clamp(88px, 12vh, 128px) !important;
		--padding-bottom: clamp(48px, 8vh, 96px) !important;
	}
	.ad-apropos-histoire > .e-con-inner { justify-content: center !important; }
}
.ad-frise { position: relative; padding-left: 44px !important; }
.ad-frise::before,
.ad-frise::after {
	content: "";
	position: absolute;
	left: 10px;
	top: 8px;
	bottom: 8px;
	width: 2px;
	border-radius: 2px;
	background: rgb(83 50 28 / 0.14);
}
.ad-frise::after { background: var(--e-global-color-accent, #D47B2C); transform: scaleY(var(--ad-frise, 1)); transform-origin: 50% 0; }
.ad-etape-histoire { position: relative; }
.ad-etape-histoire::before {
	content: "";
	position: absolute;
	left: -44px;
	top: 2px;
	z-index: 1;
	width: 22px;
	height: 22px;
	border: 2px solid var(--e-global-color-accent, #D47B2C);
	border-radius: 50%;
	background: var(--e-global-color-accent, #D47B2C);
	box-shadow: 0 0 0 6px rgb(212 123 44 / 0.16);
	transition: background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
html.ad-js:not(.ad-sans-animation) .ad-etape-histoire:not(.is-active)::before { border-color: rgb(83 50 28 / 0.25); background: var(--e-global-color-creme, #FBF5EC); box-shadow: none; }
.ad-etape-histoire-titre .elementor-heading-title { margin: 0; }
.ad-etape-histoire .elementor-widget-text-editor p { margin: 0; }
/* Citation */
.ad-citation { position: relative; max-width: 900px; margin-inline: auto; padding-top: 56px !important; }
/* Elementor étire le ::before des conteneurs (calque de fond) : dimensions remises à « auto ». */
.ad-citation::before {
	content: "“";
	position: absolute;
	top: -18px;
	right: auto;
	bottom: auto;
	width: auto;
	height: auto;
	left: 50%;
	transform: translateX(-50%);
	color: var(--e-global-color-accent, #D47B2C);
	font-family: var(--e-global-typography-primary-font-family, Fraunces), Georgia, serif;
	font-size: 7rem;
	line-height: 1;
	opacity: 0.5;
}
.ad-citation-texte .elementor-heading-title { margin: 0; font-style: italic; text-wrap: balance; }
.ad-citation .elementor-widget-heading:last-child .elementor-heading-title { margin: 0; font-weight: 600; }

/* Nos engagements */
.ad-engagement { height: 100%; }
.ad-engagement-num .elementor-heading-title { margin: 0; opacity: 0.4; font-variant-numeric: tabular-nums; }
.ad-engagement-icone .elementor-icon {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: rgb(212 123 44 / 0.14);
	transition: transform 0.3s ease, background-color 0.3s ease;
}
.ad-engagement:hover .ad-engagement-icone .elementor-icon { transform: rotate(-8deg) scale(1.06); background: rgb(212 123 44 / 0.24); }
.ad-engagement .elementor-widget-heading .elementor-heading-title,
.ad-engagement .elementor-widget-text-editor p { margin: 0; }
.ad-engagement > .e-con:first-child > .elementor-element { width: auto !important; }

/* Ce que nous faisons : 5 métiers en cartes cliquables */
.ad-metiers > .ad-metier { flex: 1 1 200px !important; min-width: 0; text-decoration: none; box-shadow: 0 1px 2px rgb(43 26 16 / 0.04), 0 12px 30px -20px rgb(43 26 16 / 0.3); transition: transform 0.2s ease, box-shadow 0.2s ease; }
.ad-metiers > .ad-metier:hover { transform: translateY(-4px); box-shadow: 0 1px 2px rgb(43 26 16 / 0.05), 0 22px 40px -20px rgb(43 26 16 / 0.4); }
.ad-metiers > .ad-metier:focus-visible { outline: 2px solid var(--e-global-color-accent, #D47B2C); outline-offset: 3px; }
.ad-metier .elementor-heading-title, .ad-metier .elementor-widget-text-editor p { margin: 0; }
.ad-metier-icone .elementor-icon { display: flex; }
.ad-metier-lien { margin-top: auto !important; }
.ad-metier-lien .elementor-heading-title span { display: inline-block; transition: transform 0.2s ease; }
.ad-metier:hover .ad-metier-lien .elementor-heading-title span { transform: translateX(4px); }

/* En somme (v3) : en-tête centré avec le logo, grille de tuiles, valeurs en pastilles */
.ad-somme-tete .elementor-heading-title, .ad-somme-tete p { margin: 0; }
/* Logo à la place du mot « Autodistri » dans le titre (alt="Autodistri") */
.ad-titre-logo { display: block; width: auto !important; height: 1.6em !important; max-width: 100%; margin: 0 auto 0.15em; }

.ad-bento { display: grid !important; grid-template-columns: 1.15fr 1fr 1fr; gap: 16px; }
.ad-bento > .ad-bento-tuile {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	width: auto !important;
	min-height: 200px;
	justify-content: flex-end !important;
	padding: 28px !important;
	border: 1px solid rgb(235 220 198 / 0.14);
	border-radius: 24px;
	background: rgb(255 255 255 / 0.04);
}
.ad-bento-tuile .elementor-heading-title { margin: 0; }
.ad-bento-tuile > .elementor-element { width: auto !important; }
.ad-bento-chiffre .elementor-heading-title { font-size: clamp(3.4rem, 6vw, 5.2rem) !important; line-height: 0.9 !important; letter-spacing: -0.02em; }
/* Grande tuile caramel « 2023 » : sur deux rangées, halo clair en haut à droite */
.ad-bento > .ad-bento-annee {
	grid-row: span 2;
	justify-content: space-between !important;
	border: 0;
	background: linear-gradient(150deg, var(--e-global-color-accent, #D47B2C) 0%, #B8641F 100%);
}
.ad-bento-annee::after {
	content: "";
	position: absolute;
	top: -90px;
	right: -90px;
	bottom: auto;
	left: auto;
	z-index: -1;
	width: 300px;
	height: 300px;
	border-radius: 50%;
	background: radial-gradient(circle, rgb(255 255 255 / 0.28), transparent 65%);
}
.ad-bento-annee .ad-bento-chiffre .elementor-heading-title { font-size: clamp(4.5rem, 9vw, 8rem) !important; }
.ad-bento-etiquette .elementor-heading-title { opacity: 0.75; }
.ad-bento > .ad-bento-clients { grid-column: 2; grid-row: 1; }
.ad-bento > .ad-bento-specialite { grid-column: 3; grid-row: 1; }
.ad-bento > .ad-bento-zone { grid-column: 2 / 4; grid-row: 2; }
.ad-bento-icone .elementor-icon {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	margin-bottom: 10px;
	border-radius: 50%;
	background: var(--e-global-color-accent, #D47B2C);
}

/* Valeurs : pastilles qui s'allument au survol */
.ad-somme-valeurs-v3 .elementor-heading-title { margin: 0; }
.ad-valeurs-pastilles > .ad-valeur-pastille {
	width: auto !important;
	padding: 10px 22px 10px 10px !important;
	border: 1px solid rgb(235 220 198 / 0.2);
	border-radius: 999px;
	background: rgb(255 255 255 / 0.04);
	transition: background-color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
.ad-valeur-pastille > .elementor-element { width: auto !important; }
.ad-valeur-icone .elementor-icon {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--e-global-color-accent, #D47B2C);
	transition: background-color 0.25s ease;
}
.ad-valeur-pastille .elementor-heading-title { transition: color 0.25s ease; }
.ad-valeurs-pastilles > .ad-valeur-pastille:hover { transform: translateY(-3px); border-color: var(--e-global-color-accent, #D47B2C); background: var(--e-global-color-accent, #D47B2C); }
.ad-valeur-pastille:hover .elementor-heading-title { color: var(--e-global-color-primary, #2B1A10) !important; }
.ad-valeur-pastille:hover .ad-valeur-icone .elementor-icon { background: var(--e-global-color-primary, #2B1A10); }
.ad-valeur-pastille:hover .ad-valeur-icone .elementor-icon i,
.ad-valeur-pastille:hover .ad-valeur-icone .elementor-icon svg { color: var(--e-global-color-accent, #D47B2C); fill: var(--e-global-color-accent, #D47B2C); }

@media (max-width: 1024px) {
	.ad-bento { grid-template-columns: 1fr 1fr; }
	.ad-bento > .ad-bento-annee { grid-column: 1 / -1; grid-row: auto; min-height: 220px; }
	.ad-bento > .ad-bento-clients, .ad-bento > .ad-bento-specialite { grid-column: auto; grid-row: auto; }
	.ad-bento > .ad-bento-zone { grid-column: 1 / -1; grid-row: auto; }
}
@media (max-width: 767px) {
	.ad-defiler-widget { display: none; }
	.ad-frise { padding-left: 36px !important; }
	.ad-etape-histoire::before { left: -36px; width: 18px; height: 18px; }
	.ad-frise::before, .ad-frise::after { left: 8px; }
	.ad-bento > .ad-bento-tuile { min-height: 0; padding: 22px !important; }
	.ad-bento-chiffre .elementor-heading-title { font-size: 3rem !important; }
	.ad-bento-annee .ad-bento-chiffre .elementor-heading-title { font-size: 4.2rem !important; }
}
@media (max-width: 600px) {
	.ad-bento { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.ad-apropos-puce, .ad-defiler-souris::after { animation: none; }
	.ad-metiers > .ad-metier, .ad-engagement-icone .elementor-icon { transition: none; }
	.ad-metiers > .ad-metier:hover { transform: none; }
}

/* Service pas encore ouvert (inc/bientot-disponible.php) : rappel affiché à l'administrateur */
.ad-bientot-rappel {
	position: fixed;
	left: 50%;
	bottom: 20px;
	z-index: 200;
	transform: translateX(-50%);
	max-width: calc(100vw - 32px);
	padding: 10px 18px;
	border-radius: 999px;
	background: var(--e-global-color-primary, #2B1A10);
	color: var(--e-global-color-creme, #FBF5EC);
	font-size: 0.88rem;
	font-weight: 600;
	box-shadow: 0 12px 30px -12px rgb(0 0 0 / 0.5);
	pointer-events: none;
}

/* Texte qui se remplit */
.ad-mot-plein { display: inline; }
.ad-mot-plein > span { display: inline; }

/* Les conteneurs Elementor ont une transition CSS sur « transform » qui freine
   les animations GSAP : on la retire quand les animations sont actives. */
.ad-js:not(.ad-sans-animation) .e-con { transition-property: background, border, border-radius, box-shadow !important; }

/* Les effets 3D ne doivent jamais créer de défilement horizontal. */
body { overflow-x: clip; }
.ad-scene-pile { overflow-x: clip; }

/* Pile de cartes épinglée */
.ad-pile.ad-pile-active {
	display: grid !important;
	grid-template-areas: "pile";
	align-items: end;
	padding-top: 90px !important;
	perspective: 1400px;
}
.ad-pile.ad-pile-active > * { grid-area: pile; will-change: transform, opacity; }
.ad-pile-barre {
	grid-area: auto !important;
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 4px;
	border-radius: 4px;
	background: var(--e-global-color-accent, #D47B2C);
	transform: scaleX(0);
	transform-origin: 0 50%;
	box-shadow: 0 0 0 1px rgb(235 220 198 / 0.15);
}
.ad-pile { position: relative; }
.ad-etape-item {
	border-left: 2px solid rgb(235 220 198 / 0.2);
	padding-left: 18px !important;
	opacity: 0.4;
	transition: opacity 0.4s ease, border-color 0.4s ease;
}
.ad-etape-item.ad-actif { opacity: 1; border-color: var(--e-global-color-accent, #D47B2C); }

/* --------------------------------------------------------------------------
   Le principe du dépôt (.ad-depot) : une diapositive par étape
   -------------------------------------------------------------------------- */
.ad-depot { position: relative; overflow: hidden; isolation: isolate; --ad-bord: 24px; }
.ad-depot::before {
	content: "";
	position: absolute;
	left: -180px;
	bottom: -220px;
	width: 620px;
	height: 620px;
	border-radius: 50%;
	background: radial-gradient(circle, rgb(212 123 44 / 0.22), transparent 65%);
	pointer-events: none;
	z-index: 0;
}
.ad-depot > .e-con-inner { position: relative; z-index: 1; }

/* Étapes à gauche : rail vertical qui se remplit au fil des étapes */
.ad-depot-nav { margin-top: 10px; }
.ad-depot-onglet {
	position: relative;
	flex-wrap: nowrap !important;
	padding: 12px 16px 12px 24px !important;
	border-radius: 14px;
	cursor: pointer;
	opacity: 0.5;
	transition: opacity 0.35s ease, background-color 0.35s ease !important;
}
.ad-depot-onglet::before,
.ad-depot-onglet::after {
	content: "";
	position: absolute;
	left: 0;
	top: 6px;
	bottom: 6px;
	width: 3px;
	border-radius: 3px;
	background: rgb(235 220 198 / 0.18);
}
.ad-depot-onglet::after {
	background: var(--e-global-color-accent, #D47B2C);
	transform: scaleY(0);
	transform-origin: 50% 0;
	transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.ad-depot-onglet.ad-actif::after,
.ad-depot-onglet.ad-fait::after { transform: scaleY(1); }
.ad-depot-onglet.ad-fait { opacity: 0.75; }
.ad-depot-onglet.ad-actif { opacity: 1; background-color: rgb(251 245 236 / 0.07); }
.ad-depot-onglet:hover { opacity: 0.9; }
.ad-depot-onglet:focus-visible { outline: 2px solid var(--e-global-color-accent, #D47B2C); outline-offset: 2px; }
.ad-depot-onglet > .elementor-widget { width: auto !important; }
.ad-depot-onglet > .elementor-widget:first-child { flex: none; }
.ad-depot-onglet .elementor-heading-title { margin: 0; line-height: 1.25; }
.ad-depot-onglet > .elementor-widget:first-child .elementor-heading-title { font-variant-numeric: tabular-nums; }

/* Diapositives */
.ad-depot-slide {
	position: relative;
	overflow: hidden;
	box-shadow: 0 40px 80px -40px rgb(0 0 0 / 0.6), 0 0 0 1px rgb(235 220 198 / 0.1);
}
.ad-depot-slide > .elementor-element { position: relative; z-index: 1; }
.ad-depot-slide > .ad-depot-filigrane {
	position: absolute !important;
	right: -50px;
	bottom: -60px;
	z-index: 0;
	width: auto !important;
	opacity: 1;
	pointer-events: none;
}
.ad-depot-filigrane .elementor-icon { opacity: 0.05; }
.ad-depot-entete > .elementor-widget { width: auto !important; }
.ad-depot-pastille .elementor-icon {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--e-global-color-accent, #D47B2C);
	box-shadow: 0 0 0 8px rgb(212 123 44 / 0.16);
}
.ad-depot-etiquette .elementor-heading-title {
	display: inline-block;
	padding: 6px 14px;
	border-radius: 999px;
	background: rgb(169 90 23 / 0.1);
}
.ad-depot-cle .elementor-heading-title { line-height: 1; letter-spacing: -0.02em; }
.ad-depot-slide .elementor-widget-text-editor p { margin: 0; }
.ad-depot-points .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 8px; }
.ad-depot-points .elementor-icon-list-item {
	margin: 0 !important;
	padding: 7px 14px 7px 12px !important;
	border-radius: 999px;
	background: rgb(43 26 16 / 0.06);
}
.ad-depot-points .elementor-icon-list-item::after { display: none !important; }

/* Grand écran : section à la hauteur de l'écran, diapositives empilées */
.ad-depot.ad-depot-epingle {
	height: var(--ad-depot-h, 100vh);
	--padding-top: calc(var(--ad-depot-entete, 0px) + clamp(16px, 4vh, 56px)) !important;
	--padding-bottom: clamp(20px, 5vh, 64px) !important;
}
.ad-depot.ad-depot-epingle > .e-con-inner { height: 100%; align-items: center; }
.ad-depot-epingle .ad-depot-texte { --row-gap: clamp(8px, 1.8vh, 16px); --gap: clamp(8px, 1.8vh, 16px) 0px; }
.ad-depot-epingle .ad-depot-texte h2.elementor-heading-title { font-size: clamp(1.9rem, min(3.4vw, 5.6vh), 3rem) !important; }
.ad-depot-epingle .ad-depot-onglet { padding-block: clamp(6px, 1.4vh, 12px) !important; }
.ad-depot-epingle .ad-depot-action { margin-top: clamp(4px, 1.5vh, 16px); }
.ad-depot-epingle .ad-depot-piste {
	display: grid !important;
	grid-template-areas: "diapo";
	perspective: 1600px;
}
.ad-depot-epingle .ad-depot-piste > * { grid-area: diapo; will-change: transform, opacity; }
.ad-depot-epingle .ad-depot-slide {
	--row-gap: clamp(8px, 2vh, 18px);
	--gap: clamp(8px, 2vh, 18px) 16px;
	--padding-top: clamp(24px, 5vh, 48px) !important;
	--padding-bottom: clamp(24px, 5vh, 48px) !important;
	--padding-left: clamp(28px, 3.4vw, 48px) !important;
	--padding-right: clamp(28px, 3.4vw, 48px) !important;
}
.ad-depot-epingle .ad-depot-pastille .elementor-icon { width: clamp(48px, 8vh, 64px); height: clamp(48px, 8vh, 64px); font-size: clamp(20px, 3.4vh, 28px); }
.ad-depot-epingle .ad-depot-cle .elementor-heading-title { font-size: clamp(2.4rem, 9vh, 4.5rem) !important; }
.ad-depot-epingle .ad-depot-slide h3.elementor-heading-title { font-size: clamp(1.3rem, 3.6vh, 1.9rem) !important; }
.ad-depot-epingle .ad-depot-slide .elementor-widget-text-editor { font-size: clamp(0.95rem, 2.2vh, 1.15rem) !important; }

/* Petits écrans : carrousel à balayer, la diapositive suivante dépasse */
.ad-depot-carrousel .ad-depot-nav { display: none !important; }
.ad-depot-carrousel .ad-depot-scene { min-width: 0; }
.ad-depot-carrousel .ad-depot-piste {
	position: relative;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	--gap: 16px;
	--row-gap: 16px;
	--column-gap: 16px;
	gap: 16px;
	margin-inline: calc(var(--ad-bord) * -1);
	padding: 12px var(--ad-bord) 16px !important;
	width: calc(100% + 2 * var(--ad-bord)) !important;
	max-width: none !important;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: var(--ad-bord);
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.ad-depot-carrousel .ad-depot-piste::-webkit-scrollbar { display: none; }
.ad-js .ad-depot-carrousel .ad-depot-slide {
	flex: 0 0 min(86%, 560px) !important;
	scroll-snap-align: start;
	transition-property: transform, opacity !important;
	transition-duration: 0.5s !important;
	transition-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1) !important;
}
.ad-js .ad-depot-carrousel .ad-depot-slide:not(.ad-actif) { transform: scale(0.94); opacity: 0.55; }
.ad-depot-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-top: 8px;
}
.ad-depot-points-nav { display: flex; align-items: center; gap: 2px; }
button.ad-depot-point,
button.ad-depot-fleche {
	margin: 0 !important;
	padding: 0 !important;
	min-width: 0 !important;
	border-radius: 999px !important;
	line-height: 0 !important;
	font-size: 0 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	cursor: pointer;
	box-shadow: none !important;
}
button.ad-depot-point {
	width: 24px !important;
	height: 24px !important;
	border: 0 !important;
	background: transparent !important;
	display: grid;
	place-items: center;
}
button.ad-depot-point::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: rgb(235 220 198 / 0.35);
	transition: width 0.35s ease, background-color 0.35s ease;
}
button.ad-depot-point.ad-actif::before { width: 24px; background: var(--e-global-color-accent, #D47B2C); }
button.ad-depot-point.ad-actif { width: 36px !important; }
button.ad-depot-fleche {
	width: 44px !important;
	height: 44px !important;
	display: grid;
	place-items: center;
	border: 1px solid rgb(235 220 198 / 0.35) !important;
	background: transparent !important;
	color: var(--e-global-color-creme, #FBF5EC) !important;
	transition: background-color 0.2s ease, opacity 0.2s ease;
}
button.ad-depot-fleche:hover:not(:disabled) { background: rgb(251 245 236 / 0.12) !important; }
button.ad-depot-fleche:disabled { opacity: 0.3; cursor: default; }
.ad-depot-fleche svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 767px) {
	.ad-depot { --ad-bord: 16px; }
	.ad-depot-pastille .elementor-icon { width: 52px; height: 52px; font-size: 22px; }
	.ad-depot-cle .elementor-heading-title { font-size: 2.4rem !important; }
	.ad-depot-slide { --row-gap: 12px; --gap: 12px 12px; }
	.ad-depot-slide h3.elementor-heading-title { font-size: 1.3rem !important; }
	.ad-depot-slide .elementor-widget-text-editor { font-size: 0.98rem !important; line-height: 1.55; }
	.ad-depot-points .elementor-icon-list-items { gap: 6px; }
	.ad-depot-points .elementor-icon-list-item { padding: 5px 11px 5px 10px !important; }
	.ad-depot-points .elementor-icon-list-text { font-size: 0.85rem; }
	.ad-depot-filigrane .elementor-icon { font-size: 180px !important; }
	.ad-depot-slide > .ad-depot-filigrane { right: -50px; bottom: -50px; }
}
@media (prefers-reduced-motion: reduce) {
	.ad-depot-onglet, .ad-depot-onglet::after, button.ad-depot-point::before { transition: none !important; }
}

/* --------------------------------------------------------------------------
   Nos distributeurs (.ad-gamme) : fond de salle de pause flouté sous un voile
   chocolat, grains de café en 3D, cartes en verre dépoli.
   L'image de fond se règle dans Elementor (Style > Arrière-plan) : le CSS la floute.
   -------------------------------------------------------------------------- */
/* Couleur de base = celle de la section précédente (« Une offre claire »), par sécurité : si
   quelque chose apparaît sous le voile au bord de la jonction, c'est la même teinte. */
.ad-gamme { position: relative; overflow: hidden; isolation: isolate; background-color: var(--e-global-color-primary, #2B1A10) !important; }
.ad-gamme::before,
.ad-gamme::after {
	content: "" !important;
	position: absolute !important;
	pointer-events: none;
	z-index: 0 !important;
	mix-blend-mode: normal !important;
	opacity: 1 !important;
}
/* Fond : l'image réglée dans Elementor, floutée. Volontairement immobile : un flou
   qui bouge est recalculé à chaque image et fait saccader le défilement. */
.ad-gamme::before {
	inset: -40px !important;
	/* Elementor impose width/height: 100% à ce calque : sans cette remise à zéro, il serait
	   décalé de 40 px vers la gauche et laisserait une bande non floutée à droite. */
	width: auto !important;
	height: auto !important;
	background-image: inherit !important;
	background-size: cover !important;
	background-position: center !important;
	background-color: transparent !important;
	filter: blur(14px) saturate(1.15);
}
/* Voile chocolat : le contenu reste parfaitement lisible. En haut, il démarre opaque dans la
   couleur exacte de la section précédente (#2B1A10, « Une offre claire ») pour une jonction
   invisible, puis s'ouvre progressivement sur la salle de pause floutée. */
.ad-gamme::after {
	inset: 0 !important;
	width: auto !important;
	height: auto !important;
	background:
		radial-gradient(ellipse 70% 55% at 50% 38%, rgb(212 123 44 / 0.22), transparent 70%),
		linear-gradient(180deg,
			rgb(43 26 16) 0px,
			rgb(43 26 16) 48px,
			rgb(43 26 16 / 0.9) 160px,
			rgb(54 33 19 / 0.76) 280px,
			rgb(66 40 23 / 0.66) 420px,
			rgb(66 40 23 / 0.72) 65%,
			rgb(43 26 16 / 0.95) 100%) !important;
}
/* Grains de café décoratifs (ajoutés par grainsDecor() dans animations.js), animés en transform seulement */
.ad-grains { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; border-radius: inherit; }
.ad-grains img {
	position: absolute;
	height: auto;
	max-width: none;
	will-change: transform;
	filter: drop-shadow(0 10px 12px rgb(0 0 0 / 0.35));
}
.ad-gamme > .e-con-inner { position: relative; z-index: 2; }

/* Cartes */
.ad-gamme-grille { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ad-gamme-carte {
	position: relative;
	/* Pas de backdrop-filter : le fond est déjà flouté, et ce filtre se recalcule à chaque image. */
	background: linear-gradient(160deg, rgb(251 245 236 / 0.1), rgb(43 26 16 / 0.35));
	border: 1px solid rgb(235 220 198 / 0.16);
	box-shadow: 0 30px 60px -40px rgb(0 0 0 / 0.8);
}
/* Transitions de survol activées seulement après l'entrée animée (sinon elles freinent GSAP). */
.ad-js .ad-gamme-pret .ad-gamme-carte {
	transition-property: transform, background-color, border-color, box-shadow !important;
	transition-duration: 0.45s !important;
	transition-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1) !important;
}
.ad-gamme-carte:hover {
	transform: translateY(-6px);
	background: linear-gradient(160deg, rgb(251 245 236 / 0.14), rgb(43 26 16 / 0.3));
	border-color: rgb(212 123 44 / 0.55);
	box-shadow: 0 40px 70px -40px rgb(0 0 0 / 0.9), 0 0 0 1px rgb(212 123 44 / 0.25);
}
/* Visuel : la machine sur un halo caramel et une ombre portée au sol */
.ad-gamme-visuel {
	position: relative;
	height: clamp(200px, 34vh, 320px);
	justify-content: flex-end;
	margin-bottom: 6px;
}
.ad-gamme-visuel::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 52%;
	width: 78%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgb(212 123 44 / 0.42), rgb(212 123 44 / 0.08) 55%, transparent 70%);
	transform: translate(-50%, -50%) scale(0.9);
	transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1), opacity 0.6s ease;
	opacity: 0.8;
}
.ad-gamme-visuel::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 4px;
	width: 56%;
	height: 18px;
	border-radius: 50%;
	background: radial-gradient(ellipse, rgb(0 0 0 / 0.55), transparent 70%);
	transform: translateX(-50%);
}
.ad-gamme-carte:hover .ad-gamme-visuel::before { transform: translate(-50%, -50%) scale(1.08); opacity: 1; }
.ad-gamme-photo { position: relative; z-index: 1; width: 100%; height: 100%; }
.ad-gamme-photo .elementor-widget-container,
.ad-gamme-photo { display: flex; justify-content: center; align-items: flex-end; }
.ad-gamme-photo img {
	height: 100% !important;
	width: auto !important;
	max-width: 100% !important;
	object-fit: contain;
	filter: drop-shadow(0 24px 30px rgb(0 0 0 / 0.45));
}
.ad-gamme-pret .ad-gamme-photo img { transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1); }
.ad-gamme-carte:hover .ad-gamme-photo img { transform: translateY(-8px) scale(1.03); }
.ad-gamme-tag .elementor-heading-title {
	display: inline-block;
	padding: 5px 12px;
	border: 1px solid rgb(212 123 44 / 0.45);
	border-radius: 999px;
	font-size: 0.72rem !important;
}
.ad-gamme-carte .elementor-widget-text-editor p,
.ad-gamme-combo .elementor-widget-text-editor p { margin: 0; }
.ad-gamme-carte h3.elementor-heading-title { margin: 0; }
/* Lien étiré : toute la carte est cliquable */
.ad-gamme-lien { margin-top: auto; padding-top: 6px; }
.ad-gamme-lien, .ad-gamme-lien .elementor-widget-container, .ad-gamme-lien p { position: static !important; }
.ad-gamme-lien a { color: inherit; text-decoration: none; }
.ad-gamme-lien a::after { content: ""; position: absolute; inset: 0; border-radius: 28px; z-index: 3; }
.ad-gamme-lien a span { display: inline-block; transition: transform 0.3s ease; }
.ad-gamme-carte:hover .ad-gamme-lien a span { transform: translateX(5px); }
.ad-gamme-carte:has(a:focus-visible) { outline: 2px solid var(--e-global-color-accent, #D47B2C); outline-offset: 3px; }
.ad-gamme-lien a:focus-visible { outline: none; }

/* Bandeau « combinez-les » */
.ad-gamme-combo {
	position: relative;
	overflow: hidden;
	box-shadow: 0 40px 80px -40px rgb(0 0 0 / 0.7);
}
.ad-gamme-combo::before {
	content: "";
	position: absolute;
	right: -10%;
	top: -40%;
	width: 60%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgb(212 123 44 / 0.22), transparent 65%);
	pointer-events: none;
}
.ad-gamme-combo > .e-con { position: relative; z-index: 1; }
.ad-gamme-combo-texte { flex: 1 1 56% !important; }
.ad-gamme-combo-texte h3.elementor-heading-title { font-size: clamp(1.6rem, 2.6vw, 2.4rem) !important; margin: 0; }
.ad-gamme-formule {
	width: auto !important;
	flex-wrap: nowrap !important;
	padding: 8px 14px !important;
	border-radius: 999px;
	background: rgb(169 90 23 / 0.1);
}
.ad-gamme-formule > .elementor-widget { width: auto !important; }
.ad-gamme-formule .elementor-heading-title { margin: 0; font-weight: 600; white-space: nowrap; }
.ad-gamme-formule .elementor-icon { display: flex; }
.ad-gamme-actions { margin-top: 6px; }
.ad-gamme-actions > .elementor-widget { width: auto !important; }
.ad-gamme-lien-secondaire a { color: inherit; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgb(169 90 23 / 0.35); }
.ad-gamme-lien-secondaire a:hover { text-decoration-color: currentColor; }
/* Les trois machines regroupées, celle du centre au premier plan */
.ad-gamme-trio { flex: 1 1 44% !important; min-height: clamp(200px, 30vh, 280px); }
.ad-gamme-trio > .elementor-widget { width: auto !important; flex: none; }
/* Les photos ont de larges marges transparentes : on recadre sur la machine (centrée). */
.ad-gamme-trio img {
	width: auto !important;
	max-width: none !important;
	aspect-ratio: 0.46;
	object-fit: cover;
	filter: drop-shadow(0 20px 22px rgb(43 26 16 / 0.35));
}
/* Même hauteur pour les trois : les photos sont à l'échelle entre elles (la fontaine est plus basse). */
.ad-gamme-trio img { height: clamp(220px, 32vh, 300px) !important; }
.ad-gamme-trio-2 { position: relative; z-index: 2; margin-inline: -22px !important; }

/* Tablette : cartes plus compactes */
@media (max-width: 1024px) {
	.ad-gamme-grille { gap: 16px !important; }
	.ad-gamme-carte { --padding-left: 20px !important; --padding-right: 20px !important; }
	.ad-gamme-visuel { height: clamp(180px, 24vh, 240px); }
	.ad-gamme-trio-2 { margin-inline: -16px !important; }
}
/* Téléphones : cartes à faire glisser, la suivante dépasse ; bandeau en colonne */
@media (max-width: 767px) {
	.ad-gamme-grille {
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 14px !important;
		margin-inline: -16px;
		padding: 4px 16px 12px !important;
		width: calc(100% + 32px) !important;
		max-width: none !important;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: 16px;
		scrollbar-width: none;
	}
	.ad-gamme-grille::-webkit-scrollbar { display: none; }
	.ad-gamme-carte { flex: 0 0 82% !important; scroll-snap-align: start; }
	.ad-gamme-visuel { height: 220px; }
	.ad-gamme-trio { order: -1; min-height: 0; width: 100%; }
	.ad-gamme-trio img { height: 190px !important; }
	.ad-gamme-trio-2 { margin-inline: -14px !important; }
	.ad-gamme-actions .elementor-widget-button,
	.ad-gamme-actions .elementor-button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.ad-gamme-carte, .ad-gamme-photo img, .ad-gamme-visuel::before { transition: none !important; }
	.ad-gamme-carte:hover, .ad-gamme-carte:hover .ad-gamme-photo img { transform: none; }
}

/* Défilement horizontal */
.ad-horizontal { overflow: hidden; }
.ad-piste.ad-piste-active { flex-wrap: nowrap !important; width: max-content !important; max-width: none !important; }
.ad-piste.ad-piste-active > * { flex: none !important; width: 420px !important; }
.ad-ligne-progression {
	display: block;
	height: 3px;
	margin-top: 40px;
	border-radius: 3px;
	background: var(--e-global-color-accent, #D47B2C);
	transform: scaleX(0);
	transform-origin: 0 50%;
}

/* Grands chiffres */
.ad-compteur .elementor-heading-title { font-variant-numeric: tabular-nums; }

/* Chiffres clés (.ad-chiffres) : dans chaque colonne, le chiffre en grand et sa légende
   à côté, sur une seule ligne. */
.ad-chiffres > .e-con {
	flex-direction: row !important;
	align-items: center !important;
	--gap: 0px 16px;
	--row-gap: 0px;
	--column-gap: 16px;
	gap: 0 16px !important;
}
.ad-chiffres .ad-compteur { flex: none; width: auto !important; }
.ad-chiffres .ad-compteur .elementor-heading-title {
	font-size: clamp(2.4rem, 3.3vw, 3.4rem) !important;
	line-height: 1 !important;
	white-space: nowrap;
}
.ad-chiffres .elementor-widget-text-editor { flex: 1 1 0; min-width: 0; }
.ad-chiffres .elementor-widget-text-editor p { margin: 0; line-height: 1.4; }
@media (min-width: 1025px) and (max-width: 1200px) {
	.ad-chiffres .elementor-widget-text-editor { font-size: 0.85rem !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.ad-chiffres { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 767px) {
	.ad-chiffres .ad-compteur .elementor-heading-title { font-size: 2.6rem !important; }
}

/* Carte inclinable : reflet lumineux qui suit la souris */
.ad-inclinaison { transform-style: preserve-3d; will-change: transform; }
.ad-inclinaison-active::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: radial-gradient(circle at var(--ad-gx, 50%) var(--ad-gy, 50%), rgb(255 255 255 / 0.22), transparent 45%);
	opacity: 0;
	transition: opacity 0.3s ease;
	pointer-events: none;
	z-index: 2;
}
.ad-inclinaison-active:hover::before { opacity: 1; }
.ad-inclinaison-active.ad-carte:hover { transform: none; }

/* À propos, « Notre histoire » : image à droite du texte (sous le texte en tablette et mobile),
   dans un cadre arrondi latte avec un halo caramel. L'image (widget Image Elementor) se remplace
   librement : photo ou détouré, elle reste entière dans le cadre (ratio 4:3). */
.ad-histoire-visuel {
	position: relative;
	overflow: hidden;
	border-radius: 28px;
	aspect-ratio: 4 / 3;
	background:
		radial-gradient(ellipse 70% 60% at 50% 55%, rgb(212 123 44 / 0.22), transparent 70%),
		var(--e-global-color-latte, #EBDCC6);
	box-shadow: 0 0 0 1px rgb(83 50 28 / 0.08), 0 40px 70px -45px rgb(43 26 16 / 0.5);
}
.ad-histoire-visuel > .elementor-widget-image { position: absolute; inset: 0; width: 100% !important; }
.ad-histoire-visuel > .elementor-widget-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: contain;
	padding: 6% 8% 0;
}
@media (max-width: 1024px) {
	.ad-histoire-visuel { width: 100% !important; max-width: 640px; }
}

/* Bloc lumineux d'appel à l'action */
.ad-lueur { position: relative; overflow: hidden; isolation: isolate; }
.ad-lueur-halo {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 560px;
	height: 560px;
	border-radius: 50%;
	background: radial-gradient(circle, rgb(212 123 44 / 0.5) 0%, transparent 65%);
	transform: translate(-50%, -50%);
	z-index: -1;
	pointer-events: none;
}

/* ==========================================================================
   Fin de l'accueil : rythme clair (formules) / foncé (zones) / clair (CTA)
   ========================================================================== */

/* --- Formules (.ad-formules-v3) : fond latte, lueurs caramel et trame de points --- */
/* Fond latte à trame de points et halos caramel (aussi .ad-eligibilite-v2 sur la page Dépôt). */
.ad-formules-v3,
.ad-eligibilite-v2 {
	position: relative;
	isolation: isolate;
	background-image:
		radial-gradient(ellipse 55% 45% at 88% 0%, rgb(212 123 44 / 0.2), transparent 70%),
		radial-gradient(ellipse 45% 40% at 0% 100%, rgb(169 90 23 / 0.14), transparent 70%),
		radial-gradient(rgb(83 50 28 / 0.1) 1px, transparent 1.5px) !important;
	background-size: auto, auto, 22px 22px !important;
}
.ad-formules-v3 .ad-carte {
	position: relative;
	overflow: hidden;
	border-radius: 24px;
	border: 1px solid rgb(83 50 28 / 0.08);
}
/* Filet caramel qui se déploie en haut de la carte au survol */
.ad-formules-v3 .ad-carte::after {
	content: "" !important;
	position: absolute !important;
	inset: 0 0 auto !important;
	width: auto !important;
	height: 4px !important;
	background: linear-gradient(90deg, var(--e-global-color-accent, #D47B2C), var(--e-global-color-caramelf, #A95A17)) !important;
	transform: scaleX(0);
	transform-origin: 0 50%;
	transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
	pointer-events: none;
	z-index: 3;
}
.ad-formules-v3 .ad-carte:hover::after { transform: scaleX(1); }
/* Icône dans une tuile teintée */
.ad-formules-v3 .ad-carte .elementor-widget-icon { width: auto !important; }
.ad-formules-v3 .ad-carte .elementor-widget-icon .elementor-icon {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border-radius: 16px;
	background: rgb(212 123 44 / 0.12);
	transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.ad-formules-v3 .ad-carte:hover .elementor-widget-icon .elementor-icon { transform: rotate(-6deg) scale(1.06); }
/* Carte vedette « Dépôt gratuit » : chocolat, anneau caramel, lueur intérieure */
.ad-formule-vedette {
	background-image: radial-gradient(ellipse 80% 60% at 100% 0%, rgb(212 123 44 / 0.3), transparent 70%) !important;
	border-color: rgb(212 123 44 / 0.5) !important;
	box-shadow: 0 0 0 1px rgb(212 123 44 / 0.25), 0 34px 70px -34px rgb(43 26 16 / 0.7) !important;
}
.ad-formule-vedette .elementor-widget-icon .elementor-icon { background: rgb(212 123 44 / 0.2); }
.ad-formule-badge { position: absolute !important; top: 24px; right: 24px; width: auto !important; z-index: 2; }
.ad-formule-badge .elementor-heading-title {
	padding: 6px 12px;
	border-radius: 999px;
	background: var(--e-global-color-accent, #D47B2C);
	font-size: 0.7rem !important;
	box-shadow: 0 8px 18px -8px rgb(212 123 44 / 0.8);
}

/* --- Zones (.ad-zones) : fond chocolat, liste compacte et carte animée --- */
.ad-zones {
	position: relative;
	isolation: isolate;
	background-image:
		radial-gradient(ellipse 50% 60% at 100% 50%, rgb(212 123 44 / 0.16), transparent 70%),
		radial-gradient(ellipse 40% 50% at 0% 0%, rgb(43 26 16 / 0.5), transparent 70%) !important;
}
.ad-zones-liste { margin-block: 6px 10px; }
.ad-zone { box-shadow: none !important; transition: border-color 0.3s ease, background-color 0.3s ease !important; }
.ad-zone:hover { border-color: rgb(212 123 44 / 0.55) !important; background-color: rgb(251 245 236 / 0.08) !important; }
.ad-zone .elementor-widget-text-editor p { margin: 0; }
.ad-zones-visuel {
	padding: clamp(12px, 2vw, 24px) !important;
	border-radius: 28px;
	background: rgb(43 26 16 / 0.35);
	border: 1px solid rgb(235 220 198 / 0.12);
	box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.04), 0 40px 80px -50px rgb(0 0 0 / 0.8);
}
.ad-zones-carte, .ad-zones-carte .elementor-widget-container { width: 100%; }
.ad-carte-svg { display: block; width: 100%; height: auto; max-height: min(540px, 72vh); margin-inline: auto; overflow: visible; }
.ad-carte-svg pattern circle { fill: rgb(235 220 198 / 0.14); }
.ad-carte-frontiere { fill: none; stroke: rgb(235 220 198 / 0.35); stroke-width: 1.5; stroke-dasharray: 6 6; }
.ad-carte-region { fill: rgb(235 220 198 / 0.3); font-weight: 600; font-size: 13px; letter-spacing: 0.24em; }
.ad-carte-liaison { fill: none; stroke: rgb(212 123 44 / 0.75); stroke-width: 1.5; stroke-linecap: round; }
.ad-carte-halo { fill: rgb(212 123 44 / 0.22); }
.ad-carte-point { fill: var(--e-global-color-accent, #D47B2C); }
.ad-carte-siege .ad-carte-point { fill: var(--e-global-color-creme, #FBF5EC); stroke: var(--e-global-color-accent, #D47B2C); stroke-width: 3; }
.ad-carte-ville text { fill: var(--e-global-color-creme, #FBF5EC); font-weight: 600; font-size: 14px; paint-order: stroke; stroke: rgb(43 26 16 / 0.6); stroke-width: 3px; }
.ad-carte-siege text { font-size: 18px; }
.ad-carte-onde { fill: none; stroke: rgb(212 123 44 / 0.55); stroke-width: 1.5; opacity: 0; transform-box: fill-box; transform-origin: center; }
.ad-carte-active .ad-carte-onde { animation: ad-onde-carte 4.5s ease-out infinite; }
.ad-carte-active .ad-carte-onde-1 { animation-delay: 1.5s; }
.ad-carte-active .ad-carte-onde-2 { animation-delay: 3s; }
@keyframes ad-onde-carte {
	0%   { transform: scale(0.15); opacity: 0.9; }
	100% { transform: scale(3.4); opacity: 0; }
}

/* --- CTA finale (.ad-cta-final) : la carte .ad-lueur garde sa lumière qui suit la souris.
   Fond crème uni : la section est suivie directement par le pied de page chocolat. --- */
.ad-cta-final .ad-lueur {
	box-shadow: inset 0 0 0 1px rgb(212 123 44 / 0.22), 0 50px 100px -50px rgb(43 26 16 / 0.75);
	background-image: radial-gradient(ellipse 70% 60% at 50% 120%, rgb(212 123 44 / 0.28), transparent 70%) !important;
}
.ad-cta-final .ad-lueur > .elementor-element { position: relative; z-index: 2; }
/* Titres longs (CTA des pages intérieures) : lignes équilibrées, pas de mot seul. */
.ad-cta-final .elementor-heading-title { text-wrap: balance; }

@media (max-width: 767px) {
	.ad-formule-badge { top: 18px; right: 18px; }
	.ad-carte-region { font-size: 15px; }
	.ad-carte-ville text { font-size: 17px; }
	.ad-carte-siege text { font-size: 21px; }
}
@media (prefers-reduced-motion: reduce) {
	.ad-carte-active .ad-carte-onde { animation: none; }
	.ad-formules-v3 .ad-carte::after,
	.ad-formules-v3 .ad-carte .elementor-widget-icon .elementor-icon { transition: none; }
}

/* Sans animation : tout est visible, sans transformation */
.ad-sans-animation .ad-mot-plein > span { opacity: 1 !important; }

/* ==========================================================================
   Composants des pages intérieures
   ========================================================================== */

/* Fil d'Ariane */
.ad-fil-ariane ol {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.875rem;
	color: var(--e-global-color-latte, #EBDCC6);
}
.ad-fil-ariane li + li::before { content: "›"; margin-inline-end: 0.4rem; opacity: 0.6; }
.ad-fil-ariane a { color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgb(235 220 198 / 0.4); }
.ad-fil-ariane a:hover { color: var(--e-global-color-accent, #D47B2C); }
.ad-fil-ariane [aria-current] { color: var(--e-global-color-creme, #FBF5EC); }

/* Fil d'Ariane masqué : seul le widget visible disparaît, ses données structurées
   (BreadcrumbList) restent dans la page pour Google. */
.elementor-widget-shortcode:has(.ad-fil-ariane) { display: none !important; }

/* Bandeau de page intérieure, plus compact que celui de l'accueil */
.ad-hero-page .elementor-widget-image img { max-height: min(420px, 48vh); width: auto; margin-inline: auto; }
/* Visuel à plat (.ad-visuel-plat) : photo détourée avec une ombre douce, sans 3D */
.ad-visuel-plat .elementor-widget-image img { filter: drop-shadow(0 40px 50px rgb(0 0 0 / 0.5)); }
/* Vidéo en boucle dans un cadre arrondi (.ad-video-cadre), halo caramel ; le format (1:1)
   se règle dans le widget Elementor. */
.ad-video-cadre { width: 100%; }
.ad-video-cadre .elementor-wrapper {
	width: min(100%, 58vh, 500px);
	margin-inline: auto;
	border-radius: 28px;
	overflow: hidden;
	background: #2B1A10;
	box-shadow: 0 0 0 1px rgb(235 220 198 / 0.12), 0 50px 100px -40px rgb(0 0 0 / 0.75), 0 0 140px -30px rgb(212 123 44 / 0.45);
}
.ad-video-cadre video { display: block; width: 100%; height: 100%; object-fit: cover; }
/* Téléphones : le visuel s'empilerait sous le texte et ferait déborder le bandeau de l'écran. */
@media (max-width: 767px) {
	.ad-hero-page .ad-scene-3d,
	.ad-hero-page .ad-visuel-plat { display: none !important; }
}
/* Tablette en paysage : empilés, texte et visuel dépasseraient la hauteur de l'écran ;
   ils restent côte à côte comme sur ordinateur (en portrait, il y a la place en hauteur). */
@media (min-width: 900px) and (max-width: 1024px) and (orientation: landscape) {
	.ad-hero-page > .e-con-inner:has(> .ad-visuel-plat, > .ad-scene-3d) { flex-direction: row !important; align-items: center !important; }
	.ad-hero-page > .e-con-inner:has(> .ad-visuel-plat, > .ad-scene-3d) > .e-con:first-child { width: 56% !important; }
	.ad-hero-page > .e-con-inner > .ad-visuel-plat,
	.ad-hero-page > .e-con-inner > .ad-scene-3d { width: 44% !important; }
}

/* Contenu à compléter par Autodistri (tarifs, coordonnées…) : bien visible */
mark.ad-a-completer {
	background: #FFF1B8;
	color: #5A4300;
	border: 1px dashed #C9A100;
	border-radius: 6px;
	padding: 0.05em 0.4em;
	font-weight: 600;
}

/* Tableaux (comparatif, tarifs) */
.ad-tableau table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid rgb(83 50 28 / 0.12); border-radius: 18px; overflow: hidden; background: #fff; margin: 0; }
.ad-tableau th, .ad-tableau td { padding: 16px 18px; text-align: left; vertical-align: top; border-bottom: 1px solid rgb(83 50 28 / 0.08); }
.ad-tableau thead th { background: var(--e-global-color-primary, #2B1A10); color: var(--e-global-color-creme, #FBF5EC); font-weight: 600; }
.ad-tableau tbody th { font-weight: 600; color: var(--e-global-color-primary, #2B1A10); }
.ad-tableau tbody tr:last-child > * { border-bottom: 0; }
.ad-tableau tbody tr:nth-child(even) { background: var(--e-global-color-creme, #FBF5EC); }
@media (max-width: 767px) {
	.ad-tableau { overflow-x: auto; }
	.ad-tableau table { min-width: 560px; }
}

/* FAQ */
.ad-faq .elementor-toggle-item { border-radius: 16px; overflow: hidden; }
.ad-faq .elementor-tab-title { cursor: pointer; }
.ad-faq .elementor-tab-title:focus-visible { outline: 2px solid var(--e-global-color-accent, #D47B2C); outline-offset: -2px; }
.ad-faq .elementor-tab-content { background: #fff; }

/* Grilles de produits WooCommerce dans les pages */
.ad-produits ul.products { margin: 0; }
.ad-produits ul.products li.product {
	background: #fff;
	border: 1px solid rgb(83 50 28 / 0.1);
	border-radius: 20px;
	padding: 18px;
	text-align: left;
}
.ad-produits ul.products li.product .woocommerce-loop-product__title { font-family: Fraunces, Georgia, serif; font-size: 1.2rem; }
.ad-produits ul.products li.product .price { color: var(--e-global-color-caramelf, #A95A17); font-weight: 600; }
.ad-produits ul.products li.product .button { border-radius: 999px; background: var(--e-global-color-accent, #D47B2C); color: var(--e-global-color-primary, #2B1A10); }
/* Message affiché tant qu'aucun produit n'est publié dans la gamme */
.ad-produits:not(:has(li.product))::after {
	content: "Les produits de cette gamme arrivent très bientôt dans la boutique.";
	display: block;
	padding: 18px 22px;
	border-radius: 16px;
	background: var(--e-global-color-creme, #FBF5EC);
	border: 1px dashed rgb(83 50 28 / 0.25);
	color: var(--e-global-color-doux, #6B5646);
}

/* Formulaire de contact (Contact Form 7) */
.ad-formulaire .wpcf7-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
.ad-formulaire .wpcf7-form > p { margin: 0; }
.ad-formulaire .ad-champ-large, .ad-formulaire .wpcf7-form > .wpcf7-response-output, .ad-formulaire .wpcf7-form > p:has(.wpcf7-submit) { grid-column: 1 / -1; }
/* Anti-robots (functions.php) : champ piège hors écran ; place réservée au widget Turnstile. */
.ad-piege { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ad-anti-robot { min-height: 65px; }
.ad-anti-robot .cf-turnstile { display: block; max-width: 420px; }
.ad-formulaire label { display: block; font-weight: 600; color: var(--e-global-color-primary, #2B1A10); font-size: 0.95rem; }
.ad-formulaire label .ad-requis { color: var(--e-global-color-caramelf, #A95A17); }
.ad-formulaire input[type="text"], .ad-formulaire input[type="email"], .ad-formulaire input[type="tel"], .ad-formulaire select, .ad-formulaire textarea {
	width: 100%;
	margin-top: 6px;
	padding: 13px 16px;
	border: 1.5px solid rgb(83 50 28 / 0.2);
	border-radius: 12px;
	background: #fff;
	font: inherit;
	color: var(--e-global-color-primary, #2B1A10);
}
.ad-formulaire input:focus, .ad-formulaire select:focus, .ad-formulaire textarea:focus { border-color: var(--e-global-color-accent, #D47B2C); outline: 2px solid rgb(212 123 44 / 0.25); outline-offset: 0; }
.ad-formulaire textarea { min-height: 160px; }
.ad-formulaire .wpcf7-acceptance label { font-weight: 400; font-size: 0.9rem; color: var(--e-global-color-doux, #6B5646); }
.ad-formulaire .wpcf7-submit {
	border: 0;
	border-radius: 999px;
	padding: 15px 32px;
	background: var(--e-global-color-accent, #D47B2C);
	color: var(--e-global-color-primary, #2B1A10);
	font-weight: 600;
	cursor: pointer;
}
.ad-formulaire .wpcf7-submit:hover { background: var(--e-global-color-latte, #EBDCC6); }
.ad-formulaire .wpcf7-not-valid-tip { color: #A3261B; font-size: 0.875rem; }
@media (max-width: 767px) { .ad-formulaire .wpcf7-form { grid-template-columns: 1fr; } }

/* Bouton « Remonter en haut de page » */
.ad-haut {
	position: fixed;
	right: max(20px, env(safe-area-inset-right));
	bottom: max(20px, env(safe-area-inset-bottom));
	z-index: 90;
	width: 52px;
	height: 52px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: rgb(43 26 16 / 0.88);
	color: var(--e-global-color-creme, #FBF5EC);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	/* Liseré clair : le bouton reste visible même sur les sections foncées. */
	box-shadow: 0 0 0 1px rgb(251 245 236 / 0.22), 0 10px 28px -10px rgb(43 26 16 / 0.6);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(14px) scale(0.9);
	transition: opacity 0.3s ease, transform 0.3s ease, visibility 0s linear 0.3s, background-color 0.2s ease;
}
.ad-haut.ad-haut-visible {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition: opacity 0.3s ease, transform 0.3s ease, visibility 0s, background-color 0.2s ease;
}
/* Les styles de boutons du kit Elementor (Réglages du site > Boutons) visent tous les
   <button> du site : on les neutralise ici pour garder un rond parfait. */
button.ad-haut {
	padding: 0 !important;
	margin: 0 !important;
	min-width: 0 !important;
	width: 52px !important;
	height: 52px !important;
	border: 0 !important;
	border-radius: 50% !important;
	background-color: rgb(43 26 16 / 0.88) !important;
	color: var(--e-global-color-creme, #FBF5EC) !important;
	line-height: 0 !important;
	font-size: 0 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	overflow: visible;
}
button.ad-haut:hover, button.ad-haut:focus { background-color: var(--e-global-color-primary, #2B1A10) !important; color: var(--e-global-color-creme, #FBF5EC) !important; }
.ad-haut:hover .ad-haut-fleche { transform: translateY(-2px); }
.ad-haut:focus-visible { outline: 3px solid var(--e-global-color-accent, #D47B2C); outline-offset: 3px; }
.ad-haut svg { grid-area: 1 / 1; }
.ad-haut-anneau { width: 52px; height: 52px; transform: rotate(-90deg); }
.ad-haut-anneau circle { fill: none; stroke-width: 2.5; stroke: rgb(235 220 198 / 0.18); }
.ad-haut-anneau .ad-haut-progression {
	stroke: var(--e-global-color-accent, #D47B2C);
	stroke-linecap: round;
	stroke-dasharray: 100;
	stroke-dashoffset: 100;
}
.ad-haut-fleche {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.4;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: transform 0.2s ease;
}
@media (max-width: 767px) {
	.ad-haut { right: max(14px, env(safe-area-inset-right)); bottom: max(14px, env(safe-area-inset-bottom)); }
	button.ad-haut { width: 46px !important; height: 46px !important; }
	.ad-haut-anneau { width: 46px; height: 46px; }
}
@media (prefers-reduced-motion: reduce) {
	.ad-haut, .ad-haut.ad-haut-visible, .ad-haut-fleche { transition: none; transform: none; }
}

/* --------------------------------------------------------------------------
   Écran de chargement (functions.php). html.ad-chargement-actif = écran plein (chaque page) ;
   html.ad-chargement-leger = retour arrière ou moins d'animations (barre du haut seule).
   .ad-chargement-go : le trait se remplit ; .ad-charge : page prête (ouverture) ;
   .ad-charge-fini : écran retiré.
   -------------------------------------------------------------------------- */
.ad-chargement { display: none; }
.ad-chargement-actif .ad-chargement {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: grid;
	place-items: center;
	background:
		radial-gradient(circle at 50% 46%, rgb(212 123 44 / 0.2), transparent 50%),
		var(--e-global-color-primary, #2B1A10);
	clip-path: inset(0 0 0 0);
	transition: clip-path 0.7s cubic-bezier(0.76, 0, 0.24, 1) 0.2s;
	/* Filet de sécurité : l'écran disparaît de lui-même si le script ne tourne pas. */
	animation: ad-chargement-secours 0.4s ease 2.2s forwards;
}
.ad-chargement-contenu {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 30px;
	transition: opacity 0.35s ease, transform 0.5s cubic-bezier(0.76, 0, 0.24, 1);
}
.ad-chargement-logo {
	width: clamp(160px, 22vw, 210px);
	height: auto;
	animation: ad-chargement-respire 2.4s ease-in-out infinite;
}
.ad-chargement-piste {
	position: relative;
	display: block;
	width: clamp(140px, 18vw, 190px);
	height: 2px;
	border-radius: 2px;
	overflow: hidden;
	background: rgb(235 220 198 / 0.14);
}
.ad-chargement-piste > span,
.ad-barre-chargement {
	background: linear-gradient(90deg, var(--e-global-color-caramelf, #A95A17), var(--e-global-color-accent, #D47B2C), #F2B36B);
	transform-origin: 0 50%;
	transform: scaleX(0);
}
.ad-chargement-piste > span {
	position: absolute;
	inset: 0;
	border-radius: inherit;
	box-shadow: 0 0 12px rgb(212 123 44 / 0.8);
	transition: transform 1s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.ad-chargement-go .ad-chargement-piste > span { transform: scaleX(0.75); }
/* Page prête : le trait se complète, le logo s'efface, puis l'écran s'ouvre vers le haut. */
.ad-charge .ad-chargement-piste > span { transform: scaleX(1); transition-duration: 0.3s; }
.ad-charge .ad-chargement-contenu { opacity: 0; transform: translateY(-16px); transition-delay: 0.1s; }
.ad-charge .ad-chargement { clip-path: inset(0 0 100% 0); }
.ad-charge-fini .ad-chargement { display: none; }

/* Fine barre en haut de l'écran : départ vers une autre page (lancée au clic par le script),
   puis complétée sur la page suivante. */
.ad-barre-chargement {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100001;
	height: 3px;
	pointer-events: none;
	opacity: 0;
	box-shadow: 0 0 10px rgb(212 123 44 / 0.7);
}
.ad-chargement-leger .ad-barre-chargement { opacity: 1; transform: scaleX(0.6); transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1); }
.ad-chargement-leger.ad-chargement-go .ad-barre-chargement { transform: scaleX(0.85); }
.ad-chargement-leger.ad-charge .ad-barre-chargement { transform: scaleX(1); opacity: 0; transition: transform 0.35s ease-out, opacity 0.4s ease 0.35s; }

@keyframes ad-chargement-respire {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: 0.82; transform: scale(0.975); }
}
@keyframes ad-chargement-secours {
	to { opacity: 0; visibility: hidden; }
}
@media (prefers-reduced-motion: reduce) {
	.ad-chargement-logo { animation: none; }
	.ad-barre-chargement, .ad-chargement-piste > span { transition: none !important; }
}

/* Accessibilité : focus visible */
:where(a, button, input, select, textarea):focus-visible {
	outline: 2px solid var(--e-global-color-accent, #D47B2C);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.ad-carte, .ad-carte:hover { transition: none; transform: none; }
}


/* ==========================================================================
   Bandeau de consentement aux cookies (extension CookieYes)
   Espacement régulier entre les boutons, y compris quand ils passent à la ligne.
   ========================================================================== */
.cky-consent-container .cky-notice-btn-wrapper {
	gap: 12px;
}
.cky-consent-container .cky-notice-btn-wrapper .cky-btn {
	margin: 0;
}
@media (max-width: 440px) {
	.cky-consent-container .cky-notice-btn-wrapper {
		margin-top: 16px;
	}
}
/* Mobile : le bouton « modifier mes choix » passe à droite, au-dessus du bouton retour en haut
   (.ad-haut), au lieu de recouvrir le texte aligné à gauche. */
@media (max-width: 767px) {
	.cky-btn-revisit-wrapper.cky-revisit-bottom-left {
		left: auto !important;
		right: max(14px, env(safe-area-inset-right)) !important;
		bottom: calc(max(14px, env(safe-area-inset-bottom)) + 56px) !important;
	}
}

/* ==========================================================================
   Pages de texte sans Elementor (templates/page-texte.php) : politique de confidentialité…
   Texte en colonne lisible sur fond crème, titres en Fraunces, listes à puces caramel.
   ========================================================================== */
.ad-texte {
	max-width: 760px;
	margin-inline: auto;
	padding: 56px 24px 96px;
	color: var(--e-global-color-text, #3D2A1E);
	font-size: 1.02rem;
	line-height: 1.75;
}
.ad-texte > :first-child { margin-top: 0; }
.ad-texte h2 {
	margin: 2.6em 0 0.7em;
	padding-top: 1.4em;
	border-top: 1px solid rgb(83 50 28 / 0.12);
	color: var(--e-global-color-primary, #2B1A10);
	font-family: var(--e-global-typography-primary-font-family, Fraunces), Georgia, serif;
	font-size: clamp(1.45rem, 1.1rem + 1vw, 1.85rem);
	font-weight: 600;
	line-height: 1.25;
}
.ad-texte > h2:first-child { padding-top: 0; border-top: 0; }
.ad-texte h3 {
	margin: 1.8em 0 0.5em;
	color: var(--e-global-color-primary, #2B1A10);
	font-family: var(--e-global-typography-primary-font-family, Fraunces), Georgia, serif;
	font-size: 1.2rem;
	font-weight: 600;
	line-height: 1.3;
}
.ad-texte p { margin: 0 0 1em; }
.ad-texte ul { margin: 0 0 1.2em; padding: 0; list-style: none; }
.ad-texte li { position: relative; margin: 0 0 0.5em; padding-left: 1.4em; }
.ad-texte li::before {
	content: "";
	position: absolute;
	left: 0.2em;
	top: 0.72em;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--e-global-color-accent, #D47B2C);
}
.ad-texte strong { color: var(--e-global-color-primary, #2B1A10); font-weight: 600; }
.ad-texte a { color: var(--e-global-color-caramelf, #A95A17); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.ad-texte a:hover { color: var(--e-global-color-primary, #2B1A10); }
@media (max-width: 767px) {
	.ad-texte { padding: 40px 16px 64px; font-size: 1rem; }
}