/* Assuravia : charte graphique.
   Marine et or pour la marque et l'univers Pro, bleu clair pour l'univers Privé.
   Détail des règles : design-system/assuravia/MASTER.md */
:root {
  /* Marque */
  --marine: #0B2545;          /* 15.6:1 sur blanc */
  --marine-2: #13315C;
  --or: #C9A227;              /* décoratif uniquement */
  --or-clair: #E2BE52;        /* fond des boutons d'action, texte marine 8.4:1 */
  --or-survol: #D4AC3A;
  --or-texte: #8A6D10;        /* texte or sur blanc 4.9:1 */
  --or-pale: #FBF5E2;

  /* Univers Privé */
  --bleu: #1565A8;            /* texte et liens 5.9:1 */
  --bleu-vif: #3A9AE0;        /* décoratif */
  --bleu-pale: #EAF4FD;
  --bleu-ciel: #CFE6FA;

  /* Neutres */
  --fond: #FFFFFF;
  --surface: #F5F8FC;
  --texte: #14213D;           /* 15.2:1 */
  --texte-doux: #4E5D73;      /* 6.5:1 */
  --bordure: #DCE4EE;
  --bordure-champ: #8798AE;   /* 3:1 */
  --succes: #1E7F4F;
  --erreur: #B42318;
  --attention-fond: #FEF7D6;

  /* Thème courant (neutre par défaut) */
  --accent: var(--marine);
  --accent-texte: var(--marine);
  --accent-pale: var(--surface);
  --accent-decor: var(--or);

  /* Typographie */
  --police: "Plus Jakarta Sans", "Segoe UI", Arial, sans-serif;
  --t-xs: 0.875rem; --t-s: 1rem; --t-m: 1.0625rem; --t-l: 1.25rem; --t-xl: 1.5rem;
  --t-2xl: clamp(1.625rem, 3vw, 2.125rem);
  --t-3xl: clamp(2rem, 4.4vw, 3.125rem);

  /* Espacements, formes, mouvement */
  --e-1: 4px; --e-2: 8px; --e-3: 12px; --e-4: 16px; --e-5: 24px; --e-6: 32px; --e-7: 48px; --e-8: 64px;
  --gouttiere: clamp(16px, 4vw, 32px);
  --r-s: 8px; --r-m: 14px; --r-l: 20px; --r-plein: 999px;
  --ombre-1: 0 1px 2px rgba(11, 37, 69, 0.06), 0 2px 8px -2px rgba(11, 37, 69, 0.08);
  --ombre-2: 0 18px 40px -20px rgba(11, 37, 69, 0.35);
  --duree: 180ms;
  --courbe: cubic-bezier(0.2, 0.7, 0.3, 1);
}
.theme-prive { --accent: var(--bleu-vif); --accent-texte: var(--bleu); --accent-pale: var(--bleu-pale); --accent-decor: var(--bleu-vif); }
.theme-pro { --accent: var(--marine); --accent-texte: var(--marine); --accent-pale: #EEF2F8; --accent-decor: var(--or); }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: var(--fond); color: var(--texte); font-family: var(--police); font-size: var(--t-m); line-height: 1.65; touch-action: manipulation; }
img, svg { display: block; max-width: 100%; }
a { color: var(--accent-texte); text-underline-offset: 0.2em; }
a:hover { color: var(--marine); }
:focus-visible { outline: 3px solid var(--bleu); outline-offset: 3px; border-radius: 4px; }
h1, h2, h3 { color: var(--marine); line-height: 1.18; margin: 0 0 var(--e-4); font-weight: 700; letter-spacing: -0.02em; text-wrap: balance; }
h1 { font-size: var(--t-3xl); font-weight: 800; }
h2 { font-size: var(--t-2xl); }
h3 { font-size: var(--t-l); letter-spacing: -0.01em; }
p { margin: 0 0 var(--e-4); }
strong { font-weight: 700; }

.cadre { width: min(1200px, 100% - 2 * var(--gouttiere)); margin-inline: auto; }
.cadre--etroit { width: min(780px, 100% - 2 * var(--gouttiere)); }
.skip { position: absolute; left: -999px; top: var(--e-2); background: var(--marine); color: #fff; padding: var(--e-2) var(--e-3); border-radius: var(--r-s); z-index: 100; }
.skip:focus { left: var(--e-2); }
.cache { position: absolute; left: -9999px; }
[hidden] { display: none !important; }
.icone { width: 24px; height: 24px; flex: none; }
.icone--petite { width: 18px; height: 18px; }
.icone--bouton { width: 20px; height: 20px; }

/* ---------- En-tête et menus ---------- */
.entete { background: rgba(255, 255, 255, 0.97); border-bottom: 1px solid var(--bordure); position: sticky; top: 0; z-index: 40; }
.entete__barre { display: flex; align-items: center; justify-content: space-between; gap: var(--e-4); min-height: 76px; }
.logo { display: inline-flex; text-decoration: none; }
.logo__svg { height: 48px; width: auto; }
.nav { display: flex; align-items: center; gap: var(--e-1); }
.nav__lien, .sous-menu__lien {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 var(--e-3);
  border-radius: var(--r-s); color: var(--texte); font-weight: 600; text-decoration: none; cursor: pointer;
  transition: background var(--duree) var(--courbe);
}
.nav__lien:hover, .sous-menu__lien:hover { background: var(--surface); color: var(--marine); }
.nav__lien[aria-current], .sous-menu__lien[aria-current] { color: var(--marine); box-shadow: inset 0 -3px 0 var(--or); border-radius: var(--r-s) var(--r-s) 0 0; }
.nav__action { margin-left: var(--e-3); }
.pastille { width: 10px; height: 10px; border-radius: var(--r-plein); flex: none; }
.pastille--prive { background: var(--bleu-vif); }
.pastille--pro { background: var(--or); box-shadow: 0 0 0 2px var(--marine); }
.sous-menu { position: relative; display: flex; align-items: center; margin: 0 3px; border-radius: var(--r-s); background: var(--bleu); --pill: var(--bleu); --pill-texte: #fff; --pill-survol: #0F5590; box-shadow: 0 6px 14px -8px rgba(21, 101, 168, 0.8); }
.sous-menu--pro { background: var(--marine); --pill: var(--marine); --pill-texte: var(--or-clair); --pill-survol: var(--marine-2); box-shadow: 0 6px 14px -8px rgba(11, 37, 69, 0.8); }
.sous-menu .sous-menu__lien { min-height: 44px; padding: 0 6px 0 14px; color: var(--pill-texte); font-weight: 700; border-radius: var(--r-s) 0 0 var(--r-s); }
.sous-menu .sous-menu__lien:hover { background: var(--pill-survol); color: var(--pill-texte); }
.sous-menu .sous-menu__lien[aria-current] { box-shadow: none; border-radius: var(--r-s) 0 0 var(--r-s); }
.sous-menu--actif { outline: 3px solid var(--or-clair); outline-offset: 2px; }
.sous-menu--prive.sous-menu--actif { outline-color: var(--bleu-ciel); }
.sous-menu__bascule { display: inline-grid; place-items: center; width: 36px; min-height: 44px; border: 0; border-left: 1px solid rgba(255, 255, 255, 0.25); background: none; color: var(--pill-texte); border-radius: 0 var(--r-s) var(--r-s) 0; cursor: pointer; }
.sous-menu__bascule:hover { background: var(--pill-survol); }
.sous-menu__chevron { transition: transform var(--duree) var(--courbe); }
.sous-menu.ouvert .sous-menu__chevron { transform: rotate(180deg); }
.sous-menu__panneau {
  display: none; position: absolute; top: calc(100% + 10px); left: 50%; transform: translateX(-50%); width: 340px;
  background: var(--fond); border: 1px solid var(--bordure); border-radius: var(--r-m); box-shadow: var(--ombre-2);
  padding: var(--e-4); z-index: 50; border-top: 4px solid var(--bleu-vif);
}
.sous-menu__panneau::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
.sous-menu.ouvert .sous-menu__panneau { display: block; }
@media (min-width: 1081px) and (hover: hover) { .sous-menu:hover .sous-menu__panneau { display: block; } .sous-menu:hover .sous-menu__chevron { transform: rotate(180deg); } }
.sous-menu--pro .sous-menu__panneau { border-top-color: var(--or); }
.sous-menu__titre { font-size: var(--t-xs); font-weight: 700; color: var(--texte-doux); margin: 0 0 var(--e-2) var(--e-2); }
.sous-menu ul { list-style: none; margin: 0; padding: 0; display: grid; }
.sous-menu li a { display: flex; align-items: center; gap: var(--e-3); min-height: 44px; padding: 6px var(--e-2); border-radius: var(--r-s); color: var(--texte); font-weight: 600; text-decoration: none; }
.sous-menu li a:hover, .sous-menu li a[aria-current] { background: var(--bleu-pale); color: var(--marine); }
.sous-menu--pro li a:hover, .sous-menu--pro li a[aria-current] { background: var(--or-pale); }
.sous-menu__icone { width: 34px; height: 34px; border-radius: var(--r-s); display: grid; place-items: center; background: var(--bleu-pale); color: var(--bleu); flex: none; }
.sous-menu__icone .icone { width: 18px; height: 18px; }
.sous-menu--pro .sous-menu__icone { background: var(--marine); color: var(--or-clair); }
.sous-menu__tout { display: flex; align-items: center; gap: 6px; margin-top: var(--e-2); padding: var(--e-3) var(--e-2) 0; border-top: 1px solid var(--bordure); font-weight: 700; text-decoration: none; color: var(--bleu); }
.sous-menu--pro .sous-menu__tout { color: var(--marine); }
.menu-bouton { display: none; }
.entete--lp { position: static; }
.entete__reassurance { margin: 0; color: var(--texte-doux); font-size: var(--t-xs); font-weight: 600; display: inline-flex; align-items: center; gap: 6px; }

@media (max-width: 1080px) {
  .entete__barre { min-height: 68px; }
  .logo__svg { height: 40px; }
  .menu-bouton {
    display: inline-flex; align-items: center; gap: var(--e-2); min-height: 44px; padding: 0 var(--e-4);
    border: 1.5px solid var(--bordure); border-radius: var(--r-s); background: var(--fond); color: var(--marine);
    font: inherit; font-weight: 700; cursor: pointer;
  }
  .menu-bouton__barres, .menu-bouton__barres::before, .menu-bouton__barres::after { display: block; width: 18px; height: 2px; background: currentColor; border-radius: 2px; position: relative; }
  .menu-bouton__barres::before, .menu-bouton__barres::after { content: ""; position: absolute; left: 0; }
  .menu-bouton__barres::before { top: -6px; }
  .menu-bouton__barres::after { top: 6px; }
  .js .nav { display: none; }
  .nav, .js .nav.nav--ouverte {
    display: flex; flex-direction: column; align-items: stretch; gap: var(--e-1);
    position: absolute; left: 0; right: 0; top: 100%; background: var(--fond); border-bottom: 1px solid var(--bordure);
    padding: var(--e-3) var(--gouttiere) var(--e-5); box-shadow: var(--ombre-2); max-height: calc(100dvh - 68px); overflow-y: auto;
  }
  .entete { position: sticky; }
  .entete__barre { position: static; }
  .sous-menu { flex-wrap: wrap; margin: 4px 0; }
  .sous-menu__lien, .nav__lien { min-height: 52px; font-size: var(--t-m); justify-content: flex-start; }
  .sous-menu__lien { flex: 1; }
  .sous-menu__bascule { width: 52px; min-height: 52px; }
  .sous-menu__panneau { position: static; transform: none; width: 100%; box-shadow: none; border: 0; border-top: 1px solid var(--bordure); border-radius: 0 0 6px 6px; padding: var(--e-2) var(--e-3) var(--e-3); margin: 0; background: var(--fond); }
  .sous-menu__panneau::before { display: none; }
  .sous-menu--pro .sous-menu__panneau { border-left-color: var(--or); }
  .nav__action { margin: var(--e-3) 0 0; }
  .nav__lien[aria-current], .sous-menu__lien[aria-current] { box-shadow: inset 3px 0 0 var(--or); border-radius: 0; }
}
@media (max-width: 420px) { .logo__svg { height: 36px; } .entete__reassurance { display: none; } }

/* ---------- Boutons ---------- */
.bouton {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--e-2);
  min-height: 52px; padding: 0 var(--e-5); border-radius: var(--r-s); border: 2px solid transparent;
  font: inherit; font-size: var(--t-s); font-weight: 700; line-height: 1.2; text-align: center;
  text-decoration: none; cursor: pointer; transition: background var(--duree) var(--courbe), transform var(--duree) var(--courbe), box-shadow var(--duree) var(--courbe);
}
.bouton:active { transform: scale(0.98); }
.bouton--action, .bouton--plein { background: var(--or-clair); color: var(--marine); box-shadow: 0 8px 18px -10px rgba(138, 109, 16, 0.8); }
.bouton--action:hover, .bouton--plein:hover { background: var(--or-survol); color: var(--marine); }
.bouton--secondaire { background: var(--fond); color: var(--marine); border-color: var(--marine); }
.bouton--prive { background: var(--bleu); color: #fff; box-shadow: 0 8px 18px -10px rgba(21, 101, 168, 0.8); }
.bouton--prive:hover { background: #0F5590; color: #fff; }
.bouton--pro { background: var(--marine); color: var(--or-clair); box-shadow: 0 8px 18px -10px rgba(11, 37, 69, 0.8); }
.bouton--pro:hover { background: var(--marine-2); color: var(--or-clair); }
.bouton--secondaire:hover { background: var(--surface); }
.bouton--petit { min-height: 44px; padding: 0 var(--e-4); }
.bouton--discret { background: none; color: var(--accent-texte); padding: 0; min-height: 44px; text-decoration: underline; }
.bouton[aria-busy="true"] { opacity: 0.7; cursor: progress; }
.lien-fort { font-weight: 700; color: var(--marine); }

/* ---------- Accueil ---------- */
.accueil { position: relative; padding-block: var(--e-8) 0; background:
  radial-gradient(1100px 420px at 0% -10%, var(--bleu-pale), transparent 70%),
  radial-gradient(900px 380px at 100% 0%, var(--or-pale), transparent 70%), var(--fond); }
.paysage { display: block; width: 100%; height: clamp(120px, 16vw, 220px); margin-top: var(--e-6); }
.accueil__grille { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.accueil h1 { max-width: 17ch; }
.chapeau { font-size: var(--t-l); color: var(--texte-doux); max-width: 60ch; line-height: 1.55; }
.accueil__actions { display: flex; flex-wrap: wrap; gap: var(--e-3); margin: var(--e-6) 0 var(--e-5); }
.coches { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--e-2); }
.coches li { display: flex; gap: var(--e-3); align-items: flex-start; font-weight: 600; font-size: var(--t-s); }
.coches .icone { color: var(--succes); }
.etiquette--neutre { background: var(--fond); color: var(--marine); box-shadow: inset 0 0 0 1px var(--bordure); }
.bilans { display: grid; gap: var(--e-3); }
.bilans__onglets { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 6px; background: var(--fond); border: 1px solid var(--bordure); border-radius: var(--r-plein); }
.bilans__onglets button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; border: 0; border-radius: var(--r-plein); background: none; font: inherit; font-weight: 700; font-size: var(--t-s); color: var(--texte-doux); cursor: pointer; }
.bilans__onglets button:hover { filter: brightness(0.96); }
#onglet-prive { background: var(--bleu-pale); color: var(--bleu); }
#onglet-pro { background: #EEF2F8; color: var(--marine); }
#onglet-prive[aria-selected="true"] { background: var(--bleu); color: #fff; }
#onglet-pro[aria-selected="true"] { background: var(--marine); color: var(--or-clair); }
.bilan { margin: 0; background: var(--fond); border: 1px solid var(--bordure); border-radius: var(--r-l); box-shadow: var(--ombre-2); overflow: hidden; }
.bilan__entete { display: grid; gap: 2px; padding: var(--e-5); color: #fff; }
.bilan--prive .bilan__entete { background: var(--bleu); border-bottom: 4px solid var(--bleu-vif); }
.bilan--pro .bilan__entete { background: var(--marine); border-bottom: 4px solid var(--or); }
.bilan__etiquette { font-size: var(--t-xs); font-weight: 700; color: #DCEEFC; }
.bilan--pro .bilan__etiquette { color: var(--or-clair); }
.bilan__titre { font-size: var(--t-l); font-weight: 700; }
.bilan__lignes { list-style: none; margin: 0; padding: var(--e-2) var(--e-5); display: grid; }
.bilan__lignes li { display: flex; gap: var(--e-4); align-items: flex-start; padding: var(--e-3) 0; border-bottom: 1px solid var(--bordure); font-size: var(--t-s); line-height: 1.45; color: var(--texte-doux); }
.bilan__lignes li:last-child { border-bottom: 0; }
.bilan__lignes strong { display: block; color: var(--marine); }
.bilan__icone { width: 40px; height: 40px; border-radius: var(--r-plein); display: grid; place-items: center; flex: none; background: var(--bleu-pale); color: var(--bleu); }
.bilan__icone .icone { width: 20px; height: 20px; }
.bilan--pro .bilan__icone { background: var(--marine); color: var(--or-clair); }
.bilan__detail { margin: 0 var(--e-5) var(--e-3); display: grid; gap: 6px; font-size: var(--t-s); }
.bilan__detail div { display: flex; justify-content: space-between; gap: var(--e-3); }
.bilan__detail dt { color: var(--texte-doux); }
.bilan__detail dd { margin: 0; font-weight: 700; color: var(--marine); font-variant-numeric: tabular-nums; white-space: nowrap; }
.bilan__total { display: flex; justify-content: space-between; align-items: baseline; gap: var(--e-3); margin: 0 var(--e-5); padding: var(--e-4); border-radius: var(--r-m); background: var(--bleu-pale); font-weight: 700; color: var(--marine); }
.bilan--pro .bilan__total { background: var(--or-pale); }
.bilan__total strong { font-size: var(--t-2xl); font-weight: 800; color: var(--succes); font-variant-numeric: tabular-nums; white-space: nowrap; }
.bilan__note { margin: 0; padding: var(--e-3) var(--e-5) var(--e-4); font-size: var(--t-xs); color: var(--texte-doux); }
@media (max-width: 900px) { .accueil__grille { grid-template-columns: 1fr; } .accueil { padding-block: var(--e-6) 0; } }

.domaines { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-5); }
.domaine { padding: var(--e-6) var(--e-5); border: 1px solid var(--bordure); border-radius: var(--r-l); background: var(--fond); box-shadow: var(--ombre-1); }
.domaine__icone { width: 56px; height: 56px; border-radius: var(--r-m); display: grid; place-items: center; background: var(--marine); color: var(--or-clair); margin-bottom: var(--e-4); }
.domaine p { color: var(--texte-doux); }
.domaine__exemples { font-size: var(--t-xs); font-weight: 600; color: var(--or-texte) !important; margin: 0; }
@media (max-width: 860px) { .domaines { grid-template-columns: 1fr; } }

.portes { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-5); }
.porte { position: relative; display: flex; flex-direction: column; gap: var(--e-3); padding: clamp(24px, 3.5vw, 40px); border-radius: var(--r-l); overflow: hidden; box-shadow: var(--ombre-2); }
.porte--prive { background: linear-gradient(160deg, #F4FAFF 0%, var(--bleu-ciel) 100%); color: var(--texte); border: 1px solid var(--bleu-ciel); }
.porte--pro { background: linear-gradient(160deg, var(--marine-2) 0%, var(--marine) 100%); color: #DCE6F4; border: 1px solid var(--marine); }
.porte::after { content: ""; position: absolute; inset: 0 0 auto 0; height: 5px; background: var(--bleu-vif); }
.porte--pro::after { background: var(--or); }
.porte__sur-titre { display: inline-flex; align-items: center; gap: 6px; font-size: var(--t-xs); font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.porte--prive .porte__sur-titre { color: var(--bleu); }
.porte--pro .porte__sur-titre { color: var(--or-clair); }
.porte__titre { font-size: var(--t-2xl); font-weight: 800; margin: 0; }
.porte--pro .porte__titre { color: #fff; }
.situations { list-style: none; margin: var(--e-2) 0 var(--e-4); padding: 0; display: grid; gap: var(--e-2); }
.situations a {
  display: flex; align-items: center; justify-content: space-between; gap: var(--e-3); min-height: 52px; padding: 10px var(--e-4);
  border-radius: var(--r-m); font-weight: 600; text-decoration: none; transition: transform var(--duree) var(--courbe), background var(--duree) var(--courbe);
}
.situations a::after { content: "→"; font-weight: 700; flex: none; }
.situations a:hover { transform: translateX(4px); }
.porte--prive .situations a { background: rgba(255, 255, 255, 0.85); color: var(--marine); }
.porte--prive .situations a:hover { background: #fff; }
.porte--pro .situations a { background: rgba(255, 255, 255, 0.08); color: #fff; }
.porte--pro .situations a::after { color: var(--or-clair); }
.porte--pro .situations a:hover { background: rgba(255, 255, 255, 0.14); }
.porte__action { margin-top: auto; display: inline-flex; align-items: center; gap: var(--e-2); align-self: flex-start; min-height: 48px; padding: 0 var(--e-5); border-radius: var(--r-s); font-weight: 700; text-decoration: none; }
.porte--prive .porte__action { background: var(--bleu); color: #fff; }
.porte--pro .porte__action { background: var(--or-clair); color: var(--marine); }
@media (max-width: 820px) { .portes { grid-template-columns: 1fr; } }

.atouts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--e-5); }
.atouts > div { display: grid; align-content: start; gap: var(--e-2); }
.atouts h3 { margin: var(--e-2) 0 0; }
.atouts p { color: var(--texte-doux); margin: 0; font-size: var(--t-s); }
.atout__icone { width: 48px; height: 48px; border-radius: var(--r-plein); display: grid; place-items: center; background: var(--or-pale); color: var(--or-texte); }
@media (max-width: 960px) { .atouts { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .atouts { grid-template-columns: 1fr; } }

/* ---------- Bande de confiance ---------- */
.confiance { border-block: 1px solid var(--bordure); background: var(--fond); }
.confiance__liste { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--e-5); padding-block: var(--e-5); }
.confiance__liste > div { display: flex; gap: var(--e-3); align-items: flex-start; }
.confiance__liste .icone { color: var(--or-texte); }
.confiance__liste p { margin: 0; font-size: var(--t-s); color: var(--texte-doux); line-height: 1.45; }
.confiance__liste strong { display: block; color: var(--marine); }
@media (max-width: 900px) { .confiance__liste { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .confiance__liste { grid-template-columns: 1fr; } }

/* ---------- Blocs ---------- */
.bloc { padding-block: clamp(48px, 7vw, 88px); }
.bloc--serre { padding-top: var(--e-6); }
.bloc--teinte { background: var(--surface); }
.bloc__entete { max-width: 680px; margin-bottom: var(--e-6); }
.bloc__entete p { color: var(--texte-doux); margin: 0; }
.bloc__entete--ligne { max-width: none; display: flex; justify-content: space-between; align-items: baseline; gap: var(--e-4); flex-wrap: wrap; }
.deux-colonnes { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(32px, 5vw, 64px); }
@media (max-width: 860px) { .deux-colonnes { grid-template-columns: 1fr; } }

.etiquette { display: inline-flex; align-items: center; gap: 6px; font-size: var(--t-xs); font-weight: 700; padding: 6px 14px; border-radius: var(--r-plein); margin-bottom: var(--e-4); }
.etiquette--prive { background: var(--bleu-pale); color: var(--bleu); }
.etiquette--pro { background: var(--marine); color: var(--or-clair); }

.hero-hub { padding-block: var(--e-7) var(--e-5); background: linear-gradient(180deg, var(--accent-pale), var(--fond)); }
.theme-pro .hero-hub { background: linear-gradient(180deg, #EEF2F8, var(--fond)); }

/* ---------- Catalogue et cartes produit ---------- */
.filtres { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--e-3); margin-bottom: var(--e-6); }
.filtre {
  min-height: 46px; padding: 0 var(--e-5); border-radius: var(--r-plein); border: 1.5px solid var(--bordure);
  background: var(--fond); color: var(--texte); font: inherit; font-size: var(--t-s); font-weight: 600; cursor: pointer;
  transition: background var(--duree) var(--courbe), border-color var(--duree) var(--courbe), color var(--duree) var(--courbe);
}
.filtre:hover { border-color: var(--marine); }
.filtre[aria-pressed="true"] { background: var(--marine); border-color: var(--marine); color: #fff; }
.catalogue__statut { position: absolute; left: -9999px; }

.cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); gap: var(--e-5); }
.carte {
  --bande: var(--bleu-vif); --encre: var(--bleu); --pastille: var(--bleu-pale);
  position: relative; display: flex; flex-direction: column; gap: var(--e-3);
  background: var(--fond); border: 1px solid var(--bordure); border-radius: var(--r-l); padding: var(--e-6) var(--e-5) var(--e-5);
  box-shadow: var(--ombre-1); overflow: hidden; transition: transform var(--duree) var(--courbe), box-shadow var(--duree) var(--courbe);
}
.carte::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 10px; background: var(--bande); }
.carte:hover { transform: translateY(-3px); box-shadow: var(--ombre-2); }
/* Privé : quatre bleus, un par catégorie */
.carte--prive.carte--cat0 { --bande: #3A9AE0; --encre: #1565A8; --pastille: #EAF4FD; }
.carte--prive.carte--cat1 { --bande: #1565A8; --encre: #1565A8; --pastille: #E3EEF9; }
.carte--prive.carte--cat2 { --bande: #6CB8EC; --encre: #135E9C; --pastille: #EDF6FD; }
.carte--prive.carte--cat3 { --bande: #2A7FA8; --encre: #1F6A8F; --pastille: #E6F2F7; }
.carte--prive.carte--cat4 { --bande: #C9A227; --encre: #1565A8; --pastille: #FBF5E2; }
/* Pro : marine, or et ardoise */
.carte--pro.carte--cat0 { --bande: #C9A227; --encre: #0B2545; --pastille: #FBF5E2; }
.carte--pro.carte--cat1 { --bande: #0B2545; --encre: #0B2545; --pastille: #EEF2F8; }
.carte--pro.carte--cat2 { --bande: #3D5A80; --encre: #2F4A6D; --pastille: #EDF1F6; }
.carte__badge { position: absolute; top: 22px; right: 18px; font-size: var(--t-xs); font-weight: 700; padding: 4px 12px; border-radius: var(--r-s); background: var(--or-clair); color: var(--marine); }
.carte__icone { width: 64px; height: 64px; border-radius: var(--r-plein); display: grid; place-items: center; background: var(--pastille); color: var(--encre); }
.carte__icone .icone { width: 28px; height: 28px; }
.carte--pro .carte__icone { background: var(--marine); color: var(--or-clair); }
.carte__titre { font-size: var(--t-xl); color: var(--encre); margin: var(--e-2) 0 0; }
.carte__desc { color: var(--texte-doux); margin: 0; }
.carte__points { list-style: none; padding: 0; margin: var(--e-2) 0 var(--e-3); display: grid; gap: var(--e-2); flex: 1; align-content: start; }
.carte__points li { display: flex; gap: var(--e-3); align-items: flex-start; font-size: var(--t-s); line-height: 1.5; }
.carte__points .icone { color: var(--encre); margin-top: 2px; stroke-width: 3; }
.carte--pro .carte__points .icone { color: var(--or-texte); }
.carte__bouton {
  display: flex; align-items: center; justify-content: center; gap: var(--e-2); min-height: 52px; padding: 0 var(--e-4);
  border-radius: var(--r-s); background: var(--encre); color: #fff; font-weight: 700; text-decoration: none; text-align: center;
  transition: filter var(--duree) var(--courbe);
}
.carte__bouton:hover { color: #fff; filter: brightness(1.15); }
.carte--pro .carte__bouton { background: var(--marine); color: var(--or-clair); }
.carte--pro .carte__bouton:hover { color: #fff; }
.carte[hidden] { display: none !important; }

/* ---------- Étapes et FAQ ---------- */
.etapes { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-5); counter-reset: etape; }
.etapes li { counter-increment: etape; padding: var(--e-5); background: var(--fond); border: 1px solid var(--bordure); border-radius: var(--r-m); }
.etapes li::before { content: counter(etape); display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--r-plein); background: var(--marine); color: var(--or-clair); font-weight: 800; margin-bottom: var(--e-4); }
.etapes p { color: var(--texte-doux); margin: 0; }
.etapes--compact { margin-bottom: var(--e-6); }
.etapes + .centre { margin-top: var(--e-7, 40px); }
@media (max-width: 760px) { .etapes { grid-template-columns: 1fr; } }

.faq details, .texte-long details { background: var(--fond); border: 1px solid var(--bordure); border-radius: var(--r-m); margin-bottom: var(--e-3); }
.faq summary, .texte-long summary { cursor: pointer; font-weight: 700; color: var(--marine); padding: var(--e-4) var(--e-5); min-height: 44px; list-style: none; display: flex; justify-content: space-between; gap: var(--e-4); align-items: center; }
.faq summary::-webkit-details-marker, .texte-long summary::-webkit-details-marker { display: none; }
.faq summary::after, .texte-long summary::after { content: "+"; font-size: var(--t-xl); font-weight: 600; color: var(--or-texte); line-height: 1; transition: transform var(--duree) var(--courbe); }
.faq details[open] summary::after, .texte-long details[open] summary::after { transform: rotate(45deg); }
.faq__reponse, .faq details > p, .texte-long details > p { padding: 0 var(--e-5) var(--e-2); color: var(--texte-doux); }
.faq__reponse p { margin: 0 0 var(--e-3); }

.cartes-articles { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: var(--e-5); }
.carte-article { height: 100%; display: flex; flex-direction: column; gap: var(--e-2); padding: var(--e-5); border: 1px solid var(--bordure); border-radius: var(--r-m); text-decoration: none; color: var(--texte); background: var(--fond); box-shadow: var(--ombre-1); transition: box-shadow var(--duree) var(--courbe), transform var(--duree) var(--courbe); }
.carte-article:hover { box-shadow: var(--ombre-2); transform: translateY(-2px); color: var(--texte); }
.carte-article__titre { font-weight: 700; font-size: var(--t-l); color: var(--marine); line-height: 1.3; }
.carte-article__desc { color: var(--texte-doux); font-size: var(--t-s); flex: 1; }
.carte-article__date { color: var(--texte-doux); font-size: var(--t-xs); }
.badge { align-self: flex-start; background: var(--or-pale); color: var(--or-texte); font-size: var(--t-xs); font-weight: 700; padding: 3px 12px; border-radius: var(--r-plein); }

.bandeau { background: var(--marine); color: #DCE6F4; padding-block: var(--e-7); border-top: 4px solid var(--or); }
.bandeau--prive { background: var(--bleu); border-top-color: var(--bleu-vif); color: #EAF4FD; }
.bandeau h2 { color: #fff; margin-bottom: var(--e-2); }
.bandeau p { margin: 0; max-width: 60ch; }
.bandeau__contenu { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--e-5); }

/* ---------- Pages produit ---------- */
.hero-produit, .produit { padding-block: var(--e-6) var(--e-8); background: linear-gradient(180deg, var(--accent-pale) 0, var(--fond) 520px); }
.theme-pro .hero-produit, .theme-pro .produit { background: linear-gradient(180deg, #EEF2F8 0, var(--fond) 520px); }
.hero-produit__grille, .produit__grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 540px); gap: clamp(32px, 5vw, 64px); align-items: start; }
.panneau-form, .produit__form { background: var(--fond); border: 1px solid var(--bordure); border-top: 6px solid var(--accent-decor); border-radius: var(--r-l); box-shadow: var(--ombre-2); padding: clamp(20px, 3vw, 32px); }
@media (min-width: 981px) { .panneau-form, .produit__form { position: sticky; top: 100px; } .produit--lp .produit__form { position: static; } }
@media (max-width: 980px) { .hero-produit__grille, .produit__grille { grid-template-columns: 1fr; } .produit--lp .points { display: none; } }
.produit--lp { padding-top: var(--e-6); }
.hero-produit h1, .produit h1 { max-width: 22ch; }
.fil { font-size: var(--t-xs); color: var(--texte-doux); margin-bottom: var(--e-4); display: flex; flex-wrap: wrap; gap: 6px; }
.fil a { font-weight: 600; color: var(--texte-doux); }
.fil [aria-current] { color: var(--texte); font-weight: 600; }
.points { list-style: none; padding: 0; margin: var(--e-5) 0 0; display: grid; gap: var(--e-3); }
.points li { position: relative; padding-left: 36px; font-weight: 600; }
.points li::before {
  content: ""; position: absolute; left: 0; top: 1px; width: 24px; height: 24px; border-radius: var(--r-plein); background: var(--accent-decor);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='12'/%3E%3C/svg%3E");
}
.points li::after { content: ""; position: absolute; left: 7px; top: 7px; width: 10px; height: 6px; border-left: 2.5px solid #fff; border-bottom: 2.5px solid #fff; transform: rotate(-45deg); }
.theme-pro .points li::after { border-color: var(--marine); }
.form-titre { font-size: var(--t-xl); margin-bottom: var(--e-2); }
.form-sous-titre { color: var(--texte-doux); font-size: var(--t-s); }

/* ---------- Texte long ---------- */
.texte-long { max-width: 76ch; }
.texte-long h2 { margin-top: var(--e-7); }
.texte-long > h2:first-child { margin-top: 0; }
.texte-long ul, .texte-long ol { padding-left: 1.25em; }
.texte-long li { margin-bottom: var(--e-2); }
.texte-long__action { margin-top: var(--e-6); }
table { width: 100%; border-collapse: collapse; margin: 0 0 var(--e-5); font-variant-numeric: tabular-nums; background: var(--fond); border-radius: var(--r-m); overflow: hidden; box-shadow: 0 0 0 1px var(--bordure); font-size: var(--t-s); }
th, td { text-align: left; padding: var(--e-3) var(--e-4); border-bottom: 1px solid var(--bordure); vertical-align: top; }
th { background: var(--marine); color: #fff; font-weight: 700; }
tr:last-child td { border-bottom: 0; }
tr:nth-child(even) td { background: var(--surface); }
@media (max-width: 640px) { table { display: block; overflow-x: auto; } }
.a-completer { background: var(--attention-fond); padding: var(--e-2) var(--e-3); border-radius: var(--r-s); border-left: 4px solid var(--or); }

.faits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-4); margin: 0; }
.faits div { background: var(--fond); border: 1px solid var(--bordure); border-radius: var(--r-m); padding: var(--e-4) var(--e-5); }
.faits dt { font-weight: 700; color: var(--marine); margin-bottom: var(--e-1); }
.faits dd { margin: 0; color: var(--texte-doux); font-size: var(--t-s); }
.faits--colonne { grid-template-columns: 1fr; margin-bottom: var(--e-5); }
@media (max-width: 760px) { .faits { grid-template-columns: 1fr; } }

/* ---------- Formulaires ---------- */
.formulaire { display: grid; gap: var(--e-4); }
.formulaire fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: var(--e-4); min-width: 0; }
.formulaire legend { font-weight: 700; font-size: var(--t-l); color: var(--marine); padding: 0; margin-bottom: var(--e-2); width: 100%; }
.etape__num { display: block; font-weight: 600; font-size: var(--t-xs); color: var(--texte-doux); margin-bottom: var(--e-2); }
.etape__num::after { content: ""; display: block; height: 6px; margin-top: 6px; border-radius: var(--r-plein); background: linear-gradient(90deg, var(--accent-decor) var(--avance, 50%), var(--bordure) var(--avance, 50%)); }
.etape[data-etape="2"] .etape__num { --avance: 100%; }
.formulaire__intro { color: var(--texte-doux); margin: 0; }
.grille-champs { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-4); align-items: start; }
.champ--large { grid-column: 1 / -1; }
@media (max-width: 520px) { .grille-champs { grid-template-columns: 1fr; } }
.champ { display: grid; gap: 6px; min-width: 0; }
.champ label { font-weight: 600; font-size: var(--t-s); }
.facultatif { font-weight: 400; color: var(--texte-doux); }
.champ input, .champ select, .champ textarea {
  width: 100%; min-height: 50px; padding: 10px 14px; font: inherit; font-size: var(--t-s); color: var(--texte);
  background: var(--fond); border: 1.5px solid var(--bordure-champ); border-radius: var(--r-s);
  transition: border-color var(--duree) var(--courbe), box-shadow var(--duree) var(--courbe);
}
.champ textarea { min-height: 110px; resize: vertical; }
.champ input:hover, .champ select:hover, .champ textarea:hover { border-color: var(--marine); }
.champ input:focus-visible, .champ select:focus-visible, .champ textarea:focus-visible { outline: none; border-color: var(--bleu); box-shadow: 0 0 0 3px rgba(21, 101, 168, 0.28); }
.champ input[aria-invalid="true"], .champ select[aria-invalid="true"], .champ textarea[aria-invalid="true"] { border-color: var(--erreur); box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.15); }
.champ__aide { font-size: var(--t-xs); color: var(--texte-doux); margin: 0; }
.champ__erreur { font-size: var(--t-xs); color: var(--erreur); margin: 0; font-weight: 700; }
.consentement { display: grid; grid-template-columns: 24px 1fr; gap: var(--e-3); align-items: start; font-size: var(--t-xs); color: var(--texte-doux); line-height: 1.5; }
.consentement input { width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--marine); cursor: pointer; }
.consentement input[aria-invalid="true"] { outline: 2px solid var(--erreur); outline-offset: 2px; }
.formulaire__note { font-size: var(--t-xs); color: var(--texte-doux); margin: 0; text-align: center; }
.formulaire .bouton--plein, .formulaire .bouton--action { width: 100%; }

/* ---------- Simulateur 3a et garantie de loyer ---------- */
.simulateur, .calcul-loyer { background: var(--fond); border: 1px solid var(--bordure); border-radius: var(--r-l); padding: clamp(20px, 3vw, 32px); box-shadow: var(--ombre-2); }
.simulateur { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: clamp(24px, 4vw, 40px); margin: var(--e-6) 0 var(--e-7); align-items: start; }
.simulateur__entrees { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-4); }
.simulateur__entrees .champ:nth-child(n+4) { grid-column: 1 / -1; }
.simulateur__resultat { background: var(--marine); color: #DCE6F4; padding: clamp(24px, 3vw, 32px); border-radius: var(--r-m); border-top: 5px solid var(--or); }
.resultat__label { margin: 0 0 var(--e-2); font-weight: 600; }
.resultat__montant { margin: 0; font-weight: 800; font-size: clamp(2.25rem, 5vw, 3.25rem); line-height: 1.05; color: var(--or-clair); font-variant-numeric: tabular-nums; white-space: nowrap; letter-spacing: -0.02em; }
.resultat__detail { margin: var(--e-4) 0; }
.resultat__avertissement { font-size: var(--t-xs); color: #B9C8DD; margin: 0; }
.simulateur + .formulaire, .calcul-loyer + .formulaire { max-width: 780px; background: var(--fond); border: 1px solid var(--bordure); border-top: 6px solid var(--accent-decor); border-radius: var(--r-l); padding: clamp(20px, 3vw, 32px); box-shadow: var(--ombre-2); }
@media (max-width: 900px) { .simulateur { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .simulateur__entrees { grid-template-columns: 1fr; } }
.calcul-loyer { margin: var(--e-6) 0; max-width: 780px; display: grid; gap: var(--e-4); }
.calcul-loyer .champ { max-width: 280px; }
.calcul-loyer__comparaison { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-3); }
.calcul-loyer__comparaison > div { padding: var(--e-5); border-radius: var(--r-m); background: var(--surface); }
.calcul-loyer__comparaison p { margin: 0; }
.calcul-loyer__solution { background: var(--marine) !important; color: #DCE6F4; }
.calcul-loyer__label { font-weight: 700; font-size: var(--t-s); }
.calcul-loyer__chiffre { font-weight: 800; font-size: clamp(1.75rem, 4vw, 2.25rem); line-height: 1.15; margin-block: var(--e-1) !important; font-variant-numeric: tabular-nums; color: var(--marine); }
.calcul-loyer__solution .calcul-loyer__chiffre { color: var(--or-clair); }
@media (max-width: 520px) { .calcul-loyer__comparaison { grid-template-columns: 1fr; } }

/* ---------- Contact ---------- */
.contact { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(32px, 5vw, 64px); align-items: start; }
.contact__ligne { display: flex; align-items: center; gap: var(--e-3); font-weight: 700; font-size: var(--t-l); color: var(--marine); user-select: all; }
.contact__ligne .icone { color: var(--or-texte); }
@media (max-width: 860px) { .contact { grid-template-columns: 1fr; } }

/* ---------- Pages d'accueil Privé et Pro ---------- */
.hero-univers { padding-block: var(--e-8) 0; background: linear-gradient(180deg, var(--accent-pale), var(--fond)); }
.theme-pro .hero-univers { background: linear-gradient(160deg, #EEF2F8 0%, var(--fond) 70%); }
.hero-univers__grille { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: clamp(32px, 5vw, 64px); align-items: center; }
.hero-univers h1 { max-width: 20ch; }
.promesses { list-style: none; margin: 0; padding: var(--e-5); display: grid; gap: var(--e-4); background: var(--fond); border: 1px solid var(--bordure); border-radius: var(--r-l); box-shadow: var(--ombre-2); }
.promesses--prive { border-top: 6px solid var(--bleu-vif); }
.promesses--pro { background: var(--marine); border-color: var(--marine); border-top: 6px solid var(--or); color: #DCE6F4; }
.promesses li { display: flex; gap: var(--e-4); align-items: flex-start; font-size: var(--t-s); line-height: 1.5; color: var(--texte-doux); }
.promesses--pro li { color: #C9D5E6; }
.promesses strong { display: block; color: var(--marine); font-size: var(--t-m); }
.promesses--pro strong { color: #fff; }
.promesses .icone { width: 40px; height: 40px; padding: 9px; border-radius: var(--r-plein); background: var(--bleu-pale); color: var(--bleu); }
.promesses--pro .icone { background: rgba(226, 190, 82, 0.15); color: var(--or-clair); }
@media (max-width: 900px) { .hero-univers__grille { grid-template-columns: 1fr; } .hero-univers { padding-block: var(--e-6) 0; } }
.paysage--court { height: clamp(100px, 13vw, 180px); }
.domaine--prive .domaine__icone { background: var(--bleu-pale); color: var(--bleu); }
.catalogue__categorie + .catalogue__categorie { margin-top: var(--e-7); }
.catalogue__titre { display: flex; align-items: center; gap: var(--e-3); font-size: var(--t-xl); margin-bottom: var(--e-5); }
.catalogue__titre::after { content: ""; flex: 1; height: 1px; background: var(--bordure); }

/* ---------- Carrousel de cas types ---------- */
.carrousel__commandes { display: flex; justify-content: space-between; align-items: center; gap: var(--e-4); margin-bottom: var(--e-4); flex-wrap: wrap; }
.carrousel__mention { margin: var(--e-2) 0 0; font-size: var(--t-xs); color: var(--texte-doux); }
.carrousel__entete { display: flex; align-items: center; gap: var(--e-4); }
.carrousel__icone { width: 56px; height: 56px; border-radius: var(--r-m); display: grid; place-items: center; background: var(--bleu); color: #fff; flex: none; }
.carrousel--pro .carrousel__icone { background: var(--marine); color: var(--or-clair); }
.carrousel__surtitre { margin: 0; font-size: var(--t-xs); font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--bleu); }
.carrousel--pro .carrousel__surtitre { color: var(--or-texte); }
.carrousel__titre { margin: 0; font-size: var(--t-xl); font-weight: 800; color: var(--marine); line-height: 1.25; }
.carrousel__boutons { display: flex; gap: var(--e-2); }
.carrousel__bouton { width: 44px; height: 44px; display: grid; place-items: center; border-radius: var(--r-plein); border: 1.5px solid var(--bordure); background: var(--fond); color: var(--marine); cursor: pointer; }
.carrousel__bouton:hover { border-color: var(--marine); }
.carrousel__retour { transform: rotate(180deg); }
.carrousel__pause { width: 12px; height: 14px; border-left: 4px solid currentColor; border-right: 4px solid currentColor; }
.carrousel__bouton[aria-pressed="true"] .carrousel__pause { width: 0; height: 0; border-left: 12px solid currentColor; border-right: 0; border-top: 7px solid transparent; border-bottom: 7px solid transparent; margin-left: 3px; }
.carrousel__piste { list-style: none; margin: 0; padding: 10px 4px var(--e-4); display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 2 * var(--e-5)) / 3); gap: var(--e-5); overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: thin; }
@media (max-width: 960px) { .carrousel__piste { grid-auto-columns: calc((100% - var(--e-5)) / 2); } }
@media (max-width: 620px) { .carrousel__piste { grid-auto-columns: 88%; } }

/* ---------- Par où commencer ---------- */
.debuts { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-6); }
.debut__titre { display: inline-flex; align-items: center; gap: var(--e-2); font-size: var(--t-l); padding: 6px 16px; border-radius: var(--r-plein); }
.debut--prive .debut__titre { background: var(--bleu); color: #fff; }
.debut--pro .debut__titre { background: var(--marine); color: var(--or-clair); }
.debut--prive .faq details { border-left: 4px solid var(--bleu-vif); }
.debut--pro .faq details { border-left: 4px solid var(--or); }
.faq__reponse a { font-weight: 700; }
@media (max-width: 860px) { .debuts { grid-template-columns: 1fr; } }

/* ---------- Contact volant ---------- */
.contact-volant { position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 60; display: flex; flex-direction: column; align-items: flex-end; gap: var(--e-3); }
.contact-volant__bouton { display: inline-flex; align-items: center; gap: var(--e-2); min-height: 52px; padding: 0 var(--e-5) 0 var(--e-4); border: 2px solid var(--or-clair); border-radius: var(--r-plein); background: var(--marine); color: #fff; font: inherit; font-weight: 700; cursor: pointer; box-shadow: var(--ombre-2); }
.contact-volant__bouton .icone { color: var(--or-clair); }
.contact-volant__bouton:hover { background: var(--marine-2); }
.contact-volant__panneau { width: min(360px, calc(100vw - 32px)); max-height: calc(100dvh - 120px); overflow-y: auto; background: var(--fond); border: 1px solid var(--bordure); border-top: 5px solid var(--or); border-radius: var(--r-l); box-shadow: 0 24px 60px -20px rgba(11, 37, 69, 0.5); padding: var(--e-5); display: grid; gap: var(--e-3); }
.contact-volant__entete { display: flex; justify-content: space-between; align-items: center; gap: var(--e-3); }
.contact-volant__titre { margin: 0; font-weight: 800; color: var(--marine); font-size: var(--t-l); }
.contact-volant__fermer { width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: var(--r-plein); background: var(--surface); color: var(--marine); cursor: pointer; flex: none; }
.contact-volant__whatsapp { display: flex; align-items: center; justify-content: center; gap: var(--e-2); min-height: 52px; border-radius: var(--r-s); background: #075E54; color: #fff; font-weight: 700; text-decoration: none; }
.contact-volant__whatsapp:hover { background: #054A42; color: #fff; }
.contact-volant__ou { margin: 0; text-align: center; font-size: var(--t-xs); font-weight: 600; color: var(--texte-doux); }
.contact-volant .formulaire { gap: var(--e-3); }
.contact-volant .champ input, .contact-volant .champ textarea { min-height: 44px; }
.contact-volant .champ textarea { min-height: 80px; }
@media (max-width: 520px) { .contact-volant__bouton span { position: absolute; left: -9999px; } .contact-volant__bouton { padding: 0 var(--e-4); } }

/* ---------- Glossaire ---------- */
.filtres--gauche { justify-content: flex-start; margin-bottom: var(--e-4); }
.lettres { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: var(--e-6); position: sticky; top: 77px; background: var(--fond); padding-block: var(--e-2); z-index: 5; }
.lettres a { display: grid; place-items: center; min-width: 40px; min-height: 40px; border-radius: var(--r-s); border: 1px solid var(--bordure); font-weight: 700; color: var(--marine); text-decoration: none; }
.lettres a:hover { background: var(--marine); color: var(--or-clair); }
.glossaire__lettre { margin-bottom: var(--e-6); }
.glossaire__lettre h2 { font-size: var(--t-2xl); color: var(--or-texte); border-bottom: 2px solid var(--bordure); padding-bottom: var(--e-2); scroll-margin-top: 150px; }
.glossaire dl { margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: var(--e-4); }
.terme { padding: var(--e-4) var(--e-5); border: 1px solid var(--bordure); border-radius: var(--r-m); background: var(--fond); border-top: 4px solid var(--bleu-vif); scroll-margin-top: 150px; }
.terme--prevoyance { border-top-color: var(--marine); }
.terme--placement { border-top-color: var(--or); }
.terme--immobilier { border-top-color: var(--succes); }
.terme:target { box-shadow: 0 0 0 3px var(--or-clair); }
.terme dt { display: flex; justify-content: space-between; gap: var(--e-3); align-items: baseline; font-weight: 700; color: var(--marine); font-size: var(--t-l); margin-bottom: var(--e-2); }
.terme__cat { font-size: var(--t-xs); font-weight: 700; color: var(--texte-doux); white-space: nowrap; }
.terme dd { margin: 0; color: var(--texte-doux); font-size: var(--t-s); }
.terme dd a { font-weight: 700; white-space: nowrap; }
@media (max-width: 1080px) { .lettres { top: 69px; } }

/* ---------- Article ---------- */
.progression-lecture { position: fixed; top: 0; left: 0; right: 0; height: 4px; z-index: 70; background: transparent; }
.progression-lecture span { display: block; height: 100%; width: 0; background: var(--or); transition: width 80ms linear; }
.article__entete { padding-block: var(--e-7) var(--e-6); background: linear-gradient(180deg, var(--surface), var(--fond)); }
.article__entete h1 { max-width: 28ch; margin-top: var(--e-3); }
.article__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--texte-doux); font-size: var(--t-s); margin: 0; }
.article__grille { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: clamp(32px, 5vw, 64px); align-items: start; padding-bottom: var(--e-8); }
.article__cote { position: sticky; top: 100px; display: grid; gap: var(--e-4); }
.sommaire { border: 1px solid var(--bordure); border-radius: var(--r-m); padding: var(--e-4); background: var(--fond); }
.sommaire__titre { font-weight: 800; color: var(--marine); margin: 0 0 var(--e-2); }
.sommaire ol { margin: 0; padding-left: 1.2em; display: grid; gap: 6px; font-size: var(--t-s); }
.sommaire a { color: var(--texte-doux); text-decoration: none; }
.sommaire a:hover, .sommaire a.actif { color: var(--marine); font-weight: 700; }
.mini-cta { padding: var(--e-4); border-radius: var(--r-m); background: var(--marine); color: #fff; border-top: 4px solid var(--or); }
.mini-cta p { font-weight: 700; margin: 0 0 var(--e-3); }
.article__corps { max-width: 72ch; font-size: 1.125rem; line-height: 1.75; }
.article__corps h2 { margin-top: var(--e-7); scroll-margin-top: 100px; }
.article__corps h2:first-child { margin-top: 0; }
.article__corps ul, .article__corps ol { padding-left: 1.25em; }
.article__corps li { margin-bottom: var(--e-2); }
.article__corps a { font-weight: 600; }
@media (max-width: 960px) { .article__grille { grid-template-columns: 1fr; } .article__cote { position: static; } .mini-cta { display: none; } }
.retenir { margin-bottom: var(--e-6); padding: var(--e-5); border-radius: var(--r-l); background: var(--bleu-pale); border: 1px solid var(--bleu-ciel); }
.retenir__titre { display: flex; align-items: center; gap: var(--e-2); font-weight: 800; color: var(--marine); margin: 0 0 var(--e-2); }
.retenir ul { margin: 0; font-size: var(--t-m); }
.encadre { margin: var(--e-5) 0; padding: var(--e-4) var(--e-5); border-left: 5px solid var(--or); background: var(--or-pale); border-radius: 0 var(--r-m) var(--r-m) 0; font-size: var(--t-m); }
.encadre p { margin: 0 0 var(--e-2); }
.encadre p:last-child { margin: 0; }
.encadre__titre { font-weight: 800; color: var(--or-texte); }
.encart { margin-top: var(--e-7); padding: var(--e-6); background: var(--marine); color: #DCE6F4; border-radius: var(--r-l); border-top: 5px solid var(--or); }
.encart--milieu { margin: var(--e-6) 0; background: linear-gradient(135deg, var(--marine), var(--marine-2)); }
.encart__titre { font-weight: 800; font-size: var(--t-xl); color: #fff; margin-bottom: var(--e-2); }
.quiz { margin-top: var(--e-7); padding: var(--e-6); border: 2px solid var(--bordure); border-radius: var(--r-l); background: var(--surface); }
.quiz h2 { margin-top: 0; }
.quiz__score { font-weight: 700; color: var(--marine); margin: 0 0 var(--e-3); min-height: 1.5em; }
.quiz__question { padding: var(--e-4) 0; border-top: 1px solid var(--bordure); }
.quiz__affirmation { font-weight: 700; color: var(--marine); margin: 0 0 var(--e-3); }
.quiz__choix { display: flex; gap: var(--e-3); flex-wrap: wrap; }
.quiz__bouton { min-height: 44px; min-width: 96px; padding: 0 var(--e-5); border-radius: var(--r-plein); border: 1.5px solid var(--marine); background: var(--fond); color: var(--marine); font: inherit; font-weight: 700; cursor: pointer; }
.quiz__bouton:hover:not(:disabled) { background: var(--marine); color: var(--or-clair); }
.quiz__bouton:disabled { cursor: default; opacity: 0.55; }
.quiz__bouton.juste { background: var(--succes); border-color: var(--succes); color: #fff; opacity: 1; }
.quiz__bouton.faux { background: var(--erreur); border-color: var(--erreur); color: #fff; opacity: 1; }
.quiz__explication { margin: var(--e-3) 0 0; font-size: var(--t-s); color: var(--texte-doux); }
.article-une { display: grid; gap: var(--e-3); padding: clamp(24px, 4vw, 48px); border-radius: var(--r-l); background: linear-gradient(135deg, var(--marine), var(--marine-2)); color: #DCE6F4; text-decoration: none; border-top: 6px solid var(--or); box-shadow: var(--ombre-2); margin-bottom: var(--e-7); }
.article-une:hover { color: #DCE6F4; }
.article-une__etiquette { font-size: var(--t-xs); font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--or-clair); }
.article-une__titre { font-size: var(--t-2xl); font-weight: 800; color: #fff; line-height: 1.2; max-width: 30ch; }
.article-une__desc { max-width: 70ch; }
.article-une__action { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--or-clair); }
.blog__sous-titre { font-size: var(--t-xl); }
.carte-article__date { display: inline-flex; align-items: center; gap: 6px; }
.merci ul { padding-left: 1.25em; }

/* ---------- Pied de page ---------- */
.pied { background: var(--marine); color: #B9C8DD; padding-block: var(--e-7) var(--e-5); border-top: 4px solid var(--or); }
.pied a { color: #fff; text-decoration: none; }
.pied a:hover { color: var(--or-clair); text-decoration: underline; }
.pied__haut { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--e-6); margin-bottom: var(--e-6); }
.pied__marque { max-width: 380px; }
.pied__marque .logo__svg { height: 48px; margin-bottom: var(--e-3); }
.pied__liens { display: flex; flex-wrap: wrap; gap: var(--e-2) var(--e-6); align-items: center; font-weight: 700; }
.pied__liens a { min-height: 44px; display: inline-flex; align-items: center; }
.pied__legal { font-size: var(--t-xs); border-top: 1px solid rgba(255, 255, 255, 0.12); padding-top: var(--e-4); margin: 0; display: flex; flex-wrap: wrap; gap: var(--e-2) var(--e-5); }
.pied__legal a { color: #B9C8DD; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* ---------- Choix Particulier / Professionnel (accueil) ---------- */
.choix-univers { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 6px; margin-bottom: var(--e-5); background: var(--fond); border: 1px solid var(--bordure); border-radius: var(--r-plein); box-shadow: var(--ombre-1, 0 4px 14px -8px rgba(11, 37, 69, 0.3)); }
.choix-univers--centre { margin: var(--e-5) 0 0; }
.bloc__entete .choix-univers--centre { display: flex; width: max-content; max-width: 100%; }
.choix-univers__label { padding: 0 var(--e-2) 0 var(--e-3); font-size: var(--t-s); font-weight: 700; color: var(--texte-doux); }
.choix-univers__bouton { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 18px; border: 0; border-radius: var(--r-plein); font: inherit; font-weight: 700; font-size: var(--t-s); cursor: pointer; transition: background-color .2s, color .2s, box-shadow .2s; }
.choix-univers__bouton--prive { background: var(--bleu-pale); color: var(--bleu); }
.choix-univers__bouton--pro { background: #EEF2F8; color: var(--marine); }
.choix-univers__bouton--prive[aria-pressed="true"] { background: var(--bleu); color: #fff; box-shadow: 0 6px 14px -8px rgba(21, 101, 168, 0.9); }
.choix-univers__bouton--pro[aria-pressed="true"] { background: var(--marine); color: var(--or-clair); box-shadow: 0 6px 14px -8px rgba(11, 37, 69, 0.9); }
.choix-univers__bouton:hover { filter: brightness(0.96); }
.choix-univers__bouton:focus-visible { outline: 3px solid var(--or); outline-offset: 2px; }
.accueil--pro { background:
  radial-gradient(1100px 420px at 0% -10%, #E8EDF5, transparent 70%),
  radial-gradient(900px 380px at 100% 0%, var(--or-pale), transparent 70%), var(--fond); }
.accueil__bandeau { margin-top: var(--e-6); }
.bandeau-illu { display: block; width: 100%; height: clamp(150px, 19vw, 280px); }
.debuts--un { grid-template-columns: 1fr; max-width: 820px; }
@media (prefers-reduced-motion: no-preference) {
  [data-univers]:not([hidden]) { animation: apparition-univers .35s ease; }
}
@keyframes apparition-univers { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@media (max-width: 520px) {
  .choix-univers__label { width: 100%; padding: 4px 8px 0; }
  .choix-univers__bouton { flex: 1; justify-content: center; padding: 0 12px; }
}
.champs-duo { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-3); }
/* Exemples dans les champs : gris léger */
input::placeholder, textarea::placeholder { color: #A3AEBD; opacity: 1; font-weight: 400; }
.formulaire > [data-univers] { display: grid; gap: var(--e-4); }
/* Cartes produit entièrement cliquables */
.carte { cursor: pointer; }
.carte__bouton::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.carte:hover .carte__bouton { filter: brightness(1.15); }
.carte:focus-within { outline: 3px solid var(--or); outline-offset: 2px; }
/* Pastilles de réassurance au-dessus du catalogue */
.pastilles { list-style: none; padding: 0; margin: var(--e-4) 0 0; display: flex; flex-wrap: wrap; gap: var(--e-2); }
.pastilles li { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: var(--r-plein); background: var(--bleu-pale); color: var(--bleu); font-weight: 700; font-size: var(--t-s); }
.pastilles--pro li { background: var(--or-pale); color: var(--marine); }
.pastilles--pro .icone { color: var(--or-texte); }
.bloc--solutions { padding-top: var(--e-7, 48px); }

/* ---------- Cas types : cartes histoire ---------- */
.cas { --cas-fond: var(--bleu); --cas-fond-2: var(--bleu-vif); --cas-texte: #fff; --cas-pale: var(--bleu-pale); --cas-encre: var(--bleu);
  scroll-snap-align: start; display: flex; flex-direction: column; background: var(--fond); border: 1px solid var(--bordure); border-radius: var(--r-l); box-shadow: var(--ombre-1); overflow: hidden;
  transition: transform var(--duree) var(--courbe), box-shadow var(--duree) var(--courbe); }
.cas:hover { transform: translateY(-4px) rotate(-0.3deg); box-shadow: var(--ombre-2); }
.carrousel--pro .cas { --cas-fond: var(--marine); --cas-fond-2: #1C3A63; --cas-texte: #fff; --cas-pale: var(--or-pale); --cas-encre: var(--or-texte); }
.cas__entete { position: relative; display: flex; align-items: center; gap: var(--e-4); padding: var(--e-5); color: var(--cas-texte);
  background: radial-gradient(160px 100px at 100% 0%, rgba(255,255,255,0.18), transparent 70%), linear-gradient(135deg, var(--cas-fond), var(--cas-fond-2)); }
.carrousel--pro .cas__entete { border-bottom: 4px solid var(--or); }
.cas__icone { flex: none; width: 56px; height: 56px; border-radius: var(--r-plein); display: grid; place-items: center; background: #fff; color: var(--cas-fond); box-shadow: 0 6px 16px -8px rgba(0,0,0,0.5); }
.carrousel--pro .cas__icone { background: var(--or-clair); color: var(--marine); }
.cas__icone .icone { width: 26px; height: 26px; }
.cas__profil { margin: 0; font-weight: 800; font-size: var(--t-l); line-height: 1.25; color: inherit; }
.cas__tag { display: inline-block; margin-top: 6px; padding: 3px 10px; border-radius: var(--r-plein); background: rgba(255,255,255,0.18); font-size: var(--t-xs); font-weight: 700; }
.carrousel--pro .cas__tag { background: rgba(226,190,82,0.2); color: var(--or-clair); }
.cas__corps { flex: 1; display: flex; flex-direction: column; gap: var(--e-3); padding: var(--e-5); }
.cas__etape { display: flex; gap: var(--e-3); align-items: flex-start; }
.cas__etape p, .cas__resultat p { margin: 0; font-size: var(--t-s); line-height: 1.55; color: var(--texte-doux); }
.cas__etape strong, .cas__resultat strong { display: block; font-size: var(--t-xs); font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: var(--texte); margin-bottom: 2px; }
.cas__puce { flex: none; width: 28px; height: 28px; border-radius: var(--r-plein); display: grid; place-items: center; font-weight: 800; font-size: var(--t-s); background: var(--cas-pale); color: var(--cas-encre); }
.cas__etape--solution .cas__puce { background: var(--cas-fond); color: #fff; }
.carrousel--pro .cas__etape--solution .cas__puce { color: var(--or-clair); }
.cas__resultat { display: flex; gap: var(--e-3); align-items: flex-start; padding: var(--e-3) var(--e-4); border-radius: var(--r-m); background: #E7F5EC; border: 1px solid #BFE3CC; }
.cas__resultat .icone { flex: none; color: var(--succes); width: 24px; height: 24px; margin-top: 2px; }
.cas__resultat p { color: #1D5A35; font-weight: 600; }
.cas__resultat strong { color: var(--succes); }
.cas__lien { margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; padding: 10px 16px; border-radius: var(--r-plein); font-weight: 700; text-decoration: none; background: var(--cas-pale); color: var(--cas-fond); transition: background-color var(--duree), color var(--duree); }
.cas__lien:hover { background: var(--cas-fond); color: #fff; }
.carrousel--pro .cas__lien:hover { color: var(--or-clair); }
@media (prefers-reduced-motion: reduce) { .cas, .cas:hover { transition: none; transform: none; } }
.cas__entete { min-height: 132px; }

/* ---------- Obligations de l'employeur ---------- */
.obligations { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e-3); }
.obligations li { display: flex; gap: var(--e-4); align-items: flex-start; padding: var(--e-4) var(--e-5); background: var(--fond); border: 1px solid var(--bordure); border-left: 4px solid var(--or); border-radius: var(--r-m); color: var(--texte-doux); font-size: var(--t-s); line-height: 1.55; box-shadow: var(--ombre-1); transition: transform var(--duree) var(--courbe); }
.obligations li:hover { transform: translateX(4px); }
.obligations strong { display: block; color: var(--marine); font-size: var(--t-m); margin: 4px 0 2px; }
.obligations a { display: inline-block; margin-top: 4px; font-weight: 700; color: var(--marine); }
.obligations__icone { flex: none; width: 44px; height: 44px; border-radius: var(--r-plein); display: grid; place-items: center; background: var(--marine); color: var(--or-clair); }
.obligations__badge { display: inline-block; padding: 2px 10px; border-radius: var(--r-plein); background: var(--or-pale); color: var(--or-texte); font-size: var(--t-xs); font-weight: 800; letter-spacing: 0.03em; text-transform: uppercase; }
.obligations__badge--souvent { background: #EEF2F8; color: #2F4A6D; }
.obligations__intro { align-self: start; }
.checkup { margin-top: var(--e-5); padding: var(--e-5); border-radius: var(--r-l); color: #fff; background: radial-gradient(220px 140px at 100% 0%, rgba(226,190,82,0.25), transparent 70%), var(--marine); border-bottom: 4px solid var(--or); box-shadow: var(--ombre-2); }
.checkup__titre { display: flex; align-items: center; gap: var(--e-2); margin: 0 0 var(--e-3); font-weight: 800; font-size: var(--t-l); color: var(--or-clair); }
.checkup__liste { list-style: none; margin: 0 0 var(--e-5); padding: 0; display: grid; gap: var(--e-3); }
.checkup__liste li { position: relative; padding-left: 28px; font-size: var(--t-s); line-height: 1.5; color: #E6ECF4; }
.checkup__liste li::before { content: "?"; position: absolute; left: 0; top: 0; width: 20px; height: 20px; border-radius: 50%; background: var(--or); color: var(--marine); font-weight: 800; font-size: 13px; display: grid; place-items: center; }
/* ---------- Illustration « Vos questions » ---------- */
.illu-questions { --iq-fonce: var(--marine); --iq-accent: var(--bleu); --iq-clair: var(--bleu-pale); --iq-clair2: #CFE6FA; --iq-or: var(--or-clair);
  margin-top: var(--e-5); max-width: 340px; }
.illu-questions--pro { --iq-accent: var(--marine); --iq-fonce: #14213D; --iq-clair: var(--or-pale); --iq-clair2: #E6ECF4; }
.illu-questions svg { display: block; width: 100%; height: auto; }
.iq-ombre { fill: rgba(11, 37, 69, 0.08); }
.iq-fonce { fill: var(--iq-fonce); }
.iq-accent { fill: var(--iq-accent); }
.iq-clair { fill: var(--iq-clair); stroke: var(--iq-fonce); stroke-width: 2; }
.iq-clair2 { fill: var(--iq-clair2); }
.iq-or { fill: var(--iq-or); }
.iq-ecran { fill: #EAF4FD; }
.illu-questions--pro .iq-ecran { fill: #FBF5E2; }
.iq-lignes { stroke: var(--iq-accent); stroke-width: 4; stroke-linecap: round; opacity: 0.6; }
.illu-questions--pro .iq-lignes { stroke: var(--or); }
.iq-peau { fill: #F2C9A5; }
.iq-col { fill: none; stroke: #fff; stroke-width: 3; stroke-linejoin: round; }
.illu-questions--pro .iq-col { stroke: var(--or-clair); }
.iq-bras { stroke: var(--iq-accent); stroke-width: 12; stroke-linecap: round; }
.iq-anse { fill: none; stroke: var(--iq-fonce); stroke-width: 2; }
.iq-texte { fill: #fff; font: 800 26px/1 "Plus Jakarta Sans", system-ui, sans-serif; }
.illu-questions--pro .iq-bulle--1 .iq-texte { fill: var(--or-clair); }
.iq-texte--fonce { fill: var(--marine); }
@media (prefers-reduced-motion: no-preference) {
  .iq-bulle { animation: iq-flotte 4s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
  .iq-bulle--2 { animation-delay: -1.3s; }
  .iq-bulle--3 { animation-delay: -2.6s; }
}
@keyframes iq-flotte { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@media (max-width: 860px) { .illu-questions { max-width: 260px; } }
.theme-prive .bloc:has(.illu-questions), .accueil ~ .bloc:has(:not([hidden]) > .illu-questions--prive) { background: radial-gradient(700px 360px at 0% 100%, var(--bleu-pale), transparent 70%), var(--fond); }
.theme-pro .bloc:has(.illu-questions), .accueil ~ .bloc:has(:not([hidden]) > .illu-questions--pro) { background: radial-gradient(700px 360px at 0% 100%, var(--or-pale), transparent 70%), var(--fond); }
/* ---------- Pages produit : widgets ---------- */
.fiche .article__corps { min-width: 0; }
.mini-cta--pro { background: var(--marine); }
.pour-qui { margin: var(--e-7, 48px) 0; padding: var(--e-6); border-radius: var(--r-l); background: var(--bleu-pale); border: 1px solid #CFE6FA; }
.pour-qui--pro { background: var(--or-pale); border-color: #EBDDAE; }
.pour-qui h2 { margin-top: 0; }
.pour-qui__liste { list-style: none; margin: 0 0 var(--e-5); padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-3); }
@media (max-width: 700px) { .pour-qui__liste { grid-template-columns: 1fr; } }
.pour-qui__liste li { margin: 0; }
.pour-qui__liste label { display: flex; gap: var(--e-3); align-items: flex-start; height: 100%; padding: var(--e-4); border-radius: var(--r-m); background: var(--fond); border: 2px solid transparent; box-shadow: var(--ombre-1); cursor: pointer; font-size: var(--t-s); line-height: 1.5; transition: border-color var(--duree), transform var(--duree); }
.pour-qui__liste label:hover { transform: translateY(-2px); }
.pour-qui__liste input { width: 22px; height: 22px; flex: none; margin: 0; accent-color: var(--bleu); }
.pour-qui--pro .pour-qui__liste input { accent-color: var(--marine); }
.pour-qui__liste li.coche label { border-color: var(--bleu); }
.pour-qui--pro .pour-qui__liste li.coche label { border-color: var(--or); }
.pour-qui__resultat { display: grid; gap: var(--e-3); justify-items: start; }
.pour-qui__resultat p { margin: 0; font-weight: 700; color: var(--marine); }
.pour-qui__jauge { width: 100%; height: 10px; border-radius: var(--r-plein); background: rgba(11, 37, 69, 0.1); overflow: hidden; }
.pour-qui__jauge span { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, var(--bleu-vif), var(--bleu)); transition: width .4s ease; }
.pour-qui--pro .pour-qui__jauge span { background: linear-gradient(90deg, var(--or-clair), var(--or)); }
.pour-qui--fort .pour-qui__jauge span { background: linear-gradient(90deg, #3DBB74, var(--succes)); }
/* Contact : WhatsApp et e-mail cliquable */
.contact__whatsapp { display: flex; align-items: center; gap: var(--e-4); margin: var(--e-4) 0; padding: var(--e-4) var(--e-5); border-radius: var(--r-l); background: #25D366; color: #fff; text-decoration: none; box-shadow: 0 10px 24px -12px rgba(18, 140, 70, 0.8); transition: transform var(--duree), filter var(--duree); }
.contact__whatsapp:hover { color: #fff; transform: translateY(-2px); filter: brightness(1.05); }
.contact__whatsapp strong { display: block; font-size: var(--t-l); }
.contact__whatsapp > span:nth-child(2) { flex: 1; font-size: var(--t-s); }
.contact__whatsapp-icone { flex: none; width: 48px; height: 48px; border-radius: var(--r-plein); display: grid; place-items: center; background: rgba(255,255,255,0.2); }
.contact__whatsapp-icone .icone { width: 26px; height: 26px; }
a.contact__ligne { color: var(--marine); font-weight: 700; text-decoration: none; }
a.contact__ligne:hover span { text-decoration: underline; }
/* ---------- Animations d'apparition ---------- */
.apparait { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.apparait.vu { opacity: 1; transform: none; }
/* Icônes des pages produit : petit rebond */
@media (prefers-reduced-motion: no-preference) {
  .hero-produit .etiquette .icone { animation: rebond 2.4s ease-in-out infinite; }
  .carte:hover .carte__icone { animation: rebond .6s ease; }
}
@keyframes rebond { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
.illu-contact { max-width: 360px; margin-top: var(--e-5); }
.illu-contact svg { display: block; width: 100%; height: auto; }
@media (prefers-reduced-motion: no-preference) {
  .ic-lettre { animation: ic-vol 3.2s ease-in-out infinite; }
  .ic-bulle { animation: iq-flotte 3s ease-in-out infinite; }
  .ic-trace { animation: ic-trace 1.2s linear infinite; }
  .ic-bulle circle { animation: ic-points 1.4s ease-in-out infinite; }
  .ic-bulle circle:nth-child(4) { animation-delay: .2s; } .ic-bulle circle:nth-child(5) { animation-delay: .4s; }
}
@keyframes ic-vol { 0%, 100% { transform: translate(0, 0) rotate(0); } 50% { transform: translate(6px, -8px) rotate(-3deg); } }
@keyframes ic-trace { to { stroke-dashoffset: -28; } }
@keyframes ic-points { 0%, 100% { opacity: .3; } 50% { opacity: 1; } }
.ic-lettre, .ic-bulle circle { transform-box: fill-box; transform-origin: center; }
/* ---------- Simulateur de capital 3a ---------- */
.bloc--capital { background: linear-gradient(180deg, var(--bleu-pale), var(--fond)); }
.capital { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: var(--e-6); align-items: start; }
@media (max-width: 860px) { .capital { grid-template-columns: 1fr; } }
.capital__entrees { display: grid; gap: var(--e-5); padding: var(--e-6); background: var(--fond); border-radius: var(--r-l); box-shadow: var(--ombre-2); }
.capital__curseur label { display: flex; justify-content: space-between; align-items: baseline; gap: var(--e-3); font-weight: 700; color: var(--marine); }
.capital__curseur output { font-size: var(--t-l); font-weight: 800; color: var(--bleu); }
.capital__curseur input[type=range] { width: 100%; margin-top: var(--e-3); accent-color: var(--bleu); height: 28px; cursor: pointer; }
.capital__resultat { display: grid; gap: var(--e-4); padding: var(--e-6); border-radius: var(--r-l); background: var(--marine); color: #fff; box-shadow: var(--ombre-2); border-bottom: 4px solid var(--or); }
.capital__titre { margin: 0; font-weight: 800; font-size: var(--t-l); color: var(--or-clair); }
.capital__barres { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e-4); }
.capital__barres li { display: grid; grid-template-columns: 1fr auto; gap: 6px var(--e-3); align-items: center; }
.capital__nom { font-weight: 700; font-size: var(--t-s); }
.capital__nom small { display: block; font-weight: 500; color: #B7C6DA; }
.capital__barre { grid-column: 1 / -1; grid-row: 2; height: 14px; border-radius: var(--r-plein); background: rgba(255,255,255,0.12); overflow: hidden; }
.capital__barre span { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, var(--bleu-vif), #6CB8EC); transition: width .6s cubic-bezier(.2,.8,.2,1); }
.capital__barres li:last-child .capital__barre span { background: linear-gradient(90deg, var(--or), var(--or-clair)); }
.capital__barres strong { font-size: var(--t-l); font-variant-numeric: tabular-nums; }
.capital__verse, .capital__ecart { margin: 0; font-size: var(--t-s); color: #E6ECF4; }
.capital__ecart strong { color: var(--or-clair); }
.capital .resultat__avertissement { color: #B7C6DA; margin: 0; }
/* Félicitations de fin de lecture */
.bravo { position: fixed; left: 50%; bottom: 20px; z-index: 40; width: min(560px, calc(100vw - 32px)); transform: translate(-50%, 120%); display: flex; gap: var(--e-4); align-items: center; padding: var(--e-4) var(--e-5); padding-right: 44px; border-radius: var(--r-l); background: var(--marine); color: #fff; border-bottom: 4px solid var(--or); box-shadow: 0 20px 50px -20px rgba(11,37,69,0.7); transition: transform .5s cubic-bezier(.2,.9,.3,1.3); }
.bravo--visible { transform: translate(-50%, 0); }
.bravo p { margin: 0; font-size: var(--t-s); flex: 1; }
.bravo strong { display: block; color: var(--or-clair); font-size: var(--t-m); }
.bravo__fermer { position: absolute; top: 6px; right: 8px; width: 32px; height: 32px; border: 0; background: none; color: #fff; font-size: 22px; cursor: pointer; }
@media (max-width: 620px) { .bravo { flex-direction: column; align-items: flex-start; } }
.widget-article { margin: var(--e-7, 48px) 0; }
.widget-article .capital { grid-template-columns: 1fr; }
.article__corps .capital__barres, .article__corps .pour-qui__liste, .texte-long .pour-qui__liste { padding-left: 0; }
.article__corps .capital__barres li, .article__corps .pour-qui__liste li, .texte-long .pour-qui__liste li { margin: 0; }
/* Téléphone avec indicatif */
.tel { display: grid; grid-template-columns: minmax(96px, 128px) minmax(0, 1fr); gap: var(--e-2); }
.tel__indicatif { width: 100%; min-width: 0; text-overflow: ellipsis; }
.grille-champs .champ:has(.tel) { grid-column: 1 / -1; }
.tel--drapeaux { position: relative; }
.tel--drapeaux .tel__indicatif { position: absolute; left: 0; top: 0; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.tel__pays { display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 12px; border: 1.5px solid var(--bordure); border-radius: var(--r-m); background: var(--fond); font: inherit; font-weight: 700; color: var(--marine); cursor: pointer; }
.tel__pays:hover { border-color: var(--bleu); }
.tel__pays:focus-visible { outline: 3px solid var(--bleu-pale); border-color: var(--bleu); }
.tel__pays[aria-expanded="true"] { border-color: var(--bleu); }
.tel__drapeau { width: 24px; height: 18px; flex: none; border-radius: 3px; object-fit: cover; box-shadow: 0 0 0 1px rgba(11, 37, 69, .12); }
.tel__drapeau--vide { display: inline-block; background: var(--bleu-pale); }
.tel__chevron { width: 16px; height: 16px; margin-left: auto; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.tel__liste { position: absolute; z-index: 30; top: calc(100% + 6px); left: 0; width: min(340px, 100%); background: var(--fond); border: 1px solid var(--bordure); border-radius: var(--r-m); box-shadow: var(--ombre-2); padding: 8px; }
.tel__recherche { width: 100%; min-height: 44px; padding: 0 12px; border: 1.5px solid var(--bordure); border-radius: var(--r-m); font: inherit; margin-bottom: 6px; }
.tel__liste ul { list-style: none; margin: 0; padding: 0; max-height: 280px; overflow-y: auto; }
.tel__groupe { padding: 8px 8px 4px; font-size: var(--t-xs); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--texte-doux); }
.tel__liste [role="option"] { display: flex; align-items: center; gap: 10px; padding: 9px 8px; border-radius: 8px; cursor: pointer; }
.tel__liste [role="option"]:hover, .tel__liste [role="option"]:focus { background: var(--bleu-pale); outline: none; }
.tel__liste [role="option"][aria-selected="true"] { font-weight: 700; color: var(--bleu); }
.tel__nom { flex: 1; min-width: 0; }
.tel__liste .tel__code { color: var(--texte-doux); font-variant-numeric: tabular-nums; }
.tel__liste [hidden] { display: none; }
/* ---------- Simulation en plusieurs écrans (funnel) ---------- */
.funnel-page { padding-block: var(--e-6) var(--e-8); background: radial-gradient(900px 400px at 100% 0%, var(--bleu-pale), transparent 70%), var(--fond); }
.funnel { margin-top: var(--e-4); padding: var(--e-6); border-radius: var(--r-l); background: var(--fond); border: 1px solid var(--bordure); border-top: 6px solid var(--bleu); box-shadow: var(--ombre-2); }
.funnel__haut { display: flex; justify-content: space-between; align-items: center; min-height: 32px; }
.funnel__retour { display: inline-flex; align-items: center; gap: 6px; border: 0; background: none; font: inherit; font-weight: 700; color: var(--bleu); cursor: pointer; padding: 6px 0; }
.funnel__etape-num { margin: 0 0 0 auto; font-size: var(--t-s); font-weight: 700; color: var(--texte-doux); }
.funnel__progression { height: 8px; margin: var(--e-3) 0 var(--e-6); border-radius: var(--r-plein); background: var(--bleu-pale); overflow: hidden; }
.funnel__progression span { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, var(--bleu-vif), var(--bleu)); transition: width .5s cubic-bezier(.2,.8,.2,1); }
.funnel .formulaire { gap: 0; }
.fe { border: 0; margin: 0; padding: 0; display: grid; gap: var(--e-5); min-width: 0; }
.fe__question { padding: 0; font-size: clamp(1.4rem, 2.6vw, 1.9rem); font-weight: 800; line-height: 1.2; color: var(--marine); margin-bottom: var(--e-2); }
.fe__sous-question { margin: 0; font-weight: 700; color: var(--marine); }
.fe__aide { margin: 0; color: var(--texte-doux); font-size: var(--t-s); }
.fe__suivant { justify-self: start; min-width: 200px; }
@media (prefers-reduced-motion: no-preference) {
  .fe--entree { animation: fe-entree .45s cubic-bezier(.2,.8,.2,1); }
  .fe--retour { animation: fe-retour .45s cubic-bezier(.2,.8,.2,1); }
}
@keyframes fe-entree { from { opacity: 0; transform: translateX(28px); } to { opacity: 1; transform: none; } }
@keyframes fe-retour { from { opacity: 0; transform: translateX(-28px); } to { opacity: 1; transform: none; } }
.choix-cartes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-4); }
.choix-cartes--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 640px) { .choix-cartes--3 { grid-template-columns: 1fr; } }
.choix-carte { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--e-2); min-height: 120px; padding: var(--e-5); text-align: center; border: 2px solid var(--bordure); border-radius: var(--r-l); background: var(--fond); cursor: pointer; font-weight: 700; color: var(--marine); transition: border-color .2s, transform .2s, box-shadow .2s, background-color .2s; }
.choix-carte--compact { min-height: 72px; }
.choix-carte small { display: block; font-weight: 600; color: var(--bleu); }
.choix-carte:hover { transform: translateY(-3px); box-shadow: var(--ombre-2); border-color: var(--bleu-vif); }
.choix-carte input, .formule input { position: absolute; opacity: 0; pointer-events: none; }
.choix-carte:has(input:checked) { border-color: var(--bleu); background: var(--bleu-pale); box-shadow: 0 0 0 3px rgba(21,101,168,0.15); }
.choix-carte:has(input:focus-visible), .formule:has(input:focus-visible) { outline: 3px solid var(--or); outline-offset: 2px; }
.choix-carte__icone { width: 56px; height: 56px; border-radius: var(--r-plein); display: grid; place-items: center; background: var(--bleu-pale); color: var(--bleu); }
.choix-carte__icone .icone { width: 28px; height: 28px; }
.choix-carte:has(input:checked) .choix-carte__icone { background: var(--bleu); color: #fff; }
.choix-carte__titre { font-size: var(--t-l); }
.choix-carte__detail { font-weight: 500; font-size: var(--t-s); color: var(--texte-doux); }
.fe__option { margin: 0; }
.compteurs { display: grid; gap: var(--e-4); }
.compteur { display: grid; grid-template-columns: 1fr auto auto auto; align-items: center; gap: var(--e-3); padding: var(--e-4) var(--e-5); border: 1px solid var(--bordure); border-radius: var(--r-l); }
.compteur__label { font-weight: 700; color: var(--marine); }
.compteur__label small { font-weight: 500; color: var(--texte-doux); }
.compteur__bouton { width: 48px; height: 48px; border-radius: var(--r-plein); border: 2px solid var(--bleu); background: var(--fond); color: var(--bleu); font-size: 1.5rem; font-weight: 700; cursor: pointer; line-height: 1; }
.compteur__bouton:hover { background: var(--bleu); color: #fff; }
.compteur__valeur { width: 3.5em; border: 0; background: none; text-align: center; font: inherit; font-size: 1.6rem; font-weight: 800; color: var(--marine); -moz-appearance: textfield; }
.compteur__valeur::-webkit-inner-spin-button, .compteur__valeur::-webkit-outer-spin-button { -webkit-appearance: none; }
.compteur--grand .compteur__valeur { font-size: 2.4rem; width: 3em; }
.compteur--pulse .compteur__valeur { animation: compteur-pulse .3s ease; }
@keyframes compteur-pulse { 50% { transform: scale(1.2); color: var(--bleu); } }
.somme-proposee, .apercu-prime { padding: var(--e-6); border-radius: var(--r-l); background: var(--bleu-pale); text-align: center; }
.somme-proposee p { margin: 0; }
.somme-proposee__montant, .apercu-prime__montant { margin: var(--e-2) 0 !important; font-size: clamp(2rem, 5vw, 3rem); font-weight: 800; color: var(--bleu); }
.apercu-prime__label, .resultat-prime__label { margin: 0; font-weight: 700; color: var(--marine); }
.floute { filter: blur(7px); user-select: none; }
.formules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-4); }
@media (max-width: 640px) { .formules { grid-template-columns: 1fr; } }
.formule { position: relative; display: grid; gap: var(--e-2); align-content: start; padding: var(--e-5); border: 2px solid var(--bordure); border-radius: var(--r-l); cursor: pointer; transition: border-color .2s, transform .2s, box-shadow .2s; }
.formule:hover { transform: translateY(-3px); box-shadow: var(--ombre-2); border-color: var(--bleu-vif); }
.formule:has(input:checked) { border-color: var(--bleu); background: var(--bleu-pale); }
.formule--conseil { border-color: var(--or); }
.formule__badge { position: absolute; top: -12px; right: 16px; padding: 2px 10px; border-radius: var(--r-plein); background: var(--or-clair); color: var(--marine); font-size: var(--t-xs); font-weight: 800; }
.formule__nom { font-size: var(--t-xl); font-weight: 800; color: var(--bleu); }
.formule__prix { font-weight: 800; color: var(--marine); }
.formule ul { list-style: none; margin: var(--e-2) 0 0; padding: 0; display: grid; gap: 6px; font-size: var(--t-s); color: var(--texte-doux); }
.formule li { padding-left: 22px; position: relative; }
.formule li::before { content: ""; position: absolute; left: 0; top: .35em; width: 12px; height: 7px; border-left: 2.5px solid var(--succes); border-bottom: 2.5px solid var(--succes); transform: rotate(-45deg); }
.resultat-prime { padding: var(--e-6); border-radius: var(--r-l); background: var(--marine); color: #fff; text-align: center; border-bottom: 4px solid var(--or); }
.resultat-prime .resultat-prime__label { color: var(--or-clair); }
.resultat-prime__montant { margin: var(--e-2) 0 0; font-size: clamp(2.4rem, 6vw, 3.6rem); font-weight: 800; animation: fe-entree .6s ease; }
.resultat-prime__mois { margin: 0 0 var(--e-4); color: #B7C6DA; }
.resultat-prime__detail { list-style: none; margin: 0 0 var(--e-4); padding: 0; text-align: left; display: grid; gap: var(--e-2); }
.resultat-prime__detail li { display: flex; justify-content: space-between; gap: var(--e-4); padding: var(--e-3) var(--e-4); border-radius: var(--r-m); background: rgba(255,255,255,0.08); }
.resultat-prime__detail small { display: block; color: #B7C6DA; font-weight: 500; }
.resultat-prime .resultat__avertissement { color: #B7C6DA; margin: 0; }
.resultat-actions { display: grid; gap: var(--e-3); }
.funnel__garanties { list-style: none; padding: 0; margin: var(--e-5) 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--e-5); font-size: var(--t-s); font-weight: 700; color: var(--marine); }
.funnel__garanties li { display: inline-flex; align-items: center; gap: 6px; }
.funnel__garanties .icone { color: var(--succes); }
.funnel .champ__erreur { margin: 0; }
/* ---------- Garantie de loyer : offres et parcours ---------- */
.funnel__grille { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e-6); align-items: start; }
.funnel__grille:has(.recap-gl:not([hidden])) { grid-template-columns: minmax(0, 1fr) 280px; }
@media (max-width: 900px) { .funnel__grille:has(.recap-gl:not([hidden])) { grid-template-columns: 1fr; } }
.gl-alerte { margin: 0; padding: var(--e-3) var(--e-4); border-radius: var(--r-m); background: #FDECEC; color: #9B1C1C; font-weight: 600; font-size: var(--t-s); }
.gl-comparaison { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--e-4); padding: var(--e-4) var(--e-5); border-radius: var(--r-l); background: var(--bleu-pale); }
.gl-comparaison small { display: block; color: var(--texte-doux); font-weight: 600; }
.gl-comparaison strong { font-size: var(--t-l); color: #9B1C1C; }
.gl-comparaison__ok strong { color: var(--succes); }
.gl-comparaison > span { color: var(--bleu); }
.offres-gl { display: grid; gap: var(--e-3); }
.offre-gl { position: relative; display: grid; grid-template-columns: auto 1fr auto; gap: var(--e-4); align-items: center; padding: var(--e-4) var(--e-5); border: 2px solid var(--bordure); border-radius: var(--r-l); background: var(--fond); cursor: pointer; transition: border-color .2s, transform .2s, box-shadow .2s; animation: fe-entree .4s ease both; }
.offre-gl:nth-child(2) { animation-delay: .08s; } .offre-gl:nth-child(3) { animation-delay: .16s; } .offre-gl:nth-child(4) { animation-delay: .24s; }
.offre-gl:hover { transform: translateY(-2px); box-shadow: var(--ombre-2); border-color: var(--bleu-vif); }
.offre-gl:has(input:checked) { border-color: var(--bleu); background: var(--bleu-pale); }
.offre-gl input { position: absolute; opacity: 0; pointer-events: none; }
.offre-gl:has(input:focus-visible) { outline: 3px solid var(--or); outline-offset: 2px; }
.offre-gl__rang { width: 40px; height: 40px; border-radius: var(--r-plein); display: grid; place-items: center; font-weight: 800; background: var(--bleu-pale); color: var(--bleu); }
.offre-gl:first-child .offre-gl__rang { background: var(--or-clair); color: var(--marine); }
.offre-gl__corps { display: grid; gap: 4px; min-width: 0; }
.offre-gl__nom { font-size: var(--t-l); font-weight: 800; color: var(--marine); }
.offre-gl__badge { display: inline-block; margin-left: 6px; padding: 2px 10px; border-radius: var(--r-plein); background: #E7F5EC; color: var(--succes); font-size: var(--t-xs); font-weight: 800; vertical-align: middle; }
.offre-gl__tag { font-size: var(--t-s); color: var(--texte-doux); }
.offre-gl__points { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: var(--t-xs); color: var(--texte-doux); }
.offre-gl__points span::before { content: "✓ "; color: var(--succes); font-weight: 800; }
.offre-gl__economie { font-size: var(--t-s); color: var(--succes); }
.offre-gl__prix { display: grid; justify-items: end; gap: 2px; text-align: right; }
.offre-gl__prix strong { font-size: var(--t-xl); color: var(--marine); }
.offre-gl__prix small { font-size: var(--t-xs); color: var(--texte-doux); max-width: 170px; }
.offre-gl__choisir { margin-top: 6px; padding: 8px 16px; border-radius: var(--r-s); background: var(--bleu); color: #fff; font-weight: 700; font-size: var(--t-s); }
.offre-gl--off { opacity: .55; cursor: not-allowed; }
.offre-gl--off .offre-gl__choisir { display: none; }
.offre-gl--conseil { border-style: dashed; }
@media (max-width: 640px) {
  .offre-gl { grid-template-columns: auto 1fr; }
  .offre-gl__prix { grid-column: 1 / -1; justify-items: start; text-align: left; }
}
.recap-gl { position: sticky; top: 96px; padding: var(--e-5); border-radius: var(--r-l); background: var(--marine); color: #fff; border-bottom: 4px solid var(--or); }
.recap-gl__titre { margin: 0 0 var(--e-3); font-weight: 800; color: var(--or-clair); }
.recap-gl dl { margin: 0; display: grid; gap: var(--e-2); }
.recap-gl dl div { display: flex; justify-content: space-between; gap: var(--e-3); font-size: var(--t-s); }
.recap-gl dt { color: #B7C6DA; }
.recap-gl dd { margin: 0; font-weight: 700; text-align: right; }
.recap-gl__libre dd { color: #7EE2A8; }
.recap-gl .bouton--discret { color: var(--or-clair); margin-top: var(--e-2); }
.fe__bloc { display: grid; gap: var(--e-4); }
.choix-cartes--petit { max-width: 360px; }
.choix-carte--option { flex-direction: row; justify-content: flex-start; text-align: left; min-height: 0; }
.choix-carte--option small { display: block; color: var(--texte-doux); font-weight: 500; }
.choix-carte:has(input[type=checkbox]:checked) { border-color: var(--bleu); background: var(--bleu-pale); }
.adresse { display: grid; gap: var(--e-3); }
.adresse__recherche { position: relative; }
.adresse__resultats { position: absolute; z-index: 10; left: 0; right: 0; top: calc(100% - 26px); margin: 0; padding: 6px; list-style: none; background: var(--fond); border: 1px solid var(--bordure); border-radius: var(--r-m); box-shadow: var(--ombre-2); }
.adresse__resultats button { width: 100%; text-align: left; padding: 10px 12px; border: 0; border-radius: var(--r-s); background: none; font: inherit; cursor: pointer; }
.adresse__resultats button:hover, .adresse__resultats button:focus-visible { background: var(--bleu-pale); }
.adresse__champs { grid-template-columns: 2fr 1fr; }
.entree-simulation { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-3); margin: var(--e-4) 0; }
.entree-simulation .choix-carte { text-decoration: none; min-height: 110px; }
.entree-simulation .choix-carte .icone { width: 30px; height: 30px; color: var(--bleu); }
.panneau-form > .bouton--action { width: 100%; }
/* ---------- Page garantie de loyer (reprise de l'ancien site) ---------- */
.gl-hero { padding-block: var(--e-6) var(--e-8); background: radial-gradient(1000px 420px at 0% 0%, var(--bleu-pale), transparent 70%), radial-gradient(800px 360px at 100% 0%, var(--or-pale), transparent 70%), var(--fond); }
.gl-hero__grille { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: clamp(32px, 5vw, 64px); align-items: center; }
@media (max-width: 900px) { .gl-hero__grille { grid-template-columns: minmax(0, 1fr); } }
.gl-mini { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; gap: var(--e-3); padding: var(--e-6); border-radius: var(--r-l); background: var(--fond); border: 1px solid var(--bordure); border-top: 6px solid var(--bleu); box-shadow: var(--ombre-2); }
.gl-mini__titre { margin: 0; font-size: var(--t-l); font-weight: 800; color: var(--marine); }
.gl-mini label { font-weight: 700; color: var(--marine); }
.gl-mini__champ { display: flex; align-items: center; gap: var(--e-2); border: 1.5px solid var(--bordure); border-radius: var(--r-m); padding: 0 var(--e-4); }
.gl-mini__champ span { font-weight: 700; color: var(--texte-doux); }
.gl-mini__champ input { flex: 1; min-width: 0; border: 0; min-height: 56px; font: inherit; font-size: 1.5rem; font-weight: 800; color: var(--marine); background: none; outline: none; }
.gl-mini__compare { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--e-3); }
@media (max-width: 440px) { .gl-mini__compare { grid-template-columns: 1fr; } .gl-mini { padding: var(--e-5); } }
.gl-mini__compare > div { display: grid; gap: 2px; padding: var(--e-4); border-radius: var(--r-m); }
.gl-mini__compare small { font-weight: 700; font-size: var(--t-xs); }
.gl-mini__compare strong { font-size: var(--t-l); }
.gl-mini__compare span { font-size: var(--t-xs); color: var(--texte-doux); }
.gl-mini__depot { background: #FDECEC; } .gl-mini__depot strong { color: #9B1C1C; }
.gl-mini__ok { background: #E7F5EC; } .gl-mini__ok strong { color: var(--succes); }
.gl-chiffres { background: var(--marine); color: #fff; }
.gl-chiffres__liste { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--e-4); padding-block: var(--e-6); text-align: center; }
@media (max-width: 700px) { .gl-chiffres__liste { grid-template-columns: 1fr 1fr; } }
.gl-chiffres strong { display: block; font-size: clamp(1.6rem, 3vw, 2.2rem); color: var(--or-clair); }
.gl-chiffres span { font-size: var(--t-s); color: #DCE4EF; }
.gl-deux { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-5); }
@media (max-width: 760px) { .gl-deux { grid-template-columns: 1fr; } }
.gl-deux__carte { position: relative; padding: var(--e-6); border-radius: var(--r-l); border: 1px solid var(--bordure); background: var(--fond); box-shadow: var(--ombre-1); }
.gl-deux__carte--ok { border: 2px solid var(--bleu); background: var(--bleu-pale); }
.gl-deux__badge { position: absolute; top: -12px; left: 24px; padding: 2px 12px; border-radius: var(--r-plein); background: var(--bleu); color: #fff; font-size: var(--t-xs); font-weight: 800; }
.gl-deux__nom { margin: 0; font-weight: 800; color: var(--marine); font-size: var(--t-l); }
.gl-deux__montant { margin: var(--e-2) 0 var(--e-4); font-size: 1.8rem; font-weight: 800; color: var(--succes); }
.gl-deux__montant--rouge { color: #9B1C1C; }
.gl-deux ul { margin: 0; padding-left: 1.2em; display: grid; gap: 6px; color: var(--texte-doux); }
.surtitre { margin: 0; font-size: var(--t-xs); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--bleu); }
.centre { text-align: center; }
.adresse__resultats { top: calc(100% - 34px); max-height: 320px; overflow-y: auto; }
.adresse__resultats li { display: grid; padding: 10px 12px; border-radius: var(--r-s); cursor: pointer; }
.adresse__resultats li strong { color: var(--marine); }
.adresse__resultats li span { font-size: var(--t-s); color: var(--texte-doux); }
.adresse__resultats li:hover, .adresse__resultats li.actif { background: var(--bleu-pale); }
.adresse--ok .adresse__recherche .champ__aide { color: var(--succes); font-weight: 700; }
.adresse__statut--alerte { color: #9B1C1C !important; }
.adresse--ok .adresse__recherche input { border-color: var(--succes); }
/* Simulations : éléments communs */
.funnel-page__titre { margin: var(--e-3) 0 0; font-size: clamp(1.8rem, 4vw, 2.6rem); }
.funnel--pro { border-top-color: var(--marine); }
.funnel--pro .funnel__progression span { background: linear-gradient(90deg, var(--or-clair), var(--or)); }
.funnel--pro .funnel__retour { color: var(--marine); }
.funnel-page--pro { background: radial-gradient(900px 400px at 100% 0%, var(--or-pale), transparent 70%), var(--fond); }
.funnel--pro .choix-carte:has(input:checked), .funnel--pro .formule:has(input:checked) { border-color: var(--marine); background: #EEF2F8; }
.funnel--pro .choix-carte__icone { background: #EEF2F8; color: var(--marine); }
.funnel--pro .choix-carte:has(input:checked) .choix-carte__icone { background: var(--marine); color: var(--or-clair); }
.funnel--pro .compteur__bouton { border-color: var(--marine); color: var(--marine); }
.funnel--pro .compteur__bouton:hover { background: var(--marine); color: var(--or-clair); }
.funnel--pro .apercu-prime, .funnel--pro .somme-proposee { background: var(--or-pale); }
.funnel--pro .apercu-prime__montant { color: var(--marine); }
.funnel__note { margin: var(--e-4) auto 0; max-width: 640px; text-align: center; font-size: var(--t-s); color: var(--texte-doux); }
.choix-cartes--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.objets { display: grid; gap: var(--e-4); }
.objet { padding: var(--e-4) var(--e-5); border: 1px solid var(--bordure); border-radius: var(--r-l); background: var(--fond); animation: fe-entree .35s ease; }
.objet__entete { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--e-3); color: var(--marine); }
.objet__retirer { border: 0; background: none; color: #9B1C1C; font: inherit; font-weight: 700; cursor: pointer; text-decoration: underline; }
.objets__ajouter { justify-self: start; }
.objets__total { margin: 0; font-size: var(--t-l); color: var(--marine); }
.entree-simulation__points { list-style: none; margin: var(--e-4) 0; padding: 0; display: grid; gap: var(--e-3); font-weight: 600; color: var(--marine); }
.entree-simulation__points li { display: flex; gap: var(--e-2); align-items: center; }
.entree-simulation__points .icone { color: var(--succes); }
.cta-simulation { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-4); margin-top: var(--e-5); padding: var(--e-4) var(--e-5); border-radius: var(--r-l); background: var(--or-pale); border: 1px solid #EBDDAE; }
.cta-simulation div { flex: 1; min-width: 220px; display: grid; gap: 2px; }
.cta-simulation strong { color: var(--marine); font-size: var(--t-l); }
.cta-simulation span { font-size: var(--t-s); color: var(--texte-doux); }
/* Volet de produits à cocher */
.champ__label { margin: 0 0 6px; font-weight: 700; color: var(--marine); }
.volet { border: 1.5px solid var(--bordure); border-radius: var(--r-m); background: var(--fond); }
.volet summary { cursor: pointer; padding: 14px 16px; font-weight: 600; color: var(--marine); list-style: none; display: flex; justify-content: space-between; align-items: center; }
.volet summary::-webkit-details-marker { display: none; }
.volet summary::after { content: ""; width: 10px; height: 10px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .2s; }
.volet[open] summary::after { transform: rotate(-135deg); }
.volet__liste { max-height: 340px; overflow-y: auto; padding: 0 16px 14px; display: grid; gap: 4px; border-top: 1px solid var(--bordure); }
.volet__groupe { margin: 12px 0 2px; font-size: var(--t-xs); font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--bleu); }
.volet__case { display: flex; gap: 10px; align-items: center; padding: 6px 8px; border-radius: var(--r-s); cursor: pointer; }
.volet__case:hover { background: var(--bleu-pale); }
.volet__case input { width: 18px; height: 18px; accent-color: var(--bleu); }
.volet .volet__case { margin: 0; font-weight: 500; color: var(--texte); }
.volet .volet__case span { line-height: 1.35; }
/* Recherche d'adresse façon carte */
.adresse__saisie { position: relative; }
.adresse__pin { position: absolute; left: 14px; top: 50%; width: 20px; height: 20px; transform: translateY(-50%); color: var(--bleu); pointer-events: none; }
.adresse__saisie input { padding-left: 44px !important; }
.adresse__resultats { top: calc(100% - 60px); }
.adresse__resultats li { display: flex; gap: 12px; align-items: center; }
.adresse__resultats li svg { flex: none; width: 20px; height: 20px; color: var(--texte-doux); }
.adresse__resultats li.actif svg, .adresse__resultats li:hover svg { color: var(--bleu); }
.adresse__resultats li span { display: grid; }
.adresse__resultats li small { font-size: var(--t-s); color: var(--texte-doux); }
.adresse__manuel { justify-self: start; margin-top: 4px; padding: 0; border: 0; background: none; font: inherit; font-size: var(--t-s); font-weight: 700; color: var(--bleu); text-decoration: underline; cursor: pointer; }
.adresse__champs { display: grid; gap: var(--e-3); }
.adresse__badge { margin: 0; padding: 8px 12px; border-radius: var(--r-m); background: #E7F5EC; color: var(--succes); font-weight: 700; font-size: var(--t-s); }
.adresse__champs .grille-champs { grid-template-columns: 2fr 1fr; }
.adresse .adresse__champs { grid-template-columns: 1fr; }
.adresse__saisie .adresse__pin { top: 50%; }
/* ---------- Page de remerciement : célébration ---------- */
.confettis { position: fixed; inset: 0; width: 100vw; height: 100vh; pointer-events: none; z-index: 60; }
.merci-page { padding-block: var(--e-8); text-align: center; background: radial-gradient(700px 360px at 50% 0%, #E7F5EC, transparent 70%), var(--fond); }
.merci__check { width: 120px; height: 120px; margin: 0 auto var(--e-4); }
.merci__check svg { width: 100%; height: 100%; }
.merci__cercle { fill: #E7F5EC; stroke: var(--succes); stroke-width: 6; stroke-dasharray: 330; stroke-dashoffset: 330; animation: merci-trait .7s ease forwards; transform-origin: center; }
.merci__coche { fill: none; stroke: var(--succes); stroke-width: 9; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 80; stroke-dashoffset: 80; animation: merci-trait .45s .6s ease forwards; }
.merci__check { animation: merci-pop .5s 1s cubic-bezier(.2,1.6,.4,1) both; }
@keyframes merci-trait { to { stroke-dashoffset: 0; } }
@keyframes merci-pop { 0% { transform: scale(1); } 50% { transform: scale(1.15); } 100% { transform: scale(1); } }
.merci__titre { animation: fe-entree .6s .3s ease both; }
.merci .chapeau { margin-inline: auto; }
.merci__suite { list-style: none; margin: var(--e-6) auto; padding: 0; max-width: 520px; display: grid; gap: var(--e-3); text-align: left; }
.merci__etape { display: flex; gap: var(--e-4); align-items: center; padding: var(--e-4) var(--e-5); border-radius: var(--r-l); background: var(--fond); border: 1px solid var(--bordure); box-shadow: var(--ombre-1); animation: fe-entree .5s ease both; }
.merci__etape:nth-child(1) { animation-delay: 1.1s; } .merci__etape:nth-child(2) { animation-delay: 1.3s; } .merci__etape:nth-child(3) { animation-delay: 1.5s; }
.merci__etape > span { flex: none; width: 44px; height: 44px; border-radius: var(--r-plein); display: grid; place-items: center; background: var(--bleu-pale); color: var(--bleu); }
.merci__etape--fait > span { background: var(--succes); color: #fff; }
.merci__etape--encours > span { animation: merci-pulse 1.6s ease-in-out infinite; }
@keyframes merci-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(21,101,168,.35); } 50% { box-shadow: 0 0 0 10px rgba(21,101,168,0); } }
.merci__etape strong { display: block; color: var(--marine); }
.merci__etape small { color: var(--texte-doux); }
.merci__encart { max-width: 560px; margin: 0 auto var(--e-6); padding: var(--e-5); border-radius: var(--r-l); background: var(--bleu-pale); text-align: left; }
.merci__encart p { margin: 0 0 var(--e-2); color: var(--marine); }
.merci__encart ul { margin: 0; padding-left: 1.2em; display: grid; gap: 6px; }
.merci__actions { display: flex; flex-wrap: wrap; gap: var(--e-3); justify-content: center; }
@media (prefers-reduced-motion: reduce) { .merci__cercle, .merci__coche { animation: none; stroke-dashoffset: 0; } .merci__check, .merci__etape, .merci__titre { animation: none; } }

/* Avancée des formulaires en pourcentage */
.avancee { display: grid; gap: var(--e-2); padding: var(--e-3) var(--e-4); border-radius: var(--r-m, 12px); background: var(--bleu-pale); }
.avancee__texte { display: flex; justify-content: space-between; align-items: baseline; gap: var(--e-3); font-size: var(--t-s); font-weight: 600; color: var(--marine); }
.avancee__pct { font-weight: 800; color: var(--bleu); font-variant-numeric: tabular-nums; }
.funnel__etape-num .avancee__pct { margin-left: .4em; padding: .1em .55em; border-radius: var(--r-plein); background: var(--bleu-pale); }
.avancee__barre { height: 8px; border-radius: var(--r-plein); background: #fff; overflow: hidden; }
.avancee__barre span { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, var(--bleu-vif), var(--bleu)); transition: width .4s cubic-bezier(.2,.8,.2,1); }
.avancee--complet .avancee__pct { color: #1F8A4C; }
.avancee--complet .avancee__barre span { background: linear-gradient(90deg, #34C77B, #1F8A4C); }
.theme-pro .avancee, .funnel--pro .funnel__etape-num .avancee__pct { background: #EEF2F8; }
.theme-pro .avancee__pct, .funnel--pro .avancee__pct { color: var(--marine); }
.theme-pro .avancee__barre span { background: linear-gradient(90deg, var(--or-clair), var(--or)); }

/* Comparateur LAMal */
.cmp-page { padding: var(--e-6) 0 var(--e-8); background: radial-gradient(900px 380px at 100% 0%, var(--bleu-pale), transparent 70%), var(--fond); }
.cmp-page__titre { font-size: var(--t-3xl); line-height: 1.12; color: var(--marine); margin: 0 0 var(--e-3); max-width: 22ch; }
.cmp-page .chapeau { max-width: 70ch; }
.cmp { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: var(--e-6); align-items: start; margin-top: var(--e-6); }
.cmp__reglages { display: grid; gap: var(--e-4); position: sticky; top: 90px; max-height: calc(100vh - 110px); overflow: auto; padding: 2px; }
.cmp__bloc { background: var(--fond); border: 1px solid var(--bordure); border-radius: var(--r-l); padding: var(--e-5); box-shadow: var(--ombre-1); display: grid; gap: var(--e-3); }
.cmp__titre { display: flex; align-items: center; gap: var(--e-2); margin: 0; font-size: var(--t-m); color: var(--marine); }
.cmp__titre .icone { color: var(--bleu); }
.cmp .grille-champs { grid-template-columns: 1fr 1fr; }
.cmp__lieu { position: relative; }
.cmp__suggestions { position: absolute; z-index: 20; top: 100%; left: 0; right: 0; margin: 4px 0 0; padding: 4px; list-style: none; background: #fff; border: 1px solid var(--bordure); border-radius: var(--r-m); box-shadow: var(--ombre-2); max-height: 300px; overflow: auto; }
.cmp__suggestions li { padding: 10px 12px; border-radius: var(--r-s); cursor: pointer; font-size: var(--t-s); }
.cmp__suggestions li span { color: var(--texte-doux); }
.cmp__suggestions li em { float: right; font-style: normal; font-weight: 700; color: var(--bleu); }
.cmp__suggestions li:hover, .cmp__suggestions li.actif { background: var(--bleu-pale); }
.cmp__aucun { color: var(--texte-doux); cursor: default; }
.cmp__lieu-choisi { margin: 0; padding: 8px 12px; border-radius: var(--r-s); background: var(--bleu-pale); color: var(--marine); font-size: var(--t-xs); font-weight: 600; }
.lien-bouton { background: none; border: 0; padding: 0; color: var(--bleu); font: inherit; font-size: var(--t-xs); font-weight: 600; text-decoration: underline; cursor: pointer; justify-self: start; }
.cmp-personne { border: 1px solid var(--bordure); border-radius: var(--r-m); padding: var(--e-3); display: grid; gap: var(--e-3); background: var(--surface); }
.cmp-personne + .cmp-personne { margin-top: var(--e-3); }
.cmp-personne__haut { display: flex; align-items: center; gap: var(--e-2); }
.cmp-personne__classe { font-size: var(--t-xs); font-weight: 700; color: var(--bleu); background: var(--bleu-pale); border-radius: var(--r-plein); padding: 2px 10px; }
.cmp-personne__classe:empty { display: none; }
.cmp-personne__retirer { margin-left: auto; background: none; border: 0; color: var(--texte-doux); font: inherit; font-size: var(--t-xs); text-decoration: underline; cursor: pointer; }
.cmp-personne__accident { display: grid; grid-template-columns: auto 1fr; gap: 2px 8px; font-size: var(--t-s); font-weight: 600; align-items: center; }
.cmp-personne__accident input { width: 18px; height: 18px; accent-color: var(--bleu); }
.cmp-personne__accident .fe__aide { grid-column: 2; font-weight: 400; font-size: var(--t-xs); }
.cmp__ajouter { justify-self: start; padding: 8px 16px; font-size: var(--t-s); }
.cmp__modeles { display: grid; gap: var(--e-2); }
.cmp__modele { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; padding: 10px 12px; border: 1px solid var(--bordure); border-radius: var(--r-m); cursor: pointer; font-size: var(--t-xs); color: var(--texte-doux); transition: border-color var(--duree), background var(--duree); }
.cmp__modele strong { display: block; font-size: var(--t-s); color: var(--marine); }
.cmp__modele input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--bleu); }
.cmp__modele:has(input:checked) { border-color: var(--bleu); background: var(--bleu-pale); }
.cmp__resultats { min-width: 0; }
.cmp__vide, .cmp__chargement { display: grid; justify-items: center; text-align: center; gap: var(--e-3); padding: var(--e-8) var(--e-5); border: 2px dashed var(--bleu-ciel); border-radius: var(--r-l); color: var(--texte-doux); background: var(--fond); }
.cmp__vide .icone { width: 48px; height: 48px; color: var(--bleu-vif); animation: cmp-flotte 2.4s ease-in-out infinite; }
.cmp__vide p { margin: 0; max-width: 42ch; }
.cmp__vide strong { color: var(--marine); display: block; }
@keyframes cmp-flotte { 50% { transform: translateY(-6px); } }
.cmp__synthese { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--e-3); margin-bottom: var(--e-4); }
.cmp__synthese > p { grid-column: 1 / -1; margin: 0; padding: var(--e-4); border-radius: var(--r-m); background: var(--attention-fond); }
.cmp__chiffre { display: grid; gap: 2px; padding: var(--e-4); border-radius: var(--r-m); background: var(--fond); border: 1px solid var(--bordure); box-shadow: var(--ombre-1); }
.cmp__chiffre span { font-size: var(--t-xs); color: var(--texte-doux); font-weight: 600; }
.cmp__chiffre strong { font-size: var(--t-xl); color: var(--marine); font-variant-numeric: tabular-nums; }
.cmp__chiffre small { font-size: var(--t-xs); color: var(--texte-doux); }
.cmp__chiffre--ref { background: var(--bleu-pale); border-color: var(--bleu-ciel); }
.cmp__outils { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--e-3); margin-bottom: var(--e-3); }
.cmp__tri { display: flex; align-items: center; gap: var(--e-2); font-size: var(--t-s); font-weight: 600; }
.cmp__tri select { min-height: 40px; border: 1px solid var(--bordure-champ); border-radius: var(--r-s); padding: 0 10px; font: inherit; background: #fff; }
.cmp__compte { font-size: var(--t-xs); color: var(--texte-doux); font-weight: 600; }
.cmp__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e-3); }
.cmp-offre { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; grid-template-areas: "rang infos prix" "rang actions actions"; gap: var(--e-2) var(--e-4); padding: var(--e-4); border: 1px solid var(--bordure); border-radius: var(--r-m); background: var(--fond); box-shadow: var(--ombre-1); animation: cmp-entree .35s var(--courbe) both; }
.cmp-offre:nth-child(2) { animation-delay: .03s; } .cmp-offre:nth-child(3) { animation-delay: .06s; } .cmp-offre:nth-child(4) { animation-delay: .09s; } .cmp-offre:nth-child(5) { animation-delay: .12s; }
@keyframes cmp-entree { from { opacity: 0; transform: translateY(8px); } }
.cmp-offre--premiere { border: 2px solid var(--bleu-vif); background: linear-gradient(180deg, var(--bleu-pale), #fff 70%); }
.cmp-offre__rang { grid-area: rang; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; color: var(--bleu); background: var(--bleu-pale); }
.cmp-offre--premiere .cmp-offre__rang { background: var(--bleu); color: #fff; }
.cmp-offre__infos { grid-area: infos; min-width: 0; display: grid; gap: 4px; }
.cmp-offre__caisse { margin: 0; font-weight: 800; font-size: var(--t-l); color: var(--marine); line-height: 1.25; }
.cmp-offre__modele { margin: 0; font-size: var(--t-s); color: var(--texte-doux); }
.cmp-offre__type { display: inline-block; margin-left: 4px; padding: 1px 8px; border-radius: var(--r-plein); font-size: 0.75rem; font-weight: 700; background: var(--surface); color: var(--marine); border: 1px solid var(--bordure); white-space: nowrap; }
.cmp-offre__type--praxis { background: #EAF7EF; color: #1E6B43; border-color: #BFE3CD; }
.cmp-offre__type--tel_dig { background: #F1ECFB; color: #5B3BA8; border-color: #D9CCF3; }
.cmp-offre__type--flex { background: var(--or-pale); color: var(--or-texte); border-color: #EBDDAA; }
.cmp-offre__note, .cmp-offre__diff { font-size: var(--t-xs); color: var(--texte-doux); }
.cmp-offre__diff--moins { color: var(--succes); font-weight: 700; }
.cmp-offre__prix { grid-area: prix; text-align: right; display: grid; align-content: start; }
.cmp-offre__prix strong { font-size: var(--t-xl); color: var(--marine); font-variant-numeric: tabular-nums; white-space: nowrap; }
.cmp-offre__prix span { font-size: var(--t-xs); color: var(--texte-doux); white-space: nowrap; }
.cmp-offre__actions { grid-area: actions; display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-3); }
.cmp-offre__actions .bouton { padding: 8px 18px; min-height: 40px; font-size: var(--t-s); }
.cmp-offre__detail { font-size: var(--t-xs); flex: 1 1 100%; }
.cmp-offre__detail summary { cursor: pointer; font-weight: 700; color: var(--bleu); display: inline-block; }
.cmp-offre__actions .cmp-offre__detail { flex: 0 1 auto; }
.cmp-offre__detail[open] { flex-basis: 100%; }
.cmp-offre__detail ul { list-style: none; margin: var(--e-2) 0 0; padding: 0; display: grid; gap: 4px; }
.cmp-offre__detail li { display: flex; justify-content: space-between; gap: var(--e-3); padding: 6px 10px; border-radius: var(--r-s); background: var(--surface); }
.cmp__plus { display: block; margin: var(--e-4) auto 0; }
.cmp__franchise { margin-top: var(--e-6); padding: var(--e-5); border-radius: var(--r-l); background: var(--surface); border: 1px solid var(--bordure); display: grid; gap: var(--e-3); }
.cmp__franchise h2 { margin: 0; font-size: var(--t-xl); color: var(--marine); }
.cmp__frais { display: grid; gap: var(--e-2); font-size: var(--t-s); font-weight: 600; }
.cmp__frais input { width: 100%; accent-color: var(--bleu); }
.cmp__franchise-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: var(--e-2); }
.cmp-fr { display: grid; gap: 2px; padding: var(--e-3); border-radius: var(--r-m); background: #fff; border: 1px solid var(--bordure); transition: transform var(--duree), border-color var(--duree); }
.cmp-fr span, .cmp-fr small { font-size: var(--t-xs); color: var(--texte-doux); }
.cmp-fr strong { font-size: var(--t-l); color: var(--marine); }
.cmp-fr em { font-style: normal; font-size: 0.75rem; font-weight: 700; color: var(--succes); }
.cmp-fr--meilleure { border: 2px solid var(--succes); background: #F0FAF4; transform: translateY(-2px); }
.cmp-lead { margin-top: var(--e-7); scroll-margin-top: 90px; }
.cmp__source { margin-top: var(--e-5); font-size: var(--t-xs); color: var(--texte-doux); }
@media (max-width: 900px) {
  .cmp { grid-template-columns: 1fr; }
  .cmp__reglages { position: static; max-height: none; overflow: visible; }
}
@media (max-width: 560px) {
  .cmp .grille-champs { grid-template-columns: 1fr; }
  .cmp-offre { grid-template-columns: 32px minmax(0, 1fr); grid-template-areas: "rang infos" "rang prix" "actions actions"; }
  .cmp-offre__prix { text-align: left; }
}
@media (prefers-reduced-motion: reduce) { .cmp-offre, .cmp__vide .icone { animation: none; } }

/* Complémentaires maladie */
.formules--lca { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.formules--lca + .formules--lca { margin-top: var(--e-3); }
.formules--lca .formule ul { font-size: var(--t-xs); }
.lca-bloc { display: grid; gap: var(--e-3); padding: var(--e-4); border: 1px solid var(--bordure); border-radius: var(--r-l); background: var(--surface); }
.lca-bloc[hidden] { display: none; }
.resultat-prestations { display: grid; gap: var(--e-3); }
.resultat-prestations [data-affiche="prestations"] { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--e-3); }
.resultat-prestations__bloc { padding: var(--e-4); border-radius: var(--r-m); background: var(--bleu-pale); }
.resultat-prestations__bloc p { margin: 0 0 var(--e-2); font-weight: 800; color: var(--marine); }
.resultat-prestations__bloc ul { margin: 0; padding-left: 1.1em; font-size: var(--t-s); display: grid; gap: 4px; }

/* Illustration animée du haut des pages produit */
.illu-produit { position: relative; max-width: 520px; height: 250px; margin-top: var(--e-6); }
.ip-halo { position: absolute; inset: 20px 40px 0 20px; border-radius: 50%; background: radial-gradient(circle, var(--accent-pale), transparent 70%); animation: ip-respire 5s ease-in-out infinite; }
.ip-carte { position: absolute; left: 24px; top: 24px; width: 240px; padding: 18px; border-radius: var(--r-l); background: #fff; border: 1px solid var(--bordure); box-shadow: var(--ombre-2); display: grid; gap: 14px; animation: ip-flotte 6s ease-in-out infinite; }
.ip-tete { display: flex; align-items: center; gap: 10px; }
.ip-icone { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: var(--accent-pale); color: var(--accent-texte); flex: none; }
.ip-icone .icone { width: 24px; height: 24px; }
.ip-titre { font-weight: 800; font-size: var(--t-s); color: var(--marine); line-height: 1.2; }
.ip-lignes { display: grid; gap: 8px; }
.ip-lignes span { display: block; height: 8px; border-radius: var(--r-plein); background: var(--surface); position: relative; overflow: hidden; }
.ip-lignes span::after { content: ""; position: absolute; inset: 0; width: 0; border-radius: inherit; background: var(--accent-pale); animation: ip-ligne 4.5s ease-in-out infinite; }
.ip-lignes span:nth-child(2)::after { animation-delay: .4s; } .ip-lignes span:nth-child(3)::after { animation-delay: .8s; }
.ip-lignes span:nth-child(2) { width: 82%; } .ip-lignes span:nth-child(3) { width: 64%; }
.ip-barre { height: 10px; border-radius: var(--r-plein); background: var(--surface); overflow: hidden; }
.ip-barre span { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, var(--accent-decor), var(--accent-texte)); animation: ip-barre 4.5s cubic-bezier(.2,.8,.2,1) infinite; }
.ip-sceau { position: absolute; right: -14px; top: -14px; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: var(--succes); color: #fff; box-shadow: 0 6px 14px -6px rgba(30,127,79,.8); animation: ip-sceau 4.5s ease-in-out infinite; }
.ip-sceau .icone { width: 20px; height: 20px; }
.ip-puce { position: absolute; display: inline-flex; align-items: center; gap: 6px; max-width: 230px; padding: 8px 12px; border-radius: var(--r-plein); background: #fff; border: 1px solid var(--bordure); box-shadow: var(--ombre-1); font-size: var(--t-xs); font-weight: 700; color: var(--marine); line-height: 1.25; opacity: 0; animation: ip-puce 9s ease-in-out infinite; }
.ip-puce .icone { color: var(--succes); flex: none; }
.ip-puce--1 { left: 236px; top: 62px; }
.ip-puce--2 { left: 256px; top: 128px; animation-delay: 3s; }
.ip-puce--3 { left: 206px; top: 196px; animation-delay: 6s; }
.theme-pro .ip-puce .icone { color: var(--or-texte); }
@keyframes ip-flotte { 50% { transform: translateY(-8px) rotate(-1deg); } }
@keyframes ip-respire { 50% { transform: scale(1.06); opacity: .8; } }
@keyframes ip-ligne { 0% { width: 0; } 40%, 80% { width: 100%; } 100% { width: 100%; opacity: 0; } }
@keyframes ip-barre { 0%, 10% { width: 0; } 55%, 90% { width: 100%; } 100% { width: 100%; } }
@keyframes ip-sceau { 0%, 45% { transform: scale(0); } 55% { transform: scale(1.15); } 62%, 92% { transform: scale(1); } 100% { transform: scale(0); } }
@keyframes ip-puce { 0% { opacity: 0; transform: translateX(16px); } 6%, 30% { opacity: 1; transform: none; } 36%, 100% { opacity: 0; transform: translateY(-6px); } }
@media (max-width: 900px) { .illu-produit { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .ip-halo, .ip-carte, .ip-lignes span::after, .ip-barre span, .ip-sceau, .ip-puce { animation: none; }
  .ip-puce, .ip-sceau { opacity: 1; transform: none; } .ip-barre span, .ip-lignes span::after { width: 100%; }
}

/* Comparateur LAMal : appel au conseil et page de demande */
.cmp-appel { margin-top: var(--e-7); }
.cmp-appel__boite { display: grid; grid-template-columns: auto 1fr auto; gap: var(--e-4); align-items: center; padding: var(--e-5); border-radius: var(--r-l); background: var(--marine); color: #fff; box-shadow: var(--ombre-2); }
.cmp-appel__boite p { margin: 0; color: rgba(255,255,255,.85); font-size: var(--t-s); }
.cmp-appel__titre { font-weight: 800; font-size: var(--t-l) !important; color: #fff !important; margin-bottom: 4px !important; }
.cmp-appel__icone { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.12); color: var(--or-clair); }
@media (max-width: 640px) { .cmp-appel__boite { grid-template-columns: 1fr; } }
.cmp-conseil .panneau-form { margin-top: var(--e-5); }
.cmp-recap { display: grid; grid-template-columns: auto 1fr auto; gap: var(--e-2) var(--e-4); align-items: center; margin-top: var(--e-5); padding: var(--e-4) var(--e-5); border-radius: var(--r-l); background: #fff; border: 2px solid var(--bleu-vif); box-shadow: var(--ombre-1); animation: cmp-entree .4s var(--courbe) both; }
.cmp-recap[hidden] { display: none; }
.cmp-recap__icone { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--bleu-pale); color: var(--bleu); }
.cmp-recap p { margin: 0; }
.cmp-recap__label { font-size: var(--t-xs); font-weight: 700; color: var(--texte-doux); text-transform: uppercase; letter-spacing: .04em; }
.cmp-recap__offre { color: var(--marine); }
.cmp-recap__offre strong { font-size: var(--t-l); margin-right: 4px; }
.cmp-recap__detail { font-size: var(--t-xs); color: var(--texte-doux); }
.cmp-recap__prix { text-align: right; display: grid; }
.cmp-recap__prix strong { font-size: var(--t-xl); color: var(--marine); white-space: nowrap; }
.cmp-recap__prix span { font-size: var(--t-xs); color: var(--texte-doux); }
.cmp-recap__modifier { grid-column: 2 / -1; justify-self: start; font-size: var(--t-xs); font-weight: 700; }
@media (max-width: 560px) { .cmp-recap { grid-template-columns: auto 1fr; } .cmp-recap__prix { grid-column: 2; text-align: left; } }
.cmp-plus { display: grid; gap: var(--e-3); padding: var(--e-4); border-radius: var(--r-m); background: var(--bleu-pale); border: 1px solid var(--bleu-ciel); }
.cmp-plus__case { display: grid; grid-template-columns: auto auto 1fr; gap: var(--e-3); align-items: center; cursor: pointer; font-size: var(--t-s); color: var(--texte-doux); }
.cmp-plus__case strong { display: block; color: var(--marine); font-size: var(--t-m); }
.cmp-plus__case input { width: 20px; height: 20px; accent-color: var(--bleu); }
.cmp-plus__icone { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--bleu); animation: ip-respire 3s ease-in-out infinite; }
.cmp-plus__choix { display: flex; flex-wrap: wrap; gap: var(--e-2); }
.cmp-plus__choix[hidden] { display: none; }
.cmp-plus__choix .fe__aide { flex-basis: 100%; margin: 0; }
.cmp-plus__puce { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: var(--r-plein); background: #fff; border: 1px solid var(--bordure); font-size: var(--t-s); font-weight: 600; cursor: pointer; transition: border-color var(--duree), background var(--duree); }
.cmp-plus__puce input { accent-color: var(--bleu); }
.cmp-plus__puce:has(input:checked) { border-color: var(--bleu); background: #fff; color: var(--bleu); box-shadow: 0 0 0 2px var(--bleu-ciel); }

/* Simulateur global des complémentaires (page Privé) */
.bloc--sante { background: radial-gradient(800px 400px at 100% 0%, var(--bleu-pale), transparent 70%), var(--surface); }
.sante { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 380px); gap: var(--e-6); align-items: start; }
.sante__reglages { display: grid; gap: var(--e-3); min-width: 0; }
.sante__profil { display: grid; grid-template-columns: 1fr 1fr auto; gap: var(--e-3); align-items: end; padding: var(--e-4); border-radius: var(--r-l); background: #fff; border: 1px solid var(--bordure); box-shadow: var(--ombre-1); }
.sante__sexe { border: 0; padding: 0; margin: 0; display: flex; gap: 4px; padding: 4px; border-radius: var(--r-plein); background: var(--surface); }
.sante__sexe legend { position: absolute; left: -9999px; }
.sante__sexe label, .sante__niveaux label { position: relative; cursor: pointer; }
.sante__sexe input, .sante__niveaux input { position: absolute; opacity: 0; }
.sante__sexe span { display: block; padding: 10px 16px; border-radius: var(--r-plein); font-weight: 700; font-size: var(--t-s); color: var(--texte-doux); transition: background var(--duree), color var(--duree); }
.sante__sexe input:checked + span { background: var(--bleu); color: #fff; }
.sante__famille { margin: 0; padding: var(--e-4); border-radius: var(--r-l); background: #fff; border: 1px solid var(--bordure); box-shadow: var(--ombre-1); display: grid; gap: var(--e-3); transition: border-color var(--duree), box-shadow var(--duree); }
.sante__famille--active { border-color: var(--bleu-vif); box-shadow: 0 10px 24px -16px rgba(21,101,168,.6); }
.sante__famille legend { display: flex; align-items: center; gap: var(--e-3); padding: 0; float: left; width: 100%; font-size: var(--t-s); color: var(--texte-doux); }
.sante__famille legend strong { display: block; color: var(--marine); font-size: var(--t-m); }
.sante__famille-icone { width: 40px; height: 40px; flex: none; border-radius: 12px; display: grid; place-items: center; background: var(--bleu-pale); color: var(--bleu); transition: transform var(--duree); }
.sante__famille--active .sante__famille-icone { background: var(--bleu); color: #fff; transform: rotate(-6deg) scale(1.05); }
.sante__niveaux { display: flex; flex-wrap: wrap; gap: 6px; clear: both; }
.sante__niveaux span { display: block; padding: 8px 14px; border-radius: var(--r-plein); border: 1px solid var(--bordure); font-size: var(--t-s); font-weight: 600; color: var(--marine); background: #fff; transition: all var(--duree); }
.sante__niveaux label:hover span { border-color: var(--bleu); }
.sante__niveaux input:checked + span { background: var(--bleu); border-color: var(--bleu); color: #fff; box-shadow: 0 6px 14px -8px rgba(21,101,168,.8); }
.sante__niveaux input[value=""]:checked + span { background: var(--surface); border-color: var(--bordure-champ); color: var(--texte-doux); box-shadow: none; }
.sante__niveaux input:focus-visible + span, .sante__sexe input:focus-visible + span { outline: 3px solid rgba(21,101,168,.35); outline-offset: 2px; }
.sante__extras { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-3); }
.sante__extra { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; padding: var(--e-3) var(--e-4); border-radius: var(--r-m); background: #fff; border: 1px solid var(--bordure); cursor: pointer; font-size: var(--t-xs); color: var(--texte-doux); }
.sante__extra strong { display: block; font-size: var(--t-s); color: var(--marine); }
.sante__extra input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--bleu); }
.sante__extra:has(input:checked) { border-color: var(--bleu); background: var(--bleu-pale); }
.sante__resultat { position: sticky; top: 90px; display: grid; gap: var(--e-3); padding: var(--e-5); border-radius: var(--r-l); background: var(--marine); color: #fff; box-shadow: var(--ombre-2); }
.sante__resultat p { margin: 0; }
.sante__label { font-size: var(--t-xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--or-clair); }
.sante__total { display: flex; align-items: baseline; gap: 8px; }
.sante__total strong { font-size: clamp(2rem, 4vw, 2.6rem); line-height: 1; font-variant-numeric: tabular-nums; }
.sante__total span, .sante__an { color: rgba(255,255,255,.75); font-size: var(--t-s); }
.sante__barre { display: flex; gap: 3px; height: 10px; border-radius: var(--r-plein); overflow: hidden; background: rgba(255,255,255,.12); }
.sante__barre span { transition: flex .45s var(--courbe); min-width: 6px; }
.sante__detail { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: var(--t-s); }
.sante__detail li { display: flex; justify-content: space-between; gap: var(--e-3); padding: 8px 10px; border-radius: var(--r-s); background: rgba(255,255,255,.07); animation: cmp-entree .3s var(--courbe) both; }
.sante__detail i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 8px; vertical-align: middle; }
.sante__prestations { font-size: var(--t-s); }
.sante__prestations summary { cursor: pointer; font-weight: 700; color: var(--or-clair); }
.sante__prestations p { margin: var(--e-3) 0 4px !important; font-weight: 700; }
.sante__prestations ul { margin: 0; padding-left: 1.1em; color: rgba(255,255,255,.85); display: grid; gap: 3px; }
.sante__resultat .bouton { width: 100%; }
.sante__resultat .bouton--secondaire { background: transparent; color: #fff; border-color: rgba(255,255,255,.5); }
.sante__note { font-size: var(--t-xs); color: rgba(255,255,255,.65); }
@media (max-width: 960px) {
  .sante { grid-template-columns: 1fr; }
  .sante__resultat { position: static; }
}
@media (max-width: 560px) {
  .sante__profil { grid-template-columns: 1fr 1fr; }
  .sante__sexe { grid-column: 1 / -1; justify-content: center; }
  .sante__extras { grid-template-columns: 1fr; }
}
.sante__detail strong { white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Simulateur d'intérêts composés (Placements) */
.interets { display: grid; gap: var(--e-4); }
.interets .form-titre, .interets .form-sous-titre { margin: 0; }
.interets__curseurs { display: grid; gap: var(--e-3); }
.interets__curseur { display: grid; grid-template-columns: 1fr auto; gap: 4px var(--e-3); font-size: var(--t-s); font-weight: 600; color: var(--texte); }
.interets__curseur strong { color: var(--bleu); font-variant-numeric: tabular-nums; }
.interets__curseur input { grid-column: 1 / -1; width: 100%; accent-color: var(--bleu); }
.interets__profils { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.interets__profils label { position: relative; cursor: pointer; }
.interets__profils input { position: absolute; opacity: 0; }
.interets__profils span { display: grid; gap: 2px; height: 100%; padding: 8px 6px; border-radius: var(--r-m); border: 1px solid var(--bordure); text-align: center; font-size: var(--t-xs); font-weight: 700; color: var(--marine); transition: all var(--duree); }
.interets__profils small { font-weight: 500; color: var(--texte-doux); }
.interets__profils input:checked + span { background: var(--bleu); border-color: var(--bleu); color: #fff; }
.interets__profils input:checked + span small { color: rgba(255,255,255,.8); }
.interets__profils input:focus-visible + span { outline: 3px solid rgba(21,101,168,.35); outline-offset: 2px; }
.interets__resultat { display: grid; gap: var(--e-2); padding: var(--e-4); border-radius: var(--r-l); background: var(--marine); color: #fff; }
.interets__resultat p { margin: 0; }
.interets__label { font-size: var(--t-xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--or-clair); }
.interets__total { font-size: clamp(1.8rem, 3.5vw, 2.4rem); font-weight: 800; line-height: 1.1; font-variant-numeric: tabular-nums; }
.interets__chiffres { display: grid; gap: 4px; font-size: var(--t-s); color: rgba(255,255,255,.8); }
.interets__chiffres strong { color: #fff; }
.interets__pastille { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 8px; vertical-align: middle; }
.interets__pastille--verse { background: #3A9AE0; } .interets__pastille--gain { background: var(--or-clair); }
.interets__graphe { display: flex; align-items: flex-end; gap: 3px; height: 120px; margin-top: var(--e-2); }
.interets__an { flex: 1; display: flex; align-items: flex-end; border-radius: 4px 4px 0 0; background: var(--or-clair); overflow: hidden; transition: height .4s var(--courbe); }
.interets__an i { display: block; width: 100%; background: #3A9AE0; transition: height .4s var(--courbe); }
.interets__ecart { font-size: var(--t-s); color: var(--or-clair); font-weight: 600; }
.interets__note { margin: 0; font-size: var(--t-xs); color: var(--texte-doux); }
.form-repli { margin-top: var(--e-4); }
.form-repli > summary { list-style: none; width: 100%; cursor: pointer; }
.form-repli > summary::-webkit-details-marker { display: none; }
.form-repli[open] > summary { margin-bottom: var(--e-4); }
.form-repli[open] .formulaire { animation: cmp-entree .35s var(--courbe) both; }
@media (max-width: 480px) { .interets__profils { grid-template-columns: repeat(2, 1fr); } }
.sante__verrou { position: relative; display: grid; gap: 6px; }
.sante__total .floute, .sante__detail .floute { filter: blur(12px); user-select: none; }
.sante__verrou-texte { display: inline-flex; align-items: center; gap: 6px; font-size: var(--t-xs); font-weight: 700; color: var(--or-clair); }
.sante__an { font-weight: 600; }
.sante input[aria-invalid="true"] { border-color: var(--erreur); box-shadow: 0 0 0 3px rgba(180,35,24,.15); }

/* Fenêtre de demande (placements) */
.modale { width: min(760px, calc(100% - 24px)); max-height: calc(100vh - 32px); padding: 0; border: 0; border-radius: var(--r-l); box-shadow: 0 40px 80px -30px rgba(11,37,69,.55); background: #fff; color: var(--texte); overflow: auto; }
.modale::backdrop { background: rgba(11,37,69,.55); backdrop-filter: blur(3px); }
.modale[open] { animation: modale-entree .35s var(--courbe); }
@keyframes modale-entree { from { opacity: 0; transform: translateY(16px) scale(.98); } }
.modale__haut { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: flex-start; gap: var(--e-4); padding: var(--e-5) var(--e-5) var(--e-3); background: #fff; border-bottom: 1px solid var(--bordure); }
.modale__titre { margin: 2px 0 0; font-size: var(--t-xl); color: var(--marine); }
.modale__fermer { width: 40px; height: 40px; flex: none; border-radius: 50%; border: 1px solid var(--bordure); background: #fff; color: var(--marine); display: grid; place-items: center; cursor: pointer; }
.modale__fermer:hover { background: var(--surface); }
.modale .formulaire { padding: var(--e-4) var(--e-5) var(--e-5); }
.modale__etapes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--e-2); counter-reset: etape; }
.modale__etapes li { counter-increment: etape; display: flex; align-items: center; gap: 8px; font-size: var(--t-xs); font-weight: 700; color: var(--texte-doux); }
.modale__etapes li::before { content: counter(etape); width: 26px; height: 26px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--surface); border: 1px solid var(--bordure); }
.modale__etapes li.actif { color: var(--marine); }
.modale__etapes li.actif::before { background: var(--bleu); border-color: var(--bleu); color: #fff; }
.modale__etapes li.fait::before { content: "✓"; background: var(--succes); border-color: var(--succes); color: #fff; }
.modale__etape { border: 0; margin: 0; padding: 0; display: grid; gap: var(--e-3); min-width: 0; }
.modale__etape[hidden] { display: none; }
.modale__etape .fe__sous-question { margin-top: var(--e-2); }
.choix-cartes--puces { display: flex; flex-wrap: wrap; gap: 8px; }
.choix-cartes--puces .choix-carte { padding: 10px 14px; min-height: 0; }
.modale__suivant { justify-self: start; min-width: 200px; }
.modale__actions { display: flex; gap: var(--e-3); flex-wrap: wrap; }
.modale__retour { justify-self: start; }
body.modale-ouverte { overflow: hidden; }
.interets__cta { width: 100%; margin-top: var(--e-4); }
.interets__rassure { display: flex; align-items: center; justify-content: center; gap: 6px; margin: var(--e-2) 0 0; font-size: var(--t-xs); color: var(--texte-doux); }
.interets__rassure .icone { color: var(--succes); }
@media (max-width: 560px) { .modale__etapes li { font-size: 0; } .modale__etapes li::before { font-size: var(--t-xs); } }
.simulateur__suite { display: grid; justify-items: center; gap: var(--e-2); margin-top: var(--e-5); text-align: center; }
.simulateur__suite .bouton { min-width: min(100%, 360px); }
.simulateur__suite p { display: flex; align-items: center; gap: 6px; margin: 0; font-size: var(--t-xs); color: var(--texte-doux); }
.simulateur__suite .icone { color: var(--succes); }
.demande-3a .panneau-form { margin-top: var(--e-5); }
.sante__niveau-amb { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding-top: var(--e-2); border-top: 1px dashed var(--bordure); font-size: var(--t-xs); font-weight: 700; color: var(--texte-doux); }
.sante__niveau-amb label { position: relative; cursor: pointer; }
.sante__niveau-amb input { position: absolute; opacity: 0; }
.sante__niveau-amb span span, .sante__niveau-amb label > span { display: block; padding: 6px 12px; border-radius: var(--r-plein); background: var(--surface); color: var(--marine); font-size: var(--t-xs); }
.sante__niveau-amb small { font-weight: 500; color: var(--texte-doux); }
.sante__niveau-amb input:checked + span { background: var(--marine); color: #fff; }
.sante__niveau-amb input:checked + span small { color: rgba(255,255,255,.75); }
.sante__niveaux input[type=checkbox]:checked + span { background: var(--bleu); border-color: var(--bleu); color: #fff; }
.sante__extras { grid-template-columns: 1fr; }
.formule--aucune { grid-column: 1 / -1; display: grid; place-items: center; min-height: 0; padding-block: var(--e-3); }

/* Menu : produits rangés par domaine */
.sous-menu__panneau { width: min(680px, 94vw); }
.sous-menu__domaines { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-2) var(--e-4); }
.sous-menu__domaine-titre { margin: var(--e-2) 0 2px var(--e-2); font-size: 0.75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--bleu); }
.sous-menu--pro .sous-menu__domaine-titre { color: var(--or-texte); }
.sous-menu__domaine li a { min-height: 40px; }
@media (max-width: 1080px) { .sous-menu__panneau { width: 100%; } .sous-menu__domaines { grid-template-columns: 1fr; } }
@media (min-width: 1081px) { .sous-menu--pro .sous-menu__panneau { left: auto; right: 0; transform: none; } }
.modale__progression { display: grid; gap: 6px; }
.modale__progression p { margin: 0; font-size: var(--t-xs); font-weight: 700; color: var(--texte-doux); }
.modale__progression div { height: 6px; border-radius: var(--r-plein); background: var(--bleu-pale); overflow: hidden; }
.modale__progression span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--bleu-vif), var(--bleu)); border-radius: inherit; transition: width .4s var(--courbe); }
.modale__question { padding: 0; margin-bottom: var(--e-2); font-size: clamp(1.25rem, 2.4vw, 1.6rem); font-weight: 800; line-height: 1.25; color: var(--marine); }
.modale__choix { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.modale__choix .choix-carte { flex-direction: row; align-items: center; justify-content: flex-start; gap: 14px; text-align: left; min-height: 64px; padding: 14px 18px; border-width: 1.5px; box-shadow: var(--ombre-1); }
.modale__choix .choix-carte:hover { transform: translateY(-2px); }
.modale__choix .choix-carte__icone { width: 44px; height: 44px; flex: none; }
.modale__choix .choix-carte__icone .icone { width: 22px; height: 22px; }
.choix-carte__texte { flex: 1; min-width: 0; display: grid; gap: 2px; }
.modale__choix .choix-carte__titre { font-size: var(--t-m); line-height: 1.3; }
.modale__choix .choix-carte__detail { font-size: var(--t-xs); line-height: 1.4; }
.choix-carte__coche { flex: none; width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--bordure); background: var(--fond); display: grid; place-items: center; transition: background-color .2s, border-color .2s; }
.choix-carte__coche--checkbox { border-radius: 6px; }
.choix-carte__coche::after { content: ""; width: 6px; height: 11px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: translateY(-1px) rotate(45deg); opacity: 0; }
.choix-carte:has(input:checked) .choix-carte__coche { background: var(--bleu); border-color: var(--bleu); }
.choix-carte:has(input:checked) .choix-carte__coche::after { opacity: 1; }
.choix-carte:hover .choix-carte__coche { border-color: var(--bleu-vif); }
@media (max-width: 560px) { .modale__choix { grid-template-columns: 1fr; } }
.modale .avancee { display: none; }
.sante__accroche { display: flex; gap: 8px; align-items: flex-start; font-size: var(--t-s); color: rgba(255,255,255,.85); }
.sante__accroche .icone { color: var(--or-clair); flex: none; margin-top: 3px; }
.sante > .sante__prestations { grid-column: 1 / -1; display: grid; gap: var(--e-4); }
.sante > .sante__prestations h3 { margin: 0; font-size: var(--t-xl); color: var(--marine); }
.sante__prestations-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--e-4); }
.sante__prestation { padding: var(--e-4) var(--e-5); border-radius: var(--r-l); background: #fff; border: 1px solid var(--bordure); border-top: 5px solid var(--teinte, var(--bleu)); box-shadow: var(--ombre-1); animation: cmp-entree .35s var(--courbe) both; }
.sante__prestation h4 { margin: 0 0 var(--e-3); font-size: var(--t-m); color: var(--marine); }
.sante__prestation ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; font-size: var(--t-s); color: var(--texte); }
.sante__prestation li { position: relative; padding-left: 26px; }
.sante__prestation li::before { content: "✓"; position: absolute; left: 0; top: 0; width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; font-size: 11px; font-weight: 800; background: #E7F5EC; color: var(--succes); }
.sante__recap .sante__detail li { background: var(--surface); color: var(--marine); }
.sante__recap-total { display: flex; justify-content: space-between; margin: var(--e-2) 0 0; font-weight: 700; color: var(--marine); }
.sante__recap-total strong { font-size: var(--t-l); }
.demande-etapes { list-style: none; margin: var(--e-5) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--e-3); }
.demande-etapes li { display: flex; align-items: center; gap: 10px; padding: var(--e-3); border-radius: var(--r-m); background: #fff; border: 1px solid var(--bordure); font-size: var(--t-s); font-weight: 600; color: var(--marine); }
.demande-etapes span { width: 30px; height: 30px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--bleu); color: #fff; font-weight: 800; }
.demande-impots .panneau-form { margin-top: var(--e-5); }
@media (max-width: 640px) { .demande-etapes { grid-template-columns: 1fr; } }
.demande-page .panneau-form { margin-top: var(--e-5); }
.demande-etapes-form .formulaire { display: grid; gap: var(--e-4); }
.demande-etapes-form .avancee { display: none; }
/* Carte de l'adresse choisie */
.adresse__carte { position: relative; height: 180px; border-radius: var(--r-m); overflow: hidden; border: 1px solid var(--bordure); background: #EEF2F6; animation: cmp-entree .4s var(--courbe) both; }
.adresse__tuiles { position: absolute; left: 50%; top: 50%; width: 0; height: 0; }
.adresse__tuiles img { position: absolute; width: 256px; height: 256px; max-width: none; }
.adresse__repere { position: absolute; left: 50%; top: 50%; width: 28px; height: 28px; margin: -28px 0 0 -14px; border-radius: 50% 50% 50% 0; background: var(--bleu); transform: rotate(-45deg); box-shadow: 0 6px 12px -4px rgba(11,37,69,.6); animation: repere-tombe .5s cubic-bezier(.3,1.6,.5,1) both; }
.adresse__repere::after { content: ""; position: absolute; left: 9px; top: 9px; width: 10px; height: 10px; border-radius: 50%; background: #fff; }
.adresse__attribution { position: absolute; right: 6px; bottom: 4px; padding: 1px 6px; border-radius: 4px; background: rgba(255,255,255,.85); font-size: 0.6875rem; color: var(--texte-doux); }
@keyframes repere-tombe { from { transform: translateY(-20px) rotate(-45deg); opacity: 0; } }
/* Rappel facultatif dans les simulations */
.apercu-prime__mois { margin: 0; color: var(--texte-doux); font-size: var(--t-s); }
.rappel-choix { display: grid; gap: 4px; padding-top: var(--e-2); border-top: 1px dashed var(--bordure); }
.rappel-choix .fe__sous-question, .rappel-choix .fe__aide { margin: 0; }
.rappel-boutons { display: flex; flex-wrap: wrap; gap: var(--e-3); align-items: center; }
.rappel-boutons .fe__suivant { min-width: 220px; }
[data-si-sans-contact] { display: none !important; }
[data-sans-contact] [data-si-sans-contact] { display: grid !important; }
[data-sans-contact] [data-si-contact] { display: none !important; }

/* Cartes de choix des complémentaires : plus soignées */
.formules--lca { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-3); }
.formules--lca.formules--n3, .formules--lca.formules--n6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.formules--lca.formules--n1 { grid-template-columns: 1fr; }
.formules--lca .formule { padding: var(--e-4); gap: 6px; border-width: 1.5px; background: #fff; }
.formules--lca .formule:hover { transform: translateY(-2px); }
.formules--lca .formule:has(input:checked) { border-color: var(--bleu); background: linear-gradient(180deg, var(--bleu-pale), #fff 80%); box-shadow: 0 10px 24px -16px rgba(21,101,168,.7); }
.formules--lca .formule:has(input:focus-visible) { outline: 3px solid rgba(21,101,168,.35); outline-offset: 2px; }
.formule__tete { display: flex; align-items: center; gap: var(--e-2); }
.formule__icone { width: 36px; height: 36px; flex: none; border-radius: 10px; display: grid; place-items: center; background: var(--bleu-pale); color: var(--bleu); transition: background .2s, color .2s; }
.formule__icone .icone { width: 20px; height: 20px; }
.formule:has(input:checked) .formule__icone { background: var(--bleu); color: #fff; }
.formule__tag { font-size: 0.75rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--texte-doux); }
.formule__coche { margin-left: auto; width: 22px; height: 22px; flex: none; border: 2px solid var(--bordure-champ); background: #fff; display: grid; place-items: center; transition: all .2s; }
.formule__coche--radio { border-radius: 50%; }
.formule__coche--checkbox { border-radius: 6px; }
.formule:has(input:checked) .formule__coche { border-color: var(--bleu); background: var(--bleu); box-shadow: inset 0 0 0 3px #fff; }
.formule:has(input[type=checkbox]:checked) .formule__coche { box-shadow: none; }
.formule:has(input[type=checkbox]:checked) .formule__coche::after { content: ""; width: 10px; height: 6px; border-left: 2.5px solid #fff; border-bottom: 2.5px solid #fff; transform: rotate(-45deg) translate(1px, -1px); }
.formules--lca .formule__nom { font-size: var(--t-l); line-height: 1.25; color: var(--marine); }
.formules--lca .formule:has(input:checked) .formule__nom { color: var(--bleu); }
.formules--lca .formule ul { margin-top: 2px; font-size: var(--t-xs); line-height: 1.45; }
.formules--lca .formule--aucune { grid-column: 1 / -1; display: flex; align-items: center; justify-content: flex-start; gap: var(--e-3); padding: var(--e-3) var(--e-4); border-style: dashed; background: var(--surface); }
.formules--lca .formule--aucune .formule__coche { margin-left: 0; }
.formules--lca .formule--aucune .formule__nom { font-size: var(--t-m); color: var(--texte-doux); }
@media (max-width: 720px) { .formules--lca.formules--n3, .formules--lca.formules--n6 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .formules--lca, .formules--lca.formules--n3, .formules--lca.formules--n6 { grid-template-columns: 1fr; } }
.rappel-boutons { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-3); }
.rappel-boutons .bouton { width: 100%; min-width: 0; }
@media (max-width: 560px) { .rappel-boutons { grid-template-columns: 1fr; } }
.funnel .choix-carte--compact span { font-size: var(--t-m); }
/* Options facultatives des simulations santé */
.options-lca { display: grid; gap: var(--e-3); }
.option-lca { position: relative; display: grid; grid-template-columns: auto 1fr auto; gap: var(--e-3); align-items: center; padding: var(--e-4); border: 1.5px solid var(--bordure); border-radius: var(--r-l); background: #fff; cursor: pointer; transition: border-color .2s, background .2s, box-shadow .2s; }
.option-lca:hover { border-color: var(--bleu-vif); }
.option-lca input { position: absolute; opacity: 0; pointer-events: none; }
.option-lca:has(input:focus-visible) { outline: 3px solid rgba(21,101,168,.35); outline-offset: 2px; }
.option-lca__icone { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--bleu-pale); color: var(--bleu); }
.option-lca__texte { display: grid; gap: 2px; font-size: var(--t-s); color: var(--texte-doux); }
.option-lca__texte strong { font-size: var(--t-m); color: var(--marine); }
.option-lca__bouton { padding: 8px 14px; border-radius: var(--r-plein); border: 1.5px solid var(--bleu); color: var(--bleu); font-size: var(--t-s); font-weight: 800; white-space: nowrap; }
.option-lca__ok { display: none; }
.option-lca:has(input:checked) { border-color: var(--bleu); background: linear-gradient(180deg, var(--bleu-pale), #fff 85%); box-shadow: 0 10px 24px -16px rgba(21,101,168,.7); }
.option-lca:has(input:checked) .option-lca__icone { background: var(--bleu); color: #fff; }
.option-lca:has(input:checked) .option-lca__bouton { background: var(--bleu); color: #fff; }
.option-lca:has(input:checked) .option-lca__plus { display: none; }
.option-lca:has(input:checked) .option-lca__ok { display: inline; }
.option-lca__suite { margin: -6px 0 0 var(--e-6); padding: var(--e-3) var(--e-4); border-left: 3px solid var(--bleu-ciel); }
.option-lca__suite[hidden] { display: none; }
.option-lca__suite .fe__sous-question { margin: 0 0 var(--e-2); }
@media (max-width: 560px) { .option-lca { grid-template-columns: auto 1fr; } .option-lca__bouton { grid-column: 1 / -1; justify-self: start; } .option-lca__suite { margin-left: 0; } }
.formules--lca .formule__nom { overflow-wrap: anywhere; hyphens: auto; }
/* D'autres solutions (résultat des simulations santé) */
.solutions-lca { display: grid; gap: var(--e-3); }
.solutions-lca:empty { display: none; }
.solutions-lca .fe__sous-question, .solutions-lca .fe__aide { margin: 0; }
.solutions-lca__groupe { display: grid; gap: var(--e-2); }
.solutions-lca__groupe > p { margin: 0; font-size: var(--t-xs); font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--texte-doux); }
.solutions-lca__groupe > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: var(--e-2); }
.solution-lca { display: grid; gap: 2px; padding: var(--e-3); border: 1.5px solid var(--bordure); border-radius: var(--r-m); background: #fff; text-align: left; font: inherit; cursor: pointer; transition: border-color .2s, transform .2s, background .2s; }
.solution-lca:hover { border-color: var(--bleu-vif); transform: translateY(-2px); }
.solution-lca span { font-size: var(--t-s); font-weight: 700; color: var(--marine); }
.solution-lca strong { font-size: var(--t-l); color: var(--bleu); font-variant-numeric: tabular-nums; }
.solution-lca small { font-size: var(--t-xs); color: var(--texte-doux); }
.solution-lca--actif { border-color: var(--bleu); background: var(--bleu-pale); box-shadow: inset 0 0 0 1px var(--bleu); }
.pulse { animation: pulse-prix .5s ease; }
@keyframes pulse-prix { 50% { transform: scale(1.06); } }
/* Situations illustrées et prestations détaillées (simulations) */
.situations { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-3); }
.situation { position: relative; display: grid; gap: 6px; align-content: start; padding: var(--e-4); border: 1.5px solid var(--bordure); border-radius: var(--r-l); background: #fff; cursor: pointer; transition: border-color .2s, transform .2s, box-shadow .2s, background .2s; }
.situation:hover { transform: translateY(-2px); border-color: var(--bleu-vif); }
.situation input { position: absolute; opacity: 0; pointer-events: none; }
.situation:has(input:focus-visible) { outline: 3px solid rgba(21,101,168,.35); outline-offset: 2px; }
.situation__icone { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--bleu-pale); color: var(--bleu); transition: background .2s, color .2s, transform .2s; }
.situation__titre { font-weight: 800; color: var(--marine); }
.situation__texte { font-size: var(--t-xs); color: var(--texte-doux); line-height: 1.45; }
.situation .formule__coche { position: absolute; top: var(--e-4); right: var(--e-4); margin: 0; }
.situation:has(input:checked) { border-color: var(--bleu); background: linear-gradient(180deg, var(--bleu-pale), #fff 85%); box-shadow: 0 10px 24px -16px rgba(21,101,168,.7); }
.situation:has(input:checked) .situation__icone { background: var(--bleu); color: #fff; transform: rotate(-6deg) scale(1.05); }
.situation:has(input:checked) .formule__coche { border-color: var(--bleu); background: var(--bleu); }
.situation:has(input:checked) .formule__coche::after { content: ""; width: 10px; height: 6px; border-left: 2.5px solid #fff; border-bottom: 2.5px solid #fff; transform: rotate(-45deg) translate(1px, -1px); }
@media (max-width: 720px) { .situations { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 460px) { .situations { grid-template-columns: 1fr; } }
.prestations-detail { display: grid; gap: var(--e-3); }
.prestations-detail .fe__sous-question { margin: 0; }
.prestations-detail__grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-3); }
.prestation-detail { display: grid; grid-template-columns: auto 1fr; gap: var(--e-3); align-items: start; padding: var(--e-4); border-radius: var(--r-m); background: var(--bleu-pale); animation: cmp-entree .4s var(--courbe) both; }
.prestation-detail:nth-child(2) { animation-delay: .05s; } .prestation-detail:nth-child(3) { animation-delay: .1s; } .prestation-detail:nth-child(4) { animation-delay: .15s; } .prestation-detail:nth-child(5) { animation-delay: .2s; } .prestation-detail:nth-child(6) { animation-delay: .25s; }
.prestation-detail__icone { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: #fff; color: var(--bleu); }
.prestation-detail strong { color: var(--marine); }
.prestation-detail p { margin: 2px 0 0; font-size: var(--t-s); color: var(--texte-doux); line-height: 1.5; }
@media (max-width: 600px) { .prestations-detail__grille { grid-template-columns: 1fr; } }

/* ---------- Comparateur de taux hypothécaires ---------- */
.hypo-maj { display: inline-flex; align-items: center; gap: 6px; margin: var(--e-3) 0 0; padding: 6px 12px; border-radius: var(--r-plein); background: #E7F5EC; color: var(--succes); font-weight: 700; font-size: var(--t-s); }
.hypo-titre { margin: var(--e-7) 0 var(--e-4); font-size: var(--t-xl); color: var(--marine); }
.hypo-taux { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--e-4); }
@media (max-width: 960px) { .hypo-taux { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { .hypo-taux { grid-template-columns: 1fr; } }
.hypo-carte { display: grid; gap: 4px; text-align: left; padding: var(--e-5); border-radius: var(--r-l); border: 1.5px solid var(--bordure); background: var(--fond); box-shadow: var(--ombre-1); font: inherit; color: var(--texte); cursor: pointer; transition: border-color var(--duree) var(--courbe), transform var(--duree) var(--courbe); }
.hypo-carte:hover { border-color: var(--bleu); transform: translateY(-2px); }
.hypo-carte:focus-visible { outline: 3px solid var(--bleu-pale); border-color: var(--bleu); }
.hypo-carte--choisie { border-color: var(--bleu); background: var(--bleu-pale); }
.hypo-carte__nom { font-weight: 700; color: var(--marine); }
.hypo-carte__taux { font-size: 2rem; font-weight: 800; color: var(--bleu); font-variant-numeric: tabular-nums; }
.hypo-carte__fourchette { font-size: var(--t-xs); color: var(--texte-doux); }
.hypo-carte__courbe { width: 100%; height: 28px; margin-top: var(--e-2); color: var(--bleu); opacity: .7; }
.hypo-note { font-size: var(--t-s); color: var(--texte-doux); margin: var(--e-4) 0 0; }
.hypo-calc { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: var(--e-6); align-items: start; }
@media (max-width: 860px) { .hypo-calc { grid-template-columns: 1fr; } }
.hypo-calc__reglages { display: grid; gap: var(--e-4); padding: var(--e-6); border-radius: var(--r-l); background: var(--fond); border: 1px solid var(--bordure); }
.hypo-calc__resultat { display: grid; gap: var(--e-3); padding: var(--e-6); border-radius: var(--r-l); background: var(--marine); color: #fff; box-shadow: var(--ombre-2); }
.hypo-calc__label { margin: 0; color: var(--or-clair); font-weight: 700; }
.hypo-calc__total { margin: 0; display: flex; align-items: baseline; gap: var(--e-2); }
.hypo-calc__total strong { font-size: clamp(2rem, 5vw, 2.8rem); font-variant-numeric: tabular-nums; }
.hypo-calc__total span { color: #DCE4EF; }
.hypo-calc__detail { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.hypo-calc__detail li { display: flex; justify-content: space-between; gap: var(--e-3); padding: 10px 14px; border-radius: var(--r-m); background: rgba(255, 255, 255, .08); }
.hypo-calc__detail small { display: block; color: #B9C6D8; font-size: var(--t-xs); }
.hypo-calc__detail strong { white-space: nowrap; font-variant-numeric: tabular-nums; }
.hypo-calc__fourchette { margin: 0; font-size: var(--t-s); color: #DCE4EF; }
.hypo-jauges { display: grid; gap: var(--e-3); }
.hypo-jauge p { display: flex; justify-content: space-between; gap: var(--e-3); margin: 0 0 6px; font-size: var(--t-s); }
.hypo-jauge > div { height: 8px; border-radius: var(--r-plein); background: rgba(255, 255, 255, .15); overflow: hidden; }
.hypo-jauge > div > span { display: block; height: 100%; width: 0; border-radius: inherit; background: #5BC88A; transition: width var(--duree) var(--courbe); }
.hypo-jauge[data-etat="attention"] > div > span { background: var(--or-clair); }
.hypo-jauge[data-etat="alerte"] > div > span { background: #F08A8A; }
.hypo-jauge small { display: block; margin-top: 4px; color: #DCE4EF; font-size: var(--t-xs); }
.hypo-calc__resultat .hypo-note { color: #B9C6D8; margin: 0; }
.hypo-sous-titre { margin: var(--e-7) 0 var(--e-4); color: var(--marine); }
.hypo-table-wrap { overflow-x: auto; border-radius: var(--r-l); border: 1px solid var(--bordure); background: var(--fond); }
.hypo-table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.hypo-table th, .hypo-table td { padding: 12px 16px; text-align: right; border-bottom: 1px solid var(--bordure); white-space: nowrap; }
.hypo-table th:first-child { text-align: left; }
.hypo-table thead th { font-size: var(--t-xs); text-transform: uppercase; letter-spacing: .04em; color: var(--texte-doux); }
.hypo-table tbody tr:last-child > * { border-bottom: 0; }
.hypo-table__choisie { background: var(--bleu-pale); font-weight: 700; }
.hypo-graphe { padding: var(--e-5); border-radius: var(--r-l); border: 1px solid var(--bordure); background: var(--fond); }
.hypo-graphe svg { width: 100%; height: auto; display: block; }
.hypo-graphe__grille { stroke: var(--bordure); stroke-width: 1; }
.hypo-graphe__axe { font-size: 11px; fill: var(--texte-doux); }
.hypo-graphe__ligne { fill: none; stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
circle.hypo-graphe__ligne--saron, circle.hypo-graphe__ligne--fixe5, circle.hypo-graphe__ligne--fixe10 { stroke: var(--fond); stroke-width: 2; }
.hypo-graphe__ligne--saron { stroke: #C9A227; } circle.hypo-graphe__ligne--saron { fill: #C9A227; }
.hypo-graphe__ligne--fixe5 { stroke: #4A90D9; } circle.hypo-graphe__ligne--fixe5 { fill: #4A90D9; }
.hypo-graphe__ligne--fixe10 { stroke: #0B2545; } circle.hypo-graphe__ligne--fixe10 { fill: #0B2545; }
.hypo-legende { display: flex; flex-wrap: wrap; gap: var(--e-4); list-style: none; margin: var(--e-3) 0 0; padding: 0; font-size: var(--t-s); color: var(--texte-doux); }
.hypo-legende li { display: inline-flex; align-items: center; gap: 8px; }
.hypo-legende__trait { width: 20px; height: 3px; border-radius: 2px; }
.hypo-legende__trait--saron { background: #C9A227; } .hypo-legende__trait--fixe5 { background: #4A90D9; } .hypo-legende__trait--fixe10 { background: #0B2545; }
.hypo-source { font-size: var(--t-s); color: var(--texte-doux); margin: 0; }
.hypo-table th, .hypo-table td { background: none; color: var(--texte); }
.hypo-table tbody th { color: var(--marine); font-weight: 700; }
.hypo-table thead th { color: var(--texte-doux); }
.hypo-table .hypo-table__choisie > * { background: var(--bleu-pale); }

/* Bandeau cookies (discret) */
.cookies { position: fixed; inset: 0; z-index: 200; display: flex; align-items: flex-end; justify-content: center; padding: 16px; background: rgba(11, 37, 69, .18); animation: cookies-fondu .3s ease; }
.cookies__boite { width: min(560px, 100%); display: flex; align-items: center; gap: 14px; padding: 14px 14px 14px 18px; background: #fff; color: var(--texte); border-radius: var(--r-l); box-shadow: 0 12px 40px -12px rgba(11,37,69,.45); animation: cookies-monte .35s ease; }
.cookies__boite p { margin: 0; flex: 1; font-size: var(--t-xs); color: var(--texte-doux); line-height: 1.45; }
.cookies__boite a { color: var(--bleu); }
.cookies__actions { display: flex; gap: 8px; flex: none; }
.cookies__actions button { min-height: 40px; padding: 0 16px; border-radius: var(--r-plein); font: inherit; font-weight: 700; font-size: var(--t-xs); cursor: pointer; }
.cookies__oui { background: var(--marine); color: #fff; border: 0; min-width: 72px; }
.cookies__oui:hover { background: var(--marine-2); }
.cookies__non { background: none; color: var(--texte-doux); border: 1px solid var(--bordure); }
.cookies[hidden] { display: none; }
html.cookies-ouvert { overflow: hidden; }
@keyframes cookies-fondu { from { background: rgba(11,37,69,0); } }
@keyframes cookies-monte { from { transform: translateY(24px); opacity: 0; } }
@media (max-width: 520px) { .cookies__boite { flex-direction: column; align-items: stretch; text-align: center; } .cookies__actions button { flex: 1; } }
.pied__cookies { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; cursor: pointer; }

/* ---------- Téléphone : tableaux, cibles tactiles ---------- */
.tableau { margin: 0 0 var(--e-5); }
.tableau table { margin: 0; }
@media (max-width: 640px) {
  .tableau table, .tableau tbody, .tableau tr, .tableau td { display: block; width: 100%; }
  .tableau table { box-shadow: none; background: none; }
  .tableau thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .tableau tr { margin-bottom: var(--e-3); padding: var(--e-3) var(--e-4); border: 1px solid var(--bordure); border-radius: var(--r-m); background: var(--fond); box-shadow: var(--ombre-1); }
  .tableau td { padding: 6px 0; border: 0; }
  .tableau td + td { border-top: 1px dashed var(--bordure); }
  .tableau td::before { content: attr(data-label); display: block; font-size: var(--t-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--texte-doux); margin-bottom: 2px; }
  .tableau td:first-child { font-weight: 700; color: var(--marine); }
  .sommaire ol { gap: 0; }
  .sommaire a { display: block; padding: 10px 0; }
  .obligations a { padding: 10px 0; }
  .contact__ligne { min-height: 44px; }
  .lien-fort { display: inline-block; padding: 8px 0; }
  input[type=range] { height: 36px; }
  .choix-carte small, .particuliers small { font-size: max(12px, var(--t-xs)); }
}
@media (max-width: 640px) { .tableau tr > * { background: none !important; } }
.merci-page .merci__suite { padding-left: 0; margin-inline: 0; list-style: none; }
.merci-page .merci__titre { overflow-wrap: anywhere; }
.merci-page { overflow-x: clip; }

/* Fenêtre « Une question ? » ouverte : redescend et tient dans l'écran */
.contact-volant__panneau { max-height: calc(100dvh - 110px); padding: var(--e-4) var(--e-5); }
.contact-volant__titre { font-size: var(--t-m); }
.contact-volant__fermer { width: 36px; height: 36px; }
.contact-volant .avancee { display: none; }
.contact-volant__whatsapp { min-height: 46px; }
.envoi-erreur { margin: var(--e-3) 0 0; padding: var(--e-3) var(--e-4); border-radius: var(--r-m); background: #FDECEC; color: #9B1C1C; font-size: var(--t-s); font-weight: 600; }
.merci__autres { margin-top: var(--e-7); text-align: center; }
.merci__autres h2 { margin: 0 0 var(--e-2); color: var(--marine); font-size: var(--t-xl); }
.merci__autres > p { margin: 0 0 var(--e-5); color: var(--texte-doux); }
.merci__grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--e-3); text-align: left; }
.merci__carte { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 10px 14px; border-radius: var(--r-m); border: 1.5px solid var(--bordure); background: var(--fond); color: var(--marine); font-weight: 700; font-size: var(--t-s); text-decoration: none; box-shadow: var(--ombre-1); transition: transform var(--duree) var(--courbe), border-color var(--duree) var(--courbe); animation: fe-entree .5s 1.7s ease both; }
.merci__carte:hover { transform: translateY(-2px); border-color: var(--bleu); color: var(--bleu); }
.merci__carte > span { flex: none; width: 34px; height: 34px; border-radius: var(--r-plein); display: grid; place-items: center; background: var(--bleu-pale); color: var(--bleu); }
.merci__carte .icone { width: 18px; height: 18px; }
@media (prefers-reduced-motion: reduce) { .merci__carte { animation: none; } }
.merci__carte { min-width: 0; line-height: 1.3; }
@media (max-width: 480px) { .merci__grille { grid-template-columns: 1fr; } }
/* Cartes « autre simulation » : 3 par ligne, centrées, texte toujours dans la carte */
.merci__grille { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--e-3); }
.merci__carte { flex: 0 1 calc((100% - 2 * var(--e-3)) / 3); }
.merci__carte b { flex: 1; min-width: 0; font-weight: 700; overflow-wrap: break-word; hyphens: auto; }
@media (max-width: 700px) { .merci__carte { flex-basis: calc((100% - var(--e-3)) / 2); } }
@media (max-width: 480px) { .merci__carte { flex-basis: 100%; } }
.merci-page .merci__actions { margin-top: var(--e-6); }
@media (min-width: 1000px) { .lp-sante__modules { grid-template-columns: repeat(5, minmax(0, 1fr)); } }

/* ---------- Page publicitaire complémentaires santé (Assuravia) ---------- */
.lp-sante__texte { margin-inline: auto; }
.lp-sante__modules-detail { display: grid; gap: var(--e-5); margin-top: var(--e-5); }
.lp-module { padding: var(--e-6); border-radius: var(--r-l); background: var(--fond); border: 1px solid var(--bordure); box-shadow: var(--ombre-1); }
.lp-module__tete { display: flex; gap: var(--e-4); align-items: flex-start; margin-bottom: var(--e-4); }
.lp-module__tete h3 { margin: 0 0 4px; color: var(--marine); font-size: var(--t-xl); }
.lp-module__tete p { margin: 0; color: var(--texte-doux); }
.lp-module__formules { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--e-3); }
.lp-module__formule { padding: var(--e-4); border-radius: var(--r-m); background: var(--bleu-pale); }
.lp-module__nom { margin: 0 0 var(--e-2); font-weight: 800; color: var(--marine); display: flex; justify-content: space-between; gap: var(--e-2); align-items: center; }
.lp-module__nom span { font-size: var(--t-xs); font-weight: 700; color: var(--bleu); background: var(--fond); padding: 2px 10px; border-radius: var(--r-plein); white-space: nowrap; }
.lp-module__formule ul { margin: 0; padding-left: 1.1em; display: grid; gap: 4px; font-size: var(--t-s); color: var(--texte); }
.lp-sante__note { margin: var(--e-5) 0; font-size: var(--t-s); color: var(--texte-doux); text-align: center; }
.lp-sante__pourqui { list-style: none; padding: 0; display: grid; gap: var(--e-3); }
.lp-sante__pourqui li { display: flex; gap: var(--e-3); align-items: flex-start; padding: var(--e-4); border-radius: var(--r-m); background: var(--fond); box-shadow: var(--ombre-1); }
.lp-sante__pourqui .icone { color: var(--succes); flex: none; margin-top: 3px; }
@media (max-width: 640px) { .lp-module { padding: var(--e-4); } .lp-module__tete { flex-direction: column; gap: var(--e-2); } }

/* Page Assuravia : départ, chiffres, prix, barre collante */
.lp-prix { display: inline-flex; align-items: baseline; gap: 8px; margin: var(--e-4) 0 0; padding: 8px 16px; border-radius: var(--r-plein); background: var(--fond); box-shadow: var(--ombre-1); color: var(--texte-doux); font-weight: 600; }
.lp-prix strong { font-size: 1.6rem; color: var(--succes); font-variant-numeric: tabular-nums; }
.lp-depart__choix { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-2); margin: var(--e-4) 0; }
.lp-depart__carte { position: relative; display: flex; align-items: center; gap: 10px; min-height: 60px; padding: 10px 12px; border-radius: var(--r-m); border: 1.5px solid var(--bordure); background: var(--fond); font-weight: 700; font-size: var(--t-s); color: var(--marine); cursor: pointer; transition: border-color .2s, background-color .2s, transform .2s; }
.lp-depart__carte:hover { transform: translateY(-2px); border-color: var(--bleu-vif); }
.lp-depart__carte input { position: absolute; opacity: 0; pointer-events: none; }
.lp-depart__carte:has(input:checked) { border-color: var(--bleu); background: var(--bleu-pale); }
.lp-depart__carte:has(input:focus-visible) { outline: 3px solid var(--or); outline-offset: 2px; }
.lp-depart__icone { flex: none; width: 36px; height: 36px; border-radius: var(--r-plein); display: grid; place-items: center; background: var(--bleu-pale); color: var(--bleu); transition: background-color .2s, color .2s; }
.lp-depart__carte:has(input:checked) .lp-depart__icone { background: var(--bleu); color: #fff; animation: lp-pop .35s ease; }
.lp-depart__icone .icone { width: 18px; height: 18px; }
@keyframes lp-pop { 50% { transform: scale(1.18); } }
.lp-depart__go { width: 100%; }
.lp-depart__rassure { list-style: none; margin: var(--e-3) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; justify-content: center; font-size: var(--t-xs); color: var(--texte-doux); }
.lp-depart__rassure li { display: inline-flex; align-items: center; gap: 4px; }
.lp-depart__rassure .icone { color: var(--succes); }
.lp-chiffres { background: var(--marine); color: #fff; }
.lp-chiffres__liste { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--e-4); padding-block: var(--e-6); text-align: center; }
@media (max-width: 700px) { .lp-chiffres__liste { grid-template-columns: 1fr 1fr; } }
.lp-module { transition: transform var(--duree) var(--courbe), box-shadow var(--duree) var(--courbe); }
.lp-module:hover { transform: translateY(-3px); box-shadow: var(--ombre-2); }
.lp-module__tete > div { flex: 1; min-width: 0; }
.lp-module__prix { flex: none; padding: 6px 12px; border-radius: var(--r-plein); background: #E7F5EC; color: var(--succes); font-size: var(--t-xs); font-weight: 600; white-space: nowrap; }
.lp-module__prix strong { font-size: var(--t-m); }
.lp-module__lien { display: inline-flex; align-items: center; gap: 6px; margin-top: var(--e-4); font-weight: 700; color: var(--bleu); text-decoration: none; }
.lp-module__lien:hover { gap: 10px; }
.lp-module__lien .icone { transition: transform .2s; }
.lp-collant { position: fixed; z-index: 55; left: 50%; bottom: 16px; transform: translateX(-50%); width: min(560px, calc(100% - 96px)); display: flex; align-items: center; justify-content: space-between; gap: var(--e-3); padding: 10px 10px 10px 18px; border-radius: var(--r-plein); background: var(--marine); color: #fff; box-shadow: var(--ombre-2); animation: lp-monte .35s ease; }
.lp-collant[hidden] { display: none; }
.lp-collant p { margin: 0; display: grid; font-size: var(--t-s); }
.lp-collant p span { color: #B9C6D8; font-size: var(--t-xs); }
.lp-collant .bouton { min-height: 44px; padding-inline: 18px; white-space: nowrap; }
@keyframes lp-monte { from { transform: translate(-50%, 20px); opacity: 0; } }
@media (max-width: 640px) { .lp-collant { left: 12px; right: 84px; width: auto; transform: none; padding-left: 14px; } .lp-collant p span { display: none; } @keyframes lp-monte { from { transform: translateY(20px); opacity: 0; } } .lp-module__tete { flex-wrap: wrap; } }
@media (prefers-reduced-motion: reduce) { .lp-collant, .lp-depart__carte:has(input:checked) .lp-depart__icone { animation: none; } }
@media (max-width: 640px) { .lp-collant { padding: 8px; } .lp-collant p { display: none; } .lp-collant .bouton { width: 100%; } }

.lp-chiffres { background: linear-gradient(135deg, var(--marine), #123A6B); }
.lp-chiffres__liste { padding-block: var(--e-7); }
.lp-chiffre { display: grid; justify-items: center; gap: 4px; }
.lp-chiffre__icone { width: 44px; height: 44px; border-radius: var(--r-plein); display: grid; place-items: center; background: rgba(255,255,255,.1); color: var(--or-clair); margin-bottom: 4px; }
.lp-chiffre__val { margin: 0; font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 800; line-height: 1; color: #fff; font-variant-numeric: tabular-nums; }
.lp-chiffre__txt { margin: 0; font-size: var(--t-s); color: #C9D5E6; }
.lp-avantages { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-5); }
@media (max-width: 900px) { .lp-avantages { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .lp-avantages { grid-template-columns: 1fr; } }
.lp-avantage { padding: var(--e-6); border-radius: var(--r-l); background: var(--fond); border: 1px solid var(--bordure); box-shadow: var(--ombre-1); transition: transform var(--duree) var(--courbe), box-shadow var(--duree) var(--courbe); }
.lp-avantage:hover { transform: translateY(-4px); box-shadow: var(--ombre-2); }
.lp-avantage__icone { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: linear-gradient(135deg, var(--bleu-pale), #fff); color: var(--bleu); box-shadow: inset 0 0 0 1px var(--bleu-ciel); }
.lp-avantage h3 { margin: var(--e-4) 0 var(--e-2); color: var(--marine); }
.lp-avantage p { margin: 0; color: var(--texte-doux); font-size: var(--t-s); line-height: 1.6; }
.lp-cas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-5); }
@media (max-width: 900px) { .lp-cas { grid-template-columns: 1fr; } }
.lp-cas__carte { display: grid; gap: var(--e-3); align-content: start; padding: var(--e-6); border-radius: var(--r-l); background: var(--fond); box-shadow: var(--ombre-1); }
.lp-cas__qui { display: flex; align-items: center; gap: 10px; margin: 0; font-weight: 800; color: var(--marine); font-size: var(--t-l); }
.lp-cas__qui span { width: 40px; height: 40px; border-radius: var(--r-plein); display: grid; place-items: center; background: var(--bleu-pale); color: var(--bleu); }
.lp-cas__situation { margin: 0; color: var(--texte); }
.lp-cas__sans, .lp-cas__avec { margin: 0; padding: var(--e-3) var(--e-4); border-radius: var(--r-m); font-size: var(--t-s); line-height: 1.5; }
.lp-cas__sans { background: #FDECEC; color: #7A1F1F; }
.lp-cas__avec { background: #E7F5EC; color: #14532D; }
.lp-cas__sans strong, .lp-cas__avec strong { display: block; font-size: var(--t-xs); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 2px; }

/* Page 3e pilier */
.p3-hero .etiquette { margin-top: var(--e-4); }
.p3-piliers { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-5); align-items: end; }
.p3-pilier { position: relative; padding: var(--e-6); padding-top: calc(var(--e-6) + 8px); border-radius: var(--r-l) var(--r-l) var(--r-m) var(--r-m); background: var(--fond); border: 1px solid var(--bordure); border-top: 6px solid var(--bleu-ciel); box-shadow: var(--ombre-1); }
.p3-pilier:nth-child(2) { border-top-color: var(--bleu); }
.p3-pilier h3 { margin: var(--e-3) 0 2px; color: var(--marine); }
.p3-pilier p { margin: 0; color: var(--texte-doux); font-size: var(--t-s); line-height: 1.6; }
.p3-pilier .p3-pilier__role { margin-bottom: var(--e-3); font-weight: 700; color: var(--bleu); }
.p3-pilier__num { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--r-plein); background: var(--bleu-pale); color: var(--bleu); font-weight: 800; font-size: var(--t-l); }
.p3-pilier--vous { background: linear-gradient(160deg, var(--marine), #123A6B); border-color: var(--marine); border-top-color: var(--or, #E0B04B); padding-bottom: calc(var(--e-6) + 24px); box-shadow: var(--ombre-2); }
.p3-pilier--vous h3 { color: #fff; }
.p3-pilier--vous p { color: #C9D5E6; }
.p3-pilier--vous p strong { color: #fff; }
.p3-pilier--vous .p3-pilier__role { color: var(--or-clair); }
.p3-pilier--vous .p3-pilier__num { background: var(--or-clair); color: var(--marine); }
.p3-pilier--vous::after { content: "Votre choix"; position: absolute; top: -14px; right: var(--e-5); padding: 4px 12px; border-radius: var(--r-plein); background: var(--or-clair); color: var(--marine); font-size: var(--t-xs); font-weight: 800; }
.p3-note { max-width: 760px; margin: var(--e-6) auto 0; color: var(--texte-doux); font-size: var(--t-s); }
.p3-note.centre { text-align: center; }
.p3-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-5); }
.p3-carte { display: flex; flex-direction: column; gap: var(--e-3); padding: var(--e-6); border-radius: var(--r-l); background: var(--fond); border: 1px solid var(--bordure); box-shadow: var(--ombre-1); }
.p3-carte h3 { margin: 0; color: var(--marine); font-size: var(--t-xl); }
.p3-carte__tag { display: inline-flex; align-self: flex-start; align-items: center; gap: 6px; margin: 0; padding: 6px 14px; border-radius: var(--r-plein); background: var(--bleu-pale); color: var(--bleu); font-size: var(--t-xs); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.p3-carte--3a { border-top: 6px solid var(--bleu); }
.p3-carte--3b { border-top: 6px solid var(--or-clair); }
.p3-carte--3b .p3-carte__tag { background: #FBF3DF; color: #7A5A12; }
.p3-liste { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--e-3); }
.p3-liste li { position: relative; padding-left: 28px; font-size: var(--t-s); line-height: 1.55; color: var(--texte); }
.p3-liste li .icone { position: absolute; left: 0; top: 2px; color: #15803D; }
.p3-liste .p3-liste__limite { color: var(--texte-doux); }
.p3-liste .p3-liste__limite .icone { color: var(--texte-doux); }
.p3-carte__pour { margin: auto 0 0; padding: var(--e-3) var(--e-4); border-radius: var(--r-m); background: var(--bleu-pale); font-size: var(--t-s); color: var(--marine); }
.p3-tableau { margin-top: var(--e-6); }
.p3-tableau td:first-child { font-weight: 700; color: var(--marine); }
.p3-duo + .p3-tableau + .centre, .p3-tableau + .centre { margin-top: var(--e-5); }
.p3-rachat { align-items: center; }
.p3-exemple { padding: var(--e-6); border-radius: var(--r-l); background: var(--fond); box-shadow: var(--ombre-2); border: 1px solid var(--bordure); }
.p3-exemple__titre { display: flex; align-items: center; gap: 8px; margin: 0 0 var(--e-3); font-weight: 800; color: var(--bleu); text-transform: uppercase; font-size: var(--t-xs); letter-spacing: .06em; }
.p3-exemple__calcul { margin: var(--e-4) 0 var(--e-5); display: grid; gap: 2px; }
.p3-exemple__calcul div { display: flex; justify-content: space-between; gap: var(--e-4); padding: 10px 0; border-bottom: 1px dashed var(--bordure); }
.p3-exemple__calcul dt { color: var(--texte-doux); }
.p3-exemple__calcul dd { margin: 0; font-weight: 700; color: var(--marine); font-variant-numeric: tabular-nums; white-space: nowrap; }
.p3-exemple__calcul .p3-exemple__total { border: 0; margin-top: 6px; padding: 12px 14px; border-radius: var(--r-m); background: var(--marine); }
.p3-exemple__total dt { color: #C9D5E6; font-weight: 700; }
.p3-exemple__total dd { color: var(--or-clair); font-size: var(--t-l); }
.p3-exemple .bouton { width: 100%; justify-content: center; }
.p3-faits { margin-bottom: var(--e-6); }
.p3-faits dt { display: flex; align-items: center; gap: 8px; }
.p3-faits dt .icone { color: var(--bleu); }
@media (max-width: 900px) {
  .p3-piliers, .p3-duo { grid-template-columns: 1fr; }
  .p3-pilier--vous { padding-bottom: var(--e-6); }
  .p3-faits { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) { .p3-faits { grid-template-columns: 1fr; } }
/* 3e pilier : mise en page avec sommaire */
.p3-grille { padding-top: var(--e-4); }
.p3-corps { max-width: none; font-size: 1.0625rem; }
.p3-corps > p, .p3-corps > blockquote, .p3-corps > .retenir { max-width: 72ch; }
.p3-corps h3 { margin-top: 0; }
.p3-corps .p3-liste, .p3-corps .p3-piliers, .p3-corps .p3-erreurs, .p3-corps .p3-verif, .p3-corps .pour-qui__liste { padding-left: 0; }
.p3-corps .p3-liste li, .p3-corps .p3-piliers li, .p3-corps .p3-erreurs li, .p3-corps .p3-verif li { margin-bottom: 0; }
.p3-corps .p3-piliers, .p3-corps .p3-duo, .p3-corps .lp-avantages, .p3-corps .p3-erreurs, .p3-corps .p3-ages, .p3-corps .p3-trio, .p3-corps .p3-rachat, .p3-corps .p3-verif { margin: var(--e-5) 0; }
.p3-corps .p3-tableau { margin-top: var(--e-5); }
.p3-corps .p3-pilier { padding: var(--e-5); padding-top: calc(var(--e-5) + 6px); }
.p3-corps .p3-pilier--vous { padding-bottom: calc(var(--e-5) + 16px); }
.p3-corps .p3-pilier h3 { font-size: var(--t-l); }
.p3-corps .p3-carte { padding: var(--e-5); }
.p3-corps .p3-carte h3 { font-size: var(--t-l); }
.p3-avantages { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-4); }
.p3-avantages .lp-avantage { padding: var(--e-5); }
.p3-avantages .lp-avantage h3 { font-size: var(--t-m); }
.p3-erreurs { list-style: none; counter-reset: erreur; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-4); }
.p3-erreur { counter-increment: erreur; position: relative; padding: var(--e-5); padding-left: calc(var(--e-5) + 44px); border-radius: var(--r-l); background: #FFF8F3; border: 1px solid #F5DCCB; }
.p3-erreur::before { content: counter(erreur); position: absolute; left: var(--e-5); top: var(--e-5); width: 32px; height: 32px; border-radius: var(--r-plein); display: grid; place-items: center; background: #B4471F; color: #fff; font-weight: 800; font-size: var(--t-s); }
.p3-erreur h3 { font-size: var(--t-m); color: var(--marine); margin-bottom: 4px; }
.p3-erreur p { margin: 0; font-size: var(--t-s); line-height: 1.6; color: var(--texte-doux); }
.p3-ages { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-4); position: relative; }
.p3-age { padding: var(--e-5); border-radius: var(--r-l); background: var(--fond); border: 1px solid var(--bordure); box-shadow: var(--ombre-1); }
.p3-age:nth-child(1) { border-top: 5px solid var(--bleu-ciel); }
.p3-age:nth-child(2) { border-top: 5px solid var(--bleu); }
.p3-age:nth-child(3) { border-top: 5px solid var(--marine); }
.p3-age__tranche { display: inline-block; margin: 0 0 var(--e-2); padding: 4px 12px; border-radius: var(--r-plein); background: var(--bleu-pale); color: var(--bleu); font-weight: 800; font-size: var(--t-xs); }
.p3-age h3 { font-size: var(--t-l); color: var(--marine); margin-bottom: var(--e-2); }
.p3-corps .p3-age ul { margin: 0; padding-left: 1.1em; font-size: var(--t-s); line-height: 1.6; color: var(--texte-doux); }
.p3-corps .p3-age li { margin-bottom: 6px; }
.p3-trio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-4); }
.p3-mini { padding: var(--e-5); border-radius: var(--r-l); background: var(--surface, #F5F8FC); border: 1px solid var(--bordure); }
.p3-mini h3 { font-size: var(--t-m); color: var(--marine); margin: var(--e-3) 0 4px; }
.p3-mini p { margin: 0; font-size: var(--t-s); line-height: 1.6; color: var(--texte-doux); }
.p3-corps .p3-rachat { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr); gap: var(--e-6); align-items: start; }
.p3-corps .p3-rachat ul { padding-left: 1.2em; }
.p3-exemple p { font-size: var(--t-s); }
.p3-verif { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-3); padding: var(--e-5) !important; border-radius: var(--r-l); background: var(--bleu-pale); border: 1px solid var(--bleu-ciel); }
.p3-verif li { display: flex; gap: 10px; align-items: flex-start; font-size: var(--t-s); line-height: 1.5; color: var(--marine); font-weight: 600; }
.p3-verif li .icone { flex: none; margin-top: 2px; color: #15803D; }
.p3-cta-ligne { margin: var(--e-5) 0 0; }
.p3-corps .mini-cta a { text-decoration: none; }
@media (max-width: 1200px) { .p3-avantages, .p3-ages, .p3-trio { grid-template-columns: 1fr 1fr; } }
@media (max-width: 1100px) { .p3-corps .p3-rachat { grid-template-columns: 1fr; } .p3-corps .p3-duo { grid-template-columns: 1fr; } }
@media (max-width: 700px) {
  .p3-avantages, .p3-ages, .p3-trio, .p3-erreurs, .p3-verif { grid-template-columns: 1fr; }
  .p3-corps .p3-piliers { grid-template-columns: 1fr; }
}
/* 3e pilier : estimation en direct sur la page de demande */
.estim-3a { position: relative; margin: 0 0 var(--e-5); padding: var(--e-4) var(--e-5); border-radius: var(--r-l); background: linear-gradient(135deg, var(--marine), #123A6B); color: #fff; box-shadow: var(--ombre-2); border-bottom: 4px solid var(--or-clair); }
.estim-3a__titre { display: flex; align-items: center; gap: 8px; margin: 0 0 var(--e-3); font-size: var(--t-xs); font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--or-clair); }
.estim-3a__chiffres { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-4); }
.estim-3a__bloc + .estim-3a__bloc { padding-left: var(--e-4); border-left: 1px solid rgba(255,255,255,.18); }
.estim-3a__label { margin: 0; font-size: var(--t-s); color: #C9D5E6; font-weight: 600; }
.estim-3a__val { margin: 2px 0; font-size: clamp(1.6rem, 4vw, 2.2rem); font-weight: 800; line-height: 1.1; color: #fff; font-variant-numeric: tabular-nums; }
.estim-3a__bloc--capital .estim-3a__val { color: var(--or-clair); }
.estim-3a__detail { margin: 0; font-size: var(--t-xs); color: #C9D5E6; line-height: 1.45; }
.estim-3a__note { margin: var(--e-3) 0 0; font-size: 11px; line-height: 1.4; color: #9FB2CC; }
.estim-3a--maj { animation: estim-pulse .6s ease; }
@keyframes estim-pulse { 0% { box-shadow: 0 0 0 0 rgba(226,190,82,.6); } 100% { box-shadow: 0 0 0 14px rgba(226,190,82,0); } }
@media (max-width: 600px) {
  .estim-3a { position: fixed; top: auto; bottom: 0; left: 0; right: 0; z-index: 60; margin: 0; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); border-radius: 18px 18px 0 0; border-bottom: 0; border-top: 3px solid var(--or-clair); }
  .estim-3a__titre { margin-bottom: 4px; font-size: 10px; }
  .estim-3a__chiffres { gap: var(--e-3); }
  .estim-3a__bloc + .estim-3a__bloc { padding-left: var(--e-3); }
  .estim-3a__val { font-size: 1.3rem; }
  .estim-3a__label { font-size: 11px; }
  .estim-3a__detail, .estim-3a__note { display: none; }
  .demande-3a { padding-bottom: 120px; }
  body:has(.estim-3a) .contact-volant { bottom: 108px; }
}
@media (prefers-reduced-motion: reduce) { .estim-3a--maj { animation: none; } }
/* Jauge du revenu (demande 3e pilier) */
.jauge-revenu { margin: var(--e-4) 0 var(--e-2); padding: var(--e-5); border-radius: var(--r-l); background: var(--bleu-pale); border: 1px solid var(--bleu-ciel); text-align: center; }
.jauge-revenu__val { display: block; font-size: clamp(2rem, 6vw, 2.6rem); font-weight: 800; color: var(--marine); font-variant-numeric: tabular-nums; line-height: 1.1; margin-bottom: var(--e-4); }
.jauge-revenu__curseur { --rempli: 17%; -webkit-appearance: none; appearance: none; width: 100%; height: 12px; border-radius: 999px; background: linear-gradient(90deg, var(--bleu) var(--rempli), #fff var(--rempli)); box-shadow: inset 0 0 0 1px var(--bleu-ciel); cursor: pointer; margin: 0; }
.jauge-revenu__curseur::-webkit-slider-thumb { -webkit-appearance: none; width: 32px; height: 32px; border-radius: 50%; background: #fff; border: 4px solid var(--bleu); box-shadow: 0 4px 12px -2px rgba(11,37,69,.35); }
.jauge-revenu__curseur::-moz-range-thumb { width: 26px; height: 26px; border-radius: 50%; background: #fff; border: 4px solid var(--bleu); box-shadow: 0 4px 12px -2px rgba(11,37,69,.35); }
.jauge-revenu__curseur:focus-visible { outline: 3px solid var(--or-clair); outline-offset: 6px; }
.jauge-revenu__bornes { display: flex; justify-content: space-between; margin-top: var(--e-3); font-size: var(--t-xs); color: var(--texte-doux); font-weight: 600; }
.jauge-revenu__raccourcis { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: var(--e-4); }
.jauge-revenu__puce { min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1.5px solid var(--bleu-ciel); background: #fff; color: var(--marine); font: inherit; font-size: var(--t-s); font-weight: 700; cursor: pointer; }
.jauge-revenu__puce:hover, .jauge-revenu__puce.actif { background: var(--bleu); border-color: var(--bleu); color: #fff; }
.jauge-revenu__passer { margin-right: auto; min-height: 44px; padding: 0 12px; border: 0; background: none; color: var(--texte-doux); font: inherit; font-size: var(--t-s); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.jauge-revenu__passer:hover { color: var(--marine); }
.jauge-revenu--inconnu .jauge-revenu__val { opacity: .4; }
.jauge-revenu input.jauge-revenu__curseur { height: 12px; }
.apercu-prime__montant--masque { filter: blur(9px); user-select: none; pointer-events: none; }
.apercu-prime__mois:has(.icone) { display: flex; justify-content: center; align-items: center; gap: 6px; }
/* Articles : encadrés de couleur et appels à l'action dans le texte */
.encadre { position: relative; }
.encadre__titre::before { display: inline-grid; place-items: center; width: 24px; height: 24px; margin-right: 8px; border-radius: 50%; font-size: 14px; font-weight: 800; vertical-align: 1px; }
.encadre--savoir .encadre__titre::before { content: "i"; background: var(--or); color: #fff; }
.encadre--exemple { border-left-color: var(--bleu); background: var(--bleu-pale); }
.encadre--exemple .encadre__titre { color: var(--bleu); }
.encadre--exemple .encadre__titre::before { content: "→"; background: var(--bleu); color: #fff; }
.encadre--attention { border-left-color: #B4471F; background: #FFF4EE; }
.encadre--attention .encadre__titre { color: #9A3412; }
.encadre--attention .encadre__titre::before { content: "!"; background: #B4471F; color: #fff; }
.encadre--astuce { border-left-color: #15803D; background: #EDF8F1; }
.encadre--astuce .encadre__titre { color: #14532D; }
.encadre--astuce .encadre__titre::before { content: "✓"; background: #15803D; color: #fff; }
.cta-ligne { display: flex; align-items: center; justify-content: space-between; gap: var(--e-4); flex-wrap: wrap; margin: var(--e-6) 0; padding: var(--e-4) var(--e-5); border-radius: var(--r-l); background: linear-gradient(135deg, var(--marine), #123A6B); box-shadow: var(--ombre-1); }
.cta-ligne__texte { margin: 0 !important; color: #fff; font-weight: 700; font-size: var(--t-m); flex: 1 1 260px; }
.article__corps .cta-ligne a { color: var(--marine); text-decoration: none; }
