/* Antoine Binard Invest — style v2.1.0 — DAMOTIC
   Échelle typographique unique (bornée) :
   mono 11.5 · small 14 · body 16.5 · lead 17–19 · h3 19–22 · citation 24–36 · h2 32–54 · chiffres 44–68 · display 44–88 */
:root{
  /* Ambiance « Riva » : crème des selleries, acajou verni, bleu Méditerranée, chrome */
  --paper:#f3eee4; --paper-2:#ebe3d4; --ink:#0d2231; --sea:#1d5a78; --sea-2:#2f7ea0; --foam:#e7f0f2;
  --mute:#5c6670; --mute-d:#9fb0bb; --line:rgba(13,34,49,.14); --line-d:rgba(243,238,228,.16);
  --acc:#9a4320; --acc-2:#c07a3e; --chrome:linear-gradient(135deg,#f7f8f8,#b9c2c7 40%,#eef1f2 55%,#8f9aa1);
  --wood:repeating-linear-gradient(180deg,transparent 0 17px,rgba(243,238,228,.9) 17px 18.5px),
         linear-gradient(90deg,rgba(0,0,0,.18),transparent 12%,rgba(255,220,180,.10) 45%,transparent 70%,rgba(0,0,0,.2)),
         repeating-linear-gradient(90deg,#6a2911 0 3px,#7b3316 3px 9px,#8a3d1b 9px 14px,#733015 14px 21px),
         #7a3417;
  --wood-plain:linear-gradient(135deg,rgba(255,225,190,.18),transparent 35%,rgba(0,0,0,.18) 80%),
         repeating-linear-gradient(90deg,#6a2911 0 3px,#7b3316 3px 9px,#8a3d1b 9px 14px,#733015 14px 21px);
  --f:"Familjen Grotesk","Geist",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --m:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --fs-mono:11.5px; --fs-small:14px; --fs-body:16.5px;
  --fs-lead:clamp(17px,1.25vw,19px);
  --fs-h3:clamp(19px,1.4vw,22px);
  --fs-quote:clamp(24px,2.4vw,36px);
  --fs-h2:clamp(32px,3.5vw,54px);
  --fs-stat:clamp(44px,4.4vw,68px);
  --fs-display:clamp(44px,5.8vw,88px);
  --g:clamp(20px,3.4vw,56px);
  --max:1320px;
  --sec:clamp(80px,11vw,152px);
  --ease:cubic-bezier(.2,.7,.1,1); --ease-io:cubic-bezier(.7,0,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--fs-body)/1.6 var(--f);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
h1,h2,h3{margin:0;font-weight:500;text-wrap:balance}
p{margin:0}
svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.mono{font-family:var(--m);font-size:var(--fs-mono);font-weight:400;letter-spacing:.07em;text-transform:uppercase;line-height:1.45}
::selection{background:var(--acc);color:var(--paper)}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.skip{position:fixed;left:12px;top:-60px;z-index:200;background:var(--ink);color:var(--paper);padding:10px 14px}
.skip:focus{top:12px}

h2{font-size:var(--fs-h2);line-height:1.04;letter-spacing:-.03em;max-width:17ch}
h3{font-size:var(--fs-h3);line-height:1.2;letter-spacing:.005em;font-weight:600}
.lead{font-size:var(--fs-lead);line-height:1.6;max-width:46ch;margin-top:24px;color:var(--mute)}

/* ---------- EN-TÊTE ---------- */
.top{position:fixed;inset:0 0 auto;z-index:60;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:18px var(--g);color:var(--ink);transition:color .4s var(--ease),background .4s,padding .4s var(--ease)}
.top.bg{background:rgba(243,238,228,.86);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding-top:12px;padding-bottom:12px}
.top.light{color:var(--paper)}
.top.light.bg{background:rgba(13,34,49,.8)}
.mark{display:flex;align-items:center;gap:12px;justify-self:start}
.mark__ab{display:grid;place-items:center;width:36px;height:36px;border:1.5px solid currentColor;border-radius:50%;font-weight:700;font-size:13px;letter-spacing:-.02em;transition:background .3s,color .3s,border-color .3s}
.mark:hover .mark__ab{background:var(--acc);border-color:var(--acc);color:var(--paper)}
.mark__txt{font-weight:600;font-size:13px;letter-spacing:.04em}
.mark__txt b{font-weight:400;opacity:.55}
.where{display:flex;align-items:center;gap:10px}
.where__sep{width:24px;height:1px;background:currentColor;opacity:.5}
.where__box{display:block;overflow:hidden;height:1.45em}
.where__t{display:block;transition:transform .45s var(--ease),opacity .45s}
.where__t.out{transform:translateY(-110%);opacity:0}
.where__t.in{transform:translateY(110%);opacity:0;transition:none}
.top__r{justify-self:end;display:flex;align-items:center;gap:18px}
.lang{position:relative}
.lang__btn{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:40px;transition:background .3s}
.lang__btn svg{width:16px;height:16px}
.lang__btn i{width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .3s var(--ease)}
.lang__btn:hover{background:rgba(13,34,49,.06)}
.top.light .lang__btn:hover{background:rgba(243,238,228,.1)}
.lang.open .lang__btn i{transform:translateY(1px) rotate(225deg)}
.lang__list{position:absolute;right:0;top:calc(100% + 8px);z-index:70;list-style:none;margin:0;padding:6px;min-width:210px;background:var(--ink);color:var(--paper);border-radius:10px;box-shadow:0 18px 40px -16px rgba(0,0,0,.5);
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .25s,transform .35s var(--ease),visibility 0s .35s}
.lang.open .lang__list{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .35s var(--ease)}
.lang__list button{display:flex;align-items:center;gap:14px;width:100%;padding:9px 12px;border-radius:6px;text-align:left;font-size:14.5px;color:rgba(243,238,228,.72);transition:background .2s,color .2s}
.lang__list button b{width:22px;color:var(--mute-d);font-weight:400}
.lang__list button:hover,.lang__list button:focus-visible{background:rgba(243,238,228,.08);color:var(--paper);outline:0}
.lang__list button[aria-selected=true]{color:var(--paper)}
.lang__list button[aria-selected=true] b{color:var(--acc)}
.lang__list button[aria-selected=true]::after{content:"";margin-left:auto;width:6px;height:6px;border-radius:50%;background:var(--acc)}
.menubtn{display:flex;align-items:center;gap:12px;height:40px;padding:0 7px 0 16px;border:1.5px solid currentColor;border-radius:40px;transition:background .3s,color .3s,border-color .3s}
.menubtn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.top.light .menubtn:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.menubtn__i{position:relative;width:26px;height:26px;border-radius:50%;background:currentColor}
.menubtn__i i{position:absolute;left:7px;right:7px;height:1.5px;background:var(--paper);transition:transform .4s var(--ease)}
.top.light .menubtn__i i{background:var(--ink)}
.menubtn:hover .menubtn__i i{background:var(--ink)}
.top.light .menubtn:hover .menubtn__i i{background:var(--paper)}
.menubtn__i i:first-child{top:10px}.menubtn__i i:last-child{top:15px}
.menubtn:hover .menubtn__i i:first-child{transform:translateX(2px)}
.menubtn:hover .menubtn__i i:last-child{transform:translateX(-2px)}
body.menu-open .top{color:var(--paper);background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
body.menu-open .menubtn__i i{background:var(--ink)}
body.menu-open .menubtn__i i:first-child{transform:translateY(2.5px) rotate(45deg)}
body.menu-open .menubtn__i i:last-child{transform:translateY(-2.5px) rotate(-45deg)}
body.menu-open .where{opacity:0}

/* ---------- DOCK ---------- */
.dock{position:fixed;left:50%;bottom:18px;z-index:55;display:flex;align-items:center;gap:2px;padding:5px;border-radius:40px;
  background:rgba(13,34,49,.9);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);
  color:var(--paper);transform:translate(-50%,140%);transition:transform .6s var(--ease);overflow:hidden;box-shadow:0 12px 32px -12px rgba(0,0,0,.45)}
.dock.show{transform:translate(-50%,0)}
body.menu-open .dock{transform:translate(-50%,140%)}
.dock a{position:relative;z-index:1;display:flex;align-items:center;height:40px;padding:0 11px;border-radius:30px;color:rgba(243,238,228,.6);transition:background .35s var(--ease),color .35s}
.dock a svg{width:18px;height:18px;flex:none}
.dock a span{font-family:var(--m);font-size:11px;letter-spacing:.07em;white-space:nowrap;max-width:0;opacity:0;overflow:hidden;transition:max-width .5s var(--ease),opacity .3s,margin .5s var(--ease)}
.dock a:hover,.dock a.on{color:var(--paper)}
.dock a:hover span,.dock a.on span{max-width:140px;opacity:1;margin-left:9px}
.dock a.on{background:rgba(243,238,228,.12)}
.dock a.dock__cta{background:var(--acc);color:var(--paper);margin-left:4px}
.dock__bar{position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--acc);transform-origin:left;transform:scaleX(var(--pp,0))}

/* ---------- MENU PLEIN ÉCRAN ---------- */
.overlay{position:fixed;inset:0;z-index:50;background:var(--ink);color:var(--paper);display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-template-rows:1fr auto;
  gap:0 var(--g);padding:96px var(--g) 22px;clip-path:inset(0 0 100% 0);transition:clip-path .75s var(--ease-io)}
.overlay[hidden]{display:grid;visibility:hidden}
.overlay.open{clip-path:inset(0 0 0 0);visibility:visible}
.ov__list{display:flex;flex-direction:column;justify-content:center}
.ov__list a{display:grid;grid-template-columns:48px 34px auto 1fr;align-items:center;gap:0 10px;padding:.14em 0;border-bottom:1px solid var(--line-d);
  font-size:min(4.4vw,6.6vh);font-weight:500;letter-spacing:-.03em;line-height:1.08;
  opacity:0;transform:translateY(30px);transition:opacity .5s,transform .7s var(--ease),color .3s}
.overlay.open .ov__list a{opacity:1;transform:none;transition-delay:calc(.25s + var(--i)*.05s),calc(.25s + var(--i)*.05s),0s}
.ov__list a em{font-style:normal;color:var(--mute-d)}
.ov__list a svg{width:24px;height:24px;color:var(--acc);opacity:0;transform:translateX(-10px);transition:opacity .3s,transform .4s var(--ease)}
.ov__t{transition:transform .5s var(--ease)}
.ov__d{justify-self:end;color:var(--mute-d);opacity:0;transform:translateX(-12px);transition:opacity .3s,transform .4s var(--ease)}
.ov__list:hover a{color:rgba(243,238,228,.28)}
.ov__list a.cur{color:var(--paper)}
.ov__list:hover a.cur{color:rgba(243,238,228,.28)}
.ov__list a:hover,.ov__list a:focus-visible,.ov__list:hover a.cur:hover{color:var(--paper)}
.ov__list a:hover svg,.ov__list a:focus-visible svg{opacity:1;transform:none}
.ov__list a:hover .ov__t,.ov__list a:focus-visible .ov__t{transform:translateX(8px)}
.ov__list a:hover .ov__d,.ov__list a:focus-visible .ov__d{opacity:1;transform:none}
.ov__media{position:relative;overflow:hidden;border-radius:4px;align-self:center;justify-self:end;width:min(100%,440px);aspect-ratio:1;opacity:0;transform:scale(.96);transition:opacity .6s .35s,transform .9s .35s var(--ease)}
.overlay.open .ov__media{opacity:1;transform:none}
.ov__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;clip-path:inset(100% 0 0 0);transition:clip-path .7s var(--ease-io)}
.ov__media img.on{clip-path:inset(0);z-index:1}
.ov__foot{grid-column:1/-1;display:flex;justify-content:space-between;gap:16px;color:var(--mute-d);padding-top:14px;border-top:1px solid var(--line-d)}

/* ---------- BOUTONS ---------- */
.btn{display:inline-flex;align-items:center;gap:12px;height:50px;padding:0 22px;border-radius:50px;font-family:var(--m);font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;border:1.5px solid var(--ink);transition:background .3s,color .3s,border-color .3s,gap .3s var(--ease)}
.btn svg{width:17px;height:17px}
.btn:hover{gap:18px}
.btn--ink{background:var(--ink);color:var(--paper)}
.btn--ink:hover{background:var(--acc);border-color:var(--acc)}
.btn--line:hover{background:var(--ink);color:var(--paper)}
.btn--paper{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.btn--paper:hover{background:var(--acc);border-color:var(--acc);color:var(--paper)}
.btn[disabled]{opacity:.5;pointer-events:none}

/* ---------- HERO (portrait) ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,400px);gap:clamp(40px,7vw,120px);align-items:center;
  padding:clamp(120px,17vh,168px) var(--g) clamp(56px,9vh,96px);max-width:calc(var(--max) + 2*var(--g));margin:0 auto}
.kicker{color:var(--mute);margin-bottom:28px;display:flex;gap:10px;align-items:center;opacity:0;transition:opacity 1s .2s}
.kicker::before{content:"";width:7px;height:7px;background:var(--acc);border-radius:50%}
body.ready .kicker{opacity:1}
.hero__h{font-size:var(--fs-display);font-weight:500;letter-spacing:-.04em;line-height:.98}
.ln{display:block;overflow:hidden;padding-bottom:.06em}
.ln>span{display:inline-block;transform:translateY(105%);transition:transform 1.1s var(--ease)}
.ln--2>span{transition-delay:.12s;color:var(--mute)}
body.ready .ln>span{transform:none}
.hero__aside{margin-top:clamp(28px,4.5vh,44px);max-width:440px}
.hero__aside p{font-size:var(--fs-lead);line-height:1.6;color:var(--mute);margin-bottom:28px}
.hero__aside>*{opacity:0;transform:translateY(14px);transition:opacity 1s .45s,transform 1s .45s var(--ease)}
body.ready .hero__aside>*{opacity:1;transform:none}
.ctas{display:flex;flex-wrap:wrap;gap:10px}
.hero__portrait{margin:0;opacity:0;transform:translateY(24px);transition:opacity 1.2s .3s,transform 1.2s .3s var(--ease)}
body.ready .hero__portrait{opacity:1;transform:none}
.hero__frame{aspect-ratio:1;border-radius:4px;background:#e2dccf}
.hero__frame picture,.hero__frame img{width:100%;height:100%}
.hero__frame img{object-fit:cover}
.hero__portrait figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-top:14px;margin-top:14px;border-top:1px solid var(--line)}
.hero__portrait strong{font-size:var(--fs-h3);font-weight:600;letter-spacing:-.01em;white-space:nowrap}
.hero__portrait figcaption .mono{color:var(--mute);text-align:right}
.hero__scroll{position:absolute;left:var(--g);bottom:22px;display:flex;align-items:center;gap:10px;color:var(--mute)}
.hero__scroll i{width:28px;height:1.5px;background:currentColor;animation:slide 2.2s var(--ease) infinite;transform-origin:left}
@keyframes slide{0%{transform:scaleX(0)}50%{transform:scaleX(1);transform-origin:left}51%{transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}

/* ---------- KEN BURNS ---------- */
.kb-frame{position:relative;overflow:hidden;margin:0}
.kb{will-change:transform;animation:24s ease-in-out infinite alternate}
.kb--p{animation-name:kbP}.kb--b{animation-name:kbB}.kb--c{animation-name:kbC}.kb--d{animation-name:kbD}
@keyframes kbP{from{transform:scale(1) translate(0,0)}to{transform:scale(1.07) translate(-1%,-1.5%)}}
@keyframes kbB{from{transform:scale(1.12) translate(2%,2%)}to{transform:scale(1.02) translate(0,-1%)}}
@keyframes kbC{from{transform:scale(1.04) translate(-1%,2%)}to{transform:scale(1.15) translate(2%,-2%)}}
@keyframes kbD{from{transform:scale(1.14) rotate(-1.5deg)}to{transform:scale(1.04) rotate(1deg)}}

/* ---------- CHIFFRES ---------- */
.strip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.strip__c{display:flex;flex-direction:column;justify-content:space-between;gap:32px;padding:22px var(--g) 26px;border-left:1px solid var(--line);min-height:180px}
.strip__c:first-child{border-left:0}
.strip__c>span{color:var(--mute);max-width:22ch}
.strip__c strong{font-size:var(--fs-stat);font-weight:500;letter-spacing:-.04em;line-height:1}
.strip__c strong b{font-weight:inherit}

/* ---------- SECTIONS ---------- */
.sec{padding:var(--sec) var(--g);max-width:calc(var(--max) + 2*var(--g));margin:0 auto}
.label{display:flex;gap:14px;align-items:center;color:var(--mute);margin-bottom:clamp(32px,5vh,56px)}
.label span:first-child{color:var(--acc)}
.label span:last-child::before{content:"";display:inline-block;width:24px;height:1px;background:currentColor;vertical-align:middle;margin-right:14px;opacity:.6}
.rv{opacity:0;transform:translateY(18px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.rv.in{opacity:1;transform:none}

/* Vision / manifeste */
.manifesto__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px);gap:clamp(40px,7vw,120px);align-items:end}
.manifesto__txt{font-size:var(--fs-quote);font-weight:500;letter-spacing:-.02em;line-height:1.28;max-width:30ch}
.manifesto__txt .w{opacity:.16;transition:opacity .35s}
.manifesto__txt .w.on{opacity:1}
.manifesto__img{aspect-ratio:3/4;border-radius:4px}
.manifesto__img img{width:100%;height:100%;object-fit:cover}
.manifesto__sig{margin-top:clamp(40px,6vh,64px);font-size:var(--fs-lead);color:var(--mute)}

/* Stratégie horizontale */
.hs{position:relative;background:var(--ink);color:var(--paper)}
.hs__stick{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center}
.hs__track{display:flex;align-items:stretch;gap:20px;padding:0 var(--g);will-change:transform}
.hs__head{flex:0 0 min(480px,34vw);display:flex;flex-direction:column;justify-content:center;padding-right:clamp(16px,4vw,64px)}
.hs .label{color:var(--mute-d)}
.hs .lead{color:rgba(243,238,228,.66)}
.hs__hint{margin-top:36px;color:var(--acc)}
.panel{flex:0 0 clamp(290px,26vw,370px);min-height:min(56vh,480px);display:flex;flex-direction:column;padding:28px;border:1px solid var(--line-d);border-radius:4px;position:relative;overflow:hidden}
.panel::before{content:"";position:absolute;inset:0;background:var(--acc);transform:translateY(101%);transition:transform .6s var(--ease-io);z-index:0}
.panel>*{position:relative;z-index:1}
.panel:hover::before{transform:none}
.panel__n{font-size:var(--fs-stat);font-weight:500;letter-spacing:-.04em;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(243,238,228,.55);transition:color .5s}
.panel:hover .panel__n{color:var(--paper);-webkit-text-stroke-color:transparent}
.panel__k{margin-top:auto;color:var(--mute-d);padding-bottom:14px;border-bottom:1px solid var(--line-d);margin-bottom:18px}
.panel:hover .panel__k{color:rgba(243,238,228,.85);border-color:rgba(243,238,228,.35)}
.panel h3{margin-bottom:12px}
.panel p{color:rgba(243,238,228,.68);font-size:15px;line-height:1.6}
.panel:hover p{color:var(--paper)}
.hs__foot{position:absolute;left:var(--g);right:var(--g);bottom:26px;display:flex;align-items:center;gap:18px;color:var(--mute-d)}
.hs__foot b{color:var(--paper);font-weight:500}
.hs__bar{flex:1;height:1px;background:var(--line-d);position:relative}
.hs__bar i{position:absolute;inset:0;background:var(--acc);transform-origin:left;transform:scaleX(0)}

/* Méthode */
.method__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,7vw,120px);align-items:start}
.method__img{position:sticky;top:100px;aspect-ratio:4/5;border-radius:4px;max-height:calc(100vh - 140px)}
.method__img img{width:100%;height:100%;object-fit:cover}
.method__img figcaption{position:absolute;left:16px;bottom:14px;color:var(--paper);z-index:2}
.steps{list-style:none;margin:clamp(40px,7vh,72px) 0 0;padding:0;position:relative}
.steps::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--line)}
.steps::after{content:"";position:absolute;left:0;top:0;width:1px;height:calc(var(--sp,0)*100%);background:var(--acc);transition:height .3s linear}
.steps li{display:grid;grid-template-columns:56px 1fr;gap:12px;padding:28px 0 28px 24px;border-bottom:1px solid var(--line);opacity:.35;transition:opacity .5s}
.steps li.on{opacity:1}
.steps__n{padding-top:4px;color:var(--acc)}
.steps h3{margin-bottom:8px}
.steps p{color:var(--mute);max-width:48ch}

/* Clientèle */
.clients-wrap{background:var(--paper-2)}
.clients__grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(40px,7vw,120px);align-items:end}
.clients__img{aspect-ratio:1;border-radius:50%;max-width:340px;justify-self:end;width:100%}
.clients__img img{width:100%;height:100%;object-fit:cover}
.values{list-style:none;margin:clamp(56px,8vh,96px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--g)}
.values li{border-top:1.5px solid var(--ink);padding-top:18px}
.values span{color:var(--acc)}
.values h3{margin:16px 0 10px}
.values p{color:var(--mute);max-width:34ch}

/* FAQ */
.faq{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,7vw,120px);align-items:start}
.faq__side{position:sticky;top:110px}
.faq__item{border-top:1px solid var(--line)}
.faq__item:last-child{border-bottom:1px solid var(--line)}
.faq__q{width:100%;display:grid;grid-template-columns:40px 1fr 28px;align-items:start;gap:8px;padding:20px 0;text-align:left;font-size:17.5px;font-weight:500;letter-spacing:-.005em;line-height:1.4}
.faq__q em{font-style:normal;font-family:var(--m);font-size:var(--fs-mono);color:var(--mute);padding-top:4px}
.faq__q i{position:relative;width:28px;height:28px;border:1.5px solid var(--ink);border-radius:50%;transition:background .3s,transform .5s var(--ease),border-color .3s}
.faq__q i::before,.faq__q i::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:1.5px;background:var(--ink);transform:translate(-50%,-50%);transition:transform .4s var(--ease),background .3s}
.faq__q i::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq__q:hover i{background:var(--ink)}
.faq__q:hover i::before,.faq__q:hover i::after{background:var(--paper)}
.faq__q[aria-expanded=true] i{transform:rotate(180deg);background:var(--acc);border-color:var(--acc)}
.faq__q[aria-expanded=true] i::before,.faq__q[aria-expanded=true] i::after{background:var(--paper)}
.faq__q[aria-expanded=true] i::after{transform:translate(-50%,-50%) rotate(0)}
.faq__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.faq__a>div{overflow:hidden}
.faq__a p{padding:0 40px 24px 48px;color:var(--mute);max-width:62ch}
.faq__q[aria-expanded=true]+.faq__a{grid-template-rows:1fr}

/* Contact */
.contact-wrap{background:var(--ink);color:var(--paper)}
.contact{padding:var(--sec) var(--g);max-width:calc(var(--max) + 2*var(--g));margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(40px,7vw,120px)}
.contact .label{color:var(--mute-d)}
.contact h2{font-size:var(--fs-display);letter-spacing:-.04em;line-height:.98}
.contact .lead{color:rgba(243,238,228,.66)}
.contact__pts{list-style:none;margin:36px 0 0;padding:0;color:var(--mute-d)}
.contact__pts li{padding:12px 0;border-top:1px solid var(--line-d);display:flex;gap:12px}
.contact__pts li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--acc);margin-top:5px;flex:none}
.form{align-self:end;display:flex;flex-direction:column;gap:6px}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.fld{display:block;position:relative;padding-top:18px}
.fld>span{display:block;font-family:var(--m);font-size:11px;letter-spacing:.07em;color:var(--mute-d);transition:color .3s}
.fld:focus-within>span{color:var(--acc)}
.fld input,.fld select,.fld textarea{width:100%;font:inherit;font-size:17px;color:var(--paper);background:transparent;border:0;border-bottom:1px solid var(--line-d);padding:10px 0 12px;border-radius:0;outline:0;transition:border-color .3s;-webkit-appearance:none;appearance:none}
.fld select{background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 12px) 55%,calc(100% - 7px) 55%;background-size:5px 5px;background-repeat:no-repeat}
.fld select option{color:var(--ink)}
.fld textarea{resize:vertical;min-height:110px}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-bottom-color:var(--paper)}
.fld .invalid{border-bottom-color:var(--acc)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.check{display:flex;gap:12px;align-items:flex-start;font-size:var(--fs-small);line-height:1.5;color:var(--mute-d);margin:22px 0 18px;cursor:pointer}
.check input{flex:none;width:18px;height:18px;margin:2px 0 0;accent-color:var(--acc)}
.check input.invalid{outline:2px solid var(--acc)}
.form .btn{align-self:flex-start}
.form__status{min-height:1.4em;font-size:15px;margin-top:10px}
.form__status.ok{color:#9fd3a8}.form__status.err{color:#ff8a66}

/* Pied de page */
.foot{background:var(--ink);color:var(--paper);border-top:1px solid var(--line-d);padding:0 var(--g) 22px}
.foot>*{max-width:var(--max);margin-left:auto;margin-right:auto}
.foot__row{display:flex;justify-content:space-between;align-items:center;gap:32px;padding:40px 0 32px;flex-wrap:wrap}
.foot__brand{display:flex;align-items:center;gap:14px}
.foot__brand .mark__ab{border-color:rgba(243,238,228,.4)}
.foot__brand:hover .mark__ab{background:var(--acc);border-color:var(--acc)}
.foot__id{font-size:13px;letter-spacing:.04em;color:var(--mute-d);line-height:1.5}
.foot__id b{font-weight:600;color:var(--paper)}
.foot__id small{display:block;font-size:13px;letter-spacing:0;color:var(--mute-d)}
.foot__nav{display:flex;flex-wrap:wrap;gap:6px 26px}
.foot__nav a,.foot__legal button{color:var(--mute-d);text-transform:uppercase;transition:color .2s}
.foot__nav a:hover,.foot__legal button:hover{color:var(--paper)}
.foot__disc{font-size:12.5px;line-height:1.6;color:rgba(155,151,142,.8);padding:20px 0;border-top:1px solid var(--line-d);max-width:var(--max)}
.foot__bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px 24px;color:var(--mute-d);padding-top:16px;border-top:1px solid var(--line-d);padding-bottom:70px}
.foot__legal{display:flex;gap:20px}
.damotic{display:inline-flex;align-items:center;gap:8px;transition:color .2s}
.damotic svg{width:16px;height:16px}
.damotic:hover{color:var(--paper)}

/* Modale */
.modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:16px;background:rgba(13,34,49,.6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.modal[hidden]{display:none}
.modal__box{position:relative;background:var(--paper);color:var(--ink);width:min(720px,100%);max-height:86vh;overflow:auto;padding:40px clamp(20px,4vw,48px);border-radius:4px}
.modal__box h2{font-size:clamp(26px,2.6vw,36px);margin-bottom:22px}
.modal__body h3{font-family:var(--m);font-size:12px;font-weight:400;letter-spacing:.07em;margin:22px 0 6px;color:var(--acc)}
.modal__body p{color:var(--mute);font-size:15px}
.modal__close{position:absolute;right:14px;top:12px;width:40px;height:40px;border:1.5px solid var(--ink);border-radius:50%;font-size:20px;line-height:1}
.modal__close:hover{background:var(--ink);color:var(--paper)}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1024px){
  .where{display:none}
  .top{grid-template-columns:1fr auto}
  .strip{grid-template-columns:1fr 1fr}
  .strip__c:nth-child(3){border-left:0}
  .strip__c:nth-child(n+3){border-top:1px solid var(--line)}
  .overlay{grid-template-columns:1fr}
  .ov__media{display:none}
  .ov__list a{font-size:min(8vw,6.4vh);grid-template-columns:40px 1fr}
  .ov__list a svg,.ov__d{display:none}
}
@media (max-width:860px){
  .hero{grid-template-columns:1fr;align-items:start;gap:44px;padding-top:108px;padding-bottom:64px}
  .hero__portrait{max-width:400px}
  .hero__scroll{display:none}
  .manifesto__grid,.method__grid,.clients__grid,.faq,.contact{grid-template-columns:1fr}
  .manifesto__img{max-width:300px}
  .method__img{position:relative;top:0;aspect-ratio:4/3}
  .clients__img{justify-self:start;max-width:260px}
  .values{grid-template-columns:1fr}
  .faq__side{position:static}
  .hs{height:auto!important}
  .hs__stick{position:relative;height:auto;padding:88px 0 96px}
  .hs__track{transform:none!important;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px}
  .hs__track::-webkit-scrollbar{display:none}
  .hs__head{flex:0 0 84vw;scroll-snap-align:start}
  .panel{flex:0 0 78vw;min-height:400px;scroll-snap-align:start}
  .hs__foot{bottom:40px}
}
@media (max-width:560px){
  :root{--fs-body:16px}
  .mark__txt{display:none}
  .lang__btn{padding:0 8px;gap:6px}
  .lang__btn svg{display:none}
  .top__r{gap:10px}
  .menubtn__t{display:none}
  .menubtn{padding:0 6px}
  .btn{height:46px;padding:0 18px}
  .strip__c{min-height:140px;padding:18px 20px}
  .form__row{grid-template-columns:1fr}
  .dock a{padding:0 10px}
  .dock a:hover span{max-width:0;opacity:0;margin:0}
  .dock a.on span{max-width:110px;opacity:1;margin-left:8px}
  .faq__q{grid-template-columns:30px 1fr 28px;font-size:16.5px}
  .faq__a p{padding:0 0 22px 38px}
  .foot__nav{gap:6px 18px}
  .foot__bottom{flex-direction:column;align-items:flex-start}
  .ov__foot{flex-direction:column}
  .ov__hint{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}
  .ln>span{transform:none}
  .manifesto__txt .w{opacity:1}
  .hs{height:auto!important}
  .hs__stick{position:relative;height:auto;padding:88px 0 96px}
  .hs__track{transform:none!important;overflow-x:auto}
}

/* ================= AMBIANCE RIVA · VAGUES DE MÉDITERRANÉE ================= */
/* Pont en acajou verni (lattes + joints clairs) */
.deck{background:var(--wood);box-shadow:inset 0 1px 0 rgba(255,235,210,.25),inset 0 -1px 0 rgba(0,0,0,.25)}
.kicker::before{background:var(--acc-2);box-shadow:0 0 0 3px rgba(192,122,62,.18)}
.mark__ab{background:var(--chrome);color:var(--ink);border-color:transparent;box-shadow:inset 0 0 0 1px rgba(13,34,49,.25)}
.top.light .mark__ab{color:var(--ink)}
.btn--ink{background:var(--ink);border-color:var(--ink)}
.btn--ink:hover,.btn--paper:hover{background:var(--wood-plain);border-color:#7a3417;color:var(--paper)}
.dock{background:rgba(13,34,49,.92)}
.dock a.dock__cta{background:var(--wood-plain)}
.dock__bar{background:linear-gradient(90deg,var(--sea-2),var(--acc-2))}
/* Portrait encadré comme un tableau arrière de Riva */
.hero__frame{padding:10px;background:var(--wood-plain);border-radius:6px;box-shadow:0 30px 60px -30px rgba(13,34,49,.55)}
.hero__frame picture{display:block;overflow:hidden;border-radius:2px}
.hero__frame::after{content:"";position:absolute;inset:10px;border-radius:2px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);pointer-events:none}
.hero__portrait figcaption{border-top:0;position:relative}
.hero__portrait figcaption::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--chrome);opacity:.8}
/* Sections sombres = bleu nuit Méditerranée */
.hs,.contact-wrap,.foot,.overlay{background:linear-gradient(180deg,#0d2231 0%,#0f2a3d 60%,#12334a 100%)}
.foot{background:#0b1d2a}
.panel::before{background:var(--wood-plain)}
.panel{background:rgba(243,238,228,.02)}
.hs__bar i{background:linear-gradient(90deg,var(--sea-2),var(--acc-2))}
.steps::after{background:linear-gradient(180deg,var(--sea-2),var(--acc))}
.values li{border-top:0;position:relative}
.values li::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;border-radius:2px;background:var(--wood-plain)}
.clients-wrap{background:linear-gradient(180deg,var(--paper-2),#e4ecee)}
.clients__img{box-shadow:0 0 0 10px rgba(243,238,228,.9),0 0 0 11px rgba(13,34,49,.12),0 30px 60px -25px rgba(13,34,49,.6)}
.faq__q[aria-expanded=true] i{background:var(--sea);border-color:var(--sea)}
.contact__pts li::before{background:var(--acc-2)}
.fld:focus-within>span{color:var(--acc-2)}
.check input{accent-color:var(--acc-2)}

/* Vagues animées (3 houles superposées, boucle sans couture) */
.waves{position:relative;height:clamp(70px,9vw,130px);overflow:hidden;line-height:0;margin-bottom:-1px}
.waves svg{position:absolute;left:0;bottom:0;width:200%;height:100%;stroke:none}
.waves .w1{fill:rgba(47,126,160,.22);animation:swell 26s linear infinite}
.waves .w2{fill:rgba(29,90,120,.45);animation:swell 18s linear infinite reverse}
.waves .w3{fill:#0d2231;animation:swell 34s linear infinite}
@keyframes swell{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.waves--hero{position:absolute;left:50%;width:100vw;transform:translateX(-50%);bottom:0;height:clamp(60px,8vw,110px);pointer-events:none}
.waves--hero .w1{fill:rgba(47,126,160,.10)}
.waves--hero .w2{fill:rgba(29,90,120,.14)}
.waves--hero .w3{fill:rgba(47,126,160,.20)}
.hero{position:relative}
.hero__scroll{z-index:2}
.overlay .waves{position:absolute;left:0;right:0;bottom:0;height:90px;opacity:.5;pointer-events:none}
.overlay .waves .w3{fill:rgba(47,126,160,.25)}
.ov__foot{position:relative;z-index:1}
/* Sillage : ligne d'écume sous les titres de section */
.label span:last-child::before{background:linear-gradient(90deg,var(--sea-2),transparent);height:2px;opacity:1}
/* Bande de pont en haut du pied de page */
.foot__deck{height:14px;max-width:none!important;margin:0 calc(-1*var(--g))}
@media (prefers-reduced-motion:reduce){.waves path{animation:none!important}}

/* ================= BANDEAUX PHOTO (v2.4) ================= */
.band{position:relative;height:clamp(340px,66vh,680px);overflow:hidden;color:var(--paper);background:#0d2231}
.band__img{position:absolute;inset:0;margin:0}
.band__img picture,.band__img img{display:block;width:100%;height:100%}
.band__img img{object-fit:cover}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,34,49,.05) 30%,rgba(13,34,49,.62) 100%);pointer-events:none}
.band__txt{position:absolute;z-index:1;left:0;right:0;bottom:clamp(32px,7vh,72px);padding:0 var(--g);max-width:calc(var(--max) + 2*var(--g));margin:0 auto}
.band__q{font-size:var(--fs-h2);font-weight:500;letter-spacing:-.03em;line-height:1.04;max-width:16ch;text-wrap:balance;text-shadow:0 2px 24px rgba(13,34,49,.35)}
.band--sea{height:clamp(240px,42vh,440px)}
.band--port{height:clamp(280px,50vh,520px)}
.band--fade::after{background:linear-gradient(180deg,rgba(13,34,49,0) 35%,rgba(13,34,49,.55) 75%,#0d2231 100%)}
.kb--band{animation:kbBand 30s ease-in-out infinite alternate}
.kb--sea{animation:kbSea 22s ease-in-out infinite alternate}
@keyframes kbBand{from{transform:scale(1.02) translate(0,0)}to{transform:scale(1.12) translate(-2%,-1.5%)}}
@keyframes kbSea{from{transform:scale(1.04) translate(1%,0)}to{transform:scale(1.14) translate(-2%,-2%)}}
.credits{list-style:none;padding:0;margin:18px 0 0}
.credits li{padding:10px 0;border-top:1px solid var(--line);font-size:14px;color:var(--mute)}
.credits b{color:var(--ink);font-weight:600}
.credits a{text-decoration:underline;text-underline-offset:3px}
@media (max-width:860px){.band{height:clamp(260px,52vh,460px)}.band--sea{height:220px}}

/* ================= RESPONSIVE TÉLÉPHONE (v2.5) ================= */
.ov__cta{display:none}
@media (max-width:1024px){
  .overlay{grid-template-rows:1fr auto auto;padding-top:calc(88px + env(safe-area-inset-top))}
  .ov__cta{display:inline-flex;justify-self:start;margin:18px 0 20px;grid-column:1/-1}
}
@media (max-width:860px){
  :root{--sec:76px;--g:20px}
  .top{padding-top:calc(12px + env(safe-area-inset-top));padding-bottom:12px}
  .label{margin-bottom:26px}
  .lead{margin-top:18px}
  /* Accueil compact : tient dans le premier écran */
  .hero{min-height:auto;gap:32px;padding:calc(96px + env(safe-area-inset-top)) var(--g) 44px}
  .hero__aside{margin-top:24px}
  .hero__aside p{margin-bottom:22px}
  /* Portrait en carte horizontale */
  .hero__portrait{display:grid;grid-template-columns:104px 1fr;gap:16px;align-items:center;max-width:none}
  .hero__frame{padding:5px;border-radius:6px}
  .hero__frame::after{inset:5px}
  .hero__portrait figcaption{margin:0;padding:0;flex-direction:column;align-items:flex-start;gap:6px}
  .hero__portrait figcaption::before{display:none}
  .hero__portrait figcaption .mono{text-align:left}
  /* Bandeaux photo */
  .band{height:clamp(300px,58vh,440px)}
  .band--sea{height:190px}
  .band--port{height:240px}
  .band__txt{bottom:28px}
  /* Chiffres */
  .strip__c{min-height:0;gap:18px;padding:18px var(--g) 20px}
  /* Vision */
  .manifesto__grid{gap:32px}
  .manifesto__img{max-width:none;aspect-ratio:16/10}
  .manifesto__sig{margin-top:28px}
  /* Stratégie : titre au-dessus, carrousel à cartes avec aperçu de la suivante */
  .hs__stick{padding:var(--sec) 0 40px}
  .hs__head{flex:none;padding:0 var(--g) 28px}
  .hs__hint{margin-top:22px}
  .hs__track{gap:12px;padding:0 var(--g);scroll-padding:0 var(--g)}
  .panel{flex:0 0 82vw;max-width:360px;min-height:320px;padding:22px}
  .hs__foot{position:static;margin:22px var(--g) 0}
  /* Méthode */
  .method__img{aspect-ratio:16/10;max-height:none}
  .steps{margin-top:32px}
  .steps li{grid-template-columns:40px 1fr;padding:22px 0 22px 18px;opacity:1}
  /* Clientèle */
  .clients__grid{gap:32px}
  .clients__img{max-width:220px}
  .values{margin-top:40px;gap:28px}
  /* FAQ */
  .faq{gap:28px}
  .faq__q{padding:18px 0}
  /* Contact */
  .contact{gap:36px}
  .contact__pts{margin-top:24px}
  .fld input,.fld select,.fld textarea{font-size:17px;padding:12px 0 14px}
  .form .btn{width:100%;justify-content:center}
  /* Pied de page : zones tactiles confortables */
  .foot__row{padding:32px 0 20px;gap:22px}
  .foot__nav{gap:0 4px}
  .foot__nav a{padding:10px 8px 10px 0}
  .foot__bottom{align-items:flex-start;flex-direction:column;gap:10px;padding-bottom:calc(96px + env(safe-area-inset-bottom))}
  .foot__legal{flex-wrap:wrap;gap:0 16px}
  .foot__legal button{padding:10px 0;text-align:left}
  .damotic{padding:8px 0}
  /* Dock : au-dessus de la barre d'accueil iOS */
  .dock{bottom:calc(12px + env(safe-area-inset-bottom))}
  .dock a{height:42px}
}
@media (max-width:560px){
  .hero__h{font-size:clamp(40px,11.5vw,52px)}
  .band__q{font-size:30px}
  .strip__c strong{font-size:44px}
  .ov__list a{font-size:min(9.5vw,6vh)}
}
@media (max-width:360px){
  :root{--g:16px}
  .dock a{padding:0 8px}
  .dock a.on span{max-width:84px}
  .hero__portrait{grid-template-columns:84px 1fr}
}

/* v2.7.0 — visuels bateaux / mer retirés */
.band--plain{height:auto;padding:clamp(72px,14vh,150px) 0;background:#0d2231}
.band--plain::after{display:none}
.band--plain .band__txt{position:relative;bottom:auto}
.manifesto__grid,.clients__grid{grid-template-columns:1fr!important}
.manifesto__txt{max-width:28ch}
/* v2.7.1 — portrait N&B : cadre acajou et filet chromé retirés */
.hero__frame,.hero__frame[class]{padding:0!important;background:#e2dccf;border-radius:4px;box-shadow:none}
.hero__frame picture{border-radius:4px}
.hero__frame::after{display:none}
.hero__portrait figcaption::before{display:none}
.hero__portrait figcaption{border-top:1px solid var(--line)}
@media (max-width:860px){.hero__portrait figcaption{border-top:0}}

/* Bandeau vidéo (activé par main.js quand data-video est renseigné) */
.band--video{height:clamp(340px,72vh,720px)}
.band__vid video{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;background:#0d2231}
@media (max-width:860px){.band--video{height:clamp(280px,56vh,480px)}}
