/* =======================================================
   FIAGEF — DESIGN SYSTEM (canonical, loaded last)
   File: assets/css/fiagef.css
   Loaded after parent + child style.css to guarantee cascade.
   ======================================================= */

/* ---- Cross-browser reset (stabilise le rendu) ---- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
img, svg, video { max-width: 100%; height: auto; display: block; }
button, input, select, textarea { font: inherit; color: inherit; }
a { -webkit-tap-highlight-color: transparent; }

/* ---- Polices Google (font-display swap obligatoire) ---- */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,400;1,9..144,500&family=Inter:wght@300;400;500;600;700&display=swap');

/* =======================================================
   DESIGN SYSTEM FIAGEF
   "Construire aujourd'hui, préserver demain"
   ======================================================= */

:root {

  /* =========================
     PALETTE INSTITUTIONNELLE
  ========================= */
  /* === PALETTE EXTRAITE DU LOGO FIAGEF === */
  --fi-bg: #FBF8F1;            /* Fond ivoire chaud (page) */
  --fi-fg: #102A18;             /* Texte = vert très profond du logo */
  --fi-muted: rgba(16, 42, 24, 0.65);

  --fi-primary: #0F6022;        /* Vert FIAGEF (couleur dominante du logo) */
  --fi-primary-dark: #0A4318;   /* Vert profond pour hovers / fonds sombres */
  --fi-primary-light: rgba(15, 96, 34, 0.07);

  --fi-accent: #1E8AAE;         /* Cyan/teal des 3 ondes du logo */
  --fi-accent-light: #60C0D0;   /* Cyan clair (lueur) */
  --fi-accent-dark: #166D8A;    /* Cyan profond pour hovers */

  --fi-gold: #C9A24B;           /* Or doux institutionnel (accent prestige) */
  --fi-gold-hover: #A8842F;

  --fi-red: #9B1B1B;            /* Rouge accent du carré dans le "I" du logo */

  --fi-border: rgba(15, 96, 34, 0.10);

  /* =========================
     TYPOGRAPHIE
  ========================= */
  --fi-font: "Inter", system-ui, -apple-system, sans-serif;
  --fi-font-display: "Fraunces", "Times New Roman", serif;

  /* =========================
     LAYOUT
  ========================= */
  --fi-container: 1280px;
  --fi-radius: 4px;

  /* Système d'espacement (8pt grid) */
  --fi-space-1: 4px;
  --fi-space-2: 8px;
  --fi-space-3: 12px;
  --fi-space-4: 16px;
  --fi-space-5: 24px;
  --fi-space-6: 32px;
  --fi-space-7: 48px;
  --fi-space-8: 64px;
  --fi-space-9: 96px;
  --fi-space-10: 128px;

  /* =========================
     OMBRES
  ========================= */
  --fi-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.04);
  --fi-shadow-md: 0 8px 24px rgba(0, 0, 0, 0.06);
  --fi-shadow-lg: 0 20px 60px rgba(0, 0, 0, 0.1);

  /* =========================
     TRANSITIONS
  ========================= */
  --fi-ease: cubic-bezier(0.25, 0.1, 0.25, 1);
}

/* =======================================================
   RESET & BASE
   ======================================================= */

/* =======================================================
   HEADER FIAGEF — v2 (réécrit de zéro)
   À remplacer dans style.css : section "HEADER FIAGEF"
   + "MOBILE MENU" + "RESPONSIVE HEADER"
   (lignes ~227 à ~497 de l'ancien fichier)

   Dépendances variables (déjà définies dans :root) :
     --fi-bg --fi-fg --fi-muted --fi-primary --fi-gold
     --fi-gold-hover --fi-border --fi-radius --fi-container
     --fi-shadow-sm --fi-shadow-md --fi-shadow-lg
     --fi-font --fi-font-display --fi-ease
   ======================================================= */

/* ---------- Lock scroll quand le menu mobile est ouvert ---------- */
body.fi-no-scroll { overflow: hidden; }

/* =======================================================
   HEADER — barre sticky
   ======================================================= */
.fi-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(253, 251, 247, 0.85);
  backdrop-filter: saturate(140%) blur(14px);
  -webkit-backdrop-filter: saturate(140%) blur(14px);
  border-bottom: 1px solid transparent;
  transition: background 0.4s var(--fi-ease),
              border-color 0.4s var(--fi-ease),
              box-shadow 0.4s var(--fi-ease);
}

/* État "scrolled" — ajouté en JS via .is-scrolled */
.fi-header.is-scrolled {
  background: rgba(255, 255, 255, 0.96);
  border-bottom-color: var(--fi-border);
  box-shadow: var(--fi-shadow-sm);
}

.fi-header__inner {
  max-width: var(--fi-container);
  margin: 0 auto;
  padding: 0 24px;
  height: 88px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 32px;
}

/* =======================================================
   LOGO
   ======================================================= */
.fi-header__logo {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  transition: opacity 0.3s var(--fi-ease);
}
.fi-header__logo:hover { opacity: 0.85; }

.fi-header__logo img {
  height: 52px;
  width: auto;
  display: block;
}

/* =======================================================
   NAV DESKTOP
   ======================================================= */
.fi-nav {
  display: flex;
  justify-content: center;
}

.fi-nav__list {
  display: flex;
  align-items: center;
  gap: 4px;          /* serré, l'air vient du padding interne */
  margin: 0;
  padding: 0;
  list-style: none;
}

.fi-nav__list > li { position: relative; }

.fi-nav__list > li > a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  font-family: var(--fi-font);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--fi-fg);
  position: relative;
  transition: color 0.25s var(--fi-ease);
}

/* Underline doré centré qui s'étend */
.fi-nav__list > li > a::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 4px;
  width: 0;
  height: 1.5px;
  background: var(--fi-gold);
  transition: width 0.35s var(--fi-ease), left 0.35s var(--fi-ease);
}

.fi-nav__list > li > a:hover,
.fi-nav__list > li.is-current > a,
.fi-nav__list > li[aria-current="page"] > a {
  color: var(--fi-primary);
}

.fi-nav__list > li > a:hover::after,
.fi-nav__list > li.is-current > a::after {
  width: calc(100% - 32px);
  left: 16px;
}

/* Petit chevron pour les dropdowns */
.fi-nav__list > li.fi-nav__dropdown > a::before {
  /* nothing — on garde le ▾ depuis le HTML si présent */
}

/* =======================================================
   DROPDOWN
   ======================================================= */
.fi-nav__dropdown { position: relative; }

.fi-nav__submenu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  min-width: 240px;
  margin: 0;
  padding: 8px;
  list-style: none;
  background: #ffffff;
  border: 1px solid var(--fi-border);
  border-radius: var(--fi-radius);
  box-shadow: var(--fi-shadow-lg);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s var(--fi-ease),
              transform 0.25s var(--fi-ease),
              visibility 0.25s var(--fi-ease);
}

/* petit pont invisible pour éviter la fermeture au survol */
.fi-nav__submenu::before {
  content: "";
  position: absolute;
  top: -10px;
  left: 0;
  right: 0;
  height: 10px;
}

.fi-nav__submenu li { margin: 0; }

.fi-nav__submenu a {
  display: block;
  padding: 10px 14px;
  border-radius: calc(var(--fi-radius) - 1px);
  font-size: 0.88rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--fi-fg);
  transition: background 0.2s var(--fi-ease), color 0.2s var(--fi-ease);
}

.fi-nav__submenu a::after { display: none; }

.fi-nav__submenu a:hover {
  background: var(--fi-primary-light);
  color: var(--fi-primary);
}

.fi-nav__dropdown:hover > .fi-nav__submenu,
.fi-nav__dropdown:focus-within > .fi-nav__submenu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

/* =======================================================
   CTA HEADER (boutons à droite)
   ======================================================= */
.fi-header__cta-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

/* Compaction des boutons dans le header */
.fi-header__cta-wrap .fi-btn--primary,
.fi-header__cta-wrap .fi-btn--primary .wp-block-button__link,
.fi-header__cta-wrap .fi-btn--outline,
.fi-header__cta-wrap .fi-btn--outline .wp-block-button__link {
  padding: 11px 22px;
  font-size: 0.74rem;
  letter-spacing: 0.1em;
}

/* =======================================================
   BURGER (mobile)
   ======================================================= */
.fi-burger {
  display: none;
  width: 40px;
  height: 40px;
  background: transparent;
  border: 1px solid var(--fi-border);
  border-radius: var(--fi-radius);
  cursor: pointer;
  position: relative;
  padding: 0;
  z-index: 9999;
  transition: background 0.2s var(--fi-ease), border-color 0.2s var(--fi-ease);
}
body.fi-no-scroll { overflow: hidden; }

.fi-burger:hover { background: var(--fi-primary-light); }

.fi-burger span {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 18px;
  height: 1.5px;
  background: var(--fi-fg);
  border-radius: 1px;
  transform: translate(-50%, -50%);
  transition: transform 0.3s var(--fi-ease), opacity 0.2s var(--fi-ease);
}
.fi-burger span:nth-child(1) { transform: translate(-50%, calc(-50% - 6px)); }
.fi-burger span:nth-child(2) { transform: translate(-50%, -50%); }
.fi-burger span:nth-child(3) { transform: translate(-50%, calc(-50% + 6px)); }

.fi-burger.is-active span:nth-child(1) { transform: translate(-50%, -50%) rotate(45deg); }
.fi-burger.is-active span:nth-child(2) { opacity: 0; }
.fi-burger.is-active span:nth-child(3) { transform: translate(-50%, -50%) rotate(-45deg); }

/* =======================================================
   MENU MOBILE (drawer droite)
   ======================================================= */
.fi-mobile-nav {
  position: fixed;
  top: 0;
  right: 0;
  width: min(360px, 88vw);
  height: 100dvh;
  background: #ffffff;
  box-shadow: -20px 0 60px rgba(0, 0, 0, 0.12);
  transform: translateX(100%);
  transition: transform 0.4s var(--fi-ease);
  padding: 96px 28px 32px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}

.fi-mobile-nav.is-open { transform: translateX(0); }

.fi-mobile-nav ul {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  flex: 1;
}

.fi-mobile-nav li { margin: 0; }

.fi-mobile-nav ul a {
  display: block;
  padding: 16px 0;
  color: var(--fi-fg);
  font-family: var(--fi-font-display);
  font-size: 1.25rem;
  font-weight: 400;
  letter-spacing: -0.01em;
  border-bottom: 1px solid var(--fi-border);
  transition: color 0.25s var(--fi-ease), padding-left 0.25s var(--fi-ease);
}

.fi-mobile-nav ul a:hover {
  color: var(--fi-primary);
  padding-left: 6px;
}

/* CTA mobile */
.fi-mobile-nav > .fi-btn--primary {
  display: inline-block;
  margin-top: 8px;
  text-align: center;
  background: var(--fi-gold);
  color: #fff;
  padding: 14px 24px;
  border-radius: var(--fi-radius);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: background 0.3s var(--fi-ease);
}
.fi-mobile-nav > .fi-btn--primary:hover { background: var(--fi-gold-hover); }

/* =======================================================
   OVERLAY MOBILE
   ======================================================= */
.fi-mobile-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.35); /* plus neutre */
  backdrop-filter: none; /* réduit */
  z-index: 9998;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease;
}

.fi-mobile-overlay.is-active {
  opacity: 1;
  /* visibility: visible; */
}

/* =======================================================
   RESPONSIVE
   ======================================================= */
@media (max-width: 1024px) {
  .fi-header__inner {
    height: 72px;
    grid-template-columns: auto 1fr auto;
    gap: 16px;
    padding: 0 20px;
  }

  .fi-nav,
  .fi-header__cta-wrap { display: none; }

  .fi-burger { display: inline-flex; justify-self: end; }

  .fi-header__logo img { height: 40px; }
}

@media (max-width: 480px) {
  .fi-header__inner { height: 64px; padding: 0 16px; }
  .fi-header__logo img { height: 36px; }
}

/* =======================================================
   JS minimal à coller (functions.php enqueue ou <script>)
   -------------------------------------------------------
   <script>
   (function(){
     const header  = document.querySelector('.fi-header');
     const burger  = document.querySelector('.fi-burger');
     const drawer  = document.querySelector('.fi-mobile-nav');
     // Crée l'overlay s'il n'existe pas
     let overlay = document.querySelector('.fi-mobile-overlay');
     if (!overlay) {
       overlay = document.createElement('div');
       overlay.className = 'fi-mobile-overlay';
       document.body.appendChild(overlay);
     }
     const close = () => {
       burger?.classList.remove('is-active');
       drawer?.classList.remove('is-open');
       overlay.classList.remove('is-active');
       document.body.classList.remove('fi-no-scroll');
       burger?.setAttribute('aria-expanded','false');
     };
     burger?.addEventListener('click', () => {
       const open = !drawer.classList.contains('is-open');
       burger.classList.toggle('is-active', open);
       drawer.classList.toggle('is-open', open);
       overlay.classList.toggle('is-active', open);
       document.body.classList.toggle('fi-no-scroll', open);
       burger.setAttribute('aria-expanded', String(open));
     });
     overlay.addEventListener('click', close);
     drawer?.querySelectorAll('a').forEach(a => a.addEventListener('click', close));
     document.addEventListener('keydown', e => { if (e.key === 'Escape') close(); });

     // Header scrolled
     const onScroll = () => header?.classList.toggle('is-scrolled', window.scrollY > 8);
     onScroll(); window.addEventListener('scroll', onScroll, { passive:true });
   })();
   </script>
   ======================================================= */




/* =========================
   PAGE CONTACT FIAGEF
========================= */

/* Global spacing */
.wp-block-group,
.wp-block-columns {
    box-sizing: border-box;
}

/* =========================
   HERO COVER
========================= */

.wp-block-cover {
    position: relative;
    overflow: hidden;
}

.wp-block-cover__background {
    transition: opacity 0.3s ease;
}

/* Titre principal */
.wp-block-cover h2 {
    font-family: "Lemon Milk", sans-serif;
    letter-spacing: 1px;
    line-height: 1.1;
    color: #ffffff;
    text-transform: uppercase;
}

/* Sous-titre */
.wp-block-cover p {
    color: rgba(255, 255, 255, 0.9);
    max-width: 600px;
}

/* =========================
   MAIN SECTION
========================= */

main.wp-block-group {
    padding: 40px 20px;
}

/* Colonnes */
.wp-block-columns {
    gap: 40px;
    align-items: stretch;
}

/* =========================
   FORMULAIRE
========================= */

.wp-block-column form,
.forminator-ui {
    background: #ffffff;
    padding: 25px;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
}

/* Champs formulaire */
input[type="text"],
input[type="email"],
textarea {
    width: 100%;
    padding: 12px 14px;
    margin-bottom: 15px;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    font-size: 14px;
    transition: 0.3s ease;
}

input:focus,
textarea:focus {
    border-color: #c8a85c; /* couleur premium dorée */
    outline: none;
    box-shadow: 0 0 0 2px rgba(200, 168, 92, 0.2);
}

.wp-block-cover h2 {
  font-family: var(--fi-font-display);
  color: white;
  letter-spacing: 1px;
}

.wp-block-cover p {
  color: rgba(255,255,255,0.85);
}

.wp-block-columns {
  gap: 40px;
}

.wp-block-column h3 {
  color: var(--fi-fg);
  font-size: 18px;
  margin-bottom: 10px;
}

.wp-block-column p {
  color: rgba(17,31,22,0.75);
}

.wp-block-column a {
  color: var(--fi-secondary);
}

.wp-block-column a:hover {
  color: var(--fi-primary);
}

/* =========================
   CONTACT INFO
========================= */

.fi-contact-premium {
  background: var(--fi-deep);
  padding: 100px 20px;
}

.fi-contact-inner {
  max-width: 1200px;
  margin: auto;
  display: flex;
  gap: 60px;
  flex-wrap: wrap;
}

/* LEFT */
.fi-contact-left {
  flex: 1;
  color: white;
}

.fi-contact-left h2 {
  font-size: 38px;
  font-family: var(--fi-font-display);
}

.fi-contact-left h2 span {
  color: var(--fi-cyan);
  font-style: italic;
}

.fi-contact-left p {
  margin-top: 20px;
  opacity: 0.8;
}

/* BUTTONS */
.fi-contact-actions {
  margin-top: 30px;
  display: flex;
  gap: 15px;
}

/* RIGHT */
.fi-contact-right {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* GLASS CARDS */
.fi-contact-card {
  background: rgba(255,255,255,0.06);
  backdrop-filter: blur(12px);
  padding: 20px;
  border-radius: 14px;
  transition: 0.3s;
}

.fi-contact-card:hover {
  transform: translateY(-5px);
  background: rgba(255,255,255,0.1);
}
/* =========================
   FOOTER BASE
========================= */
.fi-footer {
  background: #0b1f14;
  color: rgba(255,255,255,0.75);
  padding: 80px 0 40px;
}

/* =========================
   TOP GRID
========================= */
.fi-footer__top {
  max-width: var(--fi-container);
  margin: 0 auto;

  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 48px;
  padding: 0 20px;
}

/* =========================
   BRAND
========================= */
.fi-footer__brand img {
  width: 160px;
  margin-bottom: 12px;
}

.fi-footer__tag {
  font-size: 0.9rem;
  opacity: 0.8;
}

/* =========================
   TITLES
========================= */
.fi-footer h4 {
  color: #fff;
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 16px;
}

/* =========================
   LISTS
========================= */
.fi-footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.fi-footer li {
  margin-bottom: 10px;
}

/* =========================
   LINKS
========================= */
.fi-footer a {
  color: rgba(255,255,255,0.65);
  text-decoration: none;
  transition: 0.25s;
  font-size: 0.9rem;
}

.fi-footer a:hover {
  color: var(--fi-cyan);
}

/* =========================
   BOTTOM
========================= */
.fi-footer__bottom {
  max-width: var(--fi-container);
  margin: 60px auto 0;
  padding: 20px;
  border-top: 1px solid rgba(255,255,255,0.08);

  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 0.85rem;
}

.fi-footer__legal {
  display: flex;
  gap: 10px;
  align-items: center;
}

/* =========================
   RESPONSIVE
========================= */
@media (max-width: 1024px) {
  .fi-footer__top {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 640px) {
  .fi-footer__top {
    grid-template-columns: 1fr;
  }

  .fi-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}
/* =======================================================
   FIAGEF v4 — PREMIUM ADD-ONS
   theme-bar · partners · objectives · vision · counter ·
   gallery-bank · bouton Promoteur · manifesto
   ======================================================= */

/* ----------- BOUTON PROMOTEUR (dans header) ----------- */
.fi-btn--outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 11px 22px;
  font-family: var(--fi-font);
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--fi-primary);
  background: transparent;
  border: 1.5px solid var(--fi-primary);
  border-radius: var(--fi-radius);
  text-decoration: none;
  transition: background .25s var(--fi-ease), color .25s var(--fi-ease), transform .25s var(--fi-ease);
}
.fi-btn--outline:hover {
  background: var(--fi-primary);
  color: #fff;
  transform: translateY(-1px);
}
.fi-btn--primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 11px 22px;
  font-family: var(--fi-font);
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #fff;
  background: var(--fi-gold);
  border: 1.5px solid var(--fi-gold);
  border-radius: var(--fi-radius);
  text-decoration: none;
  transition: background .25s var(--fi-ease), border-color .25s var(--fi-ease), transform .25s var(--fi-ease);
}
.fi-btn--primary:hover {
  background: var(--fi-gold-hover);
  border-color: var(--fi-gold-hover);
  transform: translateY(-1px);
}

/* ----------- THEME BAR (sous le header) ----------- */
.fi-themebar {
  background: linear-gradient(135deg, var(--fi-primary) 0%, var(--fi-primary-dark) 100%);
  color: #fff;
  border-top: 1px solid rgba(255,255,255,0.06);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  position: relative;
  overflow: hidden;
}
.fi-themebar::before {
  content: "";
  position: absolute; inset: 0;
  background: radial-gradient(800px 200px at 80% 50%, rgba(184,150,62,0.18), transparent 60%);
  pointer-events: none;
}
.fi-themebar__inner {
  max-width: var(--fi-container);
  margin: 0 auto;
  padding: 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: relative;
}
.fi-themebar__eyebrow {
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fi-gold);
  font-weight: 700;
}
.fi-themebar__title {
  font-family: var(--fi-font-display);
  font-size: clamp(1rem, 1.2vw + .6rem, 1.35rem);
  line-height: 1.4;
  margin: 0;
  font-weight: 400;
  color: rgba(255,255,255,0.95);
}
.fi-themebar__title em {
  font-style: italic;
  color: var(--fi-gold);
  font-weight: 500;
}

/* ----------- PARTNERS CAROUSEL ----------- */
.fi-partners {
  background: #fff;
  border-bottom: 1px solid var(--fi-border);
  padding: 28px 0;
}
.fi-partners__inner {
  max-width: var(--fi-container);
  margin: 0 auto;
  padding: 0 24px;
}
.fi-partners__head {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 18px;
}
.fi-partners__label {
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fi-primary);
  font-weight: 700;
  white-space: nowrap;
}
.fi-partners__line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, var(--fi-border), transparent);
}
.fi-partners__hint {
  font-size: 0.78rem;
  color: var(--fi-muted);
  font-style: italic;
  white-space: nowrap;
}
.fi-partners__viewport {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.fi-partners__track {
  display: flex;
  align-items: center;
  gap: 56px;
  width: max-content;
  animation: fi-partners-scroll 38s linear infinite;
}
.fi-partners:hover .fi-partners__track { animation-play-state: paused; }
.fi-partners__item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 60px;
  flex-shrink: 0;
  opacity: 0.6;
  filter: grayscale(1);
  transition: opacity .3s var(--fi-ease), filter .3s var(--fi-ease), transform .3s var(--fi-ease);
}
.fi-partners__item:hover {
  opacity: 1;
  filter: grayscale(0);
  transform: translateY(-2px);
}
.fi-partners__item img {
  max-height: 44px;
  max-width: 140px;
  width: auto;
  height: auto;
  object-fit: contain;
}
@keyframes fi-partners-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ----------- OBJECTIFS — magazine grid ----------- */
.fi-objectives {
  background: var(--fi-bg);
  padding: 100px 24px;
}
.fi-objectives__inner {
  max-width: var(--fi-container);
  margin: 0 auto;
}
.fi-objectives__head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 60px;
}
.fi-objectives__eyebrow {
  display: inline-block;
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fi-gold);
  font-weight: 700;
  margin-bottom: 14px;
}
.fi-objectives__title {
  font-family: var(--fi-font-display);
  font-size: clamp(2rem, 3vw + 1rem, 3.4rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--fi-fg);
  margin: 0 0 16px;
  font-weight: 400;
}
.fi-objectives__title span {
  font-style: italic;
  color: var(--fi-primary);
}
.fi-objectives__lead {
  font-size: 1.05rem;
  color: var(--fi-muted);
  line-height: 1.6;
}
.fi-objectives__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 220px;
  gap: 16px;
}
.fi-obj {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  background: #1a1a1a;
  cursor: pointer;
  isolation: isolate;
}
.fi-obj--tall { grid-row: span 2; }
.fi-obj--wide { grid-column: span 2; }
.fi-obj img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .8s var(--fi-ease), filter .5s var(--fi-ease);
}
.fi-obj::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,0.85) 100%);
  z-index: 1;
}
.fi-obj:hover img { transform: scale(1.08); filter: brightness(0.85); }
.fi-obj__overlay {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 22px;
  z-index: 2;
  color: #fff;
}
.fi-obj__num {
  display: inline-block;
  font-family: var(--fi-font-display);
  font-size: 0.85rem;
  letter-spacing: 0.2em;
  color: var(--fi-gold);
  font-weight: 600;
  margin-bottom: 6px;
}
.fi-obj__overlay h3 {
  font-family: var(--fi-font-display);
  font-size: 1.1rem;
  line-height: 1.25;
  font-weight: 500;
  margin: 0;
  color: #fff;
  letter-spacing: -0.01em;
}
@media (max-width: 1024px) {
  .fi-objectives__grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 200px; }
  .fi-obj--wide { grid-column: span 2; }
  .fi-obj--tall { grid-row: span 1; }
}
@media (max-width: 600px) {
  .fi-objectives { padding: 70px 16px; }
  .fi-objectives__grid { grid-template-columns: 1fr; grid-auto-rows: 220px; }
  .fi-obj--wide, .fi-obj--tall { grid-column: span 1; grid-row: span 1; }
}

/* ----------- VISION SECTION ----------- */
.fi-vision {
  background: linear-gradient(180deg, #fff 0%, var(--fi-bg) 100%);
  padding: 110px 24px;
}
.fi-vision__inner {
  max-width: var(--fi-container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 0.85fr 1fr;
  gap: 80px;
  align-items: center;
}
.fi-vision__media {
  position: relative;
  margin: 0;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--fi-shadow-lg);
}
.fi-vision__media::before {
  content: "";
  position: absolute;
  top: -20px; left: -20px;
  width: 120px; height: 120px;
  background: var(--fi-gold);
  border-radius: 50%;
  opacity: 0.15;
  z-index: -1;
}
.fi-vision__media img {
  width: 100%;
  height: 560px;
  object-fit: cover;
  display: block;
}
.fi-vision__media figcaption {
  position: absolute;
  left: 20px; bottom: 20px;
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(8px);
  padding: 14px 18px;
  border-radius: 10px;
  font-family: var(--fi-font);
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.fi-vision__media figcaption strong {
  color: var(--fi-primary);
  font-weight: 700;
  font-size: 0.95rem;
}
.fi-vision__media figcaption span {
  color: var(--fi-muted);
  font-size: 0.78rem;
  letter-spacing: 0.05em;
}
.fi-vision__eyebrow {
  display: inline-block;
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fi-gold);
  font-weight: 700;
  margin-bottom: 18px;
}
.fi-vision__title {
  font-family: var(--fi-font-display);
  font-size: clamp(2rem, 3vw + 1rem, 3.2rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0 0 24px;
  color: var(--fi-fg);
  font-weight: 400;
}
.fi-vision__title em {
  font-style: italic;
  color: var(--fi-primary);
}
.fi-vision__content p {
  font-size: 1rem;
  line-height: 1.75;
  color: var(--fi-muted);
  margin: 0 0 18px;
}
.fi-vision__bullets {
  list-style: none;
  padding: 0;
  margin: 24px 0 32px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.fi-vision__bullets li {
  position: relative;
  padding-left: 28px;
  color: var(--fi-fg);
  font-size: 0.95rem;
  font-weight: 500;
}
.fi-vision__bullets li::before {
  content: "";
  position: absolute;
  left: 0; top: 0.55em;
  width: 16px; height: 1.5px;
  background: var(--fi-gold);
}
@media (max-width: 900px) {
  .fi-vision { padding: 70px 20px; }
  .fi-vision__inner { grid-template-columns: 1fr; gap: 40px; }
  .fi-vision__media img { height: 380px; }
}

/* ----------- COUNTER ANIMÉ ----------- */
.fi-counter {
  position: relative;
  padding: 110px 24px;
  color: #fff;
  overflow: hidden;
  isolation: isolate;
}
.fi-counter__bg {
  position: absolute; inset: 0;
  z-index: -1;
}
.fi-counter__bg img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: grayscale(0.5);
}
.fi-counter__veil {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,77,20,0.92), rgba(0,30,8,0.95));
}
.fi-counter__inner {
  max-width: var(--fi-container);
  margin: 0 auto;
  text-align: center;
}
.fi-counter__eyebrow {
  display: inline-block;
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fi-gold);
  font-weight: 700;
  margin-bottom: 14px;
}
.fi-counter__title {
  font-family: var(--fi-font-display);
  font-size: clamp(1.6rem, 2.4vw + .8rem, 2.6rem);
  line-height: 1.15;
  margin: 0 auto 60px;
  max-width: 720px;
  font-weight: 400;
  color: #fff;
}
.fi-counter__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
}
.fi-counter__item {
  padding: 30px 16px;
  border-left: 1px solid rgba(255,255,255,0.12);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.fi-counter__item:first-child { border-left: none; }
.fi-counter__num {
  font-family: var(--fi-font-display);
  font-size: clamp(2.4rem, 4vw + .5rem, 4.2rem);
  font-weight: 600;
  letter-spacing: -0.03em;
  color: var(--fi-gold);
  line-height: 1;
  display: inline-block;
}
.fi-counter__label {
  font-size: 0.85rem;
  letter-spacing: 0.05em;
  color: rgba(255,255,255,0.85);
  text-align: center;
}
@media (max-width: 900px) {
  .fi-counter__grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .fi-counter__item:nth-child(odd) { border-left: none; }
  .fi-counter__item:nth-child(3) { border-top: 1px solid rgba(255,255,255,0.12); padding-top: 30px; }
  .fi-counter__item:nth-child(4) { border-top: 1px solid rgba(255,255,255,0.12); padding-top: 30px; }
}

/* ----------- MANIFESTO (Au cœur intro) ----------- */
.fi-manifesto {
  background: var(--fi-bg);
  padding: 110px 24px;
}
.fi-manifesto__inner {
  max-width: 1100px;
  margin: 0 auto;
}
.fi-manifesto__eyebrow {
  display: inline-block;
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fi-gold);
  font-weight: 700;
  margin-bottom: 18px;
}
.fi-manifesto__title {
  font-family: var(--fi-font-display);
  font-size: clamp(1.8rem, 2.8vw + .8rem, 3rem);
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--fi-fg);
  font-weight: 400;
  margin: 0 0 60px;
  max-width: 900px;
}
.fi-manifesto__title em {
  font-style: italic;
  color: var(--fi-primary);
}
.fi-manifesto__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-bottom: 70px;
}
.fi-manifesto__col h3 {
  font-family: var(--fi-font);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fi-primary);
  font-weight: 700;
  margin: 0 0 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--fi-border);
}
.fi-manifesto__col p {
  font-size: 0.97rem;
  line-height: 1.7;
  color: var(--fi-muted);
  margin: 0;
}
.fi-manifesto__quote {
  margin: 0;
  padding: 40px 0 0;
  text-align: center;
  font-family: var(--fi-font-display);
  font-style: italic;
  font-size: clamp(1.4rem, 2vw + .5rem, 2.1rem);
  color: var(--fi-fg);
  line-height: 1.4;
  border-top: 1px solid var(--fi-border);
}
.fi-manifesto__quote cite {
  display: block;
  margin-top: 14px;
  font-style: normal;
  font-family: var(--fi-font);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fi-gold);
  font-weight: 700;
}
@media (max-width: 800px) {
  .fi-manifesto { padding: 70px 20px; }
  .fi-manifesto__grid { grid-template-columns: 1fr; gap: 32px; }
}

/* ----------- GALLERY BANK (page Image) ----------- */
.fi-gallery-bank {
  background: var(--fi-bg);
  padding: 90px 24px 110px;
}
.fi-gallery-bank__inner {
  max-width: var(--fi-container);
  margin: 0 auto;
}
.fi-gallery-bank__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 24px;
  margin-bottom: 40px;
}
.fi-gallery-bank__eyebrow {
  display: inline-block;
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--fi-gold);
  font-weight: 700;
  margin-bottom: 10px;
}
.fi-gallery-bank__title {
  font-family: var(--fi-font-display);
  font-size: clamp(1.6rem, 2.4vw + .6rem, 2.6rem);
  margin: 0;
  color: var(--fi-fg);
  font-weight: 400;
  line-height: 1.1;
}
.fi-gallery-bank__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.fi-gallery-bank__filters button {
  background: transparent;
  border: 1px solid var(--fi-border);
  border-radius: 999px;
  padding: 8px 18px;
  font-family: var(--fi-font);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--fi-fg);
  cursor: pointer;
  transition: background .25s var(--fi-ease), color .25s var(--fi-ease), border-color .25s var(--fi-ease);
}
.fi-gallery-bank__filters button:hover {
  border-color: var(--fi-primary);
  color: var(--fi-primary);
}
.fi-gallery-bank__filters button.is-active {
  background: var(--fi-primary);
  color: #fff;
  border-color: var(--fi-primary);
}
.fi-gallery-bank__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 18px;
}
.fi-gallery-bank__item {
  margin: 0;
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  background: #1a1a1a;
  aspect-ratio: 4/3;
  cursor: zoom-in;
  isolation: isolate;
  transition: opacity .35s var(--fi-ease), transform .35s var(--fi-ease);
}
.fi-gallery-bank__item.is-hidden {
  display: none;
}
.fi-gallery-bank__item img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .7s var(--fi-ease);
}
.fi-gallery-bank__item:hover img { transform: scale(1.06); }
.fi-gallery-bank__item figcaption {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 14px 16px;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.85));
  color: #fff;
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  z-index: 2;
  transform: translateY(8px);
  opacity: 0;
  transition: opacity .3s var(--fi-ease), transform .3s var(--fi-ease);
}
.fi-gallery-bank__item:hover figcaption {
  opacity: 1;
  transform: translateY(0);
}

/* ----------- LIGHTBOX ----------- */
.fi-lightbox {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.92);
  z-index: 200;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 30px;
  cursor: zoom-out;
}
.fi-lightbox.is-open { display: flex; }
.fi-lightbox img {
  max-width: 95vw;
  max-height: 92vh;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.6);
}

/* ============================================================
   FIAGEF PREMIUM v5 — Footer / Inscription / Documentation / Paiement
   ============================================================ */

/* ---------- FOOTER : Newsletter ---------- */
.fi-footer__newsletter{
  background:linear-gradient(135deg,var(--fi-primary,var(--fi-primary)) 0%,var(--fi-primary-dark,var(--fi-primary-dark)) 100%);
  color:#fff;padding:56px 24px;border-bottom:1px solid rgba(255,255,255,.06);
}
.fi-footer__newsletter-inner{
  max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center;
}
.fi-footer__newsletter-eyebrow{
  display:inline-block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--fi-gold,var(--fi-gold));margin-bottom:12px;font-weight:600;
}
.fi-footer__newsletter-text h3{font-size:clamp(22px,2.4vw,30px);margin:0 0 10px;line-height:1.2;font-weight:700;}
.fi-footer__newsletter-text p{margin:0;color:rgba(255,255,255,.72);font-size:15px;line-height:1.55;}
.fi-footer__newsletter-form{display:flex;gap:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);padding:8px;border-radius:999px;backdrop-filter:blur(8px);}
.fi-footer__newsletter-form input{
  flex:1;background:transparent;border:0;outline:0;color:#fff;padding:14px 18px;font-size:15px;font-family:inherit;
}
.fi-footer__newsletter-form input::placeholder{color:rgba(255,255,255,.5);}
.fi-footer__newsletter-form .fi-btn{white-space:nowrap;border-radius:999px;padding:14px 22px;}
@media (max-width:780px){
  .fi-footer__newsletter-inner{grid-template-columns:1fr;gap:24px;}
  .fi-footer__newsletter-form{flex-direction:column;border-radius:18px;}
  .fi-footer__newsletter-form .fi-btn{border-radius:14px;}
}

/* ---------- FOOTER : badges & social ---------- */
.fi-footer__badges{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px;}
.fi-footer__badge{
  display:inline-flex;align-items:center;padding:5px 12px;border-radius:999px;
  font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  background:rgba(255,255,255,.08);color:rgba(255,255,255,.85);border:1px solid rgba(255,255,255,.1);
}
.fi-footer__badge--gold{background:rgba(212,175,55,.15);color:var(--fi-gold,var(--fi-gold));border-color:rgba(212,175,55,.3);}
.fi-footer__social{display:flex;gap:10px;margin-top:6px;}
.fi-footer__social a{
  width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;background:rgba(255,255,255,.06);color:rgba(255,255,255,.8);
  border:1px solid rgba(255,255,255,.1);transition:all .25s ease;
}
.fi-footer__social a:hover{background:var(--fi-gold,var(--fi-gold));color:var(--fi-primary);border-color:var(--fi-gold,var(--fi-gold));transform:translateY(-2px);}

/* ---------- INSCRIPTION : hero enrichi ---------- */
.fi-inscription-hero__eyebrow{
  display:inline-block;font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--fi-gold,var(--fi-gold));font-weight:600;margin-bottom:18px;
  padding:6px 14px;border:1px solid rgba(212,175,55,.4);border-radius:999px;background:rgba(212,175,55,.08);
}
.fi-inscription-hero h1 em{font-style:normal;color:var(--fi-gold,var(--fi-gold));font-weight:700;}
.fi-inscription-hero__meta{
  display:flex;flex-wrap:wrap;justify-content:center;gap:14px 22px;margin-top:28px;
  font-size:14px;color:rgba(255,255,255,.78);
}
.fi-inscription-hero__meta strong{color:#fff;font-weight:600;}

/* ---------- INSCRIPTION : avantages ---------- */
.fi-inscription-perks__grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:1200px;margin:0 auto;
}
.fi-inscription-perks__item{
  background:#fff;border:1px solid #ecebe6;border-radius:18px;padding:28px 22px;
  transition:all .35s cubic-bezier(.2,.8,.2,1);
}
.fi-inscription-perks__item:hover{transform:translateY(-6px);box-shadow:0 20px 40px -20px rgba(10,61,46,.25);border-color:var(--fi-gold,var(--fi-gold));}
.fi-inscription-perks__icon{
  display:inline-flex;width:48px;height:48px;align-items:center;justify-content:center;
  border-radius:14px;background:linear-gradient(135deg,var(--fi-primary,var(--fi-primary)),var(--fi-primary));
  color:var(--fi-gold,var(--fi-gold));margin-bottom:18px;
}
.fi-inscription-perks__item h3{font-size:17px;margin:0 0 8px;font-weight:700;color:var(--fi-primary,var(--fi-primary));}
.fi-inscription-perks__item p{font-size:14px;color:#5b6a64;margin:0;line-height:1.55;}
@media (max-width:980px){.fi-inscription-perks__grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.fi-inscription-perks__grid{grid-template-columns:1fr;}}

/* ---------- INSCRIPTION : étapes ---------- */
.fi-inscription-steps{max-width:1200px;margin:0 auto;}
.fi-inscription-steps h2{text-align:center;font-size:clamp(26px,3vw,38px);margin:0 0 40px;color:var(--fi-primary,var(--fi-primary));}
.fi-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:step;}
.fi-steps li{
  position:relative;padding:32px 24px 24px;background:#fafaf7;border-radius:18px;
  border:1px solid #ecebe6;
}
.fi-steps__num{
  position:absolute;top:-18px;left:24px;
  display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;
  border-radius:12px;background:var(--fi-primary,var(--fi-primary));color:var(--fi-gold,var(--fi-gold));
  font-weight:700;font-size:14px;letter-spacing:.05em;box-shadow:0 8px 20px -8px rgba(10,61,46,.4);
}
.fi-steps li h3{font-size:16px;margin:8px 0 8px;color:var(--fi-primary,var(--fi-primary));font-weight:700;}
.fi-steps li p{font-size:14px;color:#5b6a64;margin:0;line-height:1.55;}
@media (max-width:980px){.fi-steps{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.fi-steps{grid-template-columns:1fr;}}

/* ---------- INSCRIPTION : carte formulaire ---------- */
.fi-form-card__eyebrow{
  display:inline-block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--fi-gold,var(--fi-gold));font-weight:600;margin-bottom:8px;
}
.fi-form-card__assurance{
  margin-top:24px;padding:14px 18px;background:#f5f3ec;border-radius:12px;
  font-size:13px;color:#5b6a64;display:flex;gap:10px;align-items:center;
}

/* ---------- DOCUMENTATION ---------- */
.fi-doc-hero{
  background:linear-gradient(135deg,var(--fi-primary,var(--fi-primary)),var(--fi-primary-dark));
  color:#fff;padding:90px 24px 70px;text-align:center;position:relative;overflow:hidden;
}
.fi-doc-hero::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 20% 30%,rgba(212,175,55,.18),transparent 50%),
             radial-gradient(circle at 80% 70%,rgba(212,175,55,.1),transparent 50%);
  pointer-events:none;
}
.fi-doc-hero__inner{position:relative;max-width:820px;margin:0 auto;}
.fi-doc-hero__eyebrow{
  display:inline-block;font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--fi-gold,var(--fi-gold));font-weight:600;margin-bottom:18px;
  padding:6px 14px;border:1px solid rgba(212,175,55,.4);border-radius:999px;background:rgba(212,175,55,.08);
}
.fi-doc-hero h1{font-size:clamp(32px,4.5vw,52px);margin:0 0 16px;font-weight:700;letter-spacing:-.02em;}
.fi-doc-hero h1 em{font-style:normal;color:var(--fi-gold,var(--fi-gold));}
.fi-doc-hero p{font-size:clamp(15px,1.5vw,18px);color:rgba(255,255,255,.78);max-width:640px;margin:0 auto;line-height:1.6;}

.fi-doc-cta{padding:30px 24px !important;border-radius:0 !important;}

.fi-docs{padding:80px 24px;background:#fafaf7;}
.fi-docs__inner{max-width:1200px;margin:0 auto;}
.fi-docs__head{text-align:center;margin-bottom:48px;}
.fi-docs__eyebrow{
  display:inline-block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--fi-gold,var(--fi-gold));font-weight:600;margin-bottom:12px;
}
.fi-docs__head h2{font-size:clamp(28px,3.4vw,42px);margin:0 0 12px;color:var(--fi-primary,var(--fi-primary));font-weight:700;letter-spacing:-.02em;}
.fi-docs__head h2 span{color:var(--fi-gold,var(--fi-gold));font-style:italic;}
.fi-docs__head p{color:#5b6a64;max-width:560px;margin:0 auto;font-size:15px;}
.fi-docs__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.fi-doc-card{
  background:#fff;border-radius:20px;overflow:hidden;border:1px solid #ecebe6;
  text-decoration:none;color:inherit;display:flex;flex-direction:column;
  transition:all .4s cubic-bezier(.2,.8,.2,1);
}
.fi-doc-card:hover{transform:translateY(-8px);box-shadow:0 30px 60px -25px rgba(10,61,46,.3);border-color:var(--fi-gold,var(--fi-gold));}
.fi-doc-card__thumb{position:relative;aspect-ratio:3/4;overflow:hidden;background:#f0eee7;}
.fi-doc-card__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.fi-doc-card:hover .fi-doc-card__thumb img{transform:scale(1.05);}
.fi-doc-card__badge{
  position:absolute;top:12px;left:12px;padding:5px 12px;border-radius:999px;
  background:rgba(10,61,46,.92);color:#fff;font-size:11px;font-weight:600;letter-spacing:.05em;
  backdrop-filter:blur(6px);
}
.fi-doc-card__badge--gold{background:var(--fi-gold,var(--fi-gold));color:var(--fi-primary);}
.fi-doc-card__body{padding:22px;flex:1;display:flex;flex-direction:column;}
.fi-doc-card__cat{
  font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--fi-gold,var(--fi-gold));
  font-weight:600;margin-bottom:8px;
}
.fi-doc-card__body h3{font-size:17px;margin:0 0 8px;color:var(--fi-primary,var(--fi-primary));font-weight:700;line-height:1.3;}
.fi-doc-card__body p{font-size:14px;color:#5b6a64;margin:0 0 16px;line-height:1.55;flex:1;}
.fi-doc-card__action{font-size:13px;font-weight:600;color:var(--fi-primary,var(--fi-primary));letter-spacing:.02em;}
.fi-doc-card:hover .fi-doc-card__action{color:var(--fi-gold,var(--fi-gold));}
.fi-docs__hint{text-align:center;margin-top:40px;color:#5b6a64;font-size:14px;}
.fi-docs__hint a{color:var(--fi-primary,var(--fi-primary));font-weight:600;text-decoration:underline;text-underline-offset:3px;}
@media (max-width:1100px){.fi-docs__grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.fi-docs__grid{grid-template-columns:1fr;}}

/* ---------- PAIEMENT ---------- */
.fi-pay-hero{
  background:linear-gradient(135deg,var(--fi-primary,var(--fi-primary)),var(--fi-primary-dark));
  color:#fff;padding:80px 24px 60px;text-align:center;position:relative;overflow:hidden;
}
.fi-pay-hero::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 30% 20%,rgba(212,175,55,.15),transparent 50%);
  pointer-events:none;
}
.fi-pay-hero__inner{position:relative;max-width:760px;margin:0 auto;}
.fi-pay-hero__eyebrow{
  display:inline-block;font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--fi-gold,var(--fi-gold));font-weight:600;margin-bottom:18px;
  padding:6px 14px;border:1px solid rgba(212,175,55,.4);border-radius:999px;background:rgba(212,175,55,.08);
}
.fi-pay-hero h1{font-size:clamp(30px,4.2vw,48px);margin:0 0 14px;font-weight:700;letter-spacing:-.02em;}
.fi-pay-hero h1 em{font-style:normal;color:var(--fi-gold,var(--fi-gold));}
.fi-pay-hero p{font-size:16px;color:rgba(255,255,255,.78);margin:0 0 28px;line-height:1.6;}
.fi-pay-hero__trust{
  list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:12px;
}
.fi-pay-hero__trust li{
  display:inline-flex;align-items:center;gap:8px;padding:8px 16px;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:999px;
  font-size:13px;color:rgba(255,255,255,.9);
}

/* progress steps */
.fi-pay-progress{max-width:900px;margin:-30px auto 0;padding:0 24px;position:relative;z-index:5;}
.fi-pay-progress ol{
  list-style:none;padding:18px 24px;margin:0;background:#fff;border-radius:16px;
  box-shadow:0 20px 50px -20px rgba(10,61,46,.25);border:1px solid #ecebe6;
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;
}
.fi-pay-progress li{
  display:flex;align-items:center;gap:10px;font-size:13px;color:#9aa39e;font-weight:600;
}
.fi-pay-progress li span{
  width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;background:#f0eee7;color:#9aa39e;font-size:12px;font-weight:700;flex-shrink:0;
}
.fi-pay-progress li.is-done{color:var(--fi-primary,var(--fi-primary));}
.fi-pay-progress li.is-done span{background:var(--fi-primary,var(--fi-primary));color:var(--fi-gold,var(--fi-gold));}
.fi-pay-progress li.is-current{color:var(--fi-gold,var(--fi-gold));}
.fi-pay-progress li.is-current span{background:var(--fi-gold,var(--fi-gold));color:var(--fi-primary);box-shadow:0 0 0 4px rgba(212,175,55,.18);}
@media (max-width:720px){
  .fi-pay-progress ol{grid-template-columns:repeat(2,1fr);}
  .fi-pay-progress li{font-size:12px;}
}

/* form card */
.fi-pay-form-section{padding:60px 24px;background:#fafaf7;}
.fi-pay-form-card{
  max-width:760px;margin:0 auto;background:#fff;border-radius:24px;overflow:hidden;
  border:1px solid #ecebe6;box-shadow:0 30px 60px -30px rgba(10,61,46,.2);
}
.fi-pay-form-card__head{padding:36px 36px 24px;border-bottom:1px solid #f0eee7;text-align:center;}
.fi-pay-form-card__eyebrow{
  display:inline-block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--fi-gold,var(--fi-gold));font-weight:600;margin-bottom:8px;
}
.fi-pay-form-card__head h2{font-size:26px;margin:0 0 8px;color:var(--fi-primary,var(--fi-primary));font-weight:700;}
.fi-pay-form-card__head p{margin:0;color:#5b6a64;font-size:14px;}
.fi-pay-form-wrapper{padding:32px 36px;}
.fi-pay-form-card__foot{padding:24px 36px 32px;background:#fafaf7;border-top:1px solid #f0eee7;}
.fi-pay-methods{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:14px;}
.fi-pay-methods span{
  padding:5px 12px;background:#fff;border:1px solid #ecebe6;border-radius:8px;
  font-size:12px;color:#5b6a64;font-weight:600;letter-spacing:.02em;
}
.fi-pay-support{text-align:center;font-size:13px;color:#5b6a64;margin:0;}
.fi-pay-support a{color:var(--fi-primary,var(--fi-primary));font-weight:600;text-decoration:underline;text-underline-offset:3px;}
@media (max-width:560px){
  .fi-pay-form-card__head,.fi-pay-form-wrapper,.fi-pay-form-card__foot{padding-left:22px;padding-right:22px;}
}

/* trust */
.fi-pay-trust{padding:60px 24px;}
.fi-pay-trust__grid{
  max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
}
.fi-pay-trust__grid > div{
  background:#fff;border:1px solid #ecebe6;border-radius:18px;padding:28px 24px;
  transition:all .3s ease;
}
.fi-pay-trust__grid > div:hover{transform:translateY(-4px);border-color:var(--fi-gold,var(--fi-gold));box-shadow:0 20px 40px -20px rgba(10,61,46,.2);}
.fi-pay-trust__grid h3{font-size:16px;margin:0 0 10px;color:var(--fi-primary,var(--fi-primary));font-weight:700;}
.fi-pay-trust__grid p{margin:0;font-size:14px;color:#5b6a64;line-height:1.6;}
@media (max-width:820px){.fi-pay-trust__grid{grid-template-columns:1fr;}}

/* ============================================================
   FIAGEF PREMIUM v6 — Polish éditorial (Africa Forum class)
   ============================================================ */

/* ---------- Google Fonts (Fraunces editorial + Inter) ---------- */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,400;1,9..144,500;1,9..144,600&family=Inter:wght@400;500;600;700&display=swap');

html, body { font-family: var(--fi-font); color: var(--fi-fg); background: var(--fi-bg); }
h1,h2,h3,h4,.fi-display{ font-family: var(--fi-font-display); letter-spacing:-.015em; }

/* ---------- Aliasing : harmonise tous les anciens hardcodes vers les tokens ---------- */
.fi-footer__newsletter,
.fi-doc-hero,
.fi-pay-hero{
  background:linear-gradient(135deg, var(--fi-primary) 0%, var(--fi-primary-dark) 100%) !important;
}
.fi-footer__newsletter::after,
.fi-doc-hero::before,
.fi-pay-hero::before{
  background:radial-gradient(900px 320px at 80% 20%, rgba(184,150,62,.22), transparent 60%) !important;
}

.fi-footer__newsletter-eyebrow,
.fi-inscription-hero__eyebrow,
.fi-doc-hero__eyebrow,
.fi-pay-hero__eyebrow,
.fi-form-card__eyebrow,
.fi-pay-form-card__eyebrow,
.fi-docs__eyebrow,
.fi-doc-card__cat{
  color: var(--fi-gold) !important;
}

/* Gold buttons & accents */
.fi-footer__badge--gold{ background:rgba(184,150,62,.16); color:var(--fi-gold); border-color:rgba(184,150,62,.35);}
.fi-footer__social a:hover{ background:var(--fi-gold); color:var(--fi-primary); border-color:var(--fi-gold); }

/* Inscription hero — italics éditorial */
.fi-inscription-hero h1 em,
.fi-doc-hero h1 em,
.fi-pay-hero h1 em{
  font-family: var(--fi-font-display);
  font-style: italic;
  font-weight: 500;
  color: var(--fi-gold);
}

/* Inscription perks : icône en cohérence palette */
.fi-inscription-perks__icon{
  background: linear-gradient(135deg, var(--fi-primary), var(--fi-primary-dark)) !important;
  color: var(--fi-gold) !important;
}
.fi-inscription-perks__item:hover{ border-color: var(--fi-gold); box-shadow: 0 24px 50px -22px rgba(0,77,20,.28); }
.fi-inscription-perks__item h3{ color: var(--fi-primary); }

/* Steps */
.fi-steps__num{
  background: var(--fi-primary) !important;
  color: var(--fi-gold) !important;
  font-family: var(--fi-font-display);
  font-weight: 600;
}
.fi-inscription-steps h2,
.fi-docs__head h2,
.fi-doc-card__body h3,
.fi-pay-form-card__head h2,
.fi-pay-trust__grid h3{
  color: var(--fi-primary) !important;
  font-family: var(--fi-font-display);
}

/* Form card assurance */
.fi-form-card__assurance{ background: var(--fi-primary-light); color: var(--fi-fg); border:1px solid rgba(0,77,20,.1); border-radius:8px;}

/* Doc cards */
.fi-doc-card{ border-color: rgba(0,77,20,.08); border-radius: var(--fi-radius); }
.fi-doc-card:hover{ border-color: var(--fi-gold); box-shadow: 0 30px 60px -25px rgba(0,77,20,.3); }
.fi-doc-card__badge{ background:rgba(0,77,20,.92); border-radius: 999px; }
.fi-doc-card__badge--gold{ background: var(--fi-gold); color: var(--fi-primary); }
.fi-doc-card__action{ color: var(--fi-primary); }
.fi-doc-card:hover .fi-doc-card__action{ color: var(--fi-gold); }
.fi-docs__hint a{ color: var(--fi-primary); }
.fi-docs{ background: #fff; }

/* Paiement */
.fi-pay-progress li.is-done{ color: var(--fi-primary); }
.fi-pay-progress li.is-done span{ background: var(--fi-primary); color: var(--fi-gold); }
.fi-pay-progress li.is-current{ color: var(--fi-gold); }
.fi-pay-progress li.is-current span{ background: var(--fi-gold); color: var(--fi-primary); box-shadow:0 0 0 4px rgba(184,150,62,.2);}
.fi-pay-form-card{ border-radius: var(--fi-radius); border-color: rgba(0,77,20,.08);}
.fi-pay-trust__grid > div:hover{ border-color: var(--fi-gold); }

/* ---------- Theme-bar : version éditoriale plus large (façon live) ---------- */
.fi-themebar{ padding: 14px 0; }
.fi-themebar__inner{ padding: 26px 24px; align-items: flex-start; }
.fi-themebar__eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family: var(--fi-font); font-size:.72rem; letter-spacing:.22em;
}
.fi-themebar__eyebrow::before{
  content:""; width:28px; height:1px; background: var(--fi-gold);
}
.fi-themebar__title{
  font-family: var(--fi-font-display);
  font-size: clamp(1.2rem, 1.5vw + .7rem, 1.85rem);
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -.005em;
}
.fi-themebar__title em{
  font-family: var(--fi-font-display);
  font-style: italic;
  font-weight: 500;
}

/* Partners head plus institutionnel */
.fi-partners{ padding: 32px 0 28px; }
.fi-partners__label{
  font-family: var(--fi-font);
  font-size:.7rem; letter-spacing:.22em;
  color: var(--fi-fg);
}
.fi-partners__hint{ font-style: italic; color: var(--fi-muted); }

/* ---------- Buttons premium ---------- */
.fi-btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding: 14px 26px; border-radius: 999px;
  font-family: var(--fi-font); font-weight: 600; font-size: 14px;
  letter-spacing:.02em; text-decoration:none; border: 1px solid transparent;
  transition: all .35s var(--fi-ease);
}
.fi-btn--primary{
  background: var(--fi-primary); color: #fff;
  box-shadow: 0 14px 30px -14px rgba(0,77,20,.6);
}
.fi-btn--primary:hover{ background:var(--fi-primary-dark); transform: translateY(-2px); box-shadow:0 20px 40px -18px rgba(0,77,20,.7);}
.fi-btn--gold{ background: var(--fi-gold); color: var(--fi-primary); }
.fi-btn--gold:hover{ background: var(--fi-gold-hover); color:#fff; transform: translateY(-2px);}
.fi-btn--ghost{ background: transparent; color: var(--fi-primary); border-color: rgba(0,77,20,.2);}
.fi-btn--ghost:hover{ background: var(--fi-primary); color:#fff; border-color: var(--fi-primary);}

/* ---------- Section heading editorial ---------- */
.fi-section h2,
.fi-objectifs h2,
.fi-vision h2{
  font-family: var(--fi-font-display);
  font-weight: 500;
  letter-spacing:-.015em;
}
.fi-section h2 em,
.fi-objectifs h2 em,
.fi-vision h2 em{
  font-style: italic;
  color: var(--fi-gold);
  font-weight: 500;
}

/* ---------- Header polish ---------- */
.fi-nav a{ font-family: var(--fi-font); letter-spacing:.01em; font-weight:500; }
.fi-cta--gold, .fi-header__cta--gold{
  background: var(--fi-gold) !important; color: var(--fi-primary) !important;
  border-radius: 999px !important;
}
.fi-cta--gold:hover{ background: var(--fi-gold-hover) !important; color:#fff !important;}

/* ---------- Footer aligné palette ---------- */
.fi-footer{ background: #0b1f14 !important; color: rgba(255,255,255,.85);}
.fi-footer__top{ border-top: 1px solid rgba(255,255,255,.06);}
.fi-footer h4{ color:#fff; font-family: var(--fi-font); letter-spacing:.05em; font-size:.78rem; text-transform:uppercase; }
.fi-footer__col a{ color: rgba(255,255,255,.72); text-decoration:none; transition: color .25s ease;}
.fi-footer__col a:hover{ color: var(--fi-gold); }
.fi-footer__bottom{ border-top:1px solid rgba(255,255,255,.06); color: rgba(255,255,255,.55); font-size:13px;}
.fi-footer__bottom a{ color: rgba(255,255,255,.7); }
.fi-footer__bottom a:hover{ color: var(--fi-gold); }
.fi-footer__legal a{ text-decoration:none; }
.fi-footer__tag{ font-family: var(--fi-font-display); font-style: italic; font-size:1rem; color: rgba(255,255,255,.78);}

/* ---------- Image lightbox & gallery polish ---------- */
.fi-gallery__filter button.is-active{ background: var(--fi-primary); color: var(--fi-gold); border-color: var(--fi-primary);}

/* ---------- Counters (au coeur) accent ---------- */
.fi-counter__num,
[data-counter]{
  font-family: var(--fi-font-display);
  font-weight: 600;
  letter-spacing:-.02em;
  color: var(--fi-primary);
  background: linear-gradient(180deg, var(--fi-primary), var(--fi-primary));
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ---------- Smooth scroll + selection ---------- */
html{ scroll-behavior: smooth; }
::selection{ background: var(--fi-gold); color: var(--fi-primary);}

/* ---------- Refinement: links underline animation ---------- */
a.fi-link, .fi-prose a{
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0% 1px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: background-size .4s var(--fi-ease);
  text-decoration: none;
}
a.fi-link:hover, .fi-prose a:hover{ background-size: 100% 1px; }

/* ---------- Mobile fine-tunes ---------- */
@media (max-width: 720px){
  .fi-themebar__inner{ padding: 22px 20px; }
  .fi-partners__head{ flex-wrap: wrap; gap: 8px; }
  .fi-partners__hint{ display:none; }
}

/* =======================================================
   CROSS-BROWSER STABILITY PATCH
   ======================================================= */

/* Backdrop-filter (Safari nécessite -webkit-) */
.fi-glass, .fi-header, .fi-theme-bar { -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }

/* Gradients text (Safari/Firefox) */
.fi-gradient-text, .fi-counter-num, [class*="fi-text-gradient"] {
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* Sticky (iOS Safari) */
.fi-sticky { position: -webkit-sticky; position: sticky; }

/* Flexbox gap fallback pour Safari < 14.1 */
@supports not (gap: 1rem) {
  .fi-grid > * + * { margin-top: 1rem; }
}

/* Empêche les sauts de layout au chargement (CLS) */
img, iframe { aspect-ratio: attr(width) / attr(height); }

/* Scrollbar discrète et identique partout */
* { scrollbar-width: thin; scrollbar-color: var(--fi-primary) transparent; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb { background: var(--fi-primary); border-radius: 10px; }

/* Focus visible accessible et homogène */
:focus-visible { outline: 2px solid var(--fi-gold); outline-offset: 2px; border-radius: 4px; }

/* Print */
@media print {
  .fi-header, .fi-theme-bar, .fi-footer, .fi-burger, video { display: none !important; }
  body { background: #fff !important; color: #000 !important; }
}

/* =====================================================================
   v9 — PREMIUM PATCH (fixes & polish for inscrire / aucoeur / image / contacts)
   ===================================================================== */

/* --- Aliases pour anciennes variables manquantes (évite styles cassés) --- */
:root{
  --fi-deep: #0A4318;          /* alias vers vert profond */
  --fi-cyan: var(--fi-accent); /* le "cyan" historique = teal du logo */
  --fi-ivory: var(--fi-bg);
}

/* --- Force l'institutionnel : titres en vert profond, pas en cyan vif --- */
.fi-page h1,
.fi-page h2,
.wp-site-blocks h1.wp-block-heading,
.wp-site-blocks h2.wp-block-heading,
.fi-form-card h2,
.fi-download h2,
.fi-inscription-steps h2 {
  color: var(--fi-fg) !important;
  font-family: var(--fi-font-display);
  letter-spacing: -0.02em;
  line-height: 1.1;
}
.fi-page h1 em,
.fi-page h2 em { color: var(--fi-gold); font-style: italic; font-weight: 600; }

/* =========================================================
   1) PAGE INSCRIPTION — Hero & Forminator premium
   ========================================================= */
.fi-inscription-hero{
  position: relative;
  background: linear-gradient(135deg, #0A4318 0%, #0F6022 60%, #166D8A 130%);
  color: #fff;
  padding: 110px 24px 90px;
  text-align: center;
  overflow: hidden;
  isolation: isolate;
}
.fi-inscription-hero::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(900px 400px at 15% 0%, rgba(201,162,75,.18), transparent 70%),
    radial-gradient(700px 350px at 90% 100%, rgba(30,138,174,.20), transparent 70%);
  z-index:-1;
}
.fi-inscription-hero__inner{ max-width: 880px; margin: 0 auto; }
.fi-inscription-hero h1{
  color:#fff !important;
  font-size: clamp(2.4rem, 5vw, 4rem);
  margin: 14px 0 18px;
}
.fi-inscription-hero h1 em{ color: var(--fi-gold); font-style: italic; }
.fi-inscription-hero p{ color: rgba(255,255,255,.85); font-size: 1.1rem; max-width: 640px; margin: 0 auto; }
.fi-inscription-hero__eyebrow{
  display:inline-block; padding: 6px 16px; border:1px solid rgba(201,162,75,.5);
  border-radius:999px; color:var(--fi-gold); font-size:.78rem; letter-spacing:.18em;
  text-transform:uppercase; font-weight:600;
}
.fi-inscription-hero__meta{
  margin-top: 36px; display:flex; justify-content:center; gap:18px;
  flex-wrap:wrap; color: rgba(255,255,255,.78); font-size:.95rem;
}

/* Avantages */
.fi-inscription-perks{ padding: 80px 24px; background: var(--fi-bg); }
.fi-inscription-perks__grid{
  max-width: 1200px; margin:0 auto;
  display:grid; grid-template-columns: repeat(auto-fit, minmax(240px,1fr)); gap: 24px;
}
.fi-inscription-perks__item{
  background:#fff; padding: 32px 26px; border-radius: 12px;
  border: 1px solid var(--fi-border);
  box-shadow: var(--fi-shadow-sm);
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.fi-inscription-perks__item:hover{
  transform: translateY(-6px);
  border-color: var(--fi-gold);
  box-shadow: 0 18px 50px rgba(15,96,34,.12);
}
.fi-inscription-perks__icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:48px; height:48px; border-radius:12px;
  background: var(--fi-primary-light); color: var(--fi-primary); margin-bottom:18px;
}
.fi-inscription-perks__item h3{ font-family: var(--fi-font-display); color: var(--fi-fg); font-size:1.2rem; margin:0 0 8px; }
.fi-inscription-perks__item p{ color: var(--fi-muted); font-size:.95rem; line-height:1.6; margin:0; }

/* Étapes */
.fi-inscription-steps{ padding: 80px 24px; max-width: 1200px; margin:0 auto; }
.fi-inscription-steps h2{ text-align:center; font-size: clamp(2rem, 3.5vw, 2.6rem); margin-bottom: 50px; }
.fi-steps{ list-style:none; padding:0; display:grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap:24px; counter-reset: steps; }
.fi-steps li{ position:relative; padding: 28px 24px; background:#fff; border-radius:12px; border:1px solid var(--fi-border); }
.fi-steps__num{ font-family: var(--fi-font-display); font-size: 2.4rem; color: var(--fi-gold); display:block; line-height:1; margin-bottom:12px; }
.fi-steps li h3{ font-family: var(--fi-font-display); color: var(--fi-fg); font-size:1.05rem; margin:0 0 8px; }
.fi-steps li p{ color: var(--fi-muted); font-size:.92rem; line-height:1.55; margin:0; }

/* Form card — englobe Forminator */
.fi-form-section{ padding: 60px 24px 100px; background: linear-gradient(180deg, var(--fi-bg) 0%, #fff 100%); }
.fi-form-card{
  max-width: 880px; margin: 0 auto;
  background:#fff; padding: 48px clamp(24px, 5vw, 56px);
  border-radius: 16px; border: 1px solid var(--fi-border);
  box-shadow: 0 30px 80px rgba(15,96,34,.08);
}
.fi-form-card h2{ margin: 8px 0 12px; font-size: clamp(1.8rem, 3vw, 2.4rem); }
.fi-form-card > p{ color: var(--fi-muted); margin-bottom: 32px; }
.fi-form-wrapper{ margin-top: 8px; }

/* Forminator polish (radios/inputs/buttons) */
.fi-form-wrapper .forminator-input,
.fi-form-wrapper .forminator-textarea,
.fi-form-wrapper input[type=text],
.fi-form-wrapper input[type=email],
.fi-form-wrapper input[type=tel],
.fi-form-wrapper input[type=number],
.fi-form-wrapper select,
.fi-form-wrapper textarea{
  width:100%; padding: 12px 14px; border:1px solid var(--fi-border);
  border-radius: 8px; background:#fff; color: var(--fi-fg);
  font: 400 .95rem var(--fi-font); transition: border-color .25s, box-shadow .25s;
}
.fi-form-wrapper .forminator-input:focus,
.fi-form-wrapper input:focus, .fi-form-wrapper select:focus, .fi-form-wrapper textarea:focus{
  outline:none; border-color: var(--fi-primary);
  box-shadow: 0 0 0 4px rgba(15,96,34,.12);
}
.fi-form-wrapper label{ font-weight:500; color: var(--fi-fg); font-size:.92rem; }
.fi-form-wrapper .forminator-radio,
.fi-form-wrapper .forminator-checkbox{
  display:flex; align-items:center; gap:10px; padding:10px 14px;
  border:1px solid var(--fi-border); border-radius:8px; margin:6px 0;
  cursor:pointer; transition: border-color .2s, background .2s;
}
.fi-form-wrapper .forminator-radio:hover,
.fi-form-wrapper .forminator-checkbox:hover{ border-color: var(--fi-primary); background: var(--fi-primary-light); }
.fi-form-wrapper .forminator-button,
.fi-form-wrapper button[type=submit]{
  background: var(--fi-primary); color:#fff; border:none; padding: 12px 28px;
  border-radius: 8px; font-weight:600; cursor:pointer; transition: background .25s, transform .25s;
}
.fi-form-wrapper .forminator-button:hover{ background: var(--fi-primary-dark); transform: translateY(-2px); }

/* Download CTA */
.fi-download{ text-align:center; padding: 60px 24px; }
.fi-download h2{ margin-bottom: 8px; }

/* =========================================================
   2) PAGE AU-COEUR — Hero overlay + lisibilité
   ========================================================= */
.wp-site-blocks .wp-block-cover{ position: relative; }
.wp-site-blocks .wp-block-cover .wp-block-cover__inner-container{
  position: relative; z-index: 2; max-width: 1100px; padding: 24px;
}
.wp-site-blocks .wp-block-cover h1,
.wp-site-blocks .wp-block-cover h2{
  color:#fff !important;
  text-shadow: 0 4px 24px rgba(0,0,0,.55);
  font-family: var(--fi-font-display);
  letter-spacing: -.01em;
}
.wp-site-blocks .wp-block-cover h1 strong,
.wp-site-blocks .wp-block-cover h2 strong{
  display:block; max-width: 1000px; margin: 14px auto 0;
  font-weight: 600; font-size: clamp(1.6rem, 3.2vw, 2.6rem); line-height:1.25;
}
.wp-site-blocks .wp-block-cover .has-background-dim,
.wp-site-blocks .wp-block-cover .has-background-dim-60,
.wp-site-blocks .wp-block-cover .has-background-dim-70{
  background: linear-gradient(135deg, rgba(10,67,24,.78), rgba(10,30,15,.65)) !important;
}

/* =========================================================
   3) PAGE CONTACTS — Fix variables manquantes + premium
   ========================================================= */
.fi-contact-premium{
  background: linear-gradient(135deg, #0A4318 0%, #0F6022 100%) !important;
  position:relative; overflow:hidden; isolation:isolate;
}
.fi-contact-premium::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(800px 400px at 0% 0%, rgba(201,162,75,.18), transparent 70%),
    radial-gradient(700px 400px at 100% 100%, rgba(30,138,174,.18), transparent 70%);
}
.fi-contact-left .fi-eyebrow{
  display:inline-block; color: var(--fi-gold); letter-spacing:.18em;
  text-transform:uppercase; font-size:.78rem; font-weight:600; margin-bottom: 16px;
}
.fi-contact-left h2{ color:#fff !important; font-size: clamp(2rem, 4vw, 3rem); line-height:1.15; }
.fi-contact-left h2 span{ color: var(--fi-gold) !important; font-style: italic; font-family: var(--fi-font-display); }
.fi-contact-left p{ color: rgba(255,255,255,.85); font-size: 1.05rem; max-width: 460px; line-height:1.6; }
.fi-contact-card strong{
  display:block; color: var(--fi-gold); text-transform:uppercase; letter-spacing:.14em;
  font-size:.75rem; margin-bottom:8px;
}
.fi-contact-card p{ color:#fff; font-size:1.02rem; margin:0 0 4px; word-break:break-word; }
.fi-contact-card small{ color: rgba(255,255,255,.65); font-size:.85rem; }
.fi-contact-actions .fi-btn{
  display:inline-flex; align-items:center; padding: 14px 28px;
  background: var(--fi-gold); color: #0A2410; border-radius: 8px; font-weight:600;
  text-decoration:none; transition: transform .25s, background .25s, box-shadow .25s;
}
.fi-contact-actions .fi-btn:hover{ background: var(--fi-gold-hover); transform: translateY(-2px); box-shadow: 0 12px 30px rgba(201,162,75,.3); }
.fi-contact-actions .fi-btn-outline{
  background: transparent; color:#fff; border:1.5px solid rgba(255,255,255,.4);
}
.fi-contact-actions .fi-btn-outline:hover{ border-color: var(--fi-gold); color: var(--fi-gold); background: rgba(201,162,75,.06); }

@media (max-width: 860px){
  .fi-contact-inner{ flex-direction: column; gap: 40px; }
  .fi-contact-premium{ padding: 70px 20px !important; }
}

/* =========================================================
   4) PAGE IMAGES — Galerie premium + lightbox-friendly
   ========================================================= */
.fi-gallery-bank{ padding: 90px 24px; background: var(--fi-bg); }
.fi-gallery-bank__inner{ max-width: 1280px; margin:0 auto; }
.fi-gallery-bank__head{
  display:flex; justify-content:space-between; align-items:flex-end;
  flex-wrap:wrap; gap: 24px; margin-bottom: 40px;
  padding-bottom: 24px; border-bottom: 1px solid var(--fi-border);
}
.fi-gallery-bank__eyebrow{
  color: var(--fi-gold); letter-spacing:.18em; text-transform:uppercase;
  font-size:.78rem; font-weight:600; display:block; margin-bottom: 8px;
}
.fi-gallery-bank__title{
  font-family: var(--fi-font-display); color: var(--fi-fg);
  font-size: clamp(1.8rem, 3.2vw, 2.6rem); margin:0; line-height:1.1;
}
.fi-gallery-bank__filters{ display:flex; gap: 8px; flex-wrap:wrap; }
.fi-gallery-bank__filters button{
  padding: 8px 18px; border-radius: 999px; border: 1px solid var(--fi-border);
  background: #fff; color: var(--fi-fg); font: 500 .88rem var(--fi-font);
  cursor:pointer; transition: all .25s;
}
.fi-gallery-bank__filters button:hover{ border-color: var(--fi-primary); color: var(--fi-primary); }
.fi-gallery-bank__filters button.is-active{
  background: var(--fi-primary); color:#fff; border-color: var(--fi-primary);
}
.fi-gallery-bank__grid{
  display:grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr));
  gap: 16px;
}
.fi-gallery-bank__item{
  position:relative; overflow:hidden; border-radius: 10px;
  aspect-ratio: 4/3; margin:0; cursor: zoom-in;
  box-shadow: var(--fi-shadow-sm);
}
.fi-gallery-bank__item.is-hidden{ display:none; }
.fi-gallery-bank__item img{
  width:100%; height:100%; object-fit:cover;
  transition: transform .6s cubic-bezier(.2,.8,.2,1);
}
.fi-gallery-bank__item:hover img{ transform: scale(1.06); }
.fi-gallery-bank__item figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding: 18px 16px 14px;
  background: linear-gradient(to top, rgba(10,30,15,.92), transparent);
  color:#fff; font-size:.88rem; font-weight:500;
  transform: translateY(100%); transition: transform .35s ease;
}
.fi-gallery-bank__item:hover figcaption{ transform: translateY(0); }

@media (max-width: 600px){
  .fi-gallery-bank__head{ flex-direction:column; align-items:flex-start; }
}

/* =======================================================
   FIX v5 — Menu mobile opaque + Select formulaire opaque
   (priorité maximale pour battre Elementor / styles tiers)
   ======================================================= */

/* --- Menu mobile : fond blanc plein, jamais transparent --- */
.fi-mobile-nav,
.fi-mobile-nav.is-open,
nav.fi-mobile-nav,
.elementor .fi-mobile-nav,
aside.fi-mobile-nav {
  background: #ffffff !important;
  background-color: #ffffff !important;
  opacity: 1 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  z-index: 100000 !important;
  pointer-events: auto !important;
}

/* Liens du menu mobile : pleinement cliquables et lisibles */
.fi-mobile-nav * {
  pointer-events: auto !important;
}
.fi-mobile-nav ul,
.fi-mobile-nav li,
.fi-mobile-nav a {
  background: transparent !important;
  color: #0b1f14 !important;
  opacity: 1 !important;
}
.fi-mobile-nav ul a {
  display: block !important;
  padding: 16px 4px !important;
  font-size: 1.15rem !important;
  font-weight: 500 !important;
  border-bottom: 1px solid rgba(11,31,20,.08) !important;
  text-decoration: none !important;
}
.fi-mobile-nav ul a:hover,
.fi-mobile-nav ul a:focus {
  color: #0F6022 !important;
  background: rgba(15,96,34,.04) !important;
}

/* Overlay : sous le drawer, jamais au-dessus */
.fi-mobile-overlay {
  z-index: 99998 !important;
  background: rgba(11, 31, 20, 0.55) !important;
  backdrop-filter: blur(3px) !important;
  -webkit-backdrop-filter: blur(3px) !important;
}

/* Burger toujours cliquable */
.fi-burger {
  position: relative !important;
  z-index: 100001 !important;
  pointer-events: auto !important;
}

/* État ouvert : fige bien le scroll du body */
body.fi-no-scroll {
  overflow: hidden !important;
  position: relative !important;
}

/* Désactive tout autre menu mobile concurrent (Elementor / WP par défaut)
   qui pourrait s'afficher par-dessus en transparent */
.fi-mobile-nav.is-open ~ .elementor-menu-toggle__icon,
.fi-mobile-nav.is-open ~ .e--pointer-double-line { display: none !important; }

/* =======================================================
   FORMULAIRE /sinscrire/ — selects (Pays, Fonction, etc.)
   Fond opaque garanti
   ======================================================= */
form select,
.fi-form select,
.elementor-field select,
select.country-select,
select#pays,
select[name*="pays"],
select[name*="country"],
select[name*="fonction"] {
  background-color: #ffffff !important;
  background: #ffffff !important;
  color: #0b1f14 !important;
  border: 1px solid #c9a85a !important;
  border-radius: 6px !important;
  padding: 12px 14px !important;
  font-size: 1rem !important;
  appearance: auto !important;
  -webkit-appearance: menulist !important;
  opacity: 1 !important;
}

form select option,
.elementor-field select option {
  background-color: #ffffff !important;
  color: #0b1f14 !important;
}

/* Si un dropdown personnalisé (div) est utilisé pour les pays */
.country-dropdown,
.select2-dropdown,
.select-dropdown,
[class*="country-list"],
[class*="select-options"] {
  background: #ffffff !important;
  background-color: #ffffff !important;
  border: 1px solid #c9a85a !important;
  box-shadow: 0 12px 30px rgba(11,31,20,.18) !important;
  opacity: 1 !important;
  z-index: 99999 !important;
}
.country-dropdown li,
.select2-results__option,
[class*="country-list"] li {
  background: #ffffff !important;
  color: #0b1f14 !important;
  padding: 10px 14px !important;
}
.country-dropdown li:hover,
.select2-results__option--highlighted,
[class*="country-list"] li:hover {
  background: #f4ecd8 !important;
  color: #0F6022 !important;
}

/* =======================================================
   FIX v6 — Menu mobile Elementor / WP Nav opaque & cliquable
   Combo Pays Forminator opaque & au-dessus
   Galerie /images/ — captions visibles en mobile
   ======================================================= */

/* ---------- 1) MENU MOBILE ELEMENTOR (drawer/dropdown) ---------- */
/* Couvre Nav Menu (Pro) en mode "Dropdown" et le widget WordPress Menu */
.elementor-nav-menu--dropdown,
.elementor-nav-menu__container.elementor-nav-menu--dropdown,
nav.elementor-nav-menu--dropdown {
  background: #ffffff !important;
  background-color: #ffffff !important;
  opacity: 1 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  filter: none !important;
  z-index: 100000 !important;
  pointer-events: auto !important;
  box-shadow: 0 14px 40px rgba(11,31,20,.12) !important;
  border-top: 1px solid rgba(11,31,20,.06) !important;
}
.elementor-nav-menu--dropdown ul,
.elementor-nav-menu--dropdown li,
.elementor-nav-menu--dropdown a,
.elementor-nav-menu--dropdown .elementor-item {
  background: transparent !important;
  color: #0b1f14 !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}
.elementor-nav-menu--dropdown a,
.elementor-nav-menu--dropdown .elementor-item {
  display: block !important;
  padding: 16px 22px !important;
  font-size: 1.05rem !important;
  font-weight: 500 !important;
  border-bottom: 1px solid rgba(11,31,20,.07) !important;
  text-decoration: none !important;
  letter-spacing: 0 !important;
}
.elementor-nav-menu--dropdown a:hover,
.elementor-nav-menu--dropdown .elementor-item:hover,
.elementor-nav-menu--dropdown .elementor-item:focus,
.elementor-nav-menu--dropdown .elementor-item.elementor-item-active {
  color: #0F6022 !important;
  background: rgba(15,96,34,.05) !important;
}

/* Bouton burger Elementor toujours cliquable */
.elementor-menu-toggle {
  z-index: 100001 !important;
  pointer-events: auto !important;
  background: transparent !important;
  color: #0b1f14 !important;
}

/* ---------- 2) MENU MOBILE WP CORE BLOCK NAVIGATION ---------- */
.wp-block-navigation__responsive-container,
.wp-block-navigation__responsive-container.is-menu-open {
  background: #ffffff !important;
  background-color: #ffffff !important;
  opacity: 1 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  z-index: 100000 !important;
  pointer-events: auto !important;
}
.wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container .wp-block-navigation-item__content {
  color: #0b1f14 !important;
  opacity: 1 !important;
}
.wp-block-navigation__responsive-container .wp-block-navigation-item__content {
  display: block !important;
  padding: 14px 18px !important;
  font-size: 1.05rem !important;
  font-weight: 500 !important;
  border-bottom: 1px solid rgba(11,31,20,.07) !important;
}
.wp-block-navigation__responsive-container-close,
.wp-block-navigation__responsive-container-open {
  color: #0b1f14 !important;
  z-index: 100001 !important;
  pointer-events: auto !important;
}

/* ---------- 3) FORMINATOR — Combo Pays / selects custom ---------- */
/* Forminator utilise des dropdowns custom : .forminator-select, .forminator-custom-select,
   .select2 (Select2 lib), .sui-select. On force le fond opaque + z-index au-dessus du form. */
.forminator-ui .forminator-select,
.forminator-ui select.forminator-select-field,
.forminator-custom-form select,
.forminator-custom-form .forminator-input,
.forminator-ui .select2-selection,
.forminator-ui .select2-selection--single,
.forminator-ui .select2-selection--multiple {
  background: #ffffff !important;
  background-color: #ffffff !important;
  color: #0b1f14 !important;
  border: 1px solid var(--fi-border, #d9d2bf) !important;
  border-radius: 8px !important;
  min-height: 46px !important;
  padding: 10px 14px !important;
  opacity: 1 !important;
  appearance: auto !important;
}
/* Le panneau déroulant (liste Select2 / Forminator custom) — DOIT être au-dessus */
.select2-container,
.select2-container--open,
.select2-dropdown,
.select2-dropdown--above,
.select2-dropdown--below,
.forminator-select-dropdown,
.forminator-select-list,
.forminator-custom-select-list,
ul.forminator-select-list {
  background: #ffffff !important;
  background-color: #ffffff !important;
  color: #0b1f14 !important;
  border: 1px solid var(--fi-border, #d9d2bf) !important;
  box-shadow: 0 18px 40px rgba(11,31,20,.18) !important;
  opacity: 1 !important;
  z-index: 999999 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.select2-results,
.select2-results__options,
.forminator-select-list li,
.forminator-custom-select-list li {
  background: #ffffff !important;
  color: #0b1f14 !important;
  max-height: 280px !important;
  overflow-y: auto !important;
}
.select2-results__option {
  padding: 10px 14px !important;
  background: #ffffff !important;
  color: #0b1f14 !important;
}
.select2-results__option--highlighted,
.select2-results__option[aria-selected="true"],
.forminator-select-list li:hover,
.forminator-custom-select-list li:hover {
  background: rgba(15,96,34,.08) !important;
  color: #0F6022 !important;
}
/* Champ de recherche dans le dropdown Select2 */
.select2-search--dropdown .select2-search__field {
  background: #ffffff !important;
  border: 1px solid var(--fi-border, #d9d2bf) !important;
  border-radius: 6px !important;
  padding: 8px 10px !important;
  color: #0b1f14 !important;
}

/* Empêche les autres champs du formulaire de chevaucher le dropdown ouvert */
.forminator-ui .forminator-row,
.forminator-ui .forminator-col {
  position: relative;
}
.forminator-ui .forminator-field--open,
.forminator-ui .forminator-field.has-open-dropdown {
  z-index: 50 !important;
}

/* ---------- 4) PAGE /images/ — Galerie premium ---------- */
.fi-gallery-bank {
  padding: 70px 20px 90px;
}
/* Caption toujours visible sur mobile (pas de hover possible) */
@media (max-width: 768px) {
  .fi-gallery-bank__grid {
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)) !important;
    gap: 10px !important;
  }
  .fi-gallery-bank__item figcaption {
    transform: translateY(0) !important;
    opacity: 1 !important;
    font-size: 0.78rem !important;
    padding: 10px 12px !important;
    background: linear-gradient(to top, rgba(10,30,15,.94) 30%, rgba(10,30,15,0)) !important;
  }
  .fi-gallery-bank__filters {
    width: 100%;
    overflow-x: auto;
    flex-wrap: nowrap !important;
    scrollbar-width: none;
    padding-bottom: 4px;
  }
  .fi-gallery-bank__filters::-webkit-scrollbar { display: none; }
  .fi-gallery-bank__filters button {
    white-space: nowrap;
    flex-shrink: 0;
  }
}
/* Bordure dorée discrète sur hover desktop */
@media (min-width: 769px) {
  .fi-gallery-bank__item {
    transition: transform .4s var(--fi-ease), box-shadow .4s var(--fi-ease);
  }
  .fi-gallery-bank__item:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(11,31,20,.18);
  }
}
/* Badge catégorie en haut à gauche */
.fi-gallery-bank__item[data-cat]::before {
  content: attr(data-cat);
  position: absolute;
  top: 10px; left: 10px;
  z-index: 3;
  background: rgba(255,255,255,.92);
  color: #0F6022;
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  pointer-events: none;
  opacity: 0;
  transition: opacity .3s var(--fi-ease);
}
.fi-gallery-bank__item:hover::before { opacity: 1; }
@media (max-width: 768px) {
  .fi-gallery-bank__item[data-cat]::before { opacity: 1; font-size: 0.58rem; padding: 3px 8px; }
}
