/* AlpiWeb — feuille de style unique (V2)
   Sommaire : 1. Fondations  2. Composants  3. En-tête / pied  4. Accueil  5. Pages intérieures  6. Formulaire  7. Responsive */

/* ---------- 1. Fondations ---------- */
@font-face{font-family:"Geist";src:url("../fonts/geist-var.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --ink:#10163a;      /* texte */
  --nuit:#1c255f;     /* couleur de marque, boutons, aplats */
  --violet:#4b3fcf;   /* liens, accent, tracé */
  --neve:#f1f3f8;     /* fonds alternés */
  --accent-light:#aea6ff; /* accent sur fond bleu nuit */
  --sky:#eceffa;      /* ciel du hero */
  --ground:#ffffff;   /* premier plan des montagnes, prolongé par le bandeau logos */
  --rule:#dde1ec;     /* filets */
  --muted:#535d7a;    /* texte secondaire */
  --white:#fff;
  --wrap:1340px;
  --gutter:clamp(20px,4vw,48px);
  --header-h:72px;
  --radius:10px;
  --font:"Geist",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--font);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%}
a{color:inherit}
p{margin:0 0 1em}
h1,h2,h3{margin:0;line-height:1.1;letter-spacing:-.03em;text-wrap:balance}
h1,h2{font-weight:380}
h3{font-weight:620}
/* Mise en valeur dans les titres : *texte* → <b>, plus gras et en couleur d'accent */
h1 b,h2 b{font-weight:680;color:var(--violet)}
.prestai-band h2 b,.cta-band h2 b{color:var(--accent-light)}
h2{font-size:clamp(30px,3.4vw,44px)}
h3{font-size:21px;line-height:1.25;letter-spacing:-.02em}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--violet);outline-offset:3px;border-radius:3px}
::selection{background:#d9d5ff}
.wrap{width:min(var(--wrap),100% - 2*var(--gutter));margin-inline:auto}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.ico{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:16px;top:-80px;z-index:100;background:var(--white);padding:10px 16px;border-radius:6px;box-shadow:0 4px 18px #10163a33}
.skip-link:focus{top:12px}

/* ---------- 2. Composants ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border-radius:6px;border:1.5px solid transparent;font-weight:620;font-size:16px;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}
.btn .ico{width:18px;height:18px}
.btn-primary{background:var(--nuit);color:var(--white)}
.btn-primary:hover{background:#2b3584}
.btn-ghost{border-color:#b8bfd4;color:var(--nuit);background:transparent}
.btn-ghost:hover{border-color:var(--nuit)}
.btn-light{background:var(--white);color:var(--nuit)}
.btn-light:hover{background:#e7e9ff}
.text-link{display:inline-flex;align-items:center;gap:8px;font-weight:620;color:var(--violet);text-decoration:none}
.text-link .ico{width:18px;height:18px;transition:transform .15s}
a.text-link:hover .ico,a:hover>.text-link .ico{transform:translateX(3px)}
.text-link--light{color:var(--white)}
.meta{font-size:14px;font-weight:550;color:var(--violet);margin:0 0 6px}
.section{padding-block:clamp(72px,9vw,120px)}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:40px}
.split{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:start}
.split-head{position:sticky;top:calc(var(--header-h) + 32px)}
.split-head p{color:var(--muted);margin-top:16px;max-width:36ch}
.split-head a{color:var(--violet)}

/* Visuel de référence : fenêtre de navigateur */
.ref-visual{margin:0}
.browser{border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;background:var(--white)}
.browser-bar{display:flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-bottom:1px solid var(--rule);background:var(--white)}
.browser-bar i{width:8px;height:8px;border-radius:50%;background:#d4d8e4}
.browser-bar span{margin-left:10px;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.browser-screen{position:relative;aspect-ratio:16/10;background:var(--tint,#eef1f7);display:grid;place-items:center;overflow:hidden}
.screen-badge{position:absolute;top:12px;right:12px;z-index:1;padding:5px 12px;border-radius:999px;background:var(--nuit);color:var(--white);font-size:13px;font-weight:600;line-height:1.3}
.browser-screen>img{width:100%;height:100%;object-fit:cover;object-position:top}
.browser-screen>.browser-logo{width:auto;height:auto;max-width:44%;max-height:34%;object-fit:contain}
.browser-wordmark{font-size:clamp(20px,2.2vw,30px);font-weight:750;letter-spacing:-.03em;color:var(--nuit);opacity:.75;text-align:center;padding:0 16px}
.browser-screen>.browser-logo--square{max-height:30%;max-width:30%}
.ref-visual--lg .browser-screen{aspect-ratio:16/11}
.ref-visual--sm .browser-bar{height:24px}
.ref-visual--sm .browser-bar span{font-size:11px}

/* ---------- 3. En-tête et pied ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .2s}
.site-header.is-scrolled{border-bottom-color:var(--rule)}
.header-bar{height:var(--header-h);display:flex;align-items:center;gap:32px}
.brand img{width:150px;height:auto}
.site-nav{display:flex;align-items:center;gap:28px;margin-left:auto}
.nav-list{display:flex;align-items:center;gap:6px;list-style:none;margin:0;padding:0}
.nav-item>a,.nav-sub-toggle{display:inline-flex;align-items:center;gap:6px;padding:10px 12px;border:0;background:none;font-size:15.5px;font-weight:560;text-decoration:none;cursor:pointer;border-radius:6px}
.nav-item>a:hover,.nav-sub-toggle:hover{color:var(--violet)}
.nav-item>a[aria-current],.nav-item.is-current>.nav-sub-toggle{color:var(--violet)}
.nav-sub-toggle .ico{width:16px;height:16px;transition:transform .15s}
.nav-sub-toggle[aria-expanded="true"] .ico{transform:rotate(180deg)}
.has-sub{position:relative}
.nav-sub{position:absolute;top:calc(100% + 8px);left:-12px;width:330px;list-style:none;margin:0;padding:8px;background:var(--white);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:0 18px 40px -12px #10163a33;display:none}
.nav-sub a{display:block;padding:10px 12px;border-radius:6px;text-decoration:none}
.nav-sub a:hover,.nav-sub a[aria-current]{background:var(--neve)}
.nav-sub strong{display:block;font-weight:640;font-size:15.5px}
.nav-sub span{display:block;font-size:13.5px;color:var(--muted)}
.has-sub.is-open .nav-sub{display:block}
html:not(.js) .has-sub:hover .nav-sub,html:not(.js) .has-sub:focus-within .nav-sub{display:block}
.nav-cta{min-height:42px;padding:0 18px;font-size:15px}
.nav-toggle{display:none}

.site-footer{background:var(--neve);border-top:1px solid var(--rule);padding:64px 0 28px;font-size:15px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px}
.footer-about img{margin-bottom:18px}
.footer-about p{color:var(--muted);max-width:36ch}
.footer-contact a{color:var(--ink);font-weight:560;text-decoration:none}
.footer-contact a:hover{color:var(--violet)}
.footer-title{font-size:15px;font-weight:650;color:var(--violet);margin-bottom:14px;letter-spacing:0}
.footer-links{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.footer-links a{color:var(--muted);text-decoration:none}
.footer-links a:hover{color:var(--violet)}
.footer-links .ico{width:14px;height:14px;display:inline-block;vertical-align:-2px}
.footer-base{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:48px;padding-top:20px;border-top:1px solid var(--rule);color:var(--muted);font-size:14px}

/* ---------- 4. Accueil ---------- */
/* Hero : un ciel d'altitude, la carte topo, et les massifs autour de Chambéry au premier plan. */
.page-home .site-header:not(.is-scrolled){background:var(--sky);backdrop-filter:none;-webkit-backdrop-filter:none}
.hero{position:relative;isolation:isolate;padding:clamp(40px,5vw,76px) 0 max(84px,calc(10.625vw + 8px));overflow:hidden;
  background:radial-gradient(ellipse 48% 60% at 76% 34%,#e3e0ff 0%,rgba(227,224,255,0) 70%),linear-gradient(180deg,var(--sky) 0%,#f1f2fb 55%,#f6f7fc 100%)}
.hero-grid{position:relative;z-index:1}
.hero-ridges{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:auto;aspect-ratio:1600/170;min-height:84px;z-index:0;pointer-events:none}
.ridge--far{fill:#d9dcf1}
.ridge--mid{fill:#e5e7f6}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(24px,4vw,56px);align-items:center}
.hero-kicker{display:inline-flex;align-items:center;gap:10px;margin:0 0 28px;padding:9px 18px;border:1.5px solid #c9c4f5;border-radius:999px;background:transparent;font-size:15px;line-height:1.2}
.kicker-sep{width:22px;height:12px;flex:none;fill:none;stroke:#b3abf2;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.kicker-role{font-weight:650;color:var(--violet);white-space:nowrap}
.kicker-place{display:inline-flex;align-items:center;gap:5px;color:var(--muted);white-space:nowrap}
.kicker-place .ico{width:15px;height:15px;color:var(--violet)}
.hero h1{font-size:clamp(40px,5vw,70px);font-weight:450;line-height:1.04;letter-spacing:-.045em;max-width:none}
.hero h1 b{font-weight:850;display:block}
.hero-lead{font-size:clamp(18px,1.6vw,21px);line-height:1.55;font-weight:350;color:#323b5d;max-width:46ch;margin:28px 0 34px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.hero-map{position:relative;aspect-ratio:640/560;width:100%;max-width:560px;justify-self:start;margin-left:clamp(0px,1.2vw,16px)}
.hero-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.topo .c{fill:none;stroke:#b8bfd8;stroke-width:.8;stroke-linejoin:round;stroke-linecap:round;transform-origin:412px 122px;transform-box:view-box}
.topo .c--major{stroke:#8a94b6;stroke-width:1.3}
.topo-drift{transform-origin:412px 122px;transform-box:view-box}
.topo-parallax{transition:transform .8s cubic-bezier(.2,.7,.2,1);transform:translate(var(--px,0px),var(--py,0px))}
/* Animation : 1. les courbes se dessinent du pied vers le sommet ; 2. l'itinéraire se trace ;
   3. en continu : vague d'altitude, ondulation des courbes, marcheur qui monte vers « Mise en ligne », carte qui respire. */
.js .topo .c{stroke-dasharray:1;stroke-dashoffset:1;
  animation:contour-in 1.3s cubic-bezier(.3,.1,.2,1) calc(var(--i) * .035s) forwards,
            altitude 6s ease-in-out calc(2.4s + var(--i) * .11s) infinite,
            ripple 7s ease-in-out calc(var(--i) * -.27s) infinite}
.js .topo .c--major{animation-name:contour-in,altitude-major,ripple}
.js .topo-drift{animation:drift 22s ease-in-out infinite alternate}
@keyframes contour-in{to{stroke-dashoffset:0}}
@keyframes altitude{0%,22%,100%{stroke:#b8bfd8;stroke-width:.8}8%{stroke:#7a6ff0;stroke-width:1.2}}
@keyframes altitude-major{0%,22%,100%{stroke:#8a94b6}8%{stroke:var(--violet)}}
@keyframes ripple{0%,100%{transform:scale(1)}50%{transform:scale(1.022)}}
@keyframes drift{from{transform:scale(1) rotate(0)}to{transform:scale(1.04) rotate(-1.5deg)}}
.wp-halo{fill:var(--violet)!important;stroke:none!important;opacity:0;transform-origin:412px 122px;transform-box:view-box}
.js .wp-halo{animation:halo 3s ease-out 2.8s infinite}
@keyframes halo{0%{opacity:.35;transform:scale(1)}100%{opacity:0;transform:scale(2.6)}}
.route-line{fill:none;stroke:var(--violet);stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}
.hiker{fill:var(--violet);stroke:var(--white);stroke-width:2;opacity:0;
  offset-path:path("M70 505 C120 488 160 470 205 432 C245 398 238 360 262 330 C288 298 330 300 338 262 C346 226 318 210 340 182 C362 156 392 150 412 122");offset-rotate:0deg}
.js .hiker{animation:climb 7s cubic-bezier(.45,.1,.55,.9) 3s infinite}
@keyframes climb{0%{offset-distance:0%;opacity:0}6%{opacity:1}88%{opacity:1}100%{offset-distance:100%;opacity:0}}
.wp circle{fill:var(--white);stroke:var(--nuit);stroke-width:2.5}
.wp-top circle{fill:var(--nuit);stroke:var(--white);stroke-width:3}
.wp text{font-family:var(--font);font-size:16px;font-weight:560;letter-spacing:-.01em;fill:var(--ink);paint-order:stroke;stroke:var(--sky);stroke-width:6px;stroke-linejoin:round}
.wp-top text{font-size:18px;font-weight:650}
.js .route-line{stroke-dashoffset:1;animation:draw 1.6s cubic-bezier(.45,.05,.3,1) 1.1s forwards}
.js .wp{opacity:0;animation:pop .4s ease calc(var(--d) + 1s) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes pop{to{opacity:1}}
/* TMA : drapeau planté au sommet, puis boucle de maintenance qui tourne en continu */
.flag line{stroke:var(--nuit);stroke-width:2.5;stroke-linecap:round}
.flag path{fill:var(--violet)}
.flag{transform-origin:412px 122px;transform-box:view-box}
.tma-orbit{fill:none;stroke:var(--nuit);stroke-width:1.8;stroke-dasharray:3 4;stroke-linecap:round}
.tma-label{font-family:var(--font);font-size:16px;font-weight:560;letter-spacing:-.01em;fill:var(--ink);paint-order:stroke;stroke:var(--sky);stroke-width:6px;stroke-linejoin:round}
.js .flag{transform:scaleY(0);animation:flag-up .5s cubic-bezier(.3,1.4,.5,1) 2.7s forwards}
.js .tma{opacity:0;animation:pop .6s ease 3.1s forwards}
.js .tma-orbit{animation:orbit-flow 4s linear infinite}
@keyframes flag-up{to{transform:scaleY(1)}}
@keyframes orbit-flow{to{stroke-dashoffset:-14}}

.logos{background:var(--white);padding:30px 0}
.logos-inner{display:flex;align-items:center;gap:40px}
.logos h2{font-size:17px;font-weight:650;color:var(--nuit);letter-spacing:-.01em;flex:none;max-width:12ch;line-height:1.3}
.logo-row{list-style:none;margin:0;padding:0;display:flex;align-items:center;justify-content:space-between;gap:28px;flex:1;flex-wrap:wrap}
.logo-row img{width:auto;object-fit:contain;filter:grayscale(1) contrast(1.15);opacity:.75}
.logo-row .logo--wide{height:30px;max-width:118px}
.logo-row .logo--square{height:46px;max-width:60px}

.exp-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.exp-item{display:grid;grid-template-columns:48px minmax(0,1fr) 44px;gap:24px;padding:32px 0;border-bottom:1px solid var(--rule);align-items:start}
.exp-icon{width:48px;height:48px;border-radius:50%;background:#ecebff;display:grid;place-items:center;color:var(--violet)}
.exp-icon .ico{width:22px;height:22px}
.exp-item h3{font-size:clamp(22px,2vw,27px);font-weight:600;margin-bottom:10px}
.exp-item h3 a{text-decoration:none}
.exp-item h3 a:hover{color:var(--violet)}
.exp-item p{color:var(--muted);margin:0;max-width:60ch}
.exp-item .exp-examples{margin-top:12px;font-size:15px;color:var(--ink)}
.exp-examples a{color:var(--violet);text-underline-offset:3px}
.exp-link{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--rule);display:grid;place-items:center;color:var(--nuit);transition:border-color .15s,background-color .15s}
.exp-link:hover{border-color:var(--nuit);background:var(--nuit);color:var(--white)}

.cases{background:var(--neve)}
.case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 40px}
.case-card-link{display:block;text-decoration:none;height:100%}
.case-card .browser{transition:transform .25s ease}
.case-card-link:hover .browser{transform:translateY(-4px)}
.case-card .browser-screen{aspect-ratio:16/7}
.case-card .browser-screen>.browser-logo{max-height:46%}
.case-card-body{padding-top:18px}
.case-card h3{font-size:26px;margin-bottom:8px}
.case-card .text-link .ico{width:16px;height:16px}
.case-card-body>p:not(.meta){color:var(--muted);margin-bottom:12px;max-width:52ch}

.prestai-band{background:var(--nuit);color:var(--white);padding:clamp(56px,7vw,88px) 0}
.prestai-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:end}
.prestai-logo{width:200px;height:auto;margin-bottom:24px}
.prestai-band h2{color:var(--white);max-width:16ch}
.prestai-band p{color:#d9dcf2;font-size:18px;max-width:52ch}
.prestai-band .prose p,.prestai-band .prose li{color:#d9dcf2}
.prestai-band .prose a:not(.btn){color:var(--white)}
.prestai-band .split-head .prestai-logo{margin-bottom:20px}
.prestai-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:28px}

.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;counter-reset:step;position:relative}
.steps::before{content:"";position:absolute;left:22px;right:calc((100% - 96px)/4 - 23px);top:22px;height:2px;background:repeating-linear-gradient(90deg,var(--violet) 0 10px,transparent 10px 18px)}
.steps li{counter-increment:step;position:relative}
.steps li::before{content:counter(step);display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--white);border:2px solid var(--violet);color:var(--violet);font-weight:700;font-size:18px;margin-bottom:22px;position:relative}
.steps li:last-child::before{background:var(--violet);color:var(--white)}
.steps h3{margin-bottom:10px}
.steps p{color:var(--muted);margin:0;font-size:16px}

.quotes{background:var(--neve)}
.quote-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:32px;margin-top:40px}
.quote{margin:0;padding-left:24px;border-left:3px solid var(--violet)}
.quote blockquote{margin:0 0 16px;font-size:20px;line-height:1.5}
.quote figcaption strong{display:block}
.quote figcaption span{color:var(--muted);font-size:15px}

.about{border-top:1px solid var(--rule)}
.about-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:center}
/* Portrait rond entouré de courbes de niveau, comme le sommet de la carte du hero */
.about-portrait{position:relative;width:min(480px,100%);aspect-ratio:1;justify-self:center}
.portrait-rings{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ring{fill:none;stroke-linejoin:round}
.ring--1{stroke:var(--violet);stroke-width:.45}
.ring--2{stroke:#b9b3f3;stroke-width:.35;stroke-dasharray:.42 .49}
.ring--3{stroke:#d9dcf0;stroke-width:.35}
.js .portrait-rings{animation:rings-turn 60s linear infinite;transform-origin:50% 50%}
@keyframes rings-turn{to{transform:rotate(360deg)}}
.portrait-img{position:absolute;inset:11%;width:78%;height:78%;border-radius:50%;object-fit:cover;background:var(--neve)}
.portrait-placeholder{display:grid;place-items:center}
.portrait-placeholder .ico{width:72px;height:40px;fill:var(--nuit);stroke:none}
.about-copy h2{margin-bottom:24px}
.about-copy>p{font-size:18px;color:#323b5d;max-width:58ch}
.facts{display:grid;grid-template-columns:repeat(4,auto);justify-content:start;gap:14px 36px;margin:32px 0 0;padding-top:24px;border-top:1px solid var(--rule)}
.facts dt{font-size:14px;color:var(--muted)}
.facts dd{margin:2px 0 0;font-weight:650;color:var(--violet)}
.about-links{display:flex;gap:20px;margin-top:24px}
.about-links a{display:inline-flex;align-items:center;gap:4px;color:var(--violet);font-weight:600;text-decoration:none}
.about-links .ico{width:15px;height:15px}

.faq{background:var(--neve)}
.faq-list{border-top:1px solid var(--rule)}
.faq-list details{border-bottom:1px solid var(--rule)}
.faq-list summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;cursor:pointer;font-weight:640;font-size:19px;line-height:1.35}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:hover{color:var(--violet)}
.faq-sign{position:relative;width:16px;height:16px;flex:none}
.faq-sign::before,.faq-sign::after{content:"";position:absolute;left:0;top:7px;width:16px;height:2px;background:currentColor;transition:transform .2s}
.faq-sign::after{transform:rotate(90deg)}
details[open] .faq-sign::after{transform:rotate(0)}
.faq-list details p{color:var(--muted);margin:0 0 26px;max-width:62ch}

.contact-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:start}
.contact-aside{position:sticky;top:calc(var(--header-h) + 32px)}
.contact-aside>p{color:var(--muted);font-size:18px;margin:20px 0 28px;max-width:40ch}
.contact-direct{list-style:none;margin:0 0 28px;padding:0;display:grid;gap:14px}
.contact-direct li{display:flex;align-items:center;gap:12px;font-weight:600}
.contact-direct .ico{color:var(--violet)}
.contact-direct a{text-decoration:none}
.contact-direct a:hover{color:var(--violet)}

/* Apparitions au défilement (classes posées par site.js, uniquement sur l'accueil) */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--rd,0s),transform .8s cubic-bezier(.2,.7,.2,1) var(--rd,0s)}
.reveal--fade{transform:none}
.reveal--left{transform:translateX(-28px)}
.reveal.is-in{opacity:1;transform:none}
.reveal--zoom{transform:none}
.reveal--zoom .portrait-img{transform:scale(.88);transition:transform 1s cubic-bezier(.2,.8,.2,1) .1s}
.reveal--zoom .portrait-rings path{stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset 1.6s cubic-bezier(.3,.1,.2,1)}
.reveal--zoom .ring--2{stroke-dasharray:100;transition-delay:.2s}
.reveal--zoom .ring--3{transition-delay:.4s}
.reveal--zoom.is-in .portrait-img{transform:none}
.reveal--zoom.is-in .portrait-rings path{stroke-dashoffset:0}
.reveal--zoom.is-in .ring--2{stroke-dasharray:.42 .49;stroke-dashoffset:0;transition:none}
.reveal--steps{opacity:1;transform:none}
.reveal--steps::before{transform:scaleX(0);transform-origin:left;transition:transform 1.4s cubic-bezier(.4,.1,.2,1)}
.reveal--steps li{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
.reveal--steps li::before{transform:scale(.4);transition:transform .5s cubic-bezier(.3,1.5,.5,1)}
.reveal--steps li:nth-child(1),.reveal--steps li:nth-child(1)::before{transition-delay:.1s}
.reveal--steps li:nth-child(2),.reveal--steps li:nth-child(2)::before{transition-delay:.45s}
.reveal--steps li:nth-child(3),.reveal--steps li:nth-child(3)::before{transition-delay:.8s}
.reveal--steps li:nth-child(4),.reveal--steps li:nth-child(4)::before{transition-delay:1.15s}
.reveal--steps.is-in::before{transform:scaleX(1)}
.reveal--steps.is-in li{opacity:1;transform:none}
.reveal--steps.is-in li::before{transform:none}

.carousel-hint{display:none;align-items:center;gap:8px;margin:4px 0 0;font-size:14px;color:var(--muted)}
.carousel-hint .ico{width:16px;height:16px}
/* Barre d'action fixe en bas d'écran (mobile) */
.mobile-cta{display:none}
@media (max-width:600px){

  .mobile-cta{display:flex;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:10px max(16px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));background:rgba(255,255,255,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--rule);transform:translateY(110%);transition:transform .3s ease}
  .mobile-cta.is-visible{transform:none}
  .mobile-cta .btn{min-height:46px;font-size:15px}
  .mobile-cta .btn-primary{flex:1}
  .mobile-cta .btn-ghost{flex:0 0 auto;padding:0 16px}
  .site-footer{padding-bottom:96px}
}

/* ---------- 5. Pages intérieures ---------- */
.page-hero{position:relative;isolation:isolate;overflow:hidden;padding:clamp(28px,3.4vw,48px) 0 clamp(48px,5.5vw,76px);background:linear-gradient(180deg,var(--sky),#f4f5fc)}
/* Lignes de niveau : fondues sur tous les bords, jamais coupées net */
.page-hero::before{content:"";position:absolute;z-index:-1;top:0;right:0;bottom:0;width:min(62%,900px);background:url("../images/topo.svg") right -60px center/auto 135% no-repeat;opacity:.85;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 38%),linear-gradient(180deg,transparent,#000 22%,#000 72%,transparent);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent,#000 38%),linear-gradient(180deg,transparent,#000 22%,#000 72%,transparent);mask-composite:intersect}
/* Pages légales : en-tête blanc, sans lignes de niveau, titre aligné sur la colonne de texte */
.page-legal .page-hero{background:var(--white);padding:clamp(40px,5vw,72px) 0 0}
.page-legal .page-hero::before{content:none}
.page-legal .page-hero .wrap{max-width:72ch}
.page-legal .page-hero+.section{padding-top:clamp(4px,1vw,12px)}
.page-legal .page-hero .lead{margin-bottom:0}
.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0 0 clamp(20px,2.4vw,32px);padding:0;font-size:14px;color:var(--muted)}
.breadcrumb li+li::before{content:"/";margin-right:8px;color:#a5acc2}
.breadcrumb a{text-decoration:none}
.breadcrumb a:hover{color:var(--violet)}
.page-hero h1{font-size:clamp(38px,4.6vw,62px);font-weight:340;line-height:1.04;letter-spacing:-.04em;max-width:18ch}
.page-hero .lead{font-size:clamp(18px,1.6vw,21px);color:#323b5d;max-width:56ch;margin:24px 0 32px}
.page-hero .hero-actions{margin-top:0}

.prose{max-width:68ch}
.prose h2{font-size:clamp(28px,2.8vw,36px);margin:0 0 20px}
.prose p,.prose li{color:#323b5d}
.prose ul{padding-left:1.2em;margin:0 0 1em}
.prose li{margin-bottom:6px}
.prose a{color:var(--violet)}

.rows{border-top:1px solid var(--rule)}
.row{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(24px,4vw,64px);padding:32px 0;border-bottom:1px solid var(--rule)}
.row h3{font-size:22px}
.row p{color:var(--muted);margin:0;max-width:62ch}
.row p+p{margin-top:.8em}

.checklist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 40px}
.checklist li{display:flex;gap:12px;align-items:flex-start}
.checklist .ico{color:var(--violet);margin-top:3px}

.band-neve{background:var(--neve)}
.related{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.related a{text-decoration:none}
.related h3{font-size:20px;margin:14px 0 4px}
.related p{color:var(--muted);font-size:15px;margin:0}

.cta-band{background:var(--nuit);color:var(--white);padding:clamp(48px,6vw,72px) 0}
.cta-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.cta-band h2{color:var(--white);max-width:20ch}
.cta-band p{color:#d9dcf2;margin:12px 0 0;max-width:52ch}

/* Réalisations */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:40px}
.filter{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 16px;border:1.5px solid var(--rule);border-radius:999px;background:var(--white);font-weight:600;font-size:15px;cursor:pointer}
.filter span{color:var(--muted);font-weight:500}
.filter:hover{border-color:var(--nuit)}
.filter[aria-pressed="true"]{background:var(--nuit);border-color:var(--nuit);color:var(--white)}
.filter[aria-pressed="true"] span{color:#c9cdf0}
.ref-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 32px;list-style:none;margin:0;padding:0}
.ref-card[hidden]{display:none}
.ref-card a.ref-main{text-decoration:none;display:block}
.ref-card .browser{transition:transform .25s ease}
.ref-card a.ref-main:hover .browser{transform:translateY(-4px)}
.ref-card h3{font-size:21px;margin:16px 0 4px;display:flex;align-items:center;gap:8px}
.ref-card h3 .ico{width:16px;height:16px;color:var(--muted)}
.ref-card p{color:var(--muted);font-size:15.5px;margin:0}
.tag{display:inline-block;font-size:13px;font-weight:600;color:var(--nuit);border:1px solid #c9cfe0;padding:2px 10px;border-radius:999px;margin-top:12px}
.tag--case{background:var(--nuit);border-color:var(--nuit);color:var(--white)}

/* Étude de cas */
.case-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center}
.case-visual{position:relative}
.browser-screen>.case-photo--ambiance{object-position:center}
.case-pastille{position:absolute;left:-28px;bottom:-28px;z-index:1;display:grid;place-items:center;width:clamp(104px,10vw,136px);aspect-ratio:1;border-radius:50%;background:var(--white);border:1px solid var(--rule);box-shadow:0 10px 30px -12px rgba(16,22,58,.28)}
.case-pastille img{width:68%;height:68%;object-fit:contain}
.case-facts{display:flex;flex-wrap:wrap;gap:10px 32px;margin:0 0 28px;padding:0;list-style:none;font-size:15px}
.case-facts li span{display:block;color:var(--muted);font-size:13.5px}
.case-facts li strong{font-weight:650;color:var(--violet)}
.case-h2{margin-bottom:clamp(20px,2.4vw,32px)}
.case-context .case-h2{margin-bottom:18px}
.case-context .prose p{font-size:clamp(17px,1.4vw,19px);line-height:1.6;color:#323b5d;margin:0}
.challenges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;counter-reset:ch}
.challenges article{border-top:2px solid var(--violet);padding-top:24px}
.challenges h3{margin-bottom:10px}
.challenges p{color:var(--muted);margin:0}
.work-list{columns:2;column-gap:48px;list-style:none;margin:0;padding:0}
.work-list li{break-inside:avoid;display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--rule)}
.work-list .ico{color:var(--violet);margin-top:3px}
.case-quote{margin:0;max-width:48ch}
.case-quote blockquote{margin:0 0 20px;font-size:clamp(22px,2.4vw,30px);line-height:1.35;letter-spacing:-.02em;font-weight:500}

/* Pages légales */
.legal{max-width:72ch}
.legal h2{font-size:24px;margin:40px 0 12px}
.legal p,.legal li{color:#323b5d}
.legal a{color:var(--violet)}
.todo{background:#fff4d6;padding:0 4px;border-radius:3px}

/* ---------- 6. Formulaire ---------- */
.contact-form{background:var(--white);border:1px solid var(--rule);border-radius:var(--radius);padding:clamp(22px,3vw,36px)}
.page-contact .contact{--band:clamp(460px,40vw,580px);position:relative;isolation:isolate;padding-top:clamp(28px,3.4vw,48px);background:linear-gradient(180deg,var(--sky),#f4f5fc) top/100% var(--band) no-repeat}
/* Bandeau ciel + lignes de niveau sous la colonne de gauche ; le formulaire chevauche le bas du bandeau */
.page-contact .contact::before{content:"";position:absolute;z-index:-1;top:0;left:0;width:min(58%,900px);height:var(--band);background:url("../images/topo.svg") left -120px bottom -60px/auto 150% no-repeat;opacity:.85;
  -webkit-mask-image:linear-gradient(270deg,transparent,#000 45%),linear-gradient(180deg,transparent 62%,#000 82%,#000 90%,transparent);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(270deg,transparent,#000 45%),linear-gradient(180deg,transparent 62%,#000 82%,#000 90%,transparent);mask-composite:intersect}
.contact .contact-form,.page-contact .contact-form{box-shadow:0 30px 60px -40px #10163a40}
fieldset{border:0;margin:0 0 24px;padding:0}
legend,.field label{font-weight:640;font-size:15.5px;margin-bottom:10px;padding:0;display:block}
.field label small,legend small{font-weight:450;color:var(--muted);font-size:13.5px;margin-left:6px}
.choice-grid{display:flex;flex-wrap:wrap;gap:8px}
.choice{position:relative}
.choice input{position:absolute;opacity:0;inset:0;cursor:pointer}
.choice span{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1.5px solid var(--rule);border-radius:999px;font-size:15px;font-weight:540;transition:border-color .15s,background-color .15s}
.choice:hover span{border-color:var(--nuit)}
.choice input:checked+span{background:var(--nuit);border-color:var(--nuit);color:var(--white)}
.choice input:focus-visible+span{outline:3px solid var(--violet);outline-offset:2px}
.field{margin-bottom:20px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field--half{max-width:calc(50% - 8px)}
input[type=text],input[type=email],input[type=tel],select,textarea{width:100%;min-height:48px;padding:11px 14px;border:1.5px solid var(--rule);border-radius:6px;background:var(--white);font-size:16px;transition:border-color .15s}
textarea{resize:vertical;min-height:130px;line-height:1.5}
input:hover,select:hover,textarea:hover{border-color:#b8bfd4}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 3px #4b3fcf26}
[aria-invalid="true"]{border-color:#c0352b!important}
.field-error{color:#b42318;font-size:14.5px;margin:8px 0 0}
.form-alert{background:#fdeceb;color:#8a1c12;border-radius:6px;padding:12px 14px;font-size:15px}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;color:var(--muted);margin:4px 0 4px;cursor:pointer}
.consent input{width:20px;height:20px;margin:2px 0 0;flex:none;accent-color:var(--nuit)}
.consent a{color:var(--violet)}
.form-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:24px}
.form-actions p{margin:0;color:var(--muted);font-size:14.5px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-done{border:1px solid var(--rule);border-left:4px solid #1f8a5b;border-radius:var(--radius);padding:32px;background:var(--white)}
.form-done h3{font-size:26px;margin-bottom:10px}
.form-done p{color:var(--muted);margin:0}

/* ---------- 7. Responsive ---------- */
@media (max-width:1060px){
  .nav-list{gap:0}
  .site-nav{gap:16px}
  .footer-grid{grid-template-columns:1fr 1fr}
  .ref-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  :root{--header-h:64px}
  .nav-toggle{display:grid;place-items:center;margin-left:auto;width:44px;height:44px;border:1.5px solid var(--rule);border-radius:8px;background:var(--white);cursor:pointer}
  .site-nav{display:none;position:absolute;top:var(--header-h);left:0;right:0;flex-direction:column;align-items:stretch;gap:16px;padding:16px var(--gutter) 24px;background:var(--white);border-bottom:1px solid var(--rule);box-shadow:0 24px 40px -24px #10163a40;max-height:calc(100dvh - var(--header-h));overflow:auto}
  .site-nav.is-open{display:flex}
  .nav-list{flex-direction:column;align-items:stretch}
  .nav-item>a,.nav-sub-toggle{width:100%;justify-content:space-between;padding:14px 4px;font-size:18px;border-bottom:1px solid var(--rule);border-radius:0}
  .nav-sub{position:static;width:auto;box-shadow:none;border:0;padding:4px 0 8px}
  .nav-cta{width:100%;min-height:50px}
  .hero-grid,.split,.about-grid,.contact-grid,.prestai-inner,.case-hero-grid{grid-template-columns:1fr}
  .split-head,.contact-aside{position:static}
  .hero-map{margin:0 calc(-1*var(--gutter));max-width:none}
  .hero h1{max-width:13ch}
  .logos-inner{flex-direction:column;align-items:flex-start;gap:20px}
  .logo-row{justify-content:flex-start;gap:20px 28px}
  .logo-row .logo--wide{height:26px;max-width:100px}.logo-row .logo--square{height:40px}
  .case-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr;gap:40px 32px}
  .steps::before{display:none}
  .about-portrait{width:min(300px,80%)}
  .row{grid-template-columns:1fr;gap:10px}
  .challenges,.related{grid-template-columns:1fr}
  .page-hero::before{width:100%;opacity:.35}
}
@media (max-width:600px){
  body{font-size:16.5px}
  .hero-ridges{min-height:0}
  .hero{padding-bottom:calc(10.625vw + 24px)}
  .hero-kicker{font-size:13.5px;gap:7px;padding:8px 13px}
  .kicker-sep{width:18px}
    .kicker-place .ico,.kicker-region{display:none}
  .section-head{flex-direction:column;align-items:flex-start}
  .exp-item{grid-template-columns:40px minmax(0,1fr);gap:16px}
  .exp-icon{width:40px;height:40px}
  .exp-link{display:none}
  /* Étapes : frise verticale, pastille à gauche, texte à droite */
  .steps{grid-template-columns:1fr;gap:28px}
  .steps::before{display:block;left:22px;right:auto;top:23px;bottom:23px;width:2px;height:auto;background:repeating-linear-gradient(180deg,var(--violet) 0 8px,transparent 8px 14px)}
  .steps li{display:grid;grid-template-columns:46px minmax(0,1fr);column-gap:18px}
  .steps li::before{grid-row:span 2;margin-bottom:0}
  .steps h3{margin:10px 0 6px}
  .reveal--steps::before{transform:scaleY(0);transform-origin:top}
  .reveal--steps.is-in::before{transform:scaleY(1)}
  .facts{grid-template-columns:1fr 1fr}
  /* Références : carte horizontale compacte (vignette à gauche, texte à droite) */
  .ref-grid{grid-template-columns:1fr;gap:22px}
  .ref-card a.ref-main,.ref-card div.ref-main{display:grid;grid-template-columns:38% minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:14px;align-items:start}
  .ref-card .ref-visual{grid-row:span 2}
  .ref-card .browser-bar{display:none}
  .ref-card .browser-screen{aspect-ratio:1/1}
  .ref-card .browser-screen>.browser-logo{max-width:70%;max-height:46%}
  .ref-card .browser-screen>.browser-logo--square{max-width:58%;max-height:58%}
  .ref-card .browser-wordmark{font-size:15px;padding:0 8px}
  .ref-card h3{font-size:18px;margin:0 0 4px}
  .ref-card{position:relative}
  .ref-card p{margin-bottom:34px;font-size:14.5px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .ref-card .tag{position:absolute;left:calc(38% + 14px);bottom:0;margin:0;font-size:12px;max-width:calc(62% - 14px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .screen-badge{top:6px;right:6px;left:6px;text-align:center;padding:3px 6px;font-size:11px}
  /* Accueil : projets en carrousel horizontal */
  .case-grid{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(-1*var(--gutter));padding:4px var(--gutter) 12px;scroll-padding-inline:var(--gutter);scrollbar-width:none}
  .case-grid::-webkit-scrollbar{display:none}
  .case-card{flex:0 0 84%;scroll-snap-align:start}
  .case-card h3{font-size:22px}
  .case-card-body>p:not(.meta){font-size:15px}
  .carousel-hint{display:flex}
  /* Cibles tactiles plus confortables */
  .text-link{padding-block:8px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px 20px}
  .footer-about{grid-column:1/-1}
  .footer-grid>div:last-child{grid-column:1/-1}
  .footer-links{gap:2px}
  .footer-links a{display:inline-block;padding-block:7px}
  .footer-contact a{display:inline-block;padding-block:4px}
  .form-actions .btn{width:100%}
  .form-actions{gap:12px}
  .contact-direct a{display:inline-block;padding-block:6px}
  /* Carte du hero : étiquettes lisibles */
  .wp text{font-size:23px}
  .wp-top text{font-size:25px}
  .tma-label{font-size:21px}
  .checklist,.field-row{grid-template-columns:1fr}
  .field-row{gap:0}
  .field--half{max-width:none}
  .work-list{columns:1}
  .hero-actions .btn,.page-hero .btn{flex:1 1 auto}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .route-line{stroke-dashoffset:0}
  .js .wp{opacity:1}
  .js .topo .c{stroke-dashoffset:0}
  .wp-halo,.hiker{display:none}
  .js .flag{transform:none}
  .js .tma{opacity:1}
  .topo-parallax{transform:none}
}

/* Étude de cas : visuel d'ambiance sur mobile */
@media (max-width:900px){.case-visual{margin-bottom:28px}}
@media (max-width:600px){.case-pastille{left:14px;bottom:-24px;width:88px}}
@media (max-width:900px){.page-contact .contact{--band:clamp(420px,100vw,520px)}.page-contact .contact::before{width:100%;opacity:.35}}

/* ---------- Accueil mobile : hero resserré, montagnes lisibles, mur de logos ---------- */
@media (max-width:900px){
  /* Bandeau logos : titre centré au-dessus d'un mur de logos en grille (4 × 2) */
  .logos{padding:36px 0 8px}
  .logos-inner{align-items:stretch;gap:18px}
  .logos h2{max-width:none;text-align:center;font-size:15px;font-weight:600;color:var(--muted);letter-spacing:.01em}
  .logos h2::before,.logos h2::after{content:"";display:inline-block;vertical-align:middle;width:28px;height:1px;background:var(--rule);margin:0 12px}
  .logo-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:14px;overflow:hidden}
  .logo-row li{display:grid;place-items:center;height:clamp(68px,17vw,88px);background:var(--white);padding:0 10px}
  .logo-row .logo--wide{height:auto;max-height:26px;max-width:min(100%,104px)}
  .logo-row .logo--square{height:auto;max-height:40px;max-width:min(100%,46px)}
}
@media (max-width:600px){
  /* Hero : carte rapprochée des boutons, étiquettes lisibles, carte posée sur les montagnes */
  .hero{padding-bottom:0}
  .hero-lead{margin:22px 0 26px}
  .logos{padding-top:28px}
}

/* Accueil mobile/tablette : la carte passe en fond, derrière le texte, simplifiée et sans étiquettes */
@media (max-width:900px){
  .hero-copy{position:relative;z-index:1}
  .hero-map{position:absolute;z-index:0;margin:0;max-width:none;pointer-events:none;
    width:min(118vw,620px);right:calc(-1*min(30vw,150px));bottom:calc(-1*min(12vw,60px));opacity:.6}
  .hero-map .wp text,.hero-map .tma-label,.hero-map .hiker{display:none}
  .topo .c:not(.c--major):nth-child(2n){display:none}
  .hero-grid{position:static}
  .hero{padding-bottom:0}
  .hero-ridges{position:relative;display:block;bottom:auto;height:clamp(84px,18vw,120px);aspect-ratio:auto;margin-top:clamp(20px,6vw,40px);z-index:1}
}
@media (max-width:900px){.hero .btn-ghost{background:rgba(255,255,255,.75)}}
@media (max-width:600px){.hero{padding-top:clamp(52px,14vw,72px)}.hero-map{opacity:.45;width:125vw;right:-30vw;bottom:10vw}.hero-ridges{margin-top:clamp(56px,16vw,80px)}}
@media (max-width:420px){.hero-map{bottom:26vw}}
/* Mobile/tablette : uniquement les lignes de niveau (pas de tracé, d'étapes ni de drapeau) */
@media (max-width:900px){.hero-map .route-line,.hero-map .wp,.hero-map .flag,.hero-map .tma{display:none}.hero .hero-map{opacity:.5}}

/* Menu mobile ouvert : plein écran blanc, header blanc, page masquée et figée */
@media (max-width:900px){
  .site-nav{position:fixed;top:var(--header-h);bottom:0;height:auto;max-height:none;border-bottom:0;box-shadow:none;padding-bottom:max(24px,env(safe-area-inset-bottom))}
  .site-nav .nav-cta{margin-top:auto}
  html.menu-open{overflow:hidden}
  html.menu-open .site-header,html.menu-open .page-home .site-header:not(.is-scrolled){background:var(--white);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom-color:var(--rule)}
  .menu-open .mobile-cta{display:none}
}

/* Bandeau logos : filet bas, uniquement sur desktop */
@media (min-width:901px){.logos{border-bottom:1px solid var(--rule)}}

/* Études de cas : icônes Lucide, cartes « réalisé » et bandeau « résultat » */
.case-ico{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:12px;background:#ecebff;color:var(--violet)}
.case-ico .ico{width:22px;height:22px;stroke-width:1.7}
.challenges .case-ico{margin-bottom:16px}
.work-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:1060px){.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.work-grid{grid-template-columns:1fr}}
.work-grid li{display:flex;align-items:center;gap:16px;padding:18px 20px;background:var(--white);border:1px solid var(--rule);border-radius:var(--radius);font-weight:520;line-height:1.4;color:var(--ink)}
.case-results{background:var(--nuit);color:var(--white)}
.case-results .case-h2{color:var(--white)}
.case-results .case-h2 b{color:var(--accent-light)}
.result-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:20px}
.result-grid li{padding:28px 26px;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14)}
.result-grid p{margin:18px 0 0;font-size:clamp(17px,1.4vw,19px);line-height:1.45;font-weight:500;color:var(--white)}
.case-ico--light{background:rgba(174,166,255,.16);color:var(--accent-light)}
.case-results .case-quote{margin-top:40px}
@media (max-width:600px){.work-grid li{padding:14px 16px;gap:14px}.case-ico{width:40px;height:40px}.result-grid li{padding:22px 20px}}
