/* =========================================================
   Mon Viagériste — design system 2026
   Geist (texte, titres) + Geist Mono (chiffres, étiquettes), SIL OFL 1.1
   ========================================================= */
@font-face{font-family:"Geist";src:url(/assets/fonts/geist-latin-var.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Geist Mono";src:url(/assets/fonts/geist-mono-latin-var.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
/* tokens */
:root{
  --bg:#fff;--bg-2:#F6F7F9;--bg-3:#EEF0F4;
  --ink:#0A0F1C;--text:#1B2232;--text-2:#404959;--muted:#586174;
  --line:#E6E8ED;--line-2:#D6DAE2;
  --night:#070B14;--night-2:#0C1220;--night-3:#131B2D;
  --on-dark:#F3F5F9;--on-dark-2:#B6BECC;--on-dark-3:#8E98AB;
  --em:#10B981;--em-2:#34D399;--em-3:#6EE7B7;--em-soft:#ECFDF5;--em-line:#C9EEDD;--em-ink:#047857;--em-deep:#065F46;
  --in:#6366F1;--in-2:#818CF8;--in-3:#A5B4FC;--in-soft:#EEF0FF;--in-ink:#4338CA;
  --amber-soft:#FFF8EB;--amber-line:#F3DBAE;--amber-ink:#8A3B0C;
  --r-sm:10px;--r:16px;--r-lg:22px;--r-xl:28px;
  --sh-1:0 1px 2px rgba(10,15,28,.05),0 1px 1px rgba(10,15,28,.03);
  --sh-2:0 1px 2px rgba(10,15,28,.04),0 6px 16px -4px rgba(10,15,28,.07),0 18px 36px -16px rgba(10,15,28,.12);
  --sh-3:0 2px 4px rgba(10,15,28,.04),0 14px 28px -8px rgba(10,15,28,.12),0 40px 80px -28px rgba(10,15,28,.26);
  --font:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --g:clamp(16px,4vw,32px);--maxw:1200px;
  --read:700px;--rail:240px;--gap:72px;
  --ease:cubic-bezier(.2,.7,.2,1);--focus:#047857;
}
.dark,.nav,.menu,.foot{--focus:#6EE7B7}
/* base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:104px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--bg);color:var(--text);font:400 16px/1.6 var(--font);font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip}
html.menu-open{overflow:hidden}
img,svg{display:block;max-width:100%}
h1,h2,h3,h4{margin:0;color:var(--ink);font-weight:650;letter-spacing:-.03em;line-height:1.12;text-wrap:balance}
p{margin:0 0 1em}
a{color:inherit}
b,strong{font-weight:600}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2.5px solid var(--focus);outline-offset:3px;border-radius:6px}
::selection{background:#A7F3D0;color:var(--ink)}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.container{width:100%;max-width:calc(var(--maxw) + 2*var(--g));margin-inline:auto;padding-inline:var(--g)}
.ico{flex:none;width:20px;height:20px}
.skip{position:fixed;left:12px;top:-80px;z-index:200;background:#fff;color:var(--ink);padding:12px 18px;border-radius:12px;font-weight:600;box-shadow:var(--sh-3);text-decoration:none;transition:top .2s var(--ease)}
.skip:focus{top:12px}
main:focus{outline:none}
.eyebrow,.menu-k,.hero-paths-k,.foot-h,.toc-t{font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}
/* boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border-radius:999px;border:1px solid transparent;font-size:15px;font-weight:550;letter-spacing:-.01em;text-decoration:none;cursor:pointer;white-space:nowrap;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background-color .2s,border-color .2s,color .2s}
.btn .ico{width:18px;height:18px}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-sm{font-size:14px;padding:0 16px}
.btn-lg{min-height:52px;padding:0 24px;font-size:16px}
.btn-primary{background:linear-gradient(180deg,#3EE0A6,#10B981);color:#03140D;box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 1px 2px rgba(4,120,87,.4),0 10px 28px -10px rgba(16,185,129,.7)}
.btn-primary:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 1px 2px rgba(4,120,87,.4),0 16px 36px -12px rgba(16,185,129,.85)}
.btn-dark{background:var(--ink);color:#fff;box-shadow:0 1px 2px rgba(10,15,28,.3),0 10px 24px -12px rgba(10,15,28,.6)}
.btn-dark:hover{background:#1A2235}
.btn-dark .ico:last-child{transition:transform .2s var(--ease)}
.btn-dark:hover .ico:last-child{transform:translateX(3px)}
.btn-glass{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.btn-glass:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.22)}
.btn-ghost{background:#fff;border-color:var(--line-2);color:var(--ink);box-shadow:var(--sh-1)}
.btn-ghost:hover{border-color:#B9C0CC}
.link-arrow{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:var(--em-deep);font-weight:550;text-decoration:none;font-size:15px}
.link-arrow .ico{width:18px;height:18px;transition:transform .2s var(--ease)}
.link-arrow:hover .ico{transform:translateX(3px)}
.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:999px;font-size:12.5px;font-weight:550;letter-spacing:0;white-space:nowrap}
.chip .ico{width:14px;height:14px}
.chip-mono{font-family:var(--mono);font-size:12px;font-weight:450;border:1px solid var(--line-2);color:var(--text-2)}
.dark .chip-mono,.chip-dark{border-color:rgba(255,255,255,.16);color:var(--on-dark-2)}
.chip-glow{background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.28);color:var(--em-3)}
.ico-box{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--em-soft);color:var(--em-ink);border:1px solid #D5F5E6;flex:none}
.eyebrow{display:inline-flex;align-items:center;gap:8px;margin:0 0 14px;color:var(--em-ink)}
.eyebrow::before{content:"";width:14px;height:1.5px;border-radius:2px;background:currentColor;opacity:.7}
.dark .eyebrow{color:var(--em-3)}
/* surfaces sombres : maillage animé + grille + grain */
.dark{position:relative;isolation:isolate;background:var(--night);color:var(--on-dark)}
.dark h1,.dark h2,.dark h3{color:#fff}
.dark :where(a:not(.btn):not(.cta)){color:var(--em-3)}
.mesh{position:absolute;inset:0;z-index:-2;overflow:hidden;pointer-events:none}
.mesh i{position:absolute;display:block;border-radius:50%;opacity:.55;will-change:transform;animation:drift 26s ease-in-out infinite alternate}
.mesh i:nth-child(1){width:62vmax;height:62vmax;left:48%;top:-34vmax;background:radial-gradient(closest-side,rgba(16,185,129,.55),rgba(16,185,129,0))}
.mesh i:nth-child(2){width:48vmax;height:48vmax;left:62%;top:6vmax;background:radial-gradient(closest-side,rgba(20,184,166,.38),rgba(20,184,166,0));animation-duration:32s;animation-delay:-8s}
.mesh i:nth-child(3){width:56vmax;height:56vmax;left:-22vmax;top:-10vmax;background:radial-gradient(closest-side,rgba(99,102,241,.42),rgba(99,102,241,0));animation-duration:38s;animation-delay:-14s}
.mesh i:nth-child(4){width:36vmax;height:36vmax;left:18%;top:40%;background:radial-gradient(closest-side,rgba(52,211,153,.22),rgba(52,211,153,0));animation-duration:30s;animation-delay:-4s}
.mesh-soft i{opacity:.4}
@keyframes drift{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-4vmax,3vmax,0) scale(1.08)}100%{transform:translate3d(3vmax,-2vmax,0) scale(.96)}}
.grid-ov{position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:56px 56px;background-position:center top;-webkit-mask-image:radial-gradient(ellipse 75% 65% at 50% 20%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 75% 65% at 50% 20%,#000 20%,transparent 75%)}
.grid-ov::after{content:"";position:absolute;inset:0;opacity:.09;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.glass{background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,.035));border:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(22px) saturate(150%);backdrop-filter:blur(22px) saturate(150%);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 40px 90px -30px rgba(0,0,0,.7),0 0 0 1px rgba(0,0,0,.2)}
/* barre de progression */
.progress{position:fixed;inset:0 0 auto;height:3px;z-index:70;pointer-events:none}
.progress span{display:block;height:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--em),var(--em-2) 60%,var(--in-2))}
body:not(.t-article) .progress{display:none}
/* navigation pilule */
.topbar{position:fixed;top:12px;left:0;right:0;z-index:50;padding-inline:var(--g);pointer-events:none}
.nav{pointer-events:auto;max-width:var(--maxw);margin:0 auto;height:60px;display:flex;align-items:center;gap:8px;padding:0 8px 0 14px;border-radius:999px;background:rgba(9,13,24,.58);border:1px solid rgba(255,255,255,.09);-webkit-backdrop-filter:blur(18px) saturate(170%);backdrop-filter:blur(18px) saturate(170%);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 10px 30px -12px rgba(0,0,0,.5);transition:background-color .25s,box-shadow .25s}
.nav.is-scrolled{background:rgba(9,13,24,.82);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 16px 40px -14px rgba(0,0,0,.6)}
.brand{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:#fff;text-decoration:none;font-weight:620;font-size:16.5px;letter-spacing:-.025em;white-space:nowrap}
.logo-mark{width:32px;height:32px;border-radius:9px;box-shadow:0 0 0 1px rgba(255,255,255,.12),0 6px 18px -6px rgba(16,185,129,.7)}
.nav-links{display:flex;gap:2px;margin:0 0 0 auto;padding:0;list-style:none}
.nav-links a{display:inline-flex;align-items:center;height:44px;padding:0 14px;border-radius:999px;color:var(--on-dark-2);text-decoration:none;font-size:14.5px;font-weight:500;transition:color .2s,background-color .2s}
.nav-links a:hover{color:#fff;background:rgba(255,255,255,.06)}
.nav-links a[aria-current]{color:#fff;background:rgba(255,255,255,.09)}
.nav-cta{margin-left:6px}
.burger{display:none;margin-left:auto;width:44px;height:44px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);cursor:pointer;place-items:center}
.burger-i{display:grid;gap:5px;width:18px}
.burger-i i{display:block;height:1.75px;border-radius:2px;background:#fff;transition:transform .25s var(--ease)}
@media (max-width:1023px){
  .nav-links{display:none}
  .burger{display:grid}
  .nav-cta{margin-left:auto}
  .nav-cta+.burger{margin-left:6px}
}
@media (max-width:559px){.nav-cta{display:none}.nav .burger{margin-left:auto}.nav{padding-left:10px;height:58px}}
/* menu mobile plein écran */
.menu{position:fixed;inset:0;z-index:80;background:var(--night);color:var(--on-dark);opacity:0;transition:opacity .28s var(--ease)}
.menu.is-open{opacity:1}
.menu-bg{position:absolute;inset:0;overflow:hidden}
.menu-bg .mesh{z-index:0}
.menu-in{position:relative;height:100%;overflow-y:auto;max-width:720px;margin:0 auto;padding:12px var(--g) 32px;display:flex;flex-direction:column}
.menu-top{display:flex;align-items:center;justify-content:space-between;height:60px;padding-left:4px;margin-bottom:24px}
.menu-close{display:grid;place-items:center;width:44px;height:44px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff;cursor:pointer}
.menu-main{list-style:none;margin:0;padding:0}
.menu-main li{opacity:0;transform:translateY(14px);transition:opacity .4s var(--ease),transform .4s var(--ease);transition-delay:calc(var(--i)*40ms + 60ms)}
.menu.is-open .menu-main li{opacity:1;transform:none}
.menu-main a{display:flex;align-items:center;justify-content:space-between;min-height:64px;border-bottom:1px solid rgba(255,255,255,.08);color:#fff;text-decoration:none;font-size:clamp(26px,7vw,34px);font-weight:600;letter-spacing:-.035em}
.menu-main a .ico{color:var(--on-dark-3);transition:transform .2s var(--ease),color .2s}
.menu-main a:hover .ico,.menu-main a[aria-current] .ico{color:var(--em-2);transform:translateX(4px)}
.menu-main a[aria-current] span{background:linear-gradient(90deg,#fff,var(--em-3));-webkit-background-clip:text;background-clip:text;color:transparent}
.menu-sec{margin-top:32px}
.menu-k{color:var(--on-dark-3);margin-bottom:10px}
.menu-sec ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:16px}
.menu-sec a{display:flex;align-items:center;min-height:44px;color:var(--on-dark-2);text-decoration:none;font-size:15px}
.menu-sec a:hover{color:#fff}
.menu-cta{margin-top:auto;width:100%}
.menu-sec+.menu-cta{margin-top:32px}
@media (max-width:479px){.menu-sec ul{grid-template-columns:1fr}}
/* sections */
.section{padding-block:clamp(72px,10vw,128px)}
.tint{background:var(--bg-2)}
.sec-head{margin-bottom:clamp(32px,5vw,56px)}
.sec-head h2{font-size:clamp(30px,4.2vw,52px);letter-spacing:-.045em;line-height:1.04;max-width:20ch}
.sec-head-c{text-align:center}
.sec-head-c h2{margin-inline:auto}
.sec-head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.sec-lead{font-size:clamp(17px,1.6vw,19px);line-height:1.65;color:var(--text-2);max-width:56ch;margin-top:18px}
.sec-lead a,.method a,.nots a,.acc a,.flow-legend a{color:var(--em-deep);text-decoration-color:rgba(16,185,129,.55);text-underline-offset:3px;text-decoration-thickness:1.5px}
/* apparitions */
.reveal-on [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease) var(--d,0ms),transform .7s var(--ease) var(--d,0ms)}
.reveal-on [data-reveal].is-in{opacity:1;transform:none}
/* hero */
.hero{padding:clamp(120px,14vw,156px) 0 0;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:clamp(40px,5vw,64px);align-items:center}
.pill{display:inline-flex;align-items:center;gap:10px;margin:0 0 26px;padding:7px 14px 7px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);font:500 12px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--on-dark-2)}
.pill-dot,.live-dot{position:relative;width:7px;height:7px;border-radius:50%;background:var(--em-2);box-shadow:0 0 0 3px rgba(52,211,153,.18)}
.pill-dot::after,.live-dot::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:1px solid var(--em-2);animation:ping 2.4s var(--ease) infinite}
@keyframes ping{0%{transform:scale(.6);opacity:.9}80%,100%{transform:scale(2.2);opacity:0}}
.hero h1{font-size:clamp(40px,4.4vw,64px);line-height:1.02;letter-spacing:-.05em;font-weight:650;max-width:none}
.grad{background:linear-gradient(92deg,#A7F3D0 0%,#34D399 38%,#2DD4BF 62%,#A5B4FC 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-lead{margin:26px 0 0;font-size:clamp(17px,1.5vw,19px);line-height:1.62;color:var(--on-dark-2);max-width:54ch}
.hero-paths{margin-top:38px}
.hero-paths-k{color:var(--on-dark-3);margin:0 0 14px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px}
.cta{display:inline-flex;align-items:center;gap:14px;min-height:66px;padding:10px 20px 10px 10px;border-radius:20px;text-decoration:none;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background-color .2s,border-color .2s}
.cta:hover{transform:translateY(-2px)}
.cta-ico{display:grid;place-items:center;width:46px;height:46px;border-radius:14px}
.cta-txt{display:flex;flex-direction:column;gap:3px;margin-right:6px}
.cta-k{font:500 11px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase;opacity:.8}
.cta-t{font-size:16.5px;font-weight:620;letter-spacing:-.02em;line-height:1.2}
.cta>.ico{width:18px;height:18px;transition:transform .2s var(--ease)}
.cta:hover>.ico{transform:translateX(4px)}
.cta-primary{background:linear-gradient(180deg,#3EE0A6,#10B981);color:#03140D;box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 18px 40px -16px rgba(16,185,129,.8)}
.cta-primary .cta-ico{background:rgba(3,20,13,.1)}
.cta-glass{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.13);color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.cta-glass:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.22)}
.cta-glass .cta-ico{background:rgba(255,255,255,.08);color:var(--em-3)}
@media (prefers-reduced-motion:no-preference){
  .hero-main>*{animation:rise .8s var(--ease) both}
  .hero-main>h1{animation:none}
  .hero-main>.hero-lead{animation-delay:.08s}
  .hero-main>.hero-paths{animation-delay:.16s}
  .hero .qcalc{animation:rise 1s var(--ease) .12s both}
}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
/* carte simulateur express (verre) */
.qcalc{border-radius:24px;padding:22px;color:var(--on-dark)}
.qc-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.qcalc-t{margin:0;font-size:14px;font-weight:500;color:var(--on-dark-2)}
.live{white-space:nowrap;display:inline-flex;align-items:center;gap:8px;height:26px;padding:0 10px;border-radius:999px;background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.22);font:500 11px/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--em-3)}
.live-dot{width:6px;height:6px}
.qcalc-big{margin:0;display:flex;flex-direction:column}
.qcalc-big output{font-size:clamp(44px,4.6vw,56px);font-weight:650;letter-spacing:-.05em;line-height:1.05;color:#fff;font-variant-numeric:tabular-nums}
.qcalc-per{font-size:13px;color:var(--on-dark-3);margin-top:4px}
.qc-chart{width:100%;height:84px;margin:14px 0 8px}
.qc-key{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0 0 12px;font-size:11.5px;color:var(--on-dark-3)}
.qc-key span{display:inline-flex;align-items:center;gap:6px}
.qc-key span::before{content:"";width:14px;border-top:2px solid var(--em-2)}
.qc-key .qk2::before{border-top:1px dashed rgba(255,255,255,.6)}
.qc-key .qk3::before{border-top:1px dashed var(--in-3)}
.q-line{fill:none;stroke:var(--em-2);stroke-width:2;stroke-linejoin:round}
.q-area{fill:url(#q-fill)}
.q-val{stroke:rgba(255,255,255,.4);stroke-width:1;stroke-dasharray:3 4}
.q-dur{stroke:rgba(165,180,252,.75);stroke-width:1;stroke-dasharray:2 3}
.qcalc-dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}
.qcalc-dl div{padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.qcalc-dl dt{font-size:12px;color:var(--on-dark-3);line-height:1.3}
.qcalc-dl dd{margin:4px 0 0;font:500 15px/1.2 var(--mono);color:#fff;font-variant-numeric:tabular-nums}
.qcalc-fields{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08)}
.qcalc .fld{margin-bottom:10px}
.fld-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.qcalc label,.qcalc .lbl{font-size:13.5px;color:var(--on-dark-2);line-height:1.3}
.qcalc .ctl{width:128px}
.qcalc .ctl input{background:rgba(0,0,0,.28);border-color:rgba(255,255,255,.13);color:#fff}
.qcalc .ctl input:focus{border-color:var(--em-2);box-shadow:0 0 0 3px rgba(52,211,153,.22)}
.qcalc .unit{color:var(--on-dark-3)}
.qcalc .rng{--track:rgba(255,255,255,.14)}
.fld-seg{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0 6px}
.qcalc-note{display:flex;gap:8px;margin:12px 0 0;font-size:12.5px;line-height:1.5;color:var(--on-dark-3)}
.qcalc-note .ico{width:16px;height:16px;margin-top:1px}
.qcalc-more{margin:10px 0 0}
.qcalc-more a{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:14px;font-weight:550;text-decoration:none}
.qcalc-more .ico{width:16px;height:16px;transition:transform .2s var(--ease)}
.qcalc-more a:hover .ico{transform:translateX(3px)}
/* principes */
.principles{list-style:none;margin:clamp(48px,7vw,88px) 0 0;padding:22px 0 30px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px 28px}
.principles li{display:inline-flex;align-items:center;gap:10px;font-size:14.5px;font-weight:500;color:var(--on-dark-2)}
.principles .ico{width:18px;height:18px;color:var(--em-2)}
/* champs (partagés) */
.ctl{position:relative;flex:none}
.ctl input,.ctl select{width:100%;height:44px;padding:0 44px 0 12px;border:1px solid var(--line-2);border-radius:12px;background:#fff;font:500 15px/1 var(--mono);text-align:right;font-variant-numeric:tabular-nums;transition:border-color .15s,box-shadow .15s;-moz-appearance:textfield;appearance:textfield}
.ctl input::-webkit-outer-spin-button,.ctl input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.ctl input:focus{outline:none;border-color:var(--em);box-shadow:0 0 0 3px rgba(16,185,129,.2)}
.unit{position:absolute;right:12px;top:50%;transform:translateY(-50%);font:500 13px/1 var(--mono);color:var(--muted);pointer-events:none}
.rng{--p:50%;--track:#E3E6EC;-webkit-appearance:none;appearance:none;display:block;width:100%;height:28px;margin:4px 0 0;background:transparent;cursor:pointer}
.rng:focus{outline:none}
.rng::-webkit-slider-runnable-track{height:6px;border-radius:99px;background:linear-gradient(90deg,var(--em) 0,var(--em-2) var(--p),var(--track) var(--p))}
.rng::-moz-range-track{height:6px;border-radius:99px;background:var(--track)}
.rng::-moz-range-progress{height:6px;border-radius:99px;background:linear-gradient(90deg,var(--em),var(--em-2))}
.rng::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;margin-top:-7px;border-radius:50%;background:#fff;border:0;box-shadow:0 0 0 1px rgba(10,15,28,.12),0 2px 6px rgba(10,15,28,.3),inset 0 0 0 5px var(--em);transition:transform .15s var(--ease),box-shadow .15s}
.rng::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#fff;border:0;box-shadow:0 0 0 1px rgba(10,15,28,.12),0 2px 6px rgba(10,15,28,.3),inset 0 0 0 5px var(--em)}
.rng:hover::-webkit-slider-thumb{transform:scale(1.08)}
.rng:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px rgba(16,185,129,.35),0 2px 6px rgba(10,15,28,.3),inset 0 0 0 5px var(--em)}
.rng:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px rgba(16,185,129,.35),inset 0 0 0 5px var(--em)}
.seg{display:inline-flex;padding:3px;border-radius:12px;background:var(--bg-2);border:1px solid var(--line)}
.seg label{position:relative;display:block;cursor:pointer;margin:0}
.seg input{position:absolute;opacity:0;width:100%;height:100%;inset:0;margin:0;cursor:pointer}
.seg span{display:flex;align-items:center;justify-content:center;min-width:84px;height:38px;padding:0 16px;border-radius:9px;font-size:14px;font-weight:550;color:var(--text-2);transition:background-color .2s,color .2s,box-shadow .2s}
.seg input:checked+span{background:#fff;color:var(--ink);box-shadow:var(--sh-1),0 0 0 1px rgba(10,15,28,.06)}
.seg input:focus-visible+span{outline:2.5px solid var(--focus);outline-offset:2px}
.qcalc .seg{background:rgba(0,0,0,.25);border-color:rgba(255,255,255,.1)}
.qcalc .seg span{color:var(--on-dark-2);min-width:76px}
.qcalc .seg input:checked+span{background:rgba(255,255,255,.95);color:var(--ink)}
/* formule (code) */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,88px);align-items:center}
.qsim-intro h2{font-size:clamp(30px,4.2vw,52px);letter-spacing:-.045em;line-height:1.04;max-width:16ch}
.qsim-intro .btn{margin-top:12px}
.formula{border-radius:22px;background:#0A0F1C;border:1px solid #1D2537;box-shadow:var(--sh-3);overflow:hidden}
.formula-bar{display:flex;align-items:center;gap:7px;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.07)}
.formula-bar i{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.14)}
.formula-bar span{margin-left:10px;font:400 12px/1 var(--mono);color:var(--on-dark-3)}
.formula-body{padding:22px 24px 8px;font:400 14.5px/1.6 var(--mono);color:var(--on-dark-2);font-variant-numeric:tabular-nums}
.fx-row{margin:0 0 4px}
.fx-row:nth-child(odd):not(:first-child){margin-top:14px}
.fx-c{color:#7F8AA0}
.fx-k{color:var(--in-3)}
.fx-v{color:var(--em-3)}
.fx-r{color:#fff;white-space:nowrap}
.fx-big{display:inline-block;margin-top:6px;padding:4px 10px;border-radius:8px;background:rgba(52,211,153,.12);color:var(--em-2);font-weight:600}
.formula-foot{padding:14px 24px 22px}
/* schéma des flux */
.flow-canvas{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(14px,3vw,40px);box-shadow:var(--sh-2)}
.flow-wide{width:100%;height:auto}
.flow-tall{display:none;width:100%;max-width:420px;height:auto;margin:0 auto}
@media (max-width:759px){.flow-wide{display:none}.flow-tall{display:block}}
.fl-node>rect:first-child{fill:#fff;stroke:var(--line-2);stroke-width:1}
.fl-node{filter:drop-shadow(0 8px 16px rgba(10,15,28,.06))}
.fl-node-c>rect:first-child{fill:#FAFAFF;stroke:#D9DCFA}
.fl-ibox{fill:var(--em-soft);stroke:#D5F5E6}
.fl-node-c .fl-ibox{fill:var(--in-soft);stroke:#DCDFFB}
.fl-ico,.fl-ico *{fill:none;stroke:var(--em-ink);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.fl-node-c .fl-ico,.fl-node-c .fl-ico *{stroke:var(--in-ink)}
.fl-k{font:500 11.5px var(--mono);letter-spacing:.08em;fill:var(--muted)}
.fl-t{font:620 19px var(--font);letter-spacing:-.02em;fill:var(--ink)}
.fl-s{font:400 13px var(--font);fill:var(--muted)}
.fl-l{font:600 13px var(--font);fill:var(--ink)}
.fl-h{font:620 16px var(--font);fill:var(--ink);letter-spacing:-.01em}
.fl-l-g{fill:var(--em-ink)}
.fl-l-i{fill:var(--in-ink)}
.fl-tag{font:500 11px var(--mono);letter-spacing:.08em;fill:var(--em-ink)}
.fl-tagbg{fill:var(--em-soft);stroke:var(--em-line)}
.fl-line{stroke:var(--ink);stroke-width:1.6;fill:none}
.fl-rente{stroke:var(--em);stroke-width:2;fill:none}
.fl-prop{stroke:var(--in);stroke-width:2;fill:none}
.fl-anim{stroke-dasharray:6 6}
@media (prefers-reduced-motion:no-preference){.fl-anim{animation:flowdash 1.3s linear infinite}}
@keyframes flowdash{to{stroke-dashoffset:-24}}
.fl-head{fill:var(--ink)}.fl-head-g{fill:var(--em)}.fl-head-i{fill:var(--in)}
.fl-pill{fill:#fff;stroke:var(--line-2)}
.fl-pill-g{fill:#F2FDF8;stroke:#BDEBD6}
.fl-pill-i{fill:#F6F7FF;stroke:#CDD3FB}
.fl-br{stroke:#A3ABB9;stroke-width:1.2;fill:none}
.fl-b1{fill:var(--em)}
.fl-b2{fill:#8DE9C4}
.fl-hatch-bg{fill:var(--bg-3)}
.fl-hatch{stroke:#B9C0CC;stroke-width:2}
.fl-num{font-family:var(--mono);font-size:12.5px}
.fl-strong{fill:var(--ink);font-weight:500}
.fl-res{font:600 15px var(--mono);fill:var(--em-ink)}
.reveal-on .flow-fig .fl-bar rect{transform:scaleX(0);transform-box:fill-box;transform-origin:left center;transition:transform 1s var(--ease)}
.reveal-on .flow-fig .fl-bar rect:nth-child(2){transition-delay:.15s}
.reveal-on .flow-fig .fl-bar rect:nth-child(3){transition-delay:.3s}
.reveal-on .flow-fig.is-in .fl-bar rect{transform:none}
.flow-fig{margin:0}
.flow-legend{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.flow-legend li{position:relative;padding:20px;border-radius:var(--r);background:#fff;border:1px solid var(--line);font-size:14.5px;line-height:1.6;color:var(--text-2)}
.flow-legend li::before{content:"";display:block;width:28px;height:4px;border-radius:4px;margin-bottom:14px;background:var(--ink)}
.flow-legend li:nth-child(2)::before{background:var(--em)}
.flow-legend li:nth-child(3)::before{background:var(--in)}
.flow-legend li:nth-child(4)::before{background:linear-gradient(90deg,var(--em) 0 30%,#8DE9C4 30% 70%,var(--line-2) 70%)}
.flow-legend b{display:block;color:var(--ink);font-size:15.5px;margin-bottom:4px}
/* bento des guides */
.bento{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.bento li{display:flex}
.b-1{grid-column:span 3;grid-row:span 2}
.b-2,.b-3{grid-column:span 3}
.b-4,.b-5,.b-6{grid-column:span 2}
.bento a{position:relative;display:flex;flex-direction:column;width:100%;padding:24px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1);text-decoration:none;color:var(--text);overflow:hidden;transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s}
.bento a:hover{transform:translateY(-3px);box-shadow:var(--sh-3);border-color:#CED4DE}
.b-top{display:flex;align-items:center;justify-content:space-between}
.c-n{font:500 12px/1 var(--mono);color:var(--muted);letter-spacing:.04em}
.c-b{display:block;margin-top:28px}
.c-b b{display:block;font-size:21px;font-weight:620;letter-spacing:-.03em;line-height:1.2;color:var(--ink)}
.c-b>span{display:block;margin-top:8px;font-size:15px;line-height:1.55;color:var(--text-2)}
.b-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:24px}
.c-rt{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:999px;background:var(--bg-2);border:1px solid var(--line);font:500 12px/1 var(--mono);color:var(--text-2)}
.c-rt .ico{width:14px;height:14px}
.b-go{display:grid;place-items:center;width:38px;height:38px;border-radius:999px;border:1px solid var(--line);color:var(--ink);transition:background-color .25s,color .25s,transform .25s var(--ease),border-color .25s}
.b-go .ico{width:18px;height:18px}
.bento a:hover .b-go{background:var(--ink);border-color:var(--ink);color:#fff;transform:rotate(45deg)}
.b-1 a{background:radial-gradient(120% 80% at 100% 0%,#E9FBF3 0%,rgba(233,251,243,0) 55%),#fff}
.b-1 .c-b b{font-size:clamp(24px,2.6vw,32px);letter-spacing:-.04em}
.b-1 .c-b>span{font-size:16.5px;max-width:34ch}
.b-art{display:flex;gap:8px;align-items:flex-end;margin-top:auto;padding-top:36px;height:190px}
.b-1 .b-foot{margin-top:0}
.b-art i{flex:1;display:block;border-radius:8px 8px 4px 4px;background:var(--bg-3);height:30%;transition:height .5s var(--ease),background-color .5s}
.b-art i:nth-child(-n+5){background:linear-gradient(180deg,var(--em-2),var(--em))}
.b-art i:nth-child(1){height:22%}.b-art i:nth-child(2){height:34%}.b-art i:nth-child(3){height:46%}.b-art i:nth-child(4){height:58%}.b-art i:nth-child(5){height:70%}.b-art i:nth-child(6){height:80%}.b-art i:nth-child(7){height:90%}.b-art i:nth-child(8){height:100%}
.b-1 a:hover .b-art i:nth-child(6),.b-1 a:hover .b-art i:nth-child(7),.b-1 a:hover .b-art i:nth-child(8){background:linear-gradient(180deg,var(--in-3),var(--in-2))}
.b-dark a{background:radial-gradient(90% 90% at 100% 0%,rgba(16,185,129,.24),transparent 60%),#0A0F1C;border-color:#1D2537;color:var(--on-dark)}
.b-dark a:hover{border-color:#2B3550}
.b-dark .ico-box{background:rgba(52,211,153,.12);border-color:rgba(52,211,153,.25);color:var(--em-3)}
.b-dark .c-n{color:var(--on-dark-3)}
.b-dark .c-b b{color:#fff}
.b-dark .c-b>span{color:var(--on-dark-2)}
.b-dark .c-rt{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.1);color:var(--on-dark-2)}
.b-dark .b-go{border-color:rgba(255,255,255,.16);color:#fff}
.b-dark a:hover .b-go{background:var(--em-2);border-color:var(--em-2);color:#03140D}
.b-bars{display:flex;align-items:flex-end;gap:6px;height:56px;margin-top:22px}
.b-bars i{flex:1;height:var(--h);border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,rgba(52,211,153,.9),rgba(52,211,153,.12));transform-origin:bottom;transition:transform .4s var(--ease)}
.b-dark a:hover .b-bars i{transform:scaleY(1.12)}
/* parcours vendeur / acheteur */
.paths2{overflow:hidden}
.paths2-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pcard{position:relative;overflow:hidden;padding:clamp(28px,4vw,44px);border-radius:var(--r-xl);background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.pcard::before{content:"";position:absolute;top:-45%;right:-25%;width:80%;height:90%;border-radius:50%;background:radial-gradient(closest-side,rgba(16,185,129,.28),transparent);pointer-events:none}
.pcard-a::before{background:radial-gradient(closest-side,rgba(99,102,241,.32),transparent)}
.pcard-ico{display:grid;place-items:center;width:52px;height:52px;border-radius:15px;margin-bottom:28px;background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.25);color:var(--em-3)}
.pcard-a .pcard-ico{background:rgba(129,140,248,.14);border-color:rgba(129,140,248,.3);color:var(--in-3)}
.pcard-a .eyebrow{color:var(--in-3)}
.pcard h2{font-size:clamp(26px,3vw,38px);letter-spacing:-.04em;margin-bottom:14px}
.pcard>p{color:var(--on-dark-2);font-size:16.5px;line-height:1.65;max-width:48ch}
.idx{list-style:none;margin:28px 0 0;padding:0}
.dark .idx a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:54px;border-top:1px solid rgba(255,255,255,.09);color:#fff;text-decoration:none;font-size:16px;font-weight:500;transition:color .2s}
.idx a .ico{width:18px;height:18px;color:var(--on-dark-3);transition:transform .2s var(--ease),color .2s}
.dark .idx a:hover{color:var(--em-3)}
.idx a:hover .ico{transform:translateX(4px);color:currentColor}
.pcard-a .idx a:hover{color:var(--in-3)}
/* tableaux */
.tablewrap{margin:28px 0;border:1px solid var(--line);border-radius:var(--r);overflow-x:auto;background:#fff;-webkit-overflow-scrolling:touch}
.tablewrap:focus-visible{outline-offset:2px}
table{width:100%;border-collapse:separate;border-spacing:0;font-size:15px;line-height:1.5}
caption{caption-side:bottom;text-align:left;padding:12px 18px;font-size:13px;color:var(--muted);border-top:1px solid var(--line);background:var(--bg-2)}
th,td{padding:14px 18px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
tbody tr:last-child>*{border-bottom:0}
thead th{background:var(--bg-2);font:500 12px/1.3 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--text-2);white-space:nowrap}
tbody th{font-weight:600;color:var(--ink)}
tbody tr{transition:background-color .15s}
tbody tr:hover{background:#FAFBFC}
td.num{font-family:var(--mono);font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}
.tw-compare thead th:nth-child(2){background:#E6FAF1;color:var(--em-deep)}
.tw-compare td:nth-child(2){background:#F5FDF9}
.tw-compare tbody th{width:22%}
.cmp-card .tablewrap{margin:0;border-radius:var(--r-lg);box-shadow:var(--sh-2)}
.cmp-card table{font-size:15.5px}
.cmp-card th,.cmp-card td{padding:16px 22px}
@media (max-width:759px){.tablewrap table{min-width:640px}.tablewrap .t-calc{min-width:600px}}
/* méthode & indépendance */
.method-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.mcard{padding:28px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1)}
.m-n{margin:24px 0 8px;font:500 12px/1 var(--mono);color:var(--muted)}
.mcard p{color:var(--text-2);font-size:15.5px;line-height:1.6}
.mcard p:last-child{margin:0}
.mcard strong{color:var(--ink);font-size:18px;letter-spacing:-.02em}
.nots{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,64px);margin-top:16px;padding:clamp(24px,4vw,44px);border-radius:var(--r-xl);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1)}
.nots h2{font-size:clamp(26px,3vw,36px);letter-spacing:-.04em;margin-bottom:14px}
.nots-head>p:last-child{color:var(--text-2)}
.nots-list{list-style:none;margin:0;padding:0}
.nots-list li{display:flex;gap:14px;padding:16px 0;border-top:1px solid var(--line);color:var(--text-2);font-size:15.5px;line-height:1.6}
.nots-list li:first-child{border-top:0;padding-top:0}
.nots-list b{color:var(--ink)}
.x{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:9px;background:#FEF1F1;color:#B42318;margin-top:1px}
.x .ico{width:15px;height:15px}
/* accordéons (FAQ) */
.faq-split{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,6vw,80px);align-items:start}
.faq-split .sec-head{position:sticky;top:110px}
.acc details,.art-faq .prose details{margin:0 0 10px;padding:0 22px;border-radius:var(--r);background:#fff;border:1px solid var(--line);transition:border-color .2s,box-shadow .2s}
.acc details[open],.art-faq .prose details[open]{border-color:var(--em-line);box-shadow:var(--sh-2)}
.acc summary,.art-faq .prose summary{position:relative;display:flex;align-items:center;min-height:64px;padding:16px 44px 16px 0;cursor:pointer;list-style:none;font-size:17px;font-weight:600;letter-spacing:-.015em;line-height:1.35;color:var(--ink)}
.acc summary::-webkit-details-marker,.art-faq .prose summary::-webkit-details-marker{display:none}
.acc summary::after,.art-faq .prose summary::after{content:"";position:absolute;right:0;top:50%;width:28px;height:28px;margin-top:-14px;border-radius:50%;border:1px solid var(--line-2);background:linear-gradient(currentColor,currentColor) center/11px 1.6px no-repeat,linear-gradient(currentColor,currentColor) center/1.6px 11px no-repeat;color:var(--ink);transition:transform .25s var(--ease),background-color .2s,border-color .2s}
.acc details[open]>summary::after,.art-faq .prose details[open]>summary::after{transform:rotate(135deg);border-color:var(--em);color:var(--em-ink);background-color:var(--em-soft)}
.acc details.is-closing>summary::after,.art-faq .prose details.is-closing>summary::after{transform:none}
.acc summary:hover::after,.art-faq .prose summary:hover::after{border-color:#AEB6C3}
.acc details>div,.art-faq .prose details>div{overflow:hidden}
.acc details>div>p,.art-faq .prose details>div>p{margin:0;padding:0 0 20px;font-size:16px;line-height:1.7;color:var(--text-2)}
/* CTA final */
.why{padding-block:clamp(96px,13vw,160px);overflow:hidden;text-align:center}
.why .mesh i:nth-child(1){left:20%;top:-30vmax}
.why .grid-ov{-webkit-mask-image:radial-gradient(ellipse 60% 70% at 50% 50%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 60% 70% at 50% 50%,#000 20%,transparent 75%)}
.why-in h2{font-size:clamp(34px,5.4vw,66px);letter-spacing:-.05em;line-height:1.02;max-width:16ch;margin:0 auto}
.why-in>p{max-width:62ch;margin:24px auto 0;font-size:clamp(17px,1.5vw,19px);line-height:1.65;color:var(--on-dark-2)}
.why-ctas{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:36px}
.why-ext{max-width:62ch;margin:56px auto 0}
.why-ext .ext{justify-content:center;border-color:rgba(255,255,255,.12);color:var(--on-dark-3);background:rgba(255,255,255,.02);text-align:left}
/* pied de page */
.foot{overflow:hidden;border-top:1px solid rgba(255,255,255,.07);padding-top:clamp(56px,8vw,88px);background:#05080F}
.foot-glow{position:absolute;left:50%;top:-180px;width:900px;height:360px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(16,185,129,.16),transparent);z-index:-1;pointer-events:none}
.foot-top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,3fr);gap:clamp(40px,6vw,80px)}
.foot-name{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:620;letter-spacing:-.025em;color:#fff;margin-bottom:16px}
.foot-brand>p:not(.foot-name){font-size:14.5px;line-height:1.65;color:var(--on-dark-3);max-width:38ch}
.foot-tool{margin-top:22px}
.foot-tool .btn .ico:last-child{transition:transform .2s var(--ease)}
.foot-tool .btn:hover .ico:last-child{transform:translateX(3px)}
.foot-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.foot-h{color:var(--on-dark-2);margin:6px 0 12px}
.foot ul{list-style:none;margin:0;padding:0}
.foot-col a{display:inline-flex;align-items:center;min-height:38px;padding:2px 0;color:var(--on-dark-3);font-size:14.5px;line-height:1.35;text-decoration:none;transition:color .2s}
.foot .foot-col a:hover{color:#fff}
.foot-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:clamp(48px,7vw,72px);padding:24px 0 32px;border-top:1px solid rgba(255,255,255,.08);font-size:13px;color:var(--on-dark-3)}
.foot-legal p{margin:0}
.foot-legal a{display:inline-flex;align-items:center;gap:4px;min-height:44px;margin:-14px 0;color:var(--on-dark-2)!important;text-decoration:none}
.foot-legal .ico{width:14px;height:14px}
@media (pointer:coarse){.foot-col a{min-height:44px}}
/* article : en-tête */
.ahead{padding:clamp(112px,13vw,148px) 0 clamp(44px,6vw,72px);overflow:hidden}
.ahead .mesh i:nth-child(1){top:-44vmax}
.ahead-in{max-width:calc(var(--read) + var(--gap) + var(--rail) + 2*var(--g))}
.art:not(:has(.rail)) .ahead-in{max-width:calc(var(--read) + 2*var(--g))}
.art-glossaire .ahead-in{max-width:calc(1000px + 2*var(--g))}
.crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:2px 0;margin:0;padding:0;list-style:none;font-size:13.5px;color:var(--on-dark-3)}
.crumbs li+li::before{content:"/";margin:0 10px;color:rgba(255,255,255,.25)}
.dark .crumbs a{display:inline-flex;align-items:center;min-height:32px;color:var(--on-dark-2);text-decoration:none}
.dark .crumbs a:hover{color:#fff}
.crumbs [aria-current]{color:var(--on-dark-2)}
.kicker{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 20px}
.ahead h1{font-size:clamp(34px,5vw,60px);letter-spacing:-.048em;line-height:1.03;max-width:22ch}
.ahead .lead{margin:22px 0 0;font-size:clamp(17px,1.6vw,20px);line-height:1.6;color:var(--on-dark-2);max-width:60ch}
.ameta{display:flex;flex-wrap:wrap;gap:8px;margin:30px 0 0;padding:0;list-style:none}
.ameta li{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 12px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);font-size:13px;color:var(--on-dark-2)}
.ameta .ico{width:15px;height:15px;color:var(--em-3)}
.ameta b{font-weight:550;color:#fff}
.ahead-404{min-height:72vh;display:flex;align-items:center}
/* article : corps */
.abody{padding-block:clamp(40px,6vw,72px) clamp(72px,9vw,112px);max-width:calc(var(--read) + 2*var(--g))}
.abody.has-rail{max-width:calc(var(--read) + var(--gap) + var(--rail) + 2*var(--g));display:grid;grid-template-columns:minmax(0,var(--read)) var(--rail);gap:var(--gap);justify-content:space-between;align-items:start}
.art-glossaire .abody{max-width:calc(1000px + 2*var(--g))}
.art-faq .abody{max-width:calc(820px + 2*var(--g))}
.prose{min-width:0;font-size:18px;line-height:1.7;color:var(--text)}
.prose>*:first-child{margin-top:0}
.prose h2{font-size:clamp(25px,2.6vw,32px);letter-spacing:-.035em;line-height:1.15;margin:64px 0 18px;scroll-margin-top:104px}
.t-article .prose>h2::before{content:"";display:block;width:28px;height:3px;margin-bottom:18px;border-radius:3px;background:linear-gradient(90deg,var(--em),var(--em-2))}
.prose h3{font-size:20px;letter-spacing:-.02em;margin:36px 0 10px}
.prose p{margin:0 0 1.2em}
.prose a{color:var(--em-deep);text-decoration:underline;text-decoration-color:rgba(16,185,129,.55);text-decoration-thickness:1.5px;text-underline-offset:3px;transition:color .15s,text-decoration-color .15s}
.prose a:hover{color:var(--em-ink);text-decoration-color:var(--em)}
.prose strong{color:var(--ink)}
.prose ul,.prose ol{list-style:none;margin:0 0 1.4em;padding:0}
.prose li{position:relative;padding-left:30px;margin:0 0 .6em}
.prose ul>li::before{content:"";position:absolute;left:8px;top:.68em;width:6px;height:6px;border-radius:50%;background:var(--em)}
.prose ol{counter-reset:li}
.prose ol>li{counter-increment:li;padding-left:40px}
.prose ol>li::before{content:counter(li);position:absolute;left:0;top:.18em;display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--em-soft);border:1px solid #D5F5E6;font:600 12.5px/1 var(--mono);color:var(--em-ink)}
.prose hr{border:0;height:1px;background:var(--line);margin:48px 0}
/* encadrés */
.box{position:relative;margin:36px 0;padding:22px 24px;border-radius:var(--r-lg);border:1px solid var(--line);font-size:17px}
.box p:last-child{margin-bottom:0}
.box .tag{display:inline-flex;align-items:center;gap:8px;margin-bottom:12px;font:500 12px/1 var(--mono);letter-spacing:.07em;text-transform:uppercase}
.box .tag-ico{width:16px;height:16px}
.box-callout{background:linear-gradient(180deg,#F1FDF7,#F7FEFA);border-color:var(--em-line)}
.box-callout .tag{color:var(--em-ink)}
.box-example{background:var(--bg-2);border-color:var(--line)}
.box-example::before{content:"";position:absolute;left:-1px;top:20px;bottom:20px;width:3px;border-radius:3px;background:linear-gradient(var(--in-2),var(--in))}
.box-example .tag{color:var(--in-ink)}
.fig{font-family:var(--mono);font-size:.9em;font-weight:500;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:6px;padding:0 5px;white-space:nowrap;font-variant-numeric:tabular-nums}
.box-warn{background:var(--amber-soft);border-color:var(--amber-line)}
.box-warn .tag{color:var(--amber-ink)}
.warn:not(.box){padding:16px 20px;border-radius:var(--r);background:var(--amber-soft);border:1px solid var(--amber-line);color:var(--amber-ink)}
.ext{display:flex;gap:12px;align-items:flex-start;margin:48px 0 0;padding:18px 20px;border-radius:var(--r);border:1px dashed var(--line-2);font-size:15.5px;line-height:1.6;color:var(--text-2)}
.ext-ico{width:16px;height:16px;margin-top:4px;color:var(--em-ink)}
.dark .ext-ico{color:var(--em-3)}
/* sommaire */
.toc-m{margin:0 0 36px;border-radius:var(--r);background:var(--bg-2);border:1px solid var(--line)}
.toc-m summary{display:flex;align-items:center;gap:10px;min-height:54px;padding:0 18px;cursor:pointer;list-style:none;font-size:15px;font-weight:600;color:var(--ink)}
.toc-m summary::-webkit-details-marker{display:none}
.toc-m summary .ico{width:18px;height:18px;color:var(--em-ink)}
.toc-n{margin-left:auto;font:500 12px/1 var(--mono);color:var(--muted)}
.toc-m summary::after{content:"";width:8px;height:8px;border-right:1.6px solid var(--muted);border-bottom:1.6px solid var(--muted);transform:rotate(45deg) translateY(-2px);margin-left:4px;transition:transform .2s var(--ease)}
.toc-m[open] summary::after{transform:rotate(225deg) translateY(-2px)}
.prose .toc-m ol{margin:0;padding:0 10px 12px;counter-reset:none}
.prose .toc-m li{padding:0;margin:0;counter-increment:none}
.prose .toc-m li::before{display:none}
.prose .toc-m a{display:flex;align-items:center;min-height:44px;padding:4px 8px;border-radius:8px;font-size:15px;line-height:1.35;color:var(--text-2);text-decoration:none}
.prose .toc-m a:hover{background:#fff;color:var(--ink)}
.rail{position:sticky;top:104px;align-self:start;padding-top:6px}
.toc-t{margin:0 0 14px;color:var(--muted)}
.toc ol{list-style:none;margin:0;padding:0;border-left:1px solid var(--line)}
.toc a{display:block;margin-left:-1px;padding:7px 0 7px 16px;border-left:2px solid transparent;font-size:14px;line-height:1.4;color:var(--muted);text-decoration:none;transition:color .2s,border-color .2s}
.toc a:hover{color:var(--ink)}
.toc a.is-active{color:var(--ink);font-weight:550;border-left-color:var(--em)}
.toc a.toc-cta{display:flex;margin-left:0;border-left:0;align-items:center;gap:10px;margin-top:28px;padding:14px 16px;border-radius:14px;background:var(--ink);color:#fff;text-decoration:none;font-size:14px;font-weight:550;box-shadow:var(--sh-2);transition:transform .2s var(--ease),background-color .2s}
.toc-cta .ico{width:18px;height:18px;color:var(--em-3)}
.toc-cta .ico:last-child{margin-left:auto;color:#fff;transition:transform .2s var(--ease)}
.toc a.toc-cta:hover{background:#1A2235;transform:translateY(-1px)}
.toc-cta:hover .ico:last-child{transform:translateX(3px)}
@media (min-width:1100px){.has-rail .toc-m{display:none}}
@media (max-width:1099px){.abody.has-rail{display:block;max-width:calc(var(--read) + 2*var(--g))}.rail{display:none}}
/* à lire ensuite */
.related{background:var(--bg-2);border-top:1px solid var(--line)}
.related .sec-head h2{font-size:clamp(28px,3.4vw,40px)}
.rel-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.rel-grid li{display:flex}
.card-link{display:flex;flex-direction:column;width:100%;padding:22px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1);text-decoration:none;color:var(--text);transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s}
.card-link:hover{transform:translateY(-3px);box-shadow:var(--sh-3);border-color:#CED4DE}
.card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.rel-k{font:500 12px/1 var(--mono);color:var(--muted)}
.rel-t{margin:22px 0 6px;font-size:18px;font-weight:620;letter-spacing:-.025em;line-height:1.25;color:var(--ink)}
.rel-d{font-size:14.5px;line-height:1.55;color:var(--text-2)}
.card-go{margin-top:auto;padding-top:18px;color:var(--muted);transition:color .2s,transform .2s var(--ease)}
.card-link:hover .card-go{color:var(--em-ink);transform:translateX(4px)}
/* simulateur complet (tableau de bord) */
.prose .calc{margin:40px calc(50% - min(590px,50vw - var(--g)));padding:clamp(16px,2.4vw,28px);border-radius:var(--r-xl);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-3);font-size:15px;line-height:1.5}
.calc-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-bottom:20px;margin-bottom:24px;border-bottom:1px solid var(--line)}
.calc-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.prose .calc h3{margin:0;font-size:20px}
.calc-badge{margin:0;display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;background:var(--amber-soft);border:1px solid var(--amber-line);font:500 11.5px/1 var(--mono);color:var(--amber-ink)}
.calc-grid{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:clamp(20px,3vw,36px);align-items:start}
.calc-in{margin:0;padding:0;border:0;min-width:0}
.calc-in legend{padding:0;margin:0 0 16px}
.hint{font-size:13px;line-height:1.5;color:var(--muted);margin:6px 0 0}
.calc .fld{margin-bottom:20px}
.calc .fld[hidden]{display:none}
.calc label,.calc .lbl{display:block;margin-bottom:6px;font-size:14px;font-weight:550;color:var(--ink);line-height:1.35}
.calc .seg label{margin:0}
.calc .fld-seg{display:block}
.fld-ctl{display:flex;align-items:center;gap:14px}
.fld-ctl .rng{flex:1;margin:0}
.fld-ctl .ctl{width:142px}
.res{display:flex;flex-direction:column;gap:12px;min-width:0}
@media (min-width:900px){.res{position:sticky;top:96px}}
.res-main{overflow:hidden;padding:26px 28px 24px;border-radius:var(--r-lg);background:radial-gradient(80% 120% at 100% 0%,rgba(16,185,129,.32),transparent 60%),radial-gradient(60% 80% at 0% 100%,rgba(99,102,241,.22),transparent 60%),#0A0F1C;box-shadow:var(--sh-2)}
.prose .res-main h3{margin:0 0 16px;font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--em-3)}
.res-lbl{margin:0!important;font-size:14px;color:var(--on-dark-2)}
.big{margin:8px 0 22px!important;font-size:clamp(46px,5.6vw,72px);font-weight:650;letter-spacing:-.05em;line-height:1.02;color:#fff;font-variant-numeric:tabular-nums}
.big-u{font-size:.32em;font-weight:500;letter-spacing:0;color:var(--on-dark-3)}
.dc-bar{display:flex;gap:2px;height:12px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.08)}
.dc-bar span{display:block;height:100%;transition:width .45s var(--ease)}
.dc-b{background:var(--em-2)}
.dc-c{background:rgba(110,231,183,.5)}
.dc-d{background:repeating-linear-gradient(45deg,rgba(255,255,255,.22) 0 3px,rgba(255,255,255,.08) 3px 6px)}
.dc-key{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;margin:14px 0 0!important;padding:0}
.prose .dc-key li{padding:0;margin:0;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--on-dark-2)}
.prose .dc-key li::before{display:none}
.dc-key i{display:inline-block;width:10px;height:10px;border-radius:3px}
.dc-key b{font:500 13px/1 var(--mono);color:#fff}
.res-dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0}
.res-card{padding:16px 18px;border-radius:var(--r);background:var(--bg-2);border:1px solid var(--line)}
.res-card dt{font-size:13px;color:var(--muted)}
.res-card dd{margin:6px 0 0}
.res-card strong{font:500 20px/1.2 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.res-card .hint{display:block;margin-top:4px}
.res-msg:empty{display:none}
.res-msg{padding:12px 14px;border-radius:12px;background:var(--in-soft);color:var(--in-ink)!important;font-size:13.5px}
.calc-proj{margin-top:32px;padding-top:28px;border-top:1px solid var(--line)}
.prose .calc-proj h3{margin:0 0 18px;font-size:20px}
.chart{margin:0}
.chart-box{position:relative;border-radius:var(--r);background:linear-gradient(180deg,#FBFCFD,#fff);border:1px solid var(--line);padding:12px 8px 4px}
#o-chart{width:100%;height:auto;touch-action:pan-y}
.c-grid line{stroke:#EDEFF3}
.c-grid text{font:400 11.5px var(--mono);fill:var(--muted)}
.c-val{stroke:var(--ink);stroke-width:1.3;stroke-dasharray:5 5}
.c-dur{stroke:var(--in);stroke-width:1.5;stroke-dasharray:2 4}
.c-area{fill:url(#c-fill)}
.c-l1{fill:none;stroke:var(--em);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.c-l2{fill:none;stroke:var(--in);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.c-axis{stroke:#C5CBD6}
.c-hover{transition:opacity .15s}
.c-hline{stroke:rgba(10,15,28,.3);stroke-dasharray:3 3}
.c-dot1{fill:#fff;stroke:var(--em);stroke-width:2.5}
.c-dot2{fill:#fff;stroke:var(--in);stroke-width:2.5}
.tip{position:absolute;z-index:3;pointer-events:none;min-width:230px;padding:12px 14px;border-radius:12px;background:rgba(10,15,28,.94);color:var(--on-dark-2);font-size:12.5px;line-height:1.4;box-shadow:0 12px 30px -8px rgba(10,15,28,.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.tip b{display:block;margin-bottom:8px;font:600 12px/1 var(--mono);color:var(--em-3)}
.tip span{display:flex;align-items:center;gap:8px;margin-top:4px}
.tip i{width:8px;height:8px;border-radius:50%;flex:none}
.tip .t1{background:var(--em-2)}.tip .t2{background:var(--in-2)}.tip .t3{background:#fff}
.tip em{margin-left:auto;padding-left:12px;font:500 12.5px/1 var(--mono);font-style:normal;color:#fff}
.chart-key{display:flex;flex-wrap:wrap;gap:8px 20px;margin:14px 0 6px;font-size:13px;color:var(--text-2)}
.chart-key .k{display:inline-flex;align-items:center;gap:8px}
.chart-key .k::before{content:"";width:20px;height:0;border-top:3px solid var(--em);border-radius:2px}
.chart-key .k2::before{border-top-color:var(--in)}
.chart-key .k3::before{border-top:2px dashed var(--ink)}
.chart-key .k4::before{border-top:2px dotted var(--in)}
.calc .tablewrap{margin:18px 0 0}
.t-calc th,.t-calc td{padding:12px 16px}
.t-calc tr.over{background:var(--amber-soft)}
.t-calc tr.over:hover{background:#FFF3DC}
.ratio{display:inline-flex;align-items:center;gap:10px}
.ratio-bar{display:inline-block;width:56px;height:6px;border-radius:99px;background:var(--bg-3);overflow:hidden;flex:none}
.ratio-bar i{display:block;height:100%;border-radius:99px;background:var(--em)}
tr.over .ratio-bar i{background:#D97706}
.note-ns{display:flex;gap:10px;margin:18px 0 0!important;padding:14px 16px;border-radius:14px;background:var(--bg-2);font-size:13.5px;line-height:1.55;color:var(--text-2)}
.note-ns .ico{width:16px;height:16px;margin-top:2px;color:var(--muted)}
@media (max-width:899px){.calc-grid{grid-template-columns:1fr}}
@media (max-width:479px){.res-dl{grid-template-columns:1fr}.fld-ctl .ctl{width:124px}.res-main{padding:22px 20px}}
/* glossaire */
.gl-tools{position:sticky;top:84px;z-index:5;margin:0 calc(-1*var(--g)) 8px;padding:12px var(--g) 4px;background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.search{position:relative}
.search-ico{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.search input{width:100%;height:58px;padding:0 56px 0 52px;border:1px solid var(--line-2);border-radius:var(--r);background:#fff;font-size:17px;box-shadow:var(--sh-2);transition:border-color .15s,box-shadow .15s}
.search input:focus{outline:none;border-color:var(--em);box-shadow:0 0 0 4px rgba(16,185,129,.18),var(--sh-2)}
.search input::placeholder{color:#646D80}
.search-kbd{position:absolute;right:16px;top:50%;transform:translateY(-50%);display:grid;place-items:center;min-width:26px;height:26px;border:1px solid var(--line-2);border-radius:7px;font:500 12px/1 var(--mono);color:var(--muted);background:var(--bg-2)}
.gl-count{margin:10px 2px 0!important;font:500 12.5px/1 var(--mono);color:var(--muted)}
.prose .az{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 40px;padding:0}
.prose .az li{padding:0;margin:0}
.prose .az li::before{display:none}
.prose .az a{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:#fff;font:600 14px/1 var(--mono);color:var(--ink);text-decoration:none;transition:background-color .15s,color .15s,border-color .15s}
.prose .az a:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.prose .az .is-off a{opacity:.35;pointer-events:none}
.art-glossaire .prose h2{display:flex;align-items:center;gap:16px;margin:40px 0 16px;font:600 15px/1 var(--mono);letter-spacing:.04em;color:var(--em-ink);scroll-margin-top:240px}
.art-glossaire .prose h2::after{content:"";flex:1;height:1px;background:var(--line)}
.gloss{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 8px}
.gloss[hidden],.gl-item[hidden],.prose h2[hidden]{display:none}
.gl-item{padding:20px 22px;border-radius:var(--r);background:#fff;border:1px solid var(--line);transition:border-color .2s,box-shadow .2s}
.gl-item:hover{border-color:var(--line-2);box-shadow:var(--sh-1)}
.gl-item.is-hit,.gl-item:has(dt:target){border-color:var(--em-line);box-shadow:0 0 0 3px rgba(16,185,129,.12)}
.gl-item dt{margin:0 0 6px;font-size:17px;font-weight:620;letter-spacing:-.02em;color:var(--ink);scroll-margin-top:240px}
.gl-item dd{margin:0;font-size:15.5px;line-height:1.65;color:var(--text-2)}
.gl-empty{padding:28px;border-radius:var(--r);border:1px dashed var(--line-2);text-align:center;color:var(--muted)}
.gl-empty[hidden]{display:none}
@media (max-width:759px){.gloss{grid-template-columns:1fr}.gl-tools{top:78px}}
/* formulaire de contact */
.f{display:grid;gap:18px;margin:32px 0 48px;padding:clamp(20px,3vw,32px);border-radius:var(--r-xl);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-2);font-size:16px}
.f label{display:block;margin-bottom:6px;font-size:14.5px;font-weight:550;color:var(--ink)}
.f input[type=text],.f input[type=email],.f select,.f textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--line-2);border-radius:12px;background:#fff;font-size:16px;transition:border-color .15s,box-shadow .15s}
.f textarea{resize:vertical;min-height:140px;line-height:1.55}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--em);box-shadow:0 0 0 3px rgba(16,185,129,.2)}
.f .check{display:flex;gap:12px;align-items:flex-start}
.f .check input{width:20px;height:20px;margin:3px 0 0;accent-color:var(--em-ink);flex:none}
.f .check label{margin:0;font-size:15px;line-height:1.55;color:var(--text-2)}
.f .btn{background:var(--ink);color:#fff;min-height:48px;padding:0 26px}
.f .btn:hover{background:#1A2235}
/* responsive global */
@media (max-width:1099px){
  .hero-grid{grid-template-columns:minmax(0,1fr) 400px}
  .foot-top{grid-template-columns:1fr}
}
@media (max-width:1023px){
  .hero-grid{grid-template-columns:1fr;gap:48px}
  .hero h1{max-width:16ch}
  .qcalc{max-width:560px}
  .split{grid-template-columns:1fr}
  .flow-legend{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .b-1{grid-column:span 2;grid-row:auto}
  .b-2,.b-3,.b-4,.b-5,.b-6{grid-column:span 1}
  .b-6{grid-column:span 2}
  .paths2-grid{grid-template-columns:1fr}
  .method-grid{grid-template-columns:1fr}
  .nots{grid-template-columns:1fr}
  .faq-split{grid-template-columns:1fr}
  .faq-split .sec-head{position:static}
  .foot-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:639px){
  .bento{grid-template-columns:1fr}
  .b-1,.b-2,.b-3,.b-4,.b-5,.b-6{grid-column:auto}
  .b-art{height:110px;padding-top:24px}
  .flow-legend{grid-template-columns:1fr}
  .principles{justify-content:flex-start;gap:14px 22px}
  .principles li{font-size:14px}
  .cta{width:100%}
  .cta>.ico{margin-left:auto}
  .qcalc{padding:18px;border-radius:22px}
  .qcalc .ctl{width:118px}
  .prose{font-size:17px}
  .box{padding:20px;font-size:16.5px}
  .formula-body{font-size:13px;padding:18px 18px 6px}
  .sec-head-row .link-arrow{display:none}
  .why-ctas .btn{width:100%}
}
@media (max-width:379px){.foot-cols{grid-template-columns:1fr}}
@media (max-width:339px){.qcalc-dl{grid-template-columns:1fr}}
/* mouvement réduit */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .mesh i,.pill-dot::after,.live-dot::after{animation:none!important}
}
.gl-tools .az{margin:12px 0 10px}
/* =========================================================
   Simulateur actuariel (/calcul-bouquet-rente-viagere/)
   ========================================================= */
.prose .sim{margin:8px calc(50% - min(590px,50vw - var(--g))) 56px;font-size:15px;line-height:1.5}
.sim h2,.sim h3{margin:0}
.prose .sim h2::before{display:none}
.sim .lbl,.sim label{display:block;margin-bottom:6px;font-size:14px;font-weight:550;color:var(--ink);line-height:1.35}
.sim .seg label{margin:0}
.sim-steps{position:sticky;top:84px;z-index:6;margin:0 0 18px;padding:6px;border-radius:999px;background:rgba(255,255,255,.86);border:1px solid var(--line);box-shadow:var(--sh-2);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.prose .sim-steps ol{display:flex;gap:4px;margin:0;padding:0;counter-reset:none}
.prose .sim-steps li{flex:1;margin:0;padding:0}
.prose .sim-steps li::before{display:none}
.prose .sim-steps a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 12px;border-radius:999px;font-size:14px;font-weight:550;color:var(--text-2);text-decoration:none;white-space:nowrap;transition:background-color .2s,color .2s}
.sim-steps a span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--bg-3);font:600 11.5px/1 var(--mono);color:var(--text-2);transition:background-color .2s,color .2s}
.prose .sim-steps a:hover{background:var(--bg-2);color:var(--ink)}
.prose .sim-steps a.is-on{background:var(--ink);color:#fff}
.sim-steps a.is-on span{background:var(--em-2);color:#03140D}
.sim-grid{display:grid;grid-template-columns:minmax(0,400px) minmax(0,1fr);gap:24px;align-items:start}
.sim-in{display:flex;flex-direction:column;gap:14px;min-width:0}
@media (min-width:1100px){.sim-in{position:sticky;top:150px;max-height:calc(100vh - 166px);overflow-y:auto;overscroll-behavior:contain;padding:2px 8px 12px 2px;margin:-2px -8px 0 -2px;scrollbar-width:thin}}
.sim-card{margin:0;padding:20px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1);min-width:0;scroll-margin-top:150px}
.sim-card legend,.sim-expert summary{display:flex;align-items:center;gap:10px;float:left;width:100%;margin:0 0 16px;padding:0;font-size:16px;font-weight:620;letter-spacing:-.02em;color:var(--ink)}
.sim-card legend+*{clear:both}
.sim-n{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--em-soft);border:1px solid #D5F5E6;font:600 12.5px/1 var(--mono);color:var(--em-ink);flex:none}
.sim-n .ico{width:16px;height:16px}
.sf{margin:0 0 18px}
.sf:last-child{margin-bottom:0}
.sf[hidden],.sf-head[hidden]{display:none}
.sf .hint{margin-top:6px}
.sf-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.sf-row label{margin:0}
.sf-head{margin:0 0 16px;padding:14px 14px 2px;border-radius:var(--r);background:var(--bg-2);border:1px solid var(--line)}
.sf-k{margin:0 0 10px!important;font:500 11.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.sim .seg{display:flex;width:100%}
.sim .seg label{flex:1}
.sim .seg span{min-width:0;padding:0 10px}
.sim .seg-xs{width:auto;display:inline-flex}
.sim .seg-xs span{height:30px;min-width:40px;font-family:var(--mono)}
.sim .fld-ctl .ctl{width:132px}
.sim .ctl input:disabled{background:var(--bg-2);color:var(--muted)}
.sim .rng:disabled{opacity:.4;cursor:not-allowed}
.ctl-sel{width:100%}
.ctl-sel select{width:100%;height:44px;padding:0 36px 0 12px;border:1px solid var(--line-2);border-radius:12px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23586174' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E") right 14px center/12px 8px no-repeat;font:500 14.5px/1 var(--font);text-align:left;appearance:none;-webkit-appearance:none;cursor:pointer}
.ctl-sel select:focus{outline:none;border-color:var(--em);box-shadow:0 0 0 3px rgba(16,185,129,.2)}
.sf-check{display:flex;align-items:flex-start;gap:10px}
.sf-check input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--em-ink);flex:none;cursor:pointer}
.sim .sf-check label{margin:0;font-weight:500;cursor:pointer}
.hint-i{font-weight:400;color:var(--muted);font-size:13px}
.sim-expert{padding:0}
.sim-expert summary{float:none;margin:0;padding:18px 20px;cursor:pointer;list-style:none;border-radius:var(--r-lg)}
.sim-expert summary::-webkit-details-marker{display:none}
.sim-expert summary::after{content:"";margin-left:auto;width:8px;height:8px;border-right:1.6px solid var(--muted);border-bottom:1.6px solid var(--muted);transform:rotate(45deg) translateY(-2px);transition:transform .2s var(--ease);flex:none}
.sim-expert[open] summary::after{transform:rotate(225deg)}
.sim-exp-t{display:flex;flex-direction:column;gap:4px}
.sim-exp-s{font:400 12.5px/1.4 var(--font);color:var(--muted);letter-spacing:0}
.sim-expert summary:hover{background:var(--bg-2)}
.sim-exp-in{padding:4px 20px 20px;border-top:1px solid var(--line);padding-top:18px}
.sim-actions{margin:0!important}
.sim-out{display:flex;flex-direction:column;gap:16px;min-width:0;scroll-margin-top:150px}
.sim-view{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.sim-view .lbl{margin:0;font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.sim-view .seg{width:auto;min-width:260px}
.sim-hero{overflow:hidden;padding:24px 26px 22px;border-radius:var(--r-xl);background:radial-gradient(80% 120% at 100% 0%,rgba(16,185,129,.34),transparent 60%),radial-gradient(60% 80% at 0% 100%,rgba(99,102,241,.24),transparent 60%),#0A0F1C;box-shadow:var(--sh-3)}
.sim-hero-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.sim-k,.prose .sim-k{font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--em-3)}
.sim-big{margin:12px 0 6px!important;font-size:clamp(46px,6vw,76px);font-weight:650;letter-spacing:-.05em;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.sim-big-u{font-size:.3em;font-weight:500;letter-spacing:0;color:var(--on-dark-3)}
.sim-sub{margin:0 0 20px!important;font-size:13.5px;line-height:1.5;color:var(--on-dark-2);max-width:62ch}
.sim-split{display:flex;gap:2px;height:12px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.08)}
.sim-split span{display:block;height:100%;transition:width .45s var(--ease)}
.sim-split .sb,.sim-split-k i.sb{background:var(--em-2)}
.sim-split .sr,.sim-split-k i.sr{background:rgba(110,231,183,.5)}
.sim-split .sd,.sim-split-k i.sd{background:repeating-linear-gradient(45deg,rgba(255,255,255,.26) 0 3px,rgba(255,255,255,.08) 3px 6px)}
.prose .sim-split-k{display:flex;flex-wrap:wrap;gap:6px 18px;list-style:none;margin:12px 0 0;padding:0}
.prose .sim-split-k li{display:flex;align-items:center;gap:8px;margin:0;padding:0;font-size:13px;color:var(--on-dark-2)}
.prose .sim-split-k li::before{display:none}
.sim-split-k i{display:inline-block;width:10px;height:10px;border-radius:3px}
.sim-split-k b{font:500 13px/1 var(--mono);color:#fff}
.prose .sim-split-k .sk-t{margin-left:auto;color:var(--on-dark-3)}
.sim-share{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:20px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08)}
.sim-copied{font:500 12.5px/1 var(--mono);color:var(--em-3)}
.sim-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.sim-kpi{padding:16px 18px;border-radius:var(--r);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1);min-width:0}
.sim-kpi p{margin:0!important}
.sim-kpi-k{font-size:13px;color:var(--muted);line-height:1.3}
.sim-kpi-v{margin-top:8px!important;font:500 21px/1.15 var(--mono);color:var(--ink);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.sim-kpi-s{margin-top:6px!important;font-size:12.5px;line-height:1.45;color:var(--muted)}
.sim-kpi.is-em{background:linear-gradient(180deg,#F1FDF7,#fff);border-color:var(--em-line)}
.sim-kpi.is-em .sim-kpi-v{color:var(--em-deep)}
.sim-msg{margin:0!important;padding:12px 14px;border-radius:12px;background:var(--amber-soft);border:1px solid var(--amber-line);color:var(--amber-ink);font-size:14px}
.sim-msg[hidden]{display:none}
.sim-panel{padding:20px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1);min-width:0}
.sim-ph{margin-bottom:14px}
.prose .sim-ph h3{font-size:17px;letter-spacing:-.02em}
.sim-ph .hint{margin-top:6px}
.sim-chart{position:relative;border-radius:var(--r);background:linear-gradient(180deg,#FBFCFD,#fff);border:1px solid var(--line);padding:10px 6px 2px}
.sim-svg{width:100%;height:auto;touch-action:pan-y;cursor:crosshair}
.sim-svg:focus-visible{outline-offset:6px}
.c-grid .ax-u{font-size:10.5px}
.c-l1{fill:none;stroke:var(--em);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.c-area2{fill:url(#sv-fill)}
.c-area{fill:url(#cu-fill)}
.c-h1{fill:none;stroke:var(--in);stroke-width:1.6;stroke-dasharray:6 4}
.c-h2{fill:none;stroke:#C2410C;stroke-width:1.6;stroke-dasharray:2 3}
.c-vo{stroke:var(--em-deep);stroke-width:1.3;stroke-dasharray:2 4}
.c-pct{stroke:var(--in-2);stroke-width:1;stroke-dasharray:2 3}
.c-pdot{fill:#fff;stroke:var(--in);stroke-width:2}
.c-plab{font:500 11px var(--mono);fill:var(--in-ink)}
.c-lab{font:500 11px var(--mono);fill:var(--ink)}
.c-lab2{fill:var(--em-deep)}
.chart-key .k5::before{border-top:2px dotted var(--em-deep)}
.chart-key .k6::before{border-top:2px dotted #C2410C}
.chart-key .k2::before{border-top:2px dashed var(--in)}
#ch1-k .k2::before{border-top:2px dashed var(--in)}
.tip .t6{background:#FB923C}
.t-sim{font-size:13.5px}
.t-sim th,.t-sim td{padding:11px 12px}
.t-sim thead th{white-space:normal;line-height:1.35;vertical-align:bottom}
.t-sim .ratio{gap:8px}
.t-sim .ratio-bar{width:40px}
.t-sim .hint-i{display:block;font-size:12px}
.t-sim tbody th{white-space:nowrap}
.t-sim tr.over{background:var(--amber-soft)}
.t-sim tr.over:hover{background:#FFF3DC}
.t-sim tr.mean>*{background:var(--bg-2);border-top:1px solid var(--line-2)}
.t-sim td b{font-weight:600;color:var(--ink)}
.sim .tablewrap{margin:0}
@media (max-width:759px) and (min-width:560px){.sim .tablewrap .t-sim{min-width:620px}}
@media (max-width:559px){
  .sim .tablewrap{border:0;background:none;overflow:visible}
  .t-sim,.t-sim tbody,.t-sim tr,.t-sim th,.t-sim td{display:block}
  .sim .tablewrap .t-sim{min-width:0}
  .t-sim thead{display:none}
  .t-sim tr{margin:0 0 10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:#fff}
  .t-sim tr.mean>*{border-top:0;background:none}
  .t-sim tbody th{padding:0 0 6px;border:0;font-size:14.5px}
  .t-sim td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:5px 0;border:0;border-top:1px solid var(--line);white-space:normal;text-align:right}
  .t-sim td::before{content:attr(data-l);font:400 12.5px/1.3 var(--font);color:var(--muted);text-align:left}
  .t-sim td:empty{display:none}
  .t-sim .hint-i{display:inline}
}
.sim-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:12px}
.sim-fact{padding:14px 16px;border-radius:var(--r);background:var(--bg-2);border:1px solid var(--line)}
.sim-fact p{margin:0!important}
.sim-fact-k{font-size:13px;color:var(--muted)}
.sim-fact-v{margin-top:6px!important;font:500 19px/1.2 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums}
.sim-fact .hint{margin-top:4px!important}
.sim-regions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.sim-rg{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:var(--r);border:1px solid var(--line);background:#fff;min-width:0}
.sim-rg p{margin:0!important}
.sim-rg.is-cur{border-color:var(--em);box-shadow:0 0 0 3px rgba(16,185,129,.14);background:linear-gradient(180deg,#F1FDF7,#fff)}
.sim-rg-n{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--ink);line-height:1.3}
.sim-rg-n .chip{height:22px;font-size:11px;padding:0 8px}
.sim-rg-v{font:600 24px/1.1 var(--mono);letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums}
.sim-rg-v small{font-size:12.5px;font-weight:500;color:var(--muted);letter-spacing:0}
.sim-rg dl{margin:0;display:grid;gap:6px}
.sim-rg dl div{display:flex;justify-content:space-between;gap:10px;font-size:13px;border-top:1px solid var(--line);padding-top:6px}
.sim-rg dt{color:var(--muted)}
.sim-rg dd{margin:0;font-family:var(--mono);color:var(--ink);text-align:right;white-space:nowrap}
.sim-rg .btn{margin-top:auto;align-self:flex-start}
.sim-rg-note{grid-column:1/-1;margin:0!important}
.sim-fisc .fi-res{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin:0 0 12px!important}
.sim-fisc .fi-v{font:600 24px/1.1 var(--mono);color:var(--ink);letter-spacing:-.03em}
.prose .sim-fisc ul{margin:10px 0 0;font-size:14px}
.prose .sim-fisc li{padding-left:0;margin-bottom:8px;line-height:1.55}
.prose .sim-fisc ul>li::before{display:none}
.fi-tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font:500 11px/1 var(--mono);letter-spacing:.02em;vertical-align:1px}
.fi-ok{background:var(--em-soft);border:1px solid var(--em-line);color:var(--em-deep)}
.fi-chk{background:var(--amber-soft);border:1px solid var(--amber-line);color:var(--amber-ink)}
.sim-fisc .fi-src{margin-top:12px!important;font-size:12.5px;color:var(--muted)}
.sim-fisc .fi-src a{color:var(--em-deep)}
.sim-warn{display:flex;gap:14px;padding:20px 22px;border-radius:var(--r-lg);background:linear-gradient(180deg,#F7F8FF,#fff);border:1px solid #DCDFFB}
.sim-warn>.ico{width:22px;height:22px;color:var(--in-ink);margin-top:2px}
.sim-warn p{margin:0 0 8px!important;font-size:14px;line-height:1.6;color:var(--text-2)}
.sim-warn p:last-child{margin:0!important}
.sim-warn strong{color:var(--ink)}
.sim-print{display:none}
.sim-dock{display:none}
.sim:not(.is-ready) .sim-out{opacity:.55}
@media (max-width:1099px){
  .sim-grid{grid-template-columns:minmax(0,1fr)}
  .sim-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sim-dock{position:fixed;left:12px;right:12px;bottom:12px;z-index:40;display:flex;align-items:center;gap:12px;padding:8px 8px 8px 18px;border-radius:999px;background:rgba(9,13,24,.9);color:#fff;box-shadow:0 18px 40px -12px rgba(0,0,0,.6);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transform:translateY(140%);transition:transform .3s var(--ease)}
  .sim-dock.is-on{transform:none}
  .sim-dock-k{font:500 11px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--on-dark-3)}
  .sim-dock b{font:600 17px/1 var(--mono);font-variant-numeric:tabular-nums}
  .sim-dock .btn{margin-left:auto}
}
@media (max-width:759px){
  .sim-regions{grid-template-columns:1fr}
  .sim-steps{top:78px;border-radius:16px}
  .prose .sim-steps a{flex-direction:column;gap:3px;padding:6px 4px;font-size:11.5px;min-height:52px;border-radius:12px}
}
@media (max-width:479px){
  .sim-kpis{grid-template-columns:1fr 1fr;gap:8px}
  .sim-kpi{padding:12px 13px}
  .sim-kpi-v{font-size:17px}
  .sim-hero{padding:20px 18px}
  .sim-card,.sim-panel{padding:16px}
  .sim-exp-in{padding:16px}
  .sim-expert summary{padding:16px}
  .sim .fld-ctl .ctl{width:118px}
  .sim-view .seg{min-width:0;width:100%}
  .prose .sim-split-k .sk-t{margin-left:0}
}
/* méthodologie : formules */
.mth-f{margin:24px 0;padding:18px 22px;border-radius:var(--r);background:#0A0F1C;border:1px solid #1D2537;color:var(--on-dark);font:400 15px/1.75 var(--mono);overflow-x:auto;box-shadow:var(--sh-2)}
.prose .mth-f p{margin:0}
.prose .mth-f var{font-style:italic;color:var(--em-3)}
.mth-f .c{color:#7F8AA0}
.prose var{font-family:var(--mono);font-style:italic;font-size:.92em;color:var(--em-deep)}
.mth-f sub,.mth-f sup,.prose var sub{font-size:.72em}
/* impression : simulateur et méthodologie */
@media print{
  .topbar,.menu,.foot,.progress,.skip,.related,.sim-steps,.sim-in,.sim-share,.sim-dock,.sim-view,.ahead .mesh,.ahead .grid-ov,.crumbs,.ameta,.toc-m,.ext,.art-calcul-bouquet-rente-viagere .abody .prose>:not(.sim){display:none!important}
  body{background:#fff;color:#000;font-size:11pt}
  .container{padding-inline:0!important}
  .ahead{padding:0 0 12pt;background:#fff!important;color:#000}
  .ahead h1,.dark h1{color:#000!important;font-size:20pt}
  .ahead .lead{color:#333!important;font-size:10.5pt}
  .abody{padding:0;max-width:none}
  .prose .sim{margin:0}
  .sim-grid{display:block}
  .sim-hero{background:#fff!important;border:1px solid #999;box-shadow:none;color:#000}
  .sim-hero *{color:#000!important}
  .sim-split{border:1px solid #999}
  .sim-panel,.sim-kpi,.sim-rg,.sim-warn{box-shadow:none;break-inside:avoid}
  .sim-print{display:block;margin-top:12pt;break-inside:avoid}
  .sim-print h3{font-size:12pt;margin-bottom:6pt}
  .sim-print dl{display:grid;grid-template-columns:1fr 1fr;gap:2pt 16pt;margin:0 0 8pt}
  .sim-print dl div{display:flex;justify-content:space-between;border-bottom:1px solid #ddd;font-size:9.5pt}
  .sim-print dd{margin:0}
  .sim-rg .btn,.tip{display:none!important}
  .sim-kpis{grid-template-columns:repeat(3,1fr)}
  .sim-regions{grid-template-columns:repeat(3,1fr)}
  a{color:#000}
}

.sim-warn-top{margin:0 0 24px;border-color:#F5C26B;background:linear-gradient(180deg,#FFF8EB,#fff)}
.sim-warn-top p{font-size:15px;color:var(--text)}
.sim-caveat{margin:6px 0 0;font-size:13px;line-height:1.5;opacity:.85}
