/*
 * AgVisor – effets du site (Studio Web Paris)
 *
 * Chaque effet s'accroche à une classe CSS posée sur un module Divi de base
 * (onglet Avancé > Classe CSS du module). Sans ce fichier, le contenu reste
 * entièrement visible : seuls les effets disparaissent.
 *
 * Réglages communs
 */
:root {
	--agv-vert: #3d6631;
	--agv-gris-clair: #e8e8e8;
	--agv-texte: #666;
	--agv-verso-texte: #f4f4f4;
	--agv-ressort: cubic-bezier(0.2, 0.7, 0.2, 1);   /* départ vif, arrivée douce */
	--agv-rideau: cubic-bezier(0.65, 0, 0.35, 1);    /* accélère puis freine */
}

/* =========================================================================
 * 1. Cartes de services  (classe « agv-carte » sur un module Présentation / Blurb)
 *
 * Recto : l'icône, le titre et une phrase. Au survol (ou au toucher sur
 * téléphone), la carte se soulève et un panneau vert monte du bas comme un
 * rideau, puis la phrase du verso arrive. Le verso est écrit dans le texte du
 * module, dans un bloc <div class="agv-carte__verso">.
 * Toute la carte mène à la page du service (lien du titre étiré sur la carte).
 * ====================================================================== */
.et_pb_row:has(.agv-carte) > .et_pb_column {
	display: flex;
	flex-direction: column;
}

.et_pb_blurb.agv-carte {
	position: relative;
	isolation: isolate;
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	box-sizing: border-box;
	margin-bottom: 0 !important;
	padding: 20px;
	border: 2px solid var(--agv-vert);
	border-radius: 7px;
	background: #fff;
	box-shadow: 0 2px 18px -8px rgba(0, 0, 0, 0.3);
	overflow: hidden;
	text-align: center;
	transition:
		transform 0.55s var(--agv-ressort),
		box-shadow 0.55s var(--agv-ressort);
}

.agv-carte .et_pb_blurb_content {
	position: static !important; /* Divi le met en « relative » : le verso doit couvrir toute la carte */
	max-width: none;
	width: 100%;
}

.agv-carte .et_pb_main_blurb_image {
	display: block;
	width: 73%;
	max-width: none;
	margin: 0 auto;
}

.agv-carte .et_pb_main_blurb_image img {
	width: 100%;
	transition: transform 0.7s var(--agv-ressort);
}

.agv-carte .et_pb_blurb_container {
	position: static !important; /* Divi 5 le met en « relative » (même sur les cartes sans image) : le verso doit couvrir toute la carte */
	padding-top: 15px;
}

.agv-carte .et_pb_module_header {
	padding-bottom: 10px;
	font-family: 'Open Sans', Arial, sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5em;
	letter-spacing: 2px;
	color: var(--agv-vert);
}

.agv-carte .et_pb_module_header a {
	color: inherit;
	text-decoration: none;
}

/* Le lien du titre couvre toute la carte : un vrai lien, lu par Google. */
.agv-carte .et_pb_module_header a::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 3;
	border-radius: 7px;
}

.agv-carte .et_pb_blurb_description,
.agv-carte .et_pb_blurb_description p {
	font-family: 'Open Sans', Arial, sans-serif;
	font-size: 15px;
	font-weight: 500;
	line-height: 2em;
	color: var(--agv-texte);
}

/* Le verso : posé sur toute la carte, caché sous un rideau replié en bas. */
.agv-carte .agv-carte__verso {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	background: var(--agv-vert);
	clip-path: inset(100% 0 0 0);
	pointer-events: none;
	transition: clip-path 0.45s var(--agv-rideau);
}

.agv-carte .agv-carte__verso p {
	margin: 0;
	padding: 0;
	font-size: 17px;
	font-weight: 500;
	line-height: 1.5em;
	letter-spacing: 1px;
	color: var(--agv-verso-texte);
}

/* Le texte du verso arrive juste après le rideau (et repart tout de suite à la fermeture). */
.agv-carte .agv-carte__verso > * {
	opacity: 0;
	transform: translateY(14px);
	transition:
		opacity 0.2s ease,
		transform 0.3s ease;
}

/* Carte ouverte : au survol à la souris, au clavier, ou au toucher (classe posée par le script). */
@media (hover: hover) {
	.agv-carte:hover {
		transform: translateY(-6px);
		box-shadow: 0 22px 40px -22px rgba(61, 102, 49, 0.55);
	}

	.agv-carte:hover .agv-carte__verso {
		clip-path: inset(0 0 0 0);
		transition-duration: 0.6s;
	}

	.agv-carte:hover .agv-carte__verso > * {
		opacity: 1;
		transform: none;
		transition:
			opacity 0.45s ease 0.22s,
			transform 0.6s var(--agv-ressort) 0.22s;
	}

	.agv-carte:hover .et_pb_main_blurb_image img {
		transform: scale(1.06);
	}
}

.agv-carte:focus-within .agv-carte__verso,
.agv-carte.est-ouverte .agv-carte__verso {
	clip-path: inset(0 0 0 0);
	transition-duration: 0.6s;
}

.agv-carte:focus-within .agv-carte__verso > *,
.agv-carte.est-ouverte .agv-carte__verso > * {
	opacity: 1;
	transform: none;
	transition:
		opacity 0.45s ease 0.22s,
		transform 0.6s var(--agv-ressort) 0.22s;
}

.agv-carte:has(a:focus-visible) {
	outline: 2px solid var(--agv-vert);
	outline-offset: 4px;
}

/* Téléphone : carte un peu plus étroite et centrée, icône plus petite (comme avant). */
@media (max-width: 767px) {
	.et_pb_blurb.agv-carte {
		width: 83%;
		margin-right: auto;
		margin-left: auto;
	}

	.agv-carte .et_pb_main_blurb_image {
		width: 48%;
	}
}

/* Variante « agv-carte--inverse » (page About) : recto vert, verso blanc avec un titre.
 * « agv-carte--serre » resserre les lettres d'un titre long. */
.et_pb_blurb.agv-carte--inverse {
	width: 100%; /* garde la largeur de la colonne même quand la carte est décalée par une marge négative */
	min-height: 250px;
	padding: 0 19px 15px;
	border-width: 1px;
	border-radius: 5px;
	background: var(--agv-vert);
	box-shadow: none;
}

.agv-carte--inverse .et_pb_module_header {
	font-size: 20px;
	letter-spacing: 2px;
	color: var(--agv-gris-clair);
}

.agv-carte--serre .et_pb_module_header {
	letter-spacing: 1px;
}

.agv-carte--inverse .et_pb_blurb_description,
.agv-carte--inverse .et_pb_blurb_description p {
	font-size: 14px;
	line-height: 1.7em;
	color: var(--agv-gris-clair);
}

.agv-carte--inverse .agv-carte__verso {
	flex-direction: column;
	padding: 15px 20px;
	background: #fff;
}

.agv-carte--inverse .agv-carte__verso .agv-carte__verso-titre {
	padding-bottom: 10px;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.3em;
	letter-spacing: normal;
	color: var(--agv-vert);
}

.agv-carte--inverse .agv-carte__verso p:not(.agv-carte__verso-titre) {
	font-size: 14px;
	line-height: 1.7em;
	letter-spacing: normal;
	color: var(--agv-vert);
}

/* =========================================================================
 * 2. Boutons du haut de page  (classes « agv-bouton » + « agv-bouton--plein »
 *    ou « agv-bouton--contour » sur des modules Bouton)
 *
 * Les couleurs, tailles et marges restent réglées dans Divi ; ce fichier ne
 * fait que poser les deux boutons côte à côte (l'un sous l'autre sur téléphone).
 * ====================================================================== */
.et_pb_button_module_wrapper:has(> .agv-bouton) {
	display: inline-block;
	margin: -18px 0 0 !important;
	vertical-align: top;
}

.et_pb_button_module_wrapper:has(> .agv-bouton--plein) {
	margin-right: 20px !important;
	margin-left: 30px !important;
}

@media (max-width: 767px) {
	.et_pb_button_module_wrapper:has(> .agv-bouton) {
		display: block;
		margin-right: 0 !important;
		margin-left: 0 !important;
	}

	.et_pb_button_module_wrapper:has(> .agv-bouton--plein) {
		margin-bottom: 12px !important;
	}

	.et_pb_button_module_wrapper:has(> .agv-bouton--contour) {
		margin-top: 0 !important;
	}
}

/* =========================================================================
 * 3. Frise des étapes  (classe « agv-etape » sur des modules Texte qui se suivent)
 *
 * Chaque étape : <div class="agv-etape__numero">01</div>, un titre <h4>, un
 * paragraphe. Une ligne verticale relie les étapes, avec une pastille cochée
 * par étape. Au défilement, la ligne se remplit et chaque pastille se coche
 * quand la ligne l'atteint ; les étapes apparaissent en douceur.
 * Ordinateur : ligne à droite des cartes. Téléphone : ligne à gauche.
 * ====================================================================== */
.et_pb_text.agv-etape {
	--agv-p: 0;               /* remplissage de la ligne, de 0 à 1, posé par le script */
	--agv-demi-ecart: 15.5px; /* moitié de l'écart entre deux étapes */
	position: relative;
	margin-right: 80px;
	margin-bottom: 31px !important;
	padding: 15px 30px;
	border-radius: 5px;
	background: rgba(232, 232, 232, 0.16);
	color: var(--agv-gris-clair);
}

.et_pb_text.agv-etape:not(:has(~ .agv-etape)) {
	margin-bottom: 0 !important;
}

/* Numéro sans cadre (demande de Stéphanie, 13/11/2026 ; l'original Divi Life l'encadrait). */
.agv-etape .agv-etape__numero {
	display: inline-block;
	margin: 0 0 12px;
	padding: 0;
	border: 0;
	font-family: 'Open Sans', Arial, sans-serif;
	font-size: 40px;
	font-weight: 600; /* 800 à l'origine ; allégé à la demande de Stéphanie (13/11/2026) */
	line-height: 1.2em;
	letter-spacing: 1px;
	color: var(--agv-gris-clair);
}

.agv-etape :is(h3, h4) {
	padding: 0 0 10px;
	font-family: 'Open Sans', Arial, sans-serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.4em;
	color: var(--agv-gris-clair);
}

.agv-etape p {
	padding: 0;
	font-size: 14px;
	line-height: 1.7em;
	color: var(--agv-gris-clair);
}

/* Le morceau de ligne de l'étape : du milieu de l'écart du dessus au milieu de l'écart du dessous
 * (la première part de sa pastille, la dernière s'arrête à la sienne). */
.et_pb_text.agv-etape::before {
	content: '';
	position: absolute;
	top: calc(var(--agv-demi-ecart) * -1);
	right: -41px;
	bottom: calc(var(--agv-demi-ecart) * -1);
	width: 2px;
	background: linear-gradient(
		to bottom,
		var(--agv-gris-clair) 0,
		var(--agv-gris-clair) calc(var(--agv-p) * 100%),
		rgba(232, 232, 232, 0.28) calc(var(--agv-p) * 100%)
	);
}

.et_pb_text.agv-etape:not(.agv-etape ~ .agv-etape)::before {
	top: 50%;
}

.et_pb_text.agv-etape:not(:has(~ .agv-etape))::before {
	bottom: 50%;
}

/* La pastille cochée. */
.et_pb_text.agv-etape::after {
	content: '';
	position: absolute;
	top: 50%;
	right: -65px;
	z-index: 1;
	width: 50px;
	height: 50px;
	margin-top: -25px;
	border-radius: 50%;
	background: #b9c3b5 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 20px no-repeat;
	transition: background-color 0.4s ease;
}

.et_pb_text.agv-etape.est-atteinte::after {
	background-color: var(--agv-gris-clair);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233d6631' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
	animation: agv-pastille 0.55s var(--agv-ressort);
}

@keyframes agv-pastille {
	0%   { transform: scale(0.8); }
	60%  { transform: scale(1.12); }
	100% { transform: scale(1); }
}

/* Apparition des étapes (seulement si le script tourne : sans lui, tout reste visible). */
.agv-js .et_pb_text.agv-etape {
	opacity: 0;
	transform: translateY(28px);
	transition:
		opacity 0.7s ease,
		transform 0.9s var(--agv-ressort);
}

.agv-js .et_pb_text.agv-etape.est-visible {
	opacity: 1;
	transform: none;
}

@media (max-width: 767px) {
	.et_pb_text.agv-etape {
		margin-right: 0;
		margin-left: 80px;
	}

	.et_pb_text.agv-etape::before {
		right: auto;
		left: -41px;
	}

	.et_pb_text.agv-etape::after {
		right: auto;
		left: -65px;
	}
}

/* =========================================================================
 * 4. Interrupteur « Mission / Réalisation »  (raccourci [agv_bascule] dans un module Code)
 *
 * Deux libellés et un interrupteur ; le panneau choisi arrive en fondu léger.
 * Les deux libellés sont cliquables aussi.
 * ====================================================================== */
.agv-bascule__tete {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	min-height: 32px;
	margin-bottom: 25px;
}

.agv-bascule .agv-bascule__libelle {
	padding: 0;
	border: 0;
	background: none;
	font-family: 'Open Sans', Arial, sans-serif;
	font-size: 19px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 1px;
	color: #333;
	opacity: 0.45;
	cursor: pointer;
	transition: opacity 0.3s ease;
}

.agv-bascule .agv-bascule__libelle.est-actif,
.agv-bascule .agv-bascule__libelle:hover {
	opacity: 1;
}

.agv-bascule .agv-bascule__interrupteur {
	position: relative;
	flex: none;
	width: 63px;
	height: 32px;
	padding: 0;
	border: 0;
	border-radius: 21px;
	background: var(--agv-vert);
	cursor: pointer;
}

.agv-bascule__curseur {
	position: absolute;
	top: 3.5px;
	left: 3.5px;
	width: 25px;
	height: 25px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
	transition: transform 0.45s var(--agv-ressort);
}

.agv-bascule__interrupteur[aria-checked='true'] .agv-bascule__curseur {
	transform: translateX(31px);
}

.agv-bascule button:focus-visible {
	outline: 2px solid var(--agv-vert);
	outline-offset: 3px;
}

.agv-bascule__panneau[hidden] {
	display: none;
}

.agv-bascule__panneau.est-entrant {
	animation: agv-entree 0.55s var(--agv-ressort);
}

@keyframes agv-entree {
	from {
		opacity: 0;
		transform: translateY(12px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

/* =========================================================================
 * 5. Méga-menu « Nos Services »  (ordinateur, à partir de 981 px)
 * Le panneau (une mise en page de la bibliothèque Divi) s'ouvre sous l'en-tête,
 * contre le bord droit, sur 75 % de la largeur ; il arrive en glissant à peine.
 * ====================================================================== */
.agv-mega {
	position: absolute;
	right: 0;
	z-index: 99990;
	width: 75%;
	opacity: 0;
	transform: translateY(10px);
	pointer-events: none;
	transition:
		opacity 0.25s ease,
		transform 0.35s var(--agv-ressort);
}

.agv-mega[hidden] {
	display: none;
}

/* Les animations d'apparition de Divi attendent que l'élément entre dans l'écran :
 * dans un menu caché au chargement, elles ne se lancent jamais. On les montre d'office. */
.agv-hors-page .et_animated,
.agv-hors-page .et-waypoint,
.agv-hors-page .et_pb_main_blurb_image {
	opacity: 1 !important;
	transform: none !important;
	animation: none !important;
}

.agv-mega.est-ouvert {
	opacity: 1;
	transform: none;
	pointer-events: auto;
}

/* Petite flèche verte sous « Nos Services » (comme l'original). Position posée par le script. */
.agv-mega::before {
	content: '';
	position: absolute;
	top: -10px;
	left: var(--agv-fleche, 50%);
	z-index: 2;
	width: 0;
	height: 0;
	margin-left: -10px;
	border-right: 10px solid transparent;
	border-bottom: 10px solid #466537;
	border-left: 10px solid transparent;
}

@media (max-width: 980px) {
	.agv-mega {
		display: none !important;
	}
}

/* =========================================================================
 * 6. Menu plein écran  (téléphone et tablette, jusqu'à 980 px)
 * Le bouton « hamburger » de Divi l'ouvre ; on le ferme par la croix, la
 * touche Échap ou en choisissant un lien.
 * ====================================================================== */
html.agv-menu-ouvert,
html.agv-menu-ouvert body {
	overflow: hidden;
}

.agv-menu-mobile {
	position: fixed;
	inset: 0;
	z-index: 100000;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	background: #fff;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.agv-menu-mobile[hidden] {
	display: none;
}

.agv-menu-mobile.est-ouvert {
	opacity: 1;
}

/* Connecté à WordPress : le menu passe sous la barre d'administration. */
.admin-bar .agv-menu-mobile {
	top: 32px;
}

.admin-bar .agv-menu-mobile .agv-menu-mobile__fermer {
	top: 44px;
}

@media (max-width: 782px) {
	.admin-bar .agv-menu-mobile {
		top: 46px;
	}

	.admin-bar .agv-menu-mobile .agv-menu-mobile__fermer {
		top: 58px;
	}
}

.agv-menu-mobile__contenu {
	padding-bottom: 80px;
	transform: translateY(16px);
	transition: transform 0.5s var(--agv-ressort);
}

.agv-menu-mobile.est-ouvert .agv-menu-mobile__contenu {
	transform: none;
}

.agv-menu-mobile .agv-menu-mobile__fermer {
	position: fixed;
	top: 12px;
	right: 14px;
	z-index: 1000; /* au-dessus des rangées de la mise en page (dont une est réglée en z-index 10) */
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #333;
	cursor: pointer;
}

.agv-menu-mobile__fermer span::before,
.agv-menu-mobile__fermer span::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 18px;
	height: 2px;
	margin: -1px 0 0 -9px;
	border-radius: 1px;
	background: #fff;
	transform: rotate(45deg);
}

.agv-menu-mobile__fermer span::after {
	transform: rotate(-45deg);
}

.agv-menu-mobile__fermer:focus-visible {
	outline: 2px solid var(--agv-vert);
	outline-offset: 3px;
}

/* =========================================================================
 * 7. Haut de page en biais  (classe « agv-diagonale » sur une section Divi, ordinateur)
 * La photo de fond de la section est reprise dans un panneau à gauche, coupé en
 * biais : le biais ne bouge plus avec la largeur de l'écran et ne passe jamais
 * sous le texte. La photo reste celle réglée dans Divi (le script la recopie).
 * ====================================================================== */
@media (min-width: 981px) {
	.et_pb_section.agv-diagonale.est-prete {
		background-image: none !important;
	}

	.et_pb_section.agv-diagonale.est-prete::before {
		content: '';
		position: absolute;
		top: 0;
		bottom: 0;
		left: 0;
		z-index: 0;
		width: 56%;
		background: var(--agv-photo) left center / cover no-repeat;
		clip-path: polygon(0 0, 78% 0, 100% 100%, 0 100%);
		pointer-events: none;
	}

	.et_pb_section.agv-diagonale.est-prete > .et_pb_row {
		position: relative;
		z-index: 1;
	}
}

/* =========================================================================
 * 8. Présentations avec l'icône à gauche (Divi 5, tous navigateurs)
 * Divi 5 les met en « tableau » : une case de 32 px pour l'icône, que Chrome
 * agrandit mais pas Safari (l'icône de 90 px débordait sur le texte, ou
 * disparaissait dans le méga-menu). Une mise en ligne souple fait pareil partout.
 * ====================================================================== */
.et_pb_blurb_position_left .et_pb_blurb_content {
	display: flex;
	align-items: flex-start;
}

.et_pb_blurb_position_left .et_pb_main_blurb_image {
	display: block;
	flex: none;
	width: auto;
	margin-bottom: 0 !important; /* la marge basse de Divi ne comptait pas en « tableau » */
}

/* Taille par défaut de Divi (32 px) ; une largeur réglée dans le module (ex. 90 px) l'emporte. */
.et_pb_blurb_position_left .et_pb_main_blurb_image .et_pb_image_wrap {
	display: block;
	width: 32px;
}

.et_pb_blurb_position_left .et_pb_main_blurb_image .et_pb_image_wrap img {
	width: 100%;
	max-width: 100%;
}

.et_pb_blurb_position_left .et_pb_blurb_container {
	display: block;
	flex: 1 1 auto;
	min-width: 0;
}

/* =========================================================================
 * 9. En-tête sur tablette (768 à 980 px)
 * Le menu y gardait les 600 px de marge intérieure et les 111 % de largeur réglés
 * pour l'ordinateur : le logo était écrasé à 0 px et le bouton « Contact » sortait
 * de l'écran (déjà le cas sur l'ancien site).
 * Logo à sa taille, menu (le bouton « hamburger ») sur l'espace restant, bouton entier.
 * ====================================================================== */
@media (min-width: 768px) and (max-width: 980px) {
	.et-l--header .et_pb_column:has(> .et_pb_menu) {
		align-items: center;
		gap: 16px;
	}

	.et-l--header .et_pb_column:has(> .et_pb_menu) > .et_pb_image {
		flex: 0 0 auto;
		width: 130px !important;
		max-width: none !important;
		margin: 0 !important;
	}

	.et-l--header .et_pb_column:has(> .et_pb_menu) > .et_pb_image img {
		width: 100%;
	}

	.et-l--header .et_pb_column:has(> .et_pb_menu) > .et_pb_menu {
		flex: 1 1 0 !important;
		width: auto !important;
		min-width: 0 !important;
		max-width: none !important;
		margin: 0 !important;
		padding-left: 0 !important; /* l'ordinateur pousse le menu avec 600 px de marge intérieure, jamais annulés sur tablette */
	}

	.et-l--header .et_pb_column:has(> .et_pb_menu) > .et_pb_menu .et_pb_menu_inner_container,
	.et-l--header .et_pb_column:has(> .et_pb_menu) > .et_pb_menu .et_pb_menu__wrap {
		justify-content: center;
	}

	.et-l--header .et_pb_column:has(> .et_pb_menu) > .et_pb_button_module_wrapper {
		flex: 0 0 auto !important;
		margin: 0 !important;
	}
}

/* Petits ordinateurs et iPad à l'horizontale (981 à 1 279 px) : même défaut, le menu passait
 * sur 2 ou 3 lignes et le logo rétrécissait (déjà le cas sur l'ancien site). Menu sur une ligne, calé à droite. */
@media (min-width: 981px) and (max-width: 1279px) {
	.et-l--header .et_pb_column:has(> .et_pb_menu) {
		align-items: center;
		gap: 20px;
	}

	.et-l--header .et_pb_column:has(> .et_pb_menu) > .et_pb_image {
		flex: 0 0 auto;
		width: 110px !important;
		max-width: none !important;
		margin: 0 !important;
	}

	.et-l--header .et_pb_column:has(> .et_pb_menu) > .et_pb_image img {
		width: 100%;
	}

	.et-l--header .et_pb_column:has(> .et_pb_menu) > .et_pb_menu {
		flex: 1 1 0 !important;
		width: auto !important;
		min-width: 0 !important;
		max-width: none !important;
		margin: 0 !important;
		padding-left: 0 !important;
	}

	.et-l--header .et_pb_column:has(> .et_pb_menu) > .et_pb_menu .et_pb_menu_inner_container,
	.et-l--header .et_pb_column:has(> .et_pb_menu) > .et_pb_menu .et_pb_menu__wrap {
		justify-content: flex-end;
	}

	.et-l--header .et_pb_column:has(> .et_pb_menu) > .et_pb_menu .et-menu {
		flex-wrap: nowrap;
	}

	.et-l--header .et_pb_column:has(> .et_pb_menu) > .et_pb_button_module_wrapper {
		flex: 0 0 auto !important;
		margin: 0 !important;
	}
}

/* About, « Un positionnement unique » : sur tablette, le texte passe sous les deux cartes ; on l'en décolle. */
@media (min-width: 768px) and (max-width: 980px) {
	.et_pb_row:has(.agv-carte--inverse) > .et_pb_column:not(:has(.agv-carte--inverse)):last-child {
		margin-top: 40px;
	}
}

/* =========================================================================
 * 10. Harmonisation (pages marquées « agv-harmonise » par l'extension)
 *
 * Toutes les valeurs viennent des variables globales Divi 5 « AgVisor – … »
 * (avec une valeur de secours si la variable manquait). Les espacements
 * entre sections sont réglés directement dans Divi (marges des sections
 * reliées aux variables) ; ici : rangées, titres, texte, boutons, cartes.
 * Repères posés dans Divi : agv-section (section blanche normale),
 * agv-pleine-largeur (rangée pleine largeur), agv-chapeau (paragraphe
 * d'introduction), agv-accroche (texte d'accroche en grand), agv-chiffre
 * (grands chiffres d'étapes).
 * ====================================================================== */

/* --- Rangées des sections normales : largeur commune, écart régulier --- */
.agv-harmonise .agv-section > .et_pb_row {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* Rangées ordinaires : largeur commune, pas de marge intérieure en haut ni en bas.
 * Les rangées pleine largeur et les rangées à fond (cartes, bandeaux) gardent les leurs. */
.agv-harmonise .agv-section > .et_pb_row:not(.agv-pleine-largeur):not(.agv-rangee-fond) {
	width: 80% !important;
	max-width: var(--gvid-agv-largeur-contenu, 1130px) !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.agv-harmonise .agv-section > .et_pb_row + .et_pb_row {
	margin-top: var(--gvid-agv-espace-resserre, 40px) !important;
}

.agv-harmonise .agv-section > .et_pb_row + .et_pb_row.agv-pleine-largeur {
	margin-top: var(--gvid-agv-espace-ordinateur, 100px) !important;
}

/* Ce qui suit le filet d'un titre, dans la même colonne, s'en écarte comme une rangée suivante. */
.agv-harmonise .et-l--post .et_pb_divider + .et_pb_module {
	margin-top: var(--gvid-agv-espace-resserre, 40px) !important;
}

/* Études de cas : le titre et son trait étaient tirés de 15 px vers la gauche ;
 * ils s'alignent sur la petite ligne « MISSION ». */
.agv-harmonise .agv-bascule .et_pb_text,
.agv-harmonise .agv-bascule .et_pb_divider {
	margin-left: 0 !important;
}

/* Deux sections blanches qui se suivent : un seul vide entre elles (celui du bas de la première). */
.agv-harmonise .et_pb_section.agv-blanche + .et_pb_section.agv-blanche {
	padding-top: 0 !important;
}

/* Espace sous les titres (demande de Stéphanie, 13/11/2026 : « un peu plus ») : 56 px entre le trait
 * et ce qui suit sur ordinateur, 48 sur tablette, 40 sur téléphone. */
:root {
	--agv-sous-titre: 56px;
}

@media (max-width: 980px) {
	:root { --agv-sous-titre: 48px; }
}

@media (max-width: 767px) {
	:root { --agv-sous-titre: 40px; }
}

.agv-harmonise .et-l--post .et_pb_row:has(.et_pb_divider:last-child) + .et_pb_row {
	margin-top: var(--agv-sous-titre) !important;
}

.agv-harmonise .et-l--post .et_pb_divider + .et_pb_module {
	margin-top: var(--agv-sous-titre) !important;
}

/* Titre + trait suivi d'une rangée (cartes, texte…) : écart réglé juste au-dessus (--agv-sous-titre).
 * Le module « trait » de Divi fait 37 px de haut pour une ligne de 4-5 px : il est ramené à la ligne. */
.agv-harmonise .et-l--post .et_pb_row:has(+ .et_pb_row) .et_pb_divider:last-child {
	height: 5px !important;
	padding-bottom: 0 !important;
	margin-bottom: 0 !important;
}

/* Nouvelle partie (titre + trait) après une section blanche : plus d'air au-dessus du titre
 * (140 px au lieu de 100 sur ordinateur, 112 sur tablette, 78 sur téléphone). */
.agv-harmonise .et_pb_section.agv-blanche + .et_pb_section.agv-blanche:has(> .et_pb_row:first-child .et_pb_divider) {
	padding-top: calc(var(--gvid-agv-espace-ordinateur, 100px) * 0.4) !important;
}

@media (max-width: 980px) {
	.agv-harmonise .et_pb_section.agv-blanche + .et_pb_section.agv-blanche:has(> .et_pb_row:first-child .et_pb_divider) {
		padding-top: calc(var(--gvid-agv-espace-tablette, 80px) * 0.4) !important;
	}
}

@media (max-width: 767px) {
	.agv-harmonise .et_pb_section.agv-blanche + .et_pb_section.agv-blanche:has(> .et_pb_row:first-child .et_pb_divider) {
		padding-top: calc(var(--gvid-agv-espace-telephone, 56px) * 0.4) !important;
	}
}

/* Nos services : les 4 cartes de services à la même hauteur (grille 2 × 2, ordre et alignement conservés). */
@media (min-width: 981px) {
	.agv-harmonise .et_pb_row.agv-cartes-egales {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 1fr 1fr;
		grid-auto-flow: column;
		column-gap: 5.5%;
		row-gap: 31px;
	}

	.agv-harmonise .agv-cartes-egales > .et_pb_column {
		display: contents !important;
	}

	/* Le « clearfix » de Divi deviendrait une 3e colonne vide. */
	.agv-harmonise .et_pb_row.agv-cartes-egales::before,
	.agv-harmonise .et_pb_row.agv-cartes-egales::after {
		display: none !important;
	}

	.agv-harmonise .agv-cartes-egales .et_pb_blurb {
		margin: 0 !important;
		justify-self: end;
		width: 100% !important;
		max-width: 500px !important;
		height: 100%;
		box-sizing: border-box;
	}
}

/* Nos services, partie « Expertise / Synergie / AgVisor » : les photos sont décalées de 57 px vers le haut
 * (effet de cadre) ; un seul vide sous les cartes, et plus d'air entre les rangées. */
.agv-harmonise .et_pb_section.agv-section + .et_pb_section.agv-rangees-aerees {
	padding-top: 0 !important;
}

@media (min-width: 981px) {
	body.agv-harmonise .et-l--post .et_pb_section.agv-rangees-aerees > .et_pb_row + .et_pb_row {
		margin-top: 120px !important;
	}
}

/* Formulaire de contact, bas : vraie case à cocher, vrai champ pour la somme, bouton qui ne s'étire plus.
 * (Le style « trait du bas seulement » des champs s'appliquait aussi à la case et au champ de la somme.) */
body.agv-harmonise #page-container .et_pb_contact_form_container .et_pb_contact_field_options_wrapper,
body.agv-harmonise #page-container .et_pb_contact_form_container fieldset {
	border: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
}

body.agv-harmonise #page-container .et_pb_contact_form_container .et_pb_contact_field_checkbox label {
	display: block !important;
	position: relative;
	padding-left: 32px !important;
	font-size: 15px !important;
	line-height: 1.5 !important;
	cursor: pointer;
}

body.agv-harmonise #page-container .et_pb_contact_form_container .et_pb_contact_field_checkbox label i {
	position: absolute !important;
	left: 0;
	top: 1px;
	width: 20px !important;
	height: 20px !important;
	margin: 0 !important;
	border: 2px solid var(--gcid-agv-vert, #3d6631) !important;
	border-radius: 4px !important;
	background-color: #fff !important;
	box-sizing: border-box;
}

body.agv-harmonise #page-container .et_pb_contact_form_container .et_pb_contact_field_checkbox input:checked + label i {
	background-color: var(--gcid-agv-vert, #3d6631) !important;
}

body.agv-harmonise #page-container .et_pb_contact_form_container .et_pb_contact_field_checkbox input:checked + label i::before {
	color: #fff !important;
}

body.agv-harmonise #page-container .et_pb_contact_form_container .et_contact_bottom_container {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center !important;
	justify-content: flex-start;
	gap: 16px 24px;
	float: none !important;
	width: 100% !important;
	margin-top: 12px !important;
}

body.agv-harmonise #page-container .et_pb_contact_form_container .et_pb_contact_right {
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
	width: auto !important;
}

body.agv-harmonise #page-container .et_pb_contact_form_container .et_pb_contact_right p,
body.agv-harmonise #page-container .et_pb_contact_form_container .et_pb_contact_right label {
	display: flex !important;
	align-items: center;
	gap: 10px;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 16px !important;
	line-height: 1.4 !important;
	white-space: nowrap;
}

body.agv-harmonise #page-container .et_pb_contact_form_container input.et_pb_contact_captcha {
	width: 64px !important;
	height: 44px !important;
	padding: 0 8px !important;
	margin: 0 !important;
	border: 2px solid var(--gcid-agv-vert, #3d6631) !important;
	border-radius: 6px !important;
	background-color: #fff !important;
	font-size: 17px !important;
	text-align: center;
	box-sizing: border-box;
}

body.agv-harmonise #page-container .et_pb_contact_form_container .et_pb_button_wrapper {
	flex: 0 0 auto;
	align-self: center;
	width: auto !important;
	margin: 0 !important;
}

/* Carte du contact : la colonne de gauche (et son trait vertical) sur toute la hauteur de la carte,
 * même vide au-dessus et au-dessous du trait. */
@media (min-width: 981px) {
	.agv-harmonise .agv-section > .et_pb_row.agv-rangee-fond:has(.et_pb_contact_form) {
		display: flex !important;
		align-items: stretch !important;
	}
}

/* Champ « Consentement » : Divi l'entourait d'un cadre noir de 1 px et l'écartait de 33 px de plus
 * que les autres champs ; même écart que les autres maintenant (la somme et le bouton suivent). */
body.agv-harmonise #page-container .et_pb_contact_form_container .et_pb_contact_field:has(.et_pb_contact_field_checkbox) {
	border: 0 !important;
	margin-top: 0 !important;
}

body.agv-harmonise #page-container .et_pb_contact_form_container .et_pb_contact_right.et_pb_contact_field {
	height: auto !important;
	min-height: 0 !important;
}

body.agv-harmonise #page-container .et_pb_section .et_pb_contact_form_container.et_pb_module .et_contact_bottom_container .et_pb_button.et_pb_contact_submit {
	height: var(--gvid-agv-bouton-hauteur, 48px) !important;
	min-height: 0 !important;
	width: auto !important;
	padding: 0 28px !important;
	margin: 0 !important;
	border: 2px solid var(--gcid-agv-vert, #3d6631) !important;
	border-radius: var(--gvid-agv-arrondi-bouton, 6px) !important;
	background-color: var(--gcid-agv-vert, #3d6631) !important;
	color: #fff !important;
	font-size: var(--gvid-agv-bouton-texte, 16px) !important;
	line-height: 1 !important;
}

body.agv-harmonise #page-container .et_pb_contact_form_container .et_pb_contact_submit:hover {
	background-color: #fff !important;
	color: var(--gcid-agv-vert, #3d6631) !important;
}

/* About, « Nos Valeurs » : icônes de 140 px au lieu de 200, cartes de la même taille qu'avant
 * (349 px de haut, 322 sur tablette), contenu recentré dans la carte. */
.agv-harmonise .agv-valeurs .et_pb_blurb {
	min-height: 349px;
	display: flex !important;
	flex-direction: column;
	justify-content: flex-start;
	padding-top: 36px !important;
	box-sizing: border-box;
}

.agv-harmonise .agv-valeurs .et_pb_main_blurb_image .et_pb_image_wrap {
	width: 140px !important;
	max-width: 140px !important;
}

.agv-harmonise .agv-valeurs .et_pb_main_blurb_image img {
	width: 100% !important;
	height: auto !important;
}

.agv-harmonise .agv-valeurs .et_pb_main_blurb_image {
	margin-bottom: 40px !important;
}

@media (min-width: 768px) and (max-width: 980px) {
	.agv-harmonise .agv-valeurs .et_pb_blurb {
		min-height: 322px;
	}
}

/* About, « Un positionnement unique » : le « & » entre les deux cartes, grand et centré dans les deux sens. */
.agv-harmonise .et_pb_row:has(.agv-carte--inverse) > .et_pb_column:nth-child(2) {
	display: flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.agv-harmonise .et_pb_row:has(.agv-carte--inverse) > .et_pb_column:nth-child(2) .et_pb_text {
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important; /* Divi le plaçait à la main : 97 px en haut, 39 px à gauche */
}

.agv-harmonise .et_pb_row:has(.agv-carte--inverse) > .et_pb_column:nth-child(2) .et_pb_text p {
	font-family: var(--gvid-agv-police-titres, 'Nunito Sans'), 'Nunito Sans', sans-serif !important;
	font-size: 64px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	color: var(--gcid-agv-vert, #3d6631) !important;
	text-align: center;
	padding: 0 !important;
}

/* La 2e carte est tirée de 55 px vers la gauche (réglage Divi) : le « & » se recentre sur l'espace réel
 * entre les deux cartes ; le texte de droite est centré verticalement sur les cartes. */
@media (min-width: 768px) {
	.agv-harmonise .et_pb_row:has(.agv-carte--inverse) > .et_pb_column:nth-child(2) {
		position: relative;
		z-index: 2;
	}

	.agv-harmonise .et_pb_row:has(.agv-carte--inverse) > .et_pb_column:nth-child(2) .et_pb_text {
		transform: translateX(calc(var(--agv-decalage-carte, 55px) / -2));
	}
}

@media (min-width: 981px) {
	.agv-harmonise .et_pb_row:has(.agv-carte--inverse) > .et_pb_column:last-child {
		display: flex !important;
		flex-direction: column;
		justify-content: center;
	}

	.agv-harmonise .et_pb_row:has(.agv-carte--inverse) > .et_pb_column:last-child > * {
		margin-top: 0 !important;
	}
}

@media (max-width: 767px) {
	.agv-harmonise .et_pb_row:has(.agv-carte--inverse) > .et_pb_column:nth-child(2) .et_pb_text p {
		font-size: 48px !important;
	}
}

/* About, « Nos Clients » : le texte de droite centré verticalement sur le globe
 * (la colonne de gauche a 174 px de titre au-dessus du globe et 32 px dessous).
 * Entre 981 et 1 279 px le texte est plus haut que le globe : simple centrage sur la rangée. */
@media (min-width: 981px) and (max-width: 1279px) {
	.agv-harmonise .agv-clients > .et_pb_row > .et_pb_column:last-child {
		align-self: center;
	}
}

@media (min-width: 1280px) {
	.agv-harmonise .agv-clients > .et_pb_row > .et_pb_column:last-child {
		align-self: stretch;
		display: flex !important;
		flex-direction: column;
		justify-content: center;
		padding-top: 174px !important;
		padding-bottom: 32px !important;
	}

	.agv-harmonise .agv-clients > .et_pb_row > .et_pb_column:last-child > * {
		margin-top: 0 !important;
	}
}

/* About, bloc vert de la frise : sur téléphone, 56 px en haut ; en bas, le biais blanc (100 px de haut)
 * plus 40 px d'air pour que la photo d'Émeric Duchesne n'entre pas dedans. Photo à 80 % de la largeur. */
@media (max-width: 767px) {
	.agv-harmonise .et_pb_section.agv-bloc-vert {
		padding-top: var(--gvid-agv-espace-telephone, 56px) !important;
		padding-bottom: calc(100px + 40px) !important;
	}

	.agv-harmonise .et_pb_section.agv-bloc-vert .et_pb_image:has(img[src*="EmericDuchesne"]) {
		width: 80% !important;
		max-width: 80% !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}
}

/* Études de cas : l'interrupteur Mission / Réalisation mieux visible. 16 px de plus au-dessus,
 * 40 px dessous (au lieu de 25 + jusqu'à 81 px de marges cachées dans les mises en page affichées). */
.agv-harmonise .agv-bascule .agv-bascule__tete {
	margin-top: 16px;
	margin-bottom: 40px;
}

.agv-harmonise .agv-bascule__panneau > .et_pb_section:first-child,
.agv-harmonise .agv-bascule__panneau > .et_pb_section:first-child > .et_pb_row:first-child,
.agv-harmonise .agv-bascule__panneau > .et_pb_row:first-child {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

.agv-harmonise .agv-bascule__panneau > .et_pb_section:first-child > .et_pb_row:first-child > .et_pb_column > .et_pb_module:first-child,
.agv-harmonise .agv-bascule__panneau > .et_pb_row:first-child > .et_pb_column > .et_pb_module:first-child {
	margin-top: 0 !important;
}

/* Hauts de page à photo sur tablette (Case Studies, Nos services, About) : le texte passait sur la photo
 * et sous la découpe blanche, illisible (déjà le cas sur l'ancien site). Photo en bandeau de 380 px en haut,
 * texte dessous sur fond blanc. */
@media (min-width: 768px) and (max-width: 980px) {
	.agv-harmonise .et_pb_section:is(.agv-haut-cas, .agv-haut-services, .agv-diagonale) {
		position: relative;
		background-image: none !important;
		background-color: #fff !important;
		box-shadow: none !important;
		padding-top: calc(380px + var(--gvid-agv-espace-tablette, 80px) * 0.6) !important;
		padding-bottom: var(--gvid-agv-espace-tablette, 80px) !important;
	}

	.agv-harmonise .et_pb_section:is(.agv-haut-cas, .agv-haut-services, .agv-diagonale) > .et_pb_background_mask {
		display: none !important;
	}

	.agv-harmonise .et_pb_section:is(.agv-haut-cas, .agv-haut-services, .agv-diagonale)::before {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		width: auto;
		height: 380px;
		clip-path: none;
		background-repeat: no-repeat;
		background-size: cover;
	}

	.agv-harmonise .et_pb_section.agv-haut-cas::before {
		background-image: url('/wp-content/uploads/2025/01/Services03.webp');
		background-position: 15% 30%;
	}

	.agv-harmonise .et_pb_section.agv-haut-services::before {
		background-image: url('/wp-content/uploads/2025/01/HeaderServices.webp');
		background-position: 50% 50%;
	}

	.agv-harmonise .et_pb_section.agv-diagonale::before {
		background-image: var(--agv-photo, url('/wp-content/uploads/2024/12/HeroAbout.webp'));
		background-position: 50% 50%;
	}

	.agv-harmonise :is(.agv-haut-cas, .agv-haut-services, .agv-diagonale) > .et_pb_row {
		width: 80% !important;
		max-width: none !important;
		padding: 0 !important;
		margin: 0 auto !important;
	}

	.agv-harmonise :is(.agv-haut-cas, .agv-haut-services, .agv-diagonale) > .et_pb_row > .et_pb_column:not(:has(.et_pb_text_inner:not(:empty))) {
		display: none !important;
	}

	.agv-harmonise :is(.agv-haut-cas, .agv-haut-services, .agv-diagonale) :is(.et_pb_column, .et_pb_text) {
		width: 100% !important;
		max-width: none !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		margin-left: 0 !important;
		margin-top: 0 !important;
	}

	.agv-harmonise :is(.agv-haut-cas, .agv-haut-services, .agv-diagonale) .et_pb_button_module_wrapper {
		text-align: left !important;
		margin-left: 0 !important;
	}
}

/* Nos services : de l'air au-dessus des 4 cartes (Divi n'en mettait que 7 px). Sur ordinateur, le trait vertical
 * qui descend de la photo s'arrête 57 px sous le haut de la section : cartes juste en dessous (70 px). */
.agv-harmonise .et_pb_section.agv-section:has(.agv-cartes-egales) {
	padding-top: 70px !important;
}

@media (max-width: 980px) {
	.agv-harmonise .et_pb_section.agv-section:has(.agv-cartes-egales) {
		padding-top: var(--gvid-agv-espace-tablette, 80px) !important;
	}
}

@media (max-width: 767px) {
	.agv-harmonise .et_pb_section.agv-section:has(.agv-cartes-egales) {
		padding-top: var(--gvid-agv-espace-telephone, 56px) !important;
	}
}

/* Nos services : « Expertise », « Synergie », « AgVisor » sous les photos gardent le style d'origine
 * (Open Sans demi-gras, grand), et non la petite taille des titres de cartes. */
body.agv-harmonise .et-l--post .et_pb_section.agv-rangees-aerees .et_pb_blurb .et_pb_module_header {
	font-family: 'Open Sans', Arial, sans-serif !important;
	font-size: 35px !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	letter-spacing: normal !important;
}

@media (max-width: 980px) {
	body.agv-harmonise .et-l--post .et_pb_section.agv-rangees-aerees .et_pb_blurb .et_pb_module_header { font-size: 28px !important; }
}

@media (max-width: 767px) {
	body.agv-harmonise .et-l--post .et_pb_section.agv-rangees-aerees .et_pb_blurb .et_pb_module_header { font-size: 22px !important; }
}

/* Pied de page : liens plus petits et plus fins, discrets. Sur téléphone, à la suite (et non empilés). */
.agv-harmonise .et-l--footer .et_pb_text,
.agv-harmonise .et-l--footer .et_pb_text :is(p, a) {
	font-size: 13px !important;
	font-weight: 400 !important;
	letter-spacing: 0.2px;
}

@media (max-width: 767px) {
	.agv-harmonise .et-l--footer .et_pb_row {
		display: flex !important;
		flex-wrap: wrap;
		justify-content: center;
		gap: 6px 20px;
	}

	.agv-harmonise .et-l--footer .et_pb_row > .et_pb_column {
		width: auto !important;
		flex: 0 0 auto;
		margin: 0 !important;
	}

	.agv-harmonise .et-l--footer .et_pb_row > .et_pb_column:empty,
	.agv-harmonise .et-l--footer .et_pb_row > .et_pb_column:not(:has(.et_pb_module)) {
		display: none !important;
	}

	.agv-harmonise .et-l--footer .et_pb_text,
	.agv-harmonise .et-l--footer .et_pb_text :is(p, a) {
		font-size: 12px !important;
		text-align: center;
	}
}

/* --- Téléphone : retours de Stéphanie (13/11/2026) --- */
@media (max-width: 767px) {
	/* Photos du haut : la découpe blanche en biais (masque Divi) coupait la photo et passait sous le titre. */
	.agv-harmonise .et-l--post .et_pb_section_0 > .et_pb_background_mask {
		display: none !important;
	}

	/* Nos services : voile plus foncé sur la photo du haut pour lire le texte. */
	.agv-harmonise .et_pb_section.agv-haut-services {
		box-shadow: inset 0 0 0 100vmax rgba(0, 0, 0, 0.38) !important;
	}

	/* Case Studies : voile foncé en haut (titre), plus clair au milieu, foncé en bas. */
	.agv-harmonise .et_pb_section.agv-haut-cas {
		background-image:
			linear-gradient(180deg, rgba(0, 0, 0, 0.72) 0%, rgba(0, 0, 0, 0.42) 38%, rgba(0, 0, 0, 0.38) 62%, rgba(0, 0, 0, 0.85) 100%),
			url('/wp-content/uploads/2025/01/Services03.webp') !important;
		background-size: cover !important;
		background-position: 30% 50% !important;
	}

	/* Nos services, « Expertise / Synergie / AgVisor » : photos à 80 % de la largeur, dans leur cadre,
	 * plus de vide démesuré sous les textes, et de l'air entre les blocs. */
	.agv-harmonise .agv-rangees-aerees .et_pb_blurb {
		transform: none !important;
	}

	.agv-harmonise .agv-rangees-aerees .et_pb_blurb .et_pb_main_blurb_image {
		width: 80% !important;
		max-width: 80% !important;
		margin: 24px auto 16px !important;
	}

	.agv-harmonise .agv-rangees-aerees .et_pb_blurb .et_pb_main_blurb_image :is(.et_pb_image_wrap, img) {
		width: 100% !important;
		max-width: 100% !important;
	}

	.agv-harmonise .agv-rangees-aerees .et_pb_blurb .et_pb_blurb_container {
		padding: 0 10% 20px !important;
	}

	.agv-harmonise .agv-rangees-aerees > .et_pb_row > .et_pb_column {
		padding-bottom: 0 !important;
	}

	.agv-harmonise .agv-rangees-aerees > .et_pb_row > .et_pb_column > .et_pb_module:last-child {
		margin-bottom: 0 !important;
	}

	body.agv-harmonise .et-l--post .et_pb_section.agv-rangees-aerees > .et_pb_row + .et_pb_row {
		margin-top: var(--gvid-agv-espace-telephone, 56px) !important;
	}

	/* Cartes à 80 % de la largeur, centrées (elles prenaient tout l'écran). */
	.agv-harmonise .et-l--post :is(
		.et_pb_blurb.agv-carte,
		.et_pb_blurb.agv-chiffre,
		.agv-cartes-egales .et_pb_blurb,
		.agv-valeurs .et_pb_blurb,
		.agv-autres-services .et_pb_blurb
	),
	.agv-harmonise .et-l--post .et_pb_row:has(.agv-carte--inverse) > .et_pb_column:not(:last-child) > .et_pb_module {
		width: 80% !important;
		max-width: 80% !important;
		margin-left: auto !important;
		margin-right: auto !important;
		align-self: center;
	}

	body.agv-harmonise .et-l--post .et_pb_row:has(.agv-chiffre) > .et_pb_column > .et_pb_blurb.agv-chiffre {
		width: 80% !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	.agv-harmonise .agv-valeurs .et_pb_blurb {
		min-height: 0;
		padding-top: 28px !important;
		padding-bottom: 24px !important;
	}

	.agv-harmonise .agv-valeurs .et_pb_main_blurb_image .et_pb_image_wrap {
		width: 100px !important;
		max-width: 100px !important;
	}

	.agv-harmonise .agv-valeurs .et_pb_main_blurb_image {
		margin-bottom: 24px !important;
	}

	/* Accueil, « Pourquoi choisir AgVisor ? » : liste plus près du texte, bouton « Notre mission » décollé ;
	 * le bloc vert est une carte sur téléphone : pas de second vide blanc avant « Notre méthode en 3 étapes ». */
	.agv-harmonise .agv-voile-photo .et_pb_text:has(+ .et_pb_text ul) {
		margin-bottom: 12px !important;
	}

	.agv-harmonise .agv-voile-photo .et_pb_text:has(ul) {
		padding-bottom: 0 !important;
	}

	.agv-harmonise .agv-voile-photo .et_pb_text:has(ul) ul {
		padding-bottom: 0 !important;
	}

	body.agv-harmonise .et-l--post .agv-voile-photo .et_pb_button_module_wrapper {
		margin-top: 28px !important;
	}

	.agv-harmonise .et_pb_section.agv-voile-photo + .et_pb_section {
		padding-top: 0 !important;
	}

	/* Contact : coordonnées resserrées (libellé collé à sa valeur, 20 px entre deux coordonnées). */
	.agv-harmonise .agv-contact .agv-rangee-fond > .et_pb_column:first-child > .et_pb_text {
		margin-bottom: 2px !important;
		padding-bottom: 0 !important;
	}

	.agv-harmonise .agv-contact .agv-rangee-fond > .et_pb_column:first-child > .et_pb_text:first-child {
		margin-bottom: 0 !important;
	}

	.agv-harmonise .agv-contact .agv-rangee-fond > .et_pb_column:first-child > .et_pb_text:nth-child(even) {
		margin-top: 20px !important;
	}
}

/* Nos services, colonnes empilées (tablette, téléphone) : la photo passe avant son texte dans les trois blocs
 * (seule « Synergie » avait le texte d'abord). */
@media (max-width: 980px) {
	.agv-harmonise .agv-rangees-aerees > .et_pb_row:has(> .et_pb_column:last-child > .et_pb_blurb) {
		display: flex !important;
		flex-direction: column;
	}

	.agv-harmonise .agv-rangees-aerees > .et_pb_row:has(> .et_pb_column:last-child > .et_pb_blurb) > .et_pb_column:last-child {
		order: -1;
		margin-bottom: var(--gvid-agv-espace-resserre, 40px) !important;
	}

	.agv-harmonise .agv-rangees-aerees > .et_pb_row:has(> .et_pb_column:last-child > .et_pb_blurb) > .et_pb_column:first-child {
		margin-bottom: 0 !important;
	}
}

/* Accueil, « Ils nous ont fait confiance » : moins de vide au-dessus (60 px sous la bande de photos ;
 * sur téléphone la bande est cachée : un seul vide, celui du bas des étapes). */
.agv-harmonise .et_pb_section.agv-confiance {
	padding-top: 60px !important;
	margin-top: 0 !important;
}

@media (max-width: 767px) {
	.agv-harmonise .et_pb_section.agv-confiance {
		padding-top: 0 !important;
	}
}

/* Pied de page et menu mobile : Open Sans comme le reste du site (Poppins n'est plus chargée). */
.agv-harmonise .et-l--footer :is(p, a, span, li, h1, h2, h3, h4, h5, h6),
#agv-menu-mobile :is(p, a, span, li, h1, h2, h3, h4, h5, h6):not([class*='icon']) {
	font-family: 'Open Sans', Arial, sans-serif !important;
}

/* Pages de services : le grand titre (H1) en vert, sur les quatre pages (Due diligences avait un H2 vert). */
.agv-harmonise .et-l--post .agv-service h1 {
	color: var(--gcid-agv-vert, #3d6631) !important;
}

/* Hiérarchie des titres (13/11/2026) : ce qui n'est plus un titre garde exactement le style d'avant
 * (valeurs relevées sur la page avant le changement). */

/* Menu mobile : « Nos services » (ancien H6). */
#agv-menu-mobile .agv-ex-titre.agv-ex-h6 {
	font-size: 22px !important;
	font-weight: 600 !important;
	line-height: 22px !important;
	color: rgb(86, 86, 86) !important;
	padding-bottom: 0;
}

/* Méga-menu : titres des 4 services (anciens H4). */
#agv-mega .et_pb_module_header.agv-ex-titre {
	line-height: 19px !important;
	padding-top: 0 !important;
	padding-bottom: 10px !important;
}

#agv-mega .et_pb_module_header.agv-ex-titre,
#agv-mega .et_pb_module_header.agv-ex-titre a {
	color: rgb(51, 51, 51) !important;
}

/* Nos services : « Expertise / Synergie / AgVisor » sous les photos (anciens H3). */
.agv-harmonise .agv-titre-decor .et_pb_module_header.agv-ex-titre {
	padding-bottom: 10px !important;
}

/* Nos services : surtitres EXPERTISE / SYNERGIE / AGVISOR (anciens H4). */
body.agv-harmonise .et-l--post .et_pb_text_inner p.agv-surtitre.agv-surtitre--h4 {
	font-family: var(--gvid-agv-police-titres, 'Nunito Sans'), 'Nunito Sans', sans-serif !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	color: var(--gcid-agv-vert, #3d6631) !important;
	text-transform: uppercase;
	margin: 0 !important;
	padding: 0 0 10px !important;
}

/* Case Studies : surtitres PRESSE / LINKEDIN (anciens H3). */
body.agv-harmonise .et-l--post .et_pb_text_inner p.agv-surtitre.agv-surtitre--h3 {
	font-family: var(--gvid-agv-police-titres, 'Nunito Sans'), 'Nunito Sans', sans-serif !important;
	font-size: var(--gvid-agv-h3, 24px) !important;
	font-weight: 700 !important;
	font-style: italic;
	line-height: 1.3 !important;
	color: var(--gcid-agv-vert, #3d6631) !important;
	padding: 0 0 10px !important;
}

@media (max-width: 980px) {
	body.agv-harmonise .et-l--post .et_pb_text_inner p.agv-surtitre.agv-surtitre--h3 { font-size: var(--gvid-agv-h3-tablette, 22px) !important; }
}

@media (max-width: 767px) {
	body.agv-harmonise .et-l--post .et_pb_text_inner p.agv-surtitre.agv-surtitre--h3 { font-size: var(--gvid-agv-h3-telephone, 20px) !important; }
}

/* About : étapes du parcours (anciens H4, maintenant H3) : taille et couleur d'avant. */
.agv-harmonise .et-l--post .agv-etape h3 {
	font-size: var(--gvid-agv-h4, 18px) !important;
	line-height: 1.4 !important;
	color: var(--agv-gris-clair, #e8e8e8) !important;
}

/* Pages de services : prestations (anciens H4, maintenant H2) : graisse d'avant. */
.agv-harmonise .et-l--post .agv-service .et_pb_blurb .et_pb_module_header {
	font-weight: 700 !important;
}

/* « Découvrez nos autres services » (bas des pages de services) : cartes plus discrètes que le bloc du dessus,
 * icônes de 96 px au lieu de 185, bordure fine. */
.agv-harmonise .agv-autres-services .et_pb_blurb {
	padding: 28px 24px !important;
	border-width: var(--gvid-agv-bordure-carte, 2px) !important;
}

.agv-harmonise .agv-autres-services .et_pb_main_blurb_image {
	margin-bottom: 18px !important;
}

.agv-harmonise .agv-autres-services .et_pb_main_blurb_image .et_pb_image_wrap {
	width: 96px !important;
	max-width: 96px !important;
}

.agv-harmonise .agv-autres-services .et_pb_main_blurb_image img {
	width: 100% !important;
	height: auto !important;
}

.agv-harmonise .agv-autres-services .et_pb_blurb_description :is(p, span) {
	font-size: var(--gvid-agv-texte-carte, 15px) !important;
}

/* Pages de services : un seul bloc en deux colonnes de même hauteur
 * (titre + texte + encadré gris + bouton | photo). La photo remplit toute la hauteur de sa colonne. */
.agv-harmonise .agv-service .agv-service-bouton {
	margin-top: var(--gvid-agv-espace-resserre, 40px) !important;
	padding: 0 !important;
}

.agv-harmonise .agv-service .agv-service-bouton .et_pb_button_module_wrapper {
	text-align: left !important;
	margin: 0 !important;
}

@media (min-width: 981px) {
	.agv-harmonise .agv-service > .et_pb_row {
		display: flex !important;
		align-items: stretch !important;
	}

	.agv-harmonise .agv-service .et_pb_column:has(> .et_pb_image) {
		display: flex !important;
		flex-direction: column;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	.agv-harmonise .agv-service .et_pb_column > .et_pb_image {
		position: relative;
		flex: 1 1 auto;
		margin: 0 !important;
		padding: 0 !important;
		min-height: 400px;
	}

	.agv-harmonise .agv-service .et_pb_column > .et_pb_image .et_pb_image_wrap {
		position: absolute !important;
		inset: 0;
		display: block !important;
	}

	.agv-harmonise .agv-service .et_pb_column > .et_pb_image img {
		width: 100% !important;
		height: 100% !important;
		object-fit: cover;
	}

	/* Le titre démarre en haut de la photo (voir plus bas pour la tablette). */
	.agv-harmonise .agv-service .et_pb_column > .et_pb_row_inner:first-child {
		padding-top: 0 !important;
		margin-top: 0 !important;
	}

	.agv-harmonise .agv-service .et_pb_column > .et_pb_row_inner:first-child .et_pb_module:first-child {
		margin-top: 0 !important;
		padding-top: 0 !important;
	}
}

/* Tablette : colonnes empilées, la photo (verticale) est recadrée pour ne pas faire 1 000 px de haut. */
@media (min-width: 768px) and (max-width: 980px) {
	.agv-harmonise .agv-service .et_pb_column > .et_pb_image img {
		width: 100% !important;
		height: 520px !important;
		object-fit: cover;
	}
}

/* Bouton seul « Contactez-nous… » (Nos services et pages de services) : rattaché au bloc du dessus,
 * à l'écart resserré, au lieu d'un écart entre sections (il tombait à 140 px sous la photo). */
.agv-harmonise .et_pb_section.agv-section:has(+ .agv-bouton-suite) {
	padding-bottom: 0 !important;
}

.agv-harmonise .et_pb_section:has(+ .agv-bouton-suite) > .et_pb_row:last-child > .et_pb_column {
	padding-bottom: 0 !important;
}

.agv-harmonise .et_pb_section:has(+ .agv-bouton-suite) > .et_pb_row:last-child > .et_pb_column > .et_pb_module:last-child {
	margin-bottom: 0 !important;
}

.agv-harmonise .et_pb_section.agv-blanche.agv-bouton-suite,
.agv-harmonise .et_pb_section + .et_pb_section.agv-blanche.agv-bouton-suite {
	padding-top: var(--gvid-agv-espace-resserre, 40px) !important;
}

/* --- Titres : une police, une échelle --- */
.agv-harmonise .et-l--post :is(h1, h2, h3, h4) {
	font-family: var(--gvid-agv-police-titres, 'Nunito Sans'), 'Nunito Sans', Arial, sans-serif !important;
	letter-spacing: normal !important;
}

.agv-harmonise .et-l--post h1 {
	font-size: var(--gvid-agv-h1, 48px) !important;
	font-weight: 800 !important;
	line-height: 1.15 !important;
}

.agv-harmonise .et-l--post h2 {
	font-size: var(--gvid-agv-h2, 38px) !important;
	font-weight: 800 !important;
	line-height: 1.2 !important;
}

.agv-harmonise .et-l--post h3 {
	font-size: var(--gvid-agv-h3, 24px) !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
}

.agv-harmonise .et-l--post h4 {
	font-size: var(--gvid-agv-h4, 18px) !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
}

/* Titres des cartes (tous les modules Présentation, sauf les grands chiffres) : à la taille H4. */
.agv-harmonise .et-l--post .et_pb_blurb:not(.agv-chiffre) .et_pb_module_header,
.agv-harmonise .et-l--post .agv-carte .et_pb_module_header,
.agv-harmonise .et-l--post .agv-carte .agv-carte__verso-titre {
	font-size: var(--gvid-agv-h4, 18px) !important;
	line-height: 1.35 !important;
	letter-spacing: 0.5px !important;
}

/* Étapes de l'accueil : le titre H3 est le nom de l'étape (« Diagnostic personnalisé »),
 * le grand chiffre « 1- » est un décor ajouté ici (compteur), invisible pour Google. */
.agv-harmonise .et_pb_row:has(.agv-chiffre) {
	counter-reset: agv-etape;
}

.agv-harmonise .et-l--post .et_pb_blurb.agv-chiffre {
	counter-increment: agv-etape;
}

.agv-harmonise .et-l--post .agv-chiffre .et_pb_module_header {
	font-size: var(--gvid-agv-h3, 24px) !important;
	font-weight: 700 !important;
	line-height: 1.35 !important;
	margin-bottom: 14px !important;
	padding-bottom: 0 !important;
}

.agv-harmonise .et-l--post .agv-chiffre .et_pb_module_header::before {
	content: counter(agv-etape, decimal-leading-zero); /* 01, 02, 03 (demande de Stéphanie, 13/11/2026) */
	display: block;
	font-size: 44px;
	font-weight: 800;
	line-height: 1.1;
	margin-bottom: 18px;
}

/* Cartes côte à côte : deux lignes de titre réservées, les descriptions démarrent à la même hauteur. */
@media (min-width: 981px) {
	.agv-harmonise .et-l--post .agv-chiffre .et_pb_module_header {
		min-height: calc(44px * 1.1 + 18px + 2 * 1.35em);
	}
}

.agv-harmonise .et-l--post .agv-chiffre .et_pb_blurb_description :is(p, span, em) {
	font-size: var(--gvid-agv-texte-carte, 15px) !important;
}

/* --- Texte courant --- */
.agv-harmonise .et-l--post :is(.et_pb_text_inner, .et_pb_blurb_description) :is(p, li) {
	font-family: var(--gvid-agv-police-texte, 'Open Sans'), 'Open Sans', Arial, sans-serif !important;
	font-size: var(--gvid-agv-texte, 16px) !important;
	line-height: var(--gvid-agv-interligne, 1.7) !important;
}

/* Dans les cartes et petits blocs : jamais sous le minimum. */
.agv-harmonise .et-l--post :is(.agv-carte, .agv-etape, .agv-chiffre) :is(p, li),
.agv-harmonise .et-l--post .agv-carte .et_pb_blurb_description {
	font-size: var(--gvid-agv-texte-carte, 15px) !important;
}

.agv-harmonise .et-l--post .agv-carte .agv-carte__verso p:not(.agv-carte__verso-titre) {
	font-size: 16px !important;
	line-height: 1.55 !important;
}

/* Paragraphe d'introduction (sous le grand titre de l'accueil). */
.agv-harmonise .et-l--post p.agv-chapeau {
	font-size: 20px !important;
	line-height: 1.6 !important;
	color: #ededed;
}

/* Accroche en grand (bloc vert de « Notre méthode »). */
.agv-harmonise .et-l--post .agv-accroche p {
	font-size: 22px !important;
	line-height: 1.5 !important;
}

/* --- Boutons : même taille, même hauteur, même arrondi (les couleurs restent celles de Divi) ---
 * #page-container : Divi 5 écrit les réglages des boutons avec cet identifiant, il faut au moins autant. */
body.agv-harmonise #page-container .et-l--post .et_pb_button,
body.agv-harmonise #page-container .et-l--post .et_pb_button:hover {
	font-family: var(--gvid-agv-police-texte, 'Open Sans'), 'Open Sans', Arial, sans-serif !important;
	font-size: var(--gvid-agv-bouton-texte, 16px) !important;
	font-weight: 600 !important;
	line-height: 1.5 !important;
	letter-spacing: normal !important;
	border-width: 2px !important;
	border-radius: var(--gvid-agv-arrondi-bouton, 6px) !important;
	padding: calc((var(--gvid-agv-bouton-hauteur, 48px) - 4px - 1.5em) / 2) 24px !important;
}

body.agv-harmonise #page-container .et-l--post .et_pb_button::after,
body.agv-harmonise #page-container .et-l--post .et_pb_button::before {
	display: none !important;
}

/* --- Cartes : même bordure, même arrondi, même ombre --- */
.agv-harmonise .et-l--post :is(.et_pb_blurb.agv-carte, .et_pb_blurb.agv-chiffre) {
	border-width: var(--gvid-agv-bordure-carte, 2px) !important;
	border-radius: var(--gvid-agv-arrondi-carte, 8px) !important;
	box-shadow: 0 2px 18px -8px rgba(0, 0, 0, 0.3) !important;
}

.agv-harmonise .et-l--post .et_pb_blurb.agv-carte--inverse {
	border-width: var(--gvid-agv-bordure-carte, 2px) !important;
}

.agv-harmonise .et-l--post .agv-carte .agv-carte__verso {
	border-radius: calc(var(--gvid-agv-arrondi-carte, 8px) - 2px);
}

.agv-harmonise .et-l--post .agv-accroche {
	border-radius: var(--gvid-agv-arrondi-carte, 8px) !important;
	overflow: hidden;
}

/* --- Cartes posées côte à côte : toutes de la hauteur de la plus haute --- */
.agv-harmonise .et_pb_row:has(.agv-chiffre) > .et_pb_column {
	display: flex;
	flex-direction: column;
}

.agv-harmonise .et_pb_row:has(.agv-chiffre) > .et_pb_column > :is(.agv-chiffre, .agv-accroche) {
	flex: 1 1 auto;
	box-sizing: border-box;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
}

.agv-harmonise .et-l--post .et_pb_blurb.agv-chiffre {
	padding: 28px 24px !important;
}

/* --- « Pourquoi choisir AgVisor » : la photo floue en entier sous un voile vert (au lieu d'un bandeau) --- */
.agv-harmonise .et_pb_section.agv-bandeau-remplace {
	display: none !important;
}

.agv-harmonise .et_pb_section.agv-voile-photo {
	padding-top: var(--gvid-agv-espace-ordinateur, 80px) !important;
	padding-bottom: var(--gvid-agv-espace-ordinateur, 80px) !important;
	border-radius: var(--gvid-agv-arrondi-carte, 8px) !important;
	background-color: var(--gcid-agv-vert, #3d6631) !important;
	background-image:
		linear-gradient(rgba(61, 102, 49, 0.86), rgba(61, 102, 49, 0.9)),
		url('/wp-content/uploads/2025/03/BackgroundBle4.webp') !important;
	background-position: center !important;
	background-size: cover !important;
	overflow: hidden;
}

/* --- Bloc à voile : mêmes règles de rangées que les sections normales (vide égal en haut et en bas) --- */
.agv-harmonise .agv-voile-photo > .et_pb_row {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.agv-harmonise .agv-voile-photo > .et_pb_row + .et_pb_row {
	margin-top: var(--gvid-agv-espace-resserre, 40px) !important;
}

/* Pas de marge en plus en haut du contenu ni sous le bouton (Divi en ajoutait : 11 px et -15 px). */
.agv-harmonise :is(.agv-section, .agv-voile-photo) > .et_pb_row + .et_pb_row > .et_pb_column > .et_pb_module:first-child {
	margin-top: 0 !important;
}

.agv-harmonise .agv-voile-photo .et_pb_button_module_wrapper {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* --- Haut de page : vide égal au-dessus et au-dessous du texte --- */
.agv-harmonise .et_pb_section.agv-haut {
	padding-top: calc(var(--gvid-agv-espace-ordinateur, 100px) * 1.4) !important;
	padding-bottom: calc(var(--gvid-agv-espace-ordinateur, 100px) * 1.4) !important;
}

.agv-harmonise .agv-haut > .et_pb_row {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* Photo d'accueil (choix de Stéphanie, 13/11/2026) : la photo entière, gaie, avec sa bande d'herbe
 * sombre éclaircie par un voile de lumière verte (mode « screen ») ; pas de plein écran. Sur ordinateur,
 * le haut de page prend la hauteur de la photo entière moins 120 px : seul le bas est coupé.
 * Même mélange que dans Divi pour le reste (dégradé gris en « produit »). */
.agv-harmonise .et_pb_section.agv-haut {
	position: relative;
	display: flex !important;
	flex-direction: column;
	justify-content: center;
	box-sizing: border-box;
	overflow: hidden;
}

.agv-harmonise .et_pb_section.agv-haut.est-zoomee {
	background-image: none !important;
}

.agv-harmonise .et_pb_section.agv-haut.est-zoomee::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image: var(--agv-photo-haut);
	background-position: 68% 0;
	background-repeat: no-repeat;
	background-size: cover;
	background-blend-mode: multiply;
	pointer-events: none;
}

.agv-harmonise .et_pb_section.agv-haut.est-zoomee::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(to top, rgba(150, 190, 80, 0.55) 0%, rgba(150, 190, 80, 0.25) 16%, rgba(150, 190, 80, 0) 30%);
	mix-blend-mode: screen;
	pointer-events: none;
}

.agv-harmonise .agv-haut > .et_pb_row {
	position: relative;
	z-index: 1;
	flex: none;
}

/* Le grand titre garde toujours assez de largeur pour tenir en 4 lignes (la colonne de droite est vide : la photo). */
@media (min-width: 981px) {
	/* Plein écran (sous l'en-tête) : la photo est posée sur une couche plus haute de 120 px que le haut
	 * de page, calée en haut ; ces 120 px du bas (la bande de vert uniforme sous le tracteur) sont donc
	 * toujours coupés. Le texte est dans le tiers supérieur (son haut à 25 % de la hauteur, réglé avec Stéphanie). */
	.agv-harmonise .et_pb_section.agv-haut {
		justify-content: flex-start;
		min-height: calc(100vh - var(--agv-entete, 64px));
		min-height: calc(100svh - var(--agv-entete, 64px));
		padding-top: calc((100svh - var(--agv-entete, 64px)) * 0.25) !important;
		padding-bottom: 60px !important;
	}

	.agv-harmonise .et_pb_section.agv-haut.est-zoomee::before {
		bottom: auto;
		height: calc(100% + 120px);
	}

	.agv-harmonise .agv-haut > .et_pb_row > .et_pb_column:first-child {
		flex: 0 0 max(58%, 680px) !important;
		width: max(58%, 680px) !important;
		max-width: 100% !important;
	}

	.agv-harmonise .agv-haut > .et_pb_row > .et_pb_column:not(:first-child) {
		flex: 1 1 0 !important;
		min-width: 0 !important;
		width: auto !important;
	}
}

/* --- Apparition des cartes d'étapes : la nôtre (celle de Divi les faisait rebondir deux fois) --- */
.agv-harmonise .et_pb_row:has(.agv-chiffre) > .et_pb_column > .et_animated {
	animation: none !important;
}

.agv-harmonise .et_pb_row:has(.agv-chiffre) > .et_pb_column > .et_animated:not(.agv-apparait) {
	opacity: 1 !important;
	transform: none !important;
}

.agv-js .agv-harmonise .et_pb_row:has(.agv-chiffre) > .et_pb_column > .agv-apparait {
	opacity: 0 !important;
	transform: translateY(24px) !important;
	transition:
		opacity 0.6s ease calc(var(--agv-rang, 0) * 0.15s),
		transform 0.8s var(--agv-ressort) calc(var(--agv-rang, 0) * 0.15s) !important;
}

.agv-js .agv-harmonise .et_pb_row:has(.agv-chiffre) > .et_pb_column > .agv-apparait.est-visible {
	opacity: 1 !important;
	transform: none !important;
}

/* --- Pied de page : un filet fin au-dessus des mentions légales, et de l'air en dessous --- */
.agv-harmonise .et-l--footer .et_pb_section {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.agv-harmonise .et-l--footer .et_pb_row {
	width: 80% !important;
	max-width: var(--gvid-agv-largeur-contenu, 1130px) !important;
	padding-top: 20px !important;
	padding-bottom: 36px !important;
	border-top: 1px solid rgba(232, 232, 232, 0.35);
}

/* Les liens partent du même bord que le filet. */
.agv-harmonise .et-l--footer .et_pb_text {
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-left: 0 !important;
}

/* --- Tablette --- */
@media (max-width: 980px) {
	/* La colonne vide de droite (la photo) ne passe pas sous le texte. */
	.agv-harmonise .agv-haut > .et_pb_row > .et_pb_column:not(:has(.et_pb_module)) {
		display: none !important;
	}

	.agv-harmonise .agv-haut > .et_pb_row > .et_pb_column {
		margin-bottom: 0 !important;
	}

	/* Tablette : le tracteur se place à droite des boutons. */
	.agv-harmonise .et_pb_section.agv-haut.est-zoomee::before {
		background-position: 58% 40%;
	}

	.agv-harmonise .et_pb_section.agv-haut {
		padding-top: var(--gvid-agv-espace-tablette, 80px) !important;
		padding-bottom: var(--gvid-agv-espace-tablette, 80px) !important;
	}

	/* Cartes empilées : même écart que le reste. */
	.agv-harmonise :is(.agv-section, .agv-voile-photo) > .et_pb_row > .et_pb_column {
		margin-bottom: var(--gvid-agv-espace-resserre, 40px) !important;
	}

	.agv-harmonise :is(.agv-section, .agv-voile-photo) > .et_pb_row > .et_pb_column:last-child {
		margin-bottom: 0 !important;
	}

	/* Étapes de l'accueil en 2 × 2 : écart entre les lignes plutôt que marge sous chaque carte
	 * (sinon la dernière carte s'étire de 40 px). */
	.agv-harmonise .et_pb_row:has(.agv-chiffre) {
		row-gap: var(--gvid-agv-espace-resserre, 40px);
	}

	.agv-harmonise .et_pb_row:has(.agv-chiffre) > .et_pb_column {
		margin-bottom: 0 !important;
	}

	.agv-harmonise .et_pb_section.agv-voile-photo {
		padding-top: var(--gvid-agv-espace-tablette, 64px) !important;
		padding-bottom: var(--gvid-agv-espace-tablette, 64px) !important;
	}

	.agv-harmonise .et-l--post h1 { font-size: var(--gvid-agv-h1-tablette, 40px) !important; }
	.agv-harmonise .et-l--post h2 { font-size: var(--gvid-agv-h2-tablette, 32px) !important; }
	.agv-harmonise .et-l--post h3 { font-size: var(--gvid-agv-h3-tablette, 22px) !important; }

	.agv-harmonise .agv-section > .et_pb_row + .et_pb_row.agv-pleine-largeur {
		margin-top: var(--gvid-agv-espace-tablette, 80px) !important;
	}

	/* Cadres et cartes blanches (Case Studies, Contact) : même largeur et même marge intérieure partout
	 * (dans les sections blanches, Divi les mettait bord à bord sur tablette et téléphone). */
	.agv-harmonise .agv-section > .et_pb_row.agv-rangee-fond {
		width: 80% !important;
		max-width: 1080px !important;
		margin-left: auto !important;
		margin-right: auto !important;
		padding-left: 40px !important;
		padding-right: 40px !important;
	}

	/* Une image prévue pour déborder sur ordinateur reste dans sa carte. */
	.agv-harmonise .agv-section > .et_pb_row.agv-rangee-fond .et_pb_image {
		max-width: 100% !important;
		margin-right: 0 !important;
	}
}

/* --- Téléphone --- */
@media (max-width: 767px) {
	.agv-harmonise .et_pb_section.agv-haut {
		padding-top: var(--gvid-agv-espace-telephone, 56px) !important;
		padding-bottom: var(--gvid-agv-espace-telephone, 56px) !important;
	}

	.agv-harmonise .et-l--footer .et_pb_row {
		width: 86% !important;
		padding-bottom: 32px !important;
	}

	.agv-harmonise .et-l--footer .et_pb_column {
		margin-bottom: 12px !important;
	}

	.agv-harmonise .et-l--footer .et_pb_column:last-child {
		margin-bottom: 0 !important;
	}

	/* Sur téléphone, le tracteur se place à droite des boutons (et non derrière). */
	.agv-harmonise .et_pb_section.agv-haut.est-zoomee::before {
		background-position: 61% 40%;
	}

	/* Le bloc vert « Une approche claire » est masqué sur téléphone (réglage Divi) : sa colonne aussi. */
	.agv-harmonise .et_pb_row:has(.agv-chiffre) > .et_pb_column:has(> .agv-accroche) {
		display: none !important;
	}

	.agv-harmonise .et_pb_section.agv-voile-photo {
		padding-top: var(--gvid-agv-espace-telephone, 48px) !important;
		padding-bottom: var(--gvid-agv-espace-telephone, 48px) !important;
	}

	.agv-harmonise .et-l--post h1 { font-size: var(--gvid-agv-h1-telephone, 32px) !important; }
	.agv-harmonise .et-l--post h2 { font-size: var(--gvid-agv-h2-telephone, 28px) !important; }
	.agv-harmonise .et-l--post h3 { font-size: var(--gvid-agv-h3-telephone, 20px) !important; }

	.agv-harmonise .agv-section > .et_pb_row:not(.agv-pleine-largeur):not(.agv-rangee-fond) {
		width: 86% !important;
	}

	.agv-harmonise .agv-section > .et_pb_row + .et_pb_row.agv-pleine-largeur {
		margin-top: var(--gvid-agv-espace-telephone, 56px) !important;
	}

	.agv-harmonise .agv-section > .et_pb_row.agv-rangee-fond {
		width: 90% !important;
		padding-left: 20px !important;
		padding-right: 20px !important;
	}

	/* Boutons centrés dans leur colonne (« Notre Mission » de l'accueil était tiré de 20 px à gauche). */
	.agv-harmonise .agv-section .et_pb_button_module_wrapper,
	.agv-harmonise .agv-voile-photo .et_pb_button_module_wrapper {
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	.agv-harmonise .et-l--post p.agv-chapeau { font-size: 18px !important; }
	.agv-harmonise .et-l--post .agv-accroche p { font-size: 20px !important; }
}

/* =========================================================================
 * Moins d'animations demandées par l'appareil : tout s'affiche, rien ne bouge.
 * ====================================================================== */
@media (prefers-reduced-motion: reduce) {
	.agv-carte,
	.agv-carte * {
		transition-duration: 0.01ms !important;
		transition-delay: 0s !important;
	}

	.agv-carte:hover,
	.agv-carte:hover .et_pb_main_blurb_image img {
		transform: none !important;
	}

	.agv-js .et_pb_text.agv-etape {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.agv-js .agv-harmonise .et_pb_row:has(.agv-chiffre) > .et_pb_column > .agv-apparait {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}

	.et_pb_text.agv-etape.est-atteinte::after {
		animation: none;
	}

	.agv-bascule__panneau.est-entrant {
		animation: none;
	}

	.agv-bascule__curseur {
		transition: none;
	}

	.agv-mega,
	.agv-menu-mobile,
	.agv-menu-mobile__contenu {
		transition: none;
		transform: none;
	}
}

/* « agri-finance » toujours sur une seule ligne. */
.agv-sans-coupure {
	white-space: nowrap;
}

/* About, « Un positionnement unique » : les deux cartes vertes plus grandes et plus lisibles
 * (elles faisaient 188 px de large, texte 15 px). Demande de Stéphanie, 13/11/2026. */
.agv-harmonise .et-l--post .et_pb_blurb.agv-carte--inverse .et_pb_module_header {
	font-size: 21px !important;
	line-height: 1.3 !important;
	color: #fff !important;
	min-height: calc(2 * 1.3em); /* deux lignes réservées : les deux titres et les deux textes alignés */
	padding-bottom: 18px !important;
}

/* Contenu calé en haut (au lieu d'être centré) : les titres à la même hauteur dans les deux cartes. */
.agv-harmonise .et-l--post .et_pb_blurb.agv-carte--inverse {
	justify-content: flex-start !important;
	padding-top: 40px !important;
}

.agv-harmonise .et-l--post .et_pb_blurb.agv-carte--inverse .et_pb_blurb_description p {
	font-size: 16px !important;
	line-height: 1.7 !important;
}

.agv-harmonise .et-l--post .et_pb_blurb.agv-carte--inverse {
	padding-left: 26px !important;
	padding-right: 26px !important;
}

@media (min-width: 768px) {
	/* Plus de chevauchement de la 2e carte : le « & » reste centré entre les deux. */
	.agv-harmonise .et_pb_row:has(.agv-carte--inverse) > .et_pb_column:nth-child(3) .agv-carte--inverse {
		margin-left: 0 !important;
	}

	.agv-harmonise .et_pb_row:has(.agv-carte--inverse) > .et_pb_column:nth-child(2) .et_pb_text {
		transform: none !important;
	}
}

@media (min-width: 981px) {
	.agv-harmonise .et_pb_row:has(.agv-carte--inverse) > .et_pb_column:is(:nth-child(1), :nth-child(3)) {
		flex: 0 0 24% !important;
		width: 24% !important;
		max-width: none !important;
	}

	.agv-harmonise .et_pb_row:has(.agv-carte--inverse) > .et_pb_column:nth-child(2) {
		flex: 0 0 9% !important;
		width: 9% !important;
	}

	.agv-harmonise .et_pb_row:has(.agv-carte--inverse) > .et_pb_column:nth-child(4) {
		flex: 0 0 43% !important;
		width: 43% !important;
		padding-left: 4% !important;
		box-sizing: border-box;
	}
}

@media (min-width: 768px) and (max-width: 980px) {
	.agv-harmonise .et_pb_row:has(.agv-carte--inverse) > .et_pb_column:is(:nth-child(1), :nth-child(3)) {
		flex: 0 0 40% !important;
		width: 40% !important;
		max-width: none !important;
	}

	.agv-harmonise .et_pb_row:has(.agv-carte--inverse) > .et_pb_column:nth-child(2) {
		flex: 0 0 20% !important;
		width: 20% !important;
	}
}

/* Petits ordinateurs (981-1 199 px) : cartes plus étroites, le titre tient sur deux lignes. */
@media (min-width: 981px) and (max-width: 1199px) {
	.agv-harmonise .et-l--post .et_pb_blurb.agv-carte--inverse {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}

	.agv-harmonise .et-l--post .et_pb_blurb.agv-carte--inverse .et_pb_module_header {
		font-size: 19px !important;
	}
}

/* Contact (15/11/2026) : l'adresse mail et le téléphone sont devenus cliquables ; ils gardent la couleur du texte voisin. */
body.agv-harmonise #page-container .et-l--post :is(a[href^="mailto:"], a[href^="tel:"]) {
	color: inherit;
	text-decoration: none;
}

body.agv-harmonise #page-container .et-l--post :is(a[href^="mailto:"], a[href^="tel:"]):hover {
	text-decoration: underline;
}
