/* WEB PRESENCE PRO — feuille de style v5. Aucune ressource externe. */
@font-face { font-family: "Archivo"; font-style: normal; font-display: swap; font-weight: 100 900; font-stretch: 62% 125%;
  src: url("../fonts/archivo-latin-wdth-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Archivo"; font-style: normal; font-display: swap; font-weight: 100 900; font-stretch: 62% 125%;
  src: url("../fonts/archivo-latin-ext-wdth-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Archivo"; font-style: italic; font-display: swap; font-weight: 100 900; font-stretch: 62% 125%;
  src: url("../fonts/archivo-latin-wdth-italic.woff2") format("woff2"); unicode-range: U+0000-00FF, U+2000-206F, U+20AC; }

:root {
  --marine: #032248; --marine-2: #0b3a73; --bordeaux: #78031b; --bordeaux-2: #9a0a28; --rouge: #e31b1c; --violet: #472377; --violet-2: #6a3fa8;
  --gris: #565b62; --texte: #1a2433; --texte-doux: #4d5663; --brume: #f4f6fb; --brume-2: #eaeef6; --ligne: #dde3ec; --blanc: #fff;
  --etoile: #f2a900; --vert: #1e8e5a; --ombre: 0 1px 2px rgba(3,34,72,.06), 0 8px 24px rgba(3,34,72,.08); --ombre-forte: 0 18px 40px rgba(3,34,72,.18);
  --rayon: 18px; --rayon-s: 10px; --enveloppe: 1200px; --bloc: clamp(3.5rem, 7vw, 6rem);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; font-family: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif; font-size: 1.0625rem; line-height: 1.62;
  color: var(--texte); background: var(--blanc); font-stretch: 100%; }
img, svg { max-width: 100%; height: auto; }
a { color: var(--marine-2); text-underline-offset: 3px; }
a:hover { color: var(--bordeaux); }
:focus-visible { outline: 3px solid var(--violet-2); outline-offset: 3px; border-radius: 4px; }
h1, h2, h3 { color: var(--marine); line-height: 1.12; margin: 0 0 .6em; font-stretch: 110%; letter-spacing: -.01em; }
h2 { font-size: clamp(1.6rem, 3vw, 2.35rem); font-weight: 800; }
h3 { font-size: 1.18rem; font-weight: 750; font-stretch: 104%; }
p { margin: 0 0 1em; }
.enveloppe { max-width: var(--enveloppe); margin: 0 auto; padding-inline: clamp(1.1rem, 4vw, 2.5rem); }
.enveloppe--texte { max-width: 860px; }
.visuellement-cache { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.js-seulement { display: none !important; }
.js .js-seulement { display: revert !important; }
.js tr.js-seulement { display: table-row !important; }
.cache { display: none !important; }
.ico { flex: none; vertical-align: middle; }
.centre { text-align: center; }
.titre-centre { text-align: center; }
.intro { font-size: 1.12rem; color: var(--texte-doux); max-width: 70ch; }
.intro.centre { margin-inline: auto; }
.chapo { font-size: clamp(1.1rem, 1.6vw, 1.28rem); color: var(--texte-doux); max-width: 62ch; }
.note { font-size: .94rem; color: var(--texte-doux); }
.evitement { position: absolute; left: -999px; top: 0; background: var(--marine); color: #fff; padding: .7rem 1rem; z-index: 100; }
.evitement:focus { left: 1rem; }

/* ---------- boutons ---------- */
.bouton { display: inline-flex; align-items: center; gap: .5rem; background: var(--bordeaux); color: #fff; text-decoration: none; font-weight: 700;
  font-stretch: 104%; padding: .9rem 1.5rem; border-radius: 999px; border: 2px solid var(--bordeaux); box-shadow: 0 6px 16px rgba(120,3,27,.25);
  transition: transform .15s ease, background .15s ease, box-shadow .15s ease; cursor: pointer; font-size: 1rem; font-family: inherit; }
.bouton:hover { background: var(--bordeaux-2); color: #fff; transform: translateY(-1px); box-shadow: 0 10px 22px rgba(120,3,27,.3); }
.bouton--petit { padding: .6rem 1.1rem; font-size: .92rem; }
.bouton--contour { background: transparent; color: var(--marine); border-color: var(--marine); box-shadow: none; }
.bouton--contour:hover { background: var(--marine); color: #fff; }
.bouton--clair { background: #fff; color: var(--marine); border-color: #fff; box-shadow: none; }
.bouton--clair:hover { background: var(--brume); color: var(--bordeaux); }
.bouton-texte { background: none; border: 0; padding: 0; font: inherit; font-weight: 700; color: var(--marine-2); text-decoration: underline; cursor: pointer; }
.lien-fort { font-weight: 700; color: var(--marine); text-decoration: none; border-bottom: 2px solid var(--bordeaux); padding-bottom: 1px; }
.lien-fort::after { content: " →"; }
.lien-fort:hover { color: var(--bordeaux); }

/* ---------- en-tête ---------- */
.entete { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.94); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--ligne); }
.entete__barre { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 70px; }
.marque img { display: block; height: 30px; width: auto; }
.menu-bouton { display: inline-flex; align-items: center; gap: .55rem; background: var(--brume); border: 1px solid var(--ligne); border-radius: 999px;
  padding: .5rem .95rem; font: inherit; font-weight: 700; color: var(--marine); cursor: pointer; }
.menu-bouton__traits, .menu-bouton__traits::before, .menu-bouton__traits::after { display: block; width: 18px; height: 2px; background: currentColor; border-radius: 2px; position: relative; }
.menu-bouton__traits::before, .menu-bouton__traits::after { content: ""; position: absolute; }
.menu-bouton__traits::before { top: -6px; } .menu-bouton__traits::after { top: 6px; }
.nav ul { list-style: none; margin: 0; padding: 0; }
.nav a { text-decoration: none; color: var(--texte); font-weight: 600; font-stretch: 94%; }
.nav ul a[aria-current="page"] { color: var(--bordeaux); box-shadow: inset 0 -2px 0 var(--bordeaux); }
.nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 1px solid var(--ligne); box-shadow: var(--ombre); padding: 1rem clamp(1.1rem, 4vw, 2.5rem) 1.4rem; }
.nav.est-ouverte { display: block; }
.nav ul li a { display: block; padding: .6rem 0; border-bottom: 1px solid var(--brume-2); }
.nav .bouton { margin-top: 1rem; color: #fff; }
.nav .bouton:hover { color: #fff; }
html:not(.js) .nav { display: block; position: static; box-shadow: none; border: 0; padding: 0 0 1rem; }
html:not(.js) .menu-bouton { display: none; }
html:not(.js) .entete__barre { flex-wrap: wrap; }
@media (min-width: 1180px) {
  .menu-bouton { display: none; }
  .nav, html:not(.js) .nav { display: flex; position: static; align-items: center; gap: 1.6rem; padding: 0; border: 0; box-shadow: none; background: none; }
  .nav ul { display: flex; gap: 1.35rem; }
  .nav ul li a { padding: .4rem 0; border: 0; font-size: .97rem; }
  .nav .bouton { margin-top: 0; }
}

/* ---------- héros ---------- */
.heros { position: relative; overflow: hidden; padding: clamp(2.5rem, 6vw, 5rem) 0 clamp(3rem, 6vw, 5rem);
  background: radial-gradient(60% 70% at 88% 20%, rgba(71,35,119,.14), transparent 70%), radial-gradient(50% 60% at 70% 95%, rgba(120,3,27,.10), transparent 70%),
  radial-gradient(40% 50% at 5% 10%, rgba(11,58,115,.08), transparent 70%), var(--blanc); }
.heros__grille { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1000px) { .heros__grille { grid-template-columns: 1.05fr .95fr; } }
.heros__sur { display: inline-flex; align-items: center; gap: .45rem; background: #fff; border: 1px solid var(--ligne); border-radius: 999px;
  padding: .35rem .9rem; font-size: .9rem; font-weight: 700; color: var(--violet); box-shadow: var(--ombre); }
.heros__titre { font-size: clamp(2.4rem, 5.4vw, 4.2rem); font-weight: 850; font-stretch: 116%; line-height: 1.02; margin: 1rem 0 1.2rem; }
.souligne { background: linear-gradient(transparent 62%, rgba(227,27,28,.18) 62%); color: var(--bordeaux); }
.heros__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin: 1.6rem 0 1.4rem; }
.heros__preuves { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; font-weight: 600; color: var(--texte-doux); font-size: .95rem; }
.heros__preuves li { display: flex; align-items: center; gap: .35rem; }
.heros__preuves .ico { color: var(--vert); }

/* tableau de bord illustré */
.tdb { position: relative; height: 520px; max-width: 560px; margin: 0 auto; }
.tdb__telephone { position: absolute; left: 50%; top: 10px; transform: translateX(-50%); width: 250px; height: 500px; border-radius: 38px;
  background: var(--marine); padding: 12px; box-shadow: var(--ombre-forte); }
.tdb__encoche { width: 90px; height: 18px; background: var(--marine); border-radius: 0 0 14px 14px; position: absolute; left: 50%; top: 12px; transform: translateX(-50%); z-index: 2; }
.tdb__fiche { background: #fff; border-radius: 28px; height: 100%; padding: 42px 18px 18px; overflow: hidden; }
.tdb__nom { font-weight: 800; font-stretch: 110%; color: var(--marine); font-size: 1.15rem; margin: 0 0 .2rem; }
.tdb__note { margin: 0; font-size: .9rem; color: var(--texte-doux); display: flex; align-items: center; gap: .3rem; }
.tdb__note strong { color: var(--texte); }
.tdb__etoiles { color: var(--etoile); letter-spacing: 1px; }
.tdb__ouvert { color: var(--vert); font-size: .82rem; font-weight: 700; margin: .3rem 0 .8rem; }
.tdb__boutons { display: flex; gap: .35rem; margin-bottom: .9rem; }
.tdb__boutons span { flex: 1; text-align: center; font-size: .7rem; font-weight: 700; color: var(--marine-2); background: var(--brume); border-radius: 999px; padding: .4rem 0; }
.tdb__photos { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: 70px 70px; gap: 6px; margin-bottom: .9rem; }
.tdb__photos span { border-radius: 10px; background: linear-gradient(135deg, #cfd9ea, #e9dff5); }
.tdb__photos span:first-child { grid-row: 1 / 3; background: linear-gradient(135deg, var(--marine-2), var(--violet-2)); }
.tdb__ligne { height: 9px; border-radius: 9px; background: var(--brume-2); margin: 0 0 .5rem; }
.tdb__ligne--courte { width: 60%; }
.tdb__carte { position: absolute; background: #fff; border-radius: 16px; box-shadow: var(--ombre-forte); padding: .7rem .9rem; display: flex; align-items: center;
  gap: .65rem; font-size: .85rem; border: 1px solid var(--ligne); animation: flotte 6s ease-in-out infinite; }
.tdb__carte strong { display: block; color: var(--marine); font-size: .88rem; }
.tdb__carte small { color: var(--texte-doux); font-size: .76rem; }
.tdb__pastille { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-weight: 800; flex: none; }
.tdb__pastille--or { background: var(--etoile); } .tdb__pastille--vert { background: var(--vert); } .tdb__pastille--violet { background: var(--violet); }
.tdb__carte--avis { left: -20px; top: 190px; }
.tdb__carte--devis { right: 0; top: 150px; animation-delay: -2s; }
.tdb__carte--post { left: -10px; top: 300px; animation-delay: -4s; }
.tdb__carte--post { top: 290px; left: 30px; }
.tdb__carte--kpi { right: 0; bottom: 30px; flex-direction: column; align-items: flex-start; gap: .3rem; animation-delay: -1s; }
.tdb__carte--liste { left: 10px; bottom: 10px; flex-direction: column; align-items: flex-start; gap: .2rem; animation-delay: -3s; }
.tdb__carte--liste ul { list-style: none; margin: 0; padding: 0; font-weight: 600; color: var(--texte); }
.tdb__carte--liste li::before { content: "✓ "; color: var(--vert); font-weight: 800; }
.tdb__barres { display: flex; align-items: flex-end; gap: 4px; height: 44px; }
.tdb__barre { width: 10px; border-radius: 4px 4px 0 0; background: linear-gradient(var(--violet-2), var(--marine-2)); }
.b0 { height: 22%; } .b1 { height: 30%; } .b2 { height: 28%; } .b3 { height: 45%; } .b4 { height: 52%; } .b5 { height: 60%; } .b6 { height: 78%; } .b7 { height: 100%; background: linear-gradient(var(--rouge), var(--bordeaux)); }
@keyframes flotte { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@media (max-width: 560px) { .tdb { height: 470px; } .tdb__telephone { width: 220px; height: 450px; } .tdb__carte { font-size: .78rem; } .tdb__carte--post { left: 0; } }

/* ---------- bande de chiffres ---------- */
.bande-chiffres { background: var(--marine); color: #fff; padding: 2rem 0; }
.bande-chiffres__grille { display: grid; gap: 1.2rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.bande-chiffres p { margin: 0; display: flex; flex-direction: column; gap: .2rem; }
.bande-chiffres strong { font-size: 2rem; font-weight: 850; font-stretch: 115%; color: #fff; }
.bande-chiffres span { color: #c9d4e6; font-size: .95rem; }

/* ---------- blocs ---------- */
.bloc { padding: var(--bloc) 0; }
.bloc--brume { background: var(--brume); }
.bloc--serre-haut { padding-top: 2rem; }
.bloc--degrade { background: linear-gradient(135deg, var(--marine) 0%, #1a2f6b 55%, var(--violet) 100%); position: relative; overflow: hidden; }
.bloc--degrade::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.08) 1px, transparent 1px); background-size: 22px 22px; }
.bloc--degrade .enveloppe { position: relative; }
.titre-clair { color: #fff; } .intro--clair { color: #d8def0; }
.deux-colonnes { display: grid; gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
@media (min-width: 900px) { .deux-colonnes { grid-template-columns: 1.1fr .9fr; } .deux-colonnes--inverse { grid-template-columns: .95fr 1.05fr; } .deux-colonnes--egal { grid-template-columns: 1fr 1fr; } }
.sous-titre { margin-top: 2rem; }

/* piliers, tuiles, engagements */
.piliers { display: grid; gap: 1.4rem; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); margin-top: 2rem; }
.pilier { background: #fff; border-radius: var(--rayon); padding: 1.8rem; box-shadow: var(--ombre); border-top: 5px solid var(--marine); }
.pilier .ico { color: var(--marine); margin-bottom: .8rem; }
.pilier--bordeaux { border-top-color: var(--bordeaux); } .pilier--bordeaux .ico { color: var(--bordeaux); }
.pilier--violet { border-top-color: var(--violet); } .pilier--violet .ico { color: var(--violet); }
.tuiles { list-style: none; padding: 0; margin: 2rem 0 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.tuiles a { display: flex; flex-direction: column; gap: .35rem; height: 100%; padding: 1.4rem; border-radius: var(--rayon); background: #fff; border: 1px solid var(--ligne);
  text-decoration: none; color: var(--texte); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.tuiles a:hover { transform: translateY(-3px); box-shadow: var(--ombre); border-color: transparent; }
.tuiles .ico { color: var(--bordeaux); background: #fbeef1; border-radius: 12px; padding: 8px; width: 46px; height: 46px; }
.tuiles strong { color: var(--marine); font-size: 1.08rem; font-stretch: 106%; }
.tuiles span { color: var(--texte-doux); font-size: .92rem; }
.engagements { display: grid; gap: 1.2rem; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); margin: 2rem 0; }
.engagements > div { background: #fff; border-radius: var(--rayon); padding: 1.5rem; box-shadow: var(--ombre); }
.engagements .ico { color: var(--vert); margin-bottom: .6rem; }

/* semaine / mois type */
.semaine { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; counter-reset: s; }
.semaine li { display: grid; grid-template-columns: 7.5rem 1fr; gap: .2rem 1rem; align-items: baseline; background: #fff; border-radius: 14px; padding: 1rem 1.2rem;
  box-shadow: var(--ombre); border-left: 5px solid var(--violet); }
.semaine li:nth-child(2) { border-left-color: var(--bordeaux); } .semaine li:nth-child(3) { border-left-color: var(--marine-2); } .semaine li:nth-child(4) { border-left-color: var(--vert); }
.semaine__jour { grid-row: 1 / 3; font-size: .8rem; font-weight: 800; text-transform: none; color: var(--texte-doux); }
.semaine strong { color: var(--marine); } .semaine span:last-child { color: var(--texte-doux); font-size: .95rem; }

/* formules */
.formules { list-style: none; padding: 0; margin: 2.2rem 0 1.5rem; display: grid; gap: 1.4rem; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); align-items: stretch; }
.formule { position: relative; background: #fff; border-radius: 22px; padding: 2rem 1.7rem 1.6rem; box-shadow: var(--ombre); display: flex; flex-direction: column; }
.formule--vedette { outline: 3px solid var(--rouge); box-shadow: var(--ombre-forte); }
.formule__ruban { position: absolute; top: -14px; left: 1.4rem; background: var(--rouge); color: #fff; font-size: .8rem; font-weight: 800; border-radius: 999px; padding: .25rem .8rem; margin: 0; }
.formule__nom { font-size: 1.5rem; margin: 0; } .formule__accroche { color: var(--violet); font-weight: 700; margin: .1rem 0 .8rem; }
.formule__prix { margin: 0; color: var(--marine); } .chiffre { font-size: 2.6rem; font-weight: 850; font-stretch: 112%; color: var(--marine); }
.formule__annexe { font-size: .9rem; color: var(--texte-doux); border-bottom: 1px solid var(--ligne); padding-bottom: .8rem; }
.coches { list-style: none; padding: 0; margin: 0 0 1rem; }
.coches li { position: relative; padding-left: 1.9rem; margin-bottom: .55rem; }
.coches li::before { content: ""; position: absolute; left: 0; top: .28em; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: #e3f3ea;
  box-shadow: inset 0 0 0 2px var(--vert); }
.coches li::after { content: ""; position: absolute; left: .42rem; top: .52em; width: .32rem; height: .6rem; border: solid var(--vert); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.coches--compact li { margin-bottom: .35rem; font-size: .95rem; }

/* satisfaction et bulles */
.satisfaction { background: #fff; border-radius: 22px; padding: 2rem; box-shadow: var(--ombre); }
.satisfaction--compact { padding: 1.6rem; }
.satisfaction__note { display: flex; align-items: center; gap: .8rem; margin: 0; }
.satisfaction__note strong { font-size: 3.4rem; font-weight: 850; font-stretch: 112%; color: var(--marine); }
.etoiles { color: var(--etoile); font-size: 1.6rem; letter-spacing: 2px; }
.satisfaction__legende { color: var(--texte-doux); }
.bulle { border-radius: 18px; padding: 1rem 1.2rem; margin-top: 1rem; max-width: 92%; }
.bulle strong { display: block; font-size: .8rem; margin-bottom: .2rem; }
.bulle p { margin: 0; }
.bulle--client { background: var(--brume); border-bottom-left-radius: 4px; }
.bulle--client strong { color: var(--texte-doux); }
.bulle--reponse { background: var(--marine); color: #fff; margin-left: auto; border-bottom-right-radius: 4px; }
.bulle--reponse strong { color: #c7d2ea; }

/* ---------- en-tête de page et sous-navigation ---------- */
.tete-page { padding: clamp(2.2rem, 5vw, 3.8rem) 0 clamp(1.8rem, 4vw, 2.8rem); background: radial-gradient(50% 90% at 95% 0%, rgba(11,58,115,.12), transparent 70%), var(--brume); }
.tete-page--bordeaux { background: radial-gradient(50% 90% at 95% 0%, rgba(120,3,27,.13), transparent 70%), var(--brume); }
.tete-page--violet { background: radial-gradient(50% 90% at 95% 0%, rgba(71,35,119,.16), transparent 70%), var(--brume); }
.tete-page__ligne { display: flex; align-items: center; gap: 1rem; }
.tete-page__ico { width: 58px; height: 58px; border-radius: 16px; display: grid; place-items: center; background: #fff; color: var(--bordeaux); box-shadow: var(--ombre); flex: none; }
.tete-page__titre { font-size: clamp(2rem, 4.4vw, 3.2rem); font-weight: 850; font-stretch: 114%; margin: 0; }
.tete-page .chapo { margin-top: 1rem; }
.fil { font-size: .88rem; color: var(--texte-doux); margin-bottom: 1rem; display: flex; gap: .45rem; }
.sousnav { border-bottom: 1px solid var(--ligne); background: #fff; position: sticky; top: 70px; z-index: 40; }
.sousnav ul { list-style: none; margin: 0; padding: .6rem 0; display: flex; gap: .45rem; overflow-x: auto; scrollbar-width: thin; }
.sousnav a { display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; text-decoration: none; color: var(--texte); font-weight: 600; font-size: .92rem;
  padding: .45rem .9rem; border-radius: 999px; border: 1px solid var(--ligne); }
.sousnav a[aria-current="page"] { background: var(--marine); color: #fff; border-color: var(--marine); }
.sousnav a:hover { border-color: var(--marine); }

/* ---------- composants de contenu ---------- */
.encadre { border-radius: var(--rayon); padding: 1.5rem 1.6rem; background: #fff; border: 1px solid var(--ligne); border-left: 6px solid var(--marine); margin: 1.5rem 0; }
.bloc--brume .encadre { background: #fff; } .bloc:not(.bloc--brume) .encadre { background: var(--brume); border-color: transparent; border-left-color: var(--marine); }
.encadre--option { border-left-color: var(--bordeaux) !important; } .encadre--alerte { border-left-color: var(--rouge) !important; }
.encadre h3 { font-size: 1.08rem; }
.encadre p:last-child, .encadre ul:last-child { margin-bottom: 0; }
.prix-bloc { background: #fff; border-radius: 22px; padding: 1.8rem; box-shadow: var(--ombre); border-top: 5px solid var(--bordeaux); }
.prix-bloc--nouveau { border-top-color: var(--violet); }
.prix-bloc__montant { margin: 0 0 .8rem; color: var(--texte-doux); }
.prix-bloc__montant--second { margin-top: 1rem; } .prix-bloc__montant--second .chiffre { font-size: 1.9rem; }
.renvoi { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: .5rem; }
.renvoi li { display: flex; justify-content: space-between; align-items: center; gap: 1rem; background: #fff; border: 1px solid var(--ligne); border-radius: 12px; padding: .7rem 1rem; }
.renvoi a { text-decoration: none; color: var(--texte); font-weight: 600; display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.renvoi a:hover { color: var(--bordeaux); }
.renvoi__prix { font-weight: 800; color: var(--marine); white-space: nowrap; font-variant-numeric: tabular-nums; }
.code { font-size: .74rem; font-weight: 800; font-stretch: 90%; color: var(--violet); background: #efe9f8; border-radius: 6px; padding: .12rem .45rem; letter-spacing: .02em; }
.badge { font-size: .7rem; font-weight: 800; color: #fff; background: var(--violet); border-radius: 999px; padding: .1rem .5rem; margin-left: .3rem; vertical-align: middle; }
.etapes { list-style: none; padding: 0; margin: 2rem 0; display: grid; gap: 1.2rem; counter-reset: e; }
.etapes li { counter-increment: e; background: #fff; border-radius: var(--rayon); padding: 1.6rem 1.5rem 1.4rem; box-shadow: var(--ombre); position: relative; }
.etapes li::before { content: counter(e); display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--bordeaux); color: #fff; font-weight: 800; margin-bottom: .8rem; }
@media (min-width: 900px) { .etapes--ligne { grid-template-columns: repeat(3, 1fr); } .etapes--quatre { grid-template-columns: repeat(4, 1fr); } }
.formats { display: grid; gap: 1.2rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.format { background: #fff; border-radius: var(--rayon); padding: 1.5rem; border: 1px solid var(--ligne); }
.format--accent { border: 2px solid var(--bordeaux); box-shadow: var(--ombre); }
.format__prix { font-size: 1.8rem; font-weight: 850; color: var(--marine); margin: 0 0 .4rem; }
.kpi-duo { display: grid; gap: 1rem; }
.kpi-duo p { margin: 0; background: #fff; border-radius: var(--rayon); padding: 1.4rem 1.6rem; box-shadow: var(--ombre); display: flex; flex-direction: column; }
.kpi-duo strong { font-size: 2.6rem; font-weight: 850; font-stretch: 112%; color: var(--bordeaux); line-height: 1.1; }
.kpi-duo span { color: var(--texte-doux); }

/* publications et conversation (illustrations) */
.posts { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.post { background: #fff; border-radius: 16px; box-shadow: var(--ombre); padding: .9rem; font-size: .88rem; border-top: 4px solid var(--marine-2); }
.post--instagram { border-top-color: var(--violet-2); } .post--linkedin { border-top-color: var(--gris); }
.post__tete { display: flex; gap: .5rem; align-items: center; margin-bottom: .6rem; }
.post__tete strong { display: block; font-size: .82rem; color: var(--marine); } .post__tete small { color: var(--texte-doux); font-size: .72rem; }
.post__avatar { width: 30px; height: 30px; border-radius: 50%; background: linear-gradient(135deg, var(--bordeaux), var(--violet)); flex: none; }
.post__image { height: 110px; border-radius: 10px; background: linear-gradient(135deg, #d6e0f0, #eadff7); margin-bottom: .6rem; }
.post--instagram .post__image { background: linear-gradient(135deg, #f6d6de, #e4d8f5); height: 140px; }
.post__action { font-weight: 700; color: var(--bordeaux); margin: 0; font-size: .8rem; }
.chat { background: #fff; border-radius: 22px; padding: 1.4rem; box-shadow: var(--ombre); }
.chat__q { background: var(--marine); color: #fff; border-radius: 16px 16px 4px 16px; padding: .8rem 1rem; margin-left: 15%; font-weight: 600; }
.chat__r { display: flex; gap: .6rem; margin-top: 1rem; background: var(--brume); border-radius: 16px 16px 16px 4px; padding: .9rem 1rem; }
.chat__r p { margin: 0; } .chat__ico { color: var(--violet); flex: none; }
.chat__legende { font-size: .75rem; color: var(--texte-doux); margin: .6rem 0 0; text-align: right; }

/* secteurs, aides, packs */
.secteurs, .aides, .packs { display: grid; gap: 1.3rem; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.secteur, article.aide, .pack { background: #fff; border-radius: var(--rayon); padding: 1.6rem; border: 1px solid var(--ligne); box-shadow: var(--ombre); }
.secteur .ico, article.aide > .ico { color: var(--bordeaux); margin-bottom: .6rem; }
.secteur h2, article.aide h2 { font-size: 1.25rem; }
.aide__porteur { font-weight: 700; color: var(--violet); font-size: .92rem; }
.aide__usage { font-weight: 600; color: var(--marine); font-size: .92rem; display: flex; gap: .4rem; align-items: center; margin: 0; }
.pack { border-top: 5px solid var(--violet); }
.pack__lignes { font-size: .85rem; color: var(--texte-doux); }
.pack__prix { font-weight: 800; color: var(--marine); font-size: 1.1rem; margin: 0; }

/* frise, chaîne */
.frise { list-style: none; padding: 0; margin: 2rem 0 0; display: grid; gap: 1rem; }
@media (min-width: 1000px) { .frise { grid-template-columns: repeat(6, 1fr); } }
.frise li { background: #fff; border-radius: 16px; padding: 1.2rem; box-shadow: var(--ombre); border-top: 4px solid var(--marine-2); }
.frise li:nth-child(even) { border-top-color: var(--violet-2); }
.frise h3 { font-size: 1rem; } .frise p { font-size: .93rem; margin-bottom: .6rem; }
.frise__decision { color: var(--bordeaux); font-weight: 700; margin: 0 !important; }
.chaine { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; }
@media (min-width: 900px) { .chaine { grid-template-columns: repeat(4, 1fr); } }
.chaine li { background: linear-gradient(160deg, #fff, var(--brume)); border-radius: var(--rayon); padding: 1.5rem; border: 1px solid var(--ligne); }
.chaine h2 { font-size: 1.7rem; font-stretch: 120%; color: var(--bordeaux); }

/* ---------- tableaux ---------- */
.tableau-defile { overflow-x: auto; border-radius: 14px; border: 1px solid var(--ligne); background: #fff; margin: 1rem 0 1.5rem; }
.tableau { width: 100%; border-collapse: collapse; font-size: .95rem; }
.tableau th, .tableau td { padding: .8rem 1rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--ligne); }
.tableau thead th { background: var(--marine); color: #fff; font-size: .85rem; font-weight: 700; position: sticky; top: 0; }
.tableau tbody th { font-weight: 650; color: var(--marine); }
.tableau tbody tr:hover { background: #fafbfe; }
.num { text-align: right !important; white-space: nowrap; font-variant-numeric: tabular-nums; }
.detail { display: block; font-weight: 400; color: var(--texte-doux); font-size: .88rem; margin-top: .2rem; }
.detail--note { font-style: italic; font-size: .82rem; }
.ligne-total th, .ligne-total td { background: var(--brume); font-weight: 800; color: var(--marine); }
.col-choix { width: 2.8rem; display: none; }
.js .col-choix { display: table-cell; }
.choix__case { width: 1.25rem; height: 1.25rem; accent-color: var(--bordeaux); cursor: pointer; }
tr.est-choisi { background: #fbf1f3 !important; }
@media (max-width: 699px) {
  .tableau--prix thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .tableau--prix, .tableau--prix tbody { display: block; }
  .tableau--prix tr { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: .9rem; padding: 1rem; border-bottom: 1px solid var(--ligne); }
  .tableau--prix th, .tableau--prix td { grid-column: 2; padding: .1rem 0; border: 0; text-align: left !important; white-space: normal; }
  .tableau--prix .col-choix { grid-column: 1; grid-row: 1 / span 4; }
  .tableau--prix td[data-label]::before { content: attr(data-label) " : "; color: var(--texte-doux); }
  .tableau--prix td.vide { display: none; }
}

/* ---------- page tarifs et estimateur ---------- */
.tarifs-grille { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; padding: 2rem 0 var(--bloc); }
.tarifs-contenu { min-width: 0; }
@media (min-width: 1120px) { .js .tarifs-grille { grid-template-columns: minmax(0, 1fr) 320px; gap: 3rem; } }
.bloc-serre { padding: 2.2rem 0; border-top: 1px solid var(--ligne); }
.bloc-serre:first-child { border-top: 0; padding-top: 0; }
.puces-nav ul { list-style: none; padding: 0; margin: 0 0 1rem; display: flex; flex-wrap: wrap; gap: .45rem; }
.puces-nav a { display: inline-block; font-size: .85rem; font-weight: 600; text-decoration: none; padding: .35rem .8rem; border-radius: 999px; background: var(--brume); color: var(--marine); }
.estimateur { align-self: start; position: sticky; top: 90px; }
.estimateur__corps { background: linear-gradient(160deg, var(--marine), #1a2f6b 70%, var(--violet)); color: #fff; border-radius: 22px; padding: 1.6rem; box-shadow: var(--ombre-forte); }
.estimateur__titre { color: #fff; font-size: 1.3rem; }
.estimateur__situation { border: 0; padding: 0; margin: 0 0 1rem; font-size: .9rem; }
.estimateur__situation legend { font-weight: 700; margin-bottom: .3rem; color: #c9d4e6; }
.estimateur__situation label { display: block; }
.estimateur__totaux { margin: 0; }
.estimateur__totaux div { display: flex; justify-content: space-between; padding: .45rem 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.estimateur__totaux dt { color: #c9d4e6; } .estimateur__totaux dd { margin: 0; font-weight: 800; font-variant-numeric: tabular-nums; }
.estimateur__dont { font-size: .85rem; padding-left: .8rem !important; }
.estimateur__fort dd { font-size: 1.25rem; color: #fff; }
.estimateur__vide, .estimateur__note { font-size: .82rem; color: #c9d4e6; margin: .8rem 0; }
.estimateur__detail summary { cursor: pointer; font-weight: 700; margin: .6rem 0; }
.estimateur__detail ul { font-size: .82rem; padding-left: 1.1rem; color: #e3e8f3; }
.estimateur__actions { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; }
.estimateur .bouton-texte { color: #fff; }
.mini-estimation { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; margin: 0; background: var(--marine); color: #fff; padding: .8rem 1.2rem;
  display: flex; justify-content: space-between; align-items: center; gap: 1rem; font-size: .92rem; box-shadow: 0 -8px 24px rgba(3,34,72,.25); }
.mini-estimation[hidden] { display: none; }
.mini-estimation a { color: #fff; font-weight: 800; white-space: nowrap; }
@media (min-width: 1120px) { .mini-estimation { display: none; } }

/* ---------- calculateurs ---------- */
.calcul { background: #fff; border-radius: 22px; padding: 1.8rem; box-shadow: var(--ombre); }
.calcul label { display: block; font-weight: 650; margin: .8rem 0 .3rem; font-size: .95rem; }
.calcul input { width: 100%; }
.calcul__duo { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.calcul__resultat { margin: 1.2rem 0 0; background: linear-gradient(135deg, var(--marine), var(--violet)); color: #fff; border-radius: 14px; padding: 1rem 1.2rem; font-weight: 700; }

/* ---------- formulaires ---------- */
input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], select, textarea {
  font: inherit; font-size: 1rem; width: 100%; padding: .75rem .9rem; border: 1.5px solid #b9c2cf; border-radius: 12px; background: #fff; color: var(--texte); }
input:focus, select:focus, textarea:focus { border-color: var(--marine); outline: 3px solid rgba(71,35,119,.25); outline-offset: 0; }
[aria-invalid="true"] { border-color: var(--rouge) !important; }
.contact-grille { display: grid; gap: 2.5rem; }
.contact-grille > * { min-width: 0; }
@media (min-width: 1000px) { .contact-grille { grid-template-columns: minmax(0, 1fr) 340px; } }
.formulaire fieldset { border: 0; margin: 0 0 2rem; padding: 1.6rem; background: #fff; border-radius: var(--rayon); box-shadow: var(--ombre); }
.formulaire legend { float: left; width: 100%; font-size: 1.25rem; font-weight: 800; font-stretch: 108%; color: var(--marine); display: flex; align-items: center; gap: .5rem; margin-bottom: 1rem; }
.formulaire legend + * { clear: both; }
.formulaire__intro { color: var(--texte-doux); }
.formulaire__erreurs { background: #fdecec; border-left: 5px solid var(--rouge); border-radius: 12px; padding: 1rem 1.2rem; margin-bottom: 1.5rem; }
.grille-champs { display: grid; gap: 1rem 1.2rem; clear: both; }
@media (min-width: 700px) { .grille-champs { grid-template-columns: 1fr 1fr; } }
.champ label { display: block; font-weight: 650; margin-bottom: .3rem; }
.champ .aide { display: block; font-size: .85rem; color: var(--texte-doux); margin-bottom: .3rem; }
.requis { color: var(--rouge); }
.groupe-options { margin-bottom: 1.2rem; clear: both; }
.groupe-options__titre { font-weight: 700; margin-bottom: .5rem; }
.options-grille { display: grid; gap: .45rem 1rem; }
@media (min-width: 700px) { .options-grille { grid-template-columns: 1fr 1fr; } }
.options-ligne { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; }
.option { display: flex; gap: .55rem; align-items: flex-start; cursor: pointer; }
.option input { width: 1.15rem; height: 1.15rem; margin-top: .22rem; accent-color: var(--bordeaux); flex: none; }
.option--consentement { margin-top: 1rem; }
.fieldset-cyber { border-left: 6px solid var(--violet) !important; background: linear-gradient(160deg, #fff, #f5f1fb) !important; }
.fieldset-cyber__pourquoi { font-size: .95rem; color: var(--texte-doux); clear: both; }
.formulaire__repli { background: var(--brume); border-radius: var(--rayon); padding: 1.5rem; }
.formulaire__repli textarea { font-size: .85rem; }
.repli__statut { font-weight: 700; color: var(--vert); margin-left: .6rem; }
.contact-cote { display: grid; gap: 1.2rem; align-content: start; }
.carte-contact { background: var(--brume); border-radius: var(--rayon); padding: 1.4rem; }
.carte-contact h2 { font-size: 1.15rem; }
.carte-contact--alerte { background: #fdecec; }
.lien-mail { display: inline-flex; align-items: center; gap: .4rem; font-weight: 800; word-break: break-all; }
.liste-simple { padding-left: 1.2rem; margin: 0; } .liste-simple li { margin-bottom: .4rem; }

/* ---------- FAQ, glossaire, textes ---------- */
.faq-groupe { margin-bottom: 2.5rem; }
.question { background: #fff; border: 1px solid var(--ligne); border-radius: 14px; margin-bottom: .6rem; }
.question summary { cursor: pointer; font-weight: 700; color: var(--marine); padding: 1rem 1.2rem; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.question summary::-webkit-details-marker { display: none; }
.question summary::after { content: "+"; font-size: 1.4rem; line-height: 1; color: var(--bordeaux); }
.question[open] summary::after { content: "–"; }
.question p { padding: 0 1.2rem 1.1rem; margin: 0; color: var(--texte-doux); }
.glossaire div { padding: 1rem 0; border-bottom: 1px solid var(--ligne); }
.glossaire dt { font-weight: 800; color: var(--marine); } .glossaire dd { margin: .2rem 0 0; color: var(--texte-doux); }
.texte-long h2 { font-size: 1.4rem; margin-top: 2rem; }
.plan { list-style: none; padding: 0; } .plan li { padding: .6rem 0; border-bottom: 1px solid var(--ligne); } .plan span { color: var(--texte-doux); font-size: .93rem; }
.logo-grand { margin: 0; background: #fff; border-radius: 22px; padding: 1.5rem; box-shadow: var(--ombre); text-align: center; }
.logo-grand figcaption { font-size: .9rem; color: var(--texte-doux); margin-top: .6rem; }

/* ---------- sources, appel, pied ---------- */
.sources { padding-top: 2rem; padding-bottom: 2rem; font-size: .85rem; color: var(--texte-doux); }
.sources__titre { font-size: 1rem; }
.sources ol { padding-left: 2.2rem; margin: 0; } .sources li { margin-bottom: .3rem; }
.appel { background: linear-gradient(120deg, var(--bordeaux) 0%, #5a0a3a 50%, var(--violet) 100%); color: #fff; padding: clamp(2.8rem, 6vw, 4.5rem) 0; }
.appel__grille { display: grid; gap: 1.6rem; align-items: center; }
@media (min-width: 900px) { .appel__grille { grid-template-columns: 1.4fr 1fr; } }
.appel__titre { color: #fff; } .appel p { color: #f1e6ee; margin: 0; }
.appel__action { display: flex; flex-direction: column; align-items: flex-start; gap: .8rem; }
@media (min-width: 900px) { .appel__action { align-items: flex-end; } }
.appel__mail { color: #fff; font-weight: 700; }
.appel__mail:hover { color: #fff; }
.pied { background: var(--brume); padding: 3.5rem 0 1.5rem; border-top: 1px solid var(--ligne); }
.pied__grille { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.pied__marque { grid-column: 1 / -1; max-width: 420px; }
@media (min-width: 1000px) { .pied__grille { grid-template-columns: 1.5fr repeat(4, 1fr); } .pied__marque { grid-column: auto; } }
.pied__marque img { background: #fff; border-radius: 14px; padding: .6rem; width: 200px; height: auto; }
.pied__marque p { font-size: .92rem; color: var(--texte-doux); }
.pied__titre { font-size: .95rem; margin-bottom: .8rem; }
.pied ul { list-style: none; padding: 0; margin: 0; } .pied li { margin-bottom: .45rem; }
.pied a { color: var(--texte); text-decoration: none; font-size: .93rem; } .pied a:hover { color: var(--bordeaux); text-decoration: underline; }
.pied__mail { font-weight: 800; color: var(--marine) !important; }
.pied__bas { border-top: 1px solid var(--ligne); margin-top: 2.5rem; padding-top: 1.2rem; font-size: .85rem; color: var(--texte-doux); }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
@media print { .entete, .appel, .sousnav, .mini-estimation, .estimateur, .tdb { display: none !important; } body { font-size: 11pt; } }
.bloc--degrade .lien-fort { color: #fff; border-color: #fff; }
@media (max-width: 560px) {
  .tdb { height: 480px; }
  .tdb__carte--post, .tdb__carte--kpi, .tdb__carte--liste { display: none; }
  .tdb__carte--avis { left: 0; top: auto; bottom: 30px; }
  .tdb__carte--devis { right: 0; top: 70px; }
}

/* ---------- calculateur de visibilité ---------- */
.calc-intro { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 900px) { .calc-intro { grid-template-columns: 1.3fr .7fr; } }
.ponderation { list-style: none; margin: 0; padding: 1.2rem 1.4rem; background: var(--brume); border-radius: var(--rayon); }
.ponderation li { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem 0; border-bottom: 1px solid var(--ligne); font-size: .92rem; }
.ponderation li:last-child { border: 0; }
.ponderation strong { color: var(--marine); font-variant-numeric: tabular-nums; }
.portail { background: #fff; border-radius: 22px; padding: clamp(1.5rem, 3vw, 2.4rem); box-shadow: var(--ombre-forte); border-top: 6px solid var(--violet); max-width: 920px; margin: 0 auto; }
.portail h2 { display: flex; align-items: center; gap: .6rem; font-size: 1.5rem; }
.portail h2 .ico { color: var(--violet); }
.portail__intro { color: var(--texte-doux); }
.portail__erreurs { background: #fdecec; border-left: 5px solid var(--rouge); border-radius: 12px; padding: 1rem 1.2rem; margin-bottom: 1.2rem; }
.portail .grille-champs { margin-bottom: 1.2rem; }
.calc-tete { display: grid; gap: 1.6rem; align-items: center; margin-bottom: 2rem; }
@media (min-width: 900px) { .calc-tete { grid-template-columns: 1fr 320px; } }
.jauge { background: linear-gradient(160deg, var(--marine), var(--violet)); color: #fff; border-radius: 22px; padding: 1.4rem 1.6rem; box-shadow: var(--ombre-forte); }
.jauge__note { margin: 0; display: flex; align-items: baseline; gap: .4rem; }
.jauge__note strong { font-size: 3.2rem; font-weight: 850; font-stretch: 112%; line-height: 1; }
.jauge__note span { color: #c9d4e6; }
.jauge__palier { margin: .2rem 0 .8rem; font-weight: 800; color: #fff; }
.jauge__barre { height: 10px; border-radius: 999px; background: rgba(255,255,255,.22); overflow: hidden; margin: 0 0 .6rem; }
.jauge__barre span { display: block; height: 100%; width: var(--part, 0%); border-radius: 999px; background: linear-gradient(90deg, var(--rouge), #ffd166); transition: width .3s ease; }
.jauge__avancement { margin: 0; font-size: .85rem; color: #c9d4e6; }
.calc-familles { display: grid; gap: 1.4rem; }
.fam { background: #fff; border: 1px solid var(--ligne); border-radius: var(--rayon); overflow: hidden; }
.fam__tete { display: grid; gap: .2rem .8rem; grid-template-columns: 1fr auto; align-items: center; padding: 1rem 1.3rem; background: var(--brume); border-bottom: 1px solid var(--ligne); }
.fam__tete h3 { margin: 0; font-size: 1.1rem; }
.fam__poids { grid-column: 1; margin: 0; font-size: .84rem; color: var(--texte-doux); }
.fam__note { grid-column: 2; grid-row: 1 / 3; margin: 0; font-weight: 800; font-variant-numeric: tabular-nums; padding: .35rem .8rem; border-radius: 999px; background: #fff; border: 1px solid var(--ligne); font-size: .9rem; }
.fam__note--rouge { color: var(--rouge); border-color: #f3c2c2; } .fam__note--orange { color: #b06000; border-color: #f0d5ae; }
.fam__note--bleu { color: var(--marine-2); border-color: #bfd0e8; } .fam__note--vert { color: var(--vert); border-color: #b7e0c9; }
.fam__corps { padding: .6rem 1.3rem 1.2rem; }
.qst { padding: .9rem 0; border-bottom: 1px dashed var(--ligne); display: grid; gap: .5rem; }
.qst:last-child { border-bottom: 0; }
@media (min-width: 800px) { .qst { grid-template-columns: 1fr 280px; align-items: start; } .qst__vig { grid-column: 1 / -1; } }
.qst label { font-weight: 600; display: flex; gap: .6rem; }
.qst__num { font-size: .75rem; font-weight: 800; color: var(--violet); background: #efe9f8; border-radius: 6px; padding: .1rem .45rem; height: 1.4rem; flex: none; }
.qst--acquis .qst__num { color: var(--vert); background: #e3f3ea; }
.qst--partiel .qst__num { color: #b06000; background: #fbf0dd; }
.qst__vig { display: flex; gap: .5rem; margin: 0; font-size: .85rem; color: var(--texte-doux); background: var(--brume); border-radius: 10px; padding: .6rem .8rem; }
.qst__vig .ico { color: var(--bordeaux); flex: none; margin-top: .15rem; }
.calc-actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; margin-top: 2rem; }
.resultat { display: grid; gap: 2rem; align-items: start; margin-bottom: 2rem; }
@media (min-width: 900px) { .resultat { grid-template-columns: 300px 1fr; } }
.resultat__note { background: #fff; border-radius: 22px; padding: 1.6rem; text-align: center; box-shadow: var(--ombre-forte); }
.resultat__chiffre { margin: 0; display: flex; align-items: baseline; justify-content: center; gap: .4rem; }
.resultat__chiffre strong { font-size: 4.2rem; font-weight: 850; font-stretch: 112%; color: var(--marine); line-height: 1; }
.resultat__chiffre span { color: var(--texte-doux); }
.resultat__palier { font-weight: 800; color: var(--bordeaux); font-size: 1.2rem; margin: .4rem 0 .2rem; }
.resultat__questions { font-size: .85rem; color: var(--texte-doux); margin: 0; }
.resultat__texte p { color: #e2e7f3; }
.resultat__texte strong { color: #fff; }
.res-familles { list-style: none; padding: 0; margin: 1rem 0 2rem; display: grid; gap: 1rem; }
@media (min-width: 800px) { .res-familles { grid-template-columns: 1fr 1fr; } }
.res-familles li { background: rgba(255,255,255,.08); border-radius: 14px; padding: 1rem 1.2rem; color: #e2e7f3; }
.res-fam__tete { display: flex; justify-content: space-between; gap: 1rem; margin: 0 0 .5rem; }
.res-fam__tete strong { color: #fff; } .res-fam__tete span { font-variant-numeric: tabular-nums; color: #ffd166; font-weight: 700; }
.res-fam__barre { height: 8px; border-radius: 999px; background: rgba(255,255,255,.2); overflow: hidden; margin: 0 0 .5rem; }
.res-fam__barre span { display: block; height: 100%; width: var(--part, 0%); background: linear-gradient(90deg, #ffd166, #7ee0a8); border-radius: 999px; }
.res-fam__txt { margin: 0; font-size: .9rem; }
.res-priorites { padding-left: 1.3rem; margin: 1rem 0 2rem; color: #e2e7f3; }
.res-priorites li { margin-bottom: 1.2rem; }
.res-priorites strong { color: #fff; display: block; }
.res-gain { display: inline-block; font-size: .8rem; font-weight: 800; color: var(--marine); background: #ffd166; border-radius: 999px; padding: .1rem .6rem; margin: .3rem 0; }
.res-presta { font-size: .85rem; color: #c9d4e6; }
.res-alertes ul { color: #e2e7f3; padding-left: 1.3rem; }
.res-alertes li { margin-bottom: .5rem; }
.resultat__actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; margin: 1.5rem 0; }
.resultat__actions .bouton-texte { color: #fff; }

/* ---------- page partages ---------- */
.partages { display: grid; gap: 1.6rem; }
.partage { display: grid; gap: 1.2rem; background: #fff; border: 1px solid var(--ligne); border-radius: var(--rayon); padding: 1.2rem; box-shadow: var(--ombre); }
@media (min-width: 800px) { .partage { grid-template-columns: 330px 1fr; align-items: center; } }
.partage img { border-radius: 12px; width: 100%; height: auto; }
.partage h2 { font-size: 1.2rem; margin-bottom: .2rem; }
.partage__page { font-size: .82rem; color: var(--violet); font-weight: 700; margin: 0 0 .5rem; }
.partage__meta { font-size: .85rem; color: var(--texte-doux); margin: .5rem 0 0; }

@media print { .portail, .calc-familles, .calc-actions, .calc-tete { display: none !important; } #resultat { background: #fff !important; color: #000 !important; } }
.bandeau-calc { display: grid; gap: 1.4rem; align-items: center; background: linear-gradient(120deg, var(--violet), var(--marine)); color: #fff; border-radius: 22px; padding: 2rem; margin-bottom: 3rem; box-shadow: var(--ombre-forte); }
@media (min-width: 900px) { .bandeau-calc { grid-template-columns: 1fr auto; } }
.bandeau-calc h2 { color: #fff; margin: .6rem 0 .4rem; } .bandeau-calc p { margin: 0; color: #dfe4f2; }
.bandeau-calc .ico { color: #ffd166; }
