/* Polices hébergées localement (aucun appel à Google) — licence SIL Open Font License */
@font-face{font-family:'Inter';font-style:normal;font-weight:200 700;font-display:swap;src:url(../fonts/inter-var-latin.woff2) format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/manrope-700-latin.woff2) format('woff2')}
/* Layout : vide noir, colonnes asymétriques en zigzag, une constellation de triangles qui change de forme au fil du scroll */
:root{
  --void:#000000;
  --bone:#ffffff;
  --ash:#9a9a9a;
  --silver:#bdbdbd;
  --dim:#2c2c2c;
  --line:#1a1a1a;
  --iris:#8052ff;
  --iris-soft:rgba(128,82,255,.18);
  --saffron:#ffb829;
  --verdant:#15846e;
  --mint:#2fd3b0;
  --font:'Inter',ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --max:1280px;
  color-scheme:dark;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--void);-webkit-text-size-adjust:100%}
body{background:var(--void);color:var(--bone);font-family:var(--font);font-feature-settings:"ss01","cv11";font-weight:200;font-size:18px;line-height:1.5;overflow-x:clip;-webkit-font-smoothing:antialiased}
::selection{background:var(--iris);color:var(--bone)}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--saffron);outline-offset:4px;border-radius:6px}
h1,h2,h3{font-weight:400;text-wrap:balance}

#field{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at 50% 120%,rgba(128,82,255,.10),transparent 60%)}
main,footer{position:relative;z-index:2}

.wrap{max-width:var(--max);margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
@media (min-width:760px){.wrap{padding-left:max(36px,env(safe-area-inset-left,0px));padding-right:max(36px,env(safe-area-inset-right,0px))}}

.label{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;letter-spacing:.025em;text-transform:uppercase;color:var(--saffron)}
.label::before{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid currentColor}
.display{font-size:clamp(52px,9.2vw,113px);line-height:.94;letter-spacing:-.045em}
.h-lg{font-size:clamp(42px,6.4vw,78px);line-height:1;letter-spacing:-.04em}
.h-md{font-size:clamp(30px,3.6vw,48px);line-height:1.08;letter-spacing:-.035em}
.body{font-size:18px;font-weight:200;max-width:480px}
.muted{color:var(--silver)}
.amber{color:var(--saffron)}

/* ---------- Boutons ---------- */
.btn{position:relative;display:inline-flex;white-space:nowrap;align-items:center;gap:12px;background:var(--iris);color:var(--bone);border-radius:24px;padding:15px 22px;font-size:14px;font-weight:600;letter-spacing:.025em;text-transform:uppercase;line-height:1;overflow:hidden;isolation:isolate;transition:box-shadow .5s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(140px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.38),transparent 60%);opacity:0;transition:opacity .4s}
.btn:hover::before{opacity:1}
.btn:hover{box-shadow:0 0 0 6px var(--iris-soft),0 14px 50px rgba(128,82,255,.5)}
.btn .arr{transition:transform .5s var(--ease)}
.btn:hover .arr{transform:translateX(4px) rotate(-45deg)}
/* Texte qui défile au survol : la copie est écartée de 1em pour que ses accents (É) ne dépassent jamais dans la zone visible */
.roll{display:inline-block;height:1.4em;overflow:hidden;line-height:1.4;margin-block:-.2em}
.roll>span{display:block;transition:transform .6s var(--ease)}
.roll>span::after{content:attr(data-t);display:block;margin-top:1em}
a:hover .roll>span,button:hover .roll>span{transform:translateY(-2.4em)}
.ghost{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;letter-spacing:.025em;text-transform:uppercase;color:var(--ash);position:relative;padding:8px 0;transition:color .3s}
.ghost::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .6s var(--ease)}
.ghost:hover{color:var(--bone)}
.ghost:hover::after{transform:scaleX(1);transform-origin:left}
.magnetic{transition:transform .6s var(--ease)}

/* ---------- Navigation ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;padding-top:env(safe-area-inset-top,0px);transition:transform .6s var(--ease),background .4s}
.nav.scrolled{background:linear-gradient(var(--void),rgba(0,0,0,.6) 70%,transparent)}
.nav.hide{transform:translateY(-110%)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:84px;gap:24px}
.logo{display:flex;align-items:center;gap:10px;font-family:'Manrope',var(--font);font-size:21px;font-weight:700;letter-spacing:-.04em}
.logo svg{overflow:visible;transition:transform .8s var(--ease)}
.logo .lx{opacity:.3}
.logo .ln{opacity:.6;stroke-dasharray:130;stroke-dashoffset:130;animation:logo-draw 1.6s var(--ease) .25s forwards}
.logo circle{transform-box:fill-box;transform-origin:center;transform:scale(0);animation:logo-pop .7s var(--ease) forwards;animation-delay:calc(.15s + var(--i) * .08s);transition:filter .4s}
.logo:hover svg{transform:scale(1.1) rotate(-8deg)}
.logo:hover circle{filter:drop-shadow(0 0 3px currentColor)}
.logo:hover .core{filter:drop-shadow(0 0 6px #ffb829)}
@keyframes logo-draw{to{stroke-dashoffset:0}}
@keyframes logo-pop{to{transform:scale(1)}}
.nav-links{display:flex;gap:34px}
.nav-links a{white-space:nowrap;font-size:14px;font-weight:600;letter-spacing:.025em;text-transform:uppercase;color:var(--ash);transition:color .3s}
.nav-links a:hover,.nav-links a.active{color:var(--bone)}
.nav .btn{padding:13px 18px}
@media (max-width:1100px){.nav-links{display:none}}
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:60;background:linear-gradient(90deg,var(--iris),var(--saffron));transform-origin:left;transform:scaleX(0)}

/* ---------- Curseur ---------- */
.cursor{position:fixed;left:0;top:0;z-index:100;width:34px;height:34px;margin:-17px 0 0 -17px;border:1px solid rgba(255,255,255,.55);border-radius:50%;pointer-events:none;mix-blend-mode:difference;transition:width .45s var(--ease),height .45s var(--ease),margin .45s var(--ease),background .3s,border-color .3s,opacity .3s;opacity:0}
.cursor.on{opacity:1}
.cursor.big{width:84px;height:84px;margin:-42px 0 0 -42px;background:var(--bone);border-color:transparent}
.cursor-dot{position:fixed;left:0;top:0;z-index:101;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:var(--saffron);pointer-events:none;opacity:0}
.cursor-dot.on{opacity:1}
@media (hover:none),(pointer:coarse){.cursor,.cursor-dot{display:none}}

/* ---------- Animations d'apparition ---------- */
.rv{opacity:0;transform:translateY(40px);transition:opacity 1.1s var(--ease),transform 1.3s var(--ease);transition-delay:var(--d,0s)}
.rv.in{opacity:1;transform:none}
.sw .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.sw .w>span{display:inline-block;transform:translateY(108%) rotate(5deg);transform-origin:left bottom;transition:transform 1.2s var(--ease);transition-delay:var(--d,0s)}
.sw.in .w>span{transform:none}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;padding-block:130px 90px}
.hero-inner{max-width:760px}
.hero h1{margin:26px 0 30px}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.06em}
.hero h1 .ln>span{display:inline-block;transform:translateY(115%);transition:transform 1.5s var(--ease);transition-delay:var(--d)}
.loaded .hero h1 .ln>span{transform:none}
.hero h1 em{font-style:normal;color:var(--saffron)}
.hero .fade{opacity:0;transform:translateY(24px);transition:opacity 1.2s var(--ease),transform 1.2s var(--ease);transition-delay:var(--d)}
.loaded .hero .fade{opacity:1;transform:none}
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:30px;margin-top:36px}
.hero-tags{position:absolute;inset:0;pointer-events:none}
.tag{position:absolute;display:flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--silver);white-space:nowrap;animation:bob 6s ease-in-out infinite;animation-delay:var(--b)}
.tag i{width:7px;height:7px;border-radius:50%;background:var(--c);box-shadow:0 0 14px var(--c)}
.tag b{font-weight:600;color:var(--bone)}
@keyframes bob{50%{transform:translateY(-14px)}}
@media (max-width:1000px){.hero-tags{display:none}}
.scroll-cue{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ash)}
.scroll-cue span{width:1px;height:46px;background:linear-gradient(var(--ash),transparent);position:relative;overflow:hidden}
.scroll-cue span::after{content:"";position:absolute;left:0;top:-50%;width:1px;height:50%;background:var(--bone);animation:drip 2s var(--ease) infinite}
@keyframes drip{to{top:110%}}

/* ---------- Marquee ---------- */
.marquee{padding-block:50px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.mq-row{transition:transform .2s linear}
.mq-track{display:flex;width:max-content;animation:mq 46s linear infinite}
.mq-row.rev .mq-track{animation-direction:reverse;animation-duration:54s}
.marquee:hover .mq-track{animation-play-state:paused}
.mq-item{display:flex;align-items:center;gap:40px;padding-right:40px;font-size:clamp(28px,4vw,48px);font-weight:400;letter-spacing:-.035em;line-height:1.3;color:var(--dim);transition:color .35s,transform .5s var(--ease);cursor:default}
.mq-item:hover{color:var(--bone)}
.mq-row.rev .mq-item{color:transparent;-webkit-text-stroke:1px #3a3a3a}
.mq-row.rev .mq-item:hover{-webkit-text-stroke-color:var(--saffron)}
.mq-item svg{flex:none;opacity:.8}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- Manifeste (scrub) ---------- */
.manifesto{padding-block:22vh}
.scrub{font-size:clamp(30px,4.4vw,58px);font-weight:400;line-height:1.12;letter-spacing:-.035em;max-width:1120px}
.scrub .w{opacity:.13;transition:opacity .4s,color .4s}
.scrub .w.on{opacity:1}
.scrub .hl .w.on{color:var(--saffron)}

/* ---------- Agents vocaux ---------- */
.section{padding-block:clamp(90px,14vh,150px)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,110px);align-items:center}
.split>*{min-width:0}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.stack{display:flex;flex-direction:column;gap:26px}
.call-head{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ash)}
.call-head .live{width:8px;height:8px;border-radius:50%;background:var(--mint);animation:pulse 1.6s infinite}
.call-head .time{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--bone)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(47,211,176,.6)}100%{box-shadow:0 0 0 12px rgba(47,211,176,0)}}
.bars{display:flex;align-items:center;gap:3px;height:54px;margin:22px 0 10px}
.bars i{flex:1;max-width:4px;border-radius:2px;background:linear-gradient(var(--iris),var(--verdant));height:12%;transform-origin:center;animation:bar 1.1s ease-in-out infinite;animation-delay:calc(var(--i) * -0.061s);animation-play-state:paused}
.bars.run i{animation-play-state:running}
@keyframes bar{50%{height:calc(var(--h) * 100%)}}
.msg{margin:22px 0;opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.msg.show{opacity:1;transform:none}
.msg .who{display:block;margin-bottom:6px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--iris)}
.msg.client .who{color:var(--saffron)}
.msg p{font-size:clamp(19px,1.8vw,24px);font-weight:200;line-height:1.35;letter-spacing:-.01em}
.msg.typing p::after{content:"";display:inline-block;width:2px;height:1em;margin-left:3px;vertical-align:-2px;background:var(--bone);animation:blink .8s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px;opacity:0;transition:opacity .8s}
.actions.show{opacity:1}
.chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:9999px;background:rgba(255,255,255,.05);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--silver);transform:translateY(8px);opacity:0;transition:transform .6s var(--ease),opacity .6s,background .3s,color .3s;transition-delay:var(--d,0s)}
.actions.show .chip{transform:none;opacity:1}
.chip:hover{background:var(--iris-soft);color:var(--bone)}
.chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--mint)}
.caps{list-style:none;display:flex;flex-direction:column;gap:14px;margin-top:8px}
.caps li{display:flex;gap:14px;align-items:baseline;color:var(--silver);transition:color .3s,transform .5s var(--ease)}
.caps li:hover{color:var(--bone);transform:translateX(8px)}
.caps li::before{content:"";flex:none;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid var(--iris);transform:translateY(-2px)}

/* ---------- Services (lignes) ---------- */
.rows{margin-top:60px}
.row{position:relative;display:grid;grid-template-columns:70px minmax(0,1fr) auto;align-items:center;column-gap:24px;padding-block:32px;border-bottom:1px solid var(--line);cursor:pointer;isolation:isolate}
.row:first-child{border-top:1px solid var(--line)}
.row::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(128,82,255,.16),transparent 75%);transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease)}
.row::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(255,184,41,.10),transparent 70%);opacity:0;transition:opacity .4s}
.row:hover::before,.row.open::before{transform:scaleX(1)}
.row:hover::after{opacity:1}
.row .num{font-size:14px;font-weight:600;letter-spacing:.025em;color:var(--ash);font-variant-numeric:tabular-nums;transition:color .3s}
.row h3{font-size:clamp(26px,4.2vw,56px);line-height:1.05;letter-spacing:-.04em;color:#7a7a7a;transition:transform .7s var(--ease),color .4s}
.row:hover h3,.row.open h3{transform:translateX(18px);color:var(--bone)}
.row:hover .num{color:var(--saffron)}
.row .side{display:flex;align-items:center;gap:18px}
.row .pill{padding:7px 13px;border-radius:9999px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ash);background:rgba(255,255,255,.04);transition:color .3s,background .3s}
.row:hover .pill{color:var(--saffron);background:rgba(255,184,41,.08)}
.row .arrow{width:54px;height:54px;flex:none;border-radius:50%;display:grid;place-items:center;color:var(--ash);background:rgba(255,255,255,.04);transition:transform .7s var(--ease),background .4s,color .4s}
.row:hover .arrow,.row.open .arrow{background:var(--iris);color:var(--bone);transform:rotate(-45deg)}
.row .more{grid-column:2/4;display:grid;grid-template-rows:0fr;transition:grid-template-rows .7s var(--ease)}
.row:hover .more,.row.open .more{grid-template-rows:1fr}
.row .more>div{overflow:hidden}
.row .more p{padding-top:16px;max-width:560px;color:var(--silver);transform:translateX(18px)}
@media (hover:none){.row h3{color:var(--bone)}}
@media (max-width:640px){.row{grid-template-columns:40px minmax(0,1fr) auto}.row .pill{display:none}.row .arrow{width:42px;height:42px}}

/* ---------- Automatisations (flux) ---------- */
.flow{position:relative;margin-top:20px;padding-left:44px;display:flex;flex-direction:column;gap:30px}
.flow .rail{position:absolute;left:12px;top:8px;bottom:8px;width:1px;background:var(--dim)}
.flow .rail i{position:absolute;inset:0 0 auto;height:0;background:linear-gradient(var(--iris),var(--saffron))}
.flow .rail b{position:absolute;left:-4px;width:9px;height:9px;border-radius:50%;background:var(--saffron);box-shadow:0 0 18px var(--saffron);top:0}
.step{position:relative;opacity:.28;transition:opacity .6s,transform .6s var(--ease)}
.step.on{opacity:1}
.step::before{content:"";position:absolute;left:-38px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--void);box-shadow:inset 0 0 0 1px var(--ash);transition:background .4s,box-shadow .4s}
.step.on::before{background:var(--iris);box-shadow:0 0 0 5px var(--iris-soft)}
.step h4{font-size:24px;font-weight:400;letter-spacing:-.02em;line-height:1.25}
.step p{font-size:16px;color:var(--silver)}
.step:hover{transform:translateX(6px)}
.tools{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:40px;font-size:14px;font-weight:600;letter-spacing:.025em;text-transform:uppercase;color:var(--ash)}
.tools span{transition:color .3s}
.tools span:hover{color:var(--saffron)}

/* ---------- Chiffres ---------- */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px;margin-top:70px}
@media (max-width:900px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.stat{display:flex;flex-direction:column;gap:10px;cursor:default}
.stat .big{font-size:clamp(56px,7.5vw,113px);line-height:.9;letter-spacing:-.05em;font-weight:400;font-variant-numeric:tabular-nums;transition:color .4s,letter-spacing .6s var(--ease),transform .6s var(--ease)}
.stat:hover .big{color:var(--saffron);letter-spacing:-.02em;transform:translateY(-6px)}
.stat .cap{font-size:14px;font-weight:600;letter-spacing:.025em;text-transform:uppercase;color:var(--ash)}
.stat p{font-size:16px;color:var(--silver);max-width:240px}

/* ---------- Méthode (scroll horizontal) ---------- */
.hs{position:relative;height:340vh}
.hs-sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:56px}
.hs-track{display:flex;gap:clamp(40px,6vw,100px);padding-left:max(16px,calc((100vw - var(--max)) / 2 + 36px));padding-right:20vw;width:max-content;will-change:transform}
.phase{width:min(520px,78vw);flex:none;display:flex;flex-direction:column;gap:18px}
.phase .n{font-size:clamp(80px,10vw,150px);line-height:.85;letter-spacing:-.06em;font-weight:400;color:transparent;-webkit-text-stroke:1px #3d3d3d;transition:color .6s,-webkit-text-stroke-color .6s}
.phase.on .n{color:var(--iris);-webkit-text-stroke-color:transparent}
.phase h3{font-size:clamp(30px,3.6vw,48px);letter-spacing:-.035em;line-height:1.05}
.phase p{color:var(--silver);max-width:420px}
.phase .dur{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--saffron)}
.hs-bar{height:2px;background:var(--dim);position:relative;overflow:hidden}
.hs-bar i{position:absolute;inset:0;background:var(--iris);transform-origin:left;transform:scaleX(0)}
@media (max-width:860px){
  .hs{height:auto}
  .hs-sticky{position:static;height:auto;overflow:visible;padding-block:110px}
  .hs-track{flex-direction:column;width:auto;padding:0 max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px));transform:none!important}
  .phase{width:auto}
  .hs-bar{display:none}
}

/* ---------- FAQ ---------- */
.faq{display:flex;flex-direction:column}
.q{border-bottom:1px solid var(--line)}
.q button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 0;text-align:left;font-size:clamp(20px,2vw,26px);font-weight:400;letter-spacing:-.02em;color:var(--silver);transition:color .3s}
.q button:hover,.q.open button{color:var(--bone)}
.q .pm{position:relative;width:18px;height:18px;flex:none}
.q .pm::before,.q .pm::after{content:"";position:absolute;left:0;top:50%;width:100%;height:1.5px;background:currentColor;transition:transform .5s var(--ease)}
.q .pm::after{transform:rotate(90deg)}
.q.open .pm::after{transform:rotate(0)}
.q.open .pm{color:var(--saffron)}
.q .a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
.q.open .a{grid-template-rows:1fr}
.q .a>div{overflow:hidden}
.q .a p{padding-bottom:26px;max-width:620px;color:var(--silver)}

/* ---------- CTA final ---------- */
.final{padding-block:clamp(120px,20vh,220px) 60px}
.giant{font-size:clamp(50px,10.5vw,150px);line-height:.92;letter-spacing:-.05em;font-weight:400;cursor:default}
.giant .ch{display:inline-block;transition:color .4s;will-change:transform}
.giant .sp{display:inline-block;width:.24em}
.form-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(40px,7vw,110px);margin-top:90px}
.form-grid>*{min-width:0}
@media (max-width:900px){.form-grid{grid-template-columns:1fr}}
form{display:grid;grid-template-columns:1fr 1fr;gap:26px 30px}
@media (max-width:560px){form{grid-template-columns:1fr}}
.fld{position:relative;display:flex;flex-direction:column}
.fld.full{grid-column:1/-1}
.fld label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ash);transition:color .3s}
.fld input,.fld select,.fld textarea{background:transparent;border:0;border-bottom:1px solid var(--dim);color:var(--bone);font:200 20px/1.4 var(--font);padding:12px 0;outline:none;border-radius:0;transition:border-color .3s}
.fld textarea{resize:vertical;min-height:90px}
.fld select option{background:var(--void)}
.fld::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,var(--iris),var(--saffron));transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.fld:focus-within::after{transform:scaleX(1)}
.fld:focus-within label{color:var(--saffron)}
.form-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin-top:10px}
.form-note{font-size:14px;color:var(--ash)}
.mail{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:20px}
.mail-cap{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ash)}
.mail-addr{font-size:clamp(24px,2.6vw,36px);font-weight:400;letter-spacing:-.03em;color:var(--bone);background:linear-gradient(var(--saffron),var(--saffron)) left bottom/0 1px no-repeat;transition:background-size .7s var(--ease),color .3s;user-select:all;overflow-wrap:anywhere}
.mail-addr:hover{color:var(--saffron);background-size:100% 1px}
.sent{grid-column:1/-1;font-size:clamp(24px,2.4vw,32px);font-weight:400;letter-spacing:-.02em;color:var(--saffron)}

footer{padding-block:60px 40px}
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:30px;border-top:1px solid var(--line);padding-top:40px}
.foot p{font-size:14px;color:var(--ash)}
.foot nav{display:flex;flex-wrap:wrap;gap:24px}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .rv,.sw .w>span,.hero h1 .ln>span,.hero .fade{opacity:1!important;transform:none!important}
}

/* ---------- Formulaire : piège anti-robots et mention RGPD ---------- */
.hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-legal{grid-column:1/-1;font-size:13px;line-height:1.5;color:var(--ash);max-width:620px}
.form-legal a{color:var(--silver);text-decoration:underline;text-underline-offset:3px}
.form-legal a:hover{color:var(--saffron)}

/* ---------- Pages légales ---------- */
.legal{position:relative;z-index:2;padding-block:150px 100px}
.legal .wrap{max-width:860px}
.legal h1{font-size:clamp(40px,6vw,72px);line-height:1;letter-spacing:-.04em;margin:22px 0 18px}
.legal .updated{font-size:14px;color:var(--ash)}
.legal h2{font-size:clamp(22px,2.4vw,28px);letter-spacing:-.02em;margin:56px 0 14px}
.legal p,.legal li{color:var(--silver);font-size:17px;max-width:68ch}
.legal p+p{margin-top:12px}
.legal ul{margin:10px 0 0 22px;display:flex;flex-direction:column;gap:6px}
.legal a{color:var(--bone);text-decoration:underline;text-underline-offset:3px}
.legal a:hover{color:var(--saffron)}
.legal dl{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:10px 24px;margin-top:8px}
.legal dt{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ash);padding-top:3px}
.legal dd{color:var(--bone);font-size:17px}
.legal .todo{color:var(--saffron)}
@media (max-width:640px){.legal dl{grid-template-columns:1fr;gap:2px}.legal dd{margin-bottom:12px}}
