/*
 * Le Grand Frère — intégrations du système de design v2 avec Elementor, Gravity Forms,
 * WP Grid Builder, les commentaires, Leaflet, le test d'orientation et les boutons flottants.
 * Uniquement des jetons de css/tokens.css (contrôlé par design/check_design.py).
 * Règles d'usage : design/DESIGN.md
 */

/* ---------- Base ---------- */
body {
	font-family: var(--font-texte);
	font-size: var(--lgf-corps-taille);
	line-height: var(--lgf-corps-interligne);
	font-weight: var(--lgf-corps-graisse);
	color: var(--lgf-texte);
	background: var(--lgf-blanc);
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-titres);
	color: var(--lgf-encre);
}
a {
	color: var(--lgf-bleu-500);
}
a:hover {
	color: var(--lgf-bleu-700);
}
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: var(--lgf-trait-fort) solid var(--lgf-bleu-500);
	outline-offset: 2px;
}
::selection {
	background: var(--lgf-turquoise-50);
	color: var(--lgf-encre);
}
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition-duration: 0ms !important;
		animation-duration: 0ms !important;
		scroll-behavior: auto !important;
	}
}

/* ---------- Elementor : titres et textes ---------- */
.elementor-widget-heading .elementor-heading-title {
	font-family: var(--font-titres);
	color: var(--lgf-encre);
}
.lgf-titre-display .elementor-heading-title {
	font-size: var(--lgf-display-taille);
	line-height: var(--lgf-display-interligne);
	font-weight: var(--lgf-display-graisse);
}
.lgf-titre-h3 .elementor-heading-title {
	font-size: var(--lgf-h3-taille);
	line-height: var(--lgf-h3-interligne);
	font-weight: var(--lgf-h3-graisse);
}
.lgf-surtitre .elementor-heading-title,
.lgf-surtitre .elementor-widget-container {
	font-family: var(--font-texte);
	font-size: var(--lgf-surtitre-taille);
	line-height: var(--lgf-surtitre-interligne);
	font-weight: var(--lgf-surtitre-graisse);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--lgf-bleu-500);
}
.lgf-surtitre--corail .elementor-heading-title {
	color: var(--lgf-corail-700);
}
.lgf-surtitre--jaune .elementor-heading-title {
	color: var(--lgf-jaune-400);
}
.lgf-chapo,
.lgf-chapo p {
	font-size: var(--lgf-chapo-taille);
	line-height: var(--lgf-chapo-interligne);
	max-width: 760px;
}
.lgf-petit,
.lgf-petit p {
	font-size: var(--lgf-petit-taille);
	line-height: var(--lgf-petit-interligne);
	color: var(--lgf-texte-discret);
}
.elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}
.elementor-widget-text-editor :is(ul, ol) {
	padding-left: var(--lgf-espace-5);
}
.elementor-widget-text-editor li + li {
	margin-top: var(--lgf-espace-1);
}
.lgf-texte-long {
	max-width: var(--lgf-conteneur-texte);
}
/* Titres de section (H2) : ruban quadricolore de la marque dessous, sauf dans les cartes et encarts */
.elementor-widget-heading h2.elementor-heading-title:not(:is(.lgf-carte, .lgf-bandeau-confiance, .lgf-encart, .lgf-sans-ruban, .lgf-pied, .elementor-location-popup, .lgf-fiche-action) *)::after {
	content: "";
	display: block;
	width: 56px;
	height: var(--lgf-ruban);
	margin-top: var(--lgf-espace-3);
	border-radius: var(--lgf-rayon-pilule);
	background: linear-gradient(90deg, var(--lgf-bleu-500) 0 25%, var(--lgf-turquoise-500) 25% 50%, var(--lgf-jaune-400) 50% 75%, var(--lgf-corail-500) 75% 100%);
}
.lgf-centre h2.elementor-heading-title::after,
.lgf-centre.elementor-widget-heading h2.elementor-heading-title::after {
	margin-left: auto;
	margin-right: auto;
}
:is(.lgf-zone--bleu, .lgf-zone--encre, .lgf-zone--nuit) .elementor-widget-heading h2.elementor-heading-title::after {
	background: linear-gradient(90deg, var(--lgf-blanc) 0 25%, var(--lgf-turquoise-500) 25% 50%, var(--lgf-jaune-400) 50% 75%, var(--lgf-corail-500) 75% 100%);
}
/* Surtitre : précédé d'un petit chevron corail */
.lgf-surtitre .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: var(--lgf-espace-2);
}
.lgf-surtitre .elementor-heading-title::before {
	content: "";
	width: 14px;
	height: 9px;
	flex: none;
	background: var(--lgf-corail-500);
	-webkit-mask: url("../img/motifs/chevron.svg") center / contain no-repeat;
	mask: url("../img/motifs/chevron.svg") center / contain no-repeat;
	transform: rotate(90deg);
}

/* ---------- Elementor : boutons ---------- */
.elementor-button {
	font-family: var(--font-texte);
	font-weight: var(--lgf-bouton-graisse);
	font-size: var(--lgf-bouton-taille);
	line-height: var(--lgf-bouton-interligne);
	min-height: var(--lgf-hauteur-controle);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--lgf-rayon-md);
	transition: background-color var(--lgf-duree-rapide) var(--lgf-courbe), color var(--lgf-duree-rapide) var(--lgf-courbe), border-color var(--lgf-duree-rapide) var(--lgf-courbe), box-shadow var(--lgf-duree-base) var(--lgf-courbe), transform var(--lgf-duree-base) var(--lgf-courbe);
}
/* Bouton principal (bouton Elementor sans classe) : corail, flèche qui avance, halo au survol */
.elementor-widget-button:not([class*="lgf-btn-"]) .elementor-button {
	background: var(--lgf-corail-600);
	color: var(--lgf-blanc);
	border: var(--lgf-trait-fort) solid var(--lgf-corail-600);
	padding-left: var(--lgf-espace-5);
	padding-right: var(--lgf-espace-5);
}
.elementor-widget-button:not([class*="lgf-btn-"]) .elementor-button:hover {
	background: var(--lgf-corail-700);
	border-color: var(--lgf-corail-700);
	color: var(--lgf-blanc);
	box-shadow: var(--lgf-ombre-bouton);
	transform: translateY(-2px);
}
.elementor-widget-button:not([class*="lgf-btn-"]) .elementor-button-content-wrapper::after,
.elementor-widget-button.lgf-btn-tertiaire .elementor-button-content-wrapper::after,
.elementor-widget-button.lgf-btn-inverse .elementor-button-content-wrapper::after {
	content: "";
	width: 18px;
	height: 18px;
	margin-left: var(--lgf-espace-2);
	flex: none;
	align-self: center;
	background: currentColor;
	-webkit-mask: url("../img/motifs/fleche.svg") center / contain no-repeat;
	mask: url("../img/motifs/fleche.svg") center / contain no-repeat;
	transition: transform var(--lgf-duree-base) var(--lgf-courbe);
}
.elementor-button:hover .elementor-button-content-wrapper::after {
	transform: translateX(4px);
}
.elementor-button .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
}
.elementor-widget-button.lgf-btn-secondaire .elementor-button {
	background: var(--lgf-blanc);
	color: var(--lgf-bleu-500);
	border: var(--lgf-trait-fort) solid var(--lgf-bleu-500);
}
.elementor-widget-button.lgf-btn-secondaire .elementor-button:hover {
	background: var(--lgf-bleu-500);
	color: var(--lgf-blanc);
	border-color: var(--lgf-bleu-500);
}
/* Bouton tertiaire : lien d'action en gras, flèche, souligné corail au survol */
.elementor-widget-button.lgf-btn-tertiaire .elementor-button {
	min-height: var(--lgf-cible-tactile);
	background: transparent;
	color: var(--lgf-bleu-500);
	border: 0;
	padding-left: 0;
	padding-right: 0;
	text-decoration: none;
	box-shadow: none;
}
.elementor-widget-button.lgf-btn-tertiaire .elementor-button-text {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-decoration-color: transparent;
	text-underline-offset: 6px;
	transition: text-decoration-color var(--lgf-duree-rapide) var(--lgf-courbe);
}
.elementor-widget-button.lgf-btn-tertiaire .elementor-button:hover {
	background: transparent;
	color: var(--lgf-bleu-700);
}
.elementor-widget-button.lgf-btn-tertiaire .elementor-button:hover .elementor-button-text {
	text-decoration-color: var(--lgf-corail-500);
}
.elementor-widget-button.lgf-btn-inverse .elementor-button {
	background: var(--lgf-blanc);
	color: var(--lgf-bleu-700);
	border: var(--lgf-trait-fort) solid var(--lgf-blanc);
}
.elementor-widget-button.lgf-btn-inverse .elementor-button:hover {
	background: var(--lgf-jaune-400);
	border-color: var(--lgf-jaune-400);
	color: var(--lgf-encre);
	transform: translateY(-2px);
}
.elementor-widget-button.lgf-btn-contour-blanc .elementor-button {
	background: transparent;
	color: var(--lgf-blanc);
	border: var(--lgf-trait-fort) solid color-mix(in srgb, var(--lgf-blanc) 70%, transparent);
}
.elementor-widget-button.lgf-btn-contour-blanc .elementor-button:hover {
	background: var(--lgf-blanc);
	border-color: var(--lgf-blanc);
	color: var(--lgf-bleu-700);
}
.elementor-widget-button.lgf-btn-sm .elementor-button {
	min-height: var(--lgf-hauteur-controle-sm);
	padding: 0 var(--lgf-espace-4);
}
/* Bouton posé à côté de la recherche de l'en-tête (« Voir sur la carte ») : même hauteur que le champ (48 px).
   Le rembourrage vertical du kit (14 px) le portait à 52 px. */
.e-con:has(> .lgf-hero__recherche) > .elementor-widget-button .elementor-button {
	padding-top: 0;
	padding-bottom: 0;
}
/* Bouton à icône : icône Lucide de img/icons/ avant le libellé, à la couleur du texte (blanche au survol du secondaire) */
.elementor-widget-button.lgf-btn-icone-carte .elementor-button-content-wrapper {
	gap: var(--lgf-espace-2);
}
.elementor-widget-button.lgf-btn-icone-carte .elementor-button-content-wrapper::before {
	content: "";
	width: 20px;
	height: 20px;
	flex: none;
	background: currentColor;
	-webkit-mask: url("../img/icons/map.svg") center / contain no-repeat;
	mask: url("../img/icons/map.svg") center / contain no-repeat;
}
@media (max-width: 767px) {
	.elementor-widget-button.lgf-btn-bloc-mobile,
	.elementor-widget-button.lgf-btn-bloc-mobile .elementor-button {
		width: 100%;
	}
}

/* ---------- Elementor : conteneurs portant un composant ---------- */
/* Marges intérieures en !important : les règles d'élément générées par Elementor (--padding-*) sont plus spécifiques */
.e-con.lgf-carte {
	padding: var(--lgf-espace-5) !important;
	background: var(--lgf-blanc);
	border: var(--lgf-trait) solid var(--lgf-bordure);
	border-radius: var(--lgf-rayon-lg);
	box-shadow: var(--lgf-ombre-sm);
}
.e-con.lgf-carte--compacte {
	padding: var(--lgf-espace-4) !important;
}
.e-con.lgf-carte--avant {
	border-color: var(--lgf-corail-600);
	box-shadow: var(--lgf-ombre-md);
}
.e-con.lgf-bandeau-confiance {
	background: var(--lgf-jaune-400);
	border-radius: var(--lgf-rayon-lg);
	color: var(--lgf-encre);
}
.e-con.lgf-bandeau-confiance :is(p, h2, h3, .elementor-heading-title) {
	color: var(--lgf-encre);
}
.e-con.lgf-encart {
	padding: var(--lgf-espace-4) var(--lgf-espace-5) !important;
	border-radius: var(--lgf-rayon-lg);
	background: var(--lgf-bleu-50);
}
.lgf-image-arrondie img {
	border-radius: var(--lgf-rayon-lg);
}
/* Logo de partenaire (widget Image) : même hauteur pour tous, calé à gauche ; image recadrée sans marge blanche */
.elementor .lgf-logo-partenaire img {
	display: block;
	width: auto;
	max-width: 100%;
	height: 64px;
	object-fit: contain;
	object-position: left center;
}

/* ---------- Elementor : menus ---------- */
.lgf-nav .elementor-nav-menu--main .elementor-item {
	font-family: var(--font-texte);
	font-weight: var(--lgf-corps-fort-graisse);
	font-size: var(--lgf-corps-taille);
	color: var(--lgf-encre);
	padding: var(--lgf-espace-2) var(--lgf-espace-3);
	border-radius: var(--lgf-rayon-pilule);
	transition: background-color var(--lgf-duree-rapide) var(--lgf-courbe), color var(--lgf-duree-rapide) var(--lgf-courbe);
}
.lgf-nav .elementor-nav-menu--main > .elementor-nav-menu > li + li {
	margin-left: var(--lgf-espace-1);
}
/* Le survol ne change jamais la taille d'un élément : la feuille du menu d'Elementor
   repose un rembourrage de 20 px au survol et au focus, qui décalait les voisins */
.lgf-nav .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item,
.lgf-nav .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item:hover,
.lgf-nav .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item:focus,
.lgf-nav .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item.highlighted {
	padding: var(--lgf-espace-2) var(--lgf-espace-3) !important;
}
.lgf-nav .elementor-nav-menu--main .elementor-item:hover,
.lgf-nav .elementor-nav-menu--main .elementor-item.highlighted,
.lgf-nav .elementor-nav-menu--main .elementor-item:focus-visible {
	background: var(--lgf-bleu-50);
	color: var(--lgf-bleu-700);
}
.lgf-nav .elementor-nav-menu--main .elementor-item.elementor-item-active,
.lgf-nav .elementor-nav-menu--main .current-menu-ancestor > .elementor-item {
	background: var(--lgf-bleu-50);
	color: var(--lgf-bleu-700);
	box-shadow: none;
}
.lgf-nav .elementor-nav-menu--main .elementor-item .sub-arrow {
	margin-left: var(--lgf-espace-1);
	transition: transform var(--lgf-duree-base) var(--lgf-courbe);
}
.lgf-nav .elementor-nav-menu--main .elementor-item.highlighted .sub-arrow {
	transform: rotate(180deg);
}
.lgf-nav .elementor-nav-menu--main .elementor-nav-menu--dropdown,
.lgf-nav .elementor-nav-menu--dropdown {
	min-width: 240px;
	padding: var(--lgf-espace-2);
	border: var(--lgf-trait) solid var(--lgf-bordure);
	border-radius: var(--lgf-rayon-lg);
	background: var(--lgf-blanc);
	box-shadow: var(--lgf-ombre-survol);
}
.lgf-nav .elementor-nav-menu--main .elementor-nav-menu--dropdown {
	margin-top: var(--lgf-espace-2) !important;
}
.lgf-nav .elementor-nav-menu--dropdown a {
	font-family: var(--font-texte);
	font-size: var(--lgf-corps-taille);
	font-weight: var(--lgf-corps-graisse);
	color: var(--lgf-encre) !important;
	background: transparent !important;
	border-radius: var(--lgf-rayon-md);
	padding: var(--lgf-espace-2) var(--lgf-espace-3) !important;
	transition: background-color var(--lgf-duree-rapide) var(--lgf-courbe), color var(--lgf-duree-rapide) var(--lgf-courbe);
}
.lgf-nav .elementor-nav-menu--dropdown a:hover,
.lgf-nav .elementor-nav-menu--dropdown a:focus,
.lgf-nav .elementor-nav-menu--dropdown a.elementor-item-active,
.lgf-nav .elementor-nav-menu--dropdown a.highlighted {
	background: var(--lgf-bleu-50) !important;
	color: var(--lgf-bleu-700) !important;
	padding: var(--lgf-espace-2) var(--lgf-espace-3) !important;
}
.lgf-nav .elementor-menu-toggle {
	width: var(--lgf-cible-tactile);
	height: var(--lgf-cible-tactile);
	border-radius: var(--lgf-rayon-md);
	background: var(--lgf-bleu-50);
	color: var(--lgf-bleu-700);
}
.lgf-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container {
	margin-top: var(--lgf-espace-2);
	max-height: 80vh;
	overflow-y: auto;
}

/* ---------- Elementor : formulaire de connexion (widget « Connexion ») ---------- */
/* Retour d'un échec de connexion (php/wordpress.php) : encart d'erreur au-dessus du formulaire, champs signalés */
.elementor-widget-login .lgf-encart {
	margin-bottom: var(--lgf-espace-4);
}
/* Classe doublée : la règle des champs du kit Elementor (.elementor-kit-… input:not(…):not(…)) est plus spécifique */
.elementor-widget-login .elementor-field.elementor-field[aria-invalid="true"] {
	border-color: var(--lgf-rouge-600);
}

/* ---------- Gravity Forms ---------- */
.gform_wrapper.gform_wrapper {
	font-family: var(--font-texte);
	color: var(--lgf-texte);
}
.gform_wrapper .gform_fields {
	row-gap: var(--lgf-espace-4) !important;
	column-gap: var(--lgf-espace-4) !important;
}
.gform_wrapper .gfield_label,
.gform_wrapper .gfield .gform-field-label:not(.gform-field-label--type-inline):not(.gform-field-label--type-sub),
.gform_wrapper legend.gfield_label {
	font-family: var(--font-texte) !important;
	font-size: var(--lgf-etiquette-taille) !important;
	line-height: var(--lgf-etiquette-interligne) !important;
	font-weight: var(--lgf-etiquette-graisse) !important;
	color: var(--lgf-encre) !important;
	margin-bottom: var(--lgf-espace-2) !important;
}
.gform_wrapper .gfield_required {
	color: var(--lgf-rouge-600) !important;
}
.gform_wrapper .gfield_required .gfield_required_text {
	font-size: var(--lgf-petit-taille);
	font-weight: var(--lgf-petit-graisse);
}
.gform_wrapper :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], input[type="time"], input[type="password"], input[type="search"], select, textarea) {
	box-sizing: border-box;
	width: 100%;
	min-height: var(--lgf-hauteur-controle) !important;
	padding: var(--lgf-espace-3) var(--lgf-espace-4) !important;
	border: var(--lgf-trait) solid var(--lgf-bordure-champ) !important;
	border-radius: var(--lgf-rayon-md) !important;
	background-color: var(--lgf-blanc) !important;
	box-shadow: none !important;
	font-family: var(--font-texte) !important;
	font-size: var(--lgf-corps-taille) !important;
	line-height: var(--lgf-corps-interligne) !important;
	color: var(--lgf-encre) !important;
}
.gform_wrapper textarea {
	min-height: 120px !important;
}
.gform_wrapper :is(input, select, textarea):focus {
	outline: var(--lgf-trait-fort) solid var(--lgf-bleu-500) !important;
	outline-offset: 2px;
	border-color: var(--lgf-bleu-500) !important;
}
.gform_wrapper .gfield_description,
.gform_wrapper .gform-field-label--type-sub,
.gform_wrapper .ginput_complex label {
	font-size: var(--lgf-petit-taille) !important;
	line-height: var(--lgf-petit-interligne) !important;
	color: var(--lgf-texte-discret) !important;
}
.gform_wrapper :is(.gfield_checkbox, .gfield_radio) .gchoice {
	display: flex;
	align-items: flex-start;
	gap: var(--lgf-espace-3);
	min-height: var(--lgf-cible-tactile);
	padding-top: var(--lgf-espace-2);
}
.gform_wrapper :is(input[type="checkbox"], input[type="radio"]) {
	width: 20px !important;
	height: 20px !important;
	margin: 2px 0 0 !important;
	flex: none;
	accent-color: var(--lgf-bleu-500);
}
.gform_wrapper :is(.gfield_checkbox, .gfield_radio) label {
	font-size: var(--lgf-corps-taille) !important;
	color: var(--lgf-texte) !important;
	max-width: none !important;
}
.gform_wrapper .gform_footer,
.gform_wrapper .gform_page_footer {
	margin-top: var(--lgf-espace-5) !important;
	padding: 0 !important;
}
.gform_wrapper :is(.gform_button, .gform_next_button, .gform_previous_button, button[type="submit"]) {
	min-height: var(--lgf-hauteur-controle) !important;
	padding: 0 var(--lgf-espace-5) !important;
	border: var(--lgf-trait) solid transparent !important;
	border-radius: var(--lgf-rayon-md) !important;
	background: var(--lgf-corail-600) !important;
	color: var(--lgf-blanc) !important;
	font-family: var(--font-texte) !important;
	font-size: var(--lgf-bouton-taille) !important;
	font-weight: var(--lgf-bouton-graisse) !important;
	line-height: var(--lgf-bouton-interligne) !important;
	box-shadow: none !important;
	cursor: pointer;
}
.gform_wrapper :is(.gform_button, button[type="submit"]):hover {
	background: var(--lgf-corail-700) !important;
}
.gform_wrapper .gform_previous_button {
	background: var(--lgf-blanc) !important;
	color: var(--lgf-bleu-500) !important;
	border-color: var(--lgf-bleu-500) !important;
}
.gform_wrapper .gfield_error :is(input, select, textarea) {
	border: var(--lgf-trait-fort) solid var(--lgf-rouge-600) !important;
}
.gform_wrapper .gfield_validation_message,
.gform_wrapper .validation_message {
	margin-top: var(--lgf-espace-2) !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	font-size: var(--lgf-petit-taille) !important;
	color: var(--lgf-rouge-600) !important;
}
.gform_wrapper .gform_validation_errors {
	border: 0 !important;
	border-radius: var(--lgf-rayon-lg) !important;
	background: var(--lgf-rouge-50) !important;
	box-shadow: none !important;
	padding: var(--lgf-espace-4) var(--lgf-espace-5) !important;
}
/* Icône et message côte à côte : le thème Gravity Forms pose l'icône en absolu dans une marge
   gauche de 48 px que le rembourrage ci-dessus retire, d'où un chevauchement avec le texte */
.gform_wrapper .gform_validation_errors :is(h2, .gform_submission_error) {
	display: flex !important;
	align-items: flex-start;
	gap: var(--lgf-espace-3);
	margin: 0 !important;
	padding: 0 !important;
	font-family: var(--font-texte) !important;
	font-size: var(--lgf-corps-taille) !important;
	line-height: var(--lgf-corps-interligne) !important;
	font-weight: var(--lgf-corps-fort-graisse) !important;
	color: var(--lgf-rouge-600) !important;
}
.gform_wrapper .gform_validation_errors .gform-icon {
	position: static !important;
	inset: auto !important;
	flex: none;
	display: inline-grid !important;
	place-items: center;
	width: 24px !important;
	height: 24px !important;
	margin: 0 !important;
	font-size: 24px !important;
	line-height: 1 !important;
	color: currentColor !important;
}
/* Récapitulatif des erreurs : aligné sous le message, pas sous l'icône */
.gform_wrapper .gform_validation_errors > ol {
	margin: var(--lgf-espace-2) 0 0 !important;
	padding-inline-start: calc(24px + var(--lgf-espace-3) + 1.1em) !important;
}
.gform_wrapper .gform_validation_errors > ol :is(li, a) {
	font-size: var(--lgf-petit-taille) !important;
	color: var(--lgf-rouge-600) !important;
}
/* Gravity Forms donne le focus au message après un envoi refusé : cadre visible au clavier seulement */
.gform_wrapper .gform_validation_errors:focus {
	outline: none !important;
}
.gform_wrapper .gform_validation_errors:focus-visible {
	outline: var(--lgf-trait-fort) solid var(--lgf-rouge-600) !important;
	outline-offset: 2px;
}
.gform_wrapper .gsection {
	border-bottom: var(--lgf-trait) solid var(--lgf-bordure) !important;
	padding: var(--lgf-espace-4) 0 var(--lgf-espace-2) !important;
}
.gform_wrapper .gsection_title {
	font-family: var(--font-titres) !important;
	font-size: var(--lgf-h3-taille) !important;
	font-weight: var(--lgf-h3-graisse) !important;
	color: var(--lgf-encre) !important;
}
.gform_confirmation_message {
	padding: var(--lgf-espace-4) var(--lgf-espace-5);
	border-radius: var(--lgf-rayon-lg);
	background: var(--lgf-vert-50);
	color: var(--lgf-encre);
}
.gform_wrapper .gfield--type-survey .gsurvey-likert,
.gform_wrapper .gsurvey-rating {
	font-family: var(--font-texte);
}

/* ---------- Gravity Forms : mise en page selon la largeur réelle du formulaire ----------
 * Un formulaire posé dans une colonne étroite (carte latérale, tablette) ne doit pas garder
 * la grille à 2 ou 3 colonnes de l'ordinateur : la requête de conteneur suit la largeur du
 * formulaire, pas celle de l'écran. */
.gform_wrapper.gform_wrapper {
	container: lgf-formulaire / inline-size;
	width: 100%;
}
@container lgf-formulaire (max-width: 560px) {
	body .gform_wrapper.gform_wrapper .gform_fields > .gfield,
	body .gform_wrapper.gform_wrapper .gform_fields > fieldset.gfield {
		grid-column: 1 / -1 !important;
	}
	body .gform_wrapper.gform_wrapper .ginput_complex.gform-grid-row:not(:has(.gfield_date_day)) {
		row-gap: var(--lgf-espace-3);
		margin-inline: 0 !important;
	}
	body .gform_wrapper.gform_wrapper .ginput_complex.gform-grid-row:not(:has(.gfield_date_day)) > .gform-grid-col {
		flex: 1 1 100% !important;
		max-width: none !important;
		padding-inline: 0 !important;
	}
	body .gform_wrapper.gform_wrapper :is(.gform_footer, .gform_page_footer) :is(.gform_button, button[type="submit"], .gform_next_button) {
		width: 100% !important;
	}
	/* Bouton pleine largeur : plus de place à sa droite, le symbole passe dans le bouton, sur un disque blanc */
	body .gform_wrapper.gform_wrapper :is(.gform_footer, .gform_page_footer) .gform-loader {
		inset: 50% var(--lgf-espace-2) auto auto !important;
		inline-size: 40px !important;
		block-size: 40px !important;
		border-radius: 50% !important;
		background-color: var(--lgf-blanc) !important;
		background-size: 30px !important;
	}
}
/* Mention « (Nécessaire) » détachée du libellé */
body .gform_wrapper.gform_wrapper .gfield_required:not(.gfield_required_text) {
	margin-inline-start: var(--lgf-espace-1);
}
/* Boutons : le libellé peut passer à la ligne plutôt que déborder */
body .gform_wrapper.gform_wrapper :is(.gform_button, .gform_next_button, .gform_previous_button, button[type="submit"]) {
	max-width: 100%;
	height: auto !important;
	padding-block: var(--lgf-espace-3) !important;
	white-space: normal;
	transition: background var(--lgf-duree-rapide) var(--lgf-courbe);
}
body .gform_wrapper.gform_wrapper :is(.gform_button, button[type="submit"]):focus-visible {
	outline: var(--lgf-trait-fort) solid var(--lgf-bleu-500) !important;
	outline-offset: 2px;
}

/* Envoi en cours : Gravity Forms 3 insère son indicateur (.gform-loader) dans le bouton cliqué
   (.gform-has-spinner) et masque le libellé. Le symbole de chargement de la marque
   (composant .lgf-chargement) se pose à droite du bouton, sur le fond du formulaire, jamais sur
   le corail ; le libellé reste lisible (Safari le masquait par -webkit-text-fill-color). */
body .gform_wrapper.gform_wrapper .gform-has-spinner {
	position: relative !important;
	overflow: visible !important;
	-webkit-text-fill-color: currentColor !important;
	cursor: progress !important;
}
body .gform_wrapper.gform_wrapper .gform-loader,
body .gform-loader {
	position: absolute !important;
	inset: 50% auto auto calc(100% + var(--lgf-espace-3)) !important;
	inline-size: 44px !important;
	block-size: 44px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: url("../img/logo/chargement.svg") center / contain no-repeat !important;
	font-size: 0 !important;
	animation: none !important;
	transform: translateY(-50%) !important;
	pointer-events: none;
}

/* Populate Anything : champ en cours de mise à jour. L'indicateur des champs vides prend le symbole ;
   les champs déjà remplis gardent leur pulsation et le symbole s'affiche après leur libellé. */
body .gform_wrapper.gform_wrapper :is(.gppa-spinner, .gppa-loading.gppa-empty, .gppa-loading .gppa-requires-interaction) {
	min-width: 32px;
	min-height: 32px;
}
body .gform_wrapper.gform_wrapper :is(.gppa-spinner, .gppa-loading.gppa-empty, .gppa-loading.gppa-empty span[data-gppa-live-merge-tag], .gppa-loading .gppa-requires-interaction)::before {
	width: 32px !important;
	height: 32px !important;
	margin: -16px 0 0 -16px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: url("../img/logo/chargement.svg") center / contain no-repeat !important;
	animation: none !important;
}
body .gform_wrapper.gform_wrapper .gfield:has(.gppa-loading:not(.gppa-empty)) > .gfield_label::after {
	content: "";
	display: inline-block;
	width: 28px;
	height: 28px;
	margin: -6px 0 -6px var(--lgf-espace-2);
	vertical-align: middle;
	background: url("../img/logo/chargement.svg") center / contain no-repeat;
}

/* Date en trois cases (JJ / MM / AAAA) : grille, jamais de chevauchement */
body .gform_wrapper.gform_wrapper .gfield--input-type-datefield .ginput_complex {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.4fr);
	gap: var(--lgf-espace-2);
	margin: 0 !important;
	max-width: 360px;
}
body .gform_wrapper.gform_wrapper .gfield--input-type-datefield .ginput_complex > .ginput_container_date {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
body .gform_wrapper.gform_wrapper .gfield--input-type-datefield .ginput_container_date input {
	width: 100% !important;
	min-width: 0 !important;
	padding-inline: var(--lgf-espace-3) !important;
	text-align: center;
	-moz-appearance: textfield;
	appearance: textfield;
}
body .gform_wrapper.gform_wrapper .gfield--input-type-datefield .ginput_container_date input::-webkit-inner-spin-button,
body .gform_wrapper.gform_wrapper .gfield--input-type-datefield .ginput_container_date input::-webkit-outer-spin-button {
	margin: 0;
	-webkit-appearance: none;
}
body .gform_wrapper.gform_wrapper .gfield--input-type-datefield .ginput_container_date label {
	margin-top: var(--lgf-espace-1);
	text-align: center;
}
/* Date avec calendrier (datepicker) */
body .gform_wrapper.gform_wrapper .ginput_container_date .datepicker_with_icon.large {
	width: calc(100% - 48px) !important;
}

/* Téléphone international (intl-tel-input) : le texte ne passe pas sous le drapeau */
body .gform_wrapper.gform_wrapper .iti {
	display: block;
	width: 100%;
}
body .gform_wrapper.gform_wrapper .iti input[type="tel"] {
	padding-left: 56px !important;
}
body .gform_wrapper.gform_wrapper .iti__country-container {
	padding: 0 !important;
}
body .gform_wrapper.gform_wrapper .iti__selected-country {
	height: 100%;
	padding: 0 var(--lgf-espace-2) 0 var(--lgf-espace-4) !important;
	border-radius: var(--lgf-rayon-md) 0 0 var(--lgf-rayon-md);
}
body .gform_wrapper.gform_wrapper .iti__selected-country:hover {
	background: var(--lgf-bleu-50) !important;
}
.iti__dropdown-content {
	border: var(--lgf-trait) solid var(--lgf-bordure) !important;
	border-radius: var(--lgf-rayon-md) !important;
	box-shadow: var(--lgf-ombre-md) !important;
	background: var(--lgf-blanc) !important;
	font-family: var(--font-texte);
	font-size: var(--lgf-corps-taille);
	color: var(--lgf-encre);
	overflow: hidden;
}
.iti__dropdown-content .iti__search-input {
	min-height: var(--lgf-hauteur-controle-sm) !important;
	padding: var(--lgf-espace-2) var(--lgf-espace-3) !important;
	border: 0 !important;
	border-bottom: var(--lgf-trait) solid var(--lgf-bordure) !important;
	border-radius: 0 !important;
	font-size: var(--lgf-corps-taille) !important;
}
.iti__country-list .iti__country {
	padding: var(--lgf-espace-2) var(--lgf-espace-3);
}
.iti__country-list .iti__country.iti__highlight {
	background: var(--lgf-bleu-50);
}
.iti__country-list .iti__dial-code {
	color: var(--lgf-texte-discret);
}

/* Listes enrichies Chosen (« Choisir dans la liste ») */
body .gform_wrapper.gform_wrapper .chosen-container {
	width: 100% !important;
	font-family: var(--font-texte);
	font-size: var(--lgf-corps-taille);
	line-height: var(--lgf-corps-interligne);
	color: var(--lgf-encre);
}
body .gform_wrapper.gform_wrapper .chosen-container-single .chosen-single {
	display: flex;
	align-items: center;
	height: auto;
	min-height: var(--lgf-hauteur-controle);
	padding: var(--lgf-espace-2) 44px var(--lgf-espace-2) var(--lgf-espace-4);
	border: var(--lgf-trait) solid var(--lgf-bordure-champ);
	border-radius: var(--lgf-rayon-md) !important;
	background: var(--lgf-blanc);
	box-shadow: none;
	box-sizing: border-box;
	color: var(--lgf-encre);
	line-height: var(--lgf-corps-interligne);
	text-decoration: none;
}
body .gform_wrapper.gform_wrapper .chosen-container-single .chosen-single span {
	margin: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
body .gform_wrapper.gform_wrapper .chosen-container-single .chosen-default {
	color: var(--lgf-texte-discret);
}
body .gform_wrapper.gform_wrapper .chosen-container-single .chosen-single div {
	top: 0;
	right: var(--lgf-espace-4);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 100%;
}
body .gform_wrapper.gform_wrapper .chosen-container-single .chosen-single div b {
	position: static;
	width: 8px;
	height: 8px;
	margin-top: -4px;
	border-right: var(--lgf-trait-fort) solid var(--lgf-texte);
	border-bottom: var(--lgf-trait-fort) solid var(--lgf-texte);
	background: none !important;
	transform: rotate(45deg);
	transition: transform var(--lgf-duree-rapide) var(--lgf-courbe);
}
body .gform_wrapper.gform_wrapper .chosen-container-active.chosen-with-drop .chosen-single div b {
	margin-top: 4px;
	transform: rotate(-135deg);
}
body .gform_wrapper.gform_wrapper .chosen-container-active :is(.chosen-single, .chosen-choices) {
	border-color: var(--lgf-bleu-500);
	outline: var(--lgf-trait-fort) solid var(--lgf-bleu-500);
	outline-offset: 2px;
}
body .gform_wrapper.gform_wrapper .chosen-container-active.chosen-with-drop .chosen-single {
	border-radius: var(--lgf-rayon-md);
	background: var(--lgf-blanc);
	box-shadow: none;
}
body .gform_wrapper.gform_wrapper .chosen-container .chosen-drop {
	margin-top: var(--lgf-espace-1);
	border: var(--lgf-trait) solid var(--lgf-bordure);
	border-radius: var(--lgf-rayon-md);
	background: var(--lgf-blanc);
	box-shadow: var(--lgf-ombre-md);
	overflow: hidden;
}
body .gform_wrapper.gform_wrapper .chosen-container .chosen-search {
	padding: var(--lgf-espace-2);
}
body .gform_wrapper.gform_wrapper .chosen-container .chosen-search input[type="text"] {
	min-height: var(--lgf-hauteur-controle-sm) !important;
	padding: var(--lgf-espace-2) var(--lgf-espace-3) !important;
	background-image: none !important;
}
body .gform_wrapper.gform_wrapper .chosen-container .chosen-results {
	max-height: 280px;
	margin: 0;
	padding: 0 0 var(--lgf-espace-2);
}
body .gform_wrapper.gform_wrapper .chosen-container .chosen-results li {
	padding: var(--lgf-espace-2) var(--lgf-espace-4);
	line-height: var(--lgf-corps-interligne);
	color: var(--lgf-encre);
}
body .gform_wrapper.gform_wrapper .chosen-container .chosen-results li.highlighted {
	background: var(--lgf-bleu-50);
	background-image: none;
	color: var(--lgf-bleu-700);
}
body .gform_wrapper.gform_wrapper .chosen-container .chosen-results li.no-results {
	background: var(--lgf-fond);
	color: var(--lgf-texte-discret);
}
body .gform_wrapper.gform_wrapper .chosen-container .chosen-results li.group-result {
	color: var(--lgf-texte-discret);
	font-weight: var(--lgf-corps-fort-graisse);
}
body .gform_wrapper.gform_wrapper .chosen-container-multi .chosen-choices {
	display: flex;
	flex-wrap: wrap;
	gap: var(--lgf-espace-1);
	min-height: var(--lgf-hauteur-controle);
	padding: var(--lgf-espace-2) var(--lgf-espace-3);
	border: var(--lgf-trait) solid var(--lgf-bordure-champ);
	border-radius: var(--lgf-rayon-md);
	background: var(--lgf-blanc);
	box-shadow: none;
	box-sizing: border-box;
}
body .gform_wrapper.gform_wrapper .chosen-container-multi .chosen-choices li.search-field input[type="text"] {
	min-height: 30px !important;
	height: 30px;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	outline: 0 !important;
	font-family: var(--font-texte) !important;
	color: var(--lgf-encre) !important;
}
body .gform_wrapper.gform_wrapper .chosen-container-multi .chosen-choices li.search-choice {
	margin: 0;
	padding: var(--lgf-espace-1) 26px var(--lgf-espace-1) var(--lgf-espace-3);
	border: 0;
	border-radius: var(--lgf-rayon-pilule);
	background: var(--lgf-bleu-50);
	box-shadow: none;
	color: var(--lgf-bleu-700);
	font-size: var(--lgf-etiquette-taille);
	line-height: var(--lgf-etiquette-interligne);
}
body .gform_wrapper.gform_wrapper .chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
	top: 50%;
	right: var(--lgf-espace-2);
	transform: translateY(-50%);
}
body .gform_wrapper.gform_wrapper .chosen-disabled {
	opacity: 0.6;
}

/* Listes enrichies GP Advanced Select (Tom Select) */
body .gform_wrapper.gform_wrapper select:is(.tomselected, .ts-hidden-accessible) {
	min-height: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}
body .gform_wrapper.gform_wrapper .ts-wrapper {
	min-height: var(--lgf-hauteur-controle);
	font-family: var(--font-texte);
	font-size: var(--lgf-corps-taille);
}
body .gform_wrapper.gform_wrapper .ts-wrapper .ts-control {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--lgf-espace-1);
	min-height: var(--lgf-hauteur-controle);
	padding: var(--lgf-espace-2) 44px var(--lgf-espace-2) var(--lgf-espace-4);
	border: var(--lgf-trait) solid var(--lgf-bordure-champ);
	border-radius: var(--lgf-rayon-md);
	background: var(--lgf-blanc);
	box-shadow: none;
	box-sizing: border-box;
	font-size: var(--lgf-corps-taille);
	line-height: var(--lgf-corps-interligne);
	color: var(--lgf-encre);
}
body .gform_wrapper.gform_wrapper .ts-wrapper.focus .ts-control {
	border-color: var(--lgf-bleu-500);
	outline: var(--lgf-trait-fort) solid var(--lgf-bleu-500);
	outline-offset: 2px;
	box-shadow: none;
}
body .gform_wrapper.gform_wrapper .ts-wrapper .ts-control input {
	flex: 1 1 60px;
	min-width: 60px;
	min-height: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	outline: 0 !important;
	font-size: var(--lgf-corps-taille) !important;
	color: var(--lgf-encre) !important;
}
body .gform_wrapper.gform_wrapper .ts-wrapper .ts-control input::placeholder {
	color: var(--lgf-texte-discret);
}
body .gform_wrapper.gform_wrapper .ts-wrapper.multi .ts-control > .item {
	margin: 0;
	padding: 2px var(--lgf-espace-2) 2px var(--lgf-espace-3);
	border: 0;
	border-radius: var(--lgf-rayon-pilule);
	background: var(--lgf-bleu-50);
	color: var(--lgf-bleu-700);
	font-size: var(--lgf-etiquette-taille);
	line-height: var(--lgf-etiquette-interligne);
	font-weight: var(--lgf-etiquette-graisse);
}
body .gform_wrapper.gform_wrapper .ts-wrapper.multi .ts-control > .item .remove {
	border-left: 0;
	color: var(--lgf-bleu-700);
}
body .gform_wrapper.gform_wrapper .ts-wrapper.single .ts-control::after {
	content: "";
	position: absolute;
	top: 50%;
	right: var(--lgf-espace-4);
	width: 8px;
	height: 8px;
	margin-top: -6px;
	border: 0;
	border-right: var(--lgf-trait-fort) solid var(--lgf-texte);
	border-bottom: var(--lgf-trait-fort) solid var(--lgf-texte);
	transform: rotate(45deg);
}
.ts-dropdown {
	margin-top: var(--lgf-espace-1) !important;
	border: var(--lgf-trait) solid var(--lgf-bordure) !important;
	border-radius: var(--lgf-rayon-md) !important;
	background: var(--lgf-blanc) !important;
	box-shadow: var(--lgf-ombre-md) !important;
	font-family: var(--font-texte);
	font-size: var(--lgf-corps-taille);
	color: var(--lgf-encre);
	overflow: hidden;
}
.ts-dropdown .option,
.ts-dropdown .no-results,
.ts-dropdown .create {
	padding: var(--lgf-espace-2) var(--lgf-espace-4);
}
.ts-dropdown .active {
	background: var(--lgf-bleu-50) !important;
	color: var(--lgf-bleu-700) !important;
}
.ts-dropdown .optgroup-header {
	color: var(--lgf-texte-discret);
	font-weight: var(--lgf-corps-fort-graisse);
}
/* Options chargées à la demande : symbole de chargement de la marque */
.ts-dropdown .spinner {
	display: block !important;
	width: 36px !important;
	height: 36px !important;
	margin: var(--lgf-espace-2) auto !important;
}
.ts-dropdown .spinner::after {
	width: 36px !important;
	height: 36px !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: url("../img/logo/chargement.svg") center / contain no-repeat !important;
	animation: none !important;
}

/* Envoi de fichiers */
body .gform_wrapper.gform_wrapper .gform_drop_area {
	padding: var(--lgf-espace-5) var(--lgf-espace-4) !important;
	border: var(--lgf-trait-fort) dashed var(--lgf-bordure-champ) !important;
	border-radius: var(--lgf-rayon-lg) !important;
	background: var(--lgf-fond) !important;
	text-align: center;
	color: var(--lgf-texte);
}
body .gform_wrapper.gform_wrapper .gform_drop_area.hover {
	border-color: var(--lgf-bleu-500) !important;
	background: var(--lgf-bleu-50) !important;
}
body .gform_wrapper.gform_wrapper .gform_drop_instructions {
	display: block;
	margin-bottom: var(--lgf-espace-3);
	font-size: var(--lgf-corps-taille);
}
body .gform_wrapper.gform_wrapper .gform_button_select_files,
body .gform_wrapper.gform_wrapper input[type="file"]::file-selector-button {
	min-height: var(--lgf-hauteur-controle-sm);
	padding: 0 var(--lgf-espace-4);
	border: var(--lgf-trait) solid var(--lgf-bleu-500) !important;
	border-radius: var(--lgf-rayon-md) !important;
	background: var(--lgf-blanc) !important;
	color: var(--lgf-bleu-500) !important;
	font-family: var(--font-texte);
	font-size: var(--lgf-bouton-taille);
	font-weight: var(--lgf-bouton-graisse);
	cursor: pointer;
}
body .gform_wrapper.gform_wrapper .gform_button_select_files:hover,
body .gform_wrapper.gform_wrapper input[type="file"]::file-selector-button:hover {
	background: var(--lgf-bleu-50) !important;
	color: var(--lgf-bleu-700) !important;
}
body .gform_wrapper.gform_wrapper input[type="file"] {
	max-width: 100%;
	font-family: var(--font-texte);
	font-size: var(--lgf-petit-taille);
	color: var(--lgf-texte-discret);
}
body .gform_wrapper.gform_wrapper input[type="file"]::file-selector-button {
	margin-right: var(--lgf-espace-3);
}
body .gform_wrapper.gform_wrapper .gform_fileupload_rules,
body .gform_wrapper.gform_wrapper .gform_fileupload_rules + * {
	display: block;
	margin-top: var(--lgf-espace-2);
	font-size: var(--lgf-petit-taille);
	color: var(--lgf-texte-discret);
}
body .gform_wrapper.gform_wrapper .ginput_preview {
	display: flex;
	align-items: center;
	gap: var(--lgf-espace-2);
	margin-top: var(--lgf-espace-2);
	padding: var(--lgf-espace-2) var(--lgf-espace-3);
	border-radius: var(--lgf-rayon-md);
	background: var(--lgf-bleu-50);
	font-size: var(--lgf-petit-taille);
	color: var(--lgf-encre);
}

/* Heure (heures, minutes) et champs composés */
body .gform_wrapper.gform_wrapper .ginput_container_time {
	min-width: 72px;
}
body .gform_wrapper.gform_wrapper .gfield--type-time .ginput_complex {
	align-items: flex-start;
	gap: var(--lgf-espace-2);
}
body .gform_wrapper.gform_wrapper .gsection_description {
	margin-top: var(--lgf-espace-1);
	font-size: var(--lgf-petit-taille);
	color: var(--lgf-texte-discret);
}
/* Indications de saisie (placeholders) lisibles */
body .gform_wrapper.gform_wrapper ::placeholder {
	color: var(--lgf-texte-discret);
	opacity: 1;
}

/* ---------- WP Grid Builder : schémas de couleur des cartes ramenés aux jetons ----------
 * (gris #777 par défaut, sous le contraste minimal de 4,5:1 sur blanc) */
.wp-grid-builder {
	--wpgb-dark-scheme-1: var(--lgf-encre);
	--wpgb-dark-scheme-2: var(--lgf-texte);
	--wpgb-dark-scheme-3: var(--lgf-texte-discret);
	--wpgb-light-scheme-1: var(--lgf-blanc);
	--wpgb-light-scheme-2: var(--lgf-blanc);
	--wpgb-light-scheme-3: var(--lgf-bleu-50);
}

/* ---------- WP Grid Builder : facettes ---------- */
.wpgb-facet .wpgb-facet-title {
	font-family: var(--font-texte) !important;
	font-size: var(--lgf-corps-taille) !important;
	font-weight: var(--lgf-corps-fort-graisse) !important;
	color: var(--lgf-encre) !important;
	margin-bottom: var(--lgf-espace-2) !important;
}
.wpgb-facet :is(.wpgb-checkbox-label, .wpgb-radio-label) {
	font-size: var(--lgf-corps-taille) !important;
	color: var(--lgf-texte) !important;
}
/* Cases à cocher et boutons radio des facettes : l'écart visible se règle par le rembourrage de la ligne, qui reste
   cliquable en entier. Au doigt, chaque ligne garde la cible de 44 px (libellé de 24 px + 2 × 10 px) ; à la souris,
   4 px de part et d'autre suffisent (ligne de 32 px, 12 px entre deux cases). La marge de 12 px que WP Grid Builder
   met entre les éléments de la liste (« li + li ») est retirée : elle s'ajoutait à la hauteur de la ligne.
   Préfixe « body » et conteneur de facette : la feuille de WP Grid Builder, chargée après, remet le rembourrage à 0 (0,3,0). */
body .wpgb-facet {
	--lgf-facette-marge: calc((var(--lgf-cible-tactile) - var(--lgf-corps-interligne)) / 2);
}
@media (hover: hover) and (pointer: fine) {
	body .wpgb-facet {
		--lgf-facette-marge: var(--lgf-espace-1);
	}
}
body .wpgb-facet :is(.wpgb-checkbox-facet, .wpgb-radio-facet) .wpgb-hierarchical-list li {
	margin: 0;
}
body .wpgb-facet :is(.wpgb-checkbox-facet, .wpgb-radio-facet) :is(.wpgb-checkbox, .wpgb-radio) {
	box-sizing: border-box;
	align-items: flex-start;
	padding-block: var(--lgf-facette-marge);
}
body .wpgb-facet :is(.wpgb-checkbox-facet, .wpgb-radio-facet) :is(.wpgb-checkbox-label, .wpgb-radio-label) {
	line-height: var(--lgf-corps-interligne);
}
/* Case de 20 px centrée sur la première ligne du libellé (interligne de 24 px) */
body .wpgb-facet :is(.wpgb-checkbox-facet, .wpgb-radio-facet) :is(.wpgb-checkbox-control, .wpgb-radio-control) {
	margin-top: 2px;
}
/* Bouton « + / − » des listes hiérarchiques, aligné sur la case */
body .wpgb-facet .wpgb-checkbox-facet li[aria-expanded]::after {
	top: calc(var(--lgf-facette-marge) + 2px);
}
.wpgb-facet :is(.wpgb-checkbox-control, .wpgb-radio-control) {
	border-color: var(--lgf-bordure-champ) !important;
	border-radius: var(--lgf-rayon-xs) !important;
}
.wpgb-facet .wpgb-radio-control {
	border-radius: 50% !important;
}
.wpgb-facet [aria-pressed="true"] :is(.wpgb-checkbox-control, .wpgb-radio-control) {
	background: var(--lgf-bleu-500) !important;
	border-color: var(--lgf-bleu-500) !important;
}
.wpgb-facet .wpgb-facet-count,
.wpgb-facet .wpgb-checkbox-label + span,
.wpgb-facet .wpgb-radio-label + span {
	font-size: var(--lgf-petit-taille);
	color: var(--lgf-texte-discret);
}
.wpgb-facet :is(.wpgb-select, .wpgb-input, .wpgb-search input, input[type="search"], select) {
	min-height: var(--lgf-hauteur-controle) !important;
	border: var(--lgf-trait) solid var(--lgf-bordure-champ) !important;
	border-radius: var(--lgf-rayon-md) !important;
	background-color: var(--lgf-blanc) !important;
	font-family: var(--font-texte) !important;
	font-size: var(--lgf-corps-taille) !important;
	color: var(--lgf-encre) !important;
	box-shadow: none !important;
}
/* Champ de saisie des facettes (recherche) : 48 px comme les autres contrôles ; la hauteur se fixe, sinon
   l'interligne de 24 px et les rembourrages du kit le portent à 50 px */
.wpgb-facet input.wpgb-input {
	height: var(--lgf-hauteur-controle);
}
/* Liste déroulante des facettes (combobox WP Grid Builder) : le champ de recherche interne n'a pas de cadre */
.wpgb-facet .wpgb-select {
	padding-inline: var(--lgf-espace-4) var(--lgf-espace-2) !important;
}
.wpgb-facet .wpgb-select[aria-expanded="true"],
.wpgb-facet .wpgb-select:focus-within {
	border-color: var(--lgf-bleu-500) !important;
	outline: var(--lgf-trait-fort) solid var(--lgf-bleu-500);
	outline-offset: 2px;
}
.wpgb-facet .wpgb-select-search input[type="text"] {
	min-height: 0 !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	outline: 0 !important;
	font-family: var(--font-texte) !important;
	font-size: var(--lgf-corps-taille) !important;
	color: var(--lgf-encre) !important;
}
.wpgb-facet .wpgb-select-search input[type="text"]::placeholder {
	color: var(--lgf-texte);
	opacity: 1;
}
.wpgb-facet .wpgb-select-values .wpgb-select-value {
	border: 0 !important;
	border-radius: var(--lgf-rayon-pilule) !important;
	background: var(--lgf-turquoise-50) !important;
	color: var(--lgf-turquoise-700) !important;
	font-size: var(--lgf-etiquette-taille);
	font-weight: var(--lgf-etiquette-graisse);
}
.wpgb-select-dropdown {
	border: var(--lgf-trait) solid var(--lgf-bordure) !important;
	border-radius: var(--lgf-rayon-md) !important;
	background: var(--lgf-blanc) !important;
	box-shadow: var(--lgf-ombre-md) !important;
	font-family: var(--font-texte);
	font-size: var(--lgf-corps-taille);
	color: var(--lgf-encre);
	overflow: hidden;
}
.wpgb-select-dropdown .wpgb-select-item {
	padding: var(--lgf-espace-2) var(--lgf-espace-4) !important;
	line-height: var(--lgf-corps-interligne);
	color: var(--lgf-encre) !important;
}
.wpgb-select-dropdown .wpgb-select-item[aria-selected="true"],
.wpgb-select-dropdown .wpgb-select-item:is(:hover, [data-focused], .wpgb-focused) {
	background: var(--lgf-bleu-50) !important;
	color: var(--lgf-bleu-700) !important;
}
/* Liste « Domaine » (facette #1) des filtres latéraux : ses intitulés CITE, longs et indentés, passaient
   presque un sur deux à la ligne dans les 250 px du champ. Ouverte, elle s'élargit à 400 px vers la droite,
   par-dessus les résultats. WP Grid Builder rattache la liste à <body> et lui donne en style la largeur du champ :
   « min-width » l'emporte sur cette largeur, et « :has() » ne vise que la liste de cette facette.
   Ordinateur seulement : jusqu'à 1130 px, les filtres repliés s'ouvrent sur toute la largeur. */
@media (min-width: 1131px) {
	body:has(.lgf-filtres .wpgb-facet-1 [role="combobox"][aria-expanded="true"]) .wpgb-select-dropdown {
		min-width: 400px;
	}
}
.wpgb-facet .wpgb-button {
	min-height: 40px;
	padding: 0 var(--lgf-espace-4) !important;
	border: var(--lgf-trait) solid var(--lgf-bordure-champ) !important;
	border-radius: var(--lgf-rayon-pilule) !important;
	background: var(--lgf-blanc) !important;
	color: var(--lgf-encre) !important;
	font-family: var(--font-texte) !important;
	font-size: var(--lgf-etiquette-taille) !important;
	font-weight: var(--lgf-etiquette-graisse) !important;
}
.wpgb-facet .wpgb-button[aria-pressed="true"] {
	border: var(--lgf-trait-fort) solid var(--lgf-turquoise-500) !important;
	background: var(--lgf-turquoise-50) !important;
	color: var(--lgf-turquoise-700) !important;
}
.wpgb-facet :is(.wpgb-load-more, .wpgb-pagination-facet a, .wpgb-reset) {
	min-height: var(--lgf-hauteur-controle);
	border: var(--lgf-trait) solid var(--lgf-bleu-500) !important;
	border-radius: var(--lgf-rayon-md) !important;
	background: var(--lgf-blanc) !important;
	color: var(--lgf-bleu-500) !important;
	font-family: var(--font-texte) !important;
	font-weight: var(--lgf-bouton-graisse) !important;
}
.wpgb-facet .wpgb-pagination-facet [aria-current] {
	background: var(--lgf-bleu-500) !important;
	color: var(--lgf-blanc) !important;
}
/* Pagination : pastilles carrées de 44 px, numéro centré */
.wpgb-facet .wpgb-pagination-facet .wpgb-pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--lgf-espace-2);
	margin: 0;
	padding: 0;
	list-style: none;
}
.wpgb-facet .wpgb-pagination-facet .wpgb-page {
	display: flex;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: normal !important;
}
.wpgb-facet .wpgb-pagination-facet :is(a, span) {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-width: var(--lgf-cible-tactile);
	height: var(--lgf-cible-tactile);
	min-height: 0 !important;
	padding: 0 var(--lgf-espace-3) !important;
	box-sizing: border-box;
	font-size: var(--lgf-corps-taille) !important;
	line-height: 1 !important;
	text-decoration: none;
}
.wpgb-facet .wpgb-pagination-facet a:hover {
	background: var(--lgf-bleu-50) !important;
}
.wpgb-facet .wpgb-pagination-facet [aria-current]:hover {
	background: var(--lgf-bleu-500) !important;
}
.wpgb-facet .wpgb-pagination-facet .wpgb-dots,
.wpgb-facet .wpgb-pagination-facet span:not([aria-current]) {
	min-width: 0;
	padding: 0 var(--lgf-espace-1) !important;
	border: 0 !important;
	color: var(--lgf-texte-discret);
}
/* Logo dans une rangée : jamais rétréci sous sa largeur (il passait sous le texte voisin) */
.e-con > .elementor-widget:has(.lgf-logo) {
	flex-shrink: 0;
}
.wpgb-facet .wpgb-selection-facet .wpgb-button {
	border-color: var(--lgf-turquoise-500) !important;
	background: var(--lgf-turquoise-50) !important;
	color: var(--lgf-turquoise-700) !important;
}
.lgf-filtres .wpgb-facet + .wpgb-facet {
	margin-top: var(--lgf-espace-5);
	padding-top: var(--lgf-espace-5);
	border-top: var(--lgf-trait) solid var(--lgf-bordure);
}
.wpgb-map-facet,
.wpgb-map-facet .wpgb-map {
	border-radius: var(--lgf-rayon-lg);
	overflow: hidden;
}
.wpgb-map-facet .wpgb-cluster-icon {
	background-image: url(https://legrandfrere.bf/wp-content/uploads/Cluster-63x67-1.png) !important;
	width: 63px !important;
	height: 67px !important;
	margin-left: -33px !important;
	margin-top: -31px !important;
	line-height: 67px !important;
	font-size: var(--lgf-petit-taille) !important;
	font-weight: var(--lgf-corps-fort-graisse);
	color: var(--lgf-bleu-500) !important;
}
.wpgb-map-facet .wpgb-cluster-icon img {
	display: none;
}
/* Message « deux doigts » posé par js/wpgrid.js quand on tente de déplacer la carte d'un seul doigt */
.lgf-map-gesture-hint {
	position: absolute;
	inset: 0;
	z-index: 1000; /* au-dessus des tuiles et des marqueurs Leaflet */
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--lgf-espace-5);
	text-align: center;
	font-family: var(--font-texte);
	font-size: var(--lgf-corps-taille);
	line-height: var(--lgf-corps-interligne);
	color: var(--lgf-blanc);
	background: color-mix(in srgb, var(--lgf-encre) 70%, transparent);
	opacity: 0;
	visibility: hidden;
	pointer-events: none; /* ne doit jamais intercepter un geste */
	transition: opacity var(--lgf-duree-base) var(--lgf-courbe), visibility var(--lgf-duree-base) var(--lgf-courbe);
}
.lgf-map-gesture-hint-visible .lgf-map-gesture-hint {
	opacity: 1;
	visibility: visible;
}

/* ---------- WP Grid Builder : chargements (symbole de la marque, composant .lgf-chargement) ---------- */
/* Filtrage, pagination : l'extension efface les cartes (.wpgb-loading). Le symbole prend leur place
   et reste au milieu de l'écran tant que la grille est visible (collé, sans décaler les cartes).
   Le chargeur natif, désactivé dans les réglages des grilles, est neutralisé s'il est réactivé. */
body .wp-grid-builder .wpgb-loader {
	display: none !important;
}
body .wp-grid-builder.wpgb-loading .wpgb-main::before {
	content: "";
	position: sticky;
	top: calc(50vh - 80px);
	z-index: 3;
	display: block;
	height: 64px;
	margin-bottom: -64px;
	background: url("../img/logo/chargement.svg") center / 64px no-repeat;
	transform: translateY(var(--lgf-espace-7));
	pointer-events: none;
}
/* Facettes : liste déroulante et autocomplétion qui chargent leurs choix */
.wpgb-facet :is(.wpgb-select .wpgb-select-loader, .acplt .acplt-loader) span {
	display: none !important;
}
.wpgb-facet :is(.wpgb-select .wpgb-select-loader, .acplt .acplt-loader)::before {
	content: "";
	display: inline-block;
	width: 28px;
	height: 28px;
	flex: none;
	background: url("../img/logo/chargement.svg") center / contain no-repeat;
}
/* Carte (facette Map) : chargement de la carte et de la fiche d'un marqueur */
.wpgb-map-facet:not(.wpgb-map-loaded)::before,
.wpgb-map-facet .wpgb-map-marker-loader::before {
	top: calc(50% - 32px) !important;
	left: calc(50% - 32px) !important;
	width: 64px !important;
	height: 64px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: url("../img/logo/chargement.svg") center / contain no-repeat !important;
	animation: none !important;
}
/* Visionneuse (vidéos des cartes) : fond sombre, parties bleues du symbole en blanc */
.wpgb-lightbox-holder::before {
	top: calc(50% - 32px) !important;
	left: calc(50% - 32px) !important;
	width: 64px !important;
	height: 64px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: url("../img/logo/chargement-fond-bleu.svg") center / contain no-repeat !important;
	transform: none !important;
}
.wpgb-lightbox-holder[data-loading="true"]::before {
	animation: none !important;
}

/* ---------- Commentaires ([comts_list], [comment_single], tableau de bord) ---------- */
#comments-ajax-wrapper > p:first-child {
	margin: 0 0 var(--lgf-espace-2);
	color: var(--lgf-texte-discret);
}
.comment-list,
.comment-list .children {
	margin: 0;
	padding: 0;
	list-style: none;
}
.comment-list > li {
	padding: var(--lgf-espace-4) 0;
	border-top: var(--lgf-trait) solid var(--lgf-bordure);
}
.comment-list .children {
	margin: var(--lgf-espace-3) 0 0 var(--lgf-espace-5);
}
.comment-list .children > li {
	padding: var(--lgf-espace-3) var(--lgf-espace-4);
	border-left: var(--lgf-trait-fort) solid var(--lgf-bleu-500);
	border-radius: 0 var(--lgf-rayon-md) var(--lgf-rayon-md) 0;
	background: var(--lgf-fond);
}
.comment-list .children > li + li {
	margin-top: var(--lgf-espace-2);
}
.comment-list .comment-body {
	display: flex;
	flex-direction: column;
	gap: var(--lgf-espace-2);
}
.comment-list .comment-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--lgf-espace-2);
}
.comment-list .comment-author {
	display: flex;
	align-items: center;
	gap: var(--lgf-espace-2);
	font-weight: var(--lgf-corps-fort-graisse);
	color: var(--lgf-encre);
}
.comment-list .comment-author .says {
	display: none;
}
.comment-list .comment-author img {
	border-radius: var(--lgf-rayon-pilule);
}
.comment-list .comment-metadata,
.comment-list .comment-metadata a {
	font-size: var(--lgf-petit-taille);
	color: var(--lgf-texte-discret);
	text-decoration: none;
}
.comment-list .comment-content p {
	margin: 0 0 var(--lgf-espace-2);
}
.comment-list .reply a,
.comment-reply-link {
	font-size: var(--lgf-petit-taille);
	font-weight: var(--lgf-etiquette-graisse);
	color: var(--lgf-bleu-500);
}
.comment-list .representant > .comment-body .comment-author::after,
.comment-list .byadministrator > .comment-body .comment-author::after {
	content: "Réponse officielle";
	display: inline-flex;
	align-items: center;
	padding: 2px var(--lgf-espace-2);
	border-radius: var(--lgf-rayon-pilule);
	background: var(--lgf-vert-50);
	color: var(--lgf-vert-700);
	font-size: var(--lgf-etiquette-taille);
	font-weight: var(--lgf-etiquette-graisse);
}
.comment-author-email,
.comment-author-phone {
	color: var(--lgf-texte-discret);
}
#show-all-comments {
	min-height: var(--lgf-hauteur-controle);
	padding: 0 var(--lgf-espace-5);
	border: var(--lgf-trait) solid var(--lgf-bleu-500);
	border-radius: var(--lgf-rayon-md);
	background: var(--lgf-blanc);
	color: var(--lgf-bleu-500);
	font-family: var(--font-texte);
	font-weight: var(--lgf-bouton-graisse);
	cursor: pointer;
}
.gf-reply-invite,
.single-comment {
	padding: var(--lgf-espace-4);
	border-radius: var(--lgf-rayon-md);
	background: var(--lgf-bleu-50);
}
.dc-etab-limit-notice {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--lgf-espace-3);
	padding: var(--lgf-espace-4) var(--lgf-espace-5);
	border-radius: var(--lgf-rayon-lg);
	background: var(--lgf-jaune-50);
	color: var(--lgf-jaune-800);
}
.dc-etab-limit-notice p {
	margin: 0;
}
.dc-etab-limit-notice .button {
	display: inline-flex;
	align-items: center;
	min-height: var(--lgf-hauteur-controle);
	padding: 0 var(--lgf-espace-5);
	border-radius: var(--lgf-rayon-md);
	background: var(--lgf-corail-600);
	color: var(--lgf-blanc);
	font-weight: var(--lgf-bouton-graisse);
	text-decoration: none;
}

/* ---------- Remise de convention ([convention-remise]) ---------- */
/* Lisible au premier coup d'œil : badge Partenaire, montant « de remise » à côté d'un pictogramme corail
 * (couleur des remises, comme le badge des cartes), puis ce que le montant représente. */
.lgf-convention {
	display: flex;
	flex-direction: column;
	gap: var(--lgf-espace-3);
	padding: var(--lgf-espace-5);
	border: var(--lgf-trait-fort) solid var(--lgf-jaune-400);
	border-radius: var(--lgf-rayon-lg);
	background: var(--lgf-jaune-50);
	color: var(--lgf-texte);
}
.lgf-convention p {
	margin: 0;
}
.lgf-convention-remise {
	display: flex;
	align-items: center;
	gap: var(--lgf-espace-4);
	font-family: var(--font-titres);
	font-weight: var(--lgf-display-graisse);
	font-size: var(--lgf-h2-taille);
	line-height: var(--lgf-h2-interligne);
	color: var(--lgf-encre);
}
.lgf-convention-remise .lgf-pictogramme {
	--lgf-accent-fond: var(--lgf-corail-600);
	--lgf-accent-texte: var(--lgf-blanc);
}
.lgf-convention-sens {
	font-weight: var(--lgf-corps-fort-graisse);
	color: var(--lgf-encre);
}
/* Points du bandeau (composant .lgf-liste-icones) : texte courant, libellé en ligne, icônes sur fond jaune */
.lgf-convention-points li {
	font-size: var(--lgf-corps-taille);
	line-height: var(--lgf-corps-interligne);
	color: var(--lgf-texte);
}
.lgf-convention-points li > .lgf-icone {
	color: var(--lgf-jaune-800);
}
.lgf-convention-points strong {
	display: inline;
}
.lgf-convention-action {
	padding-top: var(--lgf-espace-1);
}
@media (max-width: 767px) {
	.lgf-convention-remise {
		font-size: var(--lgf-h3-taille);
		line-height: var(--lgf-h3-interligne);
	}
}

/* ---------- Gravity Forms : compléments propres au site ---------- */
/*
 * Formulaires d'inscription (#2) et d'accompagnement (#28) : les champs que la configuration
 * PHP masque définitivement gardent la classe gf_hidden ; la logique conditionnelle peut leur
 * reposer un display inline visible. Ils ne doivent jamais être réaffichés.
 */
#gform_wrapper_2 .gfield.gf_hidden,
#gform_wrapper_28 .gfield.gf_hidden {
	display: none !important;
}
/* Détail d'une entrée GP Entry Blocks (gravity-forms/all-fields.php) */
ul.gf-all-fields ul {
	padding-left: var(--lgf-espace-4) !important;
}
.gpeb-table-column-date_created {
	white-space: nowrap;
}
/* Confirmation du formulaire #2, formation hors offre (#654) */
.lgf-hors-offre {
	margin-top: var(--lgf-espace-4);
	padding: var(--lgf-espace-4) var(--lgf-espace-5);
	border: var(--lgf-trait) solid var(--lgf-jaune-400);
	border-radius: var(--lgf-rayon-lg);
	background: var(--lgf-jaune-50);
	color: var(--lgf-encre);
}
.lgf-hors-offre p {
	margin: 0 0 var(--lgf-espace-2);
}
.lgf-hors-offre p:last-child {
	margin-bottom: 0;
}
.lgf-hors-offre-titre {
	font-weight: var(--lgf-corps-fort-graisse);
}

/* ---------- Elementor : listes d'icônes et sous-menus ---------- */
.elementor-widget .elementor-icon-list-item {
	margin-top: var(--lgf-espace-1);
}
.elementor-widget .elementor-icon-list-icon i {
	text-align: center;
}
span.elementor-icon-list-icon {
	flex-shrink: inherit !important;
}
/*
 * Sous-menus SmartMenus : « width:auto » inline plafonne la largeur à celle du conteneur
 * et le texte déborde (sm-nowrap) ; max-content dimensionne au contenu.
 */
ul.sub-menu.elementor-nav-menu--dropdown.sm-nowrap {
	width: max-content !important;
}

/* ---------- Carte Leaflet ([googlemap]) ---------- */
.custom-google-map,
.leaflet-container {
	border-radius: var(--lgf-rayon-lg);
	font-family: var(--font-texte);
}
.leaflet-popup-content-wrapper {
	border-radius: var(--lgf-rayon-md);
}
.leaflet-popup-content .elementor-icon-list-items {
	padding: 0;
	list-style: none;
}

/* ---------- Test d'orientation (extension wp-lgf-orientation) ---------- */
.sg-intro,
#swipe-game-wrapper,
.sg-card,
.swipe-buttons button {
	font-family: var(--font-texte) !important;
}
.sg-intro {
	padding: var(--lgf-espace-6) !important;
	border: var(--lgf-trait) solid var(--lgf-bordure) !important;
	border-radius: var(--lgf-rayon-lg) !important;
	background: var(--lgf-blanc) !important;
	box-shadow: var(--lgf-ombre-sm) !important;
	color: var(--lgf-texte) !important;
}
.sg-intro h3,
.sg-extend h3,
.sg-title,
.sg-block-title {
	font-family: var(--font-titres) !important;
	font-weight: var(--lgf-h3-graisse) !important;
	color: var(--lgf-encre) !important;
}
.sg-start-btn,
.sg-extend button,
.swipe-buttons button:not(.vote) {
	min-height: var(--lgf-hauteur-controle) !important;
	padding: 0 var(--lgf-espace-5) !important;
	border: var(--lgf-trait) solid var(--lgf-bleu-500) !important;
	border-radius: var(--lgf-rayon-md) !important;
	background: var(--lgf-blanc) !important;
	color: var(--lgf-bleu-500) !important;
	font-weight: var(--lgf-bouton-graisse) !important;
}
.sg-start-btn,
#sg-see-results-btn {
	background: var(--lgf-corail-600) !important;
	border-color: var(--lgf-corail-600) !important;
	color: var(--lgf-blanc) !important;
}
.sg-card {
	border-radius: var(--lgf-rayon-lg) !important;
	background-color: var(--lgf-bleu-500) !important;
	font-family: var(--font-titres) !important;
	font-weight: var(--lgf-h3-graisse) !important;
	box-shadow: var(--lgf-ombre-md) !important;
}
/* Boutons de vote (icône Lucide + libellé en currentColor depuis l'extension 0.9.13) : le kit Elementor
   donne le blanc à tout <button> ; sur fond blanc, icône et libellé disparaissaient. Couleur imposée. */
.swipe-buttons button.vote {
	min-width: 72px;
	min-height: 64px;
	border: var(--lgf-trait) solid var(--lgf-bordure-champ) !important;
	border-radius: var(--lgf-rayon-md) !important;
	background: var(--lgf-blanc) !important;
	color: var(--lgf-encre) !important;
}
.swipe-buttons button.vote:hover,
.swipe-buttons button.vote:focus-visible {
	border-color: var(--lgf-bleu-500) !important;
	color: var(--lgf-bleu-500) !important;
}
.sg-progress-track {
	border-radius: var(--lgf-rayon-pilule) !important;
	background: var(--lgf-bordure) !important;
}
.sg-progress-bar {
	border-radius: var(--lgf-rayon-pilule) !important;
	background: var(--lgf-bleu-500) !important;
}
.sg-advice-item,
.sg-results-grid > div,
.sg-extend {
	padding: var(--lgf-espace-5) !important;
	border: var(--lgf-trait) solid var(--lgf-bordure) !important;
	border-radius: var(--lgf-rayon-lg) !important;
	background: var(--lgf-blanc) !important;
}
.sg-advice-item h4 {
	font-family: var(--font-titres);
	color: var(--lgf-encre);
}
.sg-badge {
	border-radius: var(--lgf-rayon-pilule) !important;
	background: var(--lgf-bleu-50) !important;
	color: var(--lgf-bleu-500) !important;
	font-weight: var(--lgf-etiquette-graisse) !important;
}
.sg-metiers-list a {
	color: var(--lgf-bleu-500) !important;
}
.sg-legend-code {
	color: var(--lgf-bleu-500) !important;
}
.sg-legend-code.sg-negative {
	color: var(--lgf-corail-600) !important;
}
#orientation-report-cta {
	border-radius: var(--lgf-rayon-lg) !important;
	font-family: var(--font-texte) !important;
}
#orientation-report-cta .orc-btn {
	min-height: var(--lgf-hauteur-controle);
	border-radius: var(--lgf-rayon-md) !important;
	background: var(--lgf-corail-600) !important;
	color: var(--lgf-blanc) !important;
	font-weight: var(--lgf-bouton-graisse) !important;
}

/* ---------- Boutons flottants : assistant Diaby et WhatsApp ---------- */
#whatsapp-float-button {
	bottom: 96px !important;
	right: var(--lgf-espace-4) !important;
	width: 52px !important;
	height: 52px !important;
	background-color: var(--lgf-vert-600) !important;
	box-shadow: var(--lgf-ombre-md) !important;
	animation: none !important;
}
@media (max-width: 767px) {
	body.single-etablissement #whatsapp-float-button {
		bottom: 168px !important;
	}
}

/* ---------- Règles fonctionnelles reprises du CSS additionnel de l'outil de personnalisation (vidé le 13/10/2026) ---------- */
.gform_required_legend {
	display: none;
}
.gform_wrapper.gravity-theme .gf_hidden,
.gform_wrapper.gravity-theme .gform_hidden {
	position: absolute;
}
button.iti__selected-country {
	border-color: transparent !important;
	background: transparent !important;
	padding: inherit !important;
}
/* Formulaire #11 (test de personnalité) : cases « oui / non » en interrupteurs */
#gform_11 .gchoice {
	display: flex;
	align-items: center;
	min-height: 32px;
	margin: var(--lgf-espace-1) 0;
}
#gform_11 .gchoice input[type="checkbox"] {
	position: relative;
	flex: none;
	width: 52px;
	height: 28px;
	margin: 0 var(--lgf-espace-2) 0 0;
	border: 0;
	border-radius: var(--lgf-rayon-pilule);
	background: var(--lgf-bordure);
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	transition: background var(--lgf-duree-base) var(--lgf-courbe);
}
#gform_11 .gchoice input[type="checkbox"]::before {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--lgf-blanc);
	transition: transform var(--lgf-duree-base) var(--lgf-courbe);
}
#gform_11 .gchoice input[type="checkbox"]:checked {
	background: var(--lgf-bleu-500);
}
#gform_11 .gchoice input[type="checkbox"]:checked::before {
	transform: translateX(24px);
}
/* GP Entry Blocks : filtres et tableaux défilables */
@media (min-width: 641px) {
	.wp-block-gp-entry-blocks-entries-index form {
		display: inline-flex;
		column-gap: var(--lgf-espace-4);
	}
}
.wp-block-gp-entry-blocks-entries-index > table,
table.liste-offres {
	display: block;
	width: 100%;
	overflow-x: auto;
	border-collapse: collapse;
}
.gpeb_clear_filters {
	margin-left: var(--lgf-espace-4);
}
/* WP Grid Builder */
.wp-grid-builder .wpgb-card [class*="wpgb-block-"] {
	white-space: normal !important;
}
.wpgb-search-facet > label {
	margin-bottom: 0 !important;
}
.wpgb-select-facet > label {
	display: none !important;
}
.wpgb-facet-23 > * {
	display: inline-block !important;
}
.wp-grid-builder .wpgb-card:not(.wpgb-card-26):not(.wpgb-card-29):not(.wpgb-card-31) .wpgb-card-media-thumbnail div {
	background-size: contain !important;
}
.wp-grid-builder .wpgb-card .domaines::before {
	content: "Domaines de formation : ";
}
.wp-grid-builder .wpgb-card .niveaux::before {
	content: "Niveaux de formation : ";
}
@media (max-width: 767px) {
	.wpgb-grid-14 aside.wpgb-sidebar,
	.wpgb-grid-10 aside.wpgb-sidebar,
	.wpgb-grid-5 aside.wpgb-sidebar {
		display: none !important;
	}
}
@media (min-width: 768px) {
	.wpgb-grid-10 .wpgb-area-bottom-1,
	.wpgb-grid-5 .wpgb-area-bottom-1 {
		display: none !important;
	}
}
/* Carte des archives : hauteur relative et fiches des marqueurs */
@media (max-width: 1130px) {
	.wpgb-facet .wpgb-map-facet {
		padding-bottom: 70% !important;
	}
}
@media (max-width: 767px) {
	.wpgb-facet .wpgb-map-facet {
		padding-bottom: 100% !important;
	}
}
.wpgb-facet .wpgb-map-facet .leaflet-popup .leaflet-popup-content {
	min-width: min(400px, 75vw) !important;
	max-width: 600px !important;
	padding: var(--lgf-espace-3) !important;
}
.wpgb-facet .leaflet-popup-content .wpgb-map-marker-body {
	display: inline-flex !important;
	padding: 0 !important;
}
div.left-part {
	float: left;
	max-width: 100px;
	margin-right: var(--lgf-espace-3);
}
div.right-part {
	display: inline-block;
}
.leaflet-popup-content p {
	margin: var(--lgf-espace-1) 0 !important;
}
/* Menus : chevrons des sous-menus, menu pays */
.elementor-nav-menu .sub-arrow {
	display: inline !important;
}
li.menu-item-type-taxonomy > ul {
	min-width: 165px !important;
}
/* Shortcode [bouton-annuaire] : pastilles pays (.lgf-pastille) */
.boutons-annuaire {
	width: 100% !important;
}

/* Boutons-liens : la couleur des liens du kit Elementor (.elementor-kit-… a) ne doit pas teinter les boutons */
body a.lgf-btn--principal,
body a.lgf-btn--principal:hover,
body a.lgf-btn--principal:focus {
	color: var(--lgf-blanc);
}
body a.lgf-btn--contour-blanc,
body a.lgf-btn--contour-blanc:hover {
	color: var(--lgf-blanc);
}
/* Secondaire : bleu au repos, blanc sur fond bleu au survol (le bleu 700 sur bleu 500 était illisible) */
body a.lgf-btn--secondaire {
	color: var(--lgf-bleu-500);
}
body a.lgf-btn--secondaire:hover {
	color: var(--lgf-blanc);
}
body a.lgf-btn--tertiaire:hover {
	color: var(--lgf-bleu-700);
}
/* Boutons secondaires en balise <button> (« Filtres » des annuaires) : le kit Elementor peint tous les <button>
   en corail, leur retire la bordure et leur donne 14 px de rembourrage vertical ; on rétablit le composant
   (fond blanc, contour et texte bleus, hauteur donnée par min-height : 48 px, 40 px en --sm) */
body button.lgf-btn--secondaire {
	padding-top: 0;
	padding-bottom: 0;
	border: var(--lgf-trait-fort) solid var(--lgf-bleu-500);
	background: var(--lgf-blanc);
	color: var(--lgf-bleu-500);
}
body button.lgf-btn--secondaire:hover {
	border-color: var(--lgf-bleu-500);
	background: var(--lgf-bleu-500);
	color: var(--lgf-blanc);
}
body a.lgf-badge {
	color: var(--lgf-badge-texte, var(--lgf-texte));
	text-decoration: none;
}
body a.lgf-pastille {
	color: var(--lgf-encre);
	text-decoration: none;
}

/* Bandeau de confiance en conteneur */
.e-con.lgf-bandeau-confiance {
	padding: var(--lgf-espace-6) var(--lgf-espace-7) !important;
}
@media (max-width: 767px) {
	.e-con.lgf-carte {
		padding: var(--lgf-espace-4) !important;
	}
	.e-con.lgf-bandeau-confiance {
		padding: var(--lgf-espace-5) !important;
	}
}
/* Tableaux larges : défilement horizontal dans leur conteneur, jamais la page */
.lgf-tableau-defilant,
.elementor-widget-text-editor:has(> table),
.elementor-widget-text-editor .elementor-widget-container:has(> table) {
	overflow-x: auto;
}
.lgf-texte-riche table,
.elementor-widget-text-editor table {
	width: 100%;
	min-width: 520px;
	border-collapse: collapse;
}
.elementor-widget-text-editor :is(th, td) {
	padding: var(--lgf-espace-2) var(--lgf-espace-3);
	border-bottom: var(--lgf-trait) solid var(--lgf-bordure);
	text-align: left;
	vertical-align: top;
}
.elementor-widget-text-editor th {
	font-weight: var(--lgf-corps-fort-graisse);
	color: var(--lgf-encre);
	background: var(--lgf-fond);
}

/* Compteurs Elementor (chiffres clés) : grands chiffres aux couleurs du symbole, filet de couleur dessous */
.elementor-widget-counter .elementor-counter {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--lgf-espace-2);
}
.elementor-counter .elementor-counter-number-wrapper {
	font-family: var(--font-titres);
	font-weight: var(--lgf-display-graisse);
	font-size: var(--lgf-display-taille);
	line-height: var(--lgf-display-interligne);
	letter-spacing: -0.02em;
	color: var(--lgf-bleu-500);
}
.elementor-counter .elementor-counter-number-wrapper {
	order: -1;
	flex-wrap: wrap;
	justify-content: center;
}
/* Filet de la couleur du chiffre, sous le chiffre */
.elementor-counter .elementor-counter-number-wrapper::after {
	content: "";
	flex: 0 0 100%;
	height: var(--lgf-ruban);
	margin-top: var(--lgf-espace-2);
	background: linear-gradient(currentColor, currentColor) center / 40px 100% no-repeat;
}
.elementor-widget-counter:nth-child(4n + 2) .elementor-counter-number-wrapper {
	color: var(--lgf-corail-600);
}
.elementor-widget-counter:nth-child(4n + 3) .elementor-counter-number-wrapper {
	color: var(--lgf-turquoise-700);
}
.elementor-widget-counter:nth-child(4n + 4) .elementor-counter-number-wrapper {
	color: var(--lgf-jaune-800);
}
.elementor-counter .elementor-counter-title {
	font-family: var(--font-texte);
	font-weight: var(--lgf-corps-graisse);
	font-size: var(--lgf-corps-taille);
	line-height: var(--lgf-corps-interligne);
	color: var(--lgf-texte);
	text-align: center;
}
/* Conteneurs en grille Elementor : lignes à la hauteur du contenu (le réglage par défaut « 2 lignes 1fr » crée des vides) */
.e-con.e-grid {
	grid-template-rows: none !important;
	grid-auto-rows: auto;
}
/* Boutons dans une rangée : ils gardent leur largeur et leur libellé sur une ligne */
.e-con > .elementor-widget-button,
.e-con-inner > .elementor-widget-button {
	flex-shrink: 0;
}
@media (min-width: 768px) {
	.elementor-widget-button .elementor-button-text {
		white-space: nowrap;
	}
}

/* =====================================================================
 * WP Grid Builder : cartes et carrousels (identité 2027)
 * WP Grid Builder remet à zéro marges, bordures, tailles et polices de tout
 * élément d'une carte (« .wp-grid-builder .wpgb-card div {…} », spécificité 0,2,1)
 * et sa feuille de grille repose bordures et ombres (0,3,0) : chaque règle est
 * donc préfixée « body .wp-grid-builder .wpgb-card » pour primer.
 * ===================================================================== */

/* ---------- Socle commun à toutes les cartes ---------- */
body .wp-grid-builder .wpgb-card .wpgb-card-wrapper {
	height: 100%;
}
body .wp-grid-builder .wpgb-card .wpgb-card-inner {
	position: relative;
	top: 0;
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: var(--lgf-trait) solid var(--lgf-bordure);
	border-radius: var(--lgf-rayon-lg);
	background: var(--lgf-blanc);
	box-shadow: var(--lgf-ombre-carte);
	transition: box-shadow var(--lgf-duree-base) var(--lgf-courbe), transform var(--lgf-duree-base) var(--lgf-courbe), border-color var(--lgf-duree-base) var(--lgf-courbe);
}
body .wp-grid-builder .wpgb-card:hover .wpgb-card-inner {
	top: 0;
	border-color: transparent;
	box-shadow: var(--lgf-ombre-survol);
	transform: translateY(-4px);
}
body .wp-grid-builder .wpgb-card .wpgb-card-content {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 0;
	background: transparent;
}
body .wp-grid-builder .wpgb-card .wpgb-card-body {
	flex: 1 1 auto;
	padding: 0;
	background: transparent;
}
body .wp-grid-builder .wpgb-card .wpgb-card-footer {
	padding: 0;
	border: 0;
	background: transparent;
}
body .wp-grid-builder .wpgb-card .wpgb-block-1 {
	position: static;
}
/* Icônes Lucide : WP Grid Builder impose « svg { width: 100%; height: 100% } » dans les blocs */
body .wp-grid-builder .wpgb-card [class*="wpgb-block-"] svg.lgf-icone {
	width: 20px;
	height: 20px;
	max-width: none;
}
body .wp-grid-builder .wpgb-card [class*="wpgb-block-"] :is(svg.lgf-icone--16, .lgf-badge svg.lgf-icone) {
	width: 16px;
	height: 16px;
}
/* La réinitialisation de WP Grid Builder (« .wpgb-card span { color: inherit } ») écrase la couleur des badges : on la rétablit */
body .wp-grid-builder .wpgb-card .lgf-badge {
	background: var(--lgf-badge-fond, var(--lgf-fond));
	color: var(--lgf-badge-texte, var(--lgf-texte));
	display: inline-flex;
	align-items: center;
	gap: var(--lgf-espace-1);
	padding: 2px var(--lgf-espace-2);
	border-radius: var(--lgf-rayon-pilule);
	font-family: var(--font-texte);
	font-size: var(--lgf-etiquette-taille);
	line-height: var(--lgf-etiquette-interligne);
	font-weight: var(--lgf-etiquette-graisse);
	white-space: nowrap;
}

/* ---------- Carte établissement, structure, offre (carte 8 : [carte-entete] + [carte-pied]) ---------- */
body .wp-grid-builder .wpgb-card .custom-card-header {
	position: relative;
	z-index: 0;
	height: 152px;
	overflow: hidden;
	background-color: var(--lgf-bleu-50);
	background-size: cover;
	background-position: center;
}
/* Copie de la photo pour le zoom au survol (la photo est le fond de l'en-tête) */
body .wp-grid-builder .wpgb-card .custom-card-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: inherit;
	transition: transform var(--lgf-duree-lente) var(--lgf-courbe);
}
body .wp-grid-builder .wpgb-card:hover .custom-card-header::before {
	transform: scale(1.06);
}
body .wp-grid-builder .wpgb-card .custom-card-header::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(to top, color-mix(in srgb, var(--lgf-bleu-900) 45%, transparent), transparent 55%);
}
/* Sans photo : fond de marque, grand hexagone en contour turquoise et petit hexagone jaune */
body .wp-grid-builder .wpgb-card .custom-card-header.is-sans-photo {
	/* Couleur de fond en plus du dégradé : le chargement différé d'Elementor retire les images de fond (dégradés compris) hors écran */
	background-color: var(--lgf-bleu-700);
	background-image: linear-gradient(135deg, var(--lgf-bleu-500), var(--lgf-bleu-900));
}
body .wp-grid-builder .wpgb-card .custom-card-header.is-sans-photo::before {
	inset: auto -48px -72px auto;
	width: 220px;
	height: 220px;
	background: var(--lgf-turquoise-500);
	-webkit-mask: url("../img/motifs/hexagone-contour.svg") center / contain no-repeat;
	mask: url("../img/motifs/hexagone-contour.svg") center / contain no-repeat;
	opacity: 0.55;
}
body .wp-grid-builder .wpgb-card:hover .custom-card-header.is-sans-photo::before {
	transform: rotate(30deg);
}
body .wp-grid-builder .wpgb-card .custom-card-header.is-sans-photo::after {
	inset: auto 30% 36px auto;
	width: 28px;
	height: 28px;
	background: var(--lgf-jaune-400);
	-webkit-mask: url("../img/motifs/hexagone.svg") center / contain no-repeat;
	mask: url("../img/motifs/hexagone.svg") center / contain no-repeat;
}
body .wp-grid-builder .wpgb-card .custom-card-header .lgf-badge {
	position: absolute;
	top: var(--lgf-espace-3);
	box-shadow: var(--lgf-ombre-md);
}
body .wp-grid-builder .wpgb-card .custom-card-header .remise-carte,
body .wp-grid-builder .wpgb-card .custom-card-header .limite-carte {
	left: var(--lgf-espace-3);
	max-width: calc(100% - 140px);
	overflow: hidden;
	text-overflow: ellipsis;
}
body .wp-grid-builder .wpgb-card .custom-card-header .une-carte {
	right: var(--lgf-espace-3);
}
/* Badge seul dans l'en-tête (remise sans « À la une », date limite ou « Candidatures fermées » d'une offre) :
   il n'a pas à laisser la place du badge de droite et prend toute la largeur, marges déduites */
body .wp-grid-builder .wpgb-card .custom-card-header :is(.remise-carte, .limite-carte):only-child {
	max-width: calc(100% - 2 * var(--lgf-espace-3));
}
body .wp-grid-builder .wpgb-card .custom-card-content {
	display: flex;
	flex-direction: column;
	gap: var(--lgf-espace-3);
	padding: 0 var(--lgf-espace-5) var(--lgf-espace-3);
}
body .wp-grid-builder .wpgb-card .custom-card-logo {
	position: relative;
	z-index: 1;
	width: 64px;
	height: 64px;
	margin: -32px 0 0;
	padding: var(--lgf-espace-1);
	box-sizing: border-box;
	border: var(--lgf-trait) solid var(--lgf-bordure);
	border-radius: var(--lgf-rayon-md);
	background: var(--lgf-blanc);
	box-shadow: var(--lgf-ombre-md);
	overflow: hidden;
}
body .wp-grid-builder .wpgb-card .custom-card-logo :is(a, picture) {
	display: block;
	width: 100%;
	height: 100%;
}
body .wp-grid-builder .wpgb-card .custom-card-logo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}
body .wp-grid-builder .wpgb-card .custom-card-name,
body .wp-grid-builder .wpgb-card .custom-card-name a {
	margin: 0;
	font-family: var(--font-titres);
	font-size: 18px;
	line-height: 24px;
	font-weight: var(--lgf-h3-graisse);
	color: var(--lgf-encre);
	text-decoration: none;
}
body .wp-grid-builder .wpgb-card .custom-card-name a {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	transition: color var(--lgf-duree-rapide) var(--lgf-courbe);
}
body .wp-grid-builder .wpgb-card:hover .custom-card-name a {
	color: var(--lgf-bleu-500);
}
/* Le lien du nom couvre toute la carte */
body .wp-grid-builder .wpgb-card .custom-card-name a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
body .wp-grid-builder .wpgb-card .custom-card-main {
	display: flex;
	flex-direction: column;
	gap: var(--lgf-espace-2);
}
body .wp-grid-builder .wpgb-card .lgf-carte__badges {
	display: flex;
	flex-wrap: wrap;
	gap: var(--lgf-espace-1);
}
/* Pied : lieu et type à gauche, flèche ronde à droite */
body .wp-grid-builder .wpgb-card .wpgb-card-footer [class*="wpgb-block-"] {
	padding: 0;
}
body .wp-grid-builder .wpgb-card .custom-card-pied {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--lgf-espace-3);
	margin: 0 var(--lgf-espace-5);
	padding: var(--lgf-espace-3) 0 var(--lgf-espace-4);
	border-top: var(--lgf-trait) solid var(--lgf-bordure);
}
body .wp-grid-builder .wpgb-card .custom-card-meta {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}
body .wp-grid-builder .wpgb-card .custom-card-meta li {
	display: flex;
	align-items: flex-start;
	gap: var(--lgf-espace-1);
	min-width: 0;
	margin: 0;
	font-family: var(--font-texte);
	font-size: var(--lgf-petit-taille);
	line-height: var(--lgf-petit-interligne);
	color: var(--lgf-texte-discret);
}
body .wp-grid-builder .wpgb-card .custom-card-meta li.custom-card-localite {
	order: -1;
	font-weight: var(--lgf-corps-fort-graisse);
	color: var(--lgf-texte);
}
body .wp-grid-builder .wpgb-card .custom-card-meta li.custom-card-localite svg {
	flex: none;
	margin-top: 2px;
	color: var(--lgf-corail-500);
}
body .wp-grid-builder .wpgb-card .custom-card-meta a {
	position: relative;
	z-index: 2;
	display: -webkit-box;
	overflow: hidden;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	white-space: normal;
	font-family: var(--font-texte);
	font-size: var(--lgf-petit-taille);
	line-height: var(--lgf-petit-interligne);
	color: inherit;
	text-decoration: none;
}
body .wp-grid-builder .wpgb-card .custom-card-meta a:hover {
	color: var(--lgf-bleu-500);
	text-decoration: underline;
}
body .wp-grid-builder .wpgb-card .custom-card-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	flex: none;
	border-radius: 50%;
	background: var(--lgf-bleu-50);
	color: var(--lgf-bleu-500);
	transition: background-color var(--lgf-duree-base) var(--lgf-courbe), color var(--lgf-duree-base) var(--lgf-courbe), transform var(--lgf-duree-base) var(--lgf-courbe);
}
body .wp-grid-builder .wpgb-card .custom-card-cta::before {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url("../img/motifs/fleche.svg") center / contain no-repeat;
	mask: url("../img/motifs/fleche.svg") center / contain no-repeat;
}
body .wp-grid-builder .wpgb-card:hover .custom-card-cta {
	background: var(--lgf-corail-600);
	color: var(--lgf-blanc);
	transform: translateX(2px);
}
/* Mise à la une : liseré jaune */
body .wp-grid-builder .wpgb-card.a-la-une .wpgb-card-inner {
	border-color: var(--lgf-jaune-400);
	box-shadow: 0 0 0 1px var(--lgf-jaune-400), var(--lgf-ombre-carte);
}
body .wp-grid-builder .wpgb-card.a-la-une:hover .wpgb-card-inner {
	box-shadow: 0 0 0 1px var(--lgf-jaune-400), var(--lgf-ombre-survol);
}
body .wp-grid-builder .wpgb-card .admin-score {
	position: absolute;
	right: var(--lgf-espace-2);
	bottom: var(--lgf-espace-2);
	padding: 2px var(--lgf-espace-2);
	border-radius: var(--lgf-rayon-xs);
	background: var(--lgf-blanc);
	color: var(--lgf-rouge-600);
	font-size: var(--lgf-petit-taille);
	font-weight: var(--lgf-corps-fort-graisse);
}
/* Domaines d'une structure (carte 8, type structure) */
body .wp-grid-builder .wpgb-card .custom-card-main .elementor-icon-list-items {
	display: flex;
	flex-wrap: wrap;
	gap: var(--lgf-espace-1);
	margin: 0;
	padding: 0;
	list-style: none;
}
body .wp-grid-builder .wpgb-card .custom-card-domaine {
	padding: 2px var(--lgf-espace-2);
	border-radius: var(--lgf-rayon-pilule);
	background: var(--lgf-bleu-50);
	color: var(--lgf-bleu-500);
	font-size: var(--lgf-etiquette-taille);
	line-height: var(--lgf-etiquette-interligne);
	font-weight: var(--lgf-etiquette-graisse);
}

/* ---------- Carte article et témoignage (carte 26) ---------- */
body .wp-grid-builder .wpgb-card-26 .wpgb-card-media {
	position: relative;
	overflow: hidden;
}
body .wp-grid-builder .wpgb-card-26 .wpgb-card-media-thumbnail > a > div,
body .wp-grid-builder .wpgb-card-26 .wpgb-card-media-thumbnail img {
	transition: transform var(--lgf-duree-lente) var(--lgf-courbe);
}
body .wp-grid-builder .wpgb-card-26:hover .wpgb-card-media-thumbnail > a > div,
body .wp-grid-builder .wpgb-card-26:hover .wpgb-card-media-thumbnail img {
	transform: scale(1.06);
}
body .wp-grid-builder .wpgb-card-26 .wpgb-card-media-overlay {
	background: linear-gradient(to top, color-mix(in srgb, var(--lgf-bleu-900) 40%, transparent), transparent 60%);
}
body .wp-grid-builder .wpgb-card-26 .wpgb-card-media-content-top {
	padding: var(--lgf-espace-3);
}
body .wp-grid-builder .wpgb-card-26 .wpgb-block-3 {
	margin: 0;
	padding: 0;
	font-size: var(--lgf-etiquette-taille);
	line-height: var(--lgf-etiquette-interligne);
}
body .wp-grid-builder .wpgb-card-26 .wpgb-block-3 .wpgb-block-term {
	display: inline-flex;
	margin: 0 var(--lgf-espace-1) var(--lgf-espace-1) 0;
	padding: 2px var(--lgf-espace-2);
	border-radius: var(--lgf-rayon-pilule);
	background: var(--lgf-blanc);
	color: var(--lgf-encre);
	font-family: var(--font-texte);
	font-weight: var(--lgf-etiquette-graisse);
	text-transform: none;
	box-shadow: var(--lgf-ombre-md);
}
/* Bouton de lecture des vidéos : rond blanc, triangle corail */
body .wp-grid-builder .wpgb-card-26 .wpgb-block-5 {
	width: 56px;
	height: 56px;
	padding: 18px 16px 18px 20px;
	box-sizing: border-box;
	border-radius: 50%;
	background: var(--lgf-blanc);
	color: var(--lgf-corail-600);
	box-shadow: var(--lgf-ombre-survol);
	transition: transform var(--lgf-duree-base) var(--lgf-courbe), background-color var(--lgf-duree-base) var(--lgf-courbe), color var(--lgf-duree-base) var(--lgf-courbe);
}
body .wp-grid-builder .wpgb-card-26:hover .wpgb-block-5 {
	background: var(--lgf-corail-600);
	color: var(--lgf-blanc);
	transform: scale(1.08);
}
/* Avatar de l'auteur (logo du site) : masqué, il doublait le logo sous la photo */
body .wp-grid-builder .wpgb-card-26 .wpgb-block-6 {
	display: none;
}
body .wp-grid-builder .wpgb-card-26 .wpgb-card-body {
	display: flex;
	flex-direction: column;
	gap: var(--lgf-espace-2);
	padding: var(--lgf-espace-4) var(--lgf-espace-5) var(--lgf-espace-2);
}
body .wp-grid-builder .wpgb-card-26 .wpgb-card-body > [class*="wpgb-block-"]:not(.wpgb-block-4):not(.wpgb-block-6) {
	margin: 0;
	font-family: var(--font-texte);
	font-size: var(--lgf-petit-taille);
	line-height: var(--lgf-petit-interligne);
	color: var(--lgf-texte-discret);
}
body .wp-grid-builder .wpgb-card-26 .wpgb-block-4,
body .wp-grid-builder .wpgb-card-26 .wpgb-block-4 a {
	margin: 0;
	font-family: var(--font-titres);
	font-size: 18px;
	line-height: 24px;
	font-weight: var(--lgf-h3-graisse);
	color: var(--lgf-encre);
	text-decoration: none;
}
body .wp-grid-builder .wpgb-card-26 .wpgb-block-4 a {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	transition: color var(--lgf-duree-rapide) var(--lgf-courbe);
}
body .wp-grid-builder .wpgb-card-26:hover .wpgb-block-4 a {
	color: var(--lgf-bleu-500);
}
body .wp-grid-builder .wpgb-card-26 .wpgb-block-4 a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
body .wp-grid-builder .wpgb-card-26 .wpgb-card-footer {
	padding: 0 var(--lgf-espace-5) var(--lgf-espace-4);
}
body .wp-grid-builder .wpgb-card-26 .wpgb-card-footer .wpgb-block-1 {
	display: inline-flex;
	align-items: center;
	gap: var(--lgf-espace-2);
	margin: 0;
	padding: 0;
	background: transparent;
	font-family: var(--font-texte);
	font-size: var(--lgf-corps-taille);
	line-height: var(--lgf-corps-interligne);
	font-weight: var(--lgf-corps-fort-graisse);
	text-transform: none;
	color: var(--lgf-corail-600);
}
body .wp-grid-builder .wpgb-card-26 .wpgb-card-footer .wpgb-block-1::after {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url("../img/motifs/fleche.svg") center / contain no-repeat;
	mask: url("../img/motifs/fleche.svg") center / contain no-repeat;
	transition: transform var(--lgf-duree-base) var(--lgf-courbe);
}
body .wp-grid-builder .wpgb-card-26:hover .wpgb-card-footer .wpgb-block-1::after {
	transform: translateX(4px);
}

/* ---------- Carte domaine (carte 29) : photo, voile de couleur, titre en bas ---------- */
body .wp-grid-builder .wpgb-card-29 .wpgb-card-inner {
	border: 0;
}
body .wp-grid-builder .wpgb-card-29 .wpgb-card-media {
	position: relative;
	height: 100%;
	overflow: hidden;
}
body .wp-grid-builder .wpgb-card-29 .wpgb-card-media-thumbnail > a > div,
body .wp-grid-builder .wpgb-card-29 .wpgb-card-media-thumbnail img {
	transition: transform var(--lgf-duree-lente) var(--lgf-courbe);
}
body .wp-grid-builder .wpgb-card-29:hover .wpgb-card-media-thumbnail > a > div,
body .wp-grid-builder .wpgb-card-29:hover .wpgb-card-media-thumbnail img {
	transform: scale(1.08);
}
body .wp-grid-builder .wpgb-card-29 .wpgb-card-media-overlay {
	opacity: 1;
	background: linear-gradient(to top, var(--lgf-bleu-900) 0%, color-mix(in srgb, var(--lgf-bleu-900) 55%, transparent) 55%, color-mix(in srgb, var(--lgf-bleu-900) 15%, transparent) 100%);
	transition: opacity var(--lgf-duree-base) var(--lgf-courbe);
}
body .wp-grid-builder .wpgb-card-29:nth-child(4n + 2) .wpgb-card-media-overlay {
	background: linear-gradient(to top, var(--lgf-corail-700) 0%, color-mix(in srgb, var(--lgf-corail-700) 55%, transparent) 55%, color-mix(in srgb, var(--lgf-corail-700) 15%, transparent) 100%);
}
body .wp-grid-builder .wpgb-card-29:nth-child(4n + 3) .wpgb-card-media-overlay {
	background: linear-gradient(to top, var(--lgf-turquoise-700) 0%, color-mix(in srgb, var(--lgf-turquoise-700) 55%, transparent) 55%, color-mix(in srgb, var(--lgf-turquoise-700) 15%, transparent) 100%);
}
body .wp-grid-builder .wpgb-card-29:nth-child(4n + 4) .wpgb-card-media-overlay {
	background: linear-gradient(to top, var(--lgf-bleu-700) 0%, color-mix(in srgb, var(--lgf-bleu-700) 55%, transparent) 55%, color-mix(in srgb, var(--lgf-bleu-700) 15%, transparent) 100%);
}
body .wp-grid-builder .wpgb-card-29 .wpgb-card-media-content {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	padding: var(--lgf-espace-5);
}
body .wp-grid-builder .wpgb-card-29 .wpgb-card-media-content-center {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--lgf-espace-2);
	width: 100%;
	text-align: left;
}
body .wp-grid-builder .wpgb-card-29 .wpgb-block-2 {
	margin: 0;
	padding: 0;
	font-family: var(--font-titres);
	font-size: var(--lgf-h3-taille);
	line-height: var(--lgf-h3-interligne);
	font-weight: var(--lgf-h3-graisse);
	color: var(--lgf-blanc);
	text-align: left;
}
body .wp-grid-builder .wpgb-card-29 .wpgb-block-4 {
	display: inline-flex;
	align-items: center;
	gap: var(--lgf-espace-2);
	margin: 0;
	padding: 2px var(--lgf-espace-3);
	border-radius: var(--lgf-rayon-pilule);
	background: var(--lgf-blanc);
	color: var(--lgf-encre);
	font-family: var(--font-texte);
	font-size: var(--lgf-etiquette-taille);
	line-height: var(--lgf-etiquette-interligne);
	font-weight: var(--lgf-etiquette-graisse);
}
body .wp-grid-builder .wpgb-card-29 .wpgb-block-4::after {
	content: "";
	width: 14px;
	height: 14px;
	background: var(--lgf-corail-600);
	-webkit-mask: url("../img/motifs/fleche.svg") center / contain no-repeat;
	mask: url("../img/motifs/fleche.svg") center / contain no-repeat;
	transition: transform var(--lgf-duree-base) var(--lgf-courbe);
}
body .wp-grid-builder .wpgb-card-29:hover .wpgb-block-4::after {
	transform: translateX(3px);
}
/* Toute la tuile mène au domaine (le lien de la photo ouvrait une visionneuse) */
body .wp-grid-builder .wpgb-card-29 .wpgb-card-layer-link {
	position: absolute;
	inset: 0;
	z-index: 3;
}
body .wp-grid-builder .wpgb-card-29 .wpgb-card-media-thumbnail a {
	pointer-events: none;
}

/* ---------- Carte métier (carte 31) : photo visible, voile dégradé aux couleurs du symbole, titre en bas ---------- */
body .wp-grid-builder .wpgb-card-31 .wpgb-card-inner {
	top: 0;
	border: 0;
	border-radius: var(--lgf-rayon-lg);
	box-shadow: var(--lgf-ombre-carte);
	overflow: hidden;
	transition: transform var(--lgf-duree-base) var(--lgf-courbe), box-shadow var(--lgf-duree-base) var(--lgf-courbe);
}
body .wp-grid-builder .wpgb-card-31:hover .wpgb-card-inner {
	top: 0;
	box-shadow: var(--lgf-ombre-survol);
	transform: translateY(-4px);
}
body .wp-grid-builder .wpgb-card-31 .wpgb-card-media {
	position: relative;
	height: 100%;
	background: var(--lgf-bleu-900);
	overflow: hidden;
}
body .wp-grid-builder .wpgb-card-31 .wpgb-card-media-thumbnail {
	opacity: 1;
	mix-blend-mode: normal;
}
body .wp-grid-builder .wpgb-card-31 .wpgb-card-media-thumbnail > a > div {
	transition: transform var(--lgf-duree-lente) var(--lgf-courbe);
}
body .wp-grid-builder .wpgb-card-31:hover .wpgb-card-media-thumbnail > a > div {
	transform: scale(1.08);
}
body .wp-grid-builder .wpgb-card-31 .wpgb-card-media-thumbnail a {
	pointer-events: none;
}
body .wp-grid-builder .wpgb-card-31 .wpgb-card-media-overlay {
	opacity: 1;
	background: linear-gradient(to top, var(--lgf-bleu-900) 0%, color-mix(in srgb, var(--lgf-bleu-900) 70%, transparent) 50%, color-mix(in srgb, var(--lgf-bleu-900) 10%, transparent) 100%);
}
body .wp-grid-builder .wpgb-card-31:nth-child(4n + 2) .wpgb-card-media-overlay {
	background: linear-gradient(to top, var(--lgf-turquoise-700) 0%, color-mix(in srgb, var(--lgf-turquoise-700) 70%, transparent) 50%, color-mix(in srgb, var(--lgf-turquoise-700) 10%, transparent) 100%);
}
body .wp-grid-builder .wpgb-card-31:nth-child(4n + 3) .wpgb-card-media-overlay {
	background: linear-gradient(to top, var(--lgf-corail-700) 0%, color-mix(in srgb, var(--lgf-corail-700) 70%, transparent) 50%, color-mix(in srgb, var(--lgf-corail-700) 10%, transparent) 100%);
}
body .wp-grid-builder .wpgb-card-31:nth-child(4n + 4) .wpgb-card-media-overlay {
	background: linear-gradient(to top, var(--lgf-bleu-700) 0%, color-mix(in srgb, var(--lgf-bleu-700) 70%, transparent) 50%, color-mix(in srgb, var(--lgf-bleu-700) 10%, transparent) 100%);
}
body .wp-grid-builder .wpgb-card-31 .wpgb-card-media-content {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: stretch;
	padding: var(--lgf-espace-5);
}
body .wp-grid-builder .wpgb-card-31 .wpgb-card-media-content-center {
	flex: none;
	margin: 0;
}
body .wp-grid-builder .wpgb-card-31 .wpgb-card-media-content-center {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--lgf-espace-1);
	width: 100%;
	text-align: left;
}
body .wp-grid-builder .wpgb-card-31 .wpgb-block-1,
body .wp-grid-builder .wpgb-card-31 .wpgb-block-1 h3 {
	margin: 0;
	font-family: var(--font-titres);
	font-size: var(--lgf-h3-taille);
	line-height: var(--lgf-h3-interligne);
	font-weight: var(--lgf-h3-graisse);
	color: var(--lgf-blanc);
	text-align: left;
	text-decoration: none;
}
body .wp-grid-builder .wpgb-card-31 .wpgb-block-2 {
	display: -webkit-box;
	overflow: hidden;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	font-family: var(--font-texte);
	font-size: var(--lgf-petit-taille);
	line-height: var(--lgf-petit-interligne);
	color: var(--lgf-bleu-50);
	text-align: left;
}
body .wp-grid-builder .wpgb-card-31 .wpgb-card-layer-link {
	position: absolute;
	inset: 0;
	z-index: 3;
}

/* ---------- Carrousels : flèches rondes et points de pagination ---------- */
body .wp-grid-builder .wpgb-sidebar {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 var(--lgf-espace-2);
}
body .wp-grid-builder .wpgb-sidebar:empty {
	display: none;
}
body .wp-grid-builder :is(.wpgb-prev-button, .wpgb-next-button) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 14px;
	box-sizing: border-box;
	border: var(--lgf-trait) solid var(--lgf-bordure);
	border-radius: 50%;
	background: var(--lgf-blanc);
	color: var(--lgf-bleu-500);
	box-shadow: var(--lgf-ombre-carte);
	cursor: pointer;
	transition: background-color var(--lgf-duree-rapide) var(--lgf-courbe), color var(--lgf-duree-rapide) var(--lgf-courbe), transform var(--lgf-duree-base) var(--lgf-courbe);
}
body .wp-grid-builder :is(.wpgb-prev-button, .wpgb-next-button):hover:not([disabled]) {
	background: var(--lgf-bleu-500);
	border-color: var(--lgf-bleu-500);
	color: var(--lgf-blanc);
	transform: scale(1.06);
}
body .wp-grid-builder :is(.wpgb-prev-button, .wpgb-next-button)[disabled] {
	opacity: 0.35;
	cursor: default;
}
body .wp-grid-builder :is(.wpgb-prev-button, .wpgb-next-button) svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}
body .wp-grid-builder .wpgb-page-dots {
	display: flex;
	gap: var(--lgf-espace-2);
	margin: var(--lgf-espace-4) 0 0;
	padding: 0;
}
body .wp-grid-builder .wpgb-page-dots .wpgb-dot {
	width: 10px;
	height: 10px;
	margin: 0;
	border-radius: var(--lgf-rayon-pilule);
	background: var(--lgf-bordure-champ);
	opacity: 1;
	cursor: pointer;
	transition: width var(--lgf-duree-base) var(--lgf-courbe), background-color var(--lgf-duree-base) var(--lgf-courbe);
}
body .wp-grid-builder .wpgb-page-dots .wpgb-dot::before {
	display: none;
}
body .wp-grid-builder .wpgb-page-dots .wpgb-dot[aria-selected="true"] {
	width: 28px;
	background: var(--lgf-corail-500);
}
/* Place pour l'ombre et le soulèvement des cartes dans un carrousel */
body .wp-grid-builder .wpgb-carousel {
	padding: var(--lgf-espace-2) 0 var(--lgf-espace-5);
}

/* Flèches des carrousels : hors des cartes sur ordinateur (zones gauche/droite de la grille 5),
   retirées sur mobile où l'on fait défiler du doigt et où les points suffisent */
body .wp-grid-builder .wpgb-area-left,
body .wp-grid-builder .wpgb-area-right {
	position: absolute;
	top: 50%;
	z-index: 5;
	transform: translateY(-50%);
}
body .wp-grid-builder .wpgb-area-left {
	left: -24px;
}
body .wp-grid-builder .wpgb-area-right {
	right: -24px;
}
@media (max-width: 767px) {
	body .wp-grid-builder .wpgb-sidebar:has(:is(.wpgb-prev-button, .wpgb-next-button)),
	body .wp-grid-builder :is(.wpgb-area-left, .wpgb-area-right) {
		display: none !important;
	}
}
/* Articles sans vidéo : pas de bouton « + » (visionneuse d'image) ; toute la carte mène à l'article */
body .wp-grid-builder .wpgb-card-26:not([data-format="video"]) .wpgb-block-5 {
	display: none;
}
body .wp-grid-builder .wpgb-card-26:not([data-format="video"]) .wpgb-card-media-thumbnail a {
	pointer-events: none;
}
body .wp-grid-builder .wpgb-card-26[data-format="video"] .wpgb-card-media-content-center {
	position: relative;
	z-index: 2;
}
