@charset "UTF-8";
/* =============================================================
   FREEZEO ÉNERGIE — feuille de style
   -------------------------------------------------------------
   Fichier unique, chargé par les six pages du site.
   Tous les sélecteurs sont portés par #fz-site et préfixés .fz-
   afin qu'aucune règle du thème WordPress ne puisse les écraser,
   et qu'aucune règle d'ici ne puisse casser le thème.

   SOMMAIRE
    1. Variables de thème
    2. Réinitialisation locale
    3. Typographie
    4. Utilitaires de mise en page
    5. Boutons et liens d'action
    6. Fil conducteur (indicateur de progression)
    7. En-tête et navigation
    8. Barre d'action mobile
    9. Hero animé (accueil)
   10. Hero court (pages intérieures)
   11. Bandeau de réassurance
   12. Cartes de prestation
   13. Bandeau d'appel à l'action
   14. Portrait et fiche d'identité
   15. Étapes de la méthode
   16. Simulateur de devis
   17. Formulaires
   18. Réalisations
   19. Avis clients
   20. Questions fréquentes
   21. Zone d'intervention
   22. Contact
   23. Partenaires, labels, logos et chiffres
   24. Blocs de service (page services)
   25. Pied de page
   26. Préférences de mouvement réduit
   ============================================================= */


/* 1. VARIABLES DE THÈME ====================================== */
#fz-site {
  /* Palette reprise du logo */
  --fz-nuit: #071A33;
  --fz-nuit-2: #0C2748;
  --fz-bleu: #1B4FA8;
  --fz-bleu-vif: #2F7FD4;
  --fz-cyan: #7BCDF2;
  --fz-orange: #F2661E;
  --fz-orange-sombre: #DE5613;
  --fz-orange-clair: #FF9A3C;
  --fz-acier: #98A6B8;
  --fz-glace: #F1F5F9;
  --fz-blanc: #FFFFFF;

  /* Texte */
  --fz-encre: #0E1B2C;
  --fz-encre-2: #55677E;
  --fz-encre-inv: #E8EEF6;
  --fz-encre-inv-2: rgba(232, 238, 246, .68);

  /* Traits et ombres */
  --fz-filet: rgba(14, 27, 44, .11);
  --fz-filet-inv: rgba(255, 255, 255, .13);
  --fz-ombre: 0 1px 2px rgba(7, 26, 51, .05), 0 8px 24px -12px rgba(7, 26, 51, .18);
  --fz-ombre-forte: 0 2px 4px rgba(7, 26, 51, .06), 0 22px 48px -20px rgba(7, 26, 51, .32);

  /* Typographie */
  --fz-police-titre: 'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --fz-police-recit: 'Source Serif 4', Georgia, 'Times New Roman', serif;

  /* Rythme */
  --fz-largeur: 1220px;
  --fz-gouttiere: clamp(20px, 5vw, 56px);
  --fz-section: clamp(72px, 8.5vw, 120px);
  --fz-rayon: 12px;
  --fz-rayon-s: 8px;
}


/* 2. RÉINITIALISATION LOCALE ================================= */
#fz-site {
  box-sizing: border-box;
  background: var(--fz-blanc);
  color: var(--fz-encre);
  font-family: var(--fz-police-titre);
  font-size: 16.5px;
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}
#fz-site *,
#fz-site *::before,
#fz-site *::after { box-sizing: border-box; }

#fz-site h1, #fz-site h2, #fz-site h3, #fz-site h4,
#fz-site p, #fz-site ul, #fz-site ol, #fz-site figure,
#fz-site blockquote, #fz-site dl, #fz-site dd, #fz-site dt { margin: 0; padding: 0; }

#fz-site ul, #fz-site ol { list-style: none; }
#fz-site img { display: block; max-width: 100%; height: auto; }
#fz-site a { color: inherit; text-decoration: none; }
#fz-site button, #fz-site input, #fz-site select, #fz-site textarea { font: inherit; color: inherit; }

#fz-site a:focus-visible,
#fz-site button:focus-visible,
#fz-site input:focus-visible,
#fz-site textarea:focus-visible,
#fz-site summary:focus-visible {
  outline: 2.5px solid var(--fz-orange);
  outline-offset: 3px;
  border-radius: 3px;
}

/* Lien d'évitement, visible uniquement au clavier */
#fz-site .fz-saut {
  position: absolute; left: -9999px; top: 0; z-index: 200;
  padding: 12px 18px; background: var(--fz-nuit); color: #fff;
}
#fz-site .fz-saut:focus { left: 12px; top: 12px; }

html { scroll-behavior: smooth; }


/* 3. TYPOGRAPHIE ============================================= */
#fz-site h1, #fz-site h2, #fz-site h3, #fz-site h4 {
  font-family: var(--fz-police-titre);
  font-weight: 700;
  letter-spacing: -.028em;
  line-height: 1.05;
  text-wrap: balance;
}
#fz-site .fz-t1 { font-size: clamp(1.95rem, 3.4vw, 2.7rem); line-height: 1.04; }
#fz-site .fz-t2 { font-size: clamp(1.8rem, 3.2vw, 2.5rem); }
#fz-site .fz-t3 { font-size: clamp(1.16rem, 1.6vw, 1.34rem); letter-spacing: -.018em; }
#fz-site .fz-h1-sous {
  display: block; margin-top: 14px;
  font-size: clamp(.98rem, 1.5vw, 1.16rem); font-weight: 500; letter-spacing: -.01em;
  line-height: 1.4; color: rgba(232, 238, 246, .74);
}
#fz-site .fz-t4 { font-size: 1.02rem; font-weight: 600; letter-spacing: -.01em; line-height: 1.25; }

#fz-site .fz-lead { font-size: clamp(1.03rem, 1.4vw, 1.16rem); line-height: 1.58; color: var(--fz-encre-2); }
#fz-site .fz-mention { font-size: .85rem; line-height: 1.5; color: var(--fz-encre-2); margin-top: 14px; }

/* Récit à la première personne : la seule zone en serif */
#fz-site .fz-recit { font-family: var(--fz-police-recit); font-size: 1.09rem; line-height: 1.76; }
#fz-site .fz-recit p { max-width: 62ch; margin-bottom: 20px; }
#fz-site .fz-recit p:last-child { margin-bottom: 0; }
#fz-site h2 + .fz-recit { margin-top: 26px; }

#fz-site .fz-citation {
  margin: 30px 0;
  padding: 6px 0 6px 24px;
  border-left: 3px solid var(--fz-orange);
  font-family: var(--fz-police-recit);
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: -.01em;
  max-width: 46ch;
}

/* Liste à puces carrées, réutilisée dans plusieurs sections */
#fz-site .fz-liste { display: grid; gap: 9px; }
#fz-site .fz-liste li {
  position: relative; padding-left: 19px;
  font-size: .98rem; line-height: 1.55;
}
#fz-site .fz-liste li::before {
  content: ""; position: absolute; left: 0; top: .58em;
  width: 7px; height: 7px; border-radius: 2px; background: var(--fz-orange);
}
#fz-site .fz-liste strong { font-weight: 600; }


/* 4. UTILITAIRES DE MISE EN PAGE ============================= */
#fz-site, #fz-site .fz-wrap, #fz-site .fz-sec { max-width: 100%; }

/* --- Retour à la ligne forcé ----------------------------------
   Plusieurs thèmes et constructeurs de pages appliquent
   white-space: nowrap aux éléments <button>. Le texte sort alors
   du cadre au lieu de passer à la ligne. On rétablit le
   comportement normal partout où un texte peut être long, et on
   autorise la coupure des mots trop longs.
   Les rares endroits qui doivent rester sur une ligne — le
   téléphone, les liens de navigation — redéclarent nowrap
   plus bas dans cette feuille.                                 */
#fz-site .fz-choix button,
#fz-site .fz-choix button *,
#fz-site .fz-btn,
#fz-site .fz-presta-item *,
#fz-site .fz-label *,
#fz-site .fz-marque *,
#fz-site .fz-chantier-txt *,
#fz-site .fz-departement *,
#fz-site .fz-logo figcaption,
#fz-site .fz-recap span,
#fz-site .fz-aides-detail *,
#fz-site .fz-verdict *,
#fz-site .fz-simu-corps *,
#fz-site .fz-suggestions * { white-space: normal; }

#fz-site .fz-choix button { min-width: 0; overflow: hidden; }
#fz-site .fz-choix b, #fz-site .fz-choix em,
#fz-site .fz-label strong, #fz-site .fz-label span { overflow-wrap: break-word; }
#fz-site .fz-choix b, #fz-site .fz-choix em { display: block; max-width: 100%; }
#fz-site .fz-wrap {
  max-width: var(--fz-largeur);
  margin: 0 auto;
  padding-left: var(--fz-gouttiere);
  padding-right: var(--fz-gouttiere);
}
#fz-site .fz-sec { position: relative; padding-top: var(--fz-section); padding-bottom: var(--fz-section); }
#fz-site .fz-sec--blanc  { background: var(--fz-blanc); }
#fz-site .fz-sec--glace  { background: var(--fz-glace); }
#fz-site .fz-sec--sombre { background: var(--fz-nuit); color: var(--fz-encre-inv); }
#fz-site .fz-sec--sans-haut { padding-top: 0; }

#fz-site .fz-sec--sombre h2,
#fz-site .fz-sec--sombre h3 { color: #fff; }
#fz-site .fz-sec--sombre .fz-lead,
#fz-site .fz-sec--sombre .fz-recit,
#fz-site .fz-sec--sombre .fz-mention { color: var(--fz-encre-inv-2); }

#fz-site .fz-mesure { max-width: 62ch; }
#fz-site .fz-mesure h2 { margin-top: 40px; }
#fz-site .fz-mesure > h2:first-child { margin-top: 0; }
/* Respiration entre paragraphes successifs dans les zones de texte long */
#fz-site .fz-duo p + p,
#fz-site .fz-mesure p + p,
#fz-site .fz-service p + p { margin-top: 14px; }
#fz-site .fz-mesure-courte { max-width: 50ch; }

#fz-site .fz-entete { margin-bottom: clamp(36px, 4.5vw, 58px); }
#fz-site .fz-entete p { margin-top: 16px; }
#fz-site .fz-entete--centre { text-align: center; }
#fz-site .fz-entete--centre .fz-repere { justify-content: center; }
#fz-site .fz-entete--centre .fz-mesure,
#fz-site .fz-entete--centre .fz-mesure-courte { margin-left: auto; margin-right: auto; }

/* Intitulé de section */
#fz-site .fz-repere {
  display: flex; align-items: center; gap: 11px;
  margin-bottom: 16px;
  font-size: .82rem; font-weight: 600; color: var(--fz-bleu);
}
#fz-site .fz-repere::before {
  content: ""; flex: 0 0 auto; width: 28px; height: 2px;
  background: linear-gradient(90deg, var(--fz-bleu-vif), var(--fz-orange));
}
#fz-site .fz-sec--sombre .fz-repere { color: var(--fz-cyan); }

/* Colonnes */
#fz-site .fz-duo {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: start;
}
@media (max-width: 900px) { #fz-site .fz-duo { grid-template-columns: 1fr; } }


/* 5. BOUTONS ET LIENS D'ACTION =============================== */
#fz-site .fz-actions { display: flex; flex-wrap: wrap; gap: 12px; }
#fz-site .fz-actions--haut { margin-top: 32px; }
#fz-site .fz-espace { margin-top: 32px; }
#fz-site .fz-actions--colonne { flex-direction: column; align-items: stretch; }

#fz-site .fz-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 54px; padding: 15px 26px;
  border: 1.5px solid transparent; border-radius: 6px;
  font-weight: 600; font-size: 1rem; letter-spacing: -.01em; text-align: center;
  cursor: pointer;
  transition: background-color .2s, color .2s, border-color .2s, box-shadow .2s, transform .12s;
}
#fz-site .fz-btn:active { transform: translateY(1px); }

#fz-site .fz-btn--plein {
  background: var(--fz-orange); color: #fff; border-color: var(--fz-orange);
  box-shadow: 0 1px 2px rgba(242, 102, 30, .2), 0 10px 24px -12px rgba(242, 102, 30, .7);
}
#fz-site .fz-btn--plein:hover {
  background: var(--fz-orange-sombre); border-color: var(--fz-orange-sombre);
  box-shadow: 0 2px 4px rgba(242, 102, 30, .24), 0 14px 30px -12px rgba(242, 102, 30, .85);
}

#fz-site .fz-btn--vide { background: transparent; color: var(--fz-encre); border-color: var(--fz-filet); }
#fz-site .fz-btn--vide:hover { background: rgba(14, 27, 44, .04); border-color: var(--fz-encre); }

/* Variante claire du bouton secondaire, sur tous les fonds sombres */
#fz-site .fz-sec--sombre .fz-btn--vide,
#fz-site .fz-hero .fz-btn--vide,
#fz-site .fz-page-hero .fz-btn--vide,
#fz-site .fz-bandeau .fz-btn--vide {
  background: rgba(255, 255, 255, .05); color: #fff; border-color: rgba(255, 255, 255, .32);
}
#fz-site .fz-sec--sombre .fz-btn--vide:hover,
#fz-site .fz-hero .fz-btn--vide:hover,
#fz-site .fz-page-hero .fz-btn--vide:hover,
#fz-site .fz-bandeau .fz-btn--vide:hover {
  background: rgba(255, 255, 255, .13); border-color: rgba(255, 255, 255, .6);
}
#fz-site .fz-btn--petit { min-height: 46px; padding: 11px 18px; font-size: .92rem; }


/* 6. FIL CONDUCTEUR ========================================== */
#fz-site .fz-fil {
  position: fixed; left: 24px; top: 110px; bottom: 38px;
  width: 2px; z-index: 40; pointer-events: none;
}
#fz-site .fz-fil-rail { position: absolute; inset: 0; background: rgba(120, 140, 165, .26); }
#fz-site .fz-fil-jauge {
  position: absolute; left: 0; top: 0; width: 100%; height: 0;
  background: linear-gradient(180deg, var(--fz-cyan), var(--fz-bleu-vif) 45%, var(--fz-orange));
  will-change: height;
}
#fz-site .fz-fil-pt {
  position: absolute; left: 1px; transform: translate(-50%, -50%);
  width: 6px; height: 6px; border-radius: 50%; background: #B7C3D2;
  transition: background-color .3s, box-shadow .3s, width .3s, height .3s;
}
#fz-site .fz-fil-pt.fz-on {
  width: 10px; height: 10px; background: var(--fz-orange);
  box-shadow: 0 0 0 4px rgba(242, 102, 30, .18);
}
#fz-site .fz-fil-nom {
  position: absolute; left: 18px; top: 50%; transform: translateY(-50%);
  font-size: .73rem; font-weight: 600; color: var(--fz-acier); white-space: nowrap;
  opacity: 0; transition: opacity .3s, color .3s;
}
#fz-site .fz-fil-pt.fz-on .fz-fil-nom { opacity: 1; color: var(--fz-orange); }
@media (min-width: 1560px) { #fz-site .fz-fil-nom { opacity: .45; } }
@media (max-width: 1180px) { #fz-site .fz-fil { display: none; } }


/* 7. EN-TÊTE ET NAVIGATION =================================== */
#fz-site .fz-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 60;
  background: rgba(255, 255, 255, .97);
  backdrop-filter: saturate(1.5) blur(10px);
  border-bottom: 1px solid var(--fz-filet);
  transition: box-shadow .25s;
}
#fz-site .fz-nav--pose { box-shadow: 0 1px 0 rgba(14, 27, 44, .06), 0 10px 30px -22px rgba(7, 26, 51, .5); }
#fz-site .fz-nav-in {
  display: flex; align-items: center; gap: 20px;
  max-width: 1300px; height: 82px; margin: 0 auto;
  padding: 0 clamp(20px, 3.5vw, 40px);
}
#fz-site .fz-nav-logo img { height: 52px; width: auto; }
#fz-site .fz-nav-liens { display: flex; align-items: center; gap: 19px; margin-left: auto; white-space: nowrap; }
#fz-site .fz-nav-liens a { position: relative; padding: 8px 0; font-size: .9rem; font-weight: 500; }
#fz-site .fz-nav-liens a::after {
  content: ""; position: absolute; left: 0; right: 100%; bottom: 2px; height: 2px;
  background: linear-gradient(90deg, var(--fz-bleu-vif), var(--fz-orange));
  transition: right .28s cubic-bezier(.22, 1, .36, 1);
}
#fz-site .fz-nav-liens a:hover::after,
#fz-site .fz-nav-liens a[aria-current]::after { right: 0; }
#fz-site .fz-nav-liens a[aria-current] { font-weight: 600; }

#fz-site .fz-nav-fin { display: flex; align-items: center; gap: 10px; margin-left: 6px; }
#fz-site .fz-nav-tel {
  display: inline-flex; align-items: center; gap: 9px;
  font-size: 1rem; font-weight: 700; color: var(--fz-nuit); white-space: nowrap;
}
#fz-site .fz-nav-tel svg { flex: 0 0 auto; width: 16px; height: 16px; color: var(--fz-orange); }
#fz-site .fz-nav-tel:hover { color: var(--fz-bleu); }
#fz-site .fz-nav-cta {
  display: inline-flex; align-items: center;
  padding: 11px 17px; border-radius: 6px;
  background: var(--fz-orange); color: #fff;
  font-size: .93rem; font-weight: 600; white-space: nowrap;
  transition: background-color .2s, box-shadow .2s;
}
#fz-site .fz-nav-cta:hover { background: var(--fz-orange-sombre); box-shadow: 0 10px 22px -12px rgba(242, 102, 30, .9); }

#fz-site .fz-burger {
  display: none; align-items: center; justify-content: center;
  width: 46px; height: 46px; margin-left: auto;
  background: none; border: 1px solid var(--fz-filet); border-radius: 6px; cursor: pointer;
}
#fz-site .fz-burger svg { width: 22px; height: 22px; }
#fz-site .fz-menu { display: none; }

@media (max-width: 1180px) {
  #fz-site .fz-nav-liens, #fz-site .fz-nav-cta { display: none; }
  #fz-site .fz-nav-in { height: 70px; gap: 12px; }
  #fz-site .fz-nav-logo img { height: 44px; }
  #fz-site .fz-burger { display: flex; }
  #fz-site .fz-nav-fin { margin-left: auto; }

  #fz-site .fz-menu {
    display: block; position: fixed; inset: 70px 0 0; z-index: 59;
    padding: 22px var(--fz-gouttiere) 120px;
    background: var(--fz-blanc); overflow-y: auto;
    opacity: 0; transform: translateY(-8px); pointer-events: none;
    transition: opacity .22s, transform .22s;
  }
  #fz-site .fz-menu.fz-ouvert { opacity: 1; transform: none; pointer-events: auto; }
  #fz-site .fz-menu a {
    display: block; padding: 17px 0;
    border-bottom: 1px solid var(--fz-filet);
    font-size: 1.24rem; font-weight: 600; letter-spacing: -.02em;
  }
  #fz-site .fz-menu a[aria-current] { color: var(--fz-orange); }
  #fz-site .fz-menu .fz-btn { width: 100%; margin-top: 26px; }
}
@media (max-width: 520px) {
  #fz-site .fz-nav-tel span { display: none; }
  #fz-site .fz-nav-tel { padding: 12px; border-radius: 6px; background: var(--fz-nuit); color: #fff; }
  #fz-site .fz-nav-tel svg { color: #fff; }
}


/* 8. BARRE D'ACTION MOBILE =================================== */
#fz-site .fz-barre-mobile { display: none; }
@media (max-width: 900px) {
  #fz-site .fz-barre-mobile {
    display: grid; grid-template-columns: 1fr 1fr;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 70;
    box-shadow: 0 -6px 24px -12px rgba(7, 26, 51, .5);
  }
  #fz-site .fz-barre-mobile a {
    display: flex; align-items: center; justify-content: center; gap: 9px;
    min-height: 62px; padding-bottom: env(safe-area-inset-bottom);
    font-size: 1rem; font-weight: 600;
  }
  #fz-site .fz-barre-mobile .fz-bm-tel { background: var(--fz-nuit); color: #fff; }
  #fz-site .fz-barre-mobile .fz-bm-devis { background: var(--fz-orange); color: #fff; }
  #fz-site .fz-pied { padding-bottom: 112px; }
}


/* 9. HERO ANIMÉ (accueil) ==================================== */
#fz-site .fz-hero {
  position: relative; display: flex; align-items: center; overflow: hidden;
  min-height: min(92vh, 920px);
  padding-top: clamp(118px, 13vh, 158px);
  padding-bottom: clamp(56px, 8vh, 88px);
  background: var(--fz-nuit); color: #fff;
}
#fz-site .fz-hero::after,
#fz-site .fz-page-hero::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; z-index: 3;
  background: linear-gradient(90deg, var(--fz-bleu) 0%, var(--fz-cyan) 32%, var(--fz-orange-clair) 68%, var(--fz-orange) 100%);
}

/* Couche 1 : deux halos qui respirent, un froid et un chaud */
#fz-site .fz-lueur { position: absolute; inset: -20%; z-index: 0; pointer-events: none; }
#fz-site .fz-lueur i { position: absolute; border-radius: 50%; filter: blur(70px); opacity: .55; will-change: transform, opacity; }
#fz-site .fz-lueur .fz-froid {
  left: -6%; top: 2%; width: 58%; height: 70%;
  background: radial-gradient(circle at 50% 50%, rgba(47, 127, 212, .85), rgba(27, 79, 168, 0) 68%);
  animation: fz-respire 22s ease-in-out infinite;
}
#fz-site .fz-lueur .fz-chaud {
  right: -4%; bottom: -6%; width: 52%; height: 62%;
  background: radial-gradient(circle at 50% 50%, rgba(242, 102, 30, .6), rgba(242, 102, 30, 0) 68%);
  animation: fz-respire 26s ease-in-out infinite reverse;
}
@keyframes fz-respire {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); opacity: .5; }
  50%      { transform: translate3d(3%, -3%, 0) scale(1.12); opacity: .72; }
}

/* Couche 2 : le réseau de fluide */
#fz-site .fz-reseau {
  position: absolute; inset: 0; z-index: 1;
  width: 100%; height: 100%; pointer-events: none;
  opacity: .45; transition: opacity 1.6s ease .35s;
}
#fz-site.fz-js .fz-reseau { opacity: 0; }
#fz-site.fz-pret .fz-reseau { opacity: 1; }
#fz-site .fz-reseau-flux path { fill: none; stroke-linecap: round; stroke-dasharray: 26 360; }
#fz-site.fz-pret .fz-reseau-flux path { animation: fz-flux linear infinite; }
@keyframes fz-flux { from { stroke-dashoffset: 0; } to { stroke-dashoffset: -772; } }
/* Cadences de circulation, une par conduite */
#fz-site .fz-reseau-flux path:nth-child(1) { animation-duration: 13s; animation-delay: -2s; }
#fz-site .fz-reseau-flux path:nth-child(2) { animation-duration: 17s; animation-delay: -9s; }
#fz-site .fz-reseau-flux path:nth-child(3) { animation-duration: 15s; animation-delay: -5s; }
#fz-site .fz-reseau-flux path:nth-child(4) { animation-duration: 19s; animation-delay: -13s; }
#fz-site .fz-reseau-flux path:nth-child(5) { animation-duration: 21s; animation-delay: -7s; }
#fz-site .fz-reseau-flux path:nth-child(6) { animation-duration: 23s; animation-delay: -16s; }
#fz-site .fz-reseau circle:nth-child(2) { animation-delay: -1.7s; }
#fz-site .fz-reseau circle:nth-child(3) { animation-delay: -2.6s; }
#fz-site .fz-reseau circle:nth-child(4) { animation-delay: -1.1s; }
#fz-site .fz-reseau circle { animation: fz-pulse 3.6s ease-in-out infinite; }
@keyframes fz-pulse { 0%, 100% { opacity: .2; } 50% { opacity: .85; } }

/* Couche 3 : le contenu */
#fz-site .fz-hero-grille {
  position: relative; z-index: 2; width: 100%;
  display: grid; grid-template-columns: 1.14fr .86fr;
  gap: clamp(30px, 4.5vw, 64px); align-items: center;
}
#fz-site .fz-hero-marque {
  display: inline-flex; align-items: center; gap: 10px;
  margin-bottom: 20px; padding: 7px 15px; border-radius: 100px;
  border: 1px solid rgba(123, 205, 242, .3); background: rgba(9, 32, 60, .78);
  font-size: .82rem; font-weight: 600; color: var(--fz-cyan);
}
#fz-site .fz-hero-marque i {
  flex: 0 0 auto; width: 7px; height: 7px; border-radius: 50%;
  background: var(--fz-orange); box-shadow: 0 0 0 4px rgba(242, 102, 30, .22);
}
#fz-site .fz-hero h1 { margin-bottom: 20px; color: #fff; }
#fz-site .fz-hero-sous {
  max-width: 47ch; margin-bottom: 28px;
  font-size: clamp(1.02rem, 1.4vw, 1.14rem); line-height: 1.6;
  color: rgba(232, 238, 246, .78);
}
#fz-site .fz-hero-preuves {
  display: flex; flex-wrap: wrap; gap: 10px 26px;
  margin-top: 28px; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .14);
}
#fz-site .fz-hero-preuves li {
  display: flex; align-items: center; gap: 9px;
  font-size: .92rem; color: rgba(232, 238, 246, .78);
}
#fz-site .fz-hero-preuves li::before {
  content: ""; flex: 0 0 auto; width: 6px; height: 6px; border-radius: 50%;
  background: var(--fz-cyan); box-shadow: 0 0 0 3px rgba(123, 205, 242, .16);
}
#fz-site .fz-hero-preuves li:last-child::before {
  background: var(--fz-orange); box-shadow: 0 0 0 3px rgba(242, 102, 30, .18);
}

#fz-site .fz-hero-photo { position: relative; }
#fz-site .fz-hero-cadre {
  position: relative; overflow: hidden; border-radius: 14px;
  box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .85), 0 0 0 1px rgba(255, 255, 255, .1);
}
#fz-site.fz-js .fz-hero-cadre { clip-path: inset(0 0 100% 0); }
#fz-site.fz-pret .fz-hero-cadre { animation: fz-devoile 1.15s cubic-bezier(.19, 1, .22, 1) .3s forwards; }
@keyframes fz-devoile { to { clip-path: inset(0 0 0 0); } }
#fz-site .fz-hero-cadre img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 22%; }
#fz-site .fz-hero-cadre::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(7, 26, 51, 0) 45%, rgba(7, 26, 51, .7) 100%);
}
#fz-site .fz-hero-carte {
  position: absolute; left: -18px; bottom: -18px; z-index: 2;
  max-width: 288px; padding: 15px 19px;
  border: 1px solid rgba(255, 255, 255, .14); border-left: 3px solid var(--fz-orange);
  border-radius: 10px; background: rgba(12, 39, 72, .88); backdrop-filter: blur(10px);
  box-shadow: 0 24px 50px -26px rgba(0, 0, 0, .9);
}
#fz-site .fz-hero-carte strong { display: block; font-size: 1.02rem; font-weight: 600; letter-spacing: -.015em; color: #fff; }
#fz-site .fz-hero-carte span { display: block; margin-top: 4px; font-size: .88rem; line-height: 1.45; color: rgba(232, 238, 246, .68); }

/* Révélation au chargement. Les classes fz-l* et fz-d* portent le décalage. */
/* Les états masqués ne s'appliquent QUE si le script a posé la classe
   fz-js sur #fz-site. Sans JavaScript, sans CSS, ou si l'un des deux
   ne se charge pas, le contenu reste entièrement visible et lisible.
   C'est le garde-fou qui évite une page blanche. */
#fz-site .fz-ligne { display: block; overflow: hidden; padding-bottom: .06em; }
#fz-site .fz-ligne > span { display: block; }
#fz-site.fz-js .fz-ligne > span { transform: translateY(108%); }
#fz-site.fz-pret .fz-ligne > span { animation: fz-monte-ligne .95s cubic-bezier(.19, 1, .22, 1) forwards; }
@keyframes fz-monte-ligne { to { transform: translateY(0); } }
#fz-site .fz-l1 > span { animation-delay: .05s; }
#fz-site .fz-l2 > span { animation-delay: .13s; }
#fz-site .fz-l3 > span { animation-delay: .21s; }
#fz-site .fz-l4 > span { animation-delay: .29s; }

#fz-site.fz-js .fz-rev { opacity: 0; transform: translateY(16px); }
#fz-site.fz-pret .fz-rev { animation: fz-monte .9s cubic-bezier(.19, 1, .22, 1) forwards; }
@keyframes fz-monte { to { opacity: 1; transform: translateY(0); } }
#fz-site .fz-d1 { animation-delay: .55s; }
#fz-site .fz-d2 { animation-delay: .66s; }
#fz-site .fz-d3 { animation-delay: .75s; }
#fz-site .fz-d4 { animation-delay: .86s; }
#fz-site .fz-d5 { animation-delay: 1.05s; }

@media (max-width: 900px) {
  #fz-site .fz-hero { display: block; min-height: 0; padding-top: 104px; padding-bottom: 52px; }
  #fz-site .fz-hero-grille { grid-template-columns: 1fr; gap: 44px; }
  #fz-site .fz-hero-photo { width: 100%; max-width: 440px; margin: 0 auto; }
  #fz-site .fz-hero-cadre img { aspect-ratio: 4 / 3; object-position: 50% 26%; }
  #fz-site .fz-hero-carte { left: 10px; right: 10px; bottom: -14px; max-width: none; }
  #fz-site .fz-actions .fz-btn { flex: 1 1 100%; }
}


/* 10. HERO COURT (pages intérieures) ========================= */
#fz-site .fz-page-hero {
  position: relative; overflow: hidden;
  padding-top: clamp(122px, 15vh, 168px); padding-bottom: clamp(52px, 7vh, 80px);
  background: var(--fz-nuit); color: #fff;
}
#fz-site .fz-page-hero .fz-wrap { position: relative; z-index: 2; }
#fz-site .fz-page-hero h1 { max-width: 20ch; margin-bottom: 16px; color: #fff; }
#fz-site .fz-page-hero p {
  max-width: 58ch; font-size: clamp(1.02rem, 1.4vw, 1.14rem); line-height: 1.6;
  color: rgba(232, 238, 246, .74);
}
#fz-site .fz-ariane { display: flex; gap: 9px; align-items: center; margin-bottom: 18px; font-size: .85rem; color: rgba(232, 238, 246, .5); }
#fz-site .fz-ariane a:hover { color: #fff; }


/* 11. BANDEAU DE RÉASSURANCE ================================= */
#fz-site .fz-reassurance { background: var(--fz-nuit-2); color: var(--fz-encre-inv); }
#fz-site .fz-reassurance-grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
#fz-site .fz-reassurance-item { padding: 32px 28px; border-left: 1px solid rgba(255, 255, 255, .1); }
#fz-site .fz-reassurance-item:first-child { padding-left: 0; border-left: 0; }
#fz-site .fz-reassurance-item strong { display: block; margin-bottom: 7px; font-size: 1.02rem; font-weight: 600; letter-spacing: -.015em; color: #fff; }
#fz-site .fz-reassurance-item span { font-size: .92rem; line-height: 1.5; color: rgba(232, 238, 246, .62); }
@media (max-width: 900px) {
  #fz-site .fz-reassurance-grille { grid-template-columns: 1fr 1fr; }
  #fz-site .fz-reassurance-item { padding: 22px 0 22px 20px; }
  #fz-site .fz-reassurance-item:nth-child(odd) { padding-left: 0; border-left: 0; }
  #fz-site .fz-reassurance-item:nth-child(n+3) { border-top: 1px solid rgba(255, 255, 255, .1); }
}
@media (max-width: 520px) {
  #fz-site .fz-reassurance-grille { grid-template-columns: 1fr; }
  #fz-site .fz-reassurance-item { padding: 18px 0; border-left: 0; border-top: 1px solid rgba(255, 255, 255, .1); }
  #fz-site .fz-reassurance-item:first-child { border-top: 0; }
}


/* 12. CARTES DE PRESTATION =================================== */
#fz-site .fz-presta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 20px); }
#fz-site .fz-presta-item {
  position: relative; display: flex; flex-direction: column; overflow: hidden;
  padding: 28px 26px 30px;
  border: 1px solid var(--fz-filet); border-radius: var(--fz-rayon);
  background: var(--fz-blanc); box-shadow: var(--fz-ombre);
  transition: transform .25s cubic-bezier(.22, 1, .36, 1), box-shadow .25s, border-color .25s;
}
#fz-site .fz-presta-item::before {
  content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 3px;
  background: linear-gradient(90deg, var(--fz-bleu), var(--fz-bleu-vif));
  transform: scaleX(0); transform-origin: left;
  transition: transform .35s cubic-bezier(.22, 1, .36, 1);
}
#fz-site .fz-presta-item:hover { transform: translateY(-3px); box-shadow: var(--fz-ombre-forte); border-color: rgba(27, 79, 168, .28); }
#fz-site .fz-presta-item:hover::before { transform: scaleX(1); }
#fz-site .fz-presta-item[data-registre="chaud"]::before { background: linear-gradient(90deg, var(--fz-orange), var(--fz-orange-clair)); }
#fz-site .fz-presta-item[data-registre="froid"]::before { background: linear-gradient(90deg, var(--fz-bleu-vif), var(--fz-cyan)); }

#fz-site .fz-presta-icone {
  display: grid; place-items: center; width: 36px; height: 36px;
  margin-bottom: 18px; border-radius: 9px;
  background: rgba(27, 79, 168, .09); color: var(--fz-bleu);
}
#fz-site .fz-presta-icone svg { width: 19px; height: 19px; }
#fz-site .fz-presta-item[data-registre="chaud"] .fz-presta-icone { background: rgba(242, 102, 30, .1); color: var(--fz-orange); }
#fz-site .fz-presta-item[data-registre="froid"] .fz-presta-icone { background: rgba(47, 127, 212, .11); color: var(--fz-bleu-vif); }

#fz-site .fz-presta-item h3 { margin-bottom: 11px; color: var(--fz-encre); }
#fz-site .fz-presta-item h3 a { transition: color .2s; }
#fz-site .fz-presta-item h3 a::after { content: ""; position: absolute; inset: 0; }
#fz-site .fz-presta-item:hover h3 a { color: var(--fz-bleu); }
#fz-site .fz-presta-item p { font-size: .97rem; line-height: 1.6; color: var(--fz-encre-2); }
#fz-site .fz-presta-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }
#fz-site .fz-presta-tags li {
  padding: 4px 10px; border: 1px solid var(--fz-filet); border-radius: 100px;
  background: var(--fz-glace); font-size: .78rem; font-weight: 500; color: var(--fz-encre-2);
}
#fz-site .fz-presta-prix { margin-top: auto; padding-top: 18px; font-size: .9rem; color: var(--fz-encre-2); }
#fz-site .fz-presta-prix b { display: block; margin-top: 2px; font-size: 1.12rem; letter-spacing: -.02em; color: var(--fz-encre); }
@media (max-width: 960px) { #fz-site .fz-presta { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { #fz-site .fz-presta { grid-template-columns: 1fr; } }


/* 13. BANDEAU D'APPEL À L'ACTION ============================= */
#fz-site .fz-bandeau {
  position: relative; overflow: hidden;
  display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: 28px; align-items: center;
  padding: clamp(30px, 4vw, 48px); border-radius: 16px;
  background: var(--fz-nuit); color: #fff;
}
#fz-site .fz-bandeau::before {
  content: ""; position: absolute; right: -10%; top: -40%; width: 52%; height: 180%; pointer-events: none;
  background: radial-gradient(circle at 50% 50%, rgba(242, 102, 30, .3), rgba(242, 102, 30, 0) 62%);
}
#fz-site .fz-bandeau > * { position: relative; }
#fz-site .fz-bandeau h2 { margin-bottom: 12px; font-size: clamp(1.5rem, 2.4vw, 2rem); color: #fff; }
#fz-site .fz-bandeau p { max-width: 52ch; color: rgba(232, 238, 246, .72); }
@media (max-width: 820px) {
  #fz-site .fz-bandeau { grid-template-columns: 1fr; }
  #fz-site .fz-bandeau .fz-btn { flex: 1 1 100%; }
}


/* 14. PORTRAIT ET FICHE D'IDENTITÉ =========================== */
#fz-site .fz-portrait-grille {
  display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: clamp(32px, 5.5vw, 72px); align-items: start;
}
#fz-site .fz-portrait img {
  width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 25%;
  border-radius: var(--fz-rayon); box-shadow: var(--fz-ombre-forte);
}
#fz-site .fz-portrait figcaption { margin-top: 13px; font-size: .87rem; line-height: 1.5; color: var(--fz-encre-2); }

#fz-site .fz-fiche { margin-top: 26px; border-top: 1px solid var(--fz-filet); }
#fz-site .fz-fiche div {
  display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
  padding: 11px 0; border-bottom: 1px solid var(--fz-filet); font-size: .91rem;
}
#fz-site .fz-fiche dt { flex: 0 0 auto; color: var(--fz-encre-2); }
#fz-site .fz-fiche dd { font-weight: 600; text-align: right; }

/* Variante carte, utilisée sur l'accueil où il n'y a pas de second portrait */
#fz-site .fz-fiche--carte {
  margin-top: 0; padding: 26px 28px;
  border: 1px solid var(--fz-filet); border-top: 1px solid var(--fz-filet);
  border-radius: var(--fz-rayon); background: var(--fz-glace);
}
#fz-site .fz-fiche--carte > p {
  margin-bottom: 6px; font-size: .82rem; font-weight: 600; color: var(--fz-bleu);
}
#fz-site .fz-fiche--carte div:last-child { border-bottom: 0; padding-bottom: 0; }

#fz-site .fz-signature {
  display: flex; align-items: center; gap: 14px;
  margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--fz-filet);
}
#fz-site .fz-signature i {
  flex: 0 0 auto; width: 3px; height: 38px; border-radius: 2px;
  background: linear-gradient(180deg, var(--fz-bleu-vif), var(--fz-orange));
}
#fz-site .fz-signature strong { display: block; font-family: var(--fz-police-titre); font-size: 1.04rem; font-weight: 600; }
#fz-site .fz-signature span { font-family: var(--fz-police-titre); font-size: .92rem; color: var(--fz-encre-2); }
@media (max-width: 860px) {
  #fz-site .fz-portrait-grille { grid-template-columns: 1fr; }
  #fz-site .fz-portrait img { aspect-ratio: 1 / 1; }
}


/* 15. ÉTAPES DE LA MÉTHODE =================================== */
#fz-site .fz-methode { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
#fz-site .fz-etape { padding: 0 24px 0 0; }
#fz-site .fz-etape-num {
  padding-bottom: 16px; margin-bottom: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, .16);
  font-size: 2rem; font-weight: 700; line-height: 1; letter-spacing: -.04em;
  background: linear-gradient(135deg, var(--fz-cyan), var(--fz-bleu-vif));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
#fz-site .fz-etape:last-child .fz-etape-num {
  background: linear-gradient(135deg, var(--fz-orange-clair), var(--fz-orange));
  -webkit-background-clip: text; background-clip: text;
}
#fz-site .fz-etape h3 { margin-bottom: 10px; font-size: 1.06rem; color: #fff; }
#fz-site .fz-etape p { font-size: .95rem; line-height: 1.6; color: rgba(232, 238, 246, .68); }

/* Variante sur fond clair */
#fz-site .fz-methode--clair .fz-etape { padding-top: 22px; border-top: 2px solid rgba(14, 27, 44, .1); }
#fz-site .fz-methode--clair .fz-etape-num { border-bottom-color: rgba(14, 27, 44, .1); }
#fz-site .fz-methode--clair .fz-etape h3 { color: var(--fz-encre); }
#fz-site .fz-methode--clair .fz-etape p { color: var(--fz-encre-2); }

@media (max-width: 1000px) { #fz-site .fz-methode { grid-template-columns: repeat(2, 1fr); gap: 32px 26px; } }
@media (max-width: 560px)  { #fz-site .fz-methode { grid-template-columns: 1fr; gap: 26px; } #fz-site .fz-etape { padding-right: 0; } }


/* 16. SIMULATEUR DE DEVIS ==================================== */
#fz-site .fz-simu {
  max-width: 840px; margin: 0 auto; overflow: hidden;
  border: 1px solid var(--fz-filet); border-radius: 16px;
  background: var(--fz-blanc); box-shadow: var(--fz-ombre-forte);
}
#fz-site .fz-simu-tete { padding: 24px 32px 0; }
#fz-site .fz-simu-jauge {
  position: relative; overflow: hidden;
  height: 4px; margin-bottom: 18px; border-radius: 100px; background: var(--fz-glace);
}
#fz-site .fz-simu-jauge i {
  position: absolute; left: 0; top: 0; height: 100%; width: 0; border-radius: 100px;
  background: linear-gradient(90deg, var(--fz-bleu-vif), var(--fz-orange));
  transition: width .35s cubic-bezier(.22, 1, .36, 1);
}
#fz-site .fz-simu-compte {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  font-size: .84rem; font-weight: 600; color: var(--fz-encre-2);
}
#fz-site .fz-simu-etape { margin-left: auto; }
#fz-site .fz-simu-retour {
  padding: 4px 2px; border: 0; background: none; cursor: pointer;
  font-size: .84rem; font-weight: 600; color: var(--fz-encre-2);
  text-decoration: underline; text-underline-offset: 3px;
}
#fz-site .fz-simu-retour:hover { color: var(--fz-bleu); }
#fz-site .fz-simu-retour[hidden] { display: none; }
#fz-site .fz-simu-corps { min-height: 340px; padding: 22px 32px 32px; }
#fz-site .fz-simu-corps h3 { margin-bottom: 8px; }
#fz-site .fz-simu-aide { margin-bottom: 20px; font-size: .95rem; line-height: 1.55; color: var(--fz-encre-2); }
#fz-site .fz-simu-note { max-width: 840px; margin: 20px auto 0; text-align: center; }

#fz-site .fz-choix { display: grid; gap: 10px; }
#fz-site .fz-choix--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#fz-site .fz-choix button {
  display: flex; flex-direction: column; justify-content: center; gap: 3px;
  min-height: 62px; padding: 16px 18px; text-align: left; cursor: pointer;
  border: 1.5px solid var(--fz-filet); border-radius: 10px; background: var(--fz-blanc);
  transition: border-color .18s, background-color .18s, box-shadow .18s, transform .1s;
}
#fz-site .fz-choix button:hover {
  border-color: var(--fz-bleu-vif); background: rgba(47, 127, 212, .05);
  box-shadow: 0 8px 22px -14px rgba(27, 79, 168, .6);
}
#fz-site .fz-choix button:active { transform: translateY(1px); }
#fz-site .fz-choix b { font-size: 1rem; font-weight: 600; letter-spacing: -.015em; }
#fz-site .fz-choix em { font-style: normal; font-size: .9rem; line-height: 1.42; color: var(--fz-encre-2); }

#fz-site .fz-resultat-montant {
  margin: 6px 0 12px;
  font-size: clamp(1.9rem, 4.2vw, 2.6rem); font-weight: 700; line-height: 1.05; letter-spacing: -.035em;
  background: linear-gradient(100deg, var(--fz-bleu) 10%, var(--fz-orange) 92%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
#fz-site .fz-encadre {
  margin-bottom: 18px; padding: 18px 20px;
  border-left: 3px solid var(--fz-orange); border-radius: 10px; background: var(--fz-glace);
}
#fz-site .fz-encadre p { font-size: .94rem; line-height: 1.55; color: var(--fz-encre-2); }
#fz-site .fz-recap { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px; }
#fz-site .fz-recap span {
  padding: 5px 11px; border: 1px solid var(--fz-filet); border-radius: 100px;
  background: var(--fz-glace); font-size: .79rem; font-weight: 500; color: var(--fz-encre-2);
}
#fz-site .fz-aides {
  margin-bottom: 22px; padding: 18px 20px; border-radius: 10px;
  border: 1px solid rgba(27, 79, 168, .18); background: rgba(27, 79, 168, .06);
}
#fz-site .fz-aides strong { display: block; margin-bottom: 6px; font-size: .97rem; font-weight: 600; color: var(--fz-bleu); }
#fz-site .fz-aides p { font-size: .94rem; line-height: 1.55; color: var(--fz-encre-2); }
#fz-site .fz-argument { margin-top: -6px; margin-bottom: 18px; }
@media (max-width: 760px) {
  #fz-site .fz-choix--2 { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  #fz-site .fz-simu-tete { padding: 20px 20px 0; }
  #fz-site .fz-simu-corps { padding: 20px 20px 28px; }
}


/* --- Mur de logos partenaires ---------------------------------
   Les fichiers d'assets/img/partenaires/ sont des marques de
   substitution typographiques. Remplacez-les par les fichiers
   officiels de chaque marque, aux mêmes dimensions.            */
#fz-site .fz-logos {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(12px, 1.6vw, 20px);
}
#fz-site .fz-logos--duo { grid-template-columns: repeat(2, 1fr); max-width: 720px; }
#fz-site .fz-logos--quatre { grid-template-columns: repeat(4, minmax(0, 1fr)); }
#fz-site .fz-logo {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px;
  min-height: 132px; padding: 24px 20px;
  border: 1px solid var(--fz-filet); border-radius: var(--fz-rayon);
  background: var(--fz-blanc); box-shadow: var(--fz-ombre);
  transition: transform .25s cubic-bezier(.22, 1, .36, 1), box-shadow .25s;
}
#fz-site .fz-logo:hover { transform: translateY(-2px); box-shadow: var(--fz-ombre-forte); }
#fz-site .fz-logo img { width: auto; max-width: 100%; max-height: 44px; }
#fz-site .fz-logo figcaption {
  font-size: .82rem; line-height: 1.4; color: var(--fz-encre-2); text-align: center;
}
@media (max-width: 860px) { #fz-site .fz-logos { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { #fz-site .fz-logos, #fz-site .fz-logos--duo { grid-template-columns: 1fr; } }


/* --- Résultat des aides dans le simulateur --------------------- */
#fz-site .fz-profil {
  display: inline-flex; align-items: center; gap: 9px;
  margin-bottom: 14px; padding: 6px 14px; border-radius: 100px;
  font-size: .84rem; font-weight: 600;
  border: 1px solid var(--fz-filet); background: var(--fz-glace); color: var(--fz-encre-2);
}
#fz-site .fz-profil i { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; }
#fz-site .fz-profil--bleu i { background: #2F7FD4; }
#fz-site .fz-profil--jaune i { background: #E8B317; }
#fz-site .fz-profil--violet i { background: #7E5BC4; }
#fz-site .fz-profil--rose i { background: #D9548B; }

#fz-site .fz-aides-detail { display: grid; gap: 1px; margin: 14px 0 0; background: var(--fz-filet); }
#fz-site .fz-aides-detail div {
  display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
  padding: 12px 2px; background: rgba(27, 79, 168, .06); font-size: .94rem;
}
#fz-site .fz-aides-detail dt { color: var(--fz-encre-2); }
#fz-site .fz-aides-detail dd { font-weight: 700; text-align: right; white-space: nowrap; }
#fz-site .fz-aides-detail .fz-non dd { font-weight: 500; color: var(--fz-encre-2); }

#fz-site .fz-reste {
  margin-top: 18px; padding: 18px 20px; border-radius: 10px;
  border: 1px solid rgba(242, 102, 30, .28); background: rgba(242, 102, 30, .07);
}
#fz-site .fz-reste strong { display: block; margin-bottom: 4px; font-size: .9rem; font-weight: 600; color: var(--fz-encre-2); }
#fz-site .fz-reste b { font-size: clamp(1.4rem, 2.6vw, 1.8rem); font-weight: 700; letter-spacing: -.03em; }
#fz-site .fz-reste span { display: block; margin-top: 8px; font-size: .86rem; line-height: 1.5; color: var(--fz-encre-2); }


/* 17. FORMULAIRES ============================================ */
#fz-site .fz-champs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
#fz-site .fz-champ { display: flex; flex-direction: column; gap: 6px; }
#fz-site .fz-champ--large { grid-column: 1 / -1; }
#fz-site .fz-champ label { font-size: .87rem; font-weight: 600; letter-spacing: -.01em; }
#fz-site .fz-champ input,
#fz-site .fz-champ textarea {
  width: 100%; min-height: 52px; padding: 13px 14px;
  border: 1.5px solid var(--fz-filet); border-radius: var(--fz-rayon-s);
  background: var(--fz-blanc); font-size: 1rem;
  transition: border-color .18s, box-shadow .18s;
}
#fz-site .fz-champ textarea { min-height: 118px; line-height: 1.6; resize: vertical; }
#fz-site .fz-champ input:focus,
#fz-site .fz-champ textarea:focus { border-color: var(--fz-bleu-vif); box-shadow: 0 0 0 3px rgba(47, 127, 212, .16); }
#fz-site .fz-sec--sombre .fz-champ input,
#fz-site .fz-sec--sombre .fz-champ textarea {
  background: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .16); color: #fff;
}
/* Piège à robots : retiré du flux sans display:none, que certains robots détectent */
#fz-site .fz-pot {
  position: absolute; left: -9999px; top: auto;
  width: 1px; height: 1px; overflow: hidden;
}
#fz-site .fz-consent {
  grid-column: 1 / -1; display: flex; gap: 11px; align-items: flex-start;
  font-size: .89rem; line-height: 1.5; color: var(--fz-encre-2);
}
#fz-site .fz-sec--sombre .fz-consent { color: rgba(232, 238, 246, .66); }
#fz-site .fz-consent input { flex: 0 0 auto; width: 19px; height: 19px; min-height: 0; margin-top: 2px; accent-color: var(--fz-orange); }
#fz-site .fz-consent a { text-decoration: underline; text-underline-offset: 2px; }
#fz-site .fz-etat { margin-top: 14px; font-size: .94rem; line-height: 1.5; }
#fz-site .fz-etat--ok { color: #1E7A4E; }
#fz-site .fz-etat--ko { color: #E0703A; }
#fz-site .fz-form-bloc {
  padding: clamp(24px, 3vw, 34px); border: 1px solid var(--fz-filet-inv);
  border-radius: 16px; background: rgba(255, 255, 255, .04);
}
#fz-site .fz-form-bloc > p { margin-bottom: 22px; font-size: .96rem; color: rgba(232, 238, 246, .66); }
@media (max-width: 640px) { #fz-site .fz-champs { grid-template-columns: 1fr; } }


/* 18. RÉALISATIONS =========================================== */
#fz-site .fz-chantiers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2.2vw, 28px); }
#fz-site .fz-chantier {
  overflow: hidden; border: 1px solid var(--fz-filet); border-radius: var(--fz-rayon);
  background: var(--fz-blanc); box-shadow: var(--fz-ombre);
  transition: transform .25s cubic-bezier(.22, 1, .36, 1), box-shadow .25s;
}
#fz-site .fz-chantier:hover { transform: translateY(-3px); box-shadow: var(--fz-ombre-forte); }
#fz-site .fz-chantier img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; background: #DCE3EC; }
#fz-site .fz-chantier-txt { padding: 20px 22px 24px; }
#fz-site .fz-chantier h3 { margin-bottom: 9px; font-size: 1.03rem; color: var(--fz-encre); }
#fz-site .fz-chantier p { font-size: .93rem; line-height: 1.58; color: var(--fz-encre-2); }
#fz-site .fz-chantier-lieu {
  display: inline-block; margin-top: 13px; padding: 4px 11px; border-radius: 100px;
  background: rgba(27, 79, 168, .08); font-size: .79rem; font-weight: 600; color: var(--fz-bleu);
}
@media (max-width: 900px) { #fz-site .fz-chantiers { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { #fz-site .fz-chantiers { grid-template-columns: 1fr; } }


/* 19. AVIS CLIENTS =========================================== */
#fz-site .fz-avis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2.2vw, 28px); }
#fz-site .fz-avis blockquote {
  padding: 26px 24px; border: 1px solid var(--fz-filet); border-radius: var(--fz-rayon);
  background: var(--fz-blanc); box-shadow: var(--fz-ombre);
}
#fz-site .fz-avis blockquote::before {
  content: ""; display: block; width: 30px; height: 3px; margin-bottom: 18px; border-radius: 2px;
  background: linear-gradient(90deg, var(--fz-bleu-vif), var(--fz-orange));
}
#fz-site .fz-avis p { margin-bottom: 16px; font-family: var(--fz-police-recit); font-size: 1.03rem; line-height: 1.68; }
#fz-site .fz-avis footer { font-size: .9rem; font-weight: 600; color: var(--fz-encre); }
#fz-site .fz-avis footer span { display: block; margin-top: 2px; font-size: .85rem; font-weight: 400; color: var(--fz-encre-2); }
@media (max-width: 860px) { #fz-site .fz-avis { grid-template-columns: 1fr; } }


/* 20. QUESTIONS FRÉQUENTES =================================== */
#fz-site .fz-faq { display: grid; gap: 10px; max-width: 900px; }
#fz-site .fz-faq details {
  overflow: hidden; border: 1px solid var(--fz-filet); border-radius: 10px;
  background: var(--fz-blanc); transition: border-color .2s, box-shadow .2s;
}
#fz-site .fz-faq details[open] { border-color: rgba(27, 79, 168, .3); box-shadow: var(--fz-ombre); }
#fz-site .fz-faq summary {
  position: relative; padding: 20px 56px 20px 22px; cursor: pointer; list-style: none;
  font-size: 1.04rem; font-weight: 600; letter-spacing: -.015em;
}
#fz-site .fz-faq summary::-webkit-details-marker { display: none; }
#fz-site .fz-faq summary::after {
  content: ""; position: absolute; right: 22px; top: 50%; width: 11px; height: 11px;
  border-right: 2px solid var(--fz-bleu); border-bottom: 2px solid var(--fz-bleu);
  transform: translateY(-70%) rotate(45deg); transition: transform .25s;
}
#fz-site .fz-faq details[open] summary::after { transform: translateY(-30%) rotate(-135deg); border-color: var(--fz-orange); }
#fz-site .fz-faq-rep { max-width: 70ch; padding: 0 22px 22px; line-height: 1.66; color: var(--fz-encre-2); }
#fz-site .fz-faq-rep p + p { margin-top: 12px; }

/* Variante sur fond sombre */
#fz-site .fz-faq--sombre details { background: rgba(255, 255, 255, .05); border-color: var(--fz-filet-inv); }
#fz-site .fz-faq--sombre summary { color: #fff; }
#fz-site .fz-faq--sombre summary::after { border-color: var(--fz-cyan); }
#fz-site .fz-faq--sombre .fz-faq-rep { color: rgba(232, 238, 246, .72); }


/* 21. ZONE D'INTERVENTION ==================================== */
#fz-site .fz-zone { display: grid; grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); gap: clamp(30px, 5vw, 64px); }
#fz-site .fz-dept { margin-bottom: 24px; }
#fz-site .fz-dept:last-child { margin-bottom: 0; }
#fz-site .fz-dept h3 {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 10px; padding-bottom: 10px;
  border-bottom: 1px solid var(--fz-filet); font-size: 1.02rem;
}
#fz-site .fz-dept h3::before { content: ""; flex: 0 0 auto; width: 8px; height: 8px; border-radius: 2px; background: var(--fz-bleu); }
#fz-site .fz-dept:nth-child(2) h3::before { background: var(--fz-bleu-vif); }
#fz-site .fz-dept:nth-child(3) h3::before { background: var(--fz-orange); }
#fz-site .fz-dept p { font-size: .96rem; line-height: 1.68; color: var(--fz-encre-2); }
@media (max-width: 800px) { #fz-site .fz-zone { grid-template-columns: 1fr; } }


/* --- Bloc départements (accueil) ------------------------------ */
#fz-site .fz-departements {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 1.8vw, 22px); max-width: 940px; margin: 0 auto;
}
#fz-site .fz-departement {
  position: relative; overflow: hidden;
  padding: 26px 26px 28px;
  border: 1px solid var(--fz-filet); border-radius: var(--fz-rayon);
  background: var(--fz-blanc); box-shadow: var(--fz-ombre);
  transition: transform .25s cubic-bezier(.22, 1, .36, 1), box-shadow .25s;
}
#fz-site .fz-departement::before {
  content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 3px;
  background: linear-gradient(90deg, var(--fz-bleu), var(--fz-bleu-vif));
}
#fz-site .fz-departement:nth-child(2)::before { background: linear-gradient(90deg, var(--fz-bleu-vif), var(--fz-cyan)); }
#fz-site .fz-departement:nth-child(3)::before { background: linear-gradient(90deg, var(--fz-orange), var(--fz-orange-clair)); }
#fz-site .fz-departement:hover { transform: translateY(-3px); box-shadow: var(--fz-ombre-forte); }
#fz-site .fz-departement-num {
  display: block; font-size: 2.5rem; font-weight: 700; line-height: 1;
  letter-spacing: -.05em; color: rgba(14, 27, 44, .12); margin-bottom: 10px;
}
#fz-site .fz-departement:nth-child(1) .fz-departement-num { color: rgba(27, 79, 168, .18); }
#fz-site .fz-departement:nth-child(2) .fz-departement-num { color: rgba(47, 127, 212, .2); }
#fz-site .fz-departement:nth-child(3) .fz-departement-num { color: rgba(242, 102, 30, .22); }
#fz-site .fz-departement strong {
  display: block; margin-bottom: 8px;
  font-size: 1.22rem; font-weight: 700; letter-spacing: -.02em;
}
#fz-site .fz-departement span:last-child { font-size: .93rem; line-height: 1.55; color: var(--fz-encre-2); }

#fz-site .fz-zone-appel {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 20px;
  max-width: 940px; margin: clamp(24px, 3vw, 34px) auto 0;
  padding: 22px 26px; border-radius: var(--fz-rayon);
  border: 1px solid rgba(242, 102, 30, .26); background: rgba(242, 102, 30, .06);
}
#fz-site .fz-zone-appel p { max-width: 52ch; font-size: .97rem; line-height: 1.55; color: var(--fz-encre-2); }
@media (max-width: 820px) {
  #fz-site .fz-departements { grid-template-columns: 1fr; }
  #fz-site .fz-zone-appel { flex-direction: column; align-items: stretch; }
  #fz-site .fz-zone-appel .fz-btn { width: 100%; }
}


/* --- Vérificateur de zone d'intervention ---------------------- */
#fz-site .fz-zone-outil {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(28px, 4vw, 52px); align-items: start;
}
#fz-site .fz-zone-form { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
#fz-site .fz-zone-form .fz-champ { flex: 1 1 240px; }
#fz-site .fz-zone-form .fz-btn { flex: 0 0 auto; }

#fz-site .fz-carte-cadre {
  position: relative; overflow: hidden;
  border: 1px solid var(--fz-filet); border-radius: var(--fz-rayon);
  background: linear-gradient(160deg, #FFFFFF, var(--fz-glace));
  box-shadow: var(--fz-ombre);
}
#fz-site .fz-carte-cadre svg { display: block; width: 100%; height: auto; }
#fz-site .fz-carte-legende {
  display: flex; flex-wrap: wrap; gap: 8px 20px;
  padding: 14px 18px; border-top: 1px solid var(--fz-filet);
  font-size: .82rem; color: var(--fz-encre-2);
}
#fz-site .fz-carte-legende span { display: flex; align-items: center; gap: 8px; }
#fz-site .fz-carte-legende i { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; }
#fz-site .fz-carte-legende .fz-l-atelier { background: var(--fz-bleu); }
#fz-site .fz-carte-legende .fz-l-vous { background: var(--fz-orange); }
#fz-site .fz-carte-legende .fz-l-anneau { background: none; border: 1.5px dashed var(--fz-acier); border-radius: 50%; }

#fz-site .fz-anneau { fill: none; stroke-width: 1.4; }
#fz-site .fz-anneau--coeur { stroke: rgba(27, 79, 168, .5); fill: rgba(47, 127, 212, .07); }
#fz-site .fz-anneau--habituel { stroke: rgba(47, 127, 212, .42); stroke-dasharray: 6 5; fill: rgba(47, 127, 212, .05); }
#fz-site .fz-anneau--limite { stroke: rgba(152, 166, 184, .55); stroke-dasharray: 3 6; fill: rgba(152, 166, 184, .05); }
#fz-site .fz-pt-atelier { fill: var(--fz-bleu); }
#fz-site .fz-pt-ville { fill: var(--fz-acier); }
#fz-site .fz-pt-vous { fill: var(--fz-orange); }
#fz-site .fz-pt-halo { fill: rgba(242, 102, 30, .22); }
#fz-site .fz-carte-trait { stroke: var(--fz-orange); stroke-width: 1.4; stroke-dasharray: 5 4; }
#fz-site .fz-reseau text, #fz-site .fz-carte-cadre text {
  font-family: var(--fz-police-titre); paint-order: stroke;
  stroke: #FFFFFF; stroke-width: 3px; stroke-linejoin: round;
}
#fz-site .fz-carte-ville { font-size: 13px; fill: var(--fz-encre-2); }
#fz-site .fz-carte-atelier { font-size: 15px; font-weight: 700; fill: var(--fz-bleu); }
#fz-site .fz-carte-vous { font-size: 15px; font-weight: 700; fill: var(--fz-orange); }
#fz-site .fz-carte-echelle { font-size: 11px; font-weight: 600; fill: var(--fz-acier); }

/* Liste de suggestions du vérificateur de zone */
#fz-site .fz-zone-form .fz-champ { position: relative; }
#fz-site .fz-suggestions {
  position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 20;
  max-height: 268px; overflow-y: auto;
  border: 1px solid var(--fz-filet); border-radius: var(--fz-rayon-s);
  background: var(--fz-blanc); box-shadow: var(--fz-ombre-forte);
}
#fz-site .fz-suggestions[hidden] { display: none; }
#fz-site .fz-suggestions button {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  width: 100%; padding: 11px 14px; text-align: left; cursor: pointer;
  border: 0; border-bottom: 1px solid var(--fz-filet); background: none;
}
#fz-site .fz-suggestions li:last-child button { border-bottom: 0; }
#fz-site .fz-suggestions button b { font-size: .97rem; font-weight: 600; }
#fz-site .fz-suggestions button span { font-size: .84rem; color: var(--fz-encre-2); }
#fz-site .fz-suggestions button:hover,
#fz-site .fz-suggestions button.fz-actif { background: rgba(47, 127, 212, .09); }
#fz-site .fz-suggestions button.fz-actif b { color: var(--fz-bleu); }

#fz-site .fz-verdict--attente { border-color: rgba(47, 127, 212, .3); background: rgba(47, 127, 212, .06); }
#fz-site .fz-verdict--attente .fz-verdict-titre { color: var(--fz-bleu); }

#fz-site .fz-verdict {
  margin-top: 24px; padding: 22px 24px;
  border-radius: var(--fz-rayon); border: 1px solid var(--fz-filet);
  background: var(--fz-glace);
}
#fz-site .fz-verdict[hidden] { display: none; }
#fz-site .fz-verdict-titre { font-size: 1.16rem; font-weight: 700; letter-spacing: -.02em; margin-bottom: 6px; }
#fz-site .fz-verdict-detail { font-size: .9rem; color: var(--fz-encre-2); margin-bottom: 12px; }
#fz-site .fz-verdict p { line-height: 1.6; }
#fz-site .fz-verdict--oui { border-color: rgba(30, 122, 78, .3); background: rgba(30, 122, 78, .07); }
#fz-site .fz-verdict--oui .fz-verdict-titre { color: #16603C; }
#fz-site .fz-verdict--limite { border-color: rgba(242, 102, 30, .3); background: rgba(242, 102, 30, .07); }
#fz-site .fz-verdict--limite .fz-verdict-titre { color: #B34A14; }
#fz-site .fz-verdict--hors { border-color: rgba(27, 79, 168, .28); background: rgba(27, 79, 168, .06); }
#fz-site .fz-verdict--hors .fz-verdict-titre { color: var(--fz-bleu); }
#fz-site .fz-verdict--erreur { border-color: rgba(152, 166, 184, .5); }

@media (max-width: 900px) { #fz-site .fz-zone-outil { grid-template-columns: 1fr; } }


/* 22. CONTACT ================================================ */
#fz-site .fz-contact { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 5vw, 64px); align-items: start; }
#fz-site .fz-coord { display: grid; gap: 20px; margin-bottom: 26px; }
#fz-site .fz-coord-item strong { display: block; margin-bottom: 4px; font-size: .85rem; font-weight: 600; color: var(--fz-cyan); }
#fz-site .fz-coord-item a,
#fz-site .fz-coord-item span { font-size: 1.1rem; line-height: 1.45; }
#fz-site .fz-coord-item a { border-bottom: 1px solid rgba(255, 255, 255, .2); }
#fz-site .fz-coord-item a:hover { border-color: #fff; }
#fz-site .fz-carte {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
  aspect-ratio: 16 / 10; padding: 24px; text-align: center;
  border: 1px solid var(--fz-filet-inv); border-radius: 14px; background: rgba(255, 255, 255, .04);
}
#fz-site .fz-carte span { font-size: .92rem; line-height: 1.5; color: rgba(232, 238, 246, .6); }
@media (max-width: 860px) { #fz-site .fz-contact { grid-template-columns: 1fr; } }


/* 23. PARTENAIRES, LABELS ET CHIFFRES ======================== */
#fz-site .fz-marques { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2vw, 24px); }
#fz-site .fz-marque {
  padding: 30px 28px; border: 1px solid var(--fz-filet); border-radius: var(--fz-rayon);
  background: var(--fz-blanc); box-shadow: var(--fz-ombre);
}
#fz-site .fz-marque h3 { margin-bottom: 12px; font-size: 1.32rem; color: var(--fz-encre); }
#fz-site .fz-marque p { line-height: 1.62; color: var(--fz-encre-2); }

#fz-site .fz-labels { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 20px); }
#fz-site .fz-label {
  padding: 24px 22px; border: 1px solid var(--fz-filet); border-radius: var(--fz-rayon);
  background: var(--fz-blanc); box-shadow: var(--fz-ombre);
}
/* La couleur est forcée : sans elle, dans une section sombre, le titre
   hérite du blanc du parent et devient invisible sur la carte blanche. */
#fz-site .fz-label strong { display: block; margin-bottom: 9px; font-size: 1.08rem; font-weight: 700; letter-spacing: -.02em; color: var(--fz-encre); }
#fz-site .fz-label strong a { color: var(--fz-bleu); }
#fz-site .fz-label span { font-size: .92rem; line-height: 1.55; color: var(--fz-encre-2); }
#fz-site .fz-label--large { grid-column: span 2; }
@media (max-width: 960px) { #fz-site .fz-labels { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) {
  #fz-site .fz-marques, #fz-site .fz-labels { grid-template-columns: 1fr; }
  #fz-site .fz-label--large { grid-column: auto; }
}

#fz-site .fz-chiffres { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(16px, 2vw, 24px); }
#fz-site .fz-chiffre { padding-top: 20px; border-top: 2px solid rgba(255, 255, 255, .16); }
#fz-site .fz-chiffre b {
  display: block; margin-bottom: 10px;
  font-size: clamp(1.9rem, 3.4vw, 2.5rem); font-weight: 700; line-height: 1; letter-spacing: -.04em;
  background: linear-gradient(135deg, var(--fz-cyan), var(--fz-bleu-vif));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
#fz-site .fz-chiffre:last-child b {
  background: linear-gradient(135deg, var(--fz-orange-clair), var(--fz-orange));
  -webkit-background-clip: text; background-clip: text;
}
#fz-site .fz-chiffre span { font-size: .94rem; line-height: 1.5; color: rgba(232, 238, 246, .68); }
@media (max-width: 760px) { #fz-site .fz-chiffres { grid-template-columns: 1fr 1fr; } }


/* 24. BLOCS DE SERVICE (page services) ======================= */
#fz-site .fz-service {
  display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: clamp(28px, 4.5vw, 60px); align-items: start;
  padding: clamp(44px, 5vw, 64px) 0; border-top: 1px solid var(--fz-filet);
}
#fz-site .fz-service:first-of-type { padding-top: 0; border-top: 0; }
#fz-site .fz-service img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--fz-rayon); box-shadow: var(--fz-ombre-forte); }
#fz-site .fz-service-media { position: sticky; top: 104px; }
#fz-site .fz-service--inverse .fz-service-media { order: 2; }
#fz-site .fz-service h3 { margin: 28px 0 12px; font-size: 1.18rem; }
#fz-site .fz-service h2 { margin-bottom: 14px; font-size: clamp(1.5rem, 2.4vw, 1.95rem); }
#fz-site .fz-service p { max-width: 58ch; margin-bottom: 14px; color: var(--fz-encre-2); }
#fz-site .fz-service .fz-liste { margin: 18px 0 22px; }
#fz-site .fz-service-prix {
  display: inline-flex; flex-direction: column; margin-bottom: 22px; padding: 14px 18px;
  border: 1px solid var(--fz-filet); border-left: 3px solid var(--fz-orange);
  border-radius: var(--fz-rayon-s); background: var(--fz-glace);
}
#fz-site .fz-service-prix small { font-size: .82rem; color: var(--fz-encre-2); }
#fz-site .fz-service-prix b { margin-top: 2px; font-size: 1.3rem; letter-spacing: -.025em; }
#fz-site .fz-service-prix small + small { margin-top: 4px; }
@media (max-width: 860px) {
  #fz-site .fz-service { grid-template-columns: 1fr; gap: 24px; }
  #fz-site .fz-service-media { position: static; }
  #fz-site .fz-service--inverse .fz-service-media { order: 0; }
}


/* 25. PIED DE PAGE =========================================== */
#fz-site .fz-pied { padding-top: 54px; padding-bottom: 38px; background: #04101F; color: rgba(232, 238, 246, .6); font-size: .92rem; }
#fz-site .fz-pied-grille { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); gap: 36px; padding-bottom: 32px; }
#fz-site .fz-pied h4 + ul + h4 { margin-top: 22px; }
#fz-site .fz-pied-logo { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
#fz-site .fz-pied-logo img { width: 56px; height: auto; }
#fz-site .fz-pied-marque { font-size: 1.4rem; font-weight: 700; line-height: 1; letter-spacing: -.025em; color: #fff; }
#fz-site .fz-pied-marque em {
  display: block; margin-top: 5px; font-style: normal;
  font-size: .76rem; font-weight: 600; letter-spacing: .04em; color: var(--fz-orange);
}
#fz-site .fz-pied p + p { margin-top: 14px; }
#fz-site .fz-pied h4 { margin-bottom: 13px; font-size: .86rem; font-weight: 600; color: #fff; }
#fz-site .fz-pied li { margin-bottom: 8px; }
#fz-site .fz-pied a:hover { color: #fff; }
#fz-site .fz-pied-bas {
  display: flex; flex-wrap: wrap; gap: 8px 24px;
  padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .1);
  font-size: .84rem; color: rgba(232, 238, 246, .42);
}
@media (max-width: 760px) { #fz-site .fz-pied-grille { grid-template-columns: 1fr; gap: 26px; } }


/* 26. PRÉFÉRENCES DE MOUVEMENT RÉDUIT ======================== */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  #fz-site *, #fz-site *::before, #fz-site *::after {
    animation: none !important;
    transition-duration: .01ms !important;
  }
  #fz-site .fz-ligne > span { transform: none; }
  #fz-site .fz-rev { opacity: 1; transform: none; }
  #fz-site .fz-hero-cadre { clip-path: none; }
  #fz-site .fz-reseau { opacity: .45; }
}
