/*
 * Inflexsys — Fondations RGAA 
 * Compléments d'accessibilité non couverts par theme.json.
 * RGAA 4.1
 */

html {
	box-sizing: border-box;
}

*,
*::before,
*::after {
	box-sizing: inherit;
}

/* Neutralise le débordement horizontal fantôme dû aux éléments en 100vw */
body {
	overflow-x: clip;
}

/* ----------------------------------------------------------------------------
 * Listes : retrait d'indentation homogène.
 * Remplace le padding-inline-start par défaut du navigateur (~40px) par un
 * retrait sobre. Sélecteur d'élément nu (spécificité minimale) : toute règle
 * de classe (navigation, listes en pastilles…) reste prioritaire.
 * -------------------------------------------------------------------------- */
ul,
ol {
	padding-inline-start: 1.5rem;
}

:root {
	/* Gap / spacings */
	--Gap-1:  var(--wp--preset--spacing--gap-1);
	--Gap-2:  var(--wp--preset--spacing--gap-2);
	--Gap-3:  var(--wp--preset--spacing--gap-3);
	--Gap-4:  var(--wp--preset--spacing--gap-4);
	--Gap-5:  var(--wp--preset--spacing--gap-5);
	--Gap-6:  var(--wp--preset--spacing--gap-6);
	--Gap-7:  var(--wp--preset--spacing--gap-7);
	--Gap-8:  var(--wp--preset--spacing--gap-8);
	--Gap-9:  var(--wp--preset--spacing--gap-9);
	--Gap-10: var(--wp--preset--spacing--gap-10);
	--Gap-11: var(--wp--preset--spacing--gap-11);
	--Gap-12: var(--wp--preset--spacing--gap-12);

	/* Corner Radius */
	--xsmall: var(--wp--custom--radius--xsmall);
	--small:  var(--wp--custom--radius--small);
	--medium: var(--wp--custom--radius--medium);
	--large:  var(--wp--custom--radius--large);
	--xlarge: var(--wp--custom--radius--xlarge);

	/* Sizes Sections */
	--Sizes-Sections-Desktop-gap:                var(--wp--custom--sizes-sections--desktop-gap);
	--Sizes-Sections-Desktop-container:          var(--wp--custom--sizes-sections--desktop-container);
	--Sizes-Sections-Width-Desktop:              var(--wp--custom--sizes-sections--width-desktop);
	--Sizes-Sections-Width-Mobile:               var(--wp--custom--sizes-sections--width-mobile);
	--Sizes-Sections-Width-Desktop-content-article: var(--wp--custom--sizes-sections--width-desktop-content-article);
	--Sizes-Sections-Padding-Desktop-left-right: var(--wp--custom--sizes-sections--padding-desktop-left-right);
	--Sizes-Sections-Padding-Desktop-top-bottom: var(--wp--custom--sizes-sections--padding-desktop-top-bottom);
	--Sizes-Sections-Padding-Mobile-left-right:  var(--wp--custom--sizes-sections--padding-mobile-left-right);
	--Sizes-Sections-Padding-Mobile-top-bottom:  var(--wp--custom--sizes-sections--padding-mobile-top-bottom);

	/* Sizes */
	--Sizes-Desktop-Card-width: var(--wp--custom--sizes--desktop-card-width);
	--Sizes-Mobile-Card-width:  var(--wp--custom--sizes--mobile-card-width);
}

/* ----------------------------------------------------------------------------
 * 1. Focus visible au clavier — RGAA 10.7
 * Indicateur de focus net et contrasté sur tous les éléments interactifs.
 * -------------------------------------------------------------------------- */
:where(a, button, input, select, textarea, summary, [tabindex], .wp-block-button__link):focus-visible {
	outline: var(--wp--custom--focus--width, 3px) solid var(--wp--custom--focus--color, #171441);
	outline-offset: var(--wp--custom--focus--offset, 2px);
	border-radius: 2px;
}

/* On ne supprime jamais l'outline sans le remplacer. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus:not(:focus-visible) {
	outline: none;
}

/* Sur fonds sombres (sections bleu 900 / dégradé), focus clair pour rester visible. */
.has-blue-900-background-color :focus-visible,
.has-background-blue-gradient-background :focus-visible {
	outline-color: #FBFBFB;
}

/* ----------------------------------------------------------------------------
 * 2. Lien d'évitement (skip link) — RGAA 12.7
 * -------------------------------------------------------------------------- */
.skip-link.screen-reader-text {
	background-color: #FBFBFB;
	color: #171441;
	border: 2px solid #171441;
	border-radius: 8px;
	padding: 0.75rem 1.25rem;
	font-family: var(--wp--preset--font-family--body, sans-serif);
	font-weight: 700;
	text-decoration: none;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	word-wrap: normal !important;
}

/* Devient visible à la prise de focus clavier. */
.screen-reader-text:focus {
	clip: auto !important;
	clip-path: none;
	height: auto;
	width: auto;
	margin: 0;
	padding: 1rem 1.5rem;
	display: block;
	top: 1rem;
	left: 1rem;
	z-index: 100000;
	position: fixed !important;
}

/* ----------------------------------------------------------------------------
 * 2 bis. Défilement en douceur pour les ancres internes (#article-content, etc.)
 * -------------------------------------------------------------------------- */
html {
	scroll-behavior: smooth;
}

/* ----------------------------------------------------------------------------
 * 2 ter. Smooth scroll à inertie — Lenis (piloté en JS)
 * -------------------------------------------------------------------------- */
html.lenis,
html.lenis body {
	height: auto;
}

/* Anti double-lissage : Lenis écrit la position de scroll à chaque frame ; un
 * `scroll-behavior: smooth` natif (§2 bis) re-lisserait ces écritures  */
html.lenis {
	scroll-behavior: auto;
}

.lenis.lenis-stopped {
	overflow: clip;
}

/* Zones à défilement interne (menu déroulant, modale) : y poser l'attribut
 * data-lenis-prevent pour que Lenis leur rende la main. */
.lenis [data-lenis-prevent] {
	overscroll-behavior: contain;
}

.lenis.lenis-smooth iframe {
	pointer-events: none;
}

/* ----------------------------------------------------------------------------
 * 3. Mouvement réduit — RGAA 13.8 / préférence système
 * -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
}

/* ----------------------------------------------------------------------------
 * 4. Cibles tactiles & confort de lecture
 * RGAA bonnes pratiques : zones cliquables ≥ 24px, texte redimensionnable.
 * -------------------------------------------------------------------------- */
.wp-block-button__link,
.wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* Bouton "Contour" (style de bloc Inflexsys – Contour). */
.wp-block-button.is-style-inflexsys-outline .wp-block-button__link {
	background-color: transparent;
	color: var(--wp--preset--color--electric-900);
	border: 2px solid var(--wp--preset--color--electric-900);
}
.wp-block-button.is-style-inflexsys-outline .wp-block-button__link:hover,
.wp-block-button.is-style-inflexsys-outline .wp-block-button__link:focus {
	background-color: var(--wp--preset--color--electric-900);
	color: var(--wp--preset--color--white);
}

/* Bouton plein (primaire) : survol du design system → Electric Blue 700.
 * Cible les boutons pleins uniquement (les variantes Contour / Translucide ont
 * leur propre survol). :focus-visible pour la parité clavier. */
.wp-block-button:not(.is-style-inflexsys-outline):not(.is-style-inflexsys-outline-light) .wp-block-button__link {
	transition: background-color 0.2s ease;
}
.wp-block-button:not(.is-style-inflexsys-outline):not(.is-style-inflexsys-outline-light):not(.is-style-inflexsys-translucide):not(.is-style-inflexsys-primary-white) .wp-block-button__link:hover,
.wp-block-button:not(.is-style-inflexsys-outline):not(.is-style-inflexsys-outline-light):not(.is-style-inflexsys-translucide):not(.is-style-inflexsys-primary-white) .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--electric-700) !important;
}

/* ----------------------------------------------------------------------------
 * 5. Champs de formulaire lisibles et contrastés — RGAA 11
 * -------------------------------------------------------------------------- */
input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
select,
textarea {
	border: 1px solid var(--wp--preset--color--blue-700);
	border-radius: 8px;
	padding: 0.625rem 0.875rem;
	font-size: 1rem; 
	color: var(--wp--preset--color--blue-900);
	background-color: var(--wp--preset--color--white);
}

::placeholder {
	color: var(--wp--preset--color--blue-700);
	opacity: 1;
}

#ifx-nl-email::placeholder {
	color: var(--wp--preset--color--blue-500);
}

/* Indication d'erreur non basée uniquement sur la couleur — RGAA 3.1 */
.has-error input,
input[aria-invalid="true"] {
	border-color: var(--wp--preset--color--error);
	border-width: 2px;
}

/* ----------------------------------------------------------------------------
 * 6. Utilitaire — séparateur décoratif au-dessus d'une section
 * Classe générique à poser sur une section (Avancé → Classe CSS additionnelle).
 * Trait 2px, largeur max 1440px, CENTRÉ SUR LA PAGE et non sur la section :
 * left:50% + translateX(-50%) prend le centre de la section, qui — étant
 * centrée — coïncide avec le centre de la page. Fonctionne quelle que soit la
 * largeur de la section (1200 / 1300 / 1440). Décoratif → pseudo-élément, donc
 * jamais exposé aux technologies d'assistance (mieux que <hr>). Gap = 0 :
 * l'espacement vient des padding/margin entre sections.
 * -------------------------------------------------------------------------- */
.ifx-section-separator, .ifx-section-separator-bottom,
/* Réalisation : séparateur bas par défaut sur chaque enfant direct du
 * post-content SAUF le dernier. .ifx-no-separator = opt-out ponctuel.
 * Réutilise le dégradé défini ci-dessous (aucune duplication). */
.single-realisation .wp-block-post-content > *:not(:last-child):not(.ifx-no-separator) {
	position: relative;
}

.ifx-section-separator::before, .ifx-section-separator-bottom::after,
.single-realisation .wp-block-post-content > *:not(:last-child):not(.ifx-no-separator)::after {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	height: 2px;
    background: radial-gradient(
		100% 100% at 50% 50%, 
		var(--wp--preset--color--electric-900, #2457fd) 0%, 
		var(--wp--preset--color--white, #fbfbfb) 50%
		);
	pointer-events: none;
}

.ifx-section-separator-bottom::after,
.single-realisation .wp-block-post-content > *:not(:last-child):not(.ifx-no-separator)::after {
	top: auto;
	bottom:0;
}

/* Cas des cartes AVEC fond : leur background remplit jusqu'au bord bas
 * (padding-box), donc le séparateur posé à bottom:0 est collé au fond au
 * lieu de flotter dans l'espace inter-sections. On le descend dans la marge
 * externe pour le centrer dans le gap. Dans ce contexte de layout les marges
 * verticales des sections NE FUSIONNENT PAS : l'écart réel sous la carte =
 * margin-bottom (section-tb) + margin-top du bloc suivant (section-tb) ≈
 * 2 × section-tb, donc le milieu est à -section-tb (entier, pas la moitié).
 * Les cartes SANS fond gardent bottom:0 (le trait tombe dans du vide, aucun
 * bord visible). Spécificité 0-6-1 > 0-4-1 de la règle par défaut, sans
 * !important. */
.single-realisation .wp-block-post-content > .ifx-alt-card:not(.ifx-alt-card--sans-fond):not(:last-child):not(.ifx-no-separator)::after {
	bottom: calc(var(--wp--preset--spacing--section-tb) * -1);
}


/* ----------------------------------------------------------------------------
 * 7. Utilitaires helpers — spacing & mobile
 * Ce que Gutenberg ne sait pas faire nativement : marge/padding par côté que
 * l'on peut surcharger au breakpoint mobile. À poser via Avancé → Classe(s)
 * CSS additionnelle(s). Valeurs = tokens Figma (theme.json), donc synchro.
 *
 * NOMMAGE
 *   Base (tous écrans) :  .ifx-{prop}{côté}-{token}
 *     prop  : m = margin, p = padding
 *     côté  : t = top, b = bottom, l = left, r = right
 *     token : 0 = 0 ; 1..12 = Gap/1..Gap/12 (4,6,8,12,16,24,32,40,48,56,64,72 px)
 *     ex.   : .ifx-mb-8  → margin-bottom: 40px  (Gap/8)
 *             .ifx-pt-6  → padding-top: 24px    (Gap/6)
 *
 *   Surcharge mobile (≤ 781px) : même classe + suffixe -mb  →  .ifx-{prop}{côté}-{token}-mb
 *     ⚠ Le -mb FINAL = "mobile" (à ne pas confondre avec mb = margin-bottom,
 *        qui est au début). Le suffixe mobile est TOUJOURS en dernier.
 *     ex.   : class="ifx-mb-8 ifx-mb-6-mb"  → 40px en desktop, 24px sous 781px
 *
 * Priorité : 1 seule classe (faible spécificité) → bat le blockGap de theme.json
 * (:where(), spécificité 0). En revanche une marge/padding réglée DANS l'UI du
 * bloc sort en style inline et gagnera : si un helper "ne prend pas", vider ce
 * réglage dans l'inspecteur du bloc.
 * -------------------------------------------------------------------------- */

/* --- Base (tous écrans) --- */
.ifx-mt-0{margin-top:0} .ifx-mt-1{margin-top:var(--wp--preset--spacing--gap-1)} .ifx-mt-2{margin-top:var(--wp--preset--spacing--gap-2)} .ifx-mt-3{margin-top:var(--wp--preset--spacing--gap-3)} .ifx-mt-4{margin-top:var(--wp--preset--spacing--gap-4)} .ifx-mt-5{margin-top:var(--wp--preset--spacing--gap-5)} .ifx-mt-6{margin-top:var(--wp--preset--spacing--gap-6)} .ifx-mt-7{margin-top:var(--wp--preset--spacing--gap-7)} .ifx-mt-8{margin-top:var(--wp--preset--spacing--gap-8)} .ifx-mt-9{margin-top:var(--wp--preset--spacing--gap-9)} .ifx-mt-10{margin-top:var(--wp--preset--spacing--gap-10)} .ifx-mt-11{margin-top:var(--wp--preset--spacing--gap-11)} .ifx-mt-12{margin-top:var(--wp--preset--spacing--gap-12)}
.ifx-mb-0{margin-bottom:0} .ifx-mb-1{margin-bottom:var(--wp--preset--spacing--gap-1)} .ifx-mb-2{margin-bottom:var(--wp--preset--spacing--gap-2)} .ifx-mb-3{margin-bottom:var(--wp--preset--spacing--gap-3)} .ifx-mb-4{margin-bottom:var(--wp--preset--spacing--gap-4)} .ifx-mb-5{margin-bottom:var(--wp--preset--spacing--gap-5)} .ifx-mb-6{margin-bottom:var(--wp--preset--spacing--gap-6)} .ifx-mb-7{margin-bottom:var(--wp--preset--spacing--gap-7)} .ifx-mb-8{margin-bottom:var(--wp--preset--spacing--gap-8)} .ifx-mb-9{margin-bottom:var(--wp--preset--spacing--gap-9)} .ifx-mb-10{margin-bottom:var(--wp--preset--spacing--gap-10)} .ifx-mb-11{margin-bottom:var(--wp--preset--spacing--gap-11)} .ifx-mb-12{margin-bottom:var(--wp--preset--spacing--gap-12)}
.ifx-ml-0{margin-left:0} .ifx-ml-1{margin-left:var(--wp--preset--spacing--gap-1)} .ifx-ml-2{margin-left:var(--wp--preset--spacing--gap-2)} .ifx-ml-3{margin-left:var(--wp--preset--spacing--gap-3)} .ifx-ml-4{margin-left:var(--wp--preset--spacing--gap-4)} .ifx-ml-5{margin-left:var(--wp--preset--spacing--gap-5)} .ifx-ml-6{margin-left:var(--wp--preset--spacing--gap-6)} .ifx-ml-7{margin-left:var(--wp--preset--spacing--gap-7)} .ifx-ml-8{margin-left:var(--wp--preset--spacing--gap-8)} .ifx-ml-9{margin-left:var(--wp--preset--spacing--gap-9)} .ifx-ml-10{margin-left:var(--wp--preset--spacing--gap-10)} .ifx-ml-11{margin-left:var(--wp--preset--spacing--gap-11)} .ifx-ml-12{margin-left:var(--wp--preset--spacing--gap-12)}
.ifx-mr-0{margin-right:0} .ifx-mr-1{margin-right:var(--wp--preset--spacing--gap-1)} .ifx-mr-2{margin-right:var(--wp--preset--spacing--gap-2)} .ifx-mr-3{margin-right:var(--wp--preset--spacing--gap-3)} .ifx-mr-4{margin-right:var(--wp--preset--spacing--gap-4)} .ifx-mr-5{margin-right:var(--wp--preset--spacing--gap-5)} .ifx-mr-6{margin-right:var(--wp--preset--spacing--gap-6)} .ifx-mr-7{margin-right:var(--wp--preset--spacing--gap-7)} .ifx-mr-8{margin-right:var(--wp--preset--spacing--gap-8)} .ifx-mr-9{margin-right:var(--wp--preset--spacing--gap-9)} .ifx-mr-10{margin-right:var(--wp--preset--spacing--gap-10)} .ifx-mr-11{margin-right:var(--wp--preset--spacing--gap-11)} .ifx-mr-12{margin-right:var(--wp--preset--spacing--gap-12)}
.ifx-pt-0{padding-top:0} .ifx-pt-1{padding-top:var(--wp--preset--spacing--gap-1)} .ifx-pt-2{padding-top:var(--wp--preset--spacing--gap-2)} .ifx-pt-3{padding-top:var(--wp--preset--spacing--gap-3)} .ifx-pt-4{padding-top:var(--wp--preset--spacing--gap-4)} .ifx-pt-5{padding-top:var(--wp--preset--spacing--gap-5)} .ifx-pt-6{padding-top:var(--wp--preset--spacing--gap-6)} .ifx-pt-7{padding-top:var(--wp--preset--spacing--gap-7)} .ifx-pt-8{padding-top:var(--wp--preset--spacing--gap-8)} .ifx-pt-9{padding-top:var(--wp--preset--spacing--gap-9)} .ifx-pt-10{padding-top:var(--wp--preset--spacing--gap-10)} .ifx-pt-11{padding-top:var(--wp--preset--spacing--gap-11)} .ifx-pt-12{padding-top:var(--wp--preset--spacing--gap-12)}
.ifx-pb-0{padding-bottom:0} .ifx-pb-1{padding-bottom:var(--wp--preset--spacing--gap-1)} .ifx-pb-2{padding-bottom:var(--wp--preset--spacing--gap-2)} .ifx-pb-3{padding-bottom:var(--wp--preset--spacing--gap-3)} .ifx-pb-4{padding-bottom:var(--wp--preset--spacing--gap-4)} .ifx-pb-5{padding-bottom:var(--wp--preset--spacing--gap-5)} .ifx-pb-6{padding-bottom:var(--wp--preset--spacing--gap-6)} .ifx-pb-7{padding-bottom:var(--wp--preset--spacing--gap-7)} .ifx-pb-8{padding-bottom:var(--wp--preset--spacing--gap-8)} .ifx-pb-9{padding-bottom:var(--wp--preset--spacing--gap-9)} .ifx-pb-10{padding-bottom:var(--wp--preset--spacing--gap-10)} .ifx-pb-11{padding-bottom:var(--wp--preset--spacing--gap-11)} .ifx-pb-12{padding-bottom:var(--wp--preset--spacing--gap-12)}
.ifx-pl-0{padding-left:0} .ifx-pl-1{padding-left:var(--wp--preset--spacing--gap-1)} .ifx-pl-2{padding-left:var(--wp--preset--spacing--gap-2)} .ifx-pl-3{padding-left:var(--wp--preset--spacing--gap-3)} .ifx-pl-4{padding-left:var(--wp--preset--spacing--gap-4)} .ifx-pl-5{padding-left:var(--wp--preset--spacing--gap-5)} .ifx-pl-6{padding-left:var(--wp--preset--spacing--gap-6)} .ifx-pl-7{padding-left:var(--wp--preset--spacing--gap-7)} .ifx-pl-8{padding-left:var(--wp--preset--spacing--gap-8)} .ifx-pl-9{padding-left:var(--wp--preset--spacing--gap-9)} .ifx-pl-10{padding-left:var(--wp--preset--spacing--gap-10)} .ifx-pl-11{padding-left:var(--wp--preset--spacing--gap-11)} .ifx-pl-12{padding-left:var(--wp--preset--spacing--gap-12)}
.ifx-pr-0{padding-right:0} .ifx-pr-1{padding-right:var(--wp--preset--spacing--gap-1)} .ifx-pr-2{padding-right:var(--wp--preset--spacing--gap-2)} .ifx-pr-3{padding-right:var(--wp--preset--spacing--gap-3)} .ifx-pr-4{padding-right:var(--wp--preset--spacing--gap-4)} .ifx-pr-5{padding-right:var(--wp--preset--spacing--gap-5)} .ifx-pr-6{padding-right:var(--wp--preset--spacing--gap-6)} .ifx-pr-7{padding-right:var(--wp--preset--spacing--gap-7)} .ifx-pr-8{padding-right:var(--wp--preset--spacing--gap-8)} .ifx-pr-9{padding-right:var(--wp--preset--spacing--gap-9)} .ifx-pr-10{padding-right:var(--wp--preset--spacing--gap-10)} .ifx-pr-11{padding-right:var(--wp--preset--spacing--gap-11)} .ifx-pr-12{padding-right:var(--wp--preset--spacing--gap-12)}

/* --- Surcharge mobile (≤ 781px) --- */
@media (max-width: 781px) {
	.ifx-mt-0-mb { margin-top: 0 !important; } .ifx-mt-1-mb { margin-top: var(--wp--preset--spacing--gap-1) !important; } .ifx-mt-2-mb { margin-top: var(--wp--preset--spacing--gap-2) !important; } .ifx-mt-3-mb { margin-top: var(--wp--preset--spacing--gap-3) !important; } .ifx-mt-4-mb { margin-top: var(--wp--preset--spacing--gap-4) !important; } .ifx-mt-5-mb { margin-top: var(--wp--preset--spacing--gap-5) !important; } .ifx-mt-6-mb { margin-top: var(--wp--preset--spacing--gap-6) !important; } .ifx-mt-7-mb { margin-top: var(--wp--preset--spacing--gap-7) !important; } .ifx-mt-8-mb { margin-top: var(--wp--preset--spacing--gap-8) !important; } .ifx-mt-9-mb { margin-top: var(--wp--preset--spacing--gap-9) !important; } .ifx-mt-10-mb { margin-top: var(--wp--preset--spacing--gap-10) !important; } .ifx-mt-11-mb { margin-top: var(--wp--preset--spacing--gap-11) !important; } .ifx-mt-12-mb { margin-top: var(--wp--preset--spacing--gap-12) !important; }
    .ifx-mb-0-mb { margin-bottom: 0 !important; } .ifx-mb-1-mb { margin-bottom: var(--wp--preset--spacing--gap-1) !important; } .ifx-mb-2-mb { margin-bottom: var(--wp--preset--spacing--gap-2) !important; } .ifx-mb-3-mb { margin-bottom: var(--wp--preset--spacing--gap-3) !important; } .ifx-mb-4-mb { margin-bottom: var(--wp--preset--spacing--gap-4) !important; } .ifx-mb-5-mb { margin-bottom: var(--wp--preset--spacing--gap-5) !important; } .ifx-mb-6-mb { margin-bottom: var(--wp--preset--spacing--gap-6) !important; } .ifx-mb-7-mb { margin-bottom: var(--wp--preset--spacing--gap-7) !important; } .ifx-mb-8-mb { margin-bottom: var(--wp--preset--spacing--gap-8) !important; } .ifx-mb-9-mb { margin-bottom: var(--wp--preset--spacing--gap-9) !important; } .ifx-mb-10-mb { margin-bottom: var(--wp--preset--spacing--gap-10) !important; } .ifx-mb-11-mb { margin-bottom: var(--wp--preset--spacing--gap-11) !important; } .ifx-mb-12-mb { margin-bottom: var(--wp--preset--spacing--gap-12) !important; }
    .ifx-ml-0-mb { margin-left: 0 !important; } .ifx-ml-1-mb { margin-left: var(--wp--preset--spacing--gap-1) !important; } .ifx-ml-2-mb { margin-left: var(--wp--preset--spacing--gap-2) !important; } .ifx-ml-3-mb { margin-left: var(--wp--preset--spacing--gap-3) !important; } .ifx-ml-4-mb { margin-left: var(--wp--preset--spacing--gap-4) !important; } .ifx-ml-5-mb { margin-left: var(--wp--preset--spacing--gap-5) !important; } .ifx-ml-6-mb { margin-left: var(--wp--preset--spacing--gap-6) !important; } .ifx-ml-7-mb { margin-left: var(--wp--preset--spacing--gap-7) !important; } .ifx-ml-8-mb { margin-left: var(--wp--preset--spacing--gap-8) !important; } .ifx-ml-9-mb { margin-left: var(--wp--preset--spacing--gap-9) !important; } .ifx-ml-10-mb { margin-left: var(--wp--preset--spacing--gap-10) !important; } .ifx-ml-11-mb { margin-left: var(--wp--preset--spacing--gap-11) !important; } .ifx-ml-12-mb { margin-left: var(--wp--preset--spacing--gap-12) !important; }
    .ifx-mr-0-mb { margin-right: 0 !important; } .ifx-mr-1-mb { margin-right: var(--wp--preset--spacing--gap-1) !important; } .ifx-mr-2-mb { margin-right: var(--wp--preset--spacing--gap-2) !important; } .ifx-mr-3-mb { margin-right: var(--wp--preset--spacing--gap-3) !important; } .ifx-mr-4-mb { margin-right: var(--wp--preset--spacing--gap-4) !important; } .ifx-mr-5-mb { margin-right: var(--wp--preset--spacing--gap-5) !important; } .ifx-mr-6-mb { margin-right: var(--wp--preset--spacing--gap-6) !important; } .ifx-mr-7-mb { margin-right: var(--wp--preset--spacing--gap-7) !important; } .ifx-mr-8-mb { margin-right: var(--wp--preset--spacing--gap-8) !important; } .ifx-mr-9-mb { margin-right: var(--wp--preset--spacing--gap-9) !important; } .ifx-mr-10-mb { margin-right: var(--wp--preset--spacing--gap-10) !important; } .ifx-mr-11-mb { margin-right: var(--wp--preset--spacing--gap-11) !important; } .ifx-mr-12-mb { margin-right: var(--wp--preset--spacing--gap-12) !important; }

    .ifx-pt-0-mb { padding-top: 0 !important; } .ifx-pt-1-mb { padding-top: var(--wp--preset--spacing--gap-1) !important; } .ifx-pt-2-mb { padding-top: var(--wp--preset--spacing--gap-2) !important; } .ifx-pt-3-mb { padding-top: var(--wp--preset--spacing--gap-3) !important; } .ifx-pt-4-mb { padding-top: var(--wp--preset--spacing--gap-4) !important; } .ifx-pt-5-mb { padding-top: var(--wp--preset--spacing--gap-5) !important; } .ifx-pt-6-mb { padding-top: var(--wp--preset--spacing--gap-6) !important; } .ifx-pt-7-mb { padding-top: var(--wp--preset--spacing--gap-7) !important; } .ifx-pt-8-mb { padding-top: var(--wp--preset--spacing--gap-8) !important; } .ifx-pt-9-mb { padding-top: var(--wp--preset--spacing--gap-9) !important; } .ifx-pt-10-mb { padding-top: var(--wp--preset--spacing--gap-10) !important; } .ifx-pt-11-mb { padding-top: var(--wp--preset--spacing--gap-11) !important; } .ifx-pt-12-mb { padding-top: var(--wp--preset--spacing--gap-12) !important; }
    .ifx-pb-0-mb { padding-bottom: 0 !important; } .ifx-pb-1-mb { padding-bottom: var(--wp--preset--spacing--gap-1) !important; } .ifx-pb-2-mb { padding-bottom: var(--wp--preset--spacing--gap-2) !important; } .ifx-pb-3-mb { padding-bottom: var(--wp--preset--spacing--gap-3) !important; } .ifx-pb-4-mb { padding-bottom: var(--wp--preset--spacing--gap-4) !important; } .ifx-pb-5-mb { padding-bottom: var(--wp--preset--spacing--gap-5) !important; } .ifx-pb-6-mb { padding-bottom: var(--wp--preset--spacing--gap-6) !important; } .ifx-pb-7-mb { padding-bottom: var(--wp--preset--spacing--gap-7) !important; } .ifx-pb-8-mb { padding-bottom: var(--wp--preset--spacing--gap-8) !important; } .ifx-pb-9-mb { padding-bottom: var(--wp--preset--spacing--gap-9) !important; } .ifx-pb-10-mb { padding-bottom: var(--wp--preset--spacing--gap-10) !important; } .ifx-pb-11-mb { padding-bottom: var(--wp--preset--spacing--gap-11) !important; } .ifx-pb-12-mb { padding-bottom: var(--wp--preset--spacing--gap-12) !important; }
    .ifx-pl-0-mb { padding-left: 0 !important; } .ifx-pl-1-mb { padding-left: var(--wp--preset--spacing--gap-1) !important; } .ifx-pl-2-mb { padding-left: var(--wp--preset--spacing--gap-2) !important; } .ifx-pl-3-mb { padding-left: var(--wp--preset--spacing--gap-3) !important; } .ifx-pl-4-mb { padding-left: var(--wp--preset--spacing--gap-4) !important; } .ifx-pl-5-mb { padding-left: var(--wp--preset--spacing--gap-5) !important; } .ifx-pl-6-mb { padding-left: var(--wp--preset--spacing--gap-6) !important; } .ifx-pl-7-mb { padding-left: var(--wp--preset--spacing--gap-7) !important; } .ifx-pl-8-mb { padding-left: var(--wp--preset--spacing--gap-8) !important; } .ifx-pl-9-mb { padding-left: var(--wp--preset--spacing--gap-9) !important; } .ifx-pl-10-mb { padding-left: var(--wp--preset--spacing--gap-10) !important; } .ifx-pl-11-mb { padding-left: var(--wp--preset--spacing--gap-11) !important; } .ifx-pl-12-mb { padding-left: var(--wp--preset--spacing--gap-12) !important; }
    .ifx-pr-0-mb { padding-right: 0 !important; } .ifx-pr-1-mb { padding-right: var(--wp--preset--spacing--gap-1) !important; } .ifx-pr-2-mb { padding-right: var(--wp--preset--spacing--gap-2) !important; } .ifx-pr-3-mb { padding-right: var(--wp--preset--spacing--gap-3) !important; } .ifx-pr-4-mb { padding-right: var(--wp--preset--spacing--gap-4) !important; } .ifx-pr-5-mb { padding-right: var(--wp--preset--spacing--gap-5) !important; } .ifx-pr-6-mb { padding-right: var(--wp--preset--spacing--gap-6) !important; } .ifx-pr-7-mb { padding-right: var(--wp--preset--spacing--gap-7) !important; } .ifx-pr-8-mb { padding-right: var(--wp--preset--spacing--gap-8) !important; } .ifx-pr-9-mb { padding-right: var(--wp--preset--spacing--gap-9) !important; } .ifx-pr-10-mb { padding-right: var(--wp--preset--spacing--gap-10) !important; } .ifx-pr-11-mb { padding-right: var(--wp--preset--spacing--gap-11) !important; } .ifx-pr-12-mb { padding-right: var(--wp--preset--spacing--gap-12) !important; }

    .ifx-gap-0-mb{gap:0!important} .ifx-gap-1-mb{gap:var(--wp--preset--spacing--gap-1)!important} .ifx-gap-2-mb{gap:var(--wp--preset--spacing--gap-2)!important} .ifx-gap-3-mb{gap:var(--wp--preset--spacing--gap-3)!important} .ifx-gap-4-mb{gap:var(--wp--preset--spacing--gap-4)!important} .ifx-gap-5-mb{gap:var(--wp--preset--spacing--gap-5)!important} .ifx-gap-6-mb{gap:var(--wp--preset--spacing--gap-6)!important} .ifx-gap-7-mb{gap:var(--wp--preset--spacing--gap-7)!important} .ifx-gap-8-mb{gap:var(--wp--preset--spacing--gap-8)!important} .ifx-gap-9-mb{gap:var(--wp--preset--spacing--gap-9)!important} .ifx-gap-10-mb{gap:var(--wp--preset--spacing--gap-10)!important} .ifx-gap-11-mb{gap:var(--wp--preset--spacing--gap-11)!important} .ifx-gap-12-mb{gap:var(--wp--preset--spacing--gap-12)!important}
    .ifx-gap-x-0-mb{column-gap:0!important} .ifx-gap-x-1-mb{column-gap:var(--wp--preset--spacing--gap-1)!important} .ifx-gap-x-2-mb{column-gap:var(--wp--preset--spacing--gap-2)!important} .ifx-gap-x-3-mb{column-gap:var(--wp--preset--spacing--gap-3)!important} .ifx-gap-x-4-mb{column-gap:var(--wp--preset--spacing--gap-4)!important} .ifx-gap-x-5-mb{column-gap:var(--wp--preset--spacing--gap-5)!important} .ifx-gap-x-6-mb{column-gap:var(--wp--preset--spacing--gap-6)!important} .ifx-gap-x-7-mb{column-gap:var(--wp--preset--spacing--gap-7)!important} .ifx-gap-x-8-mb{column-gap:var(--wp--preset--spacing--gap-8)!important} .ifx-gap-x-9-mb{column-gap:var(--wp--preset--spacing--gap-9)!important} .ifx-gap-x-10-mb{column-gap:var(--wp--preset--spacing--gap-10)!important} .ifx-gap-x-11-mb{column-gap:var(--wp--preset--spacing--gap-11)!important} .ifx-gap-x-12-mb{column-gap:var(--wp--preset--spacing--gap-12)!important}
    .ifx-gap-y-0-mb{row-gap:0!important} .ifx-gap-y-1-mb{row-gap:var(--wp--preset--spacing--gap-1)!important} .ifx-gap-y-2-mb{row-gap:var(--wp--preset--spacing--gap-2)!important} .ifx-gap-y-3-mb{row-gap:var(--wp--preset--spacing--gap-3)!important} .ifx-gap-y-4-mb{row-gap:var(--wp--preset--spacing--gap-4)!important} .ifx-gap-y-5-mb{row-gap:var(--wp--preset--spacing--gap-5)!important} .ifx-gap-y-6-mb{row-gap:var(--wp--preset--spacing--gap-6)!important} .ifx-gap-y-7-mb{row-gap:var(--wp--preset--spacing--gap-7)!important} .ifx-gap-y-8-mb{row-gap:var(--wp--preset--spacing--gap-8)!important} .ifx-gap-y-9-mb{row-gap:var(--wp--preset--spacing--gap-9)!important} .ifx-gap-y-10-mb{row-gap:var(--wp--preset--spacing--gap-10)!important} .ifx-gap-y-11-mb{row-gap:var(--wp--preset--spacing--gap-11)!important} .ifx-gap-y-12-mb{row-gap:var(--wp--preset--spacing--gap-12)!important}
}

/* --- Affichage conditionnel par breakpoint ---
 * display:none retire l'élément de l'arbre d'accessibilité (invisible ET pour
 * les lecteurs d'écran). N'utiliser QUE pour des doublons responsive (ex. menu
 * desktop vs menu mobile), jamais pour masquer du contenu qui doit rester lu. */
@media (max-width: 781px) { .ifx-hide-mobile { display: none !important; } }
@media (min-width: 782px) { .ifx-hide-desktop { display: none !important; } }



/** ---------------------------------
 * Helper debord section
 * ---------------------------------- */

.is-layout-constrained > .alignwide.ifx-maxw10 {
  max-width: calc(var(--wp--style--global--wide-size, 1120px) + 10rem);
}

/** 
* Helper permettant de passer outre les paragraphes gutenberg ayant un link
*/
.ifx-no-underline,
.ifx-no-underline a { text-decoration: none; }


.ifx-card-link a::after {
content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
}

.ifx-filter-target li {
	position: relative;
}




/* MENU MOBILE */
#modal-1.wp-block-navigation__responsive-container {
	padding: 1.875rem var(--Gap-6);
}

.wp-block-navigation__responsive-container .wp-block-navigation__container {
	width: 100%;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open  .wp-block-navigation-item__content {
	font-size: 1rem;
}

/* Dans patterns.css à modifier */

.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content {
	padding: 0;
}

.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--blue-700);
	transition: .35s;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:not(:last-of-type) {
	padding-bottom: var(--Gap-6);
}

body .site-header .wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation__submenu-container {
  padding: var(--Gap-5);
}

body .site-header .wp-block-navigation__submenu-container.wp-block-navigation-submenu {
	gap: var(--Gap-3);
}

.site-header .wp-block-navigation__responsive-container.is-menu-open  .wp-block-navigation__submenu-container .wp-block-navigation-item {
	padding: 0 0 var(--Gap-5) 0;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu .wp-block-navigation__submenu-container {
	padding: var(--Gap-6) var(--Gap-5);
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child {
	padding-bottom: 0!important;
	margin-bottom: var(--Gap-6)!important;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .ifx-overlay-contact {
	margin-top: var(--Gap-10)!important;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .ifx-overlay-contact a {
	font-size: 1rem;
}


.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-link > .wp-block-navigation-item__content {
	font-weight: 500!important;
}

@media (max-width: 767px) {
	.col-newsletter {
		order: -1;
	}

	.copyright {
		flex-direction: column-reverse;
	}

	.copyright .ifx-social {
		position: inherit;
	}

	.menu-footer nav.wp-block-navigation__container {
		margin-top: var(--Gap-4);
	}

	.menu-footer .wp-block-navigation {
		gap: var(--Gap-3);
	}
}