/* SOS Frelon v7 : « Signal de nuit ».
   Encre bleu-nuit, jaune signal, os clair. Unbounded (large, géométrique) pour les titres, Manrope pour le texte.
   Couvertures photo plein cadre sur toutes les pages, titres géants, sections numérotées,
   formulaire en carte flottante qui chevauche la photo puis reste visible pendant la lecture. */
:root{
  --ink:#0b0f17; --ink-2:#141a26; --ink-3:#222b3b; --bone:#eceae3; --paper:#f7f6f2; --white:#fff;
  --sig:#ffd60a; --sig-2:#ffe766; --sig-ink:#0b0f17; --hot:#ff5a36;
  --text:#121722; --muted:#5d6574; --line:#dcd9cf; --line-d:#2b3445;
  --f-head:"Unbounded","Arial Black",system-ui,sans-serif;
  --f-body:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gutter:clamp(16px,4vw,56px);
  --r:6px; --r-l:14px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--f-body);font-size:1.0625rem;line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3{font-family:var(--f-head);font-weight:700;line-height:1.02;letter-spacing:-.03em;margin:0;text-wrap:balance}
h1{font-size:clamp(2.1rem,5vw,4.6rem)}
h2{font-size:clamp(1.55rem,3.2vw,2.75rem)}
h3{font-size:1.05rem;letter-spacing:-.01em;line-height:1.25}
p{margin:0}
a{color:inherit}
img{max-width:100%;display:block}
:focus-visible{outline:3px solid var(--sig);outline-offset:3px}
.wrap{max-width:1360px;margin:0 auto;padding-inline:var(--gutter)}
.wrap.narrow{max-width:860px;padding-block:56px 96px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-9999px;top:8px;background:var(--sig);color:var(--ink);padding:10px 16px;z-index:99;font-weight:800}
.skip:focus{left:16px}
.i{flex:none;vertical-align:-3px}
.kicker{font:700 .74rem/1.2 var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;display:flex;align-items:center;gap:10px}
.kicker:before{content:"";width:22px;height:3px;background:var(--sig);flex:none}
.on-dark .kicker,.sec.dark .kicker{color:#aab3c4}

/* ---------- boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:800 1rem var(--f-body);text-decoration:none;border:0;border-radius:999px;padding:15px 26px;cursor:pointer;transition:transform .15s var(--ease),background .15s,box-shadow .15s;white-space:nowrap}
.btn:active{transform:translateY(1px) scale(.99)}
.btn.yellow{background:var(--sig);color:var(--sig-ink)}
.btn.yellow:hover{background:var(--sig-2);box-shadow:0 10px 30px -8px rgba(255,214,10,.6)}
.btn.green{background:var(--ink);color:#fff}
.btn.green:hover{background:var(--ink-3)}
.btn.outline{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.btn.outline:hover{background:var(--ink);color:#fff}
.btn.small{padding:10px 16px;font-size:.88rem}
.btn.wide{width:100%}
.btn .i{transition:transform .2s var(--ease)}
.btn:hover .i{transform:translateX(3px)}
.link{font-weight:800;color:inherit;text-decoration:none;display:inline-flex;gap:8px;align-items:center;border-bottom:3px solid var(--sig);padding-bottom:2px}
.link:hover{background:var(--sig);color:var(--ink)}

/* ---------- en-tête : posé sur les photos, se fige en encre au défilement ---------- */
.top{position:fixed;inset:0 0 auto;z-index:50;color:#fff;transition:background .25s,box-shadow .25s}
.top:before{content:"";position:absolute;inset:0 0 -30px;background:linear-gradient(rgba(11,15,23,.7),rgba(11,15,23,0));pointer-events:none;transition:opacity .25s}
.top.solid{background:rgba(11,15,23,.94);backdrop-filter:blur(12px) saturate(1.3);box-shadow:0 1px 0 rgba(255,255,255,.06)}
.top.solid:before{opacity:0}
.top .wrap{position:relative;display:flex;align-items:center;gap:28px;min-height:76px}
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font:800 1.02rem/1 var(--f-head);color:#fff}
.logo .mark{background:var(--sig);color:var(--ink);padding:7px 9px 6px;border-radius:4px;letter-spacing:.04em;transform:rotate(-4deg);display:inline-block;box-shadow:3px 3px 0 rgba(0,0,0,.35)}
.logo .word{letter-spacing:.1em}
.nav{display:flex;gap:4px;margin-left:auto}
.nav a{text-decoration:none;font-weight:700;font-size:.95rem;padding:10px 14px;border-radius:999px;color:#e8ebf1}
.nav a:hover,.nav a[aria-current]{background:rgba(255,255,255,.12);color:#fff}
.top .btn{padding:12px 20px;font-size:.92rem}
.menu-btn{display:none;background:rgba(255,255,255,.14);color:#fff;border:0;border-radius:999px;padding:10px 16px;font:800 .9rem var(--f-body);margin-left:auto;cursor:pointer}
@media (max-width:1000px){
  .menu-btn{display:block}
  .top .btn{display:none}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--ink);padding:12px var(--gutter) 24px;gap:2px}
  .nav.open{display:flex}
  .nav a{font:700 1.3rem var(--f-head);padding:14px 0;border-radius:0;border-bottom:1px solid var(--line-d)}
  .nav a:hover,.nav a[aria-current]{background:none;color:var(--sig)}
}

/* ---------- photos ---------- */
.ph,.ph img{width:100%;height:100%}
.ph img{object-fit:cover}

/* ---------- accueil : couverture plein écran ---------- */
.hero{position:relative;min-height:100svh;color:#fff;background:var(--ink);overflow:hidden;display:flex;align-items:flex-end;isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:-1}
.hero-bg img{transform:scale(1.05);animation:zoom 16s var(--ease) forwards}
@keyframes zoom{to{transform:scale(1)}}
.hero-bg:after{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(11,15,23,.94) 0%,rgba(11,15,23,.72) 40%,rgba(11,15,23,.1) 78%),
  linear-gradient(0deg,rgba(11,15,23,.95) 0%,rgba(11,15,23,0) 45%)}
.hero-in{position:relative;width:100%;display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:clamp(24px,5vw,80px);align-items:end;padding-top:130px;padding-bottom:clamp(40px,7vh,80px)}
.hero h1{display:flex;flex-direction:column;gap:20px}
.h1-eyebrow{font:800 .8rem/1.3 var(--f-body);letter-spacing:.18em;text-transform:uppercase;color:var(--sig);display:flex;gap:12px;align-items:center}
.h1-eyebrow:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--sig);box-shadow:0 0 0 6px rgba(255,214,10,.2);animation:pulse 1.8s infinite;flex:none}
@keyframes pulse{50%{box-shadow:0 0 0 11px rgba(255,214,10,0)}}
.h1-big{font-size:clamp(2.6rem,6.4vw,6.2rem);line-height:.95;letter-spacing:-.05em;font-weight:800}
.h1-big em{font-style:normal;color:var(--sig)}
.hero .lead{font-size:clamp(1.05rem,1.4vw,1.25rem);max-width:42ch;color:#d5dae4;margin-top:24px}
.hero .finder{margin-top:30px;max-width:560px}
.hero-stats{display:flex;flex-wrap:wrap;margin:40px 0 0;border-top:1px solid rgba(255,255,255,.18);max-width:660px}
.hero-stats div{padding:18px 32px 0 0}
.hero-stats dd{margin:0;font:800 clamp(1.5rem,2.4vw,2.2rem)/1 var(--f-head);letter-spacing:-.04em;color:#fff}
.hero-stats dt{font-size:.85rem;color:#aab3c4;margin-top:6px}
.hero-stats div{display:flex;flex-direction:column-reverse}
@media (max-width:1060px){.hero{min-height:0}.hero-in{grid-template-columns:1fr;align-items:start;padding-top:112px}}

/* recherche */
.finder .row{display:flex;align-items:center;gap:12px;background:#fff;border-radius:999px;padding:6px 6px 6px 22px;box-shadow:0 20px 50px -20px rgba(0,0,0,.6);position:relative}
.finder .row:focus-within{box-shadow:0 0 0 4px rgba(255,214,10,.6),0 20px 50px -20px rgba(0,0,0,.6)}
.finder svg{color:var(--ink);flex:none}
.finder input{flex:1;border:0;outline:0;font:600 1.08rem var(--f-body);padding:14px 4px;background:transparent;color:var(--text);min-width:0}
.finder .row:after{content:"Rechercher";background:var(--ink);color:#fff;font:800 .92rem var(--f-body);padding:13px 22px;border-radius:999px;pointer-events:none}
@media (max-width:520px){.finder .row:after{display:none}}
.paper-finder .row{box-shadow:inset 0 0 0 2px var(--ink)}
.sugg{position:absolute;left:0;right:0;top:calc(100% + 8px);background:#fff;border-radius:var(--r-l);box-shadow:0 24px 60px -12px rgba(11,15,23,.45);list-style:none;margin:0;padding:6px;z-index:30;color:var(--text);max-height:340px;overflow:auto}
.sugg a{display:flex;justify-content:space-between;gap:12px;padding:11px 14px;text-decoration:none;border-radius:8px}
.sugg a:hover,.sugg a.on{background:var(--sig)}
.sugg span{color:var(--muted);font-variant-numeric:tabular-nums}

/* bandeau défilant de villes */
.ticker{background:var(--sig);color:var(--ink);overflow:hidden}
.ticker-track{display:flex;width:max-content;animation:tick 80s linear infinite}
.ticker:hover .ticker-track,.ticker:focus-within .ticker-track{animation-play-state:paused}
.ticker ul{display:flex;list-style:none;margin:0;padding:0}
.ticker li a{display:flex;align-items:center;gap:18px;padding:17px 0 16px 18px;text-decoration:none;font:700 1rem var(--f-head);letter-spacing:-.01em;white-space:nowrap}
.ticker li a:after{content:"";width:8px;height:8px;background:var(--ink);transform:rotate(45deg)}
.ticker li a:hover{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px}
@keyframes tick{to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
.sec{padding-block:clamp(64px,10vw,140px)}
.sec.alt{background:var(--bone)}
.sec.dark,.on-dark{background:var(--ink);color:#fff}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:clamp(32px,4vw,56px);flex-wrap:wrap}
.sec-head h2,.h-xl{font-size:clamp(2.1rem,5.2vw,4.6rem);letter-spacing:-.05em;max-width:16ch;line-height:.96}
.lead-s{color:var(--muted);font-size:1.1rem;max-width:52ch;margin-top:20px}
.sec.dark .lead-s{color:#aab3c4}
.two{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,96px);align-items:start}
@media (max-width:900px){.two{grid-template-columns:1fr}}

/* mosaïque « où est le nid » */
.mosaic{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:290px 290px;gap:14px}
.mosaic .pcard:first-child{grid-row:span 2}
.mosaic .pcard:nth-child(4){grid-column:span 2}
@media (max-width:900px){.mosaic{grid-template-columns:1fr 1fr;grid-template-rows:none;grid-auto-rows:230px}.mosaic .pcard:first-child{grid-row:auto;grid-column:span 2}}
@media (max-width:520px){.mosaic{grid-template-columns:1fr;grid-auto-rows:210px}.mosaic .pcard{grid-column:auto!important}}
.pcard{position:relative;overflow:hidden;border-radius:var(--r-l);color:#fff;text-decoration:none;display:block;background:var(--ink-2);isolation:isolate}
.pcard .ph{position:absolute;inset:0;z-index:-2}
.pcard .ph img{transition:transform .8s var(--ease)}
.pcard:hover .ph img{transform:scale(1.06)}
.pcard:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(11,15,23,.9),rgba(11,15,23,.05) 62%)}
.pcard .num{position:absolute;top:18px;left:20px;font:800 .78rem var(--f-head);background:var(--sig);color:var(--ink);padding:6px 9px;border-radius:4px}
.pcard .lbl{position:absolute;left:22px;right:22px;bottom:20px;display:flex;justify-content:space-between;align-items:end;gap:12px;font:700 clamp(1.2rem,2vw,1.85rem)/1.05 var(--f-head);letter-spacing:-.035em}
.pcard .lbl small{display:block;font:600 .9rem/1.4 var(--f-body);letter-spacing:0;color:#c4cad6;margin-top:8px;max-width:36ch}
.pcard .lbl .i{width:38px;height:38px;padding:9px;border-radius:50%;background:var(--sig);color:var(--ink);flex:none;transition:transform .3s var(--ease)}
.pcard:hover .lbl .i{transform:rotate(-45deg)}

/* étapes en grands chiffres */
.how{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr)}
.how li{padding:8px clamp(18px,3vw,44px);border-left:1px solid var(--line-d)}
.how li:first-child{border-left:0;padding-left:0}
.how span{display:block;font:800 clamp(4.5rem,9vw,8.5rem)/.85 var(--f-head);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:2px var(--sig);margin-bottom:28px}
.how b{display:block;font:700 1.35rem/1.15 var(--f-head);letter-spacing:-.02em;margin-bottom:12px}
.how p{color:#aab3c4}
@media (max-width:820px){.how{grid-template-columns:1fr;gap:36px}.how li{border-left:0;padding-left:0}.how span{font-size:4.5rem;margin-bottom:12px}}
.how.vertical{grid-template-columns:1fr;gap:28px}
.how.vertical li{border:0;padding:0;display:grid;grid-template-columns:96px 1fr;gap:4px 20px}
.how.vertical span{font-size:4rem;-webkit-text-stroke:2px var(--ink);grid-row:span 2;margin:0}
.how.vertical b{margin:4px 0 0}
.how.vertical p{color:var(--muted)}

/* atlas */
.atlas{display:grid;grid-template-columns:420px 1fr;gap:clamp(32px,5vw,80px);align-items:start}
@media (max-width:980px){.atlas{grid-template-columns:1fr}}
.atlas .finder{margin:30px 0 26px}
.mapcard{position:relative}
svg.smap{width:100%;height:auto;display:block;max-height:760px}
.smap path{fill:#1d2534;stroke:var(--ink);stroke-width:1.1;transition:fill .15s}
.smap a.has path{fill:#3a4457}
.smap a.nb path{fill:#6b7385}
.smap a.cur path{fill:var(--sig)}
.smap a:hover path,.smap a:focus path{fill:var(--sig)}
.maincol .smap path{fill:#dedbd1;stroke:var(--paper)}
.maincol .smap a.has path{fill:#c3bfb2}
.maincol .smap a.nb path{fill:#8c8778}
.maincol .smap a.cur path,.maincol .smap a:hover path{fill:var(--sig)}
.map-tip{position:absolute;left:0;top:0;font:700 .95rem var(--f-body);background:var(--sig);color:var(--ink);padding:8px 14px;border-radius:999px}
.mapcard.small .map-tip{position:static;display:inline-block;margin-top:12px}
.legend{display:flex;gap:10px;align-items:center;color:#aab3c4;font-size:.88rem;margin-top:12px;justify-content:flex-end}
.legend i{width:14px;height:14px;background:#3a4457;border-radius:3px}
.regs{border-top:1px solid var(--line-d)}
.reg{border-bottom:1px solid var(--line-d)}
.reg summary{display:flex;justify-content:space-between;align-items:center;padding:15px 0;cursor:pointer;list-style:none;font:700 1.02rem var(--f-head);letter-spacing:-.015em}
.reg summary::-webkit-details-marker{display:none}
.reg summary:hover{color:var(--sig)}
.reg summary span{font:600 .82rem var(--f-body);color:#8b94a6}
.reg ul{list-style:none;margin:0 0 16px;padding:0;columns:2;column-gap:20px}
.reg li a{display:flex;justify-content:space-between;padding:6px 0;text-decoration:none;color:#d5dae4;font-size:.95rem}
.reg li a:hover{color:var(--sig)}
.reg li span{color:#6f788a;font-variant-numeric:tabular-nums}

/* tarifs : trois billets */
.prices{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0}
@media (max-width:760px){.prices{grid-template-columns:1fr}}
.prices div{background:var(--white);border-radius:var(--r-l);padding:26px 24px 24px;display:flex;flex-direction:column;justify-content:space-between;gap:40px;min-height:230px;position:relative;box-shadow:0 1px 0 var(--line)}
.prices div:after{content:"";position:absolute;left:18px;right:18px;bottom:76px;border-top:2px dashed var(--line)}
.prices div:nth-child(2){background:var(--sig)}
.prices div:nth-child(2):after{border-color:rgba(11,15,23,.25)}
.prices div:nth-child(3){background:var(--ink);color:#fff}
.prices div:nth-child(3):after{border-color:var(--line-d)}
.prices dt{font:700 1.02rem/1.25 var(--f-head);letter-spacing:-.015em}
.prices dt span{display:block;font:500 .9rem/1.4 var(--f-body);color:var(--muted);margin-top:8px;letter-spacing:0}
.prices div:nth-child(2) dt span{color:#4a400b}
.prices div:nth-child(3) dt span{color:#aab3c4}
.prices dd{margin:0;font:800 clamp(1.6rem,2.5vw,2.2rem)/1 var(--f-head);letter-spacing:-.045em;white-space:nowrap}
@media (max-width:1280px) and (min-width:761px){.maincol .prices{grid-template-columns:1fr}.maincol .prices div{min-height:0;flex-direction:row;align-items:center;gap:20px}.maincol .prices div:after{display:none}}

/* réflexes : photo plein cadre partagée */
.reflex{display:grid;grid-template-columns:1fr 1fr;min-height:680px;background:var(--ink);color:#fff}
.reflex>.ph{min-height:360px}
.reflex-text{padding:clamp(48px,7vw,110px) var(--gutter);display:flex;flex-direction:column;justify-content:center;max-width:720px}
.reflex-text h2{font-size:clamp(2rem,4.4vw,3.9rem);letter-spacing:-.05em;margin-bottom:36px;line-height:.96}
.reflex ol{list-style:none;margin:0;padding:0;counter-reset:r}
.reflex li{counter-increment:r;display:grid;grid-template-columns:56px 1fr;gap:16px;padding:20px 0;border-top:1px solid var(--line-d)}
.reflex li:before{content:counter(r,decimal-leading-zero);font:800 1rem var(--f-head);color:var(--sig)}
.reflex li b{display:block;font:700 1.1rem var(--f-head);letter-spacing:-.015em;margin-bottom:4px}
.reflex li p{color:#aab3c4}
@media (max-width:900px){.reflex{grid-template-columns:1fr}}

/* pastilles */
.pills{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.pills a,.pills .na{display:inline-flex;gap:10px;align-items:baseline;padding:10px 16px;border-radius:999px;background:var(--white);text-decoration:none;font-weight:700;font-size:.95rem;box-shadow:inset 0 0 0 1px var(--line);transition:background .15s,box-shadow .15s}
.pills a:hover{background:var(--ink);color:#fff;box-shadow:none}
.pills a:hover span{color:var(--sig)}
.pills span span,.pills a span{font-weight:600;font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}
.pills .na{opacity:.6}
.pills.alt a{background:transparent;box-shadow:inset 0 0 0 2px var(--ink)}
.pills.col{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.pills.col a{justify-content:space-between;border-radius:8px}
.big-cities{columns:4 210px;column-gap:36px;list-style:none;margin:0;padding:0}
.big-cities li{break-inside:avoid;border-top:1px solid var(--line-d)}
.big-cities a{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0;text-decoration:none;font:700 1.05rem var(--f-head);letter-spacing:-.025em}
.big-cities a span{font:600 .8rem var(--f-body);color:#6f788a}
.big-cities a:hover{color:var(--sig)}

/* guides */
.gcards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gcards.two{grid-template-columns:repeat(2,1fr)}
@media (max-width:1100px){.gcards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.gcards,.gcards.two{grid-template-columns:1fr}}
.gcard{display:flex;flex-direction:column;gap:12px;padding:26px 24px;border-radius:var(--r-l);background:var(--white);text-decoration:none;min-height:210px;position:relative;transition:transform .25s var(--ease),background .2s;box-shadow:0 1px 0 var(--line)}
.gcard:hover{background:var(--ink);color:#fff;transform:translateY(-4px)}
.gcard:hover span{color:#aab3c4}
.gcard b{font:700 1.15rem/1.15 var(--f-head);letter-spacing:-.025em;padding-right:40px}
.gcard span{color:var(--muted);font-size:.95rem}
.gcard:after{content:"→";position:absolute;top:22px;right:22px;width:32px;height:32px;border-radius:50%;background:var(--sig);color:var(--ink);display:grid;place-items:center;font-weight:800}

/* FAQ */
.faq details{border-top:2px solid var(--ink)}
.faq details:last-child{border-bottom:2px solid var(--ink)}
.sec.dark .faq details{border-color:var(--line-d)}
.faq summary{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px 0;cursor:pointer;list-style:none;font:700 1.08rem/1.3 var(--f-head);letter-spacing:-.02em}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--sig);color:var(--ink);font:800 1.2rem var(--f-body);transition:transform .25s var(--ease)}
.faq details[open] summary:after{transform:rotate(45deg)}
.faq details p{padding:0 54px 24px 0;color:var(--muted)}
.sec.dark .faq details p{color:#aab3c4}

/* espace pros (accueil) */
.procta{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(32px,6vw,96px);align-items:end}
.procta h2{font-size:clamp(2.2rem,5.4vw,5rem);letter-spacing:-.055em;line-height:.95}
.procta h2 em{font-style:normal;color:var(--sig)}
.procta p{color:#aab3c4;font-size:1.1rem;margin-bottom:28px}
.procta ul{list-style:none;margin:0 0 30px;padding:0}
.procta li{padding:13px 0;border-top:1px solid var(--line-d);display:flex;gap:12px;align-items:center;font-weight:700}
.procta li .i{color:var(--sig)}
@media (max-width:900px){.procta{grid-template-columns:1fr}}

/* ---------- formulaire ---------- */
.formcard{background:var(--white);border-radius:var(--r-l);overflow:hidden;color:var(--text);box-shadow:0 40px 80px -30px rgba(11,15,23,.55),0 0 0 1px rgba(11,15,23,.06)}
.fc-head{background:var(--ink);color:#fff;padding:24px 26px 26px;position:relative}
.fc-head:after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:repeating-linear-gradient(-45deg,var(--sig) 0 12px,var(--ink) 12px 24px)}
.fc-kicker{display:flex;gap:8px;align-items:center;font-size:.78rem;font-weight:800;color:var(--sig);letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px}
.formcard h2{font-size:1.5rem;letter-spacing:-.035em}
.fc-sub{color:#aab3c4;font-size:.94rem;margin-top:8px}
.progress{display:flex;align-items:center;gap:12px;padding:18px 26px 0}
.stepcount{font-size:.8rem;font-weight:800;color:var(--muted);white-space:nowrap}
.bar{flex:1;height:6px;border-radius:9px;background:var(--bone);overflow:hidden}
.bar i{display:block;height:100%;width:33%;background:var(--ink);border-radius:9px;transition:width .35s var(--ease)}
.wizard-form fieldset,.simple-form{border:0;margin:0;padding:16px 26px 26px}
.simple-form{padding-top:22px}
.wizard-form legend{font:700 1.15rem var(--f-head);letter-spacing:-.025em;padding:0;margin-bottom:14px;float:left;width:100%}
.js .wizard-form fieldset:not(.cur){display:none}
.field{margin-bottom:14px;clear:both}
.field label,.flabel{display:block;font-weight:800;font-size:.84rem;margin-bottom:6px}
.formcard input:not([type=radio]):not([type=checkbox]),.formcard select{width:100%;font:600 1rem var(--f-body);padding:13px 14px;border-radius:10px;border:2px solid var(--line);background:var(--paper);color:var(--text)}
.formcard input:focus,.formcard select:focus{outline:0;border-color:var(--ink);background:#fff}
.formcard input.photo{padding:10px;font-size:.9rem}
.grid2{display:grid;grid-template-columns:120px 1fr;gap:10px}
.grid2>*{min-width:0}
.simple-form .grid2,.wizard-form fieldset:last-of-type .grid2{grid-template-columns:1fr 1fr}
@media (max-width:420px){.grid2,.simple-form .grid2,.wizard-form fieldset:last-of-type .grid2{grid-template-columns:1fr}}
.choices{display:flex;flex-wrap:wrap;gap:6px}
.choice{position:relative}
.choice input{position:absolute;opacity:0}
.choice span{display:block;padding:9px 13px;border-radius:999px;background:var(--paper);box-shadow:inset 0 0 0 2px var(--line);font-weight:700;font-size:.88rem;cursor:pointer;transition:background .12s}
.choice span:hover{box-shadow:inset 0 0 0 2px var(--ink)}
.choice input:checked+span{background:var(--ink);color:#fff;box-shadow:none}
.choice input:focus-visible+span{outline:3px solid var(--sig);outline-offset:2px}
.choices.big{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}
.choices.big .choice span{padding:18px 14px;border-radius:10px;text-align:center;font:700 1rem var(--f-head);letter-spacing:-.025em}
.consent{display:flex;gap:10px;font-size:.82rem;color:var(--muted);margin:6px 0 14px;align-items:flex-start}
.consent input{margin-top:3px;accent-color:var(--ink);flex:none;width:18px;height:18px}
.nav-steps{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-top:6px}
.nav-steps .btn{flex:1}
.btn-back{background:none;border:0;font:700 .92rem var(--f-body);color:var(--muted);cursor:pointer;padding:12px 6px}
.btn-back:hover{color:var(--ink)}
.err{color:var(--hot);font-weight:700;font-size:.9rem;margin-bottom:10px}
.success{display:none;padding:26px}
.success.on{display:block}
.success h3{font-size:1.6rem;margin-bottom:10px}
.success p{margin-bottom:10px}
.sent{list-style:none;margin:0 0 12px;padding:0}
.sent li{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-weight:700}
.sent span{color:var(--muted);font-weight:500}
.quiet{color:var(--muted);font-size:.9rem}

/* ---------- pages intérieures : couverture photo ---------- */
.cover{position:relative;color:#fff;background:var(--ink);min-height:min(80svh,780px);display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.cover>.ph{position:absolute;inset:0;z-index:-2}
.cover:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(11,15,23,.97) 0%,rgba(11,15,23,.55) 48%,rgba(11,15,23,.3) 100%),linear-gradient(90deg,rgba(11,15,23,.65),rgba(11,15,23,0) 70%)}
.cover-in{width:100%;padding-top:120px;padding-bottom:clamp(130px,13vw,190px)}
.cover-text{max-width:calc(100% - 480px)}
@media (max-width:1100px){.cover-text{max-width:none}.cover-in{padding-bottom:56px}.cover{min-height:0}}
.cover h1{font-size:clamp(2.1rem,5vw,4.8rem);letter-spacing:-.05em;line-height:.98;margin:24px 0}
.cover .lead{font-size:clamp(1.02rem,1.3vw,1.2rem);color:#d5dae4;max-width:56ch}
.cover.slim{min-height:0}
.cover.slim .cover-in{padding-bottom:64px}
.cover.slim .cover-text{max-width:none}
.crumbs{display:flex;flex-wrap:wrap;gap:6px 10px;font-size:.86rem;font-weight:700;color:#aab3c4}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--sig)}
.crumbs i{font-style:normal;opacity:.5}
.ticks{list-style:none;padding:0;margin:28px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.ticks li{display:inline-flex;gap:8px;align-items:center;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.1);backdrop-filter:blur(6px);font-weight:700;font-size:.88rem;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.ticks .i{color:var(--sig)}

/* deux colonnes : contenu + formulaire qui chevauche la photo */
.shell{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:clamp(32px,5vw,80px);align-items:start;padding-bottom:clamp(56px,8vw,120px)}
.formcol{grid-column:2;grid-row:1;position:sticky;top:96px;margin-top:clamp(-190px,-12vw,-120px);z-index:5}
.maincol{grid-column:1;grid-row:1;min-width:0;counter-reset:blk;padding-top:clamp(40px,5vw,72px)}
@media (max-width:1100px){
  .shell{grid-template-columns:1fr}
  .formcol{grid-column:1;grid-row:1;position:static;margin-top:-28px}
  .maincol{grid-row:2;padding-top:16px}
}

/* blocs numérotés, ouverts */
.blk{counter-increment:blk;padding-block:clamp(44px,5vw,68px);border-top:2px solid var(--ink)}
.maincol>.blk:first-child,.maincol>.kpis+.blk{border-top:0}
.blk>.kicker:before{content:counter(blk,decimal-leading-zero);width:auto;height:auto;background:var(--ink);color:var(--sig);padding:5px 8px;border-radius:3px;font:800 .72rem var(--f-head);letter-spacing:0}
.blk>h2{margin-bottom:30px;max-width:22ch}
.note{font-size:.88rem;color:var(--muted);margin-top:18px}
.note a,.prose a,.callout a{color:inherit;text-decoration-color:var(--sig);text-decoration-thickness:3px;text-underline-offset:3px;font-weight:700}
.empty{padding:22px;border-radius:var(--r-l);background:var(--bone);font-weight:600}
.split2{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
@media (max-width:700px){.split2{grid-template-columns:1fr}}

/* chiffres clés */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);margin:0 0 8px;background:var(--ink);color:#fff;border-radius:var(--r-l);overflow:hidden}
@media (max-width:760px){.kpis{grid-template-columns:1fr 1fr}}
.kpis div{padding:24px 20px;border-left:1px solid var(--line-d);display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:8px}
.kpis div:first-child{border-left:0;background:var(--sig);color:var(--ink)}
.kpis div:first-child dt{color:#4a400b}
.kpis dd{margin:0;font:800 clamp(1.5rem,2.4vw,2.2rem)/1 var(--f-head);letter-spacing:-.045em;white-space:nowrap}
.kpis dt{font-size:.82rem;color:#aab3c4;font-weight:600;line-height:1.35}
@media (max-width:760px){.kpis div:nth-child(3){border-left:0}.kpis div:nth-child(n+3){border-top:1px solid var(--line-d)}}

/* professionnels */
.pros{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:760px){.pros{grid-template-columns:1fr}}
.pro{display:grid;grid-template-columns:52px 1fr;gap:4px 16px;align-items:start;padding:18px;border-radius:var(--r-l);background:var(--white);box-shadow:0 1px 0 var(--line);transition:box-shadow .2s,transform .2s var(--ease)}
.pro:hover{transform:translateY(-2px);box-shadow:0 18px 40px -20px rgba(11,15,23,.35)}
.pro>div{min-width:0}
.pro .btn{grid-column:2;justify-self:start;margin-top:8px}
.avatar{width:52px;height:52px;border-radius:12px;background:var(--ink);color:var(--sig);display:grid;place-items:center;font:800 1rem var(--f-head);letter-spacing:-.02em;grid-row:span 2}
.avatar.big{width:88px;height:88px;font-size:1.7rem;border-radius:18px}
.pro-name{display:block;font:700 1rem/1.2 var(--f-head);letter-spacing:-.025em;text-decoration:none;overflow-wrap:anywhere}
a.pro-name:hover{text-decoration:underline;text-decoration-color:var(--sig);text-decoration-thickness:3px}
.pro-where{display:flex;gap:6px;align-items:center;font-size:.86rem;color:var(--muted);margin-top:5px}
.pro.slot{grid-column:1/-1;background:var(--sig);box-shadow:none;grid-template-columns:auto 1fr auto;align-items:center}
.pro.slot b{font:700 1rem var(--f-head);letter-spacing:-.02em}
.pro.slot .btn{grid-column:auto;margin:0;background:var(--ink);color:#fff}
.pro.slot .pro-where{color:#4a400b}
@media (max-width:600px){.pro.slot{grid-template-columns:1fr}.pro.slot .btn{justify-self:stretch}}
.tag-ad{font:800 .7rem var(--f-body);letter-spacing:.12em;text-transform:uppercase;background:var(--ink);color:var(--sig);padding:6px 9px;border-radius:4px;justify-self:start}
.claim{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:22px;padding:30px;border-radius:var(--r-l);background:var(--ink);color:#fff;flex-wrap:wrap;position:relative;overflow:hidden}
.claim:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:repeating-linear-gradient(-45deg,var(--sig) 0 10px,var(--ink) 10px 20px)}
.claim>div{flex:1 1 320px}
.claim h3{font-size:1.3rem;margin-bottom:8px}
.claim p{color:#aab3c4;font-size:.95rem}
.claim a:not(.btn){color:var(--sig)}
.procard{display:grid;grid-template-columns:88px 1fr;gap:28px;align-items:start;padding:28px;border-radius:var(--r-l);background:var(--white);box-shadow:0 1px 0 var(--line)}
.procard dl{margin:0;display:grid;grid-template-columns:170px 1fr}
.procard dt,.procard dd{padding:12px 0;border-top:1px solid var(--line);margin:0}
.procard dt:first-of-type,.procard dd:first-of-type{border-top:0}
.procard dt{font-weight:800;font-size:.86rem;color:var(--muted)}
.procard dd{font-weight:700}
.procard dd.todo{color:var(--muted);font-weight:600}
@media (max-width:560px){.procard{grid-template-columns:1fr}.procard dl{grid-template-columns:1fr}.procard dd{border-top:0;padding-top:0}}
.tags{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.tags li{padding:7px 12px;border-radius:4px;background:var(--bone);font-size:.84rem;font-weight:700}

/* environnement local : photo + volets */
.envgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.envph{position:relative;border-radius:var(--r-l);overflow:hidden;min-height:320px;grid-row:span 3}
.envph .ph{position:absolute;inset:0}
@media (max-width:760px){.envgrid{grid-template-columns:1fr}.envph{min-height:220px;grid-row:auto}}
.tile{padding:22px;border-radius:var(--r-l);background:var(--white);box-shadow:0 1px 0 var(--line)}
.tile .ico{width:38px;height:38px;border-radius:50%;background:var(--sig);display:grid;place-items:center;margin-bottom:14px}
.tile h3{margin-bottom:6px}
.tile p{font-size:.95rem;color:var(--muted)}
.callout{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;margin-top:14px;padding:22px 26px;border-radius:var(--r-l);background:var(--ink);color:#fff}
.callout b{font:800 clamp(2rem,3.4vw,3rem)/1 var(--f-head);letter-spacing:-.05em;color:var(--sig)}
.callout span{color:#d5dae4}

/* guides (articles) */
.toc{padding:24px 26px;border-radius:var(--r-l);background:var(--ink);color:#fff;margin-bottom:48px}
.toc b{font:800 .76rem var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:var(--sig)}
.toc ol{margin:14px 0 0;padding-left:22px;columns:2;column-gap:32px}
@media (max-width:700px){.toc ol{columns:1}}
.toc li{margin-bottom:8px}
.toc li::marker{color:var(--sig);font-weight:800}
.toc a{text-decoration:none;font-weight:700;color:#d5dae4}
.toc a:hover{color:var(--sig)}
.prose{font-size:1.1rem;line-height:1.72;max-width:70ch}
.blk .prose{margin-bottom:20px}
.prose>*+*{margin-top:1.1em}
.prose h2{font-size:clamp(1.5rem,2.6vw,2.2rem);margin-top:2em;padding-top:1em;border-top:2px solid var(--ink)}
.prose h2:first-child{margin-top:0;border-top:0;padding-top:0}
.prose h3{margin-top:1.6em}
.prose ul,.prose ol{padding-left:1.3em}
.prose li+li{margin-top:.45em}
.prose li::marker{color:var(--ink);font-weight:800}
.prose strong{background:linear-gradient(transparent 62%,rgba(255,214,10,.6) 0)}
.prose table{border-collapse:collapse;width:100%;font-size:.95rem}
.prose th,.prose td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}
.prose th{background:var(--ink);color:#fff}
.inline-list a{font-weight:700}

/* espace pros : formules */
.plans{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:700px){.plans{grid-template-columns:1fr}}
.plan{padding:28px;border-radius:var(--r-l);background:var(--white);box-shadow:0 1px 0 var(--line)}
.plan.hl{background:var(--ink);color:#fff}
.plan.hl .kicker{color:var(--sig)}
.plan h3{font-size:1.4rem}
.plan .price{font:800 2.6rem/1 var(--f-head);letter-spacing:-.05em;margin:18px 0}
.plan ul{margin:0;padding-left:1.2em}
.plan li+li{margin-top:6px}

/* publicité de maquette */
.ad{border:2px dashed #b9b5a8;border-radius:var(--r-l);padding:28px;text-align:center;color:var(--muted);margin-block:28px;background:repeating-linear-gradient(-45deg,transparent 0 14px,rgba(0,0,0,.025) 14px 28px)}
.ad b{display:block;font:800 .76rem var(--f-body);letter-spacing:.16em;text-transform:uppercase;margin-bottom:6px;color:var(--text)}
.ad span{font-size:.88rem}
.ad-wrap{margin-top:28px}

/* ---------- avant le pied : grand appel photo ---------- */
.prefoot{position:relative;color:#fff;background:var(--ink);overflow:hidden;isolation:isolate}
.prefoot>.ph{position:absolute;inset:0;z-index:-2}
.prefoot:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(11,15,23,.94) 25%,rgba(11,15,23,.35))}
.prefoot .wrap{padding-block:clamp(80px,12vw,170px);display:flex;justify-content:space-between;align-items:end;gap:32px;flex-wrap:wrap}
.prefoot h2{font-size:clamp(2.6rem,7vw,6.6rem);letter-spacing:-.06em;line-height:.92}
.prefoot h2 em{font-style:normal;color:var(--sig)}
.prefoot p{color:#d5dae4;font-size:1.15rem;margin-top:22px;max-width:40ch}

/* ---------- pied ---------- */
footer{background:var(--ink);color:#c4cad6;padding-top:clamp(56px,7vw,96px);overflow:hidden}
footer .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr 1fr;gap:32px}
@media (max-width:980px){footer .cols{grid-template-columns:1fr 1fr}}
.foot-about p{margin-top:18px;max-width:34ch;font-size:.95rem;color:#8b94a6}
footer h2{font:800 .74rem var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:var(--sig);margin-bottom:16px}
footer h2.mt{margin-top:28px}
footer h2 a{text-decoration:none}
footer ul{list-style:none;margin:0;padding:0}
footer li{margin-bottom:8px;font-size:.94rem}
footer a{text-decoration:none}
footer a:hover{color:var(--sig)}
.giant{font:800 clamp(2.4rem,10.4vw,10.6rem)/.78 var(--f-head);letter-spacing:-.065em;color:transparent;-webkit-text-stroke:1.5px #2c364a;margin:clamp(56px,7vw,96px) 0 0;white-space:nowrap;user-select:none;transform:translateY(.1em)}
.giant span{color:var(--sig);-webkit-text-stroke:0}
footer .legal{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:22px 0;border-top:1px solid var(--line-d);font-size:.84rem;color:#8b94a6;position:relative;z-index:1;background:var(--ink)}

/* bouton collant (téléphone) */
.sticky{position:fixed;left:16px;right:16px;bottom:14px;z-index:45;display:none;text-align:center;background:var(--sig);color:var(--ink);font:800 1.05rem var(--f-body);padding:16px;border-radius:999px;text-decoration:none;box-shadow:0 14px 34px -8px rgba(11,15,23,.55)}
@media (max-width:820px){.sticky{display:block}footer{padding-bottom:84px}}

/* apparition au défilement */
.js .rv{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{animation:none!important;transition:none!important}
  .js .rv{opacity:1;transform:none}
}
.grid2{clear:both}
.atlas .h-xl{font-size:clamp(2rem,3.3vw,3.1rem)}
figure{margin:0}
@media (min-width:761px){.maincol .prices{grid-template-columns:1fr}.maincol .prices div{min-height:0;flex-direction:row;align-items:center;gap:24px;padding:22px 24px}.maincol .prices div:after{display:none}}
.pro-acts{grid-column:2;display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;align-items:center}
.pro-acts .btn{margin:0}
.telnum{font-variant-numeric:tabular-nums;letter-spacing:.02em}
.telnone{font-size:.84rem;color:var(--muted);line-height:1.4;flex-basis:100%}
.telnone a{color:var(--ink);font-weight:800;text-decoration-color:var(--sig);text-decoration-thickness:3px}
.lead-pro{margin-top:22px;max-width:62ch}
.claim-acts{display:flex;flex-wrap:wrap;gap:8px}
.plan .btn.wide{margin-top:18px}
.claim .short{color:var(--sig);white-space:nowrap}
.success .pay{margin:16px 0 4px}
.success .pay .btn{margin:6px 0 8px}
