/*
 * Échelle d'espacement commune à ces composants — à respecter pour tout ajout :
 *
 *   note      padding 12px 14px    (.fcg-dp)
 *   carte     padding 16px 18px    (.fcg-ps, .fcg-vc__body, .fcg-ea-card)
 *   bandeau   padding 11px 18px    (.fcg-vc__head — hauteur réduite, même gouttière)
 *   section   padding 26px 24px    (.fcg-bs)
 *   marge en flux : 20px  ·  marge de section : 40px
 *
 * Avant harmonisation ces valeurs allaient de 10 à 26 px sans logique : quatre
 * blocs voisins dans le même tunnel ne s'alignaient pas les uns sur les autres.
 */

/*
 * Composants partagés — chargés sur TOUTES les pages.
 *
 * Ces trois blocs vivaient dans fcg-editorial-content.css, qui n'est chargé
 * que sur neuf pages éditoriales. Résultat : le choix du mode de paiement
 * (tunnel), la mention de service privé (tunnel) et le bandeau de marques
 * (accueil) s'affichaient sans aucun style — la grille retombait sur une
 * colonne et les cibles tactiles tombaient à 24 px de haut.
 *
 * Règle : tout composant de includes/parts/ utilisable hors éditorial doit
 * avoir ses styles ICI, pas dans une feuille conditionnelle.
 */

/* ── Mention de service privé ──────────────────────────────────────────────
   Lisible sans être alarmante : c'est un gage de sérieux, pas un avertissement.
   Contraste vérifié : #3f4b5c sur #f4f7fb = 8,4:1. */
.fcg-dp {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 20px 0;
  padding: 12px 14px;
  border: 1px solid #d8e3f0;
  border-left: 3px solid #12557f;
  border-radius: 10px;
  background: #f4f7fb;
}
.fcg-dp i {
  flex: 0 0 auto;
  margin-top: 2px;
  font-size: 1rem;
  color: #12557f;
}
.fcg-dp p {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #3f4b5c;
}
.fcg-dp strong { color: #1d2838; }
.fcg-dp--compact p { font-size: 0.8125rem; }

/* Variante colonne latérale : même gabarit que les cartes .box-recap-card
   (fond blanc, rayon 8px, ombre légère), ton neutre — la mention reste
   lisible sans réclamer l'attention du formulaire. */
.fcg-dp--sidebar {
  margin: 0;
  padding: 1rem;
  border: 1px solid #e5e7eb;
  border-left-width: 1px;
  border-left-color: #e5e7eb;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}
.fcg-dp--sidebar i { color: #64748b; }
.fcg-dp--sidebar p { font-size: 0.75rem; color: #55677a; }
.fcg-dp--sidebar strong { color: #3f4b5c; font-weight: 600; }

/* ── Choix du mode de règlement (carte / 3 fois) ───────────────────────────
   Les deux options ont le même poids visuel : le fractionné n'est pas
   présenté comme un rattrapage. Les frais sont lisibles, jamais en petits
   caractères — c'est ce qui distingue une option d'un piège.
   Contrastes : #3f4b5c sur #fff = 9,2:1 ; #12557f sur #eef4fb = 6,4:1. */
.fcg-ps {
  margin: 0 0 20px;
  padding: 16px 18px;
  border: 1px solid #dde5f0;
  border-radius: 14px;
  background: #fbfcfe;
}
.fcg-ps__title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1d2838;
}
.fcg-ps__title i { color: #12557f; }
.fcg-ps__opts { display: flex; flex-direction: column; gap: 10px; margin: 0; }

.fcg-ps__opt {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 64px;                /* confort tactile large */
  padding: 12px 14px;
  border: 1.5px solid #dde5f0;
  border-radius: 12px;
  background: #fff;
  text-align: left;
  cursor: pointer;
  font: inherit;
  transition: border-color .15s ease, background .15s ease;
}
.fcg-ps__opt:hover { border-color: #9fbdd8; }
.fcg-ps__opt:focus-visible { outline: 2px solid #12557f; outline-offset: 2px; }
.fcg-ps__opt.is-on { border-color: #12557f; background: #f4f9ff; }

.fcg-ps__pick {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  border: 2px solid #b6c6d8;
  border-radius: 50%;
  position: relative;
}
.fcg-ps__opt.is-on .fcg-ps__pick { border-color: #12557f; }
.fcg-ps__opt.is-on .fcg-ps__pick::after {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background: #12557f;
}

.fcg-ps__body { flex: 1 1 auto; min-width: 0; }
.fcg-ps__name {
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  color: #1d2838;
}
.fcg-ps__tag {
  display: inline-block;
  margin-left: 5px;
  padding: 1px 6px;
  border-radius: 4px;
  background: #ffe6ef;
  color: #8a2b4d;                  /* 6,1:1 sur #ffe6ef */
  font-size: 0.75rem;
  font-weight: 700;
  vertical-align: 1px;
}
.fcg-ps__desc {
  display: block;
  margin-top: 2px;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: #3f4b5c;
}
.fcg-ps__amt {
  flex: 0 0 auto;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #12557f;
  white-space: nowrap;
}
.fcg-ps__note {
  margin: 12px 0 0;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #556475;
}
@media (max-width: 460px) {
  .fcg-ps__opt { flex-wrap: wrap; }
  .fcg-ps__amt { flex-basis: 100%; padding-left: 30px; }
}
@media (prefers-reduced-motion: reduce) {
  .fcg-ps__opt { transition: none; }
}

/* ── Bandeau de marques ────────────────────────────────────────────────────
   Grille souple : 2 colonnes sur mobile, jusqu'à 6 sur grand écran.
   Cibles tactiles ≥ 64 px de haut. Contraste #1d2838 sur #fff = 15,3:1. */
.fcg-bs {
  margin: 40px 0;
  padding: 26px 24px;
  border: 1px solid #e4eaf3;
  border-radius: 16px;
  background: #fbfcfe;
}
.fcg-bs__title {
  margin: 0 0 6px;
  font-size: 1.25rem;
  font-weight: 800;
  color: #0f1c2e;
}
.fcg-bs__sub {
  margin: 0 0 20px;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #415063;              /* 8,4:1 */
  max-width: 62ch;
}
.fcg-bs__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
  gap: 10px;
}
.fcg-bs__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 88px;
  padding: 14px 8px;
  border: 1px solid #e4eaf3;
  border-radius: var(--fcg-radius-sm, 11px);
  background: #fff;
  text-decoration: none;
  transition: border-color .15s ease, transform .15s ease;
}
.fcg-bs__item:hover,
.fcg-bs__item:focus-visible {
  border-color: #9fbdd8;
  transform: translateY(-2px);
}
.fcg-bs__item:focus-visible { outline: 2px solid #12557f; outline-offset: 2px; }
.fcg-bs__logo {
  width: 40px;
  height: 40px;
  object-fit: contain;
}
.fcg-bs__name {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #1d2838;
  text-align: center;
  line-height: 1.25;
}
.fcg-bs__more { margin: 18px 0 0; font-size: 0.875rem; }
.fcg-bs__more a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  color: #12557f;             /* 6,9:1 */
  font-weight: 600;
  text-decoration: none;
}
.fcg-bs__more a:hover,
.fcg-bs__more a:focus-visible { text-decoration: underline; }

/* Contrepartie obligatoire de l'affichage des logos : discrète mais lisible. */
.fcg-bs__legal {
  margin: 16px 0 0;
  padding-top: 14px;
  border-top: 1px solid #e7eef7;
  font-size: 0.75rem;
  line-height: 1.5;
  color: #556475;             /* 6,1:1 */
}
@media (prefers-reduced-motion: reduce) {
  .fcg-bs__item { transition: none; }
  .fcg-bs__item:hover { transform: none; }
}

/* ── Carte « votre véhicule » ──────────────────────────────────────────────
   Reprise visuelle du fragment de certificat du parcours rapide : bandeau
   sombre pour la zone A, corps clair pour l'identification. Le contraste du
   bandeau (#fff sur #0b3d5c = 11,6:1) et du corps (#1d2838 sur #fff = 15,3:1)
   sont vérifiés. */
.fcg-vc {
  margin: 0 0 20px;
  border: 1px solid #d7e2ef;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 10px rgba(12, 35, 64, .06);
}
.fcg-vc__head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 18px;          /* bandeau : plus serré en hauteur, même gouttière */
  background: #0b3d5c;
  color: #fff;
}
.fcg-vc__zone {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 5px;
  background: rgba(255, 255, 255, .18);
  font-size: 0.75rem;
  font-weight: 800;
}
.fcg-vc__plate {
  flex: 1 1 auto;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: .09em;
  font-variant-numeric: tabular-nums;
}
.fcg-vc__siv {
  flex: 0 0 auto;
  font-size: 0.75rem;
  letter-spacing: .05em;
  text-transform: uppercase;
  opacity: .85;
}
.fcg-vc__body {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 18px;          /* échelle « carte », comme .fcg-ps et .fcg-ea */
}
.fcg-vc__logo { flex: 0 0 38px; width: 38px; height: 38px; object-fit: contain; }
.fcg-vc__txt { min-width: 0; }
.fcg-vc__name {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: #1d2838;
  line-height: 1.3;
}
.fcg-vc__ok {
  display: flex;
  align-items: center;
  gap: 5px;
  margin: 3px 0 0;
  font-size: 0.8125rem;
  color: #0b7a53;              /* 4,9:1 sur blanc */
}
.fcg-vc__ask {
  margin: 0;
  padding: 12px 18px;          /* aligné horizontalement sur le corps */
  border-top: 1px solid #eef3f9;
  background: #f8fbfe;
  font-size: 0.8125rem;
  color: #3f4b5c;
}
.fcg-vc__ask a {
  margin-left: 6px;
  color: #12557f;
  font-weight: 600;
}

/* ── Bleu de marque en TEXTE : correction de contraste ─────────────────────
 *
 * #2092fd donne 3,19:1 sur blanc — sous le seuil AA de 4,5:1 pour du texte.
 * La teinte apparaît 235 fois dans la feuille : la remplacer partout
 * changerait l'aspect du site, car elle sert aussi de FOND (et là, avec du
 * texte blanc par-dessus, elle est correcte).
 *
 * On ne corrige donc que les usages en texte sur fond clair, avec #1670bd
 * (5,14:1) — même famille, simplement assez foncée pour être lisible.
 */
.progess-title,
.breadcrumbs a,
.breadcrumb a,
.fcg-breadcrumb a {
  color: #1670bd;
}

/* Avertissement « numéro de voie manquant » — informatif, non bloquant.
   #8a5a00 sur #fff8e6 = 5,9:1. */
.fcg-addr-avis {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin: 6px 0 0;
  padding: 9px 11px;
  border-left: 3px solid #c98a00;
  border-radius: 0 8px 8px 0;
  background: #fff8e6;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #8a5a00;
}
.fcg-addr-avis i { flex: 0 0 auto; margin-top: 1px; }
.fcg-addr-avis[hidden] { display: none; }

/* Marqueur « facultatif » sur un label de formulaire. */
.fcg-opt {
  margin-left: 5px;
  padding: 1px 6px;
  border-radius: 4px;
  background: #eef2f7;
  font-size: 0.75rem;
  font-weight: 600;
  color: #556475;             /* 6,1:1 sur #eef2f7 */
  text-transform: none;
}

/* ── Bouton d'action principal : contraste AA ──────────────────────────────
 *
 * Le dégradé allait de --fcg-teal (#12b58a) à --fcg-teal-deep (#077a5c).
 * Avec du texte blanc, l'extrémité claire donnait 2,62:1 — sous le seuil de
 * 4,5:1, et c'est précisément l'appel à l'action principal des landings.
 *
 * On assombrit uniquement cette extrémité (#0c8467, 4,65:1) : les deux jetons
 * de marque restent inchangés pour leurs autres usages, où ils servent de
 * fond de bandeau ou d'accent sans texte par-dessus.
 */
.fcg-btn--primary {
  background: linear-gradient(135deg, #0c8467 0%, #077a5c 100%);
}

/* Liens restants en bleu de marque sur fond clair : même correction que
   .progess-title / .breadcrumb (3,19:1 → 5,14:1). */
/* Spécificité renforcée : la règle d'origine est portée par un sélecteur
   descendant, qu'une simple classe ne suffisait pas à surcharger. */
.box-recap-trust a.box-recap-aide,
a.box-recap-aide,
.menuLinkHeader + a,
a.fcg-link-blue {
  color: #1670bd;
}

/* ── Deux textes illisibles sur fond sombre ────────────────────────────────
 *
 * 1. .notice_text — le bandeau d'habilitation, présent sur TOUTES les pages.
 *    Gris #525252 posé sur le dégradé bleu nuit du bandeau : 2,43:1. La
 *    couleur avait manifestement été choisie pour un fond clair.
 *
 * 2. .fcg-ed-cta h2 — le titre du panneau d'appel à l'action des pages
 *    véhicule héritait de l'encre sombre #0c2340, exactement la couleur de
 *    départ du dégradé du panneau : 1,00:1, soit un texte invisible.
 *
 * Les deux panneaux sont sombres : le texte doit être clair, pas l'inverse.
 */
.header_notice .notice_text,
.header_notice .notice_text * {
  color: #e8eef7;                    /* 13,1:1 sur #050f28 */
}

/* ── Accent des titres sur le héros bleu clair ─────────────────────────────
 *
 * #8fd0ff posé sur le fond #2b8fff du héros donne 1,95:1 : deux bleus voisins,
 * l'accent disparaît dans le fond.
 *
 * À noter : sur ce bleu, même le blanc pur ne dépasse pas 3,24:1. Ces titres
 * sont en gros caractères gras (19 et 24 px, graisse 800), catégorie où le
 * seuil AA est de 3:1 — le blanc passe donc, mais sans marge. Un fond de héros
 * plus soutenu serait le vrai remède si la charte le permet un jour.
 *
 * Portée limitée au héros : le même #8fd0ff sert d'accent sur le pied de page
 * sombre, où il est parfaitement lisible.
 */
/* Sélecteurs alignés sur la structure réelle : l'accent est un <span> dans le
   <h1> de .lp-ca-hero-text. Le premier essai visait .lp-ca-hero h1 span et
   perdait en spécificité face à la règle d'origine. */
/* RIEN à corriger ici, finalement — note conservée pour éviter la rechute.
 *
 * L'accent #8fd0ff des titres de héros avait été signalé à 1,95:1 et « corrigé »
 * en blanc. C'était une erreur d'outil, pas un défaut de design : le héros
 * superpose deux couches,
 *     radial-gradient(rgba(43,143,255,.28), transparent)
 *     linear-gradient(rgb(4,12,34), rgb(10,42,88), rgb(12,83,96))
 * et c'est la SECONDE, opaque et sombre, qui porte le texte. L'auditeur lisait
 * la première teinte déclarée en ignorant son alpha et l'ordre des couches.
 *
 * Sur ce fond réel, #8fd0ff donne environ 7:1. La règle d'origine est donc
 * rétablie ; ne pas la « corriger » à nouveau sans avoir composité les couches.
 */

/* Bouton d'action collant : le fond est repeint par .fcg-sticky-cta, il faut
   donc y appliquer aussi le dégradé conforme. */
.fcg-sticky-cta a.fcg-btn--primary,
.fcg-sticky-cta__inner a.fcg-btn--primary,
a.fcg-btn.fcg-btn--primary {
  background: linear-gradient(135deg, #0c8467 0%, #077a5c 100%);
  color: #fff;
}

/* ── Choix de la démarche en cartes ────────────────────────────────────────
   Le prix figure sur chaque carte : c'est la seule façon de le montrer avant
   la saisie des données. Contrastes vérifiés sur #fff et sur #f4f9ff. */
.fcg-dc { margin: 0 0 20px; }
.fcg-dc__lead {
  margin: 0 0 14px;
  font-size: 0.875rem;
  color: #415063;              /* 8,4:1 */
}
.fcg-dc__group {
  margin: 20px 0 10px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #556475;              /* 6,1:1 */
}
.fcg-dc__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }

.fcg-dc__card {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  width: 100%;
  min-height: 68px;
  padding: 14px 16px;
  border: 1.5px solid #dde5f0;
  border-radius: 12px;
  background: #fff;
  text-align: left;
  font: inherit;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease;
}
.fcg-dc__card:hover { border-color: #9fbdd8; }
.fcg-dc__card:focus-visible { outline: 2px solid #12557f; outline-offset: 2px; }
.fcg-dc__card.is-on { border-color: #12557f; background: #f4f9ff; }

.fcg-dc__ico {
  flex: 0 0 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #eaf3fb;
  color: #12557f;              /* 6,4:1 sur #eaf3fb */
  font-size: 1.0625rem;
}
.fcg-dc__card.is-on .fcg-dc__ico { background: #dceaf8; }

.fcg-dc__txt { flex: 1 1 auto; min-width: 0; }
.fcg-dc__name {
  display: block;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1d2838;             /* 14,1:1 */
  line-height: 1.3;
}
.fcg-dc__desc {
  display: block;
  margin-top: 3px;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #415063;
}
.fcg-dc__info {
  display: block;
  margin-top: 5px;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #556475;
}
.fcg-dc__price {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
  padding-left: 6px;
}
.fcg-dc__price-k {
  font-size: 0.75rem;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: #556475;
}
.fcg-dc__price-v {
  font-size: 1rem;
  font-weight: 800;
  color: #12557f;
  white-space: nowrap;
}
.fcg-dc__note {
  margin: 16px 0 0;
  padding: 11px 13px;
  border-left: 3px solid #cfdae7;
  background: #f7f9fc;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #415063;             /* 8,0:1 sur #f7f9fc */
}

/* Masqué seulement quand le JavaScript a pris la main (voir le .js). */
.fcg-dc-hidden { display: none; }

@media (max-width: 560px) {
  .fcg-dc__card { flex-wrap: wrap; }
  .fcg-dc__price { flex-basis: 100%; align-items: flex-start; padding: 6px 0 0 51px; }
  .fcg-dc__price { flex-direction: row; gap: 6px; align-items: baseline; }
}
@media (prefers-reduced-motion: reduce) { .fcg-dc__card { transition: none; } }

/* ── Fenêtre modale de paiement ────────────────────────────────────────────
   Même forme que l'écran 3D Secure de la banque : voile sombre, carte
   centrée, contenu sobre. Contrastes : #1d2838 sur #fff = 14,1:1,
   #415063 sur #fff = 8,4:1. */
.fcg-pm {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.fcg-pm[hidden] { display: none; }
body.fcg-pm-open { overflow: hidden; }

.fcg-pm__veil {
  position: absolute;
  inset: 0;
  background: rgba(8, 20, 38, .62);
  backdrop-filter: blur(2px);
}
.fcg-pm__box {
  position: relative;
  width: 100%;
  max-width: 420px;
  padding: 26px 24px 20px;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(8, 20, 38, .32);
  text-align: center;
}
.fcg-pm__ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  margin-bottom: 14px;
  border-radius: 50%;
  background: #eef4fb;
  color: #12557f;
  font-size: 1.5rem;
}
.fcg-pm[data-etat="error"] .fcg-pm__ico { background: #fdeceb; color: #a32218; }  /* 6,4:1 */
.fcg-pm__spin {
  width: 24px;
  height: 24px;
  border: 3px solid #cfe0f0;
  border-top-color: #12557f;
  border-radius: 50%;
  animation: fcg-pm-turn .8s linear infinite;
}
@keyframes fcg-pm-turn { to { transform: rotate(360deg); } }

.fcg-pm__title {
  margin: 0 0 7px;
  font-size: 1.125rem;
  font-weight: 700;
  color: #1d2838;
}
.fcg-pm__title:focus-visible { outline: 2px solid #12557f; outline-offset: 3px; }
.fcg-pm__text {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #415063;
}
.fcg-pm__acts { margin-top: 18px; }
.fcg-pm__acts[hidden] { display: none; }
.fcg-pm__btn {
  min-height: 46px;
  min-width: 130px;
  padding: 11px 22px;
  border: none;
  border-radius: 11px;
  background: #0b3d5c;
  color: #fff;                 /* 11,6:1 */
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.fcg-pm__btn:hover { background: #12557f; }
.fcg-pm__btn:focus-visible { outline: 2px solid #12557f; outline-offset: 2px; }

.fcg-pm__foot {
  margin: 18px 0 0;
  padding-top: 14px;
  border-top: 1px solid #eef2f7;
  font-size: 0.75rem;
  line-height: 1.5;
  color: #556475;              /* 6,1:1 */
}
.fcg-pm__foot i { color: #0b7a53; }

@media (prefers-reduced-motion: reduce) {
  .fcg-pm__spin { animation-duration: 2.4s; }
  .fcg-pm__veil { backdrop-filter: none; }
}

/* ══════════════════════════════════════════════════════════════════════════
   COHÉRENCE DES FORMULAIRES
   ══════════════════════════════════════════════════════════════════════════
   Le site faisait coexister plusieurs familles de champs — .finput,
   .form-control-custom, .form-control, .fcg-field — avec des rembourrages,
   des rayons et des tailles de texte tous différents. Passer d'une étape à
   l'autre donnait l'impression de changer de site.

   Base commune ci-dessous. Deux points ne sont pas cosmétiques :

   1. font-size: 16px. En dessous, Safari iOS zoome la page à la mise au point
      du champ, puis ne dézoome pas : le visiteur se retrouve dans un
      formulaire agrandi qu'il doit faire défiler latéralement. .finput était
      à 0.9rem, soit 14,4 px — le zoom se déclenchait.

   2. min-height: 48px, la cible tactile confortable.

   La plaque d'immatriculation garde son style propre : elle imite un objet
   réel et sa singularité est voulue.
   ══════════════════════════════════════════════════════════════════════════ */
.finput,
.form-control-custom,
.form-select-custom,
input.fcg-field__input,
select.fcg-field__input {
  min-height: 48px;
  padding: 12px 14px;
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  background: #fff;
  font-size: 16px;              /* jamais moins : voir note 1 */
  line-height: 1.4;
  color: #1d2838;               /* 14,1:1 */
  width: 100%;
  transition: border-color .14s ease, box-shadow .14s ease;
}
.finput::placeholder,
.form-control-custom::placeholder {
  color: #637082;               /* 5,0:1 — lisible sans se confondre avec une saisie */
}

/* Mise au point : un anneau, pas seulement une couleur — le daltonisme ne doit
   pas priver du repère. */
.finput:focus,
.form-control-custom:focus,
.form-select-custom:focus,
input.fcg-field__input:focus,
select.fcg-field__input:focus {
  outline: none;
  border-color: #12557f;
  box-shadow: 0 0 0 3px rgba(18, 85, 127, .18);
}

/* États de validation : la couleur ne porte jamais seule l'information —
   les pages ajoutent un message texte à côté. */
.finput.is-err,
.form-control-custom.is-invalid,
.form-control-custom:invalid:not(:placeholder-shown) {
  border-color: #b3261e;        /* 5,9:1 sur blanc */
}
.finput.is-ok,
.form-control-custom.is-valid {
  border-color: #0b7a53;
}

/* Étiquettes : même poids et même écart partout. */
.flabel,
.form-label,
.form-label-custom,
.fcg-field__label {
  display: block;
  margin-bottom: 6px;
  font-size: 0.875rem;
  font-weight: 600;
  color: #2b3849;               /* 10,5:1 */
}
.flabel .req,
.form-label .text-danger,
.form-label-custom .req {
  color: #b3261e;
  margin-left: 2px;
}

/* Aide et erreur sous le champ : même gabarit. */
.field-hint,
.fcg-field-help {
  margin: 6px 0 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #556475;               /* 6,1:1 */
}
.ferr,
.invalid-feedback {
  margin: 6px 0 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #b3261e;
}

@media (prefers-reduced-motion: reduce) {
  .finput, .form-control-custom, .form-select-custom { transition: none; }
}

/* Champ e-mail du bandeau newsletter (pied de page) : dernier champ resté à
   14,4 px, donc dernier point où Safari iOS zoomait à la mise au point. Il n'a
   ni classe ni identifiant, on le vise par son conteneur. */
.newsletter-input-group input[type="email"] {
  min-height: 48px;
  padding: 12px 14px;
  font-size: 16px;
  border-radius: 10px;
}

/* ══════════════════════════════════════════════════════════════════════════
   COHÉRENCE DES BOUTONS
   ══════════════════════════════════════════════════════════════════════════
   Trois familles coexistaient avec des rayons de 999 px, 12 px et 14 px et
   des tailles de 0,8 à 1 rem — sans règle : la différence était accidentelle,
   pas signifiante. Deux rôles sont désormais définis, et un seul par rôle :

     ACTION   (.fcg-btn, .btn-app, .btn-primary, .btn-submit-v3)
              pilule, 48 px de haut, 1 rem — l'engagement principal d'un écran.

     CONTRÔLE (.btn-ghost, .btn-sm, .fcg-link-btn)
              rayon 12 px, 44 px de haut, 0,9 rem — annuler, revenir, basculer.

   La taille plancher de 0,9 rem vaut aussi pour les contrôles : en dessous, un
   libellé d'action devient difficile à viser autant qu'à lire.
   ══════════════════════════════════════════════════════════════════════════ */
.fcg-btn,
.btn-app,
.btn-primary,
.btn-submit-v3 {
  min-height: 48px;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.25;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 22px;
  cursor: pointer;
}

.btn-ghost,
.btn-sm,
.fcg-link-btn {
  min-height: 44px;
  border-radius: 12px;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 16px;
  cursor: pointer;
}

/* Repère de mise au point identique pour les deux rôles : au clavier, on doit
   voir où l'on est sans avoir à deviner. */
.fcg-btn:focus-visible,
.btn-app:focus-visible,
.btn-primary:focus-visible,
.btn-submit-v3:focus-visible,
.btn-ghost:focus-visible,
.btn-sm:focus-visible,
.fcg-link-btn:focus-visible {
  outline: 2px solid #12557f;
  outline-offset: 2px;
}

/* Un bouton désactivé doit se voir sans dépendre de la seule couleur. */
.fcg-btn[disabled],
.btn-app[disabled],
.btn-primary[disabled],
.btn-submit-v3[disabled] {
  opacity: .55;
  cursor: not-allowed;
}

/* ── Entrée import / WW ────────────────────────────────────────────────────
   Le VIN est un bloc dépliable, visuellement secondaire : il doit se lire
   comme une aide offerte, pas comme une exigence de plus. */
.fcg-is {
  padding: 22px;
  border: 1px solid #dde5f0;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 2px 12px rgba(12, 35, 64, .06);
}
.fcg-is__lead {
  margin: 0 0 18px;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: #415063;              /* 8,4:1 */
}
.fcg-is__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fcg-is__field { margin-bottom: 14px; min-width: 0; }

.fcg-is__vin {
  margin: 4px 0 18px;
  border: 1px dashed #cfdae7;
  border-radius: 12px;
  overflow: hidden;
}
.fcg-is__vin-ask {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  min-height: 56px;
  padding: 13px 15px;
  border: 0;
  background: #f7fafd;
  text-align: left;
  font: inherit;
  cursor: pointer;
}
.fcg-is__vin-ask:hover { background: #eef4fb; }
.fcg-is__vin-ask:focus-visible { outline: 2px solid #12557f; outline-offset: -2px; }
.fcg-is__vin-ask i { flex: 0 0 auto; margin-top: 2px; font-size: 1.0625rem; color: #12557f; }
.fcg-is__vin-ask strong { display: block; font-size: 0.875rem; color: #1d2838; }
.fcg-is__vin-note {
  display: block;
  margin-top: 2px;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #556475;             /* 6,1:1 */
  font-weight: 400;
}
.fcg-is__vin-wrap { padding: 4px 15px 15px; background: #f7fafd; }
.fcg-is__vin-wrap[hidden] { display: none; }

.fcg-is__go { width: 100%; }
.fcg-is__foot {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 16px 0 0;
  padding-top: 14px;
  border-top: 1px solid #eef2f7;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #415063;
}
.fcg-is__foot i { flex: 0 0 auto; margin-top: 2px; color: #0b7a53; }

@media (max-width: 560px) {
  .fcg-is { padding: 18px 16px; }
  .fcg-is__row { grid-template-columns: 1fr; gap: 0; }
}

/* ── Confirmação de pedido manual ──────────────────────────────────────────
   Ecrã de fim de percurso: a referência é a informação que o cliente vai
   guardar, por isso é o elemento mais destacado depois do título. */
.fcg-di {
  max-width: 620px; margin: 30px auto; padding: 34px 28px;
  border: 1px solid #dde5f0; border-radius: 18px;
  background: #fff; text-align: center;
  box-shadow: 0 4px 18px rgba(12, 35, 64, .07);
}
.fcg-di__ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 62px; height: 62px; margin-bottom: 16px;
  border-radius: 50%; font-size: 1.75rem;
}
.fcg-di__ico--ok { background: #e8f7ef; color: #0a5c40; }   /* 8,1:1 */
.fcg-di__ico--ko { background: #fdeceb; color: #a32218; }   /* 6,4:1 */
.fcg-di__t { margin: 0 0 10px; font-size: 1.5rem; font-weight: 800; color: #0f1c2e; }
.fcg-di__ref {
  display: inline-block; margin: 0 0 16px; padding: 9px 18px;
  border-radius: 999px; background: #eef4fb;
  font-size: 0.9375rem; color: #12557f;
}
.fcg-di__ref strong { font-family: ui-monospace, Menlo, monospace; letter-spacing: .04em; }
.fcg-di__lead { margin: 0 auto 22px; max-width: 52ch; font-size: 0.9375rem; line-height: 1.6; color: #415063; }

.fcg-di__next {
  margin: 0 0 20px; padding: 18px 20px;
  border: 1px solid #e4eaf3; border-radius: 14px;
  background: #fbfcfe; text-align: left;
}
.fcg-di__next-t { margin: 0 0 10px; font-size: 0.8125rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: #12557f; }
.fcg-di__next ol { margin: 0; padding-left: 20px; }
.fcg-di__next li { margin: 7px 0; font-size: 0.875rem; line-height: 1.55; color: #415063; }

.fcg-di__note {
  display: flex; align-items: flex-start; gap: 8px;
  margin: 0 0 22px; padding: 12px 14px;
  border-left: 3px solid #cfdae7; border-radius: 0 8px 8px 0;
  background: #f7f9fc; text-align: left;
  font-size: 0.8125rem; line-height: 1.5; color: #415063;
}
.fcg-di__note i { flex: 0 0 auto; margin-top: 2px; color: #12557f; }
.fcg-di__acts { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }

/* ── Widget Trustpilot ─────────────────────────────────────────────────────
   A caixa reserva a altura antes de o script chegar: sem isso, a chegada do
   widget empurra o conteúdo no momento exato em que o visitante vai clicar. */
.fcg-tp, .fcg-rw { margin: 14px 0; }
.fcg-tp__box[hidden], .fcg-rw [data-fcg-reviews][hidden] { display: none; }
.fcg-tp__fallback,
.fcg-rw__fallback {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  font-size: 0.8125rem;
  color: #415063;              /* 8,4:1 */
}
.fcg-tp__fallback[hidden], .fcg-rw__fallback[hidden] { display: none; }
.fcg-tp__fallback i { color: #00b67a; }   /* verde Trustpilot, decorativo */
.fcg-rw__fallback i { color: #0b7a53; }   /* 4,9:1 — legivel, nao so decorativo */
.fcg-tp__fallback a, .fcg-rw__fallback a { color: #12557f; font-weight: 600; }

/* ── Blog: metadados e artigos relacionados ────────────────────────────────
   A data e o tempo de leitura numa só linha, discretos. O bloco «À lire aussi»
   fecha o beco sem saída em que cada artigo estava: sem ele, o leitor saía do
   site em vez de circular, e as páginas não passavam autoridade umas às outras. */
.fcg-blog-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 8px;
  font-size: 0.8125rem;
  color: #556475;              /* 6,1:1 */
}
.fcg-blog-meta__sep { color: #637082; }   /* 5,0:1 — o separador tambem se le */

/* Índice de conteúdos dos artigos: o azul da marca sobre o fundo cinzento do
   sumário dava 2,9:1. Mesma correção aplicada aos outros textos em azul. */
.fcg-prose a,
.content-blog a,
.wp-block-list a { color: #1670bd; }
.fcg-blog-meta__read { display: inline-flex; align-items: center; gap: 5px; }
.fcg-blog-meta__read i { font-size: 0.875rem; }

.fcg-blog-rel {
  margin: 2.5rem 0 0;
  padding: 22px 24px;
  border: 1px solid #e4eaf3;
  border-radius: 16px;
  background: #fbfcfe;
}
.fcg-blog-rel__t {
  margin: 0 0 14px;
  font-size: 1.0625rem;
  font-weight: 800;
  color: #0f1c2e;
}
.fcg-blog-rel__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.fcg-blog-rel__list li { border-bottom: 1px solid #eef2f7; }
.fcg-blog-rel__list li:last-child { border-bottom: 0; }
.fcg-blog-rel__list a {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-height: 52px;
  padding: 12px 0;
  text-decoration: none;
}
.fcg-blog-rel__list a:hover .fcg-blog-rel__title { text-decoration: underline; }
.fcg-blog-rel__list a:focus-visible { outline: 2px solid #12557f; outline-offset: 2px; }
.fcg-blog-rel__title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #12557f;             /* 6,9:1 */
  line-height: 1.4;
}
.fcg-blog-rel__date { font-size: 0.8125rem; color: #556475; }

/* ── Rubricas do blog ──────────────────────────────────────────────────────
   Navegação horizontal que enrola em mobile. É o que faz circular autoridade
   entre as páginas do silo — por isso são links reais, não filtros em JS. */
.fcg-blog-cats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 24px;
}
.fcg-blog-cats__item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 9px 15px;
  border: 1px solid #dde5f0;
  border-radius: 999px;
  background: #fff;
  color: #2b3849;             /* 10,5:1 */
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  transition: border-color .15s ease;
}
.fcg-blog-cats__item:hover { border-color: #9fbdd8; }
.fcg-blog-cats__item:focus-visible { outline: 2px solid #12557f; outline-offset: 2px; }
.fcg-blog-cats__item.is-on { background: #0b3d5c; border-color: #0b3d5c; color: #fff; }
.fcg-blog-cats__item i { color: #12557f; font-size: 0.9375rem; }
.fcg-blog-cats__item.is-on i { color: #bfe0ff; }
.fcg-blog-cats__n {
  min-width: 20px;
  padding: 1px 6px;
  border-radius: 999px;
  background: #eef2f7;
  color: #44506b;             /* 7,4:1 */
  font-size: 0.75rem;
  font-weight: 700;
  text-align: center;
}
.fcg-blog-cats__item.is-on .fcg-blog-cats__n { background: rgba(255,255,255,.2); color: #fff; }

.fcg-blog-empty {
  padding: 40px 22px;
  border: 1px dashed #d7dfea;
  border-radius: 14px;
  background: #fbfcfe;
  text-align: center;
  color: #415063;
}
.fcg-blog-empty i { font-size: 2rem; color: #9fb0c4; }
.fcg-blog-empty p { margin: 8px 0 0; font-size: 0.875rem; }

@media (prefers-reduced-motion: reduce) { .fcg-blog-cats__item { transition: none; } }

/* ── Figuras de artigo (SVG) ───────────────────────────────────────────────
   Diagramas em vez de fotografias: num tema administrativo, um esquema ensina
   o que uma foto de carro não ensina. E pesa 2 KB em vez de 200. */
.fcg-bf {
  margin: 2rem 0;
  padding: 18px;
  border: 1px solid #e4eaf3;
  border-radius: 14px;
  background: #fff;
}
.fcg-bf__svg {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
}
.fcg-bf__cap {
  margin: 12px 0 0;
  padding-top: 12px;
  border-top: 1px solid #eef2f7;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #556475;              /* 6,1:1 */
  text-align: center;
}

/* ── Mención de frescura dos valores ───────────────────────────────────────
   Um montante sem data de verificação não vale nada: o leitor não consegue
   distinguir informação atual de informação de há quatro anos. */
.fcg-bv {
  margin: 2rem 0 0;
  padding: 14px 16px;
  border: 1px solid #e4eaf3;
  border-left: 3px solid #12557f;
  border-radius: 0 12px 12px 0;
  background: #f8fafd;
}
.fcg-bv__t {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 6px;
  font-size: 0.875rem;
  font-weight: 700;
  color: #12557f;              /* 6,9:1 */
}
.fcg-bv__x {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.55;
  color: #415063;             /* 8,4:1 */
}
.fcg-bv__x a { color: #12557f; font-weight: 600; }

/* ── Photo d'ouverture d'article ──────────────────────────────────────────
   Le crédit est en petit mais lisible : contraste vérifié à 4,6:1 sur fond
   blanc. Une mention illisible ne vaut pas mieux qu'une mention absente, et
   c'est la licence qui l'exige. */
.fcg-bp {
    margin: 0 0 1.75rem;
}

.fcg-bp__img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: 10px;
    background: #eef2f7;
}

.fcg-bp__credit {
    margin-top: .45rem;
    font-size: 0.8125rem;
    line-height: 1.4;
    color: #5a6675;
}

.fcg-bp__credit a {
    color: #5a6675;
    text-decoration: underline;
}

.fcg-bp__credit a:hover,
.fcg-bp__credit a:focus-visible {
    color: #12557f;
}

/* ── Ce que couvrent les frais de service ─────────────────────────────────
   Placé près du prix, pas en bas de page : c'est au moment de la comparaison
   qu'il sert. Contrastes mesurés sur #f6f9fc : #0b3d5c 10,8:1,
   #3d4d5c 8,2:1, #55677a 5,5:1 — tous au-dessus de 4,5:1. */
.fcg-fi {
    background: #f6f9fc;
    border: 1px solid #dde7f0;
    border-radius: 10px;
    padding: 1.35rem 1.5rem;
    margin: 1.5rem 0;
}

.fcg-fi__t {
    margin: 0 0 .85rem;
    font-size: 1.0625rem;
    line-height: 1.3;
    color: #0b3d5c;
}

.fcg-fi__list {
    margin: 0;
    padding-left: 1.15rem;
    display: grid;
    gap: .7rem;
    font-size: 0.9375rem;
    line-height: 1.55;
    color: #3d4d5c;
}

.fcg-fi__list strong { color: #0b3d5c; }

.fcg-fi__note,
.fcg-fi__taxes {
    margin: 1rem 0 0;
    font-size: 0.875rem;
    line-height: 1.55;
    color: #55677a;
}

.fcg-fi__note {
    padding-top: .9rem;
    border-top: 1px solid #dde7f0;
}

.fcg-fi__taxes { margin-top: .5rem; }

/* Version resserrée pour un tunnel, où la place est comptée. */
.fcg-fi--compact { padding: 1rem 1.1rem; }
.fcg-fi--compact .fcg-fi__t { font-size: 1rem; }
.fcg-fi--compact .fcg-fi__list { font-size: 0.875rem; gap: .5rem; }
.fcg-fi--compact .fcg-fi__note,
.fcg-fi--compact .fcg-fi__taxes { font-size: 0.8125rem; }

@media (max-width: 480px) {
    .fcg-fi { padding: 1.1rem 1.15rem; }
}

/* ── Résumé d'avis rendu côté serveur ─────────────────────────────────────
   Visible sans consentement, contrairement au widget. Contrastes mesurés :
   #0b3d5c 11,4:1 · #55677a 5,8:1 · #415063 8,2:1, tous sur #fff. */
/* Dans le panneau du héros tout est centré (CTA, réassurance, lien
   FranceConnect) : la pastille d'avis suit, sinon elle semble décalée. */
.fcg-hero__panel .fcg-rw {
    text-align: center;
}
.fcg-rw__resume {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .15rem .6rem;
    margin: 0 0 .6rem;
    padding: 0.5rem 0.85rem;
    background: #fffdf6;
    border: 1px solid #f0e6c8;
    border-radius: 999px;
}

.fcg-rw__note {
    font-family: var(--fcg-font-display, "Sora", sans-serif);
    font-size: 1.375rem;
    font-weight: 800;
    line-height: 1;
    color: #0b3d5c;
    font-variant-numeric: tabular-nums;
}

.fcg-rw__sur {
    font-size: 0.875rem;
    font-weight: 600;
    color: #55677a;
}

/* Les etoiles n'avaient aucun style : cinq ★ noirs en corps de texte, la
   classe is-on ne faisait rien. Or doré = allumée, gris pâle = eteinte,
   demi-etoile peinte au degrade pour les notes en ,5. */
.fcg-rw__etoiles {
    display: inline-flex;
    gap: 3px;
    line-height: 1;
}
.fcg-rw__e {
    font-size: 1.25rem;
    color: #e3e9f0;
}
.fcg-rw__e.is-on {
    color: #f5a623;
    text-shadow: 0 1px 2px rgba(198, 124, 8, 0.25);
}
.fcg-rw__e.is-half {
    background: linear-gradient(90deg, #f5a623 50%, #e3e9f0 50%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.fcg-rw__nb {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #415063;
    align-self: center;
}

/* ── Témoignages (home) — une citation à la fois, centrée ──────────────────
   Composition éditoriale : titre avec un mot souligné au teal, note en
   étoiles, citation en grand corps, points de navigation. La rotation vient
   d'Alpine ; sans lui la première citation reste affichée. */
.fcg-temo2 {
    max-width: 760px;
    margin: 0 auto;
    padding: 0 1rem;
    text-align: center;
}
.fcg-temo2__titre {
    margin: 0 0 0.9rem;
    /* Même corps que les autres titres de section (32 px) : c'était le seul
       titre de la page à 30,4 px — l'écart se voyait. */
    font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2rem);
}
.fcg-temo2__accent {
    box-shadow: inset 0 -0.32em 0 rgba(18, 181, 138, 0.28);
    padding: 0 0.06em;
}
.fcg-temo2__note {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    margin: 0 0 1.4rem;
}
.fcg-temo2__note .fcg-rw__e {
    font-size: 1.375rem;
}
.fcg-temo2__note-txt {
    font-size: 0.875rem;
    color: var(--fcg-muted, #556475);
}
.fcg-temo2__note-txt strong {
    font-family: var(--fcg-font-display, "Sora", sans-serif);
    font-weight: 800;
    color: var(--fcg-navy, #0a1e44);
}
.fcg-temo2__scene {
    /* Hauteur réservée : la citation la plus longue fait ~4 lignes — sans
       réserve, chaque rotation ferait sauter le pied de page. */
    min-height: 9.5rem;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}
.fcg-temo2__quote {
    margin: 0;
    max-width: 62ch;
}
.fcg-temo2__quote p {
    margin: 0 0 1rem;
    font-size: 1.125rem;
    line-height: 1.7;
    color: #3f4b5c;
}
.fcg-temo2__quote cite {
    font-style: normal;
    font-family: var(--fcg-font-display, "Sora", sans-serif);
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--fcg-navy, #0a1e44);
}
.fcg-temo2__quote cite span {
    font-family: var(--fcg-font-body, system-ui, sans-serif);
    font-weight: 500;
    color: var(--fcg-muted, #556475);
}
.fcg-temo2-in {
    transition: opacity 0.45s ease, transform 0.45s var(--fcg-ease, ease);
}
.fcg-temo2-in-start {
    opacity: 0;
    transform: translateY(8px);
}
.fcg-temo2-in-end {
    opacity: 1;
    transform: translateY(0);
}
.fcg-temo2__dots {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1.1rem;
}
.fcg-temo2__dot {
    width: 9px;
    height: 9px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: var(--fcg-line, #dce5f0);
    cursor: pointer;
    transition: background 0.2s ease, transform 0.2s ease;
}
.fcg-temo2__dot:hover {
    transform: scale(1.25);
}
.fcg-temo2__dot.is-on {
    background: var(--fcg-teal, #12b58a);
    transform: scale(1.25);
}
@media (max-width: 560px) {
    .fcg-temo2__quote p {
        font-size: 1rem;
    }
    /* Sur 340 px de large la plus longue citation tient en ~8 lignes : la
       réserve suit, sinon chaque rotation fait sauter la page. */
    .fcg-temo2__scene {
        min-height: 14rem;
    }
}

.fcg-rw__txt {
    font-size: 0.875rem;
    line-height: 1.4;
    color: #415063;
}

/* ── FAQ d'article ────────────────────────────────────────────────────────
   <details> natif : le clavier, les lecteurs d'écran et la recherche dans la
   page fonctionnent sans JavaScript. Contrastes mesurés plus bas. */
.fcg-bfq {
    margin: 2.5rem 0 1.5rem;
    padding-top: 1.75rem;
    border-top: 2px solid #e7eef7;
}

.fcg-bfq__t {
    margin: 0 0 1rem;
    font-size: 1.375rem;
    line-height: 1.25;
    color: #0b3d5c;
}

.fcg-bfq__list {
    display: grid;
    gap: .55rem;
}

.fcg-bfq__item {
    border: 1px solid #dde7f0;
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

.fcg-bfq__item[open] { border-color: #b9d0e4; }

.fcg-bfq__q {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .85rem 1rem;
    cursor: pointer;
    list-style: none;
}

/* Retirer le triangle par défaut, sur les deux moteurs. */
.fcg-bfq__q::-webkit-details-marker { display: none; }
.fcg-bfq__q::marker { content: ""; }

.fcg-bfq__q h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.4;
    color: #0b3d5c;
}

.fcg-bfq__q:hover { background: #f6f9fc; }

.fcg-bfq__item:focus-within .fcg-bfq__q {
    outline: 2px solid #12557f;
    outline-offset: -2px;
}

/* Chevron dessiné en CSS : pas de dépendance à une police d'icônes. */
.fcg-bfq__chevron {
    flex: 0 0 auto;
    width: .55rem;
    height: .55rem;
    border-right: 2px solid #12557f;
    border-bottom: 2px solid #12557f;
    transform: rotate(45deg) translate(-2px, -2px);
    transition: transform .18s ease;
}

.fcg-bfq__item[open] .fcg-bfq__chevron {
    transform: rotate(-135deg) translate(-2px, -2px);
}

.fcg-bfq__a {
    padding: 0 1rem 1rem;
}

.fcg-bfq__a p {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.6;
    color: #3d4d5c;
}

@media (prefers-reduced-motion: reduce) {
    .fcg-bfq__chevron { transition: none; }
}

/* Escolha do método de pagamento — estado durante a chamada ao servidor.
   Sem sinal visível, um clique parece não ter feito nada e leva a um segundo
   clique. Os botões ficam desactivados durante a troca, e isso tem de se ver. */
.fcg-ps--occupe { position: relative; }

.fcg-ps--occupe .fcg-ps__opt {
    opacity: .55;
    cursor: progress;
}

.fcg-ps__opt[aria-busy="true"] { pointer-events: none; }

@media (prefers-reduced-motion: no-preference) {
    .fcg-ps__opt { transition: opacity .15s ease; }
}

/* ── Choix du droit de rétractation ───────────────────────────────────────
   Une ligne, un défaut, un lien. Le détail ne s'ouvre que pour qui pose la
   question. Contrastes mesurés : #3d4d5c 8,2:1 et #8a5a12 5,1:1 sur #fff. */
.fcg-rc { margin: 1rem 0; }

.fcg-rc__ligne {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .3rem .5rem;
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.5;
    color: #3d4d5c;
}

.fcg-rc__ligne[hidden] { display: none; }

.fcg-rc__ligne--wait {
    padding: .6rem .75rem;
    border: 1px solid #ead9b0;
    border-radius: 8px;
    background: #fff8e8;
    color: #6b4708;
}

.fcg-rc__lien {
    border: 0;
    background: none;
    padding: 0;
    font: inherit;
    font-weight: 700;
    color: #12557f;
    text-decoration: underline;
    cursor: pointer;
}

.fcg-rc__lien:hover,
.fcg-rc__lien:focus-visible { color: #0b3d5c; }

.fcg-rc__panneau {
    margin-top: .7rem;
    padding: .9rem 1rem;
    border: 1px solid #dde7f0;
    border-radius: 10px;
    background: #f6f9fc;
}

.fcg-rc__panneau[hidden] { display: none; }

.fcg-rc__titre {
    margin: 0 0 .4rem;
    font-size: 0.9375rem;
    font-weight: 700;
    color: #0b3d5c;
}

.fcg-rc__texte {
    margin: 0 0 .8rem;
    font-size: 0.875rem;
    line-height: 1.55;
    color: #3d4d5c;
}

.fcg-rc__choix {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.fcg-rc__btn {
    flex: 1 1 auto;
    min-height: 44px;          /* cible tactile : WCAG 2.2 */
    padding: .55rem .9rem;
    border: 1px solid #b9d0e4;
    border-radius: 8px;
    background: #fff;
    font: 600 .87rem/1.3 inherit;
    color: #0b3d5c;
    cursor: pointer;
}

.fcg-rc__btn--primaire {
    background: #12557f;
    border-color: #12557f;
    color: #fff;
}

.fcg-rc__btn:hover { filter: brightness(.96); }
.fcg-rc__btn:focus-visible { outline: 2px solid #12557f; outline-offset: 2px; }

/* ── Logo de marque dans l'en-tête ────────────────────────────────────────
   Le logo contient déjà le nom : aucun libellé à côté. Les règles qui
   suivent priment sur .logo_site { width:48px; height:48px }, écrite pour
   un signe carré et qui écraserait un logo horizontal. */
.fcg-brand__logo,
body.fcg-ui .header_logo_link .logo_site.fcg-brand__logo,
body.fcg-ui .logo_site.fcg-brand__logo {
    /* Logo carre : le nom est dedans, sur quatre lignes. Il lui faut donc
       plus de hauteur qu'un pictogramme pour rester lisible. */
    width: 52px;
    height: 52px;
    object-fit: contain;
    border-radius: 8px;
}

@media (max-width: 991px) {
    .fcg-brand__logo,
    body.fcg-ui .logo_site.fcg-brand__logo {
        width: 44px;
        height: 44px;
    }
}

/* ── Bloc légal : CGV et droit de rétractation ────────────────────────────
   Il vivait sur un aplat bleu vif, au dernier écran, avec du texte gris
   dessus. Ici : fond clair, une seule case, et le choix des 14 jours réduit
   à une phrase qu'on ne déplie que si on la questionne.
   Contrastes mesurés sur #f7fafd : #0b2c42 11,9:1 · #3d4d5c 7,9:1. */
/* Carte blanche du design system : la caisse grise plate lisait comme un
   pavé administratif au pire moment du tunnel. Titre Sora navy, case a
   cocher genereuse en teal, ligne d'etat en pastille avec tuile d'icone. */
.fcg-lb {
    margin: 1.5rem 0;
    padding: 1.35rem 1.5rem;
    border: 1px solid var(--fcg-line, #dce5f0);
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--fcg-shadow-sm, 0 10px 28px rgba(5, 15, 40, 0.08));
    display: grid;
    gap: 1rem;
}

.fcg-lb__t {
    margin: 0;
    font-family: var(--fcg-font-display, "Sora", sans-serif);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--fcg-navy, #0a1e44);
    display: flex;
    align-items: center;
    gap: .5rem;
}
.fcg-lb__t::before {
    content: "";
    width: 3px;
    height: 1rem;
    border-radius: 2px;
    background: linear-gradient(180deg, var(--fcg-teal, #12b58a), var(--fcg-blue, #1a6fd4));
}

.fcg-lb__cgv {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    cursor: pointer;
    font-size: 0.9375rem;
    line-height: 1.55;
    color: #0b2c42;
    padding: .65rem .75rem;
    border: 1.5px solid var(--fcg-line, #dce5f0);
    border-radius: 12px;
    transition: border-color .15s ease, background .15s ease;
}
.fcg-lb__cgv:hover { border-color: #9fbdd8; }
.fcg-lb__cgv:has(.fcg-lb__case:checked),
.fcg-lb__cgv.is-checked {
    border-color: var(--fcg-teal-deep, #077a5c);
    background: #f2fbf7;
}

.fcg-lb__case {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    margin: .1rem 0 0;
    accent-color: var(--fcg-teal-deep, #077a5c);
    cursor: pointer;
}

.fcg-lb__cgv a { color: #12557f; font-weight: 600; }

.fcg-lb__sep { display: none; }

.fcg-lb__ligne {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .3rem .75rem;
    margin: 0;
    padding: .65rem .75rem;
    font-size: 0.875rem;
    line-height: 1.55;
    color: #3d4d5c;
    border: 1.5px solid #cfe9dd;
    border-radius: 12px;
    background: #f2fbf7;
}

.fcg-lb__ligne[hidden] { display: none; }
.fcg-lb__ligne strong { color: #0b2c42; }

.fcg-lb__ligne--wait {
    background: #fff8e8;
    border-color: #ead9b0;
    color: #6b4708;
}
.fcg-lb__ligne--wait strong { color: #5a3c07; }

/* Tuile d'icone dessinee en CSS : pas de dependance a une police. */
.fcg-lb__ico {
    position: relative;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 9px;
    flex: 0 0 auto;
    align-self: center;
}
.fcg-lb__ico::after {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    width: 9px;
    height: 9px;
    border-radius: 50%;
}
.fcg-lb__ico--go { background: #dff3ea; }
.fcg-lb__ico--go::after { background: #0b7a53; }
.fcg-lb__ico--wait { background: #f6ead0; }
.fcg-lb__ico--wait::after { background: #a97a12; }

.fcg-lb__lien {
    border: 0;
    background: none;
    padding: 0;
    font: inherit;
    font-weight: 700;
    color: #12557f;
    text-decoration: underline;
    cursor: pointer;
    white-space: nowrap;
}
.fcg-lb__lien:hover, .fcg-lb__lien:focus-visible { color: #0b3d5c; }

.fcg-lb__panneau[hidden] { display: none; }

.fcg-lb__choix {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: .6rem;
}

.fcg-lb__opt {
    display: grid;
    gap: .25rem;
    min-height: 44px;
    padding: .8rem .9rem;
    text-align: left;
    border: 1.5px solid #cfdded;
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
}

.fcg-lb__opt.is-on { border-color: #12557f; box-shadow: 0 0 0 3px rgba(18, 85, 127, .12); }
.fcg-lb__opt:focus-visible { outline: 2px solid #12557f; outline-offset: 2px; }

.fcg-lb__opt-t { font-size: 0.9375rem; font-weight: 700; color: #0b2c42; }
.fcg-lb__opt-d { font-size: 0.875rem; line-height: 1.45; color: #4c5f6e; }

@media (max-width: 560px) {
    .fcg-lb__ligne { grid-template-columns: auto 1fr; }
    .fcg-lb__lien { grid-column: 2; justify-self: start; }
}

/* ── Choix de la démarche ─────────────────────────────────────────────────
   Un bouton, puis une fenêtre : feuille montante sur petit écran, boîte
   centrée sur grand. Une feuille qui monte du bas d'un écran de 1400 px
   paraît déplacée ; un dialogue centré sur un téléphone est hors de portée
   du pouce. Contrastes mesurés : #0b2c42 13,8:1 · #4c5f6e 6,6:1 sur #fff. */
.fcg-dpk { position: relative; }

/* !important : dans le héros, « .fcg-hero__panel select » (largeur 100 %,
   min-height 3.15rem) est plus spécifique et faisait réapparaître le select
   à côté du bouton. Une utilité de masquage doit gagner partout. */
.fcg-dpk__select--cache {
    position: absolute !important;
    width: 1px !important; height: 1px !important;
    min-height: 0 !important;
    padding: 0 !important; margin: -1px !important;
    overflow: hidden !important; clip: rect(0 0 0 0);
    white-space: nowrap; border: 0 !important;
}

.fcg-dpk__btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    width: 100%;
    min-height: 48px;
    padding: .7rem 1rem;
    border: 1.5px solid #cfdded;
    border-radius: 10px;
    background: #fff;
    font: 600 .95rem/1.4 inherit;
    color: #0b2c42;
    text-align: left;
    cursor: pointer;
}

.fcg-dpk__btn:hover { border-color: #12557f; }
.fcg-dpk__btn:focus-visible { outline: 2px solid #12557f; outline-offset: 2px; }

.fcg-dpk__btn-txt.is-vide { color: #5d6e7c; font-weight: 500; }

.fcg-dpk__chev {
    flex: 0 0 auto;
    width: .5rem; height: .5rem;
    border-right: 2px solid #12557f;
    border-bottom: 2px solid #12557f;
    transform: rotate(45deg) translate(-2px, -2px);
}

/* ── La fenêtre ─────────────────────────────────────────────────────────── */
.fcg-dpk__modal { position: fixed; inset: 0; z-index: 2147482000; display: flex; }
.fcg-dpk__modal[hidden] { display: none; }
body.fcg-dpk-ouvert { overflow: hidden; }

.fcg-dpk__voile { position: absolute; inset: 0; background: rgba(8, 24, 38, .55); }

.fcg-dpk__boite {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: .85rem;
    width: 100%;
    background: #fff;
    padding: 1.1rem 1.15rem 1.4rem;
    overflow-y: auto;
    /* Petit écran : la feuille monte du bas, le pouce y arrive. */
    margin-top: auto;
    max-height: 88vh;
    border-radius: 16px 16px 0 0;
}

.fcg-dpk__poignee {
    width: 38px; height: 4px;
    margin: 0 auto .2rem;
    border-radius: 2px;
    background: #cfdded;
}

.fcg-dpk__tete { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.fcg-dpk__t { margin: 0; font-size: 1.125rem; line-height: 1.3; color: #0b2c42; }
.fcg-dpk__sous { margin: .25rem 0 0; font-size: 0.875rem; line-height: 1.45; color: #4c5f6e; }

.fcg-dpk__x {
    flex: 0 0 auto;
    width: 36px; height: 36px;
    border: 0; border-radius: 50%;
    background: #eef3f8;
    font-size: 1.375rem; line-height: 1;
    color: #4c5f6e; cursor: pointer;
}
.fcg-dpk__x:hover { background: #e2ebf3; }

.fcg-dpk__liste { display: grid; gap: .5rem; }

.fcg-dpk__carte {
    display: grid;
    gap: .2rem;
    padding: .85rem .95rem;
    text-align: left;
    border: 1.5px solid #dde7f0;
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
}

.fcg-dpk__carte:hover { border-color: #b9d0e4; background: #f9fcff; }
.fcg-dpk__carte.is-on { border-color: #12557f; box-shadow: 0 0 0 3px rgba(18, 85, 127, .12); }
.fcg-dpk__carte:focus-visible { outline: 2px solid #12557f; outline-offset: 2px; }

.fcg-dpk__qui { font-size: 1rem; font-weight: 700; color: #0b2c42; line-height: 1.35; }
.fcg-dpk__ex { font-size: 0.875rem; line-height: 1.45; color: #4c5f6e; }
.fcg-dpk__nom { font-size: .75rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #64717c; }

.fcg-dpk__carte--compact { padding: .7rem .85rem; }
.fcg-dpk__carte--compact .fcg-dpk__qui { font-size: 0.875rem; }
.fcg-dpk__carte--compact .fcg-dpk__ex { font-size: 0.8125rem; }

.fcg-dpk__plus {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 44px;
    padding: .6rem .9rem;
    border: 1px dashed #cfdded;
    border-radius: 10px;
    background: #f7fafd;
    font: 600 .88rem/1.3 inherit;
    color: #12557f;
    cursor: pointer;
}
.fcg-dpk__plus span { font-weight: 500; color: #5d6e7c; }

/* ── Grand écran : boîte centrée ─────────────────────────────────────────── */
@media (min-width: 768px) {
    .fcg-dpk__modal { align-items: center; justify-content: center; padding: 2rem 1rem; }

    .fcg-dpk__boite {
        margin: 0;
        max-width: 620px;
        max-height: 82vh;
        border-radius: 14px;
        padding: 1.4rem 1.6rem 1.6rem;
        box-shadow: 0 24px 60px rgba(8, 24, 38, .28);
    }

    .fcg-dpk__poignee { display: none; }
}

@media (prefers-reduced-motion: no-preference) {
    .fcg-dpk__btn, .fcg-dpk__carte { transition: border-color .15s ease, background .15s ease; }
}

.fcg-dpk__btn.is-invalid { border-color: #b3261e; box-shadow: 0 0 0 3px rgba(179, 38, 30, .12); }

/* ── Panneau « votre démarche » ───────────────────────────────────────────
   Sur l'écran de choix, à côté du formulaire. Le texte suit la démarche
   sélectionnée. Volontairement sobre : il informe, il ne vend pas — c'est le
   formulaire qui doit attirer l'œil. Contrastes : #0b2c42 14,4:1 ·
   #40525f 8,0:1 · #12557f 7,1:1 sur #fff. */
.fcg-dinf {
    margin-top: 24px;
    padding: 1.25rem 1.35rem 1.4rem;
    border: 1px solid #e1e8f0;
    border-left: 3px solid #12557f;
    border-radius: 12px;
    background: #fff;
}

.fcg-dinf__tete { margin-bottom: .7rem; }

.fcg-dinf__eyebrow {
    margin: 0 0 .25rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: #12557f;
}

.fcg-dinf__t { margin: 0; font-size: 1.125rem; line-height: 1.3; color: #0b2c42; text-wrap: balance; }
.fcg-dinf__nom { margin: .2rem 0 0; font-size: 0.8125rem; color: #64717c; }

.fcg-dinf__resume { margin: 0 0 .85rem; font-size: 0.9375rem; line-height: 1.6; color: #40525f; }

.fcg-dinf__delai {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    margin: 0 0 1rem;
    padding: .6rem .8rem;
    border-radius: 9px;
    background: #fff8e6;
    border: 1px solid #f0dfae;
    font-size: 0.875rem;
    line-height: 1.5;
    color: #5c4708;
}

.fcg-dinf__delai strong { color: #43340a; }

.fcg-dinf__delai-ico {
    flex: 0 0 auto;
    width: 14px; height: 14px;
    margin-top: .2rem;
    border: 2px solid #9a7b12;
    border-radius: 50%;
    position: relative;
}
/* L'aiguille de la petite horloge : deux traits, pas d'image à charger. */
.fcg-dinf__delai-ico::before,
.fcg-dinf__delai-ico::after {
    content: '';
    position: absolute;
    left: 4px; top: 1px;
    width: 2px;
    background: #9a7b12;
    border-radius: 1px;
}
.fcg-dinf__delai-ico::before { height: 5px; }
.fcg-dinf__delai-ico::after { height: 4px; top: 5px; left: 4px; width: 4px; height: 2px; }

.fcg-dinf__bloc {
    border-top: 1px solid #eef2f7;
    padding: .1rem 0;
}
.fcg-dinf__bloc[hidden] { display: none; }

.fcg-dinf__somm {
    display: flex;
    align-items: center;
    gap: .5rem;
    min-height: 44px;
    padding: .55rem 1.6rem .55rem 0;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.45;
    color: #0b2c42;
    cursor: pointer;
    list-style: none;
    position: relative;
}
.fcg-dinf__somm::-webkit-details-marker { display: none; }

/* Le chevron : tourne à l'ouverture, ce qui dit où on en est sans texte. */
.fcg-dinf__somm::after {
    content: '';
    position: absolute;
    right: .35rem; top: 50%;
    width: .45rem; height: .45rem;
    border-right: 2px solid #12557f;
    border-bottom: 2px solid #12557f;
    transform: translateY(-70%) rotate(45deg);
    transform-origin: center;
}
.fcg-dinf__bloc[open] > .fcg-dinf__somm::after { transform: translateY(-25%) rotate(-135deg); }

.fcg-dinf__somm:focus-visible { outline: 2px solid #12557f; outline-offset: 2px; border-radius: 6px; }

.fcg-dinf__compte {
    padding: .05rem .45rem;
    border-radius: 999px;
    background: #eef3f8;
    font-size: 0.75rem;
    font-weight: 700;
    color: #12557f;
    font-variant-numeric: tabular-nums;
}

.fcg-dinf__pieces {
    margin: 0 0 .8rem;
    padding-left: 1.1rem;
    display: grid;
    gap: .35rem;
    font-size: 0.875rem;
    line-height: 1.5;
    color: #40525f;
}

.fcg-dinf__rep {
    margin: 0 0 .85rem;
    font-size: 0.875rem;
    line-height: 1.6;
    color: #40525f;
}

.fcg-dinf__faq { margin-top: 1rem; }
.fcg-dinf__faq[hidden] { display: none; }

.fcg-dinf__faq-t {
    margin: 0 0 .3rem;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: #64717c;
}

@media (prefers-reduced-motion: no-preference) {
    .fcg-dinf__somm::after { transition: transform .18s ease; }
}

/* Le panneau prend la largeur du formulaire, mais son texte garde sa mesure :
   sur un écran large, un résumé étiré sur 1100 px se lit mal. */
.fcg-dinf__resume,
.fcg-dinf__rep,
.fcg-dinf__pieces { max-width: 78ch; }

/* ── Pages légales : héros navy, navigation latérale, colonne de lecture ───
   Les documents contractuels se lisent — le gabarit précédent posait le
   texte brut sur la page. Ici : un héros sobre, la liste des cinq documents
   à gauche (l'actif marqué), et le texte dans une carte à la mesure. */
.fcg-legal__hero {
  background: linear-gradient(135deg, var(--fcg-navy-deep, #050f28) 0%, var(--fcg-navy, #0a1e44) 100%);
  color: #fff;
  padding: 3rem 0 2.5rem;
}
.fcg-legal__hero h1 {
  margin: 0 0 0.5rem;
  font-family: var(--fcg-font-display, "Sora", sans-serif);
  font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.25rem);
  letter-spacing: -0.02em;
  color: #fff;
}
.fcg-legal__hero-sub {
  margin: 0;
  font-size: 0.875rem;
  color: rgba(236, 244, 255, 0.75);
}
.fcg-legal__layout {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 2rem;
  align-items: start;
  padding-top: 2rem;
  padding-bottom: 3rem;
}
.fcg-legal__nav {
  position: sticky;
  /* Sous le header sticky (~121 px), pas derriere lui. */
  top: var(--fcg-sticky-top, 8.75rem);
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 1rem;
  background: #fff;
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: var(--fcg-radius, 16px);
  box-shadow: var(--fcg-shadow-sm, 0 10px 28px rgba(5, 15, 40, 0.08));
}
.fcg-legal__nav-titre {
  margin: 0 0 0.4rem;
  padding: 0 0.6rem;
  font-family: var(--fcg-font-display, "Sora", sans-serif);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--fcg-muted, #556475);
}
.fcg-legal__nav-item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.55rem 0.6rem;
  border-radius: 10px;
  color: var(--fcg-navy, #0a1e44);
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  line-height: 1.3;
}
.fcg-legal__nav-item i {
  flex: 0 0 auto;
  color: var(--fcg-muted, #556475);
}
.fcg-legal__nav-item:hover {
  background: var(--fcg-surface, #f3f7fb);
  color: var(--fcg-blue, #1a6fd4);
}
.fcg-legal__nav-item.is-on {
  background: var(--fcg-navy, #0a1e44);
  color: #fff;
}
.fcg-legal__nav-item.is-on i {
  color: #7dffe0;
}
.fcg-legal__nav-aide {
  margin-top: 0.5rem;
  padding: 0.6rem 0.6rem 0.2rem;
  border-top: 1px solid var(--fcg-line, #dce5f0);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--fcg-blue, #1a6fd4);
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
}
.fcg-legal__doc {
  background: #fff;
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: var(--fcg-radius, 16px);
  box-shadow: var(--fcg-shadow-sm, 0 10px 28px rgba(5, 15, 40, 0.08));
  padding: 2.25rem 2.5rem 2.75rem;
}
.fcg-legal__prose {
  font-size: 0.9375rem;
  line-height: 1.7;
  color: #3f4b5c;
}
.fcg-legal__prose h2 {
  margin: 1.9rem 0 0.7rem;
  font-family: var(--fcg-font-display, "Sora", sans-serif);
  font-size: 1.25rem;
  color: var(--fcg-navy, #0a1e44);
  letter-spacing: -0.01em;
}
.fcg-legal__prose h2:first-child {
  margin-top: 0;
}
.fcg-legal__prose h3 {
  margin: 1.4rem 0 0.5rem;
  font-family: var(--fcg-font-display, "Sora", sans-serif);
  font-size: 1.0625rem;
  color: var(--fcg-navy, #0a1e44);
}
.fcg-legal__prose p,
.fcg-legal__prose li {
  max-width: 78ch;
  font-size: 0.9375rem;
}
.fcg-legal__prose ul,
.fcg-legal__prose ol {
  padding-left: 1.3rem;
  display: grid;
  gap: 0.35rem;
}
.fcg-legal__prose a {
  color: var(--fcg-blue, #1a6fd4);
  font-weight: 600;
}
.fcg-legal__prose strong {
  color: #1d2838;
}
@media (max-width: 900px) {
  .fcg-legal__layout {
    /* `1fr` seul vaut `minmax(auto, 1fr)` : la colonne ne descend jamais sous
       la largeur mini de son contenu, et la page partait en defilement
       horizontal sur un ecran de 375 px. `minmax(0, …)` l'autorise a retrecir. */
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
  }
  .fcg-legal__nav {
    position: static;
  }
  .fcg-legal__doc {
    padding: 1.4rem 1.2rem 1.75rem;
  }
}

/* ── Centre d'aide : canaux de contact et formulaire en carte ─────────────── */
.fcg-aide-channels {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.75rem 0;
}
.fcg-aide-channel {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 1rem 1.1rem;
  background: #fff;
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: var(--fcg-radius, 16px);
  box-shadow: var(--fcg-shadow-sm, 0 10px 28px rgba(5, 15, 40, 0.08));
  text-decoration: none;
  transition: transform 0.25s var(--fcg-ease, ease), box-shadow 0.25s var(--fcg-ease, ease);
}
.fcg-aide-channel:hover {
  transform: translateY(-2px);
  box-shadow: var(--fcg-shadow, 0 22px 60px rgba(5, 15, 40, 0.16));
}
.fcg-aide-channel__ico {
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 12px;
  background: var(--fcg-surface, #f3f7fb);
  color: var(--fcg-blue, #1a6fd4);
  font-size: 1.15rem;
}
/* Ligne surtaxée : l'icône reprend le violet de la signalétique SVA — le
   canal payant s'annonce avant même la lecture du coût. */
.fcg-aide-channel__ico--sva {
  background: #faf0f7;
  color: #a50f78;
}
.fcg-aide-channel__txt {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}
.fcg-aide-channel__txt strong {
  font-family: var(--fcg-font-display, "Sora", sans-serif);
  font-size: 0.9375rem;
  color: var(--fcg-navy, #0a1e44);
  line-height: 1.3;
}
.fcg-aide-channel__txt span {
  font-size: 0.75rem;
  color: var(--fcg-muted, #556475);
  line-height: 1.4;
}
.fcg-aide-noresult {
  margin: 0 0 1rem;
  padding: 0.85rem 1rem;
  border: 1px solid #f0e6c8;
  border-radius: 10px;
  background: #fffdf6;
  font-size: 0.875rem;
  color: #6b5d38;
}
.fcg-contact-card {
  margin-top: 2rem;
  padding: 1.75rem 1.9rem 2rem;
  background: #fff;
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: var(--fcg-radius, 16px);
  box-shadow: var(--fcg-shadow-sm, 0 10px 28px rgba(5, 15, 40, 0.08));
}
.fcg-contact-card .form-label {
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--fcg-navy, #0a1e44);
}
.fcg-contact-card .form-control {
  border: 1.5px solid var(--fcg-line, #dce5f0);
  border-radius: var(--fcg-radius-sm, 11px);
  padding: 0.6rem 0.9rem;
  font-size: 0.9375rem;
}
.fcg-contact-card .form-control:focus {
  border-color: var(--fcg-blue-bright, #2b8fff);
  box-shadow: 0 0 0 3px rgba(43, 143, 255, 0.18);
}
@media (max-width: 860px) {
  .fcg-aide-channels {
    grid-template-columns: 1fr;
  }
  .fcg-contact-card {
    padding: 1.25rem 1.1rem 1.5rem;
  }
}

/* ── En-tête personnalisé du tunnel avec option ──────────────────────────── */
.fcg-dhead {
  text-align: center;
  margin: 0 0 0.75rem;
}
.fcg-dhead__kicker {
  justify-content: center;
  margin-bottom: 0.4rem;
}
.fcg-dhead__kicker i {
  color: var(--fcg-teal, #12b58a);
}
.fcg-dhead__title {
  text-align: center;
  margin: 0 0 0.5rem;
}
.fcg-dhead__desc {
  max-width: 58ch;
  margin: 0 auto;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--fcg-muted, #556475);
}

/* Tunnel avec option : l'en-tête, la pastille d'avis, son lien et les étapes
   partagent le même axe centré — la pastille collée au bord gauche cassait
   la composition. */
.fcg-funnel-page .fcg-rw {
  text-align: center;
  margin: 0 0 4px;
}
.fcg-funnel-page .fcg-rw__resume {
  margin-bottom: 0.4rem;
}
.fcg-funnel-page .fcg-rw__fallback {
  justify-content: center;
}
.fcg-funnel-page .fcg-dhead {
  margin-bottom: 1.1rem;
}

/* ── Page de confirmation : sceau d'état ──────────────────────────────────
   Un repère visuel immédiat par issue de paiement — vert confirmé, rouge
   non abouti, ambre en attente — avant même de lire le titre. */
.fcg-success-seal {
  display: grid;
  place-items: center;
  width: 4rem;
  height: 4rem;
  margin: 1.5rem auto 0.75rem;
  border-radius: 50%;
  font-size: 1.75rem;
}
.fcg-success-seal--ok {
  background: #e6f7f0;
  color: var(--fcg-teal-deep, #077a5c);
  box-shadow: 0 0 0 8px rgba(18, 181, 138, 0.12);
}
.fcg-success-seal--ko {
  background: #fdecec;
  color: #b3261e;
  box-shadow: 0 0 0 8px rgba(220, 38, 38, 0.1);
}
.fcg-success-seal--wait {
  background: #fff7e6;
  color: #8a6100;
  box-shadow: 0 0 0 8px rgba(201, 162, 39, 0.12);
}

/* ── Glossaire : index A–Z et groupes de lettre ──────────────────────────── */
.fcg-gloss-az {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin: 0 0 1.25rem;
}
.fcg-gloss-az a,
.fcg-gloss-az span {
  display: inline-grid;
  place-items: center;
  min-width: 2rem;
  height: 2rem;
  border-radius: 8px;
  font-family: var(--fcg-font-display, "Sora", sans-serif);
  font-size: 0.8125rem;
  font-weight: 700;
  text-decoration: none;
}
.fcg-gloss-az a {
  color: var(--fcg-blue, #1a6fd4);
  background: var(--fcg-surface, #f3f7fb);
  border: 1px solid var(--fcg-line, #dce5f0);
  transition: background 0.15s ease, color 0.15s ease;
}
.fcg-gloss-az a:hover,
.fcg-gloss-az a:focus-visible {
  background: var(--fcg-blue, #1a6fd4);
  color: #fff;
}
.fcg-gloss-az span {
  color: #c3ccd8;
}
.fcg-gloss-lettre {
  margin: 1.5rem 0 0.5rem;
  font-family: var(--fcg-font-display, "Sora", sans-serif);
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--fcg-teal-deep, #077a5c);
  border-bottom: 2px solid var(--fcg-line, #dce5f0);
  padding-bottom: 0.25rem;
}
.fcg-gloss-groupe:first-child .fcg-gloss-lettre {
  margin-top: 0;
}
/* Les ancres des lettres atterrissent sous le header colle. */
.fcg-gloss-groupe {
  scroll-margin-top: var(--fcg-sticky-top, 8.75rem);
}

/* ── Article : barre de progression de lecture ───────────────────────────── */
.fcg-lecture-barre {
  position: sticky;
  /* Juste sous le header collé (~121 px). Sur mobile le header est un autre
     élément d'une autre hauteur : la barre n'y apporte rien, on la coupe. */
  top: 7.5625rem;
  z-index: 999;
  height: 3px;
  margin-top: -3px;
  background: transparent;
  pointer-events: none;
}
@media (max-width: 900px) {
  .fcg-lecture-barre { display: none; }
}
.fcg-lecture-barre span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--fcg-blue, #1a6fd4), var(--fcg-teal, #12b58a));
  transform: scaleX(0);
  transform-origin: left center;
}

/* ── Modal d'aide partagé (même expérience que le parcours rapide) ───────── */
.fcg-am {
  position: fixed;
  inset: 0;
  z-index: 99990;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.fcg-am__voile {
  position: absolute;
  inset: 0;
  background: rgba(5, 15, 40, 0.55);
  backdrop-filter: blur(3px);
}
.fcg-am__boite {
  position: relative;
  width: min(420px, 100%);
  max-height: calc(100vh - 2rem);
  overflow: auto;
  padding: 14px 14px 18px;
  background: #fff;
  border-radius: 20px;
  box-shadow: var(--fcg-shadow, 0 22px 60px rgba(5, 15, 40, 0.16));
}
.fcg-am__hero {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  padding: 13px 14px;
  border-radius: 16px;
  background: linear-gradient(160deg, #0e4a6a 0%, #0b3d5c 62%, #0a334d 100%);
  color: #fff;
}
.fcg-am__mark {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  border: 2px solid var(--fcg-gold, #c9a227);
  font-size: 1.25rem;
}
.fcg-am__hero h2 {
  font-family: var(--fcg-font-display, "Sora", sans-serif);
  font-size: 1.125rem;
  margin: 0 0 3px;
  color: #fff;
}
.fcg-am__hero p {
  margin: 0;
  font-size: 0.8125rem;
  opacity: 0.85;
}
.fcg-am__x {
  margin-left: auto;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}
.fcg-am__tel {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 10px;
  padding: 12px 14px;
  border: 1.5px solid var(--fcg-line, #dce5f0);
  border-radius: 14px;
  text-decoration: none;
  color: var(--fcg-navy, #0a1e44);
}
.fcg-am__tel strong {
  display: block;
  font-family: var(--fcg-font-display, "Sora", sans-serif);
  font-size: 1.125rem;
}
.fcg-am__tel-meta {
  display: block;
  font-size: 0.75rem;
  color: var(--fcg-muted, #556475);
}
.fcg-am__tel-ico {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  flex: 0 0 auto;
  border-radius: 12px;
  background: var(--fcg-surface, #f3f7fb);
  color: var(--fcg-blue, #1a6fd4);
  font-size: 1.1rem;
}
/* Ligne surtaxée : signalétique SVA violette sur le repère. */
.fcg-am__tel--sva .fcg-am__tel-ico {
  background: #faf0f7;
  color: #a50f78;
}
.fcg-am__ecrire {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 44px;
  margin: 0 0 12px;
  border-radius: 999px;
  background: var(--fcg-surface, #f3f7fb);
  color: var(--fcg-blue, #1a6fd4);
  font-weight: 700;
  text-decoration: none;
}
.fcg-am__notes {
  border-top: 1px solid var(--fcg-line, #dce5f0);
  padding-top: 10px;
}
.fcg-am__notes p {
  margin: 0 0 6px;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #415063;
}

/* FAQ du modal d'aide — même liste que le parcours rapide. */
.fcg-am__faq {
  margin-top: 12px;
  border-top: 1px solid var(--fcg-line, #dce5f0);
  padding-top: 10px;
}
.fcg-am__faq h3 {
  font-family: var(--fcg-font-display, "Sora", sans-serif);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--fcg-navy, #0a1e44);
  margin: 0 0 6px;
}
.fcg-am__faq-item button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  min-height: 40px;
  padding: 8px 2px;
  border: 0;
  background: none;
  font: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  color: #1d2838;
  text-align: left;
  cursor: pointer;
  border-bottom: 1px solid #eef2f7;
}
.fcg-am__faq-item:last-child button { border-bottom: 0; }
.fcg-am__faq-item i {
  font-style: normal;
  color: var(--fcg-blue, #1a6fd4);
  font-weight: 700;
}
.fcg-am__faq-item p {
  margin: 6px 0 10px;
  font-size: 0.8125rem;
  line-height: 1.55;
  color: #415063;
}

/* En-tête dense du tunnel : pastille d'avis et lien sur une même ligne,
   puis la ligne méta (prestation, délai, TTC). */
.fcg-funnel-page .fcg-rw {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.25rem 0.9rem;
}
.fcg-funnel-page .fcg-rw__resume {
  margin-bottom: 0;
}
.fcg-dhead__meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem 1.1rem;
  margin: 0.65rem 0 0;
  font-size: 0.8125rem;
  color: var(--fcg-muted, #556475);
}
.fcg-dhead__meta i {
  color: var(--fcg-teal-deep, #077a5c);
  margin-right: 0.25rem;
}
.fcg-dhead__meta strong {
  color: var(--fcg-navy, #0a1e44);
}

/* Frais de service + détail de la démarche côte à côte sur grand écran. */
.fcg-opt-duo {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
  gap: 24px;
  align-items: start;
  margin: 2rem 0 2.5rem;
}
.fcg-opt-duo__col > * { margin-top: 0 !important; }
@media (max-width: 980px) {
  .fcg-opt-duo { grid-template-columns: 1fr; }
}

/* La .row Bootstrap du formulaire porte des marges négatives qui débordaient
   de 2 px du viewport mobile. */
.fcg-contact-card .row {
  margin-inline: 0;
}

/* ── Modal « 3 fois avec Klarna » ────────────────────────────────────────── */
.fcg-km {
  position: fixed;
  inset: 0;
  z-index: 99990;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.fcg-km__voile {
  position: absolute;
  inset: 0;
  background: rgba(5, 15, 40, 0.55);
  backdrop-filter: blur(3px);
}
.fcg-km__boite {
  position: relative;
  width: min(440px, 100%);
  max-height: calc(100vh - 2rem);
  overflow: auto;
  padding: 16px 18px 18px;
  background: #fff;
  border-radius: 20px;
  box-shadow: var(--fcg-shadow, 0 22px 60px rgba(5, 15, 40, 0.16));
}
.fcg-km__tete {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.fcg-km__badge {
  width: 66px;
  height: 28px;
}
.fcg-km__x {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 10px;
  background: var(--fcg-surface, #f3f7fb);
  color: var(--fcg-navy, #0a1e44);
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}
.fcg-km__titre {
  font-family: var(--fcg-font-display, "Sora", sans-serif);
  font-size: 1.375rem;
  color: var(--fcg-navy, #0a1e44);
  margin: 0 0 2px;
  text-align: center;
}
.fcg-km__sous {
  margin: 0 0 14px;
  text-align: center;
  font-size: 0.875rem;
  color: var(--fcg-muted, #556475);
}
.fcg-km__opts {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 14px;
}
.fcg-km__opt {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px 14px;
  border: 1.5px solid var(--fcg-line, #dce5f0);
  border-radius: 14px;
}
.fcg-km__opt--on {
  border-color: #ffb3c7;
  background: #fff7fa;
}
.fcg-km__opt-t {
  font-size: 0.875rem;
  font-weight: 700;
  color: #1d2838;
}
.fcg-km__opt-v {
  font-size: 1.05rem;
  color: var(--fcg-navy, #0a1e44);
}
.fcg-km__opt-n {
  font-size: 0.75rem;
  color: var(--fcg-muted, #556475);
}
.fcg-km__ko {
  margin: 0 0 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #fffdf6;
  border: 1px solid #f0e6c8;
  font-size: 0.875rem;
  color: #6b5d38;
}
.fcg-km__comment h3 {
  font-family: var(--fcg-font-display, "Sora", sans-serif);
  font-size: 1rem;
  color: var(--fcg-navy, #0a1e44);
  margin: 0 0 6px;
}
.fcg-km__comment ol {
  margin: 0 0 12px 1.15rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #415063;
}
.fcg-km__legal {
  border-top: 1px solid var(--fcg-line, #dce5f0);
  padding-top: 10px;
}
.fcg-km__legal p {
  margin: 0 0 6px;
  font-size: 0.75rem;
  line-height: 1.5;
  color: var(--fcg-muted, #556475);
}
.fcg-km__legal a {
  color: #12557f;
}

/* Déclencheur : la mention « 3 fois » devient cliquable, sans casser la
   ligne de confiance où elle vit. */
.fcg-klarna-link {
  border: 0;
  padding: 0;
  background: none;
  font: inherit;
  color: inherit;
  cursor: pointer;
  text-decoration: underline dotted;
  text-underline-offset: 3px;
}
.fcg-klarna-link__q {
  display: inline-grid;
  place-items: center;
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  background: #ffb3c7;
  color: #17120f;
  font-size: 0.6875rem;
  font-weight: 700;
}

/* ── Récapitulatif : mise en avant du 3 fois Klarna ──────────────────────── */
.fcg-recap-klarna {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  margin: 8px 0 4px;
  padding: 9px 12px;
  border: 1.5px solid #ffb3c7;
  border-radius: 12px;
  background: #fff7fa;
  font: inherit;
  font-size: 0.875rem;
  color: #1d2838;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.15s ease;
}
.fcg-recap-klarna:hover {
  background: #ffeff5;
  transform: translateY(-1px);
}
.fcg-recap-klarna img {
  flex: 0 0 auto;
}
.fcg-recap-klarna strong {
  font-family: var(--fcg-font-display, "Sora", sans-serif);
  color: var(--fcg-navy, #0a1e44);
}
.fcg-recap-klarna i {
  color: #b76e85;
  font-size: 0.8125rem;
}

/* ── Panneau rétractation : les désavantages, lisibles ───────────────────── */
.fcg-lb__pan-titre {
  font-family: var(--fcg-font-display, "Sora", sans-serif);
  font-size: 1rem;
  font-weight: 700;
  color: var(--fcg-navy, #0a1e44);
  margin: 0 0 6px;
}
.fcg-lb__pan-texte {
  margin: 0 0 8px;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #415063;
}
.fcg-lb__pan-liste {
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.fcg-lb__pan-liste li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #6b5d38;
  background: #fffdf6;
  border: 1px solid #f0e6c8;
  border-radius: 10px;
  padding: 7px 10px;
}
.fcg-lb__pan-liste i {
  flex: 0 0 auto;
  margin-top: 2px;
  color: #a07c1f;
}
.fcg-lb__opt--primaire {
  border-color: var(--fcg-teal-deep, #077a5c) !important;
  background: #f2fbf7 !important;
}
.fcg-lb__opt--primaire .fcg-lb__opt-t {
  color: var(--fcg-teal-deep, #077a5c);
}

/* Les modaux vanilla se cachent par l'attribut hidden — qui doit gagner
   contre le display:flex de la classe. */
.fcg-am[hidden],
.fcg-km[hidden] {
  display: none !important;
}

/* ── Pay-split : tuiles de logos par option ──────────────────────────────── */
.fcg-ps__mark {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 88px;
  height: 44px;
  background: #f4f7fa;
  border: 1px solid #e6edf4;
  border-radius: 10px;
  overflow: hidden;
  pointer-events: none;
}
.fcg-ps__mark--cards {
  flex-wrap: wrap;
  gap: 2px 5px;
  padding: 4px 6px;
  align-content: center;
}
.fcg-ps__mark--cards img {
  display: block;
  height: 14px;
  width: auto;
  max-width: 34px;
  object-fit: contain;
}
.fcg-ps__mark--klarna {
  background: transparent;
  border: 0;
}
.fcg-ps__mark--klarna img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
/* Défilé de banques — même mécanique que le parcours rapide : chaque logo
   porte un delay, l'animation les fait tourner ; pause au survol. */
.fcg-ps__mark--banks {
  position: relative;
}
.fcg-ps__mark--banks img {
  position: absolute;
  inset: 5px;
  width: calc(100% - 10px);
  height: calc(100% - 10px);
  object-fit: contain;
  opacity: 0;
  animation: fcgPsBank var(--fcg-ps-bank-dur, 28.8s) infinite;
}
.fcg-ps__mark--banks img:first-child {
  opacity: 1;
  animation-name: fcgPsBankFirst;
}
.fcg-ps__opt:hover .fcg-ps__mark--banks img {
  animation-play-state: paused;
}
@keyframes fcgPsBank {
  0% { opacity: 0; transform: translateX(8px); }
  5% { opacity: 1; transform: translateX(0); }
  10% { opacity: 1; transform: translateX(0); }
  15% { opacity: 0; transform: translateX(-8px); }
  100% { opacity: 0; }
}
@keyframes fcgPsBankFirst {
  0%, 10% { opacity: 1; transform: translateX(0); }
  15% { opacity: 0; transform: translateX(-8px); }
  100% { opacity: 0; }
}
@media (max-width: 460px) {
  .fcg-ps__mark { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .fcg-ps__mark--banks img { animation: none; }
  .fcg-ps__mark--banks img:first-child { opacity: 1; }
}

/* État d'erreur sur les composants qui remplacent un select. */
.fcg-dpk__btn.is-invalid,
.fcg-ss__input.is-invalid {
  border-color: #dc2626 !important;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.14) !important;
}

/* ── Espace professionnels ───────────────────────────────────────────────── */
.fcg-pro-avantages {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 0 0 1.75rem;
}
@media (max-width: 700px) {
  .fcg-pro-avantages { grid-template-columns: 1fr; }
}
.fcg-pro-av {
  padding: 1.15rem 1.2rem;
  background: #fff;
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: 14px;
  box-shadow: var(--fcg-shadow-sm, 0 10px 28px rgba(5, 15, 40, 0.08));
}
.fcg-pro-av__ico {
  display: inline-grid;
  place-items: center;
  width: 2.4rem;
  height: 2.4rem;
  margin-bottom: 0.5rem;
  border-radius: 11px;
  background: var(--fcg-surface, #f3f7fb);
  color: var(--fcg-teal-deep, #077a5c);
  font-size: 1.1rem;
}
.fcg-pro-av h2 {
  font-size: 1rem;
  margin: 0 0 0.35rem;
  color: var(--fcg-navy, #0a1e44);
}
.fcg-pro-av p {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #415063;
}
.fcg-pro-sous {
  margin: -0.25rem 0 1rem;
  font-size: 0.9375rem;
  color: var(--fcg-muted, #556475);
}
.fcg-pro-tel {
  margin: 1.25rem 0 0;
  font-size: 0.875rem;
  color: var(--fcg-muted, #556475);
}
.fcg-pro-tel a {
  font-weight: 700;
  color: var(--fcg-navy, #0a1e44);
}

/* Mode section de la bande de marques : l'en-tete vit au-dessus, la carte
   n'a plus de titre propre — l'espace suit. */
.fcg-bs--nu {
  margin-top: 0;
}

/* Mobile : 18 vignettes feraient 9 rangees sur 2 colonnes — on en garde 12
   (6 rangees), le lien « toutes les marques » couvre le reste. */
@media (max-width: 700px) {
  .fcg-bs--nu .fcg-bs__grid li:nth-child(n+13) { display: none; }
}

/* ── Mini-simulateur en sidebar (variante ?side=simulateur) ────────────────
   Le vrai formulaire, serre pour une colonne de 300 px : libelles reduits,
   champs moins hauts, la plaque garde son gabarit officiel. */
.fcg-aside-sim .fcg-start {
  gap: 0.7rem;
  display: grid;
  margin-top: 0.35rem;
}
.fcg-aside-sim .fcg-field,
.fcg-aside-sim .fcg-hero__fields { gap: 0.3rem; }
.fcg-aside-sim .fcg-field__label {
  font-size: 0.6875rem;
  letter-spacing: 0.04em;
}
.fcg-aside-sim .fcg-field__hint { font-size: 0.6875rem; }
.fcg-aside-sim .fcg-plate { transform-origin: left center; }
.fcg-aside-sim .inputPlaqueLogo { min-height: 44px; font-size: 1rem; }
.fcg-aside-sim .fcg-select,
.fcg-aside-sim .fcg-dpk__btn,
.fcg-aside-sim .fcg-ss__input { min-height: 44px; font-size: 0.875rem; }
.fcg-aside-sim .fcg-btn--block { min-height: 46px; font-size: 0.9375rem; }
.fcg-aside-sim .fcg-start__reassure { display: none; }
.fcg-aside-sim > p { margin-bottom: 0.35rem; }

/* ── Centre d'aide : themes + accordeon natif ────────────────────────────── */
.fcg-aide-themes {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.8rem;
  margin: 0.5rem 0 2rem;
}
.fcg-aide-theme {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-height: 58px;
  padding: 0.8rem 1rem;
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: var(--fcg-radius-sm, 11px);
  background: #fff;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--fcg-navy, #0a1e44);
  text-decoration: none;
  transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.fcg-aide-theme i {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: #eaf3fb;
  color: var(--fcg-blue, #1a6fd4);
  font-size: 1rem;
}
.fcg-aide-theme:hover,
.fcg-aide-theme:focus-visible {
  border-color: #9fbdd8;
  transform: translateY(-2px);
  box-shadow: var(--fcg-shadow-sm, 0 1px 3px rgba(12, 35, 64, .08));
}
@media (max-width: 900px) { .fcg-aide-themes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (prefers-reduced-motion: reduce) {
  .fcg-aide-theme { transition: none; }
  .fcg-aide-theme:hover { transform: none; }
}

/* Accordeon natif <details> — meme visage que l'ancien .fcg-faq__item */
.fcg-faq-nd {
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: var(--fcg-radius-sm, 11px);
  background: #fff;
  margin-bottom: 0.65rem;
}
.fcg-faq-nd summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.95rem 1.1rem;
  cursor: pointer;
  list-style: none;
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--fcg-navy, #0a1e44);
}
.fcg-faq-nd summary::-webkit-details-marker { display: none; }
.fcg-faq-nd summary i { color: var(--fcg-blue, #1a6fd4); transition: transform .2s ease; flex: 0 0 auto; }
.fcg-faq-nd[open] summary i { transform: rotate(180deg); }
.fcg-faq-nd[open] { border-color: #b9d4ee; }
.fcg-faq-nd__a {
  padding: 0 1.1rem 1rem;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: #44546a;
}
.fcg-faq-nd__a p { margin: 0 0 0.6rem; }
.fcg-faq-nd__a p:last-child { margin-bottom: 0; }
.fcg-faq-nd__a a { color: var(--fcg-blue, #1a6fd4); }

.fcg-aide-more-wrap { margin: 0.85rem 0 0; text-align: center; }
.fcg-aide-more {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 46px;
  padding: 0.6rem 1.4rem;
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: 999px;
  background: #fff;
  font-family: var(--fcg-font-display);
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--fcg-navy, #0a1e44);
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease;
}
.fcg-aide-more:hover { border-color: #9fbdd8; background: var(--fcg-surface, #f6f9fd); }

/* Un titre en « 90vw » dans une carte a rembourrage debordait de 2 px sur
   mobile : la largeur suit le conteneur, pas l'ecran. */
.fcg-aide-q .aide-title-div { width: auto; }

/* ── Bandeau d'activite reelle (bas gauche, desktop) ─────────────────────── */
.fcg-plive {
  position: fixed;
  left: 1.1rem;
  bottom: 1.1rem;
  z-index: 900;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  max-width: 340px;
  padding: 0.7rem 0.85rem;
  background: #fff;
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: 12px;
  box-shadow: 0 12px 32px rgba(10, 30, 68, 0.16);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.fcg-plive.is-vue { opacity: 1; transform: translateY(0); }
.fcg-plive__ico {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #e7f6f1;
  color: var(--fcg-teal-deep, #077a5c);
  font-size: 0.9375rem;
}
.fcg-plive__txt { font-size: 0.8125rem; line-height: 1.4; color: #33445c; }
.fcg-plive__txt strong { color: var(--fcg-navy, #0a1e44); }
.fcg-plive__txt em { display: block; font-style: normal; font-size: 0.6875rem; color: var(--fcg-muted, #5e718d); }
.fcg-plive__x {
  flex: 0 0 auto;
  align-self: flex-start;
  border: 0;
  background: none;
  padding: 0 0.15rem;
  font-size: 1.05rem;
  line-height: 1;
  color: var(--fcg-muted, #5e718d);
  cursor: pointer;
}
.fcg-plive__x:hover { color: var(--fcg-navy, #0a1e44); }

/* ── Envoi des Cerfa par e-mail (gate doux, /documents) ──────────────────── */
.fcg-cerfa-mail {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.35rem 1.25rem;
  align-items: center;
  margin: 0 0 1rem;
  padding: 1rem 1.15rem;
  background: #f4f9ff;
  border: 1px solid #cfe5ff;
  border-radius: var(--fcg-radius, 16px);
}
.fcg-cerfa-mail__txt strong { display: block; color: var(--fcg-navy, #0a1e44); font-size: 0.9375rem; }
.fcg-cerfa-mail__txt span { font-size: 0.8125rem; color: var(--fcg-muted, #5e718d); }
.fcg-cerfa-mail__form { display: flex; gap: 0.5rem; }
.fcg-cerfa-mail__form input {
  min-height: 46px;
  width: min(240px, 100%);
  padding: 0.5rem 0.85rem;
  border: 1px solid #cfdae7;
  border-radius: 10px;
  font: inherit;
  font-size: 1rem;
}
.fcg-cerfa-mail__form input:focus { outline: none; border-color: #12557f; box-shadow: 0 0 0 3px rgba(18, 85, 127, .15); }
.fcg-cerfa-mail__note { grid-column: 1 / -1; margin: 0; font-size: 0.75rem; color: var(--fcg-muted, #5e718d); }
.fcg-cerfa-mail__note.is-ok { color: var(--fcg-teal-deep, #077a5c); font-weight: 600; }
@media (max-width: 640px) {
  .fcg-cerfa-mail { grid-template-columns: 1fr; }
  .fcg-cerfa-mail__form { flex-wrap: wrap; }
}

/* Avatar d'initiales des temoignages.
   Selecteur volontairement plus specifique que `.fcg-temo2__quote cite span`
   (la regle de la date), qui ecrasait la couleur blanche de l'initiale. */
.fcg-temo2__quote cite span.fcg-temo2__avatar,
.fcg-temo2__avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin-right: 0.55rem;
  border-radius: 50%;
  border: 2px solid #fff;
  color: #fff;
  font-family: var(--fcg-font-display);
  font-size: 1rem;
  font-weight: 700;
  font-style: normal;
  vertical-align: middle;
  box-shadow: 0 2px 8px rgba(10, 30, 68, 0.22);
}

/* ── Bande CTA double (fin de guides) — carte bleue + carte blanche ─────── */
.fcg-bcta { margin: 2.5rem 0 0; }
.fcg-bcta__in {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: 1.5rem 3rem;
  align-items: center;
  padding: clamp(1.75rem, 1rem + 2.5vw, 3rem);
  border-radius: 24px;
  background: linear-gradient(135deg, #1a6fd4 0%, #3b93ef 58%, #4aa3f5 100%);
  color: #fff;
}
.fcg-bcta__dispo {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1rem;
  padding: 0.32rem 0.95rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
  font-size: 0.78rem;
  font-weight: 600;
}
.fcg-bcta__dispo i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #b7f5cf;
}
.fcg-bcta__copy h2 {
  margin: 0 0 0.55rem;
  font-family: var(--fcg-font-display);
  font-size: clamp(1.6rem, 1.1rem + 1.8vw, 2.3rem);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: #fff;
  text-wrap: balance;
}
.fcg-bcta__copy p { margin: 0; font-size: 0.9375rem; line-height: 1.6; color: rgba(240, 247, 255, 0.95); max-width: 48ch; }
.fcg-bcta__carte {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  padding: 1.3rem;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(9, 40, 86, 0.25);
}
.fcg-bcta__equipe {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  margin: 0 0 0.35rem;
}
.fcg-bcta__equipe p { margin: 0; font-size: 0.8125rem; line-height: 1.45; color: var(--fcg-navy, #0a1e44); font-weight: 600; }
.fcg-bcta__faces { display: inline-flex; flex: 0 0 auto; }
.fcg-bcta__faces i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 2px solid #fff;
  font-family: var(--fcg-font-display);
  font-size: 0.8125rem;
  font-style: normal;
  font-weight: 700;
  color: #fff;
}
.fcg-bcta__faces i + i { margin-left: -9px; }
.fcg-bcta__faces i:nth-child(1) { background: #1a6fd4; }
.fcg-bcta__faces i:nth-child(2) { background: #0e8f6e; }
.fcg-bcta__faces i:nth-child(3) { background: #7c5cd6; }
.fcg-bcta__opt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 50px;
  padding: 0.65rem 1.2rem;
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: 12px;
  background: #f6faff;
  color: var(--fcg-navy, #0a1e44);
  font-family: var(--fcg-font-display);
  font-size: 0.9375rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}
.fcg-bcta__opt:hover { background: #ecf4ff; border-color: #9fbdd8; transform: translateY(-1px); }
.fcg-bcta__opt--fonce {
  border-color: transparent;
  background: var(--fcg-navy, #0a1e44);
  color: #fff;
}
.fcg-bcta__opt--fonce:hover { background: #12305e; border-color: transparent; }
.fcg-bcta__puces {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0.9rem 0 0;
  padding: 0;
}
.fcg-bcta__puces li {
  padding: 0.28rem 0.8rem;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  font-size: 0.75rem;
  font-weight: 600;
}
@media (max-width: 760px) {
  .fcg-bcta__in { grid-template-columns: 1fr; padding: 1.5rem 1.25rem; }
}

/* ── Grille de situations (partagee aide + exit-intent) ─────────────────── */
.fcg-sgrille {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}
.fcg-sgrille__opt {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 96px;
  padding: 0.9rem 0.7rem;
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: var(--fcg-radius-sm, 11px);
  background: #fff;
  font: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--fcg-navy, #0a1e44);
  text-decoration: none;
  text-align: center;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.fcg-sgrille__opt:hover,
.fcg-sgrille__opt:focus-visible { border-color: #9fbdd8; background: #f4f9ff; box-shadow: 0 4px 14px rgba(10, 30, 68, 0.07); }
.fcg-sgrille__opt i {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: #eaf3fb;
  color: var(--fcg-blue, #1a6fd4);
  font-size: 1.05rem;
}
.fcg-sgrille__opt--autre { border-style: dashed; color: #12557f; }
@media (max-width: 560px) { .fcg-sgrille { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fcg-sgrille__opt { min-height: 84px; font-size: 0.8125rem; } }

/* ── Modale de sortie (exit-intent) — fidele au gabarit du plan ─────────── */
.fcg-exitm__boite {
  width: min(540px, 100%);
  padding: 1.5rem 1.5rem 1.1rem;
  outline: none;
}
.fcg-exitm__x {
  position: absolute;
  top: 0.9rem;
  right: 0.9rem;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--fcg-muted, #5e718d);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.fcg-exitm__x:hover { background: #eef3fa; color: var(--fcg-navy, #0a1e44); }
.fcg-exitm__titre {
  margin: 0 2rem 0.35rem 0;
  font-family: var(--fcg-font-display, "Sora", sans-serif);
  font-size: 1.3rem;
  letter-spacing: -0.02em;
  color: var(--fcg-navy, #0a1e44);
  text-wrap: balance;
}
.fcg-exitm__sous {
  margin: 0 0 1.1rem;
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--fcg-muted, #5e718d);
}
.fcg-exitm__plustard {
  display: block;
  margin: 0.9rem auto 0;
  padding: 0.35rem 0.9rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  font: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--fcg-muted, #5e718d);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.fcg-exitm__plustard:hover { background: #eef3fa; color: var(--fcg-navy, #0a1e44); }
.fcg-exitm__note {
  margin: 0.7rem 0 0;
  padding-top: 0.8rem;
  border-top: 1px solid var(--fcg-line, #dce5f0);
  font-size: 0.78rem;
  text-align: center;
  color: var(--fcg-muted, #5e718d);
}

/* Modale de sortie */
.fcg-exitm__boite { max-width: 560px; padding: 1.75rem 1.75rem 1.4rem; }
.fcg-exitm__titre {
  margin: 0 0 0.35rem;
  font-family: var(--fcg-font-display);
  font-size: 1.35rem;
  letter-spacing: -0.02em;
  color: var(--fcg-navy, #0a1e44);
}
.fcg-exitm__sous { margin: 0 0 1.1rem; font-size: 0.9375rem; color: var(--fcg-muted, #5e718d); }
.fcg-exitm__note { margin: 1rem 0 0; text-align: center; font-size: 0.75rem; color: var(--fcg-muted, #5e718d); }

/* Bloc « je ne trouve pas ma situation » du centre d'aide */
.fcg-aide-situations {
  margin: 2rem 0 0.5rem;
  padding: 1.5rem 1.5rem 1.6rem;
  background: #fff;
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: var(--fcg-radius, 16px);
  box-shadow: var(--fcg-shadow-sm, 0 1px 3px rgba(12, 35, 64, .08));
}
.fcg-aide-situations__tete h2 {
  margin: 0 0 0.25rem;
  font-family: var(--fcg-font-display);
  font-size: 1.2rem;
  letter-spacing: -0.02em;
  color: var(--fcg-navy, #0a1e44);
}
.fcg-aide-situations__tete p { margin: 0 0 1rem; font-size: 0.9rem; color: var(--fcg-muted, #5e718d); }
@media (min-width: 761px) {
  .fcg-aide-situations .fcg-sgrille { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ── Page « droit de retractation » ─────────────────────────────────────── */
.fcg-retract__chips { list-style: none; display: flex; flex-wrap: wrap; gap: 0.6rem 1.4rem; margin: 1rem 0 0; padding: 0; }
.fcg-retract__chips li { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.8125rem; font-weight: 600; color: rgba(226, 236, 255, 0.92); }
.fcg-retract__chips i { color: #7dffe0; }
.fcg-retract__options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 2rem 0 0;
  align-items: start;
}
.fcg-retract__opt {
  position: relative;
  padding: 1.5rem 1.5rem 1.4rem;
  background: #fff;
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: var(--fcg-radius, 16px);
  box-shadow: var(--fcg-shadow-sm, 0 1px 3px rgba(12, 35, 64, .08));
}
.fcg-retract__opt--now { border-color: #9fd8c3; }
.fcg-retract__reco {
  position: absolute;
  top: -10px;
  right: 1rem;
  padding: 0.2rem 0.7rem;
  border-radius: 999px;
  background: var(--fcg-teal-deep, #077a5c);
  color: #fff;
  font-family: var(--fcg-font-display);
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.fcg-retract__opt h2 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 0.6rem;
  font-family: var(--fcg-font-display);
  font-size: 1.0625rem;
  color: var(--fcg-navy, #0a1e44);
}
.fcg-retract__opt--now h2 i { color: var(--fcg-teal-deep, #077a5c); }
.fcg-retract__opt h2 i { color: var(--fcg-blue, #1a6fd4); }
.fcg-retract__citation {
  margin: 0 0 0.9rem;
  padding: 0.7rem 0.9rem;
  border-left: 3px solid var(--fcg-line, #dce5f0);
  background: var(--fcg-surface, #f6f9fd);
  border-radius: 0 9px 9px 0;
  font-size: 0.845rem;
  line-height: 1.55;
  color: #44546a;
}
.fcg-retract__opt h3 { margin: 0 0 0.5rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fcg-teal-deep, #077a5c); }
.fcg-retract__acces {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
  margin: 0 0 0.9rem;
  padding: 0;
}
.fcg-retract__acces li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.6rem;
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: 9px;
  font-size: 0.78rem;
  font-weight: 600;
  color: #33445c;
}
.fcg-retract__acces i { color: var(--fcg-blue, #1a6fd4); }
.fcg-retract__note-verte {
  margin: 0;
  padding: 0.7rem 0.85rem;
  border: 1px solid #cdebdD;
  border-radius: 10px;
  background: #f0faf5;
  font-size: 0.8125rem;
  line-height: 1.55;
  color: #245b46;
}
.fcg-retract__note-verte i { margin-right: 0.3rem; }
.fcg-retract__attente {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 0.8rem;
  padding: 0.65rem 0.85rem;
  border-radius: 10px;
  background: #eef4fb;
  font-size: 0.845rem;
  font-weight: 600;
  color: #12557f;
}
.fcg-retract__points { list-style: none; margin: 0 0 0.8rem; padding: 0; display: grid; gap: 0.45rem; }
.fcg-retract__points li { display: flex; gap: 0.5rem; font-size: 0.845rem; color: #33445c; }
.fcg-retract__points i { color: var(--fcg-teal-deep, #077a5c); flex: 0 0 auto; margin-top: 0.15rem; }
.fcg-retract__mini { margin: 0; font-size: 0.78rem; color: var(--fcg-muted, #5e718d); }
.fcg-retract__tableau { margin: 2rem 0 0; }
.fcg-retract__tableau h2 { font-family: var(--fcg-font-display); font-size: 1.15rem; color: var(--fcg-navy, #0a1e44); margin: 0 0 0.8rem; }
.fcg-retract__source { margin: 0.6rem 0 0; font-size: 0.8125rem; color: var(--fcg-muted, #5e718d); }
.fcg-retract__source a { color: #12557f; }
.fcg-retract__duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.6rem 0 0; }
.fcg-retract__carte {
  padding: 1.25rem 1.4rem;
  background: #fff;
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: var(--fcg-radius, 16px);
}
.fcg-retract__carte h2 { display: flex; align-items: center; gap: 0.5rem; margin: 0 0 0.7rem; font-family: var(--fcg-font-display); font-size: 1rem; color: var(--fcg-navy, #0a1e44); }
.fcg-retract__carte h2 i { color: var(--fcg-blue, #1a6fd4); }
.fcg-retract__etapes { margin: 0; padding-left: 1.2rem; display: grid; gap: 0.45rem; font-size: 0.875rem; color: #33445c; }
.fcg-retract__lois { list-style: none; margin: 0 0 0.6rem; padding: 0; display: grid; gap: 0.4rem; font-size: 0.875rem; color: #33445c; }
.fcg-retract__fin {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  margin: 1.8rem 0 2.5rem;
  padding: 1.1rem 1.4rem;
  background: #eef4fb;
  border: 1px solid #d9e6f5;
  border-radius: var(--fcg-radius, 16px);
}
.fcg-retract__fin-txt { display: flex; align-items: center; gap: 0.9rem; }
.fcg-retract__fin-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--fcg-navy, #0a1e44);
  color: #fff;
  font-size: 1.25rem;
  flex: 0 0 auto;
}
.fcg-retract__fin-txt strong { display: block; color: var(--fcg-navy, #0a1e44); }
.fcg-retract__fin-txt span { font-size: 0.845rem; color: var(--fcg-muted, #5e718d); }
.fcg-retract__fin-cta { display: flex; gap: 0.6rem; flex-wrap: wrap; }
@media (max-width: 820px) {
  .fcg-retract__options, .fcg-retract__duo { grid-template-columns: 1fr; }
}
.fcg-lb__ensavoir { margin-left: 0.4rem; color: #12557f; font-weight: 600; text-decoration: underline; font-size: 0.8125rem; white-space: nowrap; }

/* Rail de confiance du hero FranceConnect */
.fcg-fc-lp__hgrid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 1.5rem 3rem;
  align-items: center;
}
.fcg-fc-lp__rail { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.9rem; }
.fcg-fc-lp__rail li { display: flex; align-items: center; gap: 0.8rem; }
.fcg-fc-lp__rail-ico {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.08);
  color: #7dffe0;
  font-size: 1.1rem;
}
.fcg-fc-lp__rail strong { display: block; color: #fff; font-size: 0.9375rem; }
.fcg-fc-lp__rail em { font-style: normal; font-size: 0.78rem; color: rgba(222, 233, 250, 0.75); }
@media (max-width: 860px) {
  .fcg-fc-lp__hgrid { grid-template-columns: 1fr; }
  .fcg-fc-lp__rail { grid-template-columns: 1fr; gap: 0.6rem; }
}

/* ══ Page professionnels v2 (fcg-pro2) ═══════════════════════════════════ */
.fcg-pro2__hero {
  position: relative;
  overflow: clip;
  padding: 3rem 0 3.5rem;
  background: linear-gradient(125deg, #f6f9fd 0%, #eef4fb 100%);
}
.fcg-pro2__points {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(26, 111, 212, 0.14) 1.5px, transparent 1.5px);
  background-size: 26px 26px;
  -webkit-mask-image: radial-gradient(60rem 30rem at 70% 20%, #000 0%, transparent 70%);
  mask-image: radial-gradient(60rem 30rem at 70% 20%, #000 0%, transparent 70%);
  pointer-events: none;
}
.fcg-pro2__hgrid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 420px);
  gap: 2rem 3rem;
  align-items: start;
}
.fcg-pro2__kicker { display: inline-flex; align-items: center; gap: 0.4rem; }
.fcg-pro2__copy h1 {
  margin: 0.3rem 0 0.7rem;
  font-family: var(--fcg-font-display);
  font-size: clamp(1.8rem, 1.2rem + 2.4vw, 2.6rem);
  line-height: 1.12;
  letter-spacing: -0.03em;
  color: var(--fcg-navy, #0a1e44);
}
.fcg-pro2__copy h1 span { color: var(--fcg-blue, #1a6fd4); }
.fcg-pro2__lead { margin: 0 0 0.9rem; font-size: 1rem; line-height: 1.65; color: #33445c; max-width: 52ch; }
.fcg-pro2__cred { display: flex; flex-wrap: wrap; gap: 0.5rem 1.4rem; margin: 0 0 1.5rem; font-size: 0.8125rem; font-weight: 600; color: #12557f; }
.fcg-pro2__cred i { margin-right: 0.3rem; }
.fcg-pro2-avgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.9rem; }
.fcg-pro2-av {
  padding: 1rem 1.1rem;
  background: #fff;
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: var(--fcg-radius-sm, 11px);
  box-shadow: var(--fcg-shadow-sm, 0 1px 3px rgba(12, 35, 64, .08));
}
.fcg-pro2-av i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin-bottom: 0.5rem;
  border-radius: 9px;
  background: #eaf3fb;
  color: var(--fcg-blue, #1a6fd4);
  font-size: 1.05rem;
}
.fcg-pro2-av h2 { margin: 0 0 0.25rem; font-family: var(--fcg-font-display); font-size: 0.9375rem; color: var(--fcg-navy, #0a1e44); }
.fcg-pro2-av p { margin: 0; font-size: 0.8125rem; line-height: 1.5; color: var(--fcg-muted, #5e718d); }

/* Panneau formulaire navy */
.fcg-pro2__panel {
  position: sticky;
  top: var(--fcg-sticky-top, 8.75rem);
  padding: 1.5rem 1.5rem 1.4rem;
  border-radius: var(--fcg-radius, 16px);
  background: linear-gradient(160deg, #0a1e44 0%, #123a6d 100%);
  color: #fff;
  box-shadow: 0 22px 48px rgba(10, 30, 68, 0.32);
  scroll-margin-top: var(--fcg-sticky-top, 8.75rem);
}
.fcg-pro2__panel h2 { margin: 0 0 0.25rem; font-family: var(--fcg-font-display); font-size: 1.2rem; color: #fff; }
.fcg-pro2__panel-sub { margin: 0 0 1rem; font-size: 0.8125rem; line-height: 1.5; color: rgba(222, 233, 250, 0.85); }
.fcg-pro2__champs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.7rem; margin-bottom: 0.9rem; }
.fcg-pro2__champs label { display: grid; gap: 0.3rem; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.03em; text-transform: uppercase; color: rgba(222, 233, 250, 0.8); }
.fcg-pro2__champs sup { color: #ff9d9d; }
.fcg-pro2__pleine { grid-column: 1 / -1; }
.fcg-pro2__champs input,
.fcg-pro2__champs select,
.fcg-pro2__champs textarea {
  width: 100%;
  min-height: 44px;
  padding: 0.55rem 0.8rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.96);
  font: inherit;
  font-size: 0.9375rem;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
  color: #12203a;
}
.fcg-pro2__champs textarea { min-height: 70px; resize: vertical; }
.fcg-pro2__champs input:focus,
.fcg-pro2__champs select:focus,
.fcg-pro2__champs textarea:focus { outline: none; box-shadow: 0 0 0 3px rgba(125, 255, 224, 0.35); }
.fcg-pro2__panel .error_message { color: #ffb4ae; font-size: 0.8125rem; margin: 0 0 0.5rem; }
.fcg-pro2__panel .success_message { color: #7dffe0; font-size: 0.8125rem; margin: 0 0 0.5rem; }
.fcg-pro2__tel { margin: 0.9rem 0 0; text-align: center; font-size: 0.78rem; line-height: 1.55; color: rgba(222, 233, 250, 0.8); }
.fcg-pro2__tel a { color: #7dffe0; font-weight: 700; text-decoration: none; }

/* Bande dossier ponctuel */
.fcg-pro2__ponctuel { background: #fff; border-block: 1px solid var(--fcg-line, #dce5f0); padding: 1.4rem 0; }
.fcg-pro2__ponc-in { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; }
.fcg-pro2__ponc-txt { flex: 1 1 260px; }
.fcg-pro2__ponc-txt h2 { margin: 0 0 0.2rem; font-family: var(--fcg-font-display); font-size: 1.1rem; color: var(--fcg-navy, #0a1e44); }
.fcg-pro2__ponc-txt p { margin: 0; font-size: 0.875rem; color: var(--fcg-muted, #5e718d); }
.fcg-pro2__ponc-cta { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.fcg-pro2__avis { text-align: center; font-size: 0.78rem; color: var(--fcg-muted, #5e718d); }
.fcg-pro2__avis strong { display: block; font-family: var(--fcg-font-display); font-size: 1.2rem; color: var(--fcg-navy, #0a1e44); }
.fcg-pro2__avis a { display: block; margin-top: 0.15rem; color: #12557f; }

/* Liens utiles */
.fcg-pro2__liens { display: flex; flex-wrap: wrap; gap: 0.5rem 1.6rem; padding-top: 1.2rem; padding-bottom: 0.4rem; }
.fcg-pro2__liens a { display: inline-flex; align-items: center; gap: 0.4rem; min-height: 40px; font-size: 0.8125rem; font-weight: 600; color: #12557f; text-decoration: none; }
.fcg-pro2__liens a:hover { text-decoration: underline; }
.fcg-pro2__liens i { color: var(--fcg-blue, #1a6fd4); }

/* Demo suivi */
.fcg-pro2__demo-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 2rem 3.5rem; align-items: center; }
.fcg-pro2__demo-copy h2 { margin: 0.3rem 0 0.9rem; font-family: var(--fcg-font-display); font-size: clamp(1.3rem, 1rem + 1.2vw, 1.7rem); letter-spacing: -0.02em; color: var(--fcg-navy, #0a1e44); }
.fcg-pro2__demo-points { list-style: none; margin: 0 0 1.2rem; padding: 0; display: grid; gap: 0.55rem; }
.fcg-pro2__demo-points li { display: flex; gap: 0.55rem; font-size: 0.9375rem; color: #33445c; }
.fcg-pro2__demo-points i { color: var(--fcg-teal-deep, #077a5c); flex: 0 0 auto; margin-top: 0.2rem; }
.fcg-pro2__demo-note { margin: 0.5rem 0 0; font-size: 0.78rem; color: var(--fcg-muted, #5e718d); }
.fcg-pro2__demo-visu { position: relative; }
.fcg-pro2__ecran {
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(10, 30, 68, 0.14);
  overflow: hidden;
}
.fcg-pro2__ecran-tete {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0.6rem 0.9rem;
  background: var(--fcg-navy, #0a1e44);
  color: rgba(255, 255, 255, 0.85);
  font-family: var(--fcg-font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.fcg-pro2__ecran-tete span { width: 9px; height: 9px; border-radius: 50%; background: rgba(255, 255, 255, 0.3); }
.fcg-pro2__ecran-kpis { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--fcg-line, #dce5f0); }
.fcg-pro2__ecran-kpis > div { padding: 0.8rem 0.9rem; border-right: 1px solid var(--fcg-line, #dce5f0); }
.fcg-pro2__ecran-kpis > div:last-child { border-right: none; }
.fcg-pro2__ecran-kpis b { display: block; font-family: var(--fcg-font-display); font-size: 1rem; color: var(--fcg-navy, #0a1e44); }
.fcg-pro2__ecran-kpis em { font-style: normal; font-size: 0.68rem; color: var(--fcg-muted, #5e718d); }
.fcg-pro2__ecran-lignes { padding: 0.5rem 0; }
.fcg-pro2__ecran-lignes > div { display: flex; align-items: center; gap: 0.55rem; padding: 0.5rem 0.95rem; font-size: 0.8125rem; color: #33445c; border-bottom: 1px dashed #eef2f8; }
.fcg-pro2__ecran-lignes > div:last-child { border-bottom: none; }
.fcg-pro2__ecran-lignes .ok, .fcg-pro2__ecran-lignes .att { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; }
.fcg-pro2__ecran-lignes .ok { background: var(--fcg-teal, #12b58a); }
.fcg-pro2__ecran-lignes .att { background: #f5a623; }
.fcg-pro2__cg {
  position: absolute;
  right: -14px;
  bottom: -22px;
  width: 190px;
  height: auto;
  transform: rotate(6deg);
  filter: drop-shadow(0 14px 24px rgba(10, 30, 68, 0.25));
}

/* Duo listes */
.fcg-pro2__h2 { margin: 0 0 0.3rem; font-family: var(--fcg-font-display); font-size: 1.35rem; letter-spacing: -0.02em; color: var(--fcg-navy, #0a1e44); }
.fcg-pro2__duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 3.5rem; }
.fcg-pro2__duo-sub { margin: 0 0 1rem; font-size: 0.875rem; color: var(--fcg-muted, #5e718d); }
.fcg-pro2__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.9rem; }
.fcg-pro2__liste li { display: flex; gap: 0.8rem; }
.fcg-pro2__liste li > i {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #e7f6f1;
  color: var(--fcg-teal-deep, #077a5c);
  font-size: 1.05rem;
}
.fcg-pro2__liste strong { display: block; font-size: 0.9375rem; color: var(--fcg-navy, #0a1e44); }
.fcg-pro2__liste em { font-style: normal; font-size: 0.8125rem; line-height: 1.5; color: var(--fcg-muted, #5e718d); }

/* Segments */
.fcg-pro2__segments { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.9rem; margin-top: 1.4rem; }
.fcg-pro2__seg {
  padding: 1.2rem 1.1rem;
  background: var(--fcg-surface, #f6f9fd);
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: var(--fcg-radius-sm, 11px);
}
.fcg-pro2__seg i { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border-radius: 9px; background: #fff; border: 1px solid var(--fcg-line, #dce5f0); color: var(--fcg-blue, #1a6fd4); margin-bottom: 0.55rem; }
.fcg-pro2__seg h3 { margin: 0 0 0.25rem; font-family: var(--fcg-font-display); font-size: 0.9375rem; color: var(--fcg-navy, #0a1e44); }
.fcg-pro2__seg p { margin: 0; font-size: 0.8125rem; line-height: 1.5; color: var(--fcg-muted, #5e718d); }

/* Bande finale */
.fcg-pro2__fin { background: var(--fcg-navy, #0a1e44); padding: 1.4rem 0; margin-top: 1rem; }
.fcg-pro2__fin-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.9rem 1.5rem; }
.fcg-pro2__fin p { margin: 0; color: rgba(226, 236, 255, 0.92); font-size: 0.9375rem; }
.fcg-pro2__fin strong { color: #fff; }
.fcg-pro2__fin i { margin-right: 0.4rem; color: #7dffe0; }

@media (max-width: 960px) {
  .fcg-pro2__hgrid { grid-template-columns: 1fr; }
  .fcg-pro2__panel { position: static; }
  .fcg-pro2__demo-grid, .fcg-pro2__duo { grid-template-columns: 1fr; }
  .fcg-pro2__segments { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fcg-pro2__cg { width: 150px; right: 0; bottom: -14px; }
}
@media (max-width: 560px) {
  .fcg-pro2-avgrid, .fcg-pro2__champs, .fcg-pro2__segments { grid-template-columns: 1fr; }
}

/* ── Guides d'import par pays ────────────────────────────────────────────── */
.fcg-imp__flag { display: inline-flex; vertical-align: -4px; margin-right: 0.6rem; }
.fcg-imp__docs { display: grid; gap: 0.7rem; margin: 0 0 0.5rem; }
.fcg-imp__doc {
  display: flex;
  gap: 0.8rem;
  padding: 0.95rem 1.1rem;
  background: #fff;
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: var(--fcg-radius-sm, 11px);
}
.fcg-imp__doc > i {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 9px;
  background: #eaf3fb;
  color: var(--fcg-blue, #1a6fd4);
}
.fcg-imp__doc strong { display: block; font-size: 0.9375rem; color: var(--fcg-navy, #0a1e44); }
.fcg-imp__doc p { margin: 0.15rem 0 0; font-size: 0.845rem; line-height: 1.55; color: var(--fcg-muted, #5e718d); }
.fcg-imp__commun { list-style: none; margin: 0 0 0.5rem; padding: 0; display: grid; gap: 0.5rem; }
.fcg-imp__commun li { display: flex; gap: 0.55rem; font-size: 0.9375rem; color: #33445c; }
.fcg-imp__commun i { color: var(--fcg-teal-deep, #077a5c); flex: 0 0 auto; margin-top: 0.2rem; }
.fcg-imp__pieges { list-style: none; margin: 0 0 0.5rem; padding: 0; display: grid; gap: 0.6rem; }
.fcg-imp__pieges li {
  display: flex;
  gap: 0.6rem;
  padding: 0.75rem 0.95rem;
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: var(--fcg-radius-sm, 11px);
  font-size: 0.875rem;
  line-height: 1.55;
  color: #7a5b00;
}
.fcg-imp__pieges i { flex: 0 0 auto; margin-top: 0.15rem; color: #b45309; }

/* Grille des pays */
.fcg-ipg { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; }
.fcg-ipg__pays {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-height: 52px;
  padding: 0.65rem 0.9rem;
  background: #fff;
  border: 1px solid var(--fcg-line, #dce5f0);
  border-radius: var(--fcg-radius-sm, 11px);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--fcg-navy, #0a1e44);
  text-decoration: none;
  transition: border-color .15s ease, background .15s ease;
}
.fcg-ipg__pays:hover, .fcg-ipg__pays:focus-visible { border-color: #9fbdd8; background: #f4f9ff; }
.fcg-ipg__pays > i { margin-left: auto; color: var(--fcg-muted, #5e718d); font-size: 0.8125rem; }
.fcg-ipg__flag { display: inline-flex; flex: 0 0 auto; }
.fcg-ipg__flag--eu {
  width: 34px;
  height: 24px;
  align-items: center;
  justify-content: center;
  border-radius: 3px;
  background: #003399;
  color: #FFCC00;
  font-size: 0.9375rem;
}
.fcg-ipg__pays--autre { border-style: dashed; }
@media (min-width: 900px) { .fcg-ipg--large { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 480px) { .fcg-ipg { grid-template-columns: 1fr; } }

/* ── Bloc « Parlez à un expert » (confiance, plan Bruno) ─────────────────── */
.fcg-xp { padding: clamp(2.5rem, 1.5rem + 3vw, 4.5rem) 0; background: #eefaf4; }
.fcg-xp__in {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: 2rem 4rem;
  align-items: center;
  max-width: var(--fcg-max, 1240px);
  margin: 0 auto;
  padding: 0 1.25rem;
}
.fcg-xp__fenetre {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  padding: 3.1rem 1.4rem 1.5rem;
  border-radius: 20px;
  background: linear-gradient(160deg, #0a1e44 0%, #113864 60%, #145089 100%);
  box-shadow: 0 24px 60px rgba(9, 40, 86, 0.28);
}
.fcg-xp__dispo {
  position: absolute;
  top: 1rem;
  left: 1.2rem;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.3rem 0.85rem;
  border-radius: 999px;
  background: #fff;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--fcg-navy, #0a1e44);
  box-shadow: 0 4px 14px rgba(5, 15, 40, 0.18);
}
.fcg-xp__dispo i { width: 8px; height: 8px; border-radius: 50%; background: var(--fcg-teal, #12b58a); }
.fcg-xp__msg { display: flex; align-items: flex-end; gap: 0.6rem; }
.fcg-xp__msg--vous { justify-content: flex-end; }
.fcg-xp__ava {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.85);
  background: #1a6fd4;
  color: #fff;
  font-family: var(--fcg-font-display);
  font-size: 0.9375rem;
  font-weight: 700;
}
.fcg-xp__bulle {
  max-width: 34ch;
  padding: 0.7rem 0.95rem;
  border-radius: 14px 14px 14px 4px;
  background: #fff;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #24344e;
  box-shadow: 0 6px 18px rgba(5, 15, 40, 0.14);
}
.fcg-xp__bulle strong {
  display: block;
  margin-bottom: 0.15rem;
  font-size: 0.8125rem;
  color: var(--fcg-navy, #0a1e44);
}
.fcg-xp__bulle--vous {
  border-radius: 14px 14px 4px 14px;
  background: #dff1ff;
  color: #123a63;
}
.fcg-xp__chip {
  display: inline-flex;
  margin: 0 0 0.9rem;
  padding: 0.32rem 0.95rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #cdeee0;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--fcg-teal-deep, #077a5c);
}
.fcg-xp__titre {
  margin: 0 0 0.6rem;
  font-family: var(--fcg-font-display);
  font-size: clamp(1.7rem, 1.15rem + 2vw, 2.5rem);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: var(--fcg-navy, #0a1e44);
}
.fcg-xp__sous { margin: 0 0 1.2rem; font-size: 0.95rem; line-height: 1.6; color: var(--fcg-muted, #5e718d); max-width: 46ch; }
.fcg-xp__points { list-style: none; display: grid; gap: 0.6rem; margin: 0 0 1.4rem; padding: 0; }
.fcg-xp__points li { display: flex; align-items: center; gap: 0.65rem; font-size: 0.9375rem; font-weight: 600; color: #24344e; }
.fcg-xp__points i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #fff;
  color: var(--fcg-blue, #1a6fd4);
  box-shadow: 0 2px 8px rgba(9, 40, 86, 0.1);
}
.fcg-xp__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.8rem 1.5rem;
  border: 0;
  border-radius: 12px;
  background: var(--fcg-navy, #0a1e44);
  color: #fff;
  font-family: var(--fcg-font-display);
  font-size: 0.9375rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.15s ease;
}
.fcg-xp__cta:hover { background: #12305e; transform: translateY(-1px); }
@media (max-width: 860px) {
  .fcg-xp__in { grid-template-columns: 1fr; gap: 1.75rem; }
  .fcg-xp__scene { order: 2; }
}
