/* ==========================================================
   TwelveProd · feuille de style
   ========================================================== */
@font-face{font-family:"Geist";src:url("../fonts/geist.woff2") format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Garamond Italic";src:url("../fonts/apple-garamond-italic.woff2") format("woff2");font-style:italic;font-weight:400;font-display:swap}

:root{
  --dark:#0F0F10;--dark-2:#17171a;--ink:#111111;--mut:#5f5f5f;--mut-d:rgba(255,255,255,.62);
  --line:rgba(0,0,0,.1);--line-d:rgba(255,255,255,.1);--card:#F5F5F3;
  --accent:#FF9500;--accent-d:#E07F00;--accent-t:#C26A00;--btn:#EDE8DF;
  --ease:cubic-bezier(.22,1,.36,1);--wrap:1360px;--gut:clamp(20px,4.5vw,64px);
  --serif:"Garamond Italic","EB Garamond",Georgia,serif;
}
*,*:before,*:after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:Geist,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video,iframe{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
button{font:inherit;color:inherit}
h1,h2,h3,h4,p{margin:0}
.it{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em;color:var(--accent-d)}
.dark .it,.it-light{color:var(--accent)}
.wrap{max-width:calc(var(--wrap) + var(--gut)*2);margin:0 auto;padding:0 var(--gut)}
.sec{padding:120px 0;position:relative}
.dark{background:var(--dark);color:#fff}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:#111;color:#fff;padding:10px 16px;border-radius:10px;text-decoration:none}
.skip:focus{top:12px}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;height:46px;padding:0 5px 0 20px;border-radius:999px;font-size:15px;font-weight:600;text-decoration:none;white-space:nowrap;border:0;cursor:pointer;transition:background-color .25s ease,color .25s ease,border-color .25s ease}
.btn .arw{flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/15px no-repeat;transition:transform .35s var(--ease)}
.btn:hover .arw{transform:rotate(-45deg)}
.btn-beige{background:var(--btn);color:#111}
.btn-beige:hover{background:#fff}
.btn-dark{background:#111;color:#fff}
.btn-dark:hover{background:#000}
.btn-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.28)}
.btn-ghost .arw{background-color:rgba(255,255,255,.14)}
.btn-ghost:hover{border-color:#fff}
.btn-out{background:transparent;color:#111;border:1px solid var(--line)}
.btn-out .arw{background-color:#111}
.btn-sm{height:40px;font-size:14px;padding-left:16px}
.btn-sm .arw{flex-basis:30px;width:30px;height:30px;background-size:13px}

/* ---------- Titres de section ---------- */
.kick{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-t);border:1px solid rgba(194,106,0,.3);background:rgba(255,149,0,.1);padding:7px 14px;border-radius:999px;margin-bottom:20px}
.dark .kick{color:var(--accent);border-color:rgba(255,149,0,.35);background:rgba(255,149,0,.08)}
.h2{font-size:clamp(34px,4.4vw,52px);line-height:1.03;letter-spacing:-.035em;font-weight:700}
.h2 .it{font-size:1.1em}
.lead{font-size:17px;line-height:1.6;color:var(--mut);margin-top:18px;max-width:580px}
.dark .lead{color:var(--mut-d)}

/* ---------- En-tête ---------- */
.hd{position:fixed;top:20px;left:0;right:0;z-index:100;display:flex;justify-content:center;pointer-events:none;transition:transform .45s var(--ease),opacity .3s ease}
.hd.hide{transform:translateY(-160%);opacity:0}
.hd-bar{pointer-events:auto;display:flex;align-items:center;gap:30px;padding:7px 7px 7px 22px;border-radius:999px;background:rgba(15,15,16,.8);-webkit-backdrop-filter:blur(12px) saturate(140%);backdrop-filter:blur(12px) saturate(140%);border:1px solid rgba(255,255,255,.08);box-shadow:0 10px 30px rgba(0,0,0,.18)}
.hd-logo img{height:22px;width:auto}
.hd-nav{display:flex;gap:26px}
.hd-nav a{font-size:14px;font-weight:500;color:rgba(255,255,255,.62);text-decoration:none;transition:color .2s ease}
.hd-nav a:hover,.hd-nav a[aria-current=page]{color:#fff}
.hd-burger{display:none;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.1);cursor:pointer;position:relative}
.hd-burger span{position:absolute;left:13px;right:13px;height:2px;background:#fff;border-radius:2px;transition:transform .3s var(--ease),opacity .2s ease}
.hd-burger span:nth-child(1){top:16px}.hd-burger span:nth-child(2){top:21px}.hd-burger span:nth-child(3){top:26px}
.menu-open .hd-burger span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.menu-open .hd-burger span:nth-child(2){opacity:0}
.menu-open .hd-burger span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
.mm{position:fixed;inset:0;z-index:90;background:var(--dark);color:#fff;padding:110px 28px 40px;display:flex;flex-direction:column;justify-content:space-between;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s}
.menu-open .mm{opacity:1;visibility:visible}
.mm nav{display:grid;gap:6px}
.mm nav a{font-size:40px;font-weight:700;letter-spacing:-.03em;text-decoration:none;padding:4px 0}
.mm nav a .it{font-size:1.05em}
.mm-ft{display:grid;gap:14px}
.mm-ft a{color:var(--mut-d);text-decoration:none;font-size:16px}

/* ---------- Hero ---------- */
.hero{position:relative;z-index:2;background:var(--dark);color:#fff;padding:150px 0 90px;overflow:hidden;isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:-1}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 38%;opacity:.62}
.hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,15,16,.86) 0%,rgba(15,15,16,.6) 40%,rgba(15,15,16,.18) 75%,rgba(15,15,16,.1) 100%),linear-gradient(0deg,var(--dark) 0%,rgba(15,15,16,0) 30%),linear-gradient(180deg,rgba(15,15,16,.6) 0%,rgba(15,15,16,0) 22%)}
.hero-in{min-height:min(calc(100svh - 300px),640px);display:flex;flex-direction:column;justify-content:center}
.hero h1{font-size:clamp(42px,5.6vw,92px);line-height:1;letter-spacing:-.045em;font-weight:700;max-width:14em}
.hero-t{display:block}
.hero h1 .it{color:var(--accent);font-size:1.06em}
.hero-tag{display:inline-flex;align-items:center;gap:10px;font-size:14px;line-height:1.3;letter-spacing:0;font-weight:500;padding:8px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.04);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);margin-bottom:28px}
.hero-tag i{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.2)}
.hero-p{font-size:clamp(16px,1.25vw,19px);line-height:1.6;color:rgba(255,255,255,.72);margin:26px 0 34px;max-width:560px}
.hero-cta{display:flex;flex-wrap:wrap;gap:10px}
.proof{display:flex;align-items:center;gap:14px;margin-top:44px;flex-wrap:wrap}
.proof-av{display:flex}
.proof-av img{width:40px;height:40px;border-radius:50%;border:2px solid var(--dark);object-fit:cover;background:#fff}
.proof-av img+img{margin-left:-12px}
.proof-tx{font-size:14.5px;color:rgba(255,255,255,.75)}
.proof-tx b{color:var(--accent);font-weight:600}
.proof-g{display:flex;align-items:center;gap:8px;padding-left:14px;border-left:1px solid rgba(255,255,255,.18);font-size:14.5px;font-weight:600}
.proof-g>svg{width:18px;height:18px}
.proof-g span{display:flex;align-items:center;gap:5px}
.proof-g span svg{width:15px;height:15px}

/* hero : photo à droite, bien visible (ordinateur et tablette paysage) */
@media (min-width:901px){
  .hero-bg{left:22%;right:auto;width:100%;-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 12%,#000 34%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 12%,#000 34%)}
  .hero:before{content:"";position:absolute;inset:-20px;z-index:-2;background:url("../img/hero-tournage.webp") 0% 40%/cover no-repeat;opacity:.26;filter:blur(6px) saturate(.8)}
  .hero-bg img{opacity:.85;object-position:50% 38%}
  .hero-bg:after{display:none}
  .hero:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(0deg,var(--dark) 0%,rgba(15,15,16,0) 26%),linear-gradient(180deg,rgba(15,15,16,.7) 0%,rgba(15,15,16,0) 24%),linear-gradient(90deg,rgba(15,15,16,.78) 0%,rgba(15,15,16,.62) 30%,rgba(15,15,16,.38) 58%,rgba(15,15,16,.22) 100%)}
  .hero h1{font-size:clamp(40px,4.6vw,80px);max-width:10em}
  .hero-p{max-width:30em}
}
/* ---------- Bandeau logos ---------- */
.logos{background:linear-gradient(180deg,rgba(15,15,16,0) 0px,rgba(15,15,16,.45) 50px,rgba(15,15,16,.82) 100px,var(--dark) 150px);margin-top:-150px;padding:172px 0 46px;overflow:hidden;position:relative;z-index:1}
.logos:before,.logos:after{content:"";position:absolute;top:150px;bottom:0;width:min(180px,14vw);z-index:2;pointer-events:none}
.logos:before{left:0;background:linear-gradient(90deg,var(--dark),transparent)}
.logos:after{right:0;background:linear-gradient(270deg,var(--dark),transparent)}
.logos-row{display:flex;width:max-content;animation:mq 70s linear infinite}
.logos:hover .logos-row{animation-play-state:paused}
.logos-set{display:flex;align-items:center;gap:72px;padding-right:72px}
.logos-set img{height:auto;filter:brightness(0) invert(1);opacity:.9}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- Projets : pile de cartes ---------- */
.pj{display:grid;grid-template-columns:minmax(320px,.8fr) 1.4fr;gap:clamp(40px,5vw,96px);align-items:center}
.pj-ctl{display:flex;flex-direction:column;align-items:flex-start;gap:26px;margin-top:32px}
.pj-nav{display:flex;align-items:center;gap:10px}
.nb{width:48px;height:48px;border-radius:50%;border:1px solid rgba(0,0,0,.15);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .25s ease,border-color .25s ease}
.nb svg{width:18px;height:18px;stroke:#111}
.nb:hover{background:var(--accent);border-color:var(--accent)}
.nb:hover svg{stroke:#fff}
.pj-ct{margin-left:10px;font-size:14px;color:var(--mut);font-variant-numeric:tabular-nums}
.pj-ct b{color:var(--ink);font-weight:600}
.stk{display:grid;padding-right:72px;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.sc{grid-area:1/1;display:block;text-decoration:none;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:24px;padding:8px;transform-origin:100% 50%;transition:transform .6s var(--ease),opacity .45s ease,filter .45s ease}
.sc-im{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:16/10;background:#ddd}
.sc-im img{width:100%;height:100%;object-fit:cover;pointer-events:none}
.tag{position:absolute;left:14px;top:14px;font-size:12px;font-weight:500;color:#fff;background:rgba(20,20,20,.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.16);padding:6px 12px;border-radius:999px}
.sc-ft{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 8px 8px 12px}
.sc-ft b{display:block;font-size:19px;font-weight:600;letter-spacing:-.01em}
.sc-ft small{display:block;font-size:14px;color:var(--mut);margin-top:3px}
.go{display:inline-flex;align-items:center;gap:10px;height:38px;padding:0 4px 0 16px;border-radius:999px;background:rgba(0,0,0,.06);font-size:13.5px;font-weight:600;white-space:nowrap;transition:background-color .25s ease,color .25s ease}
.go .arw{flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:#111 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/13px no-repeat;transition:transform .35s var(--ease),background-color .25s ease}
.sc.d0{z-index:4;box-shadow:0 24px 50px rgba(0,0,0,.12);cursor:pointer}
.sc.d0:hover .go{background:#111;color:#fff}
.sc.d0:hover .go .arw{background-color:var(--accent);transform:rotate(-45deg)}
.sc.d1{transform:translateX(38px) scale(.92);z-index:3;filter:brightness(.9);cursor:pointer}
.sc.d1:hover{transform:translateX(46px) scale(.92);filter:brightness(.97)}
.sc.d2{transform:translateX(72px) scale(.84);z-index:2;filter:brightness(.8);pointer-events:none}
.sc.d3{transform:translateX(72px) scale(.84);opacity:0;z-index:1;pointer-events:none}
.sc.out{transform:translateX(-112%) rotate(-4deg);opacity:0;z-index:5}
.fx{grid-area:1/1;justify-self:end;align-self:center;z-index:6;margin-right:-24px;width:56px;height:56px;border-radius:50%;border:0;cursor:pointer;background:var(--accent);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(0,0,0,.18),0 0 0 6px rgba(255,149,0,.18);transition:transform .3s var(--ease)}
.fx:hover{transform:scale(1.08)}
.fx svg{width:22px;height:22px}

/* ---------- Services ---------- */
.sv-g{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:44px}
.sv{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:24px;padding:8px;text-decoration:none;color:inherit;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.sv:hover{transform:translateY(-4px);box-shadow:0 24px 50px rgba(0,0,0,.08)}
.sv-im{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:16/10;background:#ddd}
.sv-im img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.sv:hover .sv-im img{transform:scale(1.05)}
.sv-bd{display:flex;flex-direction:column;flex:1;padding:22px 16px 14px}
.sv h3{font-size:24px;letter-spacing:-.02em;margin-bottom:8px}
.sv p{font-size:15.5px;line-height:1.55;color:var(--mut);margin-bottom:16px}
.ck{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:9px}
.ck li{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:500}
.ck li:before{content:"";flex:0 0 18px;width:18px;height:18px;border-radius:50%;background:rgba(255,149,0,.14) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E07F00' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/11px no-repeat}
.sv-go{margin-top:auto;display:flex;align-items:center;justify-content:space-between;height:46px;padding:0 5px 0 16px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:14.5px;font-weight:600;transition:background-color .25s ease,color .25s ease}
.sv-go .arw{width:34px;height:34px;border-radius:50%;background:#111 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/13px no-repeat;transition:transform .35s var(--ease),background-color .25s ease}
.sv:hover .sv-go{background:#111;color:#fff}
.sv:hover .sv-go .arw{background-color:var(--accent);transform:rotate(-45deg)}
.pl{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 28px;margin-top:36px;padding-top:28px;border-top:1px solid var(--line)}
.pl span{display:flex;align-items:center;gap:8px;font-size:14.5px;font-weight:500;color:var(--mut)}
.pl i{width:7px;height:7px;border-radius:50%;background:var(--accent)}

/* ---------- Accompagnement ---------- */
.ac{display:grid;grid-template-columns:minmax(320px,.8fr) 1.3fr;gap:clamp(48px,6vw,120px);align-items:start}
.ac-l small{display:block;font-size:13.5px;color:var(--mut);margin-top:14px}
.ac-r{list-style:none;margin:0;padding:0;border-top:1px solid rgba(0,0,0,.12)}
.ac-r li{position:relative;display:grid;grid-template-columns:96px 1fr auto;gap:24px;align-items:baseline;padding:30px 0;border-bottom:1px solid rgba(0,0,0,.12)}
.ac-r li:after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:0 50%;transition:transform .6s var(--ease)}
.ac-r li:hover:after{transform:scaleX(1)}
.ac-n{font-family:var(--serif);font-style:italic;font-size:56px;line-height:.8;color:var(--accent-d)}
.ac-r h3{font-size:24px;letter-spacing:-.02em;margin-bottom:8px}
.ac-r p{font-size:15.5px;line-height:1.55;color:var(--mut);max-width:440px}
.pill{font-size:13px;font-weight:500;color:var(--mut);border:1px solid rgba(0,0,0,.12);padding:6px 12px;border-radius:999px;white-space:nowrap}

/* ---------- Avis ---------- */
.rv-hd{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:36px;flex-wrap:wrap}
.rv-sc{display:flex;align-items:center;gap:14px;padding:12px 18px;border-radius:18px;background:var(--card);border:1px solid var(--line)}
.rv-sc b{font-size:28px;letter-spacing:-.03em}
.rv-sc small{display:block;font-size:13px;color:var(--mut)}
.stars{color:#FBBC04;letter-spacing:1px;font-size:15px}

/* ---------- Qui suis-je ---------- */
.ab{display:grid;grid-template-columns:minmax(320px,.75fr) 1.25fr;gap:clamp(48px,6vw,120px);align-items:center}
.ab-ph{position:relative;padding-bottom:22px}
.ab-ph img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:52% 50%;border-radius:24px;border:1px solid var(--line-d);box-shadow:0 30px 60px rgba(0,0,0,.35)}
.ab-badge{position:absolute;left:50%;bottom:0;transform:translateX(-50%);display:flex;align-items:center;gap:8px;white-space:nowrap;background:#fff;color:#111;font-size:14px;font-weight:600;padding:11px 18px 11px 14px;border-radius:999px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.ab-badge i{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(255,149,0,.22)}
.ab-q{font-size:clamp(26px,2.3vw,38px);line-height:1.22;letter-spacing:-.02em;font-weight:600;margin:0 0 26px}
.ab-q em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--accent);font-size:1.5em;line-height:0;vertical-align:-.18em;margin:0 4px}
.ab-q span{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--accent);font-size:1.12em}
.ab-who{display:flex;align-items:center;gap:12px;font-size:16px;color:var(--mut-d);padding-bottom:22px;border-bottom:1px solid var(--line-d)}
.ab-who b{color:#fff;font-weight:600}
.ab-tx{font-size:16px;line-height:1.65;color:var(--mut-d);margin:20px 0 0;max-width:640px}
.ab-tx+.ab-tx{margin-top:12px}

/* ---------- FAQ ---------- */
.fq{display:grid;grid-template-columns:minmax(320px,.75fr) 1.3fr;gap:clamp(48px,6vw,120px);align-items:start}
.fq-lb{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--accent);margin-bottom:10px}
.me{background:var(--dark-2);border:1px solid var(--line-d);border-radius:22px;padding:20px;margin-top:30px}
.me-h{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.me-h img{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:none}
.me-h b{display:block;font-size:16px}
.me-h small{display:block;font-size:13.5px;color:var(--mut-d);margin-top:2px}
.me-bt{display:flex;gap:8px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border-radius:999px;font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap;transition:all .25s ease}
.chip svg{width:16px;height:16px;flex:none}
.chip-l{background:var(--btn);color:#111}
.chip-l:hover{background:#fff}
.chip-o{border:1px solid rgba(255,255,255,.2);color:#fff}
.chip-o:hover{border-color:var(--accent);color:var(--accent)}
.fq-l{display:grid;gap:8px}
.q{border:1px solid var(--line-d);border-radius:18px;transition:background-color .3s ease,border-color .3s ease}
.q.op{background:var(--dark-2);border-color:rgba(255,255,255,.14)}
.q h3{margin:0;font-size:17px;font-weight:600;letter-spacing:-.01em}
.q button{all:unset;box-sizing:border-box;width:100%;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px}
.q button:hover{color:var(--accent)}
.q button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:18px}
.pm{position:relative;flex:0 0 32px;width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.18);transition:transform .4s var(--ease),background-color .3s ease,border-color .3s ease}
.pm:before,.pm:after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.6px;background:#fff;transform:translate(-50%,-50%);border-radius:2px}
.pm:after{transform:translate(-50%,-50%) rotate(90deg)}
.q.op .pm{transform:rotate(45deg);background:var(--accent);border-color:var(--accent)}
.qa{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}
.q.op .qa{grid-template-rows:1fr}
.qa>div{overflow:hidden}
.qa p{padding:0 22px 22px;font-size:15.5px;line-height:1.65;color:var(--mut-d);max-width:640px}

/* ---------- Pied de page ---------- */
.ft{background:var(--dark);color:#fff;padding:110px 0 36px;position:relative;overflow:hidden}
.ft:before{content:"";position:absolute;left:-15%;top:-30%;width:70%;height:120%;background:radial-gradient(closest-side,rgba(255,149,0,.12),rgba(255,149,0,.04) 60%,transparent);pointer-events:none}
.ft .wrap{position:relative}
.ft-top{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;padding-bottom:56px;border-bottom:1px solid var(--line-d)}
.ft-top h2{font-size:clamp(44px,6.4vw,80px);line-height:.98;letter-spacing:-.04em}
.ft-top h2 .it{display:block;color:var(--accent);font-size:1.05em}
.ft-cta{display:flex;flex-direction:column;align-items:flex-end;gap:12px;flex:none}
.ft-cta small{font-size:13.5px;color:var(--mut-d)}
.ft-cols{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:40px;padding:48px 0}
.ft-cols img{height:24px;width:auto;margin-bottom:16px}
.ft-cols p{font-size:14.5px;line-height:1.6;color:var(--mut-d);max-width:280px}
.ft-cols h3{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--mut-d);margin-bottom:16px}
.ft-cols ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ft-cols ul a{font-size:15px;text-decoration:none;transition:color .2s ease}
.ft-cols ul a:hover{color:var(--accent)}
.so{display:flex;gap:8px;margin-top:20px}
.so a{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;transition:background-color .25s ease,border-color .25s ease}
.so a:hover{background:var(--accent);border-color:var(--accent)}
.so svg{width:17px;height:17px}
.ft-bt{display:flex;justify-content:space-between;gap:24px;padding-top:24px;border-top:1px solid var(--line-d);font-size:12.5px;line-height:1.6;color:var(--mut-d)}
.ft-bt>div{display:flex;flex-direction:column;gap:4px}
.ft-leg{flex-direction:row!important;flex-wrap:wrap;justify-content:flex-end;max-width:560px;text-align:right}
.ft-leg span:not(:last-child):after{content:"·";margin:0 8px;opacity:.6}

/* ---------- Pages intérieures ---------- */
.ph{padding:160px 0 56px}
.ph h1{font-size:clamp(46px,7vw,88px);line-height:.95;letter-spacing:-.045em;font-weight:700}
.ph h1 .it{font-size:1.06em}
.ph .lead{font-size:18px}
.crumb{display:flex;gap:8px;font-size:13.5px;color:var(--mut);margin-bottom:22px}
.crumb a{text-decoration:none}
.crumb a:hover{color:var(--ink)}

/* Grille projets */
.fi{display:flex;gap:8px;flex-wrap:wrap;padding:22px 0 28px;border-top:1px solid var(--line);margin-top:34px}
.fi button{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}
.fi button small{font-size:12px;color:var(--mut)}
.fi button:hover{border-color:#111}
.fi button.on{background:#111;color:#fff;border-color:#111}
.fi button.on small{color:rgba(255,255,255,.6)}
.pg{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:280px;gap:16px}
.pc{position:relative;display:block;border-radius:22px;overflow:hidden;background:#1a1a1a;color:#fff;text-decoration:none;isolation:isolate}
.pc.big{grid-column:span 2;grid-row:span 2}
.pc.wide{grid-column:span 2}
.pg.flt .pc.big,.pg.flt .pc.wide{grid-column:auto;grid-row:auto}
.pc[hidden]{display:none}
.pc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease);z-index:-2}
.pc:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,0) 30%,rgba(0,0,0,0) 45%,rgba(0,0,0,.78) 100%);z-index:-1}
.pc:hover img{transform:scale(1.06)}
.pc-tp{position:absolute;left:14px;right:14px;top:14px;display:flex;justify-content:space-between;gap:8px}
.pc-tg{display:flex;gap:6px;flex-wrap:wrap}
.pc-tg span,.fm{font-size:12px;font-weight:500;background:rgba(20,20,20,.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.16);padding:5px 11px;border-radius:999px}
.fm{display:inline-flex;align-items:center;gap:6px}
.fm i{width:6px;height:6px;border-radius:50%;background:var(--accent)}
.pc-bt{position:absolute;left:20px;right:20px;bottom:18px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.pc-bt h2{font-size:21px;font-weight:700;letter-spacing:-.02em;line-height:1.15}
.pc.big .pc-bt h2{font-size:32px}
.pc-bt small{display:block;font-size:13.5px;color:rgba(255,255,255,.78);margin-top:4px}
.pc-ar{flex:0 0 40px;width:40px;height:40px;border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/15px no-repeat;opacity:0;transform:translateY(8px);transition:opacity .3s ease,transform .45s var(--ease)}
.pc:hover .pc-ar{opacity:1;transform:rotate(-45deg)}
.band{margin-top:64px;border-radius:28px;background:var(--dark);color:#fff;padding:44px;display:flex;align-items:center;justify-content:space-between;gap:30px;position:relative;overflow:hidden}
.band:before{content:"";position:absolute;right:-10%;top:-60%;width:60%;height:220%;background:radial-gradient(closest-side,rgba(255,149,0,.22),rgba(255,149,0,.06) 60%,transparent);pointer-events:none}
.band h2{position:relative;font-size:clamp(28px,3.4vw,40px);line-height:1.05;letter-spacing:-.03em}
.band .it{color:var(--accent)}
.band .btn{position:relative}

/* Page projet */
.pd-hero{background:var(--dark);color:#fff;padding:150px 0 0;position:relative;overflow:hidden}
.pd-hero:before{content:"";position:absolute;right:-10%;top:-20%;width:60%;height:100%;background:radial-gradient(closest-side,rgba(255,149,0,.16),rgba(255,149,0,.05) 60%,transparent);pointer-events:none}
.pd-hero .wrap{position:relative}
.pd-hero .crumb{color:var(--mut-d)}
.pd-hero .crumb a:hover{color:#fff}
.pd-tg{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.pd-tg span{font-size:13px;font-weight:500;padding:7px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.2)}
.pd-hero h1{font-size:clamp(44px,7vw,92px);line-height:.95;letter-spacing:-.045em}
.pd-hero h1 .it{color:var(--accent)}
.pd-cl{font-size:18px;color:var(--mut-d);margin-top:18px}
.pd-media{margin-top:48px;padding-bottom:clamp(70px,8vw,120px);position:relative;z-index:1}
.yt{position:relative;aspect-ratio:16/9;border-radius:24px;overflow:hidden;background:#000;box-shadow:0 40px 80px rgba(0,0,0,.35)}
.yt img,.yt iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0}
.yt button{position:absolute;inset:0;border:0;background:linear-gradient(0deg,rgba(0,0,0,.35),rgba(0,0,0,.05));cursor:pointer;display:flex;align-items:center;justify-content:center}
.yt button span{width:88px;height:88px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 10px rgba(255,149,0,.25);transition:transform .35s var(--ease)}
.yt button:hover span{transform:scale(1.08)}
.yt button svg{width:30px;height:30px;margin-left:4px}
.pd-cover{border-radius:24px;overflow:hidden;box-shadow:0 40px 80px rgba(0,0,0,.35)}
.pd-cover img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
.pd-body{padding:clamp(80px,9vw,130px) 0 40px}
.pd-gr{display:grid;grid-template-columns:1fr 340px;gap:72px;align-items:start}
.pd-tx h2{font-size:clamp(28px,3vw,36px);letter-spacing:-.03em;line-height:1.1;margin-bottom:20px}
.pd-tx p{font-size:17px;line-height:1.75;color:#333;margin-bottom:16px;max-width:680px}
.pd-info{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:8px 22px;position:sticky;top:110px}
.pd-info dl{margin:0}
.pd-info div{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.pd-info div:last-child{border-bottom:0}
.pd-info dt{color:var(--mut)}
.pd-info dd{margin:0;font-weight:600;text-align:right}
.gal{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:56px}
.gal img{width:100%;height:100%;object-fit:cover;border-radius:20px;aspect-ratio:4/5}
.gal img.l{grid-column:span 2;aspect-ratio:auto;height:auto}
.gal img.ls{aspect-ratio:auto;height:auto}
.nx{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:80px}
.nx a{position:relative;display:block;border-radius:22px;overflow:hidden;aspect-ratio:16/9;color:#fff;text-decoration:none;isolation:isolate}
.nx img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .9s var(--ease)}
.nx a:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.75));z-index:-1}
.nx a:hover img{transform:scale(1.05)}
.nx span{position:absolute;left:22px;bottom:20px;right:22px}
.nx small{display:block;font-size:13px;color:rgba(255,255,255,.75);margin-bottom:4px}
.nx b{font-size:24px;letter-spacing:-.02em}

/* À propos */
.ap-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center}
.ap-lead{font-size:21px;line-height:1.5;letter-spacing:-.01em;margin:28px 0 18px;max-width:560px}
.ap-tx{font-size:16px;line-height:1.7;color:var(--mut);margin-bottom:14px;max-width:560px}
.ap-ph{position:relative}
.ap-ph img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:52% 50%;border-radius:28px}
.sig{position:absolute;left:-28px;bottom:36px;background:#fff;border-radius:18px;padding:14px 18px;box-shadow:0 20px 40px rgba(0,0,0,.12);display:flex;align-items:center;gap:12px}
.sig i{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px rgba(255,149,0,.2)}
.sig b{display:block;font-size:15px}
.sig small{display:block;font-size:13px;color:var(--mut)}
.st{display:grid;grid-template-columns:repeat(3,1fr);margin-top:80px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.st div{padding:30px 24px}
.st div+div{border-left:1px solid var(--line)}
.st b{display:block;font-size:56px;letter-spacing:-.04em;line-height:1;font-weight:700}
.st b span{color:var(--accent-d)}
.st small{display:block;font-size:14.5px;color:var(--mut);margin-top:8px}
.va{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}
.va div{padding:28px 26px;border-radius:24px;background:var(--card);border:1px solid var(--line)}
.va .n{font-family:var(--serif);font-style:italic;font-size:44px;line-height:1;color:var(--accent-d);display:block;margin-bottom:22px}
.va h3{font-size:21px;letter-spacing:-.02em;margin-bottom:10px}
.va p{font-size:15px;line-height:1.6;color:var(--mut)}
.strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px}
.strip img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:20px}
.names{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 14px;max-width:900px;margin:32px auto 0}
.names span{font-size:26px;font-weight:700;letter-spacing:-.02em}
.names i{font-style:normal;color:var(--accent);font-size:26px}

/* Contact */
.ct-gr{display:grid;grid-template-columns:340px 1fr;gap:24px;align-items:start}
.ct-side{display:grid;gap:10px}
.ch{display:flex;align-items:center;gap:14px;padding:16px;border-radius:20px;background:var(--card);border:1px solid var(--line);text-decoration:none;transition:border-color .25s ease,transform .35s var(--ease),background-color .25s ease}
.ch:hover{border-color:rgba(224,127,0,.45);transform:translateY(-2px);background:#fff}
.ch-ic{flex:0 0 44px;width:44px;height:44px;border-radius:14px;background:#111;display:flex;align-items:center;justify-content:center}
.ch-ic svg{width:20px;height:20px}
.ch b{display:block;font-size:15.5px;font-weight:600}
.ch small{display:block;font-size:13.5px;color:var(--mut);margin-top:2px}
.info{margin-top:10px;padding:18px;border-radius:20px;border:1px dashed var(--line);font-size:14px;line-height:1.6;color:var(--mut)}
.info b{color:var(--ink);font-weight:600}
.pn{background:#fff;border:1px solid var(--line);border-radius:28px;padding:10px;box-shadow:0 30px 60px rgba(0,0,0,.06)}
.tb{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:999px;background:var(--card);margin-bottom:10px}
.tb button{border:0;background:transparent;cursor:pointer;height:44px;border-radius:999px;font-size:14.5px;font-weight:600;color:var(--mut);transition:background-color .25s ease,color .25s ease}
.tb button.on{background:#111;color:#fff}
.vw{display:none;padding:18px 18px 14px}
.vw.on{display:block}
.vw.cal{padding:0}
.est{display:flex;flex-direction:column;gap:3px;margin:0 0 18px;padding:14px 16px;border-radius:16px;background:rgba(255,149,0,.1);border:1px solid rgba(224,127,0,.25);font-size:14px;color:#7a4400}
.est b{font-size:15px;color:#111}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fl{display:flex;flex-direction:column;gap:7px}
.fl.w{grid-column:1/-1}
.fl label,.lg{font-size:13.5px;font-weight:600}
.fl label em,.lg em{font-style:normal;color:var(--accent-d)}
.in{width:100%;height:48px;padding:0 16px;border-radius:14px;border:1px solid var(--line);background:#fff;font:inherit;font-size:15px;color:var(--ink);transition:border-color .2s ease,box-shadow .2s ease;outline:0;-webkit-appearance:none;appearance:none}
textarea.in{height:140px;padding:14px 16px;resize:vertical;line-height:1.5}
select.in{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 14px center/16px no-repeat;padding-right:40px}
.in:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(255,149,0,.15)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips label{position:relative;cursor:pointer}
.chips input{position:absolute;opacity:0;pointer-events:none}
.chips span{display:inline-flex;align-items:center;height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--line);font-size:14px;font-weight:500;background:#fff;transition:all .2s ease}
.chips input:checked+span{background:#111;color:#fff;border-color:#111}
.chips input:focus-visible+span{box-shadow:0 0 0 4px rgba(255,149,0,.25)}
.ok{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;color:var(--mut);grid-column:1/-1}
.ok input{margin:2px 0 0;accent-color:#111;width:16px;height:16px;flex:none}
.sb{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:18px}
.sb small{font-size:13px;color:var(--mut)}
.msg{display:none;margin-top:12px;padding:14px 16px;border-radius:14px;font-size:14px;line-height:1.5}
.msg.err{display:block;background:#fff4f2;color:#b42318;border:1px solid #fecdca}
.done{display:none;text-align:center;padding:70px 20px}
.done.on{display:block}
.done .ck2{width:64px;height:64px;border-radius:50%;background:var(--accent);margin:0 auto 20px;display:flex;align-items:center;justify-content:center}
.done h2{font-size:28px;letter-spacing:-.02em;margin-bottom:10px}
.done p{font-size:16px;color:var(--mut);margin:0 auto;max-width:380px;line-height:1.6}
.cal-fr{width:100%;height:720px;border:0;border-radius:20px}
.hp{position:absolute;left:-9999px}

/* Estimateur */
.es{display:grid;grid-template-columns:1fr 400px;gap:32px;align-items:start}
.es-q{display:grid;gap:10px}
.qq{min-width:0;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:20px 22px;margin:0}
.qq[hidden]{display:none}
.qq legend{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:600;padding:0;margin-bottom:14px;float:left;width:100%}
.qq legend+*{clear:both}
.qq legend i{font-family:var(--serif);font-style:italic;font-weight:400;font-size:22px;color:var(--accent-d);min-width:26px}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opts label{position:relative;cursor:pointer}
.opts input{position:absolute;opacity:0;pointer-events:none}
.opts span{display:flex;flex-direction:column;justify-content:center;min-height:44px;padding:8px 16px;border-radius:14px;border:1px solid var(--line);background:#fff;font-size:14.5px;font-weight:500;line-height:1.25;transition:all .2s ease}
.opts span small{font-size:12px;font-weight:400;color:var(--mut);margin-top:2px}
.opts label:hover span{border-color:#111}
.opts input:checked+span{background:#111;color:#fff;border-color:#111}
.opts input:checked+span small{color:rgba(255,255,255,.65)}
.opts input:focus-visible+span{box-shadow:0 0 0 4px rgba(255,149,0,.25)}
.rs{background:var(--dark);color:#fff;border-radius:28px;padding:28px;position:sticky;top:110px;overflow:hidden}
.rs:before{content:"";position:absolute;right:-30%;top:-30%;width:120%;height:90%;background:radial-gradient(closest-side,rgba(255,149,0,.22),rgba(255,149,0,.06) 60%,transparent);pointer-events:none}
.rs>*{position:relative}
.rs-k{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.rs-px{font-size:44px;line-height:1.05;letter-spacing:-.035em;font-weight:700;margin:12px 0 4px;transition:opacity .25s ease}
.rs-px small{font-size:18px;font-weight:500;color:rgba(255,255,255,.6);letter-spacing:0}
.rs-ht{font-size:13px;color:rgba(255,255,255,.5)}
.rs-sm{list-style:none;margin:22px 0;padding:18px 0;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);display:grid;gap:9px}
.rs-sm li{display:flex;justify-content:space-between;gap:16px;font-size:14px;color:rgba(255,255,255,.62)}
.rs-sm li b{color:#fff;font-weight:500;text-align:right}
.rs-nt{font-size:13px;line-height:1.55;color:rgba(255,255,255,.55);margin-bottom:20px}
.rs .btn{width:100%;justify-content:space-between}
.rs-c2{display:block;text-align:center;margin-top:12px;font-size:14px;color:rgba(255,255,255,.75)}

/* Pages légales */
.lg-wrap{max-width:820px;margin:0 auto}
.idc{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:22px;overflow:hidden;margin:0 0 48px}
.idc div{background:var(--card);padding:18px 20px}
.idc small{display:block;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);margin-bottom:6px}
.idc b{font-size:15.5px;font-weight:600;line-height:1.45}
.lg-wrap section{padding:28px 0;border-top:1px solid var(--line)}
.lg-wrap h2{display:flex;align-items:baseline;gap:14px;font-size:24px;letter-spacing:-.02em;margin-bottom:14px}
.lg-wrap h2 i{font-family:var(--serif);font-style:italic;font-weight:400;font-size:26px;color:var(--accent-d)}
.lg-wrap p,.lg-wrap li{font-size:15.5px;line-height:1.7;color:var(--mut);margin:0 0 10px}
.lg-wrap ul{margin:0 0 10px;padding-left:20px}
.lg-wrap strong{color:var(--ink);font-weight:600}
.lg-wrap a{text-underline-offset:3px}

/* ---------- Animations ---------- */
main{overflow-x:clip}
.rv{opacity:0;transform:translate3d(0,40px,0);transition:opacity .9s var(--ease) var(--d,0s),transform 1.1s var(--ease) var(--d,0s),filter .9s ease var(--d,0s),clip-path 1.3s var(--ease) var(--d,0s);will-change:transform,opacity}
.rv-l{transform:perspective(1200px) translate3d(-90px,0,0) rotateY(14deg)}
.rv-r{transform:perspective(1200px) translate3d(90px,0,0) rotateY(-14deg)}
.rv-3d{transform:perspective(1100px) translate3d(0,70px,-40px) rotateX(24deg);transform-origin:50% 100%}
.rv-zoom{transform:scale(.9);filter:blur(8px)}
.rv-clip{clip-path:inset(14% 10% 14% 10% round 28px);transform:scale(1.06)}
.rv-clip.vis{clip-path:inset(0 0 0 0 round 0)}
.rv.vis{opacity:1;transform:none;filter:none}
.tilt{transition:transform .2s ease-out!important;transform-style:preserve-3d}
/* pile de cartes : se déploie à l'arrivée */
.stk.rv{transform:none;opacity:1}
.stk.rv:not(.vis) .sc{transform:translateX(0) scale(1) rotate(0)!important;opacity:0}
.stk.rv:not(.vis) .sc.d0{opacity:1;transform:perspective(1200px) translate3d(120px,0,0) rotateY(-18deg)!important}
.stk.rv:not(.vis) .fx{transform:scale(0)}
.fx{transition:transform .5s var(--ease) .6s}
/* hero */
.hero-bg{will-change:transform}
.hero-bg img{animation:kb 2.6s var(--ease) both}
@keyframes kb{from{transform:scale(1.14);opacity:0}}
.hero-tag,.hero-t,.hero-p,.hero-cta,.proof{animation:hin 1.1s var(--ease) both}
.hero-t{animation-delay:.12s}.hero-p{animation-delay:.28s}.hero-cta{animation-delay:.4s}.proof{animation-delay:.52s}
@keyframes hin{from{opacity:0;transform:translate3d(0,34px,0);filter:blur(10px)}}
@keyframes fin{from{opacity:0}}
/* titres : soulignement orange qui se dessine */
.h2 .it{background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat;transition:background-size 1.2s var(--ease) .5s}
.vis .h2 .it,.h2.vis .it{background-size:100% 2px}
@media (prefers-reduced-motion:reduce){.rv,.rv-l,.rv-r,.rv-3d,.rv-zoom,.rv-clip{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important}.hero-bg img,.hero-tag,.hero-t,.hero-p,.hero-cta,.proof{animation:none}.logos-row{animation:none}html{scroll-behavior:auto}*{transition-duration:.01ms!important}}

/* ---------- Tablette et mobile ---------- */
@media (max-width:1000px){
  .pj,.ac,.ab,.fq,.ap-hero,.pd-gr,.es,.ct-gr{grid-template-columns:1fr}
  .pj{gap:12px}.ac{gap:36px}.ab{gap:40px}.fq{gap:32px}
  .pd-info{position:static}.rs{position:relative;top:auto}
}
@media (max-width:900px){
  :root{--gut:18px}
  .sec{padding:84px 0}
  .hd{top:12px;padding:0 12px}
  .hd-bar{width:100%;justify-content:space-between;padding:6px 6px 6px 20px;border-radius:28px}
  .hd-nav,.hd-bar>.btn{display:none}
  .hd-burger{display:block}
  .hero{padding:120px 0 64px}
  .hero-in{min-height:0}
  .hero-bg img{object-position:57% 50%;opacity:.72}
  .proof-g{border-left:0;padding-left:0;width:100%}
  .hero-bg:after{background:linear-gradient(180deg,rgba(15,15,16,.55) 0%,rgba(15,15,16,.35) 35%,rgba(15,15,16,.8) 70%,var(--dark) 100%)}
  .hero-tag{font-size:13px;margin-bottom:22px}
  .proof{margin-top:34px}
  .pj-ctl{order:3;align-items:center;margin-top:20px}
  .stk{padding-right:44px;margin-top:22px}
  .fx{width:46px;height:46px;margin-right:-8px;align-self:start;margin-top:22%}
  .sc.d1{transform:translateX(22px) scale(.92)}
  .sc.d2,.sc.d3{transform:translateX(42px) scale(.84)}
  .sc.out{transform:translateX(-110%) rotate(-4deg)}
  .sc-ft b{font-size:17px}
  .go{font-size:0;padding:0;gap:0;background:none;height:auto}
  .sv-g{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:32px calc(var(--gut)*-1) 0;padding:0 var(--gut) 6px}
  .sv-g::-webkit-scrollbar{display:none}
  .sv{flex:0 0 86%;scroll-snap-align:center}
  .pl{flex-direction:column;align-items:flex-start;gap:12px}
  .ac-r li{grid-template-columns:52px 1fr;gap:14px;padding:22px 0}
  .ac-n{font-size:40px}
  .ac-r h3{font-size:19px}
  .pill{grid-column:2;justify-self:start;margin-top:12px}
  .ab-ph{max-width:340px;margin:0 auto;width:100%}
  .ab-q{font-size:24px;line-height:1.28}
  .ft{padding-top:80px}
  .ft-top{flex-direction:column;align-items:flex-start;gap:26px;padding-bottom:40px}
  .ft-cta{align-items:flex-start}
  .ft-cols{grid-template-columns:1fr 1.25fr;gap:32px 16px;padding:36px 0}
  .ft-cols>div:first-child{grid-column:1/-1}
  .ft-cols ul a{font-size:14px}
  .ft-bt{flex-direction:column;gap:14px}
  .ft-leg{justify-content:flex-start;text-align:left}
  .ph{padding:130px 0 40px}
  .fi{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:28px calc(var(--gut)*-1) 0;padding:16px var(--gut) 20px}
  .fi::-webkit-scrollbar{display:none}
  .fi button{flex:none}
  .pg{grid-template-columns:1fr;grid-auto-rows:240px;gap:12px}
  .pc.big,.pc.wide{grid-column:auto;grid-row:auto}
  .pc.big .pc-bt h2,.pc-bt h2{font-size:20px}
  .pc-ar{opacity:1;transform:none}
  .band{flex-direction:column;align-items:flex-start;padding:30px 24px;margin-top:40px}
  .pd-hero{padding-top:120px}
  .pd-media{margin-top:32px;padding-bottom:56px}
  .yt,.pd-cover{border-radius:18px}
  .yt button span{width:68px;height:68px}
  .pd-body{padding-top:64px}
  .gal{grid-template-columns:1fr;gap:12px}
  .gal img,.gal img.l{grid-column:auto;aspect-ratio:4/5}
  .gal img.ls,.gal img.l{aspect-ratio:auto;height:auto}
  .nx{grid-template-columns:1fr}
  .ap-ph{order:-1;max-width:360px;margin:0 auto;width:100%}
  .sig{left:12px;bottom:-18px}
  .st{grid-template-columns:1fr;margin-top:56px}
  .st div{padding:22px 4px}
  .st div+div{border-left:0;border-top:1px solid var(--line)}
  .st b{font-size:44px}
  .va{grid-template-columns:1fr;gap:12px}
  .strip{grid-template-columns:1fr 1fr}
  .strip img:last-child{display:none}
  .names span,.names i{font-size:20px}
  .pn{order:-1;border-radius:24px;padding:8px}
  .vw{padding:14px 10px 10px}
  .f2{grid-template-columns:1fr;gap:12px}
  .cal-fr{height:1000px}
  .tb button{font-size:13px}
  .sb{flex-direction:column;align-items:stretch}
  .sb .btn{justify-content:space-between}
  .qq{padding:16px 14px;border-radius:20px}
  .rs{padding:24px 20px;border-radius:24px}
  .rs-px{font-size:36px}
  .idc{grid-template-columns:1fr;margin-bottom:32px}
}

.pc-h{font-size:21px;font-weight:700;letter-spacing:-.02em;line-height:1.15}
@media (max-width:900px){.pg[style]{grid-template-columns:1fr!important}}

/* ---------- Téléphone : tout centré ---------- */
@media (max-width:900px){
  .hero-in,.hero h1,.hero-p{text-align:center;margin-left:auto;margin-right:auto}
  .hero-in{align-items:center}
  .hero-cta{justify-content:center}
  .hero-cta .btn{justify-content:space-between;min-width:260px}
  .proof{justify-content:center;flex-direction:column;gap:10px}
  .proof-tx{text-align:center}
  .proof-g{width:auto;justify-content:center}
  .pj>div:first-child,.ac-l,.ab>div:last-child,.fq>div:first-child,.rv-hd,.ph .wrap>h1,.ph .lead,.band,.ft-top,.ft-cols>div,.ft-bt>div,.ap-hero>div:first-child,.pd-hero .wrap{text-align:center}
  .sec .wrap>.rv:first-child,.sec .wrap>h2.h2{text-align:center}
  .lead{margin-left:auto;margin-right:auto}
  .pj-ctl{align-items:center}
  .ac-l>div{display:flex;justify-content:center}
  .ac-r li{grid-template-columns:1fr;text-align:center;justify-items:center;gap:6px}
  .ac-n{font-size:44px}
  .ac-r p{margin-left:auto;margin-right:auto}
  .pill{grid-column:auto;justify-self:center;margin-top:10px}
  .ab-who{justify-content:center}
  .ab-tx{margin-left:auto;margin-right:auto}
  .ab>div:last-child>div{display:flex;justify-content:center}
  .rv-hd{flex-direction:column;align-items:center}
  .me{text-align:left}
  .sv-bd{text-align:center;align-items:center}
  .sv .ck{justify-items:center}
  .sv .ck li{justify-content:center;text-align:left}
  .sv-go{width:100%}
  .pl{align-items:center}
  .va div,.st div{text-align:center}
  .band,.ft-top,.ft-cta{align-items:center}
  .ft-cols{grid-template-columns:1fr;gap:28px}
  .ft-cols img,.ft-cols p{margin-left:auto;margin-right:auto}
  .so{justify-content:center}
  .ft-bt{align-items:center}
  .ft-leg{justify-content:center;text-align:center}
  .crumb{justify-content:center}
  .ph .hero-cta{justify-content:center}
  .ap-lead,.ap-tx{margin-left:auto;margin-right:auto}
  .pd-tg{justify-content:center}
  .pd-tx{text-align:center}
  .pd-tx p{margin-left:auto;margin-right:auto}
  .pd-tx>div{display:flex;justify-content:center}
  .ct-side .info{text-align:center}
}
