
/* Layout: noir profond, deux scènes 3D (le logo, l'immeuble en 4 temps), sections calmes et aérées entre les deux */
:root{
  --bg:#05060A;
  --surface:#0A0D16;
  --surface-2:#0E1322;
  --line:#1A2133;
  --fg:#EEF1F8;
  --muted:#8C95AE;
  --accent:#3D6BFF;
  --accent-soft:#9DB5FF;
  --display:"Instrument Serif", "Iowan Old Style", Georgia, serif;
  --body:"Manrope", "Segoe UI", system-ui, sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html.lenis{scroll-behavior:auto}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--accent-soft);outline-offset:3px;border-radius:4px}
.wrap{max-width:1240px;margin:0 auto;padding-inline:clamp(16px,4vw,40px)}
h1,h2,h3{text-wrap:balance;margin:0;font-weight:400}
em{font-family:var(--display);font-style:italic;color:var(--accent-soft)}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.32em;text-transform:uppercase;color:var(--accent-soft)}
.muted{color:var(--muted)}
.num{font-variant-numeric:tabular-nums}

/* Ambiance */
.glow{position:fixed;inset:-20vh -20vw auto auto;width:70vw;height:70vw;max-width:900px;max-height:900px;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--accent) 22%,transparent),transparent);filter:blur(30px);pointer-events:none;z-index:0;animation:drift 18s ease-in-out infinite alternate}
.glow.two{inset:auto auto -30vh -25vw;animation-duration:24s;opacity:.6}
@keyframes drift{to{transform:translate(-8vw,10vh) scale(1.1)}}
.grain{position:fixed;inset:0;pointer-events:none;z-index:2;opacity:.05;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
main,header,footer{position:relative;z-index:1}

/* Nav */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:color-mix(in srgb,var(--bg) 70%,transparent);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:16px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px}
.brand svg{width:30px;height:24px;color:var(--fg)}
.brand span{font-size:13px;font-weight:700;letter-spacing:.3em}
.links{display:flex;align-items:center;gap:26px;font-size:13px;font-weight:600;color:var(--muted)}
.links a{transition:color .3s}
.links a:hover{color:var(--fg)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 26px;border-radius:999px;font-weight:700;font-size:14px;letter-spacing:.04em;transition:transform .3s cubic-bezier(.2,.8,.2,1),background .3s,box-shadow .3s,border-color .3s;cursor:pointer;border:0;font-family:inherit}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 10px 40px -12px var(--accent)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 18px 50px -12px var(--accent)}
.btn-ghost{border:1px solid var(--line);color:var(--fg);background:color-mix(in srgb,var(--surface) 60%,transparent)}
.btn-ghost:hover{border-color:var(--accent-soft)}
.btn-sm{min-height:44px;padding:0 20px;font-size:13px}
.btn .arr{transition:transform .3s}
.btn:hover .arr{transform:translateX(4px)}
@media (max-width:960px){.links a:not(.btn){display:none}}

/* Hero */
.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:24px;padding-block:clamp(40px,7vw,96px) 56px}
.hero-copy{display:flex;flex-direction:column;gap:28px;min-width:0}
.hero h1{font-family:var(--display);font-size:clamp(48px,7.4vw,104px);line-height:.98;letter-spacing:-.01em}
.hero h1 .w{display:inline-block;animation:word 1.2s cubic-bezier(.2,.8,.2,1) both}
@keyframes word{from{opacity:0;transform:translateY(.45em) rotate(2deg);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
.hero p.lead{font-size:clamp(17px,1.5vw,19px);color:var(--muted);max-width:52ch;margin:0}
.hero p.lead strong{color:var(--fg);font-weight:600}
.hero .ctas{display:flex;flex-wrap:wrap;gap:12px}
.pricebar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-top:22px;border-top:1px solid var(--line)}
.pricebar div{display:flex;flex-direction:column;gap:4px}
.pricebar b{font-family:var(--display);font-weight:400;font-size:clamp(32px,3.4vw,44px);line-height:1}
.pricebar span{font-size:13px;color:var(--muted)}
.stage{position:relative;aspect-ratio:1/1;width:100%;max-width:640px;justify-self:end}
.stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.stage .fallback{position:absolute;inset:18%;color:var(--fg);opacity:.9}
.has-3d .stage .fallback{display:none}
.rise{animation:rise 1.1s cubic-bezier(.2,.8,.2,1) both}
.rise.d1{animation-delay:.1s}.rise.d2{animation-delay:.5s}.rise.d3{animation-delay:.65s}.rise.d4{animation-delay:.8s}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.scrollhint{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.scrollhint i{position:relative;width:1px;height:40px;background:var(--line);overflow:hidden}
.scrollhint i::after{content:"";position:absolute;left:0;top:-40%;width:1px;height:40%;background:var(--accent-soft);animation:hint 2.2s cubic-bezier(.6,0,.2,1) infinite}
@keyframes hint{to{top:110%}}
@media (max-width:860px){.hero{grid-template-columns:1fr}.stage{order:-1;max-width:420px;justify-self:center;margin-bottom:-20px}.pricebar{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Bandeau défilant */
.marquee{border-block:1px solid var(--line);overflow:hidden;padding-block:18px;background:color-mix(in srgb,var(--surface) 50%,transparent)}
.track{display:flex;gap:48px;width:max-content;animation:scroll 44s linear infinite;font-size:13px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.track span{display:flex;align-items:center;gap:48px}
.track span::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent)}
@keyframes scroll{to{transform:translateX(-50%)}}

/* Sections */
section.block{padding-block:clamp(88px,11vw,150px)}
.head{display:flex;flex-direction:column;gap:18px;max-width:780px;margin-bottom:56px}
.head h2{font-family:var(--display);font-size:clamp(40px,5.4vw,76px);line-height:1}
.head p{margin:0;color:var(--muted);font-size:18px;max-width:58ch}

/* Propriété */
.own{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,6vw,88px);align-items:center}
.own-big{position:relative}
.own-big b{display:block;font-family:var(--display);font-weight:400;font-size:clamp(140px,22vw,300px);line-height:.8;letter-spacing:-.03em;background:linear-gradient(180deg,var(--fg) 20%,var(--accent) 120%);-webkit-background-clip:text;background-clip:text;color:transparent}
.own-big span{display:block;margin-top:18px;font-family:var(--display);font-style:italic;font-size:clamp(28px,3.4vw,44px);color:var(--accent-soft)}
.own h2{font-family:var(--display);font-size:clamp(36px,4.4vw,60px);line-height:1.02;margin-bottom:28px}
.own-list{display:flex;flex-direction:column}
.own-item{display:grid;grid-template-columns:36px minmax(0,1fr);gap:16px;padding-block:20px;border-top:1px solid var(--line)}
.own-item:last-child{border-bottom:1px solid var(--line)}
.own-item svg{width:28px;height:28px;color:var(--accent-soft);margin-top:2px}
.own-item h3{font-family:var(--body);font-weight:700;font-size:18px;margin-bottom:4px}
.own-item p{margin:0;color:var(--muted);font-size:15px}
@media (max-width:900px){.own{grid-template-columns:1fr}}

/* Le fonds */
.fund{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:start}
.fund .head{margin-bottom:0}
.pillars{display:flex;flex-direction:column}
.pillar{display:grid;grid-template-columns:56px minmax(0,1fr);gap:20px;padding-block:26px;border-top:1px solid var(--line)}
.pillar:last-child{border-bottom:1px solid var(--line)}
.pillar svg{width:40px;height:40px;color:var(--accent-soft)}
.pillar h3{font-family:var(--body);font-weight:700;font-size:19px;margin-bottom:6px}
.pillar p{margin:0;color:var(--muted);font-size:15px}
@media (max-width:900px){.fund{grid-template-columns:1fr}}

/* Récit 3D */
.story{position:relative;height:420vh}
.story-sticky{position:sticky;top:0;height:100vh;height:100svh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:24px}
.story-stage{position:relative;height:min(82vh,760px);min-width:0}
.story-stage canvas{position:absolute;inset:0;width:100%;height:100%}
.tag{position:absolute;left:0;top:0;transform:translate(-50%,-140%);pointer-events:none;opacity:0;transition:opacity .5s;white-space:nowrap}
.tag div{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:999px;background:color-mix(in srgb,var(--bg) 70%,transparent);border:1px solid color-mix(in srgb,var(--accent) 60%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:13px;font-weight:700;letter-spacing:.06em;box-shadow:0 10px 40px -10px var(--accent)}
.tag div::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent-soft);box-shadow:0 0 12px var(--accent)}
.tag::after{content:"";position:absolute;left:50%;top:100%;width:1px;height:28px;background:linear-gradient(var(--accent-soft),transparent)}
.steps{display:flex;flex-direction:column;gap:26px;min-width:0}
.step{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;opacity:.3;transition:opacity .6s,transform .6s cubic-bezier(.2,.8,.2,1)}
.step.on{opacity:1;transform:translateX(6px)}
.step .idx{font-family:var(--display);font-style:italic;font-size:26px;color:var(--accent-soft);line-height:1;min-width:30px}
.step h3{font-family:var(--display);font-size:clamp(26px,2.7vw,38px);line-height:1.05;margin-bottom:6px}
.step p{margin:0;color:var(--muted);max-width:44ch;font-size:15px}
.progress{height:2px;background:var(--line);border-radius:2px;overflow:hidden}
.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-soft))}
@media (max-width:860px){.story-sticky{grid-template-columns:1fr;grid-template-rows:44svh auto;align-content:start;padding-top:68px;gap:8px}.story-stage{height:44svh}.steps{gap:12px}.step p{display:none}.step.on p{display:block;font-size:14px}}

/* Opportunités */
.opps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden;isolation:isolate;transition:border-color .4s,transform .5s cubic-bezier(.2,.8,.2,1)}
.card::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),color-mix(in srgb,var(--accent) 16%,transparent),transparent 60%);opacity:0;transition:opacity .4s;z-index:-1}
.card:hover::before{opacity:1}
.opp{padding:32px 28px;display:flex;flex-direction:column;gap:18px}
.opp:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.opp-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.status{font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;padding:7px 12px;border-radius:999px}
.status.open{background:var(--accent);color:#fff}
.status.soon{border:1px solid var(--line);color:var(--muted)}
.opp .where{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.opp h3{font-family:var(--display);font-size:34px;line-height:1.05}
.opp dl{margin:0;display:flex;flex-direction:column}
.opp dl div{display:flex;justify-content:space-between;gap:12px;padding-block:10px;border-top:1px solid var(--line);font-size:14px}
.opp dt{color:var(--muted)}
.opp dd{margin:0;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.opp .go{margin-top:auto;font-weight:800;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-soft)}
.opp.soon{background:transparent;border-style:dashed}
.opp.soon h3{color:var(--muted)}
.opp.soon p{margin:0;color:var(--muted);font-size:15px}
@media (max-width:1000px){.opps{grid-template-columns:1fr}}

.how{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.how .card{padding:32px 28px;display:flex;flex-direction:column;gap:14px}
.how .card i{font-family:var(--display);font-size:56px;font-style:italic;color:var(--accent-soft);line-height:1}
.how h3{font-size:20px;font-weight:700;font-family:var(--body)}
.how p{margin:0;color:var(--muted);font-size:15px}
@media (max-width:1000px){.how{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.how{grid-template-columns:1fr}}

/* Comment ça se passe : frise au scroll */
.tl{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,6vw,96px)}
.tl-side{position:sticky;top:110px;align-self:start;display:flex;flex-direction:column;gap:20px}
.tl-side .head{margin-bottom:0}
.tl-num{display:flex;align-items:baseline;gap:14px;font-family:var(--display);line-height:.8}
.tl-num b{font-weight:400;font-size:clamp(120px,15vw,220px);background:linear-gradient(180deg,var(--fg) 30%,var(--accent) 130%);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums;transition:opacity .3s}
.tl-num span{font-size:clamp(28px,3vw,40px);color:var(--muted)}
.tl-list{position:relative;padding-left:44px}
.tl-list::before{content:"";position:absolute;left:7px;top:10px;bottom:10px;width:1px;background:var(--line)}
.tl-fill{position:absolute;left:7px;top:10px;width:1px;height:0;background:linear-gradient(var(--accent-soft),var(--accent));box-shadow:0 0 12px var(--accent)}
.tl-step{position:relative;padding-block:clamp(36px,6vh,64px);opacity:.32;transition:opacity .6s}
.tl-step.on,.tl-step.done{opacity:1}
.tl-step::before{content:"";position:absolute;left:-44px;top:clamp(42px,6.4vh,70px);width:15px;height:15px;border-radius:50%;border:1px solid var(--line);background:var(--bg);transition:border-color .4s,box-shadow .4s,background .4s}
.tl-step.on::before,.tl-step.done::before{border-color:var(--accent-soft);background:var(--accent);box-shadow:0 0 18px var(--accent)}
.tl-step .k{font-size:12px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--accent-soft);margin-bottom:12px}
.tl-step h3{font-family:var(--display);font-size:clamp(32px,3.6vw,50px);line-height:1.02;margin-bottom:14px}
.tl-step p{margin:0 0 18px;color:var(--muted);font-size:17px;max-width:52ch}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tags span{font-size:13px;font-weight:600;border:1px solid var(--line);border-radius:999px;padding:8px 14px;background:var(--surface)}
@media (max-width:860px){.tl{grid-template-columns:1fr}.tl-side{position:static}.tl-num{display:none}}

.focus-head{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.us .bar i{background:linear-gradient(90deg,var(--accent),var(--accent-soft))}

/* Simulateur */
.simx{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:16px;align-items:start}
.panel{padding:clamp(24px,4vw,48px);display:flex;flex-direction:column;gap:28px;min-height:560px}
.dots{display:flex;gap:6px}
.dots i{flex:1;height:3px;border-radius:3px;background:var(--line);transition:background .5s}
.dots i.on{background:linear-gradient(90deg,var(--accent),var(--accent-soft))}
.q{display:flex;flex-direction:column;gap:24px;animation:qin .6s cubic-bezier(.2,.8,.2,1) both}
@keyframes qin{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
.q .qk{font-size:12px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.q h3{font-family:var(--display);font-size:clamp(34px,4vw,54px);line-height:1}
.q .hint{margin:0;color:var(--muted);font-size:16px;max-width:56ch}
.tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.tile,.opt{font:inherit;color:var(--fg);text-align:left;background:var(--surface-2);border:1px solid var(--line);border-radius:18px;cursor:pointer;transition:border-color .3s,background .3s,transform .3s}
.tile:hover,.opt:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--line));transform:translateY(-2px)}
.tile[aria-pressed="true"],.opt[aria-pressed="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--surface-2));box-shadow:0 10px 40px -18px var(--accent)}
.tile{padding:20px 16px;display:flex;flex-direction:column;gap:6px;min-height:120px}
.tile b{font-family:var(--display);font-weight:400;font-size:48px;line-height:1}
.tile span{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.opt{padding:22px;display:flex;flex-direction:column;gap:8px;min-height:44px}
.opt b{font-size:18px;font-weight:700}
.opt span{font-size:14px;color:var(--muted)}
.opt .rate{font-family:var(--display);font-size:30px;color:var(--accent-soft);line-height:1}
.big-range{display:flex;flex-direction:column;gap:14px}
.big-range .val{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
.big-range .val b{font-family:var(--display);font-weight:400;font-size:clamp(48px,6vw,80px);line-height:1;font-variant-numeric:tabular-nums}
.big-range .val span{color:var(--muted)}
.big-range input{width:100%;accent-color:var(--accent);height:30px}
.split2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.mini{border:1px solid var(--line);border-radius:16px;padding:18px 20px;background:var(--surface-2);display:flex;flex-direction:column;gap:4px}
.mini span{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.mini b{font-size:24px;font-variant-numeric:tabular-nums}
.mini.blue b{color:var(--accent-soft)}
.info{border-left:2px solid var(--accent);padding:4px 0 4px 18px;color:var(--muted);font-size:15px}
.nav-q{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;flex-wrap:wrap}
.btn[disabled]{opacity:.35;pointer-events:none}
.link-btn{background:none;border:0;color:var(--muted);font:inherit;font-weight:700;cursor:pointer;min-height:44px;padding:0 4px}
.link-btn:hover{color:var(--fg)}
.result-hero{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.result-hero .mini b{font-family:var(--display);font-weight:400;font-size:clamp(34px,3.6vw,48px)}
.recap{position:sticky;top:96px;padding:28px;display:flex;flex-direction:column;gap:6px}
.recap h4{margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--accent-soft)}
.rrow{display:flex;justify-content:space-between;gap:12px;padding-block:12px;border-top:1px solid var(--line);font-size:15px;animation:qin .5s cubic-bezier(.2,.8,.2,1) both}
.rrow span{color:var(--muted)}
.rrow b{text-align:right;font-variant-numeric:tabular-nums}
.recap .empty{color:var(--muted);font-size:14px;margin:0}
.recap .fine{font-size:12px;color:var(--muted);margin:14px 0 0;line-height:1.6}
@media (max-width:980px){.simx{grid-template-columns:1fr}.recap{position:static}}
@media (max-width:620px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.opts,.split2,.result-hero{grid-template-columns:1fr}.panel{min-height:0}}

/* Fiscalité */
.fx{border:1px solid var(--line);border-radius:28px;overflow:hidden;background:var(--surface)}
.fx-head,.fx-row{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,1fr)}
.fx-head{border-bottom:1px solid var(--line)}
.fx-head div{padding:22px 28px;font-size:12px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.fx-head div.geo{color:var(--accent-soft);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.fx-row{border-bottom:1px solid var(--line)}
.fx-row>div{padding:30px 28px;display:flex;flex-direction:column;gap:12px;min-width:0}
.fx-row .lbl h3{font-family:var(--display);font-size:clamp(26px,2.6vw,34px);line-height:1.05}
.fx-row .lbl p{margin:0;color:var(--muted);font-size:14px}
.fx-row .geo{background:color-mix(in srgb,var(--accent) 7%,transparent)}
.fx-val{font-family:var(--display);font-size:clamp(40px,4.6vw,64px);line-height:1}
.fx-row .geo .fx-val{color:var(--accent-soft)}
.fx-row small{color:var(--muted);font-size:13px}
.bar{height:6px;border-radius:6px;background:var(--line);overflow:hidden}
.bar i{display:block;height:100%;width:var(--w);border-radius:6px;background:var(--muted);transition:width 1.6s cubic-bezier(.2,.8,.2,1) .3s}
.geo .bar i{background:linear-gradient(90deg,var(--accent),var(--accent-soft))}
.pre .bar i{width:0!important}
.years{padding:36px 28px 40px}
.years h3{font-family:var(--display);font-size:clamp(26px,2.6vw,34px);margin-bottom:6px}
.years>p{margin:0 0 44px;color:var(--muted);font-size:14px}
.ytrack{position:relative;height:2px;background:var(--line);margin-inline:6px}
.ytrack .yfill{position:absolute;left:0;top:0;height:2px;width:calc(2/30*100%);background:linear-gradient(90deg,var(--accent),var(--accent-soft));box-shadow:0 0 12px var(--accent);transition:width 1.4s cubic-bezier(.2,.8,.2,1) .3s}
.pre .ytrack .yfill{width:0}
.ymark{position:absolute;top:-6px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;white-space:nowrap}
.ymark::before{content:"";width:14px;height:14px;border-radius:50%;border:1px solid var(--muted);background:var(--bg)}
.ymark.geo::before{border-color:var(--accent-soft);background:var(--accent);box-shadow:0 0 16px var(--accent)}
.ymark b{font-size:15px}
.ymark span{font-size:12px;color:var(--muted)}
.ymark.fr{align-items:flex-end;transform:translateX(-100%)}
.ymark.fr::before{align-self:flex-end;margin-right:-7px}
.ymark.mid{opacity:.7}
.yaxis{display:flex;justify-content:space-between;margin-top:76px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.fx-note{padding:20px 28px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
@media (max-width:760px){.fx-head{display:none}.fx-row{grid-template-columns:1fr 1fr}.fx-row .lbl{grid-column:1/-1;padding-bottom:0}.fx-row>div:not(.lbl)::before{content:attr(data-c);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.ymark.mid{display:none}}

/* Film visite */
.film{display:none;position:relative;aspect-ratio:16/9;max-width:100%;border-radius:22px;overflow:hidden;border:1px solid var(--line);background:radial-gradient(80% 90% at 50% 40%,#0d1430,#05060a)}
.has-3d .film{display:block}
.has-3d .visit .route{display:none}
.film canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.film-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(5,6,10,.75),transparent 30%,transparent 62%,rgba(5,6,10,.85))}
.film-fade{position:absolute;inset:0;background:var(--bg);opacity:0;pointer-events:none}
.film-cap{position:absolute;left:clamp(18px,3vw,36px);top:clamp(16px,3vw,32px);right:80px;display:flex;flex-direction:column;gap:8px}
.film-cap span{font-size:12px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--accent-soft)}
.film-cap h3{font-family:var(--display);font-size:clamp(24px,3.4vw,46px);line-height:1.02;max-width:20ch}
.film-cap.swap span,.film-cap.swap h3{animation:capin .9s cubic-bezier(.2,.8,.2,1) both}
.film-cap.swap h3{animation-delay:.08s}
@keyframes capin{from{opacity:0;transform:translateY(14px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
.film-pp{position:absolute;right:clamp(14px,2.4vw,28px);top:clamp(14px,2.4vw,28px);width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:color-mix(in srgb,var(--bg) 60%,transparent);color:var(--fg);display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.film-pp svg{width:16px;height:16px;fill:currentColor}
.film-pp .i-play,.film-pp.paused .i-pause{display:none}
.film-pp.paused .i-play{display:block}
.film-ch{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(8px,1.6vw,20px);padding:0 clamp(18px,3vw,36px) clamp(14px,2.4vw,26px)}
.film-ch button{background:none;border:0;padding:8px 0 0;color:var(--muted);font:inherit;font-size:13px;font-weight:700;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:10px;min-height:44px;justify-content:flex-end;transition:color .3s}
.film-ch button.on,.film-ch button:hover{color:var(--fg)}
.film-ch i{display:block;height:2px;border-radius:2px;background:rgba(255,255,255,.14);overflow:hidden}
.film-ch b{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-soft))}
@media (max-width:640px){.film{aspect-ratio:4/5}.film-ch span{font-size:11px}.film-cap{right:64px}}

/* Visite sur place */
.visit{position:relative;border:1px solid var(--line);border-radius:28px;overflow:hidden;background:radial-gradient(120% 140% at 100% 0%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 55%),var(--surface);padding:clamp(32px,6vw,80px)}
.visit .head{margin-bottom:48px}
.route{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.route::before{content:"";position:absolute;left:0;right:0;top:15px;height:1px;background:var(--line)}
.route .runner{position:absolute;top:13px;left:0;width:5px;height:5px;border-radius:50%;background:var(--accent-soft);box-shadow:0 0 16px 4px var(--accent);animation:run 6s cubic-bezier(.6,0,.4,1) infinite}
@keyframes run{0%{left:0;opacity:0}8%{opacity:1}92%{opacity:1}100%{left:100%;opacity:0}}
.stop{position:relative;display:flex;flex-direction:column;gap:10px;padding-top:44px;min-width:0}
.stop::before{content:"";position:absolute;top:8px;left:0;width:15px;height:15px;border-radius:50%;border:1px solid var(--accent-soft);background:var(--bg)}
.stop h3{font-family:var(--body);font-weight:700;font-size:19px}
.stop p{margin:0;color:var(--muted);font-size:15px}
.visit-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;margin-top:40px;padding-top:28px;border-top:1px solid var(--line)}
.visit-foot p{margin:0;color:var(--muted);max-width:54ch}
@media (max-width:860px){.route{grid-template-columns:1fr;gap:0}.route::before{left:7px;right:auto;top:0;bottom:0;width:1px;height:auto}.route .runner{display:none}.stop{padding:0 0 28px 40px}.stop::before{top:4px}}

/* Toi / Arcadia */
.duo{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:16px;align-items:stretch}
.duo .card{padding:clamp(28px,4vw,48px);display:flex;flex-direction:column;gap:24px}
.duo .who{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.duo .who b{font-family:var(--display);font-weight:400;font-size:clamp(44px,5vw,68px);line-height:1}
.duo .who span{font-size:12px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.you ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;counter-reset:y}
.you li{counter-increment:y;display:flex;align-items:baseline;gap:18px;padding-block:22px;border-top:1px solid var(--line);font-family:var(--display);font-size:clamp(30px,3.2vw,42px);line-height:1}
.you li::before{content:counter(y);font-family:var(--body);font-size:13px;font-weight:700;color:var(--accent-soft)}
.you .foot{margin-top:auto;color:var(--muted);font-size:15px}
.us{background:radial-gradient(120% 120% at 100% 0%,color-mix(in srgb,var(--accent) 20%,transparent),transparent 55%),var(--surface);border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}
.us ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
.us li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px;padding-block:16px;border-top:1px solid var(--line)}
.us li svg{width:20px;height:20px;color:var(--accent-soft);margin-top:2px}
.us li b{display:block;font-weight:700;font-size:16px}
.us li small{display:block;color:var(--muted);font-size:14px;margin-top:2px}
.meter{display:flex;flex-direction:column;gap:10px}
.meter .bar{height:8px}
.meter .row2{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}
@media (max-width:900px){.duo{grid-template-columns:1fr}}
@media (max-width:560px){.us ul{grid-template-columns:1fr}}

.trust{margin-top:16px;padding:clamp(28px,4vw,44px);display:grid;grid-template-columns:auto minmax(0,1fr);gap:28px;align-items:center;border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.trust svg{width:56px;height:56px;color:var(--accent-soft)}
.trust h3{font-family:var(--display);font-size:clamp(28px,3vw,40px);line-height:1.05;margin-bottom:6px}
.trust p{margin:0;color:var(--muted)}
@media (max-width:560px){.trust{grid-template-columns:1fr}}

/* FAQ */
.faq{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,88px)}
.faq .head{margin-bottom:0}
.qa{border-top:1px solid var(--line)}
.qa details{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:24px;font-family:var(--display);font-size:clamp(22px,2.2vw,28px);line-height:1.2;min-height:44px}
.qa summary::-webkit-details-marker{display:none}
.qa summary i{flex:none;position:relative;width:18px;height:18px}
.qa summary i::before,.qa summary i::after{content:"";position:absolute;left:0;top:50%;width:18px;height:1px;background:var(--accent-soft);transition:transform .4s}
.qa summary i::after{transform:rotate(90deg)}
.qa details[open] summary i::after{transform:rotate(0)}
.qa details p{margin:0 0 24px;color:var(--muted);max-width:60ch}
@media (max-width:860px){.faq{grid-template-columns:1fr}}

.cta{text-align:center;display:flex;flex-direction:column;align-items:center;gap:24px;padding-block:clamp(100px,14vw,180px)}
.cta h2{font-family:var(--display);font-size:clamp(46px,7vw,104px);line-height:1}
.cta .word{display:inline-block;color:var(--accent-soft);font-style:italic}
.cta p{margin:0;color:var(--muted);font-size:18px;max-width:50ch}
.wa{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;align-items:center}
.wa code{font-family:var(--body);font-weight:700;padding:12px 18px;border:1px dashed var(--line);border-radius:999px;color:var(--fg);user-select:all}

footer{border-top:1px solid var(--line)}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:28px;padding-block:44px}
footer p{margin:0;font-size:12px;color:var(--muted);max-width:620px;line-height:1.7}

.pre{opacity:0;transform:translateY(40px)}
.in{opacity:1;transform:none;transition:opacity 1s cubic-bezier(.2,.8,.2,1),transform 1s cubic-bezier(.2,.8,.2,1)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .pre{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* Intro : zoom arrière du logo plein écran, puis il se pose à sa place */
.stage-inner{position:absolute;inset:0}
.intro{display:none}
.intro-lock,.intro-lock body{overflow:hidden!important;height:100%}
.intro-lock .intro{display:block;position:fixed;inset:0;z-index:9999;background:#05060A;pointer-events:none}
.intro.fade{background:transparent;transition:background-color 1.2s cubic-bezier(.6,0,.2,1)}
.intro-logo{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform,opacity,filter;filter:brightness(2.4) saturate(.7)}
.intro-word{position:absolute;left:0;right:0;bottom:12vh;text-align:center;font-size:12px;font-weight:700;letter-spacing:.7em;padding-left:.7em;color:var(--fg);opacity:0}
.intro.word-on .intro-word{animation:veilword 1.4s cubic-bezier(.2,.8,.2,1) forwards!important}
@media (prefers-reduced-motion:reduce){.intro.fade{transition:background-color 1.2s cubic-bezier(.6,0,.2,1)!important}#heroCanvas,.stage .fallback{transition:opacity .5s!important}}
.intro.fade .intro-word{animation:none;opacity:0;transition:opacity .35s}
.intro-lock:not(.intro-land) #heroCanvas,.intro-lock:not(.intro-land) .stage .fallback{opacity:0!important}
#heroCanvas,.stage .fallback{transition:opacity .5s}
@keyframes veilword{from{opacity:0;letter-spacing:1.2em}to{opacity:.85;letter-spacing:.7em}}
.intro-hide .hero .rise,.intro-hide .hero h1 .w{animation:none!important;opacity:0}
.intro-hide .nav,.intro-hide .marquee{opacity:0}
.nav,.marquee{transition:opacity 1.2s cubic-bezier(.2,.8,.2,1)}

/* Deux formules */
.formulas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}
.formula{padding:clamp(28px,4vw,44px);display:flex;flex-direction:column;gap:18px}
.formula:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.f-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.formula h3{font-family:var(--display);font-size:clamp(36px,4vw,52px);line-height:1}
.formula>p{margin:0;color:var(--muted);font-size:16px}
.formula ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.formula li{display:flex;gap:12px;padding-block:11px;border-top:1px solid var(--line);font-size:15px}
.formula li::before{content:"";flex:none;width:6px;height:6px;margin-top:9px;border-radius:50%;background:var(--accent-soft);box-shadow:0 0 10px var(--accent)}
.goals{display:flex;flex-wrap:wrap;gap:8px}
.goals span{font-size:13px;font-weight:600;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));border-radius:999px;padding:8px 14px;color:var(--accent-soft)}
.f-price{margin-top:auto;display:flex;align-items:baseline;gap:12px;padding-top:18px;border-top:1px solid var(--line)}
.f-price b{font-family:var(--display);font-weight:400;font-size:clamp(34px,3.6vw,46px);line-height:1}
.f-price span{color:var(--muted);font-size:14px}
.soon-line{margin:0;color:var(--muted);font-size:15px;display:flex;align-items:center;gap:10px}
.soon-line::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}
@media (max-width:860px){.formulas{grid-template-columns:1fr}}

/* Création de valeur */
.vsteps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.vstep{padding:clamp(26px,3.4vw,40px);display:flex;flex-direction:column;gap:12px}
.vstep.hl{border-color:color-mix(in srgb,var(--accent) 50%,var(--line));background:radial-gradient(120% 120% at 100% 0%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 60%),var(--surface)}
.vk{font-size:12px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--accent-soft)}
.vstep h3{font-family:var(--display);font-size:clamp(28px,2.8vw,38px);line-height:1.04}
.vstep p{margin:0;color:var(--muted);font-size:15px}
.vcurve{display:block;width:100%;height:clamp(90px,12vw,160px);margin-top:36px}
.vcurve path{stroke-dasharray:1400;stroke-dashoffset:0;transition:stroke-dashoffset 2s cubic-bezier(.2,.8,.2,1) .2s}
.pre .vcurve path,.vcurve.pre path{stroke-dashoffset:1400}
.vaxis{display:flex;justify-content:space-between;gap:16px;font-size:13px;color:var(--muted);margin-top:10px}
.vbars{margin-top:32px;padding:clamp(24px,3.4vw,40px);display:flex;flex-direction:column;gap:22px}
.vrow{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) auto;gap:20px;align-items:center}
.vrow span{color:var(--muted);font-size:15px}
.vrow b{font-variant-numeric:tabular-nums;text-align:right;min-width:120px}
.vrow:not(:first-child) .bar i{background:linear-gradient(90deg,var(--accent),var(--accent-soft))}
.vrow.geo b{color:var(--accent-soft)}
.both-line{margin:0 0 18px;font-size:16px;color:var(--fg)}
@media (max-width:860px){.vsteps{grid-template-columns:1fr}.vrow{grid-template-columns:1fr auto}.vrow .bar{grid-column:1/-1;grid-row:2}}

.opps{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:860px){.opps{grid-template-columns:1fr}}

/* Sélecteur de formule */
.formx{border:1px solid var(--line);border-radius:28px;background:radial-gradient(90% 120% at 0% 0%,color-mix(in srgb,var(--accent) 14%,transparent),transparent 55%),var(--surface);padding:clamp(18px,3vw,36px);display:flex;flex-direction:column;gap:clamp(24px,3vw,36px)}
.fx-switch{position:relative;display:grid;grid-template-columns:1fr 1fr;padding:6px;border:1px solid var(--line);border-radius:999px;background:var(--bg);max-width:560px;width:100%;align-self:center}
.fx-switch button{position:relative;z-index:1;background:none;border:0;cursor:pointer;font:inherit;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 10px;min-height:56px;border-radius:999px;transition:color .4s}
.fx-switch button b{font-size:16px;font-weight:700}
.fx-switch button span{font-size:12px;letter-spacing:.06em}
.fx-switch button[aria-selected="true"]{color:#fff}
.fx-pill{position:absolute;z-index:0;top:6px;bottom:6px;left:6px;width:calc(50% - 6px);border-radius:999px;background:linear-gradient(135deg,var(--accent),#5b83ff);box-shadow:0 10px 30px -10px var(--accent);transition:transform .6s cubic-bezier(.7,0,.2,1)}
.formx[data-mode="fini"] .fx-pill{transform:translateX(100%)}
.fx-body{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(24px,4vw,56px);align-items:center}
.plan{margin:0;display:flex;flex-direction:column;gap:14px}
.plan svg{width:100%;height:auto;display:block}
.plan .grid-lines path{stroke:var(--line);stroke-width:1;fill:none;opacity:.6}
.plan .walls path{stroke:var(--fg);stroke-width:7;fill:none;stroke-linecap:square}
.plan .walls path:nth-child(n+2){stroke-width:4}
.plan .openings path{stroke:var(--muted);stroke-width:1.5;fill:none}
.plan .fixtures *{stroke:var(--muted);stroke-width:1.5;fill:none}
.plan .furn *{stroke:var(--accent-soft);stroke-width:2;fill:color-mix(in srgb,var(--accent) 10%,transparent);stroke-dasharray:600;stroke-dashoffset:600;opacity:0;transition:stroke-dashoffset 1.4s cubic-bezier(.2,.8,.2,1),opacity .5s}
.formx[data-mode="fini"] .plan .furn *{stroke-dashoffset:0;opacity:1}
.formx[data-mode="fini"] .plan .furn .d2{transition-delay:.15s}
.formx[data-mode="fini"] .plan .furn .d3{transition-delay:.3s}
.formx[data-mode="fini"] .plan .furn .d4{transition-delay:.45s}
.plan .dims path{stroke:var(--accent-soft);stroke-width:1;fill:none;stroke-dasharray:4 4;opacity:.8;transition:opacity .5s}
.formx[data-mode="fini"] .plan .dims path{opacity:0}
.plan figcaption{font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-soft);text-align:center}
.formx[data-mode="vide"] .cap-fini,.formx[data-mode="fini"] .cap-vide{display:none}
.formx[data-mode="vide"] .mode-fini,.formx[data-mode="fini"] .mode-vide{display:none}
.fx-info>div{display:flex;flex-direction:column;gap:18px;animation:qin .6s cubic-bezier(.2,.8,.2,1) both}
.fx-info h3{font-family:var(--display);font-size:clamp(32px,3.6vw,50px);line-height:1.02}
.fx-lead{margin:0;color:var(--muted);font-size:16px}
.goal-pick{display:flex;flex-wrap:wrap;gap:8px}
.goal-pick button{font:inherit;font-size:14px;font-weight:600;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:999px;padding:10px 16px;min-height:44px;cursor:pointer;transition:all .3s}
.goal-pick button[aria-pressed="true"]{color:var(--fg);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,transparent)}
.goal-txt{margin:0;font-size:15px;color:var(--fg);border-left:2px solid var(--accent);padding-left:14px;min-height:3em}
.fx-points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.fx-points li{display:flex;gap:12px;padding-block:11px;border-top:1px solid var(--line);font-size:15px}
.fx-points li::before{content:"";flex:none;width:6px;height:6px;margin-top:9px;border-radius:50%;background:var(--accent-soft);box-shadow:0 0 10px var(--accent)}
.fx-price{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:6px}
.fx-price div{border:1px solid var(--line);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:2px;background:var(--bg)}
.fx-price span{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.fx-price b{font-family:var(--display);font-weight:400;font-size:clamp(26px,2.6vw,34px);line-height:1.1}
.fx-price.one{grid-template-columns:1fr;max-width:280px}
.fx-info .btn{align-self:flex-start}
.fx-foot{margin:0;text-align:center;color:var(--muted);font-size:14px}
@media (max-width:860px){.fx-body{grid-template-columns:1fr}}

/* Simulateur 360 */
.sim360{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
.sim360.ready{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}
.s-ctrl{padding:clamp(22px,3.4vw,44px);display:flex;flex-direction:column;gap:20px}
.s-head{display:flex;flex-direction:column;gap:14px}
.s-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px 28px;flex-wrap:wrap}
.s-title{display:flex;flex-direction:column;gap:4px}
.s-title b{font-family:var(--display);font-weight:400;font-size:clamp(28px,3vw,38px);line-height:1}
.s-banks{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.s-banks>div{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.s-banks>div span{font-size:13px;font-weight:700;border:1px solid var(--line);border-radius:999px;padding:7px 12px;background:var(--bg)}
.s-progress{height:4px;border-radius:4px;background:var(--line);overflow:hidden}
.s-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-soft));transition:width .5s cubic-bezier(.2,.8,.2,1)}
.s-usd{margin:0;font-size:13px;color:var(--muted)}
.s-lab{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.s-lab label{cursor:pointer}
.s-val{font-size:13px;letter-spacing:0;text-transform:none;color:var(--muted);font-weight:600}
.s-path{list-style:none;margin:0;padding:0;position:relative}
.step{position:relative;display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr);gap:16px 32px;padding:24px 0 24px 0;border-top:1px solid var(--line);transition:opacity .4s}
.st-head{display:flex;gap:16px;align-items:flex-start}
.st-head i{flex:none;font-style:normal;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:800;color:var(--muted);border:1px solid var(--line);background:var(--bg);transition:all .4s}
.st-head h4{margin:0 0 4px;font-family:var(--display);font-weight:400;font-size:26px;line-height:1.05}
.st-head p{margin:0;font-size:14px;color:var(--muted)}
.step.current .st-head i{color:#fff;background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 22%,transparent)}
.step.done .st-head i{color:var(--accent-soft);border-color:var(--accent-soft);background:color-mix(in srgb,var(--accent) 14%,var(--bg))}
.step.done .st-head i{font-size:0}
.step.done .st-head i::before{content:"✓";font-size:16px}
.step.todo{opacity:.45}
.step.todo:hover{opacity:.8}
.st-ctl{display:flex;flex-direction:column;gap:14px;min-width:0}
.sim360.ready .step{grid-template-columns:1fr;gap:14px;padding:20px 0}
.sim360.ready .step.todo{opacity:1}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.seg button,.chips-s button{font:inherit;color:var(--muted);background:var(--bg);border:1px solid var(--line);cursor:pointer;transition:all .3s}
.seg button{border-radius:16px;padding:14px;text-align:left;font-weight:700;font-size:15px;display:flex;flex-direction:column;gap:2px;min-height:56px}
.seg button small{font-weight:500;font-size:12px;color:var(--muted)}
.seg button[aria-pressed="true"],.chips-s button[aria-pressed="true"]{color:var(--fg);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--bg))}
.chips-s{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chips-s button{border-radius:999px;padding:9px 15px;font-size:14px;font-weight:600;min-height:44px}
.stepper{display:grid;grid-template-columns:56px 1fr 56px;align-items:center;border:1px solid var(--line);border-radius:18px;background:var(--bg);overflow:hidden;max-width:280px}
.stepper button{height:56px;background:none;border:0;color:var(--fg);font-size:24px;cursor:pointer}
.stepper button:hover{background:var(--surface-2)}
.stepper output{text-align:center;font-family:var(--display);font-size:40px;line-height:1;font-variant-numeric:tabular-nums}
.disc{font-size:14px;color:var(--accent-soft);border-left:2px solid var(--accent);padding-left:12px;animation:qin .5s both}
.credit-only{display:flex;flex-direction:column;gap:18px;margin-top:4px;padding:18px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--bg) 60%,transparent)}
.sim360.cash .credit-only{display:none}
.sub{display:flex;flex-direction:column;gap:10px}
.s-field{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:14px;background:var(--bg);padding:0 16px;min-height:52px;transition:border-color .3s}
.s-field:focus-within{border-color:var(--accent)}
.s-field input{flex:1;min-width:0;background:none;border:0;color:var(--fg);font-family:var(--display);font-size:28px;font-variant-numeric:tabular-nums;outline:none;-moz-appearance:textfield}
.s-field input::-webkit-outer-spin-button,.s-field input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.s-field span{color:var(--muted);font-weight:600}
.s-field.short{max-width:130px;min-height:44px;border-radius:999px}
.s-field.short input{font-size:20px}
.s-rate{display:grid;grid-template-columns:52px minmax(0,180px) 52px;gap:8px}
.s-rate>button{border-radius:14px;border:1px solid var(--line);background:var(--bg);color:var(--fg);font-size:24px;cursor:pointer;min-height:52px}
.s-rate>button:hover{border-color:var(--accent)}
.s-ctrl input[type=range]{width:100%;accent-color:var(--accent);height:28px;margin:0}
.s-note{margin:0;font-size:12px;color:var(--muted);line-height:1.6}
.s-res{display:none;padding:clamp(22px,3vw,40px);flex-direction:column;gap:26px;position:sticky;top:90px;background:radial-gradient(100% 80% at 100% 0%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 60%),var(--surface);container-type:inline-size}
.sim360.ready .s-res{display:flex;animation:resin .9s cubic-bezier(.2,.8,.2,1) both}
@keyframes resin{from{opacity:0;transform:translateX(40px) scale(.98)}to{opacity:1;transform:none}}
.r-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.r-top>div{display:flex;flex-direction:column;gap:4px}
.r-top b{font-family:var(--display);font-weight:400;font-size:clamp(34px,3.6vw,48px);line-height:1;font-variant-numeric:tabular-nums}
.r-badge{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:999px;padding:8px 12px}
.r-hero{display:flex;flex-direction:column;gap:6px}
.r-hero b{font-family:var(--display);font-weight:400;font-size:clamp(72px,9vw,120px);line-height:.9;letter-spacing:-.02em;background:linear-gradient(180deg,var(--fg) 30%,var(--accent-soft));-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
.r-sub{font-size:14px;color:var(--muted)}
.r-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.r-kpis div{border:1px solid var(--line);border-radius:16px;padding:16px;background:var(--bg);display:flex;flex-direction:column;gap:4px;min-width:0}
.r-kpis span{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.r-kpis b{font-family:var(--display);font-weight:400;font-size:clamp(26px,2.6vw,34px);line-height:1.1;font-variant-numeric:tabular-nums}
.r-kpis b.pos{color:#8fe3b4}.r-kpis b.neg{color:#ffb38a}
.r-kpis small{font-size:12px;color:var(--muted)}
.r-pie{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:24px;align-items:center;border:1px solid var(--line);border-radius:20px;padding:20px;background:var(--bg)}
.pie-wrap{position:relative;width:170px;height:170px}
.pie-wrap svg{width:100%;height:100%;transform:rotate(-90deg)}
.pie-bg{fill:none;stroke:var(--line);stroke-width:16}
.pz{fill:none;stroke-width:16;stroke-linecap:butt;transition:stroke-dasharray .7s cubic-bezier(.2,.8,.2,1),stroke-dashoffset .7s cubic-bezier(.2,.8,.2,1)}
.pz.a{stroke:var(--accent-soft)}.pz.b{stroke:var(--accent)}.pz.c{stroke:#ffb38a}
.pie-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.pie-center b{font-family:var(--display);font-weight:400;font-size:24px;line-height:1;font-variant-numeric:tabular-nums}
.pie-center span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.14em;margin-top:4px}
.r-pie figcaption{display:flex;flex-direction:column;gap:12px;min-width:0}
.pie-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.pie-legend li{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:10px;align-items:center;padding-block:9px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.pie-legend li b{color:var(--fg);font-variant-numeric:tabular-nums}
.pie-legend i{width:12px;height:12px;border-radius:3px}
.pie-legend i.a{background:var(--accent-soft)}.pie-legend i.b{background:var(--accent)}.pie-legend i.c{background:#ffb38a}
.r-proj{display:flex;flex-direction:column;gap:12px}
.ptab-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:var(--bg)}
.ptab{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.ptab th{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:right;padding:14px 16px 10px;white-space:nowrap}
.ptab th:first-child,.ptab td:first-child{text-align:left}
.ptab td{padding:13px 16px;border-top:1px solid var(--line);text-align:right;font-size:15px;white-space:nowrap}
.ptab td:first-child{color:var(--muted)}
.ptab td.keep{font-weight:800;color:#8fe3b4}
.ptab tr.hl td{background:color-mix(in srgb,var(--accent) 10%,transparent)}
.r-recap{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
.r-recap li{display:flex;justify-content:space-between;gap:10px;padding-block:10px;border-top:1px solid var(--line);font-size:14px}
.r-recap li span{color:var(--muted)}
.r-recap li b{text-align:right}
.r-next{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;counter-reset:n}
.r-next li{counter-increment:n;display:flex;align-items:baseline;gap:12px;padding-block:10px;border-top:1px solid var(--line);font-size:15px;color:var(--muted)}
.r-next li::before{content:counter(n);flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;color:#fff;background:var(--accent)}
.r-next b{color:var(--fg)}
.r-cta{display:flex;flex-wrap:wrap;gap:10px}
.r-vide{display:flex;flex-direction:column;gap:16px;align-items:flex-start;padding-block:20px}
.r-vide h3{font-family:var(--display);font-size:clamp(32px,3.6vw,48px);line-height:1.04}
.r-vide p{margin:0;color:var(--muted);max-width:46ch}
@container (max-width:560px){.r-kpis,.r-recap{grid-template-columns:1fr}.r-hero b{font-size:76px}.r-pie{grid-template-columns:1fr;justify-items:center}.r-pie figcaption{width:100%}.ptab th,.ptab td{padding-inline:10px;font-size:13px}}
.s-mbar{display:none}
@media (max-width:760px){
  .sim360.ready{grid-template-columns:1fr}.s-res{position:static}
  .step{grid-template-columns:1fr;gap:14px}
  .sim360.ready .s-mbar{display:flex;position:sticky;bottom:12px;z-index:5;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-radius:16px;background:var(--accent);color:#fff;box-shadow:0 14px 40px -12px var(--accent)}
  .s-mbar b{font-family:var(--display);font-weight:400;font-size:30px;line-height:1}
  .s-mbar span{font-size:13px;font-weight:700}
  .s-banks{align-items:flex-start}.s-banks>div{justify-content:flex-start}
}

/* Simulateur : lisibilité et déblocage */
.s-ctrl{background:#0C1120;border-color:#222B45}
.st-head h4{color:#F4F6FC}
.st-head p{color:#AEB6CC}
.seg button,.chips-s button{background:#121829;border-color:#2A3452;color:#C9D1E6}
.seg button small{color:#9AA4BE}
.stepper,.s-field,.s-rate>button{background:#121829;border-color:#2A3452}
.step{transition:opacity .5s,filter .5s,background .5s}
.step.todo{opacity:.28;filter:grayscale(1);pointer-events:none}
.step.todo .st-head i::before{content:"🔒";font-size:14px}
.step.todo .st-head i{font-size:0}
.step.current{background:linear-gradient(90deg,rgba(61,107,255,.14),rgba(61,107,255,.04));border-radius:22px;padding-inline:22px;margin-inline:-22px;border-top-color:transparent;animation:stepin .6s cubic-bezier(.2,.8,.2,1) both}
.step.current+.step{border-top-color:transparent}
@keyframes stepin{from{opacity:.4;transform:translateY(10px)}to{opacity:1;transform:none}}
.step.done{opacity:1}
.bank-line{margin:0;font-size:15px;color:#C9D1E6}
.bank-line b{color:#fff}
.r-duo{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.r-duo>div{border:1px solid #2A3452;border-radius:20px;padding:20px;background:#0C1120;display:flex;flex-direction:column;gap:6px;min-width:0}
.r-duo b{font-family:var(--display);font-weight:400;font-size:clamp(54px,6vw,84px);line-height:.95;font-variant-numeric:tabular-nums;color:#F4F6FC}
.r-duo .gain{border-color:color-mix(in srgb,var(--accent) 60%,#2A3452);background:linear-gradient(160deg,rgba(61,107,255,.22),rgba(61,107,255,.05))}
.r-duo .gain b{color:#B9CBFF}
.r-keep{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-radius:18px;padding:16px 20px;background:rgba(143,227,180,.1);border:1px solid rgba(143,227,180,.35)}
.r-keep span{font-weight:700;font-size:16px}
.r-keep b{font-family:var(--display);font-weight:400;font-size:42px;line-height:1;color:#8fe3b4;font-variant-numeric:tabular-nums}
.r-keep b.neg{color:#ffb38a}
.pz.a{stroke:#8fe3b4}.pz.b{stroke:var(--accent)}
.pie-legend i.a{background:#8fe3b4}.pie-legend i.b{background:var(--accent)}.pie-legend i.c{background:#9DB5FF}
.pie-legend li.tot{color:var(--fg);font-weight:700}
.pie-center b{font-size:38px;color:#8fe3b4}
@container (max-width:560px){.r-duo{grid-template-columns:1fr}}

/* Tableau projeté : loyers et plus-value */
.proj-intro{margin:0;font-size:14px;color:#AEB6CC}
.proj-intro b{color:#B9CBFF}
.ptab td.pv{color:#B9CBFF;font-weight:700}
.ptab td.tot{font-weight:800;color:#F4F6FC}
.ptab th:last-child,.ptab td:last-child{padding-right:18px}
.ptab tr.hl td.tot{color:#8fe3b4}

/* Prévisualisation épurée */
.rx-month{display:flex;flex-direction:column;border:1px solid #2A3452;border-radius:22px;background:#0C1120;overflow:hidden}
.rx-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 22px;border-top:1px solid #1E2640}
.rx-row:first-child{border-top:0}
.rx-row span{font-size:17px;font-weight:600;color:#C9D1E6}
.rx-row b{font-family:var(--display);font-weight:400;font-size:clamp(40px,4.4vw,56px);line-height:1;font-variant-numeric:tabular-nums;color:#F4F6FC}
.rx-row.gain b{color:#B9CBFF}
.rx-row.keep{background:rgba(143,227,180,.08)}
.rx-row.keep span{color:#F4F6FC;font-weight:800}
.rx-row.keep b{color:#8fe3b4}
.rx-row.keep b.neg{color:#ffb38a}
.rx-cap{margin:0;padding:12px 22px 16px;font-size:13px;color:#9AA4BE;border-top:1px solid #1E2640}
.rx-proj{display:flex;flex-direction:column;gap:14px}
.rx-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.rx-tabs{display:flex;padding:4px;border:1px solid #2A3452;border-radius:999px;background:#0C1120}
.rx-tabs button{font:inherit;font-size:14px;font-weight:700;color:#9AA4BE;background:none;border:0;border-radius:999px;padding:0 14px;min-height:38px;cursor:pointer;transition:all .3s}
.rx-tabs button[aria-selected="true"]{background:var(--accent);color:#fff}
.rx-list{margin:0;display:flex;flex-direction:column}
.rx-list div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-block:13px;border-top:1px solid #1E2640}
.rx-list dt{font-size:16px;color:#C9D1E6;display:flex;flex-direction:column;gap:2px}
.rx-list dt small{font-size:12px;color:#8C95AE}
.rx-list dd{margin:0;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.rx-list dd.pv{color:#B9CBFF}
.rx-list .tot{border-top:2px solid color-mix(in srgb,var(--accent) 60%,#2A3452);padding-top:16px}
.rx-list .tot dt{font-size:18px;font-weight:800;color:#F4F6FC}
.rx-list .tot dd{font-family:var(--display);font-weight:400;font-size:clamp(40px,4.4vw,54px);line-height:1;color:#8fe3b4}
.rx-next{margin:0;font-size:14px;color:#AEB6CC;border-left:2px solid var(--accent);padding-left:12px}
.s-res{gap:22px}
.r-main{display:flex;flex-direction:column;gap:24px}
.r-main[hidden]{display:none}
.rx-row{align-items:center}

/* Le modèle Arcadia : on isole ses étapes des styles du simulateur */
.story .step{grid-template-columns:auto minmax(0,1fr)!important;gap:20px;padding:0;border:0;margin:0;background:none;filter:none;animation:none;pointer-events:auto;border-radius:0}
.story .steps{gap:clamp(14px,2.4vh,26px)}
.story .step h3{font-size:clamp(24px,2.3vw,34px)}
@media (max-width:860px){.story .step{gap:14px}}
#visite{padding-top:clamp(40px,6vw,80px)!important}
/* Contact */
.cta .cta-mail{margin-top:22px;font-size:15px;color:var(--muted)}
.cta .cta-mail a{color:var(--fg);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--accent-soft)}
footer a{color:inherit;text-decoration:underline;text-underline-offset:3px}
/* Mentions légales */
.legal h1{margin:10px 0 36px;font-family:var(--display);font-weight:400;font-size:clamp(44px,6vw,84px);line-height:1}
.legal h1 em{color:var(--accent-soft)}
.legal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:48px}
.legal-card{padding:clamp(24px,3vw,36px)}
.legal-card h2,.legal-body h2{font-family:var(--display);font-weight:400;font-size:clamp(24px,2.4vw,30px);margin:0 0 14px}
.legal-card p{color:var(--muted);margin:0 0 14px;line-height:1.6}
.legal-card p b{color:var(--fg)}
.legal-card a,.legal-body a{color:var(--fg);text-decoration:underline;text-underline-offset:3px}
.legal-body{max-width:760px}
.legal-body h2{margin-top:36px}
.legal-body p{color:var(--muted);line-height:1.7}
@media (max-width:760px){.legal-grid{grid-template-columns:1fr}}

/* Mobile */
.stage img.hero-fb{inset:auto;left:7.625%;top:18.125%;width:84.75%;height:auto;opacity:1}
.wa-fab{display:none}
@media (max-width:860px){
  .hero{padding-block:12px 44px;gap:6px}
  .stage{max-width:min(300px,74vw);margin:-6px auto -30px}
  .hero h1{font-size:clamp(40px,11.2vw,58px)}
  .hero .ctas .btn{flex:1 1 auto;justify-content:center}
  .wa-fab{display:flex;position:fixed;right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:40;align-items:center;justify-content:center;width:54px;height:54px;padding:0;border-radius:50%;background:#25D366;color:#06210f;font-weight:800;font-size:14px;box-shadow:0 10px 30px rgba(0,0,0,.45);transform:translateY(140%);opacity:0;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .3s}
  .wa-fab svg{width:28px;height:28px}
  .wa-fab span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .wa-fab.show{transform:none;opacity:1}
  .cta .wa{flex-direction:column;align-items:center}
  .cta .wa .btn{width:100%;max-width:340px;justify-content:center}
}
@media (max-width:860px) and (max-height:720px){
  .story-sticky{grid-template-rows:34svh auto;padding-top:62px}
  .story-stage{height:34svh}
  .story .step h3{font-size:21px}
  .story .steps{gap:8px}
}
.intro-lock .wa-fab{display:none}

/* Simulateur libre */
.simx .s-path{counter-reset:none}
.simx .step{opacity:1!important;filter:none!important;pointer-events:auto!important}
.simx .sub{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.simx .sub:first-child{margin-top:0}
.simx .r-cta button.btn{cursor:pointer;font:inherit}
.simx .stepper output{font-size:34px}
.rx-row b,.rx-list dd{white-space:nowrap}
@media (max-width:520px){.rx-row b{font-size:clamp(26px,8vw,34px)}.rx-list .tot dd{font-size:clamp(26px,8vw,36px)}.rx-list .tot dt{white-space:nowrap}}

/* Rebranding : méthode, offre, engagement */
.method{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;counter-reset:none}
.method li{padding:clamp(22px,2.4vw,30px);display:flex;flex-direction:column;gap:10px}
.method .mk{font-family:var(--display);font-style:italic;font-size:34px;line-height:1;color:var(--accent-soft)}
.method h3{font-family:var(--display);font-weight:400;font-size:clamp(22px,2vw,27px);line-height:1.1;margin:6px 0 0}
.method p{margin:0;color:var(--muted);font-size:15px;line-height:1.55}
.offer{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:28px 40px;align-items:center;padding:clamp(26px,4vw,52px);background:radial-gradient(90% 120% at 100% 0%,color-mix(in srgb,var(--accent) 20%,transparent),transparent 60%),var(--surface,#0d1220)}
.offer h2{font-family:var(--display);font-weight:400;font-size:clamp(32px,4.2vw,56px);line-height:1.02;margin:14px 0 12px}
.offer h2 em{color:var(--accent-soft)}
.offer p{margin:0;color:var(--muted);max-width:52ch}
.offer-nums{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.offer-nums div{border:1px solid var(--line);border-radius:18px;padding:18px 20px;display:flex;flex-direction:column;gap:6px;background:color-mix(in srgb,var(--bg) 55%,transparent)}
.offer-nums span{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.offer-nums b{font-family:var(--display);font-weight:400;font-size:clamp(30px,3.6vw,48px);line-height:1;white-space:nowrap}
.offer-btn{grid-column:1/-1;justify-self:start}
.engage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.engage .card{padding:clamp(22px,2.6vw,32px)}
.engage h3{font-family:var(--display);font-weight:400;font-size:clamp(24px,2.2vw,30px);margin:0 0 8px}
.engage p{margin:0;color:var(--muted)}
@media (max-width:980px){.method{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.offer{grid-template-columns:1fr}.offer-btn{width:100%;justify-content:center}.engage{grid-template-columns:1fr}}
@media (max-width:520px){.method{grid-template-columns:1fr}}

/* V2 : offre, fiscalité, timeline animée */
.offer-head{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px 48px;align-items:end;margin-bottom:clamp(28px,4vw,48px)}
.offer-head h2{font-family:var(--display);font-weight:400;font-size:clamp(36px,5vw,68px);line-height:1;margin:16px 0 14px}
.offer-head p{margin:0;color:var(--muted);max-width:52ch}
.rx-row.tax{padding-block:12px}
.rx-row.tax span{font-size:15px;font-weight:600;color:var(--muted)}
.rx-row.tax span small{display:block;font-size:12px;font-weight:500;opacity:.8}
.rx-row.tax b{font-size:clamp(24px,2.4vw,30px);color:var(--muted)}
.fis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.fis-card{padding:clamp(24px,2.8vw,34px)!important;gap:18px!important}
.fis-k{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-soft)}
.fis-duo{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fis-duo.one{grid-template-columns:1fr}
.fis-duo div{border:1px solid var(--line);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.fis-duo div.geo{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 12%,transparent)}
.fis-duo b{font-family:var(--display);font-weight:400;font-size:clamp(34px,3.4vw,46px);line-height:1}
.fis-duo span{font-size:13px;color:var(--muted)}
.fis-live{margin:0;display:flex;flex-direction:column}
.fis-live div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:15px}
.fis-live dt{color:#C9D1E6}
.fis-live dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.fis-live .tot dd{color:#8fe3b4}
.fis-card p{margin:0;color:var(--muted);font-size:15px;line-height:1.6}
.fis-card p b{color:var(--fg)}
.fis-note{margin-top:18px}
@media (max-width:980px){.fis{grid-template-columns:1fr}.offer-head{grid-template-columns:1fr}}

.mt{position:relative;--p:0}
.mt-head{margin-bottom:clamp(36px,7vh,80px);display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.mt-count{display:flex;align-items:baseline;gap:10px;font-family:var(--display);color:var(--muted);flex:none}
.mt-count b{font-weight:400;font-style:italic;font-size:clamp(72px,10vw,150px);line-height:.85;color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--accent-soft) 70%,transparent);background:linear-gradient(180deg,rgba(157,181,255,.35),rgba(157,181,255,0));-webkit-background-clip:text;background-clip:text}
.mt-count b.flip{animation:mtflip .7s cubic-bezier(.2,.8,.2,1)}
.mt-count span{font-size:22px}
@keyframes mtflip{from{opacity:0;transform:translateY(30%)}to{opacity:1;transform:none}}
@media (max-width:900px){.mt-count{display:none}}
.mt-head h2{font-family:var(--display);font-weight:400;font-size:clamp(36px,5vw,68px);line-height:1;margin-top:14px;max-width:16ch}
.mt-steps{list-style:none;margin:0;padding:0}
.mt-step h3{font-family:var(--display);font-weight:400;font-size:clamp(24px,2.3vw,32px);line-height:1.05;margin:0 0 10px}
.mt-step p{margin:0;color:var(--muted);font-size:15px;line-height:1.6;max-width:30ch}
.mt-node{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;border:1px solid var(--line);background:var(--bg);position:relative;transition:border-color .6s,box-shadow .6s,background .6s}
.mt-node b{font-family:var(--display);font-style:italic;font-weight:400;font-size:22px;color:var(--muted);transition:color .6s}
.mt-node::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:1px solid var(--accent);opacity:0;transform:scale(.7)}
.mt-ico{width:46px;height:46px;fill:none;stroke:var(--accent-soft);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin:22px 0 14px;opacity:.35;transition:opacity .6s}
.mt-ico *{stroke-dasharray:140;stroke-dashoffset:140;transition:stroke-dashoffset 1.2s cubic-bezier(.2,.8,.2,1) .15s}
.mt-step{opacity:.28;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1)}
.mt-step.on{opacity:1;transform:none}
.mt-step.on .mt-node{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 22%,var(--bg));box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 12%,transparent),0 0 40px color-mix(in srgb,var(--accent) 45%,transparent)}
.mt-step.on .mt-node b{color:#fff}
.mt-step.cur .mt-node::after{animation:mtpulse 1.8s ease-out infinite}
.mt-step.on .mt-ico{opacity:1}
.mt-step.on .mt-ico *{stroke-dashoffset:0}
@keyframes mtpulse{0%{opacity:.8;transform:scale(.8)}100%{opacity:0;transform:scale(1.6)}}
.mt-body{position:relative}
.mt-track{position:absolute;pointer-events:none;background:var(--line)}
.mt-fill{position:absolute;background:linear-gradient(90deg,var(--accent),var(--accent-soft));box-shadow:0 0 18px color-mix(in srgb,var(--accent) 70%,transparent)}
.mt-comet{position:absolute;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 35%,transparent),0 0 30px 6px var(--accent)}
@media (min-width:901px){
  .mt{height:300vh}
  .mt-sticky{position:sticky;top:64px;height:calc(100vh - 64px);height:calc(100svh - 64px);display:flex;flex-direction:column;justify-content:center}
  .mt-step h3{font-size:clamp(26px,2.5vw,36px)}
  .mt-step p{font-size:16px}
  .mt-node{width:64px;height:64px}
  .mt-track{top:31px!important}
  .mt-ico{width:54px;height:54px}
  .mt-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;position:relative}
  .mt-track{left:0;right:0;top:28px;height:2px}
  .mt-fill{left:0;top:0;height:2px;width:calc(var(--p)*100%)}
  .mt-comet{top:-6px;left:calc(var(--p)*100% - 7px)}
}
@media (max-width:900px){
  .mt{padding-block:clamp(56px,10vw,96px)}
  .mt-sticky{position:relative}
  .mt-steps{display:flex;flex-direction:column;gap:40px;padding-left:76px;position:relative}
  .mt-track{left:28px;top:0;bottom:0;width:2px}
  .mt-step{position:relative}
  .mt-node{position:absolute;left:-76px;top:-6px}
  .mt-ico{margin-top:0}
  .mt-fill{left:0;top:0;width:2px;height:calc(var(--p)*100%)}
  .mt-comet{left:-6px;top:calc(var(--p)*100% - 7px)}
}
@media (prefers-reduced-motion:reduce){.mt{height:auto!important}.mt-sticky{position:relative!important;height:auto!important}.mt-step{opacity:1;transform:none}.mt-ico *{stroke-dashoffset:0}}

/* Socle multi-pages */
html,body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.block.page-first{padding-top:clamp(64px,9vw,120px)}
.head h1{font-family:var(--display);font-size:clamp(46px,6.6vw,96px);line-height:.98}
.links a[aria-current="page"]{color:var(--fg)}
.links a[aria-current="page"]::after{content:"";display:block;height:1px;margin-top:4px;background:var(--accent-soft)}
.crumb{display:inline-flex;align-items:center;min-height:44px;font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--muted);transition:color .3s}
.crumb:hover{color:var(--fg)}
.has-3d .visit .route.always{display:grid;margin-top:48px}
.next{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:clamp(24px,4vw,40px);border-radius:22px}
.next>span:first-child{display:flex;flex-direction:column;gap:10px}
.next b{font-family:var(--display);font-weight:400;font-size:clamp(28px,3.4vw,46px);line-height:1.05}
.next-arr{font-size:32px;color:var(--accent-soft);transition:transform .4s}
.next:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.next:hover .next-arr{transform:translateX(8px)}
.burger{display:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:transparent;cursor:pointer;position:relative}
.burger i{position:absolute;left:13px;right:13px;height:1px;background:var(--fg);transition:transform .3s}
.burger i:first-child{top:18px}.burger i:last-child{top:25px}
.nav.open .burger i:first-child{transform:translateY(3.5px) rotate(45deg)}
.nav.open .burger i:last-child{transform:translateY(-3.5px) rotate(-45deg)}
@media (max-width:960px){
  .burger{display:block}
  .links{display:none;width:100%;flex-direction:column;align-items:flex-start;gap:0;padding-block:8px 12px}
  .links a,.links a:not(.btn){display:flex;width:100%;min-height:48px;align-items:center;font-size:17px;border-top:1px solid var(--line)}
  .nav.open .links{display:flex}
  .links a[aria-current="page"]::after{display:none}
}
