/* =========================================================================
   AGP – feuille de style du thème enfant (source)
   « :is(.agp,.editor-styles-wrapper) » est remplacé par :is(.agp,.editor-styles-wrapper) lors de la génération de agp.css
   afin que les mêmes règles s'appliquent sur le site (classe body .agp) et dans l'éditeur,
   avec une spécificité supérieure aux règles de contenu de Kadence (.single-content p, h2…).
   ========================================================================= */

:root {
	--agp-orange: #C1440E;
	--agp-orange-fonce: #8E3209;
	--agp-jaune: #F5A623;
	--agp-sable: #E8B98F;
	--agp-noir: #1B1B1B;
	--agp-noir-2: #2C2C2C;
	--agp-gris-bouton: #4A4A4A;
	--agp-gris: #6E6E6E;
	--agp-gris-clair: #9C948C;
	--agp-texte-clair: #CFC8C0;
	--agp-creme: #F7F3EE;
	--agp-creme-2: #EFE9E2;
	--agp-bordure: #E4DCD2;
	--agp-bordure-2: #EDE6DE;
	--agp-chip: #DDD5CC;
	--agp-blanc: #FFFFFF;
	--agp-police: var(--global-body-font-family, 'Manrope'), 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--agp-largeur: 1280px;
	--agp-marge: 28px;
	--agp-section: 84px;
}

@media (max-width: 767px) {
	:root {
		--agp-marge: 20px;
		--agp-section: 60px;
	}
}

/* ---------- Enveloppe des groupes ----------
   Kadence n'ayant pas de theme.json, WordPress ajoute un div.wp-block-group__inner-container
   dans chaque bloc Groupe (site et éditeur). On le neutralise sur les groupes AGP pour que
   leurs grilles/flex s'appliquent directement aux blocs enfants. */
[class*="agp-"] > .wp-block-group__inner-container {
	display: contents;
}

/* ---------- Base ---------- */
body.agp {
	background: var(--agp-creme);
	color: var(--agp-noir);
	font-family: var(--agp-police);
	-webkit-font-smoothing: antialiased;
}

:is(.agp,.editor-styles-wrapper) .agp-container {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--agp-largeur);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--agp-marge);
	padding-right: var(--agp-marge);
}

:is(.agp,.editor-styles-wrapper) .agp-section,
:is(.agp,.editor-styles-wrapper) .agp-barre-section,
:is(.agp,.editor-styles-wrapper) .agp-chiffres,
:is(.agp,.editor-styles-wrapper) .agp-cta-bandeau {
	margin-top: 0;
	margin-bottom: 0;
	box-sizing: border-box;
}

:is(.agp,.editor-styles-wrapper) .agp-section {
	padding-top: var(--agp-section);
	padding-bottom: var(--agp-section);
	background: transparent;
	color: var(--agp-noir);
}

:is(.agp,.editor-styles-wrapper) .agp-section--suite { padding-top: 24px; padding-bottom: 96px; }
:is(.agp,.editor-styles-wrapper) .agp-section--bas-reduit { padding-bottom: 40px; }
:is(.agp,.editor-styles-wrapper) .agp-section--courte { padding-top: 60px; padding-bottom: 60px; }
:is(.agp,.editor-styles-wrapper) .agp-section--sans-haut { padding-top: 0; }
:is(.agp,.editor-styles-wrapper) .agp-section--blanc { background: var(--agp-blanc); }
:is(.agp,.editor-styles-wrapper) .agp-section--bordure { border-top: 1px solid var(--agp-bordure); }
:is(.agp,.editor-styles-wrapper) .agp-section--sombre { background: var(--agp-noir); color: var(--agp-creme); }

/* Pas d'espace parasite entre les sections empilées (règles de flux WP / Kadence) */
:is(.agp,.editor-styles-wrapper) .agp-section + *,
:is(.agp,.editor-styles-wrapper) .agp-barre-section + *,
:is(.agp,.editor-styles-wrapper) .agp-chiffres + * { margin-top: 0; }
.agp .entry-content > .agp-section,
.agp .entry-content > .agp-barre-section,
.agp .entry-content > .wp-block-acf-agp-chiffres-cles,
.agp .entry-content > .agp-chiffres { margin-top: 0; margin-bottom: 0; }

/* ---------- Barre d'accent ---------- */
:is(.agp,.editor-styles-wrapper) .agp-barre-section {
	max-width: var(--agp-largeur);
	margin-left: auto;
	margin-right: auto;
	padding: 64px var(--agp-marge) 8px;
}
.agp .entry-content > .agp-barre-section.alignfull { max-width: var(--agp-largeur); margin-left: auto; margin-right: auto; width: auto; }
:is(.agp,.editor-styles-wrapper) .agp-section--bas-reduit + .agp-barre-section { padding-top: 40px; }
:is(.agp,.editor-styles-wrapper) .agp-barre {
	width: 132px;
	max-width: 132px;
	height: 5px;
	margin: 0;
	border: 0;
	background: var(--agp-orange);
	opacity: 1;
}

/* ---------- Typographie ---------- */
:is(.agp,.editor-styles-wrapper) .agp-surtitre {
	margin: 0 0 16px;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.4;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--agp-orange);
}
:is(.agp,.editor-styles-wrapper) .agp-surtitre--jaune { color: var(--agp-jaune); margin-bottom: 18px; }
:is(.agp,.editor-styles-wrapper) .agp-surtitre--gris { color: var(--agp-gris); }

:is(.agp,.editor-styles-wrapper) .agp-h1-page {
	margin: 0 0 22px;
	max-width: 900px;
	font-size: clamp(36px, 4.6vw, 64px);
	line-height: 1.04;
	font-weight: 800;
	letter-spacing: -.02em;
	color: inherit;
	text-wrap: balance;
}
:is(.agp,.editor-styles-wrapper) .agp-h1-page--moyen { font-size: clamp(34px, 4.2vw, 58px); line-height: 1.05; }

:is(.agp,.editor-styles-wrapper) .agp-h2 {
	margin: 0;
	font-size: clamp(28px, 3.2vw, 42px);
	line-height: 1.1;
	font-weight: 800;
	letter-spacing: -.015em;
	color: inherit;
	text-wrap: balance;
}
:is(.agp,.editor-styles-wrapper) .agp-h2--grand { font-size: clamp(30px, 3.4vw, 46px); line-height: 1.08; margin-bottom: 22px; }
:is(.agp,.editor-styles-wrapper) .agp-h2--espace { margin-bottom: 36px; }

:is(.agp,.editor-styles-wrapper) .agp-intro {
	margin: 0;
	max-width: 660px;
	font-size: 18px;
	line-height: 1.6;
	color: var(--agp-texte-clair);
	text-wrap: pretty;
}
:is(.agp,.editor-styles-wrapper) .agp-texte {
	margin: 0;
	font-size: 17px;
	line-height: 1.65;
	color: var(--agp-gris);
	text-wrap: pretty;
}
:is(.agp,.editor-styles-wrapper) .agp-texte--petit { font-size: 15px; line-height: 1.6; }

:is(.agp,.editor-styles-wrapper) .agp-lien-souligne { margin: 0; }
:is(.agp,.editor-styles-wrapper) .agp-lien-souligne a {
	display: inline-block;
	padding-bottom: 4px;
	border-bottom: 2px solid var(--agp-orange);
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--agp-orange);
}
:is(.agp,.editor-styles-wrapper) .agp-section--sombre .agp-lien-souligne a { color: var(--agp-creme); }
:is(.agp,.editor-styles-wrapper) .agp-lien-souligne a:hover { color: var(--agp-orange-fonce); }
:is(.agp,.editor-styles-wrapper) .agp-section--sombre .agp-lien-souligne a:hover { color: var(--agp-jaune); }

:is(.agp,.editor-styles-wrapper) .agp-lien-fleche {
	margin-top: auto;
	padding-top: 8px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--agp-orange);
}
:is(.agp,.editor-styles-wrapper) .agp-lien-fleche:hover { color: var(--agp-orange-fonce); }

/* ---------- Boutons ---------- */
/* Classes utilisées par les shortcodes/blocs dynamiques (a.agp-btn) et styles de bloc Bouton (is-style-agp-*) */
:is(.agp,.editor-styles-wrapper) .agp-btn,
:is(.agp,.editor-styles-wrapper) [class*="is-style-agp-"] .wp-block-button__link {
	display: inline-block;
	box-sizing: border-box;
	padding: 16px 26px;
	border: 1px solid transparent;
	border-radius: 0;
	font-family: inherit;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: .05em;
	text-transform: uppercase;
	text-align: center;
	text-decoration: none;
	box-shadow: none;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
	cursor: pointer;
}
:is(.agp,.editor-styles-wrapper) a.agp-btn--grand,
:is(.agp,.editor-styles-wrapper) .agp-btn--grand .wp-block-button__link { padding: 19px 30px; font-size: 15px; }
:is(.agp,.editor-styles-wrapper) .agp-btn--petit .wp-block-button__link { padding: 12px 20px; font-size: 13px; letter-spacing: .08em; }
:is(.agp,.editor-styles-wrapper) .agp-btn--tel { font-size: 17px; letter-spacing: .02em; text-transform: none; }
:is(.agp,.editor-styles-wrapper) .agp-btn--grand.agp-btn--tel { padding: 18px 28px; font-size: 19px; }

:is(.agp,.editor-styles-wrapper) .agp-btn--primary,
:is(.agp,.editor-styles-wrapper) .is-style-agp-primaire .wp-block-button__link {
	background: var(--agp-orange);
	border-color: var(--agp-orange);
	color: #fff;
}
:is(.agp,.editor-styles-wrapper) .agp-btn--primary:hover,
:is(.agp,.editor-styles-wrapper) .is-style-agp-primaire .wp-block-button__link:hover {
	background: var(--agp-noir);
	border-color: var(--agp-noir);
	color: #fff;
}
:is(.agp,.editor-styles-wrapper) .agp-section--sombre .is-style-agp-primaire .wp-block-button__link:hover,
:is(.agp,.editor-styles-wrapper) .agp-tarif-carte--premium .agp-btn--primary:hover {
	background: var(--agp-jaune);
	border-color: var(--agp-jaune);
	color: var(--agp-noir);
}

:is(.agp,.editor-styles-wrapper) .agp-btn--outline,
:is(.agp,.editor-styles-wrapper) .is-style-agp-contour .wp-block-button__link {
	background: transparent;
	border-color: var(--agp-noir);
	color: var(--agp-noir);
}
:is(.agp,.editor-styles-wrapper) .agp-btn--outline:hover,
:is(.agp,.editor-styles-wrapper) .is-style-agp-contour .wp-block-button__link:hover {
	background: transparent;
	border-color: var(--agp-orange);
	color: var(--agp-orange);
}

:is(.agp,.editor-styles-wrapper) .agp-btn--outline-light,
:is(.agp,.editor-styles-wrapper) .is-style-agp-contour-clair .wp-block-button__link {
	background: transparent;
	border-color: var(--agp-gris-bouton);
	color: var(--agp-creme);
}
:is(.agp,.editor-styles-wrapper) .agp-btn--outline-light:hover,
:is(.agp,.editor-styles-wrapper) .is-style-agp-contour-clair .wp-block-button__link:hover {
	background: transparent;
	border-color: var(--agp-jaune);
	color: var(--agp-jaune);
}

:is(.agp,.editor-styles-wrapper) .agp-btn--dark,
:is(.agp,.editor-styles-wrapper) .is-style-agp-sombre .wp-block-button__link {
	background: var(--agp-noir);
	border-color: var(--agp-noir);
	color: #fff;
}
:is(.agp,.editor-styles-wrapper) .agp-btn--dark:hover,
:is(.agp,.editor-styles-wrapper) .is-style-agp-sombre .wp-block-button__link:hover {
	background: var(--agp-orange);
	border-color: var(--agp-orange);
	color: #fff;
}

:is(.agp,.editor-styles-wrapper) .agp-btn--externe .wp-block-button__link::after {
	content: "";
	display: inline-block;
	width: 15px;
	height: 15px;
	margin-left: 10px;
	vertical-align: -2px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 16L16 8'/%3E%3Cpath d='M9 8h7v7'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 16L16 8'/%3E%3Cpath d='M9 8h7v7'/%3E%3C/svg%3E") center / contain no-repeat;
}

:is(.agp,.editor-styles-wrapper) .agp-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin: 0;
}
:is(.agp,.editor-styles-wrapper) .agp-actions > p,
:is(.agp,.editor-styles-wrapper) .agp-actions > .wp-block-buttons { margin: 0; }
:is(.agp,.editor-styles-wrapper) .agp-actions .wp-block-buttons,
:is(.agp,.editor-styles-wrapper) .agp-ancres { display: flex; flex-wrap: wrap; gap: 14px; }
:is(.agp,.editor-styles-wrapper) .agp-ancres { gap: 12px; margin: 30px 0 0; }
:is(.agp,.editor-styles-wrapper) .agp-hero .agp-actions { gap: 16px; }

/* ---------- Grilles génériques ---------- */
:is(.agp,.editor-styles-wrapper) .agp-grille-2 {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: 56px;
	align-items: start;
}
:is(.agp,.editor-styles-wrapper) .agp-grille-2--serree { gap: 28px; }
:is(.agp,.editor-styles-wrapper) .agp-grille-2--centre { gap: 52px; align-items: center; }
:is(.agp,.editor-styles-wrapper) .agp-grille-2--etire { gap: 24px; align-items: stretch; }
:is(.agp,.editor-styles-wrapper) .agp-grille-auto {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
	gap: 28px;
}
:is(.agp,.editor-styles-wrapper) .agp-pile { display: flex; flex-direction: column; gap: 72px; }
:is(.agp,.editor-styles-wrapper) .agp-pile--large { gap: 88px; }
:is(.agp,.editor-styles-wrapper) .agp-pile--serree { gap: 28px; }
:is(.agp,.editor-styles-wrapper) .agp-mt { margin-top: 40px; }
:is(.agp,.editor-styles-wrapper) .agp-grille-2 > *,
:is(.agp,.editor-styles-wrapper) .agp-grille-auto > *,
:is(.agp,.editor-styles-wrapper) .agp-pile > * { margin-top: 0; margin-bottom: 0; min-width: 0; }

:is(.agp,.editor-styles-wrapper) .agp-entete-section {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	align-items: flex-end;
	justify-content: space-between;
	margin: 0 0 44px;
}
:is(.agp,.editor-styles-wrapper) .agp-section--sombre .agp-entete-section { margin-bottom: 40px; }
:is(.agp,.editor-styles-wrapper) .agp-entete-section > * { margin: 0; }

/* ---------- Cartes / encarts ---------- */
:is(.agp,.editor-styles-wrapper) .agp-carte {
	box-sizing: border-box;
	padding: 34px;
	background: var(--agp-blanc);
	color: var(--agp-noir);
}
:is(.agp,.editor-styles-wrapper) .agp-carte--large { padding: 44px; }
:is(.agp,.editor-styles-wrapper) .agp-carte--sombre { background: var(--agp-noir); color: var(--agp-creme); padding: 36px; }
:is(.agp,.editor-styles-wrapper) .agp-carte__titre { margin: 0 0 10px; font-size: 20px; font-weight: 800; line-height: 1.3; color: inherit; }
:is(.agp,.editor-styles-wrapper) .agp-encart {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 32px;
	background: var(--agp-sable);
	color: var(--agp-noir);
}
:is(.agp,.editor-styles-wrapper) .agp-encart p { margin: 0; font-size: 15px; line-height: 1.6; }
:is(.agp,.editor-styles-wrapper) .agp-encart .agp-encart__titre { margin: 0 0 12px; font-size: 22px; font-weight: 800; line-height: 1.25; }

:is(.agp,.editor-styles-wrapper) .agp-liste,
:is(.agp,.editor-styles-wrapper) .agp-horaires {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 16px;
	line-height: 1.5;
}
:is(.agp,.editor-styles-wrapper) .agp-liste > li,
:is(.agp,.editor-styles-wrapper) .agp-horaires > li { margin: 0; padding: 0 0 12px; border-bottom: 1px solid var(--agp-bordure-2); }
:is(.agp,.editor-styles-wrapper) .agp-liste > li:last-child,
:is(.agp,.editor-styles-wrapper) .agp-horaires > li:last-child { padding-bottom: 0; border-bottom: 0; }
:is(.agp,.editor-styles-wrapper) .agp-horaires > li { display: flex; justify-content: space-between; gap: 16px; }
:is(.agp,.editor-styles-wrapper) .agp-horaires strong { font-weight: 700; }

:is(.agp,.editor-styles-wrapper) .agp-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 26px;
	padding: 0;
	list-style: none;
}
:is(.agp,.editor-styles-wrapper) .agp-chips > li { margin: 0; padding: 9px 14px; border: 1px solid var(--agp-chip); font-size: 14px; font-weight: 600; line-height: 1.3; }
:is(.agp,.editor-styles-wrapper) .agp-carte .agp-chips { margin: 22px 0 0; }

:is(.agp,.editor-styles-wrapper) .agp-placeholder {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 120px;
	padding: 20px;
	border: 1px dashed #C6BCB0;
	background: var(--agp-creme-2);
	font-family: ui-monospace, Menlo, monospace;
	font-size: 12px;
	line-height: 1.5;
	text-align: center;
	color: var(--agp-gris);
}

/* ---------- Hero accueil ---------- */
:is(.agp,.editor-styles-wrapper) .agp-hero { padding-top: 88px; padding-bottom: 72px; }
:is(.agp,.editor-styles-wrapper) .agp-hero__grille {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
	gap: 56px;
	align-items: center;
}
:is(.agp,.editor-styles-wrapper) .agp-hero__grille > * { margin: 0; }
:is(.agp,.editor-styles-wrapper) .agp-badge-cadre {
	display: block;
	width: fit-content;
	max-width: 100%;
	box-sizing: border-box;
	margin: 0 0 28px;
	padding: 8px 14px;
	border: 1px solid var(--agp-orange);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--agp-jaune);
}
/* Le H1 contient « AGP. » (1re ligne, très grand) puis « Atelier Gaz Professionnel » (2e ligne) */
:is(.agp,.editor-styles-wrapper) .agp-hero__titre {
	margin: 0 0 24px;
	font-size: clamp(18px, 2.35vw, 36px);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--agp-sable);
}
:is(.agp,.editor-styles-wrapper) .agp-hero__titre::first-line {
	font-size: clamp(44px, 5.6vw, 86px);
	font-weight: 800;
	line-height: .98;
	letter-spacing: -.02em;
	color: var(--agp-creme);
}
:is(.agp,.editor-styles-wrapper) .agp-hero .agp-intro { max-width: 560px; margin-bottom: 36px; font-size: 19px; }
:is(.agp,.editor-styles-wrapper) .agp-hero__media { position: relative; margin: 0; }
:is(.agp,.editor-styles-wrapper) .agp-hero__image { margin: 0; }
:is(.agp,.editor-styles-wrapper) .agp-hero__image img { display: block; width: 100%; height: 560px; object-fit: cover; }
:is(.agp,.editor-styles-wrapper) .agp-hero__legende {
	position: absolute;
	left: -24px;
	bottom: 32px;
	max-width: 250px;
	padding: 18px 24px;
	background: var(--agp-orange);
	color: #fff;
}
:is(.agp,.editor-styles-wrapper) .agp-hero__legende p { margin: 0; font-size: 15px; line-height: 1.45; }
:is(.agp,.editor-styles-wrapper) .agp-hero__legende .agp-hero__legende-titre { margin: 0 0 6px; font-size: 13px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }

/* ---------- En-têtes de page ---------- */
:is(.agp,.editor-styles-wrapper) .agp-en-tete { padding-top: 76px; padding-bottom: 64px; }
:is(.agp,.editor-styles-wrapper) .agp-image-couvrante { margin: 0; }
:is(.agp,.editor-styles-wrapper) .agp-image-couvrante img { display: block; width: 100%; height: 480px; object-fit: cover; }
:is(.agp,.editor-styles-wrapper) .agp-image-couvrante--haute img { height: 520px; }

/* ---------- Chiffres clés ---------- */
:is(.agp,.editor-styles-wrapper) .agp-chiffres { background: var(--agp-noir); border-top: 1px solid var(--agp-noir-2); color: var(--agp-creme); }
:is(.agp,.editor-styles-wrapper) .agp-chiffres__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 36px;
	padding-top: 44px;
	padding-bottom: 60px;
}
:is(.agp,.editor-styles-wrapper) .agp-chiffre { display: flex; flex-direction: column; gap: 10px; }
:is(.agp,.editor-styles-wrapper) .agp-chiffre__valeur { font-size: 46px; font-weight: 800; line-height: 1; color: var(--agp-jaune); }
:is(.agp,.editor-styles-wrapper) .agp-chiffre__libelle { font-size: 13px; font-weight: 700; line-height: 1.4; letter-spacing: .14em; text-transform: uppercase; color: var(--agp-gris-clair); }

/* ---------- Réassurance ---------- */
:is(.agp,.editor-styles-wrapper) .agp-reassurance { gap: 56px; }
:is(.agp,.editor-styles-wrapper) .agp-atouts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
	gap: 2px;
	background: var(--agp-bordure);
}
:is(.agp,.editor-styles-wrapper) .agp-atout { margin: 0; padding: 28px; background: var(--agp-blanc); }
:is(.agp,.editor-styles-wrapper) .agp-atout .agp-icone { display: block; margin: 0 0 16px; color: var(--agp-orange); }
:is(.agp,.editor-styles-wrapper) .agp-atout .agp-atout__titre { margin: 0 0 10px; font-size: 16px; font-weight: 800; line-height: 1.35; letter-spacing: 0; text-transform: none; color: var(--agp-noir); }
:is(.agp,.editor-styles-wrapper) .agp-atout p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--agp-gris); }

/* ---------- Prestations : cartes ---------- */
:is(.agp,.editor-styles-wrapper) .agp-presta-cartes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
	gap: 24px;
}
:is(.agp,.editor-styles-wrapper) .agp-presta-carte { display: flex; flex-direction: column; margin: 0; background: var(--agp-creme); }
:is(.agp,.editor-styles-wrapper) .agp-presta-carte__media { display: block; height: 230px; overflow: hidden; }
:is(.agp,.editor-styles-wrapper) .agp-presta-carte__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
:is(.agp,.editor-styles-wrapper) .agp-presta-carte:hover .agp-presta-carte__media img { transform: scale(1.03); }
:is(.agp,.editor-styles-wrapper) .agp-presta-carte__corps { display: flex; flex: 1; flex-direction: column; padding: 26px; }
:is(.agp,.editor-styles-wrapper) .agp-presta-carte .agp-presta-carte__titre { margin: 0 0 10px; font-size: 19px; font-weight: 800; line-height: 1.3; color: var(--agp-noir); }
:is(.agp,.editor-styles-wrapper) .agp-presta-carte .agp-presta-carte__texte { margin: 0 0 18px; font-size: 15px; line-height: 1.55; color: var(--agp-gris); }

/* ---------- Prestations : sections alternées ---------- */
:is(.agp,.editor-styles-wrapper) .agp-presta-liste { display: flex; flex-direction: column; gap: 88px; }
:is(.agp,.editor-styles-wrapper) .agp-presta {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: 52px;
	align-items: center;
	scroll-margin-top: 110px;
}
:is(.agp,.editor-styles-wrapper) .agp-presta__media { height: 480px; }
:is(.agp,.editor-styles-wrapper) .agp-presta__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 768px) {
	:is(.agp,.editor-styles-wrapper) .agp-presta--inverse .agp-presta__media { order: 2; }
}
:is(.agp,.editor-styles-wrapper) .agp-presta .agp-presta__titre { margin: 0 0 20px; font-size: clamp(26px, 3vw, 38px); font-weight: 800; line-height: 1.1; color: var(--agp-noir); }
:is(.agp,.editor-styles-wrapper) .agp-presta__description { margin: 0 0 26px; font-size: 17px; line-height: 1.65; color: var(--agp-gris); text-wrap: pretty; }
:is(.agp,.editor-styles-wrapper) .agp-presta__description p { margin: 0 0 1em; }
:is(.agp,.editor-styles-wrapper) .agp-presta__description > :last-child { margin-bottom: 0; }
:is(.agp,.editor-styles-wrapper) .agp-presta .agp-chips { margin-top: -6px; }

/* Partenaire plomberie */
:is(.agp,.editor-styles-wrapper) .agp-partenaire { gap: 44px; }
:is(.agp,.editor-styles-wrapper) .agp-partenaire .agp-surtitre { margin-bottom: 20px; }
:is(.agp,.editor-styles-wrapper) .agp-partenaire__logo { margin: 0 0 18px; }
:is(.agp,.editor-styles-wrapper) .agp-partenaire__logo img { display: block; width: 150px; height: 150px; object-fit: contain; }
:is(.agp,.editor-styles-wrapper) .agp-partenaire .agp-h2 { margin-bottom: 18px; font-size: clamp(26px, 3vw, 38px); }
:is(.agp,.editor-styles-wrapper) .agp-partenaire .agp-texte { margin-bottom: 26px; }

/* ---------- Marques ---------- */
:is(.agp,.editor-styles-wrapper) .agp-marques--bandeau .agp-surtitre { margin-bottom: 26px; }
:is(.agp,.editor-styles-wrapper) .agp-marques__logos {
	display: flex;
	align-items: center;
	gap: 44px;
	overflow-x: auto;
	padding-bottom: 10px;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
}
:is(.agp,.editor-styles-wrapper) .agp-marques__logos img,
:is(.agp,.editor-styles-wrapper) .agp-marques__logo { flex: none; width: auto; max-width: none; object-fit: contain; scroll-snap-align: start; }
:is(.agp,.editor-styles-wrapper) .agp-marques__logos--grille { flex-wrap: wrap; gap: 40px 52px; overflow: visible; padding-bottom: 0; }
:is(.agp,.editor-styles-wrapper) .agp-marques__nom { flex: none; font-weight: 800; color: var(--agp-gris); }
:is(.agp,.editor-styles-wrapper) .agp-marques--encadre { padding: 36px; background: var(--agp-blanc); }
:is(.agp,.editor-styles-wrapper) .agp-marques--encadre .agp-surtitre { margin-bottom: 26px; }
:is(.agp,.editor-styles-wrapper) .agp-marques__separateur { height: 1px; margin: 36px 0; border: 0; background: var(--agp-bordure-2); }

/* ---------- Avis Google ---------- */
:is(.agp,.editor-styles-wrapper) .agp-avis__grille {
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 2fr);
	gap: 48px;
	align-items: start;
}
:is(.agp,.editor-styles-wrapper) .agp-avis__note p { margin: 0; }
:is(.agp,.editor-styles-wrapper) .agp-avis .agp-avis__valeur { font-size: 64px; font-weight: 800; line-height: 1; }
:is(.agp,.editor-styles-wrapper) .agp-avis .agp-avis__etoiles { margin: 8px 0 10px; font-size: 20px; letter-spacing: .1em; color: var(--agp-jaune); }
:is(.agp,.editor-styles-wrapper) .agp-avis .agp-avis__source { font-size: 15px; line-height: 1.5; color: var(--agp-gris); }
:is(.agp,.editor-styles-wrapper) .agp-avis__source a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
:is(.agp,.editor-styles-wrapper) .agp-avis__attente {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 32px;
	background: var(--agp-blanc);
	border-top: 3px solid var(--agp-orange);
}
:is(.agp,.editor-styles-wrapper) .agp-avis__attente p { margin: 0; max-width: 460px; font-size: 16px; line-height: 1.55; color: var(--agp-noir); }
:is(.agp,.editor-styles-wrapper) .agp-avis__exemples { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 20px; }
:is(.agp,.editor-styles-wrapper) .agp-avis__carte { padding: 26px; background: var(--agp-blanc); border-top: 3px solid var(--agp-orange); }
:is(.agp,.editor-styles-wrapper) .agp-avis__carte p { margin: 0 0 16px; font-size: 15px; line-height: 1.6; }
:is(.agp,.editor-styles-wrapper) .agp-avis__carte .agp-avis__auteur { margin: 0; font-size: 13px; font-weight: 700; color: var(--agp-gris); }

/* ---------- Avant / après ---------- */
:is(.agp,.editor-styles-wrapper) .agp-ba { margin: 0; }
:is(.agp,.editor-styles-wrapper) .agp-ba__cadre {
	position: relative;
	height: var(--agp-ba-h, 420px);
	overflow: hidden;
	background: #000;
	touch-action: pan-y;
}
:is(.agp,.editor-styles-wrapper) .agp-ba--remplir { display: flex; flex-direction: column; height: 100%; }
:is(.agp,.editor-styles-wrapper) .agp-ba--remplir .agp-ba__cadre { flex: 1; height: auto; min-height: 440px; }
:is(.agp,.editor-styles-wrapper) .agp-ba__calque { position: absolute; inset: 0; overflow: hidden; }
:is(.agp,.editor-styles-wrapper) .agp-ba__calque img,
:is(.agp,.editor-styles-wrapper) .agp-ba__calque .agp-placeholder { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
:is(.agp,.editor-styles-wrapper) .agp-ba__calque--avant { clip-path: inset(0 calc(100% - var(--pos, 50%)) 0 0); }
:is(.agp,.editor-styles-wrapper) .agp-ba__ligne {
	position: absolute;
	top: 0;
	bottom: 0;
	left: var(--pos, 50%);
	width: 4px;
	background: #fff;
	box-shadow: 0 0 18px rgba(0, 0, 0, .5);
	transform: translateX(-2px);
	pointer-events: none;
}
:is(.agp,.editor-styles-wrapper) .agp-ba__poignee {
	position: absolute;
	top: 50%;
	left: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 64px;
	height: 64px;
	box-sizing: border-box;
	border: 4px solid #fff;
	border-radius: 50%;
	background: var(--agp-orange);
	box-shadow: 0 8px 24px rgba(0, 0, 0, .45);
	transform: translate(-50%, -50%);
}
:is(.agp,.editor-styles-wrapper) .agp-ba__aide {
	position: absolute;
	left: 50%;
	bottom: 20px;
	padding: 10px 18px;
	background: rgba(27, 27, 27, .88);
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	white-space: nowrap;
	transform: translateX(-50%);
	pointer-events: none;
}
:is(.agp,.editor-styles-wrapper) .agp-ba__range {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: ew-resize;
	-webkit-appearance: none;
	appearance: none;
	background: transparent;
}
:is(.agp,.editor-styles-wrapper) .agp-ba__range::-webkit-slider-thumb { -webkit-appearance: none; width: 64px; height: 64px; }
:is(.agp,.editor-styles-wrapper) .agp-ba__range::-webkit-slider-runnable-track { height: 100%; }
:is(.agp,.editor-styles-wrapper) .agp-ba__range:focus-visible { opacity: 0; }
:is(.agp,.editor-styles-wrapper) .agp-ba__cadre:focus-within .agp-ba__poignee { outline: 3px solid var(--agp-jaune); outline-offset: 3px; }

:is(.agp,.editor-styles-wrapper) .agp-badge {
	position: absolute;
	top: 16px;
	z-index: 1;
	padding: 7px 12px;
	font-size: 11px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: #fff;
	pointer-events: none;
}
:is(.agp,.editor-styles-wrapper) .agp-badge--avant { left: 16px; background: var(--agp-noir); }
:is(.agp,.editor-styles-wrapper) .agp-badge--apres { right: 16px; background: var(--agp-orange); }

:is(.agp,.editor-styles-wrapper) .agp-ba__cote { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
:is(.agp,.editor-styles-wrapper) .agp-ba__panneau { position: relative; height: var(--agp-ba-h, 360px); overflow: hidden; }
:is(.agp,.editor-styles-wrapper) .agp-ba__panneau img { display: block; width: 100%; height: 100%; object-fit: cover; }

:is(.agp,.editor-styles-wrapper) .agp-ba__legende { display: flex; flex-direction: column; gap: 6px; padding-top: 14px; font-size: 15px; line-height: 1.55; color: var(--agp-gris); }
:is(.agp,.editor-styles-wrapper) .agp-ba__titre { padding-top: 4px; font-size: 18px; font-weight: 800; color: var(--agp-noir); }
:is(.agp,.editor-styles-wrapper) .agp-section--sombre .agp-ba__legende { color: var(--agp-texte-clair); }
:is(.agp,.editor-styles-wrapper) .agp-section--sombre .agp-ba__titre { color: var(--agp-creme); }

/* ---------- Galerie défilante ---------- */
:is(.agp,.editor-styles-wrapper) .agp-galerie {
	display: flex;
	gap: 18px;
	overflow-x: auto;
	padding-bottom: 12px;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
}
:is(.agp,.editor-styles-wrapper) .agp-galerie__item {
	flex: none;
	width: calc((100% - 54px) / 3.5);
	min-width: 220px;
	margin: 0;
	scroll-snap-align: start;
}
:is(.agp,.editor-styles-wrapper) .agp-galerie__item img { display: block; width: 100%; height: 300px; object-fit: cover; }
:is(.agp,.editor-styles-wrapper) .agp-galerie__item figcaption { margin: 0; padding-top: 10px; font-size: 14px; line-height: 1.45; color: var(--agp-gris); text-align: left; }

/* ---------- Tarifs ---------- */
:is(.agp,.editor-styles-wrapper) .agp-grille-tarifs {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
	gap: 24px;
}
:is(.agp,.editor-styles-wrapper) .agp-tarif-carte {
	display: flex;
	flex-direction: column;
	gap: 14px;
	box-sizing: border-box;
	padding: 36px;
	background: var(--agp-blanc);
	border-top: 4px solid var(--agp-sable);
	color: var(--agp-noir);
}
:is(.agp,.editor-styles-wrapper) .agp-tarif-carte p,
:is(.agp,.editor-styles-wrapper) .agp-tarif-carte h3 { margin: 0; }
:is(.agp,.editor-styles-wrapper) .agp-tarif-carte .agp-tarif-carte__surtitre { font-size: 12px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: var(--agp-gris); }
:is(.agp,.editor-styles-wrapper) .agp-tarif-carte .agp-tarif-carte__titre { font-size: 22px; font-weight: 800; line-height: 1.25; letter-spacing: 0; text-transform: none; color: inherit; }
:is(.agp,.editor-styles-wrapper) .agp-tarif-carte .agp-tarif-carte__prix { font-size: 52px; font-weight: 800; line-height: 1; color: var(--agp-orange); }
:is(.agp,.editor-styles-wrapper) .agp-tarif-carte .agp-tarif-carte__desc { font-size: 15px; line-height: 1.6; color: var(--agp-gris); }
:is(.agp,.editor-styles-wrapper) .agp-tarif-carte .agp-tarif-carte__supplement { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px; padding-top: 18px; border-top: 1px solid #3A3A3A; }
:is(.agp,.editor-styles-wrapper) .agp-tarif-carte__supplement strong { font-size: 30px; font-weight: 800; color: #fff; }
:is(.agp,.editor-styles-wrapper) .agp-tarif-carte__supplement span { font-size: 15px; color: var(--agp-texte-clair); }
:is(.agp,.editor-styles-wrapper) .agp-tarif-carte .agp-tarif-carte__note { font-size: 14px; color: var(--agp-gris-clair); }
:is(.agp,.editor-styles-wrapper) .agp-tarif-carte__bouton { margin-top: auto; padding: 14px 22px; font-size: 13px; letter-spacing: .06em; }
:is(.agp,.editor-styles-wrapper) .agp-tarif-carte--premium { background: var(--agp-noir); border-top-color: var(--agp-orange); color: var(--agp-creme); }
:is(.agp,.editor-styles-wrapper) .agp-tarif-carte--premium .agp-tarif-carte__surtitre { color: var(--agp-jaune); }
:is(.agp,.editor-styles-wrapper) .agp-tarif-carte--premium .agp-tarif-carte__prix { color: var(--agp-jaune); }
:is(.agp,.editor-styles-wrapper) .agp-tarif-carte--premium .agp-tarif-carte__desc { color: var(--agp-texte-clair); }
:is(.agp,.editor-styles-wrapper) .agp-tarif-carte--premium .agp-tarif-carte__bouton { padding: 15px 22px; }
/* Carte climatisation (carte seule, plus aérée) */
:is(.agp,.editor-styles-wrapper) .agp-grille-tarifs--n1 .agp-tarif-carte { gap: 16px; padding: 40px; height: 100%; }
:is(.agp,.editor-styles-wrapper) .agp-grille-tarifs--n1 .agp-tarif-carte__prix { font-size: 60px; }
:is(.agp,.editor-styles-wrapper) .agp-grille-2--etire > .agp-grille-tarifs--n1 { height: 100%; }

/* ---------- Entreprise ---------- */
:is(.agp,.editor-styles-wrapper) .agp-certification { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
:is(.agp,.editor-styles-wrapper) .agp-certification > * { margin: 0; }
:is(.agp,.editor-styles-wrapper) .agp-certification__logo img { display: block; width: 230px; max-width: 100%; height: auto; }
:is(.agp,.editor-styles-wrapper) .agp-certification .agp-carte__titre { margin-bottom: 10px; }
:is(.agp,.editor-styles-wrapper) .agp-carte .agp-surtitre { margin-bottom: 16px; letter-spacing: .18em; }
:is(.agp,.editor-styles-wrapper) .agp-carte--sombre .agp-surtitre,
:is(.agp,.editor-styles-wrapper) .agp-carte .agp-surtitre--jaune { margin-bottom: 22px; }
:is(.agp,.editor-styles-wrapper) .agp-carte .agp-texte--petit + .agp-chips { margin-top: 22px; }

/* ---------- Contact ---------- */
:is(.agp,.editor-styles-wrapper) .agp-contact-infos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: 28px;
	align-items: stretch;
}
:is(.agp,.editor-styles-wrapper) .agp-contact-infos .agp-carte { padding: 36px; }
:is(.agp,.editor-styles-wrapper) .agp-contact-infos .agp-surtitre { margin-bottom: 22px; }
:is(.agp,.editor-styles-wrapper) .agp-contact-infos__liste { display: flex; flex-direction: column; gap: 16px; font-size: 17px; line-height: 1.5; }
:is(.agp,.editor-styles-wrapper) .agp-contact-infos__tel { font-size: 30px; font-weight: 800; line-height: 1.2; color: #fff; text-decoration: none; }
:is(.agp,.editor-styles-wrapper) .agp-contact-infos__tel:hover { color: var(--agp-jaune); }
:is(.agp,.editor-styles-wrapper) .agp-contact-infos .agp-adresse { color: var(--agp-texte-clair); }
:is(.agp,.editor-styles-wrapper) .agp-contact-infos__email { color: var(--agp-sable); text-decoration: none; }
:is(.agp,.editor-styles-wrapper) .agp-contact-infos__email:hover { color: var(--agp-jaune); }
:is(.agp,.editor-styles-wrapper) .agp-formulaire { padding: 36px; }
:is(.agp,.editor-styles-wrapper) .agp-formulaire .agp-surtitre { margin-bottom: 24px; letter-spacing: .18em; }

/* WPForms (balisage « moderne »), habillé comme la maquette.
   Les variables CSS de WPForms sont redéfinies sur le conteneur : elles priment sur celles de :root. */
.agp .agp-formulaire .wpforms-container,
.editor-styles-wrapper .agp-formulaire .wpforms-container {
	--wpforms-field-border-radius: 0;
	--wpforms-field-border-color: var(--agp-chip);
	--wpforms-field-border-size: 1px;
	--wpforms-field-background-color: var(--agp-creme);
	--wpforms-field-text-color: var(--agp-noir);
	--wpforms-field-menu-color: var(--agp-creme);
	--wpforms-field-size-input-height: 52px;
	--wpforms-field-size-font-size: 16px;
	--wpforms-field-size-padding-h: 14px;
	--wpforms-field-size-input-spacing: 8px;
	--wpforms-label-color: var(--agp-gris);
	--wpforms-label-size-font-size: 13px;
	--wpforms-label-size-line-height: 1.4;
	--wpforms-label-error-color: var(--agp-orange-fonce);
	--wpforms-button-background-color: var(--agp-orange);
	--wpforms-button-background-color-alt: var(--agp-orange);
	--wpforms-button-border-color: var(--agp-orange);
	--wpforms-button-border-radius: 0;
	--wpforms-button-text-color: #fff;
	margin: 0;
	padding: 0;
}
.agp .agp-formulaire .wpforms-container .wpforms-field { padding: 0 0 18px; }
.agp .agp-formulaire .wpforms-container .wpforms-field-label {
	margin-bottom: 8px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.agp .agp-formulaire .wpforms-container .wpforms-required-label { color: var(--agp-orange); }
.agp .agp-formulaire .wpforms-container input:not([type=checkbox]):not([type=radio]):not([type=submit]),
.agp .agp-formulaire .wpforms-container select,
.agp .agp-formulaire .wpforms-container textarea {
	max-width: 100%;
	box-shadow: none;
}
.agp .agp-formulaire .wpforms-container textarea { min-height: 140px; resize: vertical; }
.agp .agp-formulaire .wpforms-container input:focus,
.agp .agp-formulaire .wpforms-container select:focus,
.agp .agp-formulaire .wpforms-container textarea:focus {
	border-color: var(--agp-orange);
	box-shadow: 0 0 0 2px rgba(193, 68, 14, .2);
	outline: none;
}
.agp .agp-formulaire .wpforms-container .wpforms-submit-container { margin-top: 6px; padding: 0; }
.agp .agp-formulaire .wpforms-container button.wpforms-submit {
	height: auto;
	padding: 18px 28px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: .06em;
	text-transform: uppercase;
	box-shadow: none;
	transition: background-color .15s ease;
}
.agp .agp-formulaire .wpforms-container button.wpforms-submit:hover,
.agp .agp-formulaire .wpforms-container button.wpforms-submit:focus {
	background: var(--agp-noir);
	border-color: var(--agp-noir);
}
.agp .agp-formulaire .wpforms-container button.wpforms-submit:hover:after { display: none; }
.agp .agp-formulaire .wpforms-confirmation-container-full {
	padding: 20px 24px;
	border: 0;
	border-left: 4px solid var(--agp-orange);
	border-radius: 0;
	background: var(--agp-creme);
	color: var(--agp-noir);
}
.agp .agp-formulaire .wpforms-confirmation-container-full p { margin: 0; }

/* ---------- Bandeau CTA orange ---------- */
:is(.agp,.editor-styles-wrapper) .agp-cta-bandeau { background: var(--agp-orange); color: #fff; }
:is(.agp,.editor-styles-wrapper) .agp-cta-bandeau__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	padding-top: 56px;
	padding-bottom: 56px;
}
:is(.agp,.editor-styles-wrapper) .agp-cta-bandeau .agp-cta-bandeau__titre { max-width: 640px; margin: 0; font-size: clamp(24px, 3vw, 38px); font-weight: 800; line-height: 1.15; color: #fff; }
:is(.agp,.editor-styles-wrapper) .agp-cta-bandeau .agp-btn--dark:hover { background: var(--agp-jaune); border-color: var(--agp-jaune); color: var(--agp-noir); }
:is(.agp,.editor-styles-wrapper) .agp-cta-bandeau .agp-btn--outline-light { padding: 17px 26px; border-color: #fff; color: #fff; }
:is(.agp,.editor-styles-wrapper) .agp-cta-bandeau .agp-btn--outline-light:hover { background: #fff; color: var(--agp-orange); }
:is(.agp,.editor-styles-wrapper) .agp-cta-bandeau .agp-btn--dark { padding: 18px 28px; }

/* =========================================================================
   En-tête Kadence (Header Builder) – complète les réglages du Personnaliseur
   ========================================================================= */
.agp .site-header .site-main-header-wrap .site-header-row-container-inner,
.agp .site-header .site-main-header-inner-wrap {
	background: var(--agp-noir);
}
.agp .site-header .site-main-header-wrap .site-header-row-container-inner { border-bottom: 1px solid var(--agp-noir-2); }
.agp .site-header .main-navigation .primary-menu-container > ul > li.menu-item > a {
	display: flex;
	align-items: center;
	gap: 7px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--agp-creme);
}
.agp .site-header .main-navigation .primary-menu-container > ul > li.menu-item > a:hover { color: var(--agp-jaune); }
/* Pastille orange devant l'entrée de menu active */
.agp .site-header .main-navigation .primary-menu-container > ul > li.current-menu-item > a::before,
.agp .site-header .main-navigation .primary-menu-container > ul > li.current_page_item > a::before {
	content: "";
	flex: none;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--agp-orange);
}
.agp .site-header .main-navigation .primary-menu-container > ul > li.current-menu-item > a { color: var(--agp-creme); }
.agp .site-header .header-button,
.agp .site-header .header-button-wrap .button {
	padding: 14px 22px;
	border: 0;
	border-radius: 0;
	background: var(--agp-orange);
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: #fff;
	box-shadow: none;
}
.agp .site-header .header-button:hover,
.agp .site-header .header-button-wrap .button:hover { background: var(--agp-jaune); color: var(--agp-noir); }
.agp .site-header .header-html .agp-tel-link { font-weight: 800; color: var(--agp-creme); text-decoration: none; }
.agp .site-header .header-html .agp-tel-link:hover { color: var(--agp-jaune); }

/* Menu mobile (tiroir) */
.agp #mobile-drawer .drawer-inner { background: var(--agp-noir); }
.agp #mobile-drawer .mobile-navigation ul li > a,
.agp #mobile-drawer .mobile-navigation ul li .drawer-nav-drop-wrap { font-size: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--agp-creme); }
.agp #mobile-drawer .mobile-navigation ul li.current-menu-item > a { color: var(--agp-jaune); }
.agp .site-header .mobile-toggle-open-container .menu-toggle-open { color: var(--agp-creme); }

/* =========================================================================
   Pied de page Kadence (Footer Builder)
   ========================================================================= */
.agp .site-footer { background: var(--agp-creme); border-top: 1px solid var(--agp-bordure); color: var(--agp-gris); }
.agp .site-footer .site-footer-row-container-inner { background: transparent; }
.agp .site-footer .site-middle-footer-inner-wrap { padding-top: 64px; padding-bottom: 32px; }
.agp .site-footer .widget-title,
.agp .site-footer .wp-block-heading {
	margin: 0 0 16px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--agp-noir);
}
.agp .site-footer a { color: var(--agp-gris); text-decoration: none; }
.agp .site-footer a:hover { color: var(--agp-orange); }
.agp .site-footer .widget_nav_menu ul { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.agp .site-footer .widget_nav_menu ul li a { font-size: 15px; }
/* Menu légal (barre du bas) : en ligne, aligné à droite */
.agp .site-footer .site-bottom-footer-wrap .footer-navigation ul { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: flex-end; gap: 20px; }
.agp .site-footer .site-bottom-footer-wrap .footer-navigation ul li a { padding: 0; font-size: 13px; }
.agp .site-footer .site-bottom-footer-wrap .footer-html,
.agp .site-footer .site-bottom-footer-wrap .footer-html p { margin: 0; text-align: left; }
.agp .site-footer .site-bottom-footer-wrap .footer-navigation-wrap,
.agp .site-footer .site-bottom-footer-wrap .footer-navigation { justify-content: flex-end; }
@media (max-width: 767px) {
	.agp .site-footer .site-bottom-footer-wrap .footer-navigation-wrap,
	.agp .site-footer .site-bottom-footer-wrap .footer-navigation,
	.agp .site-footer .site-bottom-footer-wrap .footer-navigation ul { justify-content: flex-start; }
}
.agp .site-footer .agp-baseline { display: block; margin: 0; font-size: 15px; line-height: 1.6; color: var(--agp-gris); }
.agp .site-footer .agp-logo-footer img { display: block; width: auto; height: 44px; margin-bottom: 18px; }
.agp .agp-footer-contact { display: flex; flex-direction: column; gap: 10px; font-size: 15px; line-height: 1.5; }
.agp .site-footer .agp-footer-contact__tel { font-size: 18px; font-weight: 800; color: var(--agp-noir); }
.agp .site-footer .agp-email-link { color: var(--agp-orange); }
.agp .agp-confiance img { display: block; width: 200px; max-width: 100%; height: auto; margin-bottom: 14px; }
.agp .agp-confiance p { margin: 0; font-size: 14px; line-height: 1.6; }
.agp .site-footer .site-bottom-footer-inner-wrap { padding-top: 20px; padding-bottom: 40px; border-top: 1px solid var(--agp-bordure); font-size: 13px; }
.agp .site-footer .site-bottom-footer-wrap .footer-html { font-size: 13px; }

/* =========================================================================
   Responsive
   ========================================================================= */
@media (max-width: 1024px) {
	:is(.agp,.editor-styles-wrapper) .agp-hero__grille { grid-template-columns: 1fr; gap: 48px; }
	:is(.agp,.editor-styles-wrapper) .agp-hero__image img { height: 440px; }
	:is(.agp,.editor-styles-wrapper) .agp-hero__legende { left: 16px; }
	:is(.agp,.editor-styles-wrapper) .agp-avis__grille { grid-template-columns: 1fr; gap: 28px; }
}

@media (max-width: 767px) {
	:is(.agp,.editor-styles-wrapper) .agp-hero { padding-top: 56px; padding-bottom: 56px; }
	:is(.agp,.editor-styles-wrapper) .agp-hero__image img { height: 360px; }
	:is(.agp,.editor-styles-wrapper) .agp-hero__legende { position: relative; left: auto; bottom: auto; max-width: none; margin: 0; }
	:is(.agp,.editor-styles-wrapper) .agp-en-tete { padding-top: 56px; padding-bottom: 48px; }
	:is(.agp,.editor-styles-wrapper) .agp-barre-section { padding-top: 48px; }
	:is(.agp,.editor-styles-wrapper) .agp-section--suite { padding-bottom: 64px; }
	:is(.agp,.editor-styles-wrapper) .agp-presta-liste { gap: 64px; }
	:is(.agp,.editor-styles-wrapper) .agp-presta { gap: 28px; }
	:is(.agp,.editor-styles-wrapper) .agp-presta__media { height: 320px; }
	:is(.agp,.editor-styles-wrapper) .agp-image-couvrante img,
	:is(.agp,.editor-styles-wrapper) .agp-image-couvrante--haute img { height: 340px; }
	:is(.agp,.editor-styles-wrapper) .agp-pile,
	:is(.agp,.editor-styles-wrapper) .agp-pile--large { gap: 56px; }
	:is(.agp,.editor-styles-wrapper) .agp-grille-2 { gap: 36px; }
	:is(.agp,.editor-styles-wrapper) .agp-ba__cadre { height: min(var(--agp-ba-h, 420px), 380px); }
	:is(.agp,.editor-styles-wrapper) .agp-ba__panneau { height: 240px; }
	:is(.agp,.editor-styles-wrapper) .agp-carte,
	:is(.agp,.editor-styles-wrapper) .agp-carte--large,
	:is(.agp,.editor-styles-wrapper) .agp-marques--encadre,
	:is(.agp,.editor-styles-wrapper) .agp-tarif-carte { padding: 26px; }
	:is(.agp,.editor-styles-wrapper) .agp-contact-infos__tel { font-size: 26px; }
	:is(.agp,.editor-styles-wrapper) .agp-cta-bandeau__inner { padding-top: 44px; padding-bottom: 44px; }
	:is(.agp,.editor-styles-wrapper) .agp-galerie__item { width: 72%; }
	:is(.agp,.editor-styles-wrapper) .agp-marques__logos { gap: 32px; }
	:is(.agp,.editor-styles-wrapper) .agp-actions .agp-btn,
	:is(.agp,.editor-styles-wrapper) .agp-actions .wp-block-button { flex: 1 1 auto; }
}

@media (prefers-reduced-motion: reduce) {
	:is(.agp,.editor-styles-wrapper) .agp-presta-carte__media img { transition: none; }
}

/* ---------- Éditeur : ne pas masquer les blocs ACF en aperçu ---------- */
.editor-styles-wrapper .agp-ba__range { pointer-events: none; }
.editor-styles-wrapper .agp-section { padding-left: 0; padding-right: 0; }

/* ---------- Ombre de l'article Kadence ----------
   Kadence ajoute une ombre portée sous l'article : elle dessine une ligne en bas
   des pages qui se terminent sur le fond crème (Réalisations, L'entreprise…). */
.agp .entry.single-entry,
.agp .entry.loop-entry { box-shadow: none; }

/* ---------- Pages légales ---------- */
:is(.agp,.editor-styles-wrapper) .agp-texte-legal {
	box-sizing: border-box;
	max-width: 860px;
	padding: 48px;
	background: var(--agp-blanc);
	color: #4A4A4A;
}
:is(.agp,.editor-styles-wrapper) .agp-texte-legal h2 {
	margin: 40px 0 14px;
	font-size: 22px;
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: 0;
	color: var(--agp-noir);
}
:is(.agp,.editor-styles-wrapper) .agp-texte-legal h2:first-child,
:is(.agp,.editor-styles-wrapper) .agp-texte-legal > .wp-block-group__inner-container > h2:first-child { margin-top: 0; }
:is(.agp,.editor-styles-wrapper) .agp-texte-legal p { margin: 0 0 14px; font-size: 16px; line-height: 1.7; }
:is(.agp,.editor-styles-wrapper) .agp-texte-legal ul { margin: 0 0 14px; padding-left: 1.25em; }
:is(.agp,.editor-styles-wrapper) .agp-texte-legal li { margin: 0 0 6px; font-size: 16px; line-height: 1.65; }
:is(.agp,.editor-styles-wrapper) .agp-texte-legal li::marker { color: var(--agp-orange); }
:is(.agp,.editor-styles-wrapper) .agp-texte-legal strong { color: var(--agp-noir); }
:is(.agp,.editor-styles-wrapper) .agp-texte-legal a { color: var(--agp-orange); text-decoration: underline; text-underline-offset: 3px; }
:is(.agp,.editor-styles-wrapper) .agp-texte-legal a:hover { color: var(--agp-orange-fonce); }
@media (max-width: 767px) {
	:is(.agp,.editor-styles-wrapper) .agp-texte-legal { padding: 28px 22px; }
	:is(.agp,.editor-styles-wrapper) .agp-texte-legal h2 { font-size: 20px; margin-top: 32px; }
}

/* =========================================================================
   Animations d'entrée (site uniquement, jamais dans l'éditeur)
   - Hero et en-têtes de page : CSS pur au chargement.
   - Reste de la page : classes .agp-reveal / .is-visible posées par agp.js au défilement.
   Désactivées si l'utilisateur a demandé à réduire les animations.
   ========================================================================= */
@keyframes agp-monte {
	from { opacity: 0; transform: translate3d(0, 26px, 0); }
	to { opacity: 1; transform: none; }
}
@keyframes agp-zoom {
	from { transform: scale(1.08); }
	to { transform: scale(1); }
}
@keyframes agp-glisse {
	from { opacity: 0; transform: translate3d(-18px, 0, 0); }
	to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: no-preference) {
	/* Hero accueil */
	.agp .agp-hero .agp-badge-cadre,
	.agp .agp-hero .agp-hero__titre,
	.agp .agp-hero .agp-intro,
	.agp .agp-hero .agp-actions { animation: agp-monte .7s cubic-bezier(.2, .65, .3, 1) both; }
	.agp .agp-hero .agp-hero__titre { animation-delay: .08s; }
	.agp .agp-hero .agp-intro { animation-delay: .18s; }
	.agp .agp-hero .agp-actions { animation-delay: .28s; }
	.agp .agp-hero .agp-hero__image { overflow: hidden; }
	.agp .agp-hero .agp-hero__image img { animation: agp-zoom 1.4s cubic-bezier(.2, .65, .3, 1) both; }
	.agp .agp-hero .agp-hero__legende { animation: agp-glisse .7s cubic-bezier(.2, .65, .3, 1) .55s both; }

	/* En-têtes de page */
	.agp .agp-en-tete .agp-surtitre,
	.agp .agp-en-tete .agp-h1-page,
	.agp .agp-en-tete .agp-intro,
	.agp .agp-en-tete .agp-ancres { animation: agp-monte .7s cubic-bezier(.2, .65, .3, 1) both; }
	.agp .agp-en-tete .agp-h1-page { animation-delay: .08s; }
	.agp .agp-en-tete .agp-intro { animation-delay: .18s; }
	.agp .agp-en-tete .agp-ancres { animation-delay: .28s; }
	.agp .agp-en-tete .agp-image-couvrante { overflow: hidden; }
	.agp .agp-en-tete .agp-image-couvrante img { animation: agp-zoom 1.4s cubic-bezier(.2, .65, .3, 1) both; }

	/* Apparition au défilement */
	.agp-js-anim .agp-reveal {
		opacity: 0;
		transform: translate3d(0, 28px, 0);
		transition: opacity .7s cubic-bezier(.2, .65, .3, 1), transform .8s cubic-bezier(.2, .65, .3, 1);
		transition-delay: var(--agp-delai, 0s);
		will-change: opacity, transform;
	}
	.agp-js-anim .agp-reveal.is-visible { opacity: 1; transform: none; will-change: auto; }

	/* Barre d'accent : se trace de gauche à droite */
	.agp-js-anim .agp-reveal.agp-barre {
		opacity: 1;
		transform: scaleX(0);
		transform-origin: left center;
		transition: transform .9s cubic-bezier(.65, 0, .35, 1) .1s;
	}
	.agp-js-anim .agp-reveal.agp-barre.is-visible { transform: scaleX(1); }
}
