/* AXEOM — feuille de style unique.
   Motif : le A du logo. Diagonale ~22°, courbe ascendante. */

@font-face{font-family:"Sora";src:url(/assets/fonts/sora-latin-wght.woff2) format("woff2");font-weight:100 800;font-style:normal;font-display:swap}
@font-face{font-family:"Outfit";src:url(/assets/fonts/outfit-latin-wght.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --marine:#001B59; --vert:#00B27E; --turq:#007D84; --blanc:#fff; --brume:#F2F6F8;
  --encre:#001B59; --encre-2:#44547D; --ui:#5B6A8F; --trait:rgba(0,27,89,.16);
  --on-dark:#B9C6E6; --trait-dark:rgba(255,255,255,.22);
  --f-display:"Sora",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-text:"Outfit",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gutter:clamp(1.25rem,4.2vw,3.25rem); --gap:clamp(1rem,2vw,2rem); --max:1400px;
  --hh:72px;
  --rise:clamp(52px,8.5vw,140px);      /* hauteur d'une coupe */
  --run:calc(var(--rise)*2.475);        /* 1/tan(22°) : l'angle reste constant */
  --ease:cubic-bezier(.2,.7,.1,1);
  --focus:var(--marine); --surface:#fff;
  --arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 12h17M14 5l7 7-7 7' fill='none' stroke='%23000' stroke-width='2.4'/%3E%3C/svg%3E");
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--hh) + 1rem)}
body{margin:0;font:400 1.0625rem/1.6 var(--f-text);color:var(--encre);background:#fff;overflow-x:clip;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
img{display:block;height:auto}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:.08em}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
::selection{background:var(--vert);color:var(--marine)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

[hidden]{display:none!important}
.js [data-js-hide]{display:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:1rem;top:-5rem;z-index:100;background:var(--vert);color:var(--marine);padding:.8rem 1.2rem;font-weight:600;transition:top .2s}
.skip:focus{top:1rem}

/* ---------- surfaces & coupes en biais ---------- */
.s-marine{background:var(--marine);color:#fff;--focus:var(--vert);--surface:var(--marine)}
.s-brume{background:var(--brume);--surface:var(--brume)}
.s-blanc{background:#fff}
.section{padding-block:clamp(4rem,8vw,8rem)}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.cut-top{--x1:30%;position:relative;margin-top:calc(var(--rise)*-1);padding-top:calc(var(--rise) + clamp(3.5rem,7vw,7rem));
  clip-path:polygon(0 var(--rise),var(--x1) var(--rise),calc(var(--x1) + var(--run)) 0,100% 0,100% 100%,0 100%)}
.cut-a{--x1:10%}.cut-b{--x1:36%}.cut-c{--x1:58%}

/* ---------- typographie ---------- */
.t-hero,.t-1,.t-2,.t-3{font-family:var(--f-display);font-weight:800;letter-spacing:-.035em;text-wrap:balance}
.t-hero{font-size:clamp(2.9rem,7.6vw,6.9rem);line-height:.94}
.t-1{font-size:clamp(2.4rem,6vw,5.4rem);line-height:.98}
.t-2{font-size:clamp(1.9rem,4.2vw,3.5rem);line-height:1.04;letter-spacing:-.03em}
.t-3{font-size:clamp(1.25rem,2vw,1.6rem);line-height:1.2;letter-spacing:-.02em;font-weight:700}
.lede{font-size:clamp(1.125rem,1.5vw,1.375rem);line-height:1.5;max-width:42ch;color:var(--encre-2)}
.s-marine .lede{color:var(--on-dark)}
.eyebrow{display:flex;align-items:center;gap:1.1em;margin-bottom:1.4rem;font:600 .8125rem/1 var(--f-text);letter-spacing:.16em;text-transform:uppercase;color:var(--turq)}
.eyebrow::before{content:"";flex:none;width:34px;height:3px;background:var(--vert);transform:rotate(-22deg);transform-origin:left center}
.s-marine .eyebrow{color:var(--vert)}
.accent{color:var(--vert)}
.muted{color:var(--encre-2)}
.s-marine .muted{color:var(--on-dark)}
.todo{background:rgba(0,125,132,.1);outline:1px dashed rgba(0,27,89,.45);padding:0 .25em;font-style:normal}
.s-marine .todo{background:rgba(255,255,255,.1);outline-color:rgba(255,255,255,.6)}

/* ---------- boutons & liens ---------- */
.arr{display:inline-block;flex:none;width:1.15em;height:1.15em;background:currentColor;-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat;transition:transform .3s var(--ease)}
.btn{--bg:var(--vert);--cut:.9em;position:relative;isolation:isolate;display:inline-flex;align-items:center;gap:.7em;min-height:3.5rem;
  padding:0 calc(1.6em + var(--cut)) 0 1.6em;color:var(--marine);font:600 1rem/1.1 var(--f-text);text-decoration:none;transition:color .25s}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--bg);clip-path:polygon(0 0,100% 0,calc(100% - var(--cut)) 100%,0 100%);transition:transform .3s var(--ease)}
.btn:hover::before{transform:translateX(4px)}
.btn:hover .arr{transform:translateX(4px)}
.btn--ghost{--edge:var(--marine);color:var(--marine)}
.btn--ghost::before{background:var(--edge)}
.btn--ghost::after{content:"";position:absolute;inset:2px;z-index:-1;background:var(--surface);clip-path:polygon(0 0,100% 0,calc(100% - var(--cut) + 1px) 100%,0 100%);transition:background .25s}
.btn--ghost:hover{color:var(--surface)}
.btn--ghost:hover::after{background:var(--edge)}
.btn--ghost:hover::before{transform:none}
.s-marine .btn--ghost{--edge:#fff;color:#fff}
.btn.is-todo{cursor:default}
.btn.is-todo:hover{color:inherit}
.btn.is-todo:hover::before{transform:none}
.btn--ghost.is-todo:hover::after{background:var(--surface)}
.btns{display:flex;flex-wrap:wrap;gap:1rem 1.25rem}
.link{display:inline-flex;align-items:center;gap:.55em;font-weight:600;text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:.15em}
.link:hover .arr{transform:translateX(4px)}

/* ---------- photos : teinte marine + emplacement ---------- */
.ph{position:relative;margin:0;overflow:hidden;background:var(--marine);aspect-ratio:var(--ar)}
.ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.85) contrast(1.05)}
.ph::after{content:"";position:absolute;inset:0;background:var(--marine);mix-blend-mode:multiply;opacity:.38;pointer-events:none}
.ph__slot{display:none}
.ph.is-slot .ph__slot{position:absolute;left:0;bottom:0;z-index:2;display:flex;flex-direction:column;gap:.2rem;max-width:100%;padding:.7rem .9rem;background:rgba(0,27,89,.92);color:#fff;font-size:.75rem;line-height:1.35}
.ph__slot b{color:var(--vert);letter-spacing:.12em;text-transform:uppercase;font-size:.6875rem}
.ph--cut{--cx:22%;--cy:87%;clip-path:polygon(var(--cx) 0,100% 0,100% 100%,0 100%,0 var(--cy))}
.ph--cutp{--cx:30%;--cy:55%;clip-path:polygon(var(--cx) 0,100% 0,100% 100%,0 100%,0 var(--cy))}

/* ---------- en-tête ---------- */
.site-header{position:fixed;inset:0 0 auto 0;z-index:60;height:var(--hh);background:rgba(255,255,255,.96);box-shadow:0 1px 0 var(--trait);color:var(--marine);transition:background .3s,box-shadow .3s}
@supports (backdrop-filter:blur(8px)){.site-header{backdrop-filter:blur(10px)}}
.site-header__in{display:flex;align-items:center;justify-content:space-between;gap:2rem;max-width:var(--max);height:100%;margin-inline:auto;padding-inline:var(--gutter)}
.logo{display:block;line-height:0}
.logo img{height:34px;width:auto}
.logo__white{display:none}
body[data-theme=dark] .site-header:not(.is-solid),.site-header.is-open{color:#fff}
body[data-theme=dark] .site-header:not(.is-solid){background:transparent;box-shadow:none;backdrop-filter:none}
.site-header.is-open{background:var(--marine);box-shadow:none}
body[data-theme=dark] .site-header:not(.is-solid) .logo__color,.site-header.is-open .logo__color{display:none}
body[data-theme=dark] .site-header:not(.is-solid) .logo__white,.site-header.is-open .logo__white{display:block}
.nav ul{display:flex;align-items:center;gap:clamp(1.1rem,2.4vw,2.4rem)}
.nav a{position:relative;display:inline-block;padding:.5rem 0;font-weight:500;text-decoration:none}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:.1rem;height:3px;background:var(--vert);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav a:hover::after,.nav a[aria-current]::after{transform:scaleX(1)}
.nav a[aria-current]{font-weight:700}
.nav .nav__cta{padding:.75rem 1.3rem;background:var(--vert);color:var(--marine);font-weight:600;clip-path:polygon(0 0,100% 0,calc(100% - .7rem) 100%,0 100%);padding-right:1.7rem}
.nav .nav__cta::after{display:none}
.nav .nav__cta:hover{background:#fff}
.burger{display:none}
@media (max-width:899px){
  .js .burger{display:inline-flex;align-items:center;gap:.7rem;min-height:44px;padding:0 .2rem;background:none;border:0;color:inherit;font:600 .95rem var(--f-text);cursor:pointer}
  .burger__bars{position:relative;width:24px;height:12px;border-block:2px solid currentColor;transition:transform .3s}
  .burger__bars::after{content:"";position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:currentColor}
  .is-open .burger__bars{transform:rotate(-22deg)}
  .js .nav{position:fixed;inset:var(--hh) 0 0 0;z-index:-1;padding:2.5rem var(--gutter);overflow:auto;background:var(--marine);color:#fff;visibility:hidden;opacity:0;transform:translateY(-12px);transition:opacity .3s,transform .3s var(--ease),visibility .3s}
  .js .is-open .nav{visibility:visible;opacity:1;transform:none}
  .js .nav ul{flex-direction:column;align-items:flex-start;gap:.4rem}
  .js .nav a{font:800 clamp(1.9rem,8vw,2.6rem)/1.15 var(--f-display);letter-spacing:-.03em}
  .js .nav .nav__cta{margin-top:1rem;font:600 1.1rem var(--f-text);clip-path:none;padding:1rem 1.6rem}
  html:not(.js) .site-header{position:absolute;height:auto}
  html:not(.js) .site-header__in{flex-wrap:wrap;padding-block:1rem}
  html:not(.js) .nav ul{flex-wrap:wrap;gap:.4rem 1.2rem}
}

/* ---------- hero d'accueil ---------- */
.hero{position:relative;overflow:hidden;padding:calc(var(--hh) + clamp(2rem,5vw,4.5rem)) 0 calc(var(--rise) + 3rem)}
.hero__grid{display:grid;gap:2.5rem;align-items:center}
.hero__text .lede{margin-top:2rem}
.hero__text .btns{margin-top:2.25rem}
.hero .t-hero{margin-top:.2rem}
.ln{display:block;overflow:hidden;padding-bottom:.06em}
.ln>span{display:block}
.hero__a{position:relative;width:min(100%,560px);aspect-ratio:760/800;justify-self:end;margin-right:calc(var(--gutter)*-1)}
.hero__a .ph--leg{position:absolute;inset:0;aspect-ratio:auto;background:none;overflow:visible}
.hero__a .ph--leg img,.hero__a .ph--leg::after{clip-path:polygon(43.4% 0,72.4% 0,32% 100%,3% 100%)}
.hero__a .ph--leg::after{opacity:.3}
.hero__a .ph--leg.is-slot .ph__slot{left:0;bottom:0;max-width:min(17rem,60%);font-size:.7rem}
.a-plate{position:absolute;inset:0;background:var(--vert);clip-path:polygon(47.9% 0,76.9% 0,36.5% 100%,7.5% 100%)}
.a-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.a-svg path{fill:none;stroke-linecap:round}
.a-leg{stroke:rgba(255,255,255,.5);stroke-width:1.6}
.a-curve{stroke:var(--vert);stroke-width:9}
.hero__facts{display:flex;flex-wrap:wrap;gap:.6rem 2.4rem;margin-top:clamp(2.5rem,6vw,5rem);font:600 .8125rem/1.4 var(--f-text);letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark)}
.hero__facts li{display:flex;align-items:center;gap:.8em}
.hero__facts li::before{content:"";width:22px;height:2px;background:var(--vert);transform:rotate(-22deg)}
@media (min-width:900px){
  .hero{min-height:min(100svh,980px);display:flex;align-items:center}
  .hero>.wrap{width:100%}
  .hero__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
  .hero__a{width:min(52vw,760px);margin-right:calc(var(--gutter)*-1 - 8vw);transform:translateX(2vw)}
}
@media (max-width:899px){.hero__a{width:86%;margin-left:auto}}

/* animation d'entrée : une seule, en haut de l'accueil */
@media (prefers-reduced-motion:no-preference){
  .hero .a-svg path{stroke-dasharray:1;stroke-dashoffset:1}
  .hero .ph--leg img,.hero .ph--leg::after{animation:legIn 1.15s var(--ease) .1s both}
  .hero .a-plate{animation:plateIn 1.15s var(--ease) .28s both}
  .hero .a-leg{animation:draw 1.1s var(--ease) .55s forwards}
  .hero .a-curve{animation:draw 1.5s var(--ease) .75s forwards}
  .hero .ln>span{animation:lineIn .95s var(--ease) both}
  .hero .ln:nth-child(1)>span{animation-delay:.25s}
  .hero .ln:nth-child(2)>span{animation-delay:.4s}
  .hero .eyebrow,.hero .lede,.hero .btns,.hero__facts{animation:fadeUp .8s var(--ease) both}
  .hero .eyebrow{animation-delay:.1s}.hero .lede{animation-delay:.75s}.hero .btns{animation-delay:.9s}.hero__facts{animation-delay:1.05s}
}
@keyframes legIn{from{clip-path:polygon(3% 100%,32% 100%,32% 100%,3% 100%)}to{clip-path:polygon(43.4% 0,72.4% 0,32% 100%,3% 100%)}}
@keyframes plateIn{from{clip-path:polygon(7.5% 100%,36.5% 100%,36.5% 100%,7.5% 100%)}to{clip-path:polygon(47.9% 0,76.9% 0,36.5% 100%,7.5% 100%)}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes lineIn{from{transform:translateY(105%)}to{transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* révélation discrète au défilement */
@media (prefers-reduced-motion:no-preference){
  .js .rv{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
  .js .rv.in{opacity:1;transform:none}
}

/* ---------- en-tête de page (pages intérieures) ---------- */
.phero{position:relative;overflow:hidden;padding:calc(var(--hh) + clamp(3rem,7vw,6.5rem)) 0 clamp(4rem,8vw,7rem)}
.phero--dark{padding-bottom:calc(var(--rise) + 3rem)}
.phero__grid{display:grid;gap:2rem 3rem}
.phero .t-1{max-width:14ch}
.phero--wide .t-1{max-width:18ch}
.phero__side{align-self:end}
.trace{position:absolute;left:0;right:0;bottom:0;width:100%;height:auto;pointer-events:none}
.trace path{fill:none;stroke:var(--vert);stroke-width:5;stroke-linecap:round;vector-effect:non-scaling-stroke}
@media (min-width:900px){.phero__grid{grid-template-columns:minmax(0,8fr) minmax(0,4fr)}}

/* ---------- repères chiffrés ---------- */
.stats{display:grid;gap:3rem;margin-top:clamp(2.5rem,5vw,4rem)}
.stat{border-top:2px solid var(--marine);padding-top:1.2rem}
.stat__n{display:flex;align-items:baseline;gap:.12em;font:800 clamp(5rem,13vw,10.5rem)/.85 var(--f-display);letter-spacing:-.06em}
.stat__n small{font-size:.3em;letter-spacing:-.02em;color:var(--turq)}
.stat__n .todo{font-size:.22em;letter-spacing:0;font-weight:600}
.stat__t{margin-top:1rem}
.stat p{margin-top:.6rem;color:var(--encre-2);max-width:34ch}
.stats-note{margin-top:3rem;padding-top:1rem;border-top:1px solid var(--trait);color:var(--encre-2);font-size:.95rem}
@media (min-width:900px){
  .stats{grid-template-columns:repeat(3,1fr);align-items:start;gap:var(--gap)}
  .stat:nth-child(1){margin-top:9rem}.stat:nth-child(2){margin-top:4.5rem}.stat:nth-child(3){margin-top:0}
}

/* ---------- lignes éditoriales (aperçu des mandats) ---------- */
.sec-head{display:grid;gap:1.2rem 3rem}
.sec-head .lede{max-width:46ch}
@media (min-width:900px){.sec-head{grid-template-columns:minmax(0,7fr) minmax(0,4fr);align-items:end}}
.rows{margin-top:clamp(2.5rem,5vw,4rem);border-top:2px solid var(--marine)}
.row{position:relative;isolation:isolate;display:grid;gap:.4rem 2rem;align-items:center;padding:1.6rem 0;border-bottom:1px solid var(--trait);text-decoration:none;overflow:hidden}
.row::before{content:"";position:absolute;z-index:-1;inset:0;background:var(--vert);clip-path:polygon(0 0,0 0,0 100%,0 100%);transition:clip-path .5s var(--ease)}
.row:hover::before,.row:focus-visible::before{clip-path:polygon(0 0,100% 0,calc(100% - 3rem) 100%,0 100%)}
.row__n{font:600 .875rem var(--f-display);color:var(--turq)}
.row:hover .row__n{color:var(--marine)}
.row__name{font:800 clamp(2rem,5.4vw,4.6rem)/1 var(--f-display);letter-spacing:-.04em}
.row__cat{font-weight:600}
.row__txt{color:var(--encre-2);max-width:40ch}
.row:hover .row__txt{color:var(--marine)}
.row .arr{display:none}
@media (min-width:900px){
  .row{grid-template-columns:3.5rem minmax(0,6fr) minmax(0,4fr) 2rem;padding:2rem 1rem}
  .row .arr{display:block;justify-self:end}
}

/* ---------- deux entrées (accueil) ---------- */
.duo{display:grid;gap:3rem}
.duo__item{padding-top:1.4rem;border-top:2px solid var(--marine)}
.duo__item .t-2{margin-bottom:1rem}
.duo__item p{max-width:46ch;color:var(--encre-2)}
.duo__item .btns{margin-top:1.6rem}
@media (min-width:900px){
  .duo{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:calc(var(--gap)*3);align-items:start}
  .duo__media{margin-top:5rem}
  .duo__items{display:grid;gap:4rem}
}

/* ---------- bandeau d'appel à contact ---------- */
.cta{position:relative;overflow:hidden;padding-bottom:clamp(4rem,8vw,7rem)}
.cta__bg{position:absolute;inset:0;opacity:.35}
.cta__bg .ph{height:100%;aspect-ratio:auto}
.cta__bg .ph.is-slot .ph__slot{display:none}
.cta__in{position:relative}
.cta .t-1{max-width:15ch}
.cta__btns{display:flex;flex-wrap:wrap;gap:1rem 1.25rem;margin-top:2.2rem}
.cta .trace{bottom:-1px}

/* ---------- pied de page ---------- */
.site-footer{padding-top:clamp(3.5rem,7vw,6rem);font-size:.97rem}
.footer__grid{display:grid;gap:2.5rem 3rem}
.footer__brand img{height:34px;width:auto;margin-bottom:1.2rem}
.footer__brand p{max-width:30ch;color:var(--on-dark)}
.site-footer h2{font:600 .75rem/1 var(--f-text);letter-spacing:.16em;text-transform:uppercase;color:var(--vert);margin-bottom:1.1rem}
.site-footer li+li{margin-top:.5rem}
.site-footer a{text-decoration-color:rgba(255,255,255,.4)}
.site-footer a:hover{text-decoration-color:var(--vert)}
.footer__legal{color:var(--on-dark)}
.footer__bar{display:flex;flex-wrap:wrap;gap:.6rem 2rem;justify-content:space-between;margin-top:clamp(2.5rem,5vw,4rem);padding-block:1.4rem;border-top:1px solid var(--trait-dark);color:var(--on-dark);font-size:.875rem}
.footer__bar ul{display:flex;flex-wrap:wrap;gap:.4rem 1.6rem}
.footer__bar li+li{margin:0}
.linklike{padding:0;border:0;background:none;color:inherit;font:inherit;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}
@media (min-width:900px){.footer__grid{grid-template-columns:minmax(0,4fr) minmax(0,2fr) minmax(0,3fr) minmax(0,3fr)}}

/* ---------- bandeau cookies ---------- */
.cookie{position:fixed;left:var(--gutter);bottom:1rem;z-index:80;max-width:30rem;padding:1.3rem 1.4rem;background:#fff;color:var(--marine);border:2px solid var(--marine);box-shadow:8px 8px 0 var(--vert);font-size:.95rem;line-height:1.5}
.cookie[hidden]{display:none}
.cookie__t{font:800 1.1rem var(--f-display);margin-bottom:.5rem}
.cookie__btns{display:flex;gap:.8rem;margin-top:1rem}
.cookie__btn{flex:1;min-height:3rem;padding:0 1rem;background:#fff;color:var(--marine);border:2px solid var(--marine);font:600 1rem var(--f-text);cursor:pointer}
.cookie__btn:hover{background:var(--marine);color:#fff}
@media (max-width:560px){.cookie{left:.75rem;right:.75rem;bottom:.75rem;max-width:none}}

/* ---------- mandats ---------- */
.mandat{padding-block:clamp(3.5rem,7vw,7rem);border-top:1px solid var(--trait)}
.cut-top>.mandat:first-child{padding-top:0}
.mandat__grid{display:grid;gap:2rem 4rem}
.mandat__num{font:600 .9rem var(--f-display);color:var(--turq);margin-bottom:.8rem}
.mandat__name{font:800 clamp(2.4rem,6.4vw,5.8rem)/.95 var(--f-display);letter-spacing:-.045em;overflow-wrap:anywhere}
.mandat__cat{margin-top:1rem;font:600 .8125rem/1.3 var(--f-text);letter-spacing:.16em;text-transform:uppercase;color:var(--turq)}
.mandat__body{display:grid;gap:2rem}
.mandat__body .lede{max-width:52ch;color:var(--marine)}
.mandat__body .mandat__txt{max-width:52ch;margin-top:-1rem;color:var(--encre-2)}
.mandat__cols{display:grid;gap:2rem 2.5rem}
.label{margin-bottom:.9rem;font:600 .75rem/1 var(--f-text);letter-spacing:.16em;text-transform:uppercase;color:var(--turq)}
.list-bar li{position:relative;padding:.55rem 0 .55rem 2rem;border-bottom:1px solid var(--trait)}
.list-bar li::before{content:"";position:absolute;left:0;top:1.3em;width:18px;height:3px;background:var(--vert);transform:rotate(-22deg);transform-origin:left center}
@media (min-width:900px){
  .mandat__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  .mandat__head{position:sticky;top:calc(var(--hh) + 2rem);align-self:start}
  .mandat__cols{grid-template-columns:1fr 1fr}
  .mandat:nth-of-type(even) .mandat__body{margin-top:5rem}
}

/* ---------- marchés & méthode ---------- */
.marches{margin-top:clamp(2.5rem,5vw,4rem);border-top:2px solid var(--marine)}
.marche{display:grid;gap:.8rem 3rem;padding:2rem 0;border-bottom:1px solid var(--trait)}
.marche__name{font:800 clamp(1.7rem,3.6vw,3rem)/1.05 var(--f-display);letter-spacing:-.035em}
.marche__name span{display:block;margin-bottom:.6rem;font:600 .875rem var(--f-display);letter-spacing:0;color:var(--turq)}
.marche p{max-width:56ch;color:var(--encre-2)}
.marche p strong{color:var(--marine);font-weight:600}
@media (min-width:900px){
  .marche{grid-template-columns:minmax(0,5fr) minmax(0,6fr);padding:2.6rem 0}
  .marche:nth-child(even) .marche__txt{margin-left:2rem}
}
.market-media{display:grid;gap:var(--gap);margin-top:clamp(2.5rem,5vw,4rem)}
@media (min-width:900px){.market-media{grid-template-columns:minmax(0,7fr) minmax(0,4fr);align-items:end}.market-media .ph:last-child{margin-bottom:-3rem}}
.steps{position:relative;display:grid;gap:2.5rem;margin-top:clamp(3rem,6vw,5rem);counter-reset:s}
.step{position:relative;padding:1.4rem 0 0;border-top:2px solid var(--vert)}
.step__n{display:block;margin-bottom:1.2rem;font:800 clamp(3.4rem,7vw,6rem)/.9 var(--f-display);letter-spacing:-.05em;color:var(--vert)}
.step h3{margin-bottom:.8rem}
.step p{color:var(--on-dark);max-width:34ch}
.step .todo{color:#fff}
@media (min-width:1000px){
  .steps{grid-template-columns:repeat(4,1fr);gap:var(--gap);align-items:start}
  .step:nth-child(1){margin-top:9rem}.step:nth-child(2){margin-top:6rem}.step:nth-child(3){margin-top:3rem}.step:nth-child(4){margin-top:0}
}

/* ---------- à propos ---------- */
.about-hero{display:grid;gap:2.5rem 4rem;align-items:end}
@media (min-width:900px){.about-hero{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.about-hero .ph{margin-bottom:-4rem}}
.intro-cols{display:grid;gap:1.5rem 4rem}
.intro-cols p{max-width:52ch}
@media (min-width:900px){.intro-cols{grid-template-columns:minmax(0,4fr) minmax(0,7fr)}}
.timeline{margin-top:2rem;border-top:2px solid var(--marine)}
.timeline li{display:grid;gap:.3rem 2rem;padding:1.4rem 0;border-bottom:1px solid var(--trait)}
.timeline__y{font:700 .95rem var(--f-display);color:var(--turq)}
.timeline strong{display:block;font:700 1.15rem var(--f-display)}
@media (min-width:700px){.timeline li{grid-template-columns:12rem minmax(0,1fr)}}
.principles{display:grid;gap:2.2rem 3rem;margin-top:clamp(2.5rem,5vw,4rem)}
.principle{padding-top:1.2rem;border-top:2px solid var(--vert)}
.principle h3{margin-bottom:.6rem}
.principle p{color:var(--on-dark);max-width:38ch}
@media (min-width:800px){.principles{grid-template-columns:1fr 1fr}.principle:nth-child(even){margin-top:3.5rem}}
.zone{display:grid;gap:2rem 4rem}
.zone__big{font:800 clamp(3rem,10vw,9rem)/.9 var(--f-display);letter-spacing:-.05em}
@media (min-width:900px){.zone{grid-template-columns:minmax(0,7fr) minmax(0,4fr);align-items:end}}
.facts{display:grid;border-top:2px solid var(--marine)}
.facts div{display:grid;gap:.2rem 2rem;padding:.9rem 0;border-bottom:1px solid var(--trait)}
.facts dt{font:600 .75rem/1.6 var(--f-text);letter-spacing:.14em;text-transform:uppercase;color:var(--turq)}
.facts dd{font-weight:500}
@media (min-width:600px){.facts div{grid-template-columns:12rem 1fr}}

/* ---------- contact ---------- */
.profil{display:grid;gap:1rem;border:0;padding:0;margin:0}
.profil legend{padding:0;margin-bottom:1rem;font:600 .8125rem/1 var(--f-text);letter-spacing:.16em;text-transform:uppercase;color:var(--turq)}
.profil__opt{position:relative;display:block;cursor:pointer}
.profil__opt input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.profil__box{position:relative;display:block;height:100%;padding:1.5rem 1.6rem 1.5rem 4.2rem;border:2px solid var(--marine);background:#fff;transition:background .25s,color .25s}
.profil__box::before{content:"";position:absolute;left:1.5rem;top:1.7rem;width:1.5rem;height:1.5rem;border:2px solid currentColor;border-radius:50%}
.profil__box::after{content:"";position:absolute;left:1.95rem;top:2.15rem;width:.6rem;height:.6rem;border-radius:50%;background:var(--marine);transform:scale(0);transition:transform .2s var(--ease)}
.profil__box b{display:block;font:800 clamp(1.2rem,2.2vw,1.6rem)/1.15 var(--f-display);letter-spacing:-.03em}
.profil__box span{display:block;margin-top:.4rem;color:var(--encre-2)}
.profil__opt input:checked+.profil__box{background:var(--marine);color:#fff}
.profil__opt input:checked+.profil__box span{color:var(--on-dark)}
.profil__opt input:checked+.profil__box::before{border-color:var(--vert)}
.profil__opt input:checked+.profil__box::after{background:var(--vert);transform:scale(1)}
.profil__opt input:focus-visible+.profil__box{outline:3px solid var(--marine);outline-offset:4px}
@media (min-width:760px){.profil{grid-template-columns:1fr 1fr}}
.contact-grid{display:grid;gap:3rem 5rem;margin-top:clamp(2.5rem,5vw,4rem)}
@media (min-width:980px){.contact-grid{grid-template-columns:minmax(0,7fr) minmax(0,4fr);align-items:start}.coords{position:sticky;top:calc(var(--hh) + 2rem)}}
.ctx{display:flex;align-items:center;gap:.8rem;margin-bottom:1.5rem;padding:.8rem 1rem;background:var(--brume);border-left:4px solid var(--vert)}
.ctx[hidden]{display:none}
.form{display:grid;gap:1.4rem 1.5rem}
@media (min-width:640px){.form{grid-template-columns:1fr 1fr}.field--full,.form__full{grid-column:1/-1}}
.field{display:grid;gap:.45rem;align-content:start}
.field[hidden],.fieldset[hidden]{display:none}
.field label,.fieldset legend{font-weight:600;font-size:.97rem}
.field .opt{font-weight:400;color:var(--encre-2)}
.field input,.field select,.field textarea{width:100%;min-height:3.25rem;padding:.8rem 1rem;border:2px solid var(--ui);border-radius:0;background:#fff;color:var(--marine);font:400 1rem var(--f-text)}
.field textarea{min-height:9rem;resize:vertical}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:3px solid var(--marine);outline-offset:2px;border-color:var(--marine)}
.field [aria-invalid=true]{border-color:#B3261E;background:#FFF6F5}
.err{display:flex;gap:.5rem;color:#B3261E;font-size:.9rem;font-weight:500}
.err[hidden]{display:none}
.hint{color:var(--encre-2);font-size:.9rem}
.fieldset{border:0;padding:0;margin:0;display:grid;gap:.7rem}
.checks{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem}
.check{display:flex;align-items:flex-start;gap:.7rem;cursor:pointer}
.check input{flex:none;width:1.4rem;height:1.4rem;margin:.15rem 0 0;accent-color:var(--marine)}
.check span{line-height:1.45}
.trap{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__summary{padding:1rem 1.2rem;border:2px solid #B3261E;background:#FFF6F5;color:#7A1B16}
.form__summary[hidden]{display:none}
.form__summary ul{margin-top:.5rem;list-style:disc;padding-left:1.2rem}
.form__summary a{color:inherit;font-weight:600}
.form__send{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.6rem}
.btn[disabled]{opacity:.6;cursor:wait}
.confirm{padding:clamp(1.6rem,4vw,3rem);background:var(--marine);color:#fff}
.confirm[hidden]{display:none}
.confirm .t-2{margin-bottom:1rem}
.confirm p{color:var(--on-dark);max-width:46ch}
.confirm .btns{margin-top:1.6rem}
.coords{padding:clamp(1.5rem,3vw,2.2rem);background:var(--brume);border-top:4px solid var(--vert)}
.coords h2{margin-bottom:1.4rem}
.coords dl{display:grid;gap:1.1rem}
.coords dt{font:600 .75rem/1.4 var(--f-text);letter-spacing:.14em;text-transform:uppercase;color:var(--turq)}
.coords dd{font-weight:500;overflow-wrap:anywhere}
.coords .btn{margin-top:1.8rem}

/* ---------- pages légales ---------- */
.prose{max-width:72ch}
.prose h2{margin:3rem 0 1rem;font:800 clamp(1.4rem,2.6vw,1.9rem)/1.15 var(--f-display);letter-spacing:-.03em}
.prose h3{margin:1.6rem 0 .5rem;font:700 1.1rem var(--f-display)}
.prose p,.prose ul{margin-bottom:1rem}
.prose ul{list-style:disc;padding-left:1.3rem}
.prose li{margin-bottom:.35rem}
.prose a{font-weight:600}
.prose table{width:100%;border-collapse:collapse;margin:1rem 0 1.5rem;font-size:.97rem}
.prose th,.prose td{padding:.7rem .8rem;border-bottom:1px solid var(--trait);text-align:left;vertical-align:top}
.prose th{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--turq)}
.notfound{min-height:80svh;display:flex;align-items:center}
