/* VIC Studio : thème clair aux couleurs du logo (crème, vert profond, sauge).
   Le sombre est réservé au hero, au film à la une, au lecteur vidéo et au pied de page. */
:root{
  --ink:#10130f;
  --ink-2:#1a2018;
  --sage:#7d8c71;
  --sage-d:#5d6a53;
  --cream:#efe7dc;
  --bg:#f4eee6;
  --bg-2:#ebe3d7;
  --fg:#10130f;
  --fg-2:#454b3f;
  --muted:#6c7364;
  --line:rgba(16,19,15,.14);
  --display:"Jost", "Futura", "Avenir Next", Arial, sans-serif;
  --body:"Jost", "Futura", "Avenir Next", Arial, sans-serif;
  --gl:max(24px, env(safe-area-inset-left, 0px));
  --gr:max(24px, env(safe-area-inset-right, 0px));
  --ease:cubic-bezier(.2,.8,.2,1);
  color-scheme:light;
}
.dark,.hero,footer,.lb{--bg:var(--ink);--bg-2:var(--ink-2);--fg:var(--cream);--fg-2:rgba(239,231,220,.8);--muted:#a3a998;--line:rgba(239,231,220,.16);color-scheme:dark}
.dark{background:var(--bg);color:var(--fg)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-weight:300;font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden;font-synthesis:none}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--bg)}
a{color:inherit}
::selection{background:var(--sage);color:var(--cream)}
.wrap{width:100%;max-width:1360px;margin:0 auto;padding-left:var(--gl);padding-right:var(--gr)}
h1,h2,h3{font-family:var(--display);font-weight:300;font-style:normal;margin:0;line-height:1.05;letter-spacing:-.02em;text-wrap:balance}
em,i,cite,address{font-style:normal}
.label{font-weight:400;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
:focus-visible{outline:1px solid currentColor;outline-offset:5px}

.page{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center}
.trust,.services{min-height:0}
.trust > .wrap,.services > .wrap{padding-block:clamp(90px,12vw,160px)}
.page > .wrap{padding-block:clamp(110px,14vh,150px) clamp(70px,10vh,110px)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;font-family:var(--body);font-weight:400;font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;padding:18px 32px;border:1px solid var(--fg);background:transparent;color:var(--fg);cursor:pointer;transition:background .35s,color .35s,border-color .35s;white-space:nowrap}
.btn:hover{background:var(--fg);color:var(--bg)}
.btn-fill{background:var(--fg);color:var(--bg)}
.btn-fill:hover{background:transparent;color:var(--fg)}
.btn svg{width:15px;height:15px}
.link{font-family:var(--body);font-weight:400;font-size:15px;letter-spacing:.01em;color:inherit;background:none;border:0;padding:0 0 4px;border-bottom:1px solid currentColor;cursor:pointer;text-decoration:none;justify-self:start}
.link:hover{opacity:.65}
.ctas{display:flex;flex-wrap:wrap;gap:14px 16px;align-items:center}

/* Navigation : transparente sur le hero, claire ailleurs */
.nav{--nfg:var(--cream);position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:50;border-bottom:1px solid transparent;transition:background .5s,border-color .5s}
.nav.solid,.inner .nav{--nfg:var(--ink);background:var(--bg);border-color:var(--line)}
.nav .wrap{max-width:none;display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:clamp(22px,4vh,40px);transition:padding .5s}
.nav.solid .wrap,.inner .nav .wrap{padding-block:14px}
.logo{display:block;position:relative}
.logo-mark{height:clamp(64px,9vh,96px);width:auto;display:block;transition:opacity .4s}
.logo-small{position:absolute;left:0;top:50%;transform:translateY(-50%);height:40px;width:auto;opacity:0;transition:opacity .4s}
.nav.solid .logo-mark,.inner .logo-mark{opacity:0;height:40px}
.nav.solid .logo-small,.inner .logo-small{opacity:1}
.nav.solid .logo img,.inner .nav .logo img{filter:brightness(0)}
.nav-r{display:flex;gap:clamp(24px,3vw,46px);align-items:center}
.nl{font-size:12px;letter-spacing:.28em;text-transform:uppercase;text-decoration:none;color:var(--nfg);opacity:.86}
.nl:hover{opacity:1}
.nl[aria-current="page"]{opacity:1;border-bottom:1px solid currentColor;padding-bottom:4px}
.burger{width:58px;height:58px;border-radius:50%;border:1px solid var(--nfg);background:transparent;display:grid;place-content:center;gap:7px;cursor:pointer;padding:0}
.burger span{display:block;width:20px;height:1px;background:var(--nfg);transition:transform .4s}
.burger[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{transform:translateY(-4px) rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:45;background:var(--bg);display:grid;align-content:center;padding:120px var(--gr) 60px var(--gl)}
.menu[hidden]{display:none}
.menu nav{display:grid;gap:6px;max-width:1360px;margin:0 auto;width:100%}
.menu nav a{font-family:var(--display);font-size:clamp(40px,7vw,96px);line-height:1.1;text-decoration:none;color:var(--fg);transition:color .3s}
.menu nav a:hover{color:var(--sage-d)}
.menu .m-foot{max-width:1360px;margin:40px auto 0;width:100%;display:flex;flex-wrap:wrap;gap:20px 40px;align-items:center}

/* Accueil : image animée en WebGL */
.hero{position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden;background:#1a130c;color:var(--cream);display:block;padding:0}
.hero-still,#heroGL{position:absolute;inset:0;width:100%;height:100%}
.hero-still{object-fit:cover;object-position:62% 50%}
#heroGL{opacity:0;transition:opacity 1.2s}
#heroGL.on{opacity:1}
#dust{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}
.hero-shade{position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(180deg,rgba(12,9,6,.5) 0%,rgba(12,9,6,0) 22%),
  linear-gradient(20deg,rgba(12,9,6,.72) 0%,rgba(12,9,6,.35) 26%,rgba(12,9,6,0) 48%)}
.hero-copy{position:absolute;left:0;right:0;bottom:calc(52px + clamp(30px,6vh,64px));z-index:2}
.hero-copy .wrap{max-width:none;display:grid;gap:22px;justify-items:start}
.hero-copy h1{font-family:var(--body);font-weight:400;font-size:12px;letter-spacing:.3em;text-transform:uppercase;line-height:1.6}
.hero-copy p{margin:0;font-family:var(--display);font-size:clamp(28px,3vw,46px);line-height:1.12;max-width:17ch}
.ticker{position:absolute;left:0;right:0;bottom:0;height:52px;background:var(--cream);color:var(--ink);overflow:hidden;display:flex;align-items:center;z-index:3}
.ticker-track{display:flex;align-items:center;width:max-content;animation:band 70s linear infinite}
.ticker-track span{font-size:12.5px;letter-spacing:.3em;text-transform:uppercase;white-space:nowrap;padding:0 34px}
.ticker-track svg{width:11px;height:11px;flex:none;opacity:.85}

/* Bandes défilantes */
.band{overflow:hidden;background:var(--bg-2);border-block:1px solid var(--line);padding-block:clamp(12px,1.3vw,16px)}
.band-track{display:flex;align-items:center;gap:clamp(18px,2vw,30px);width:max-content;animation:band 60s linear infinite}
.band-track.rev{animation-direction:reverse}
.band span{font-family:var(--display);font-size:clamp(18px,1.8vw,26px);line-height:1;white-space:nowrap}
.band .sep{flex:none;width:7px;height:7px;border:1px solid var(--sage);transform:rotate(45deg)}
.band-light{background:var(--sage);color:var(--cream);border-color:transparent}
.band-light .sep{border-color:var(--cream)}
@keyframes band{to{transform:translateX(-50%)}}

/* Accueil : derniers tournages en bande décalée */
.reel{background:var(--bg);padding-block:clamp(90px,12vw,160px) clamp(120px,15vw,200px)}
.reel .wrap{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:48px clamp(40px,6vw,100px);align-items:center}
.reel-text{display:grid;gap:28px;justify-items:start}
.reel h2{font-size:clamp(42px,5.4vw,96px);line-height:1}
.reel-text p{margin:0;max-width:34ch;font-size:17px;color:var(--fg-2)}
.reel-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,1.4vw,20px);align-items:start}
.reel-item{display:grid;gap:10px;text-decoration:none;color:inherit}
.reel-item:nth-child(even){margin-top:clamp(40px,6vw,96px)}
.reel-media{position:relative;display:block;aspect-ratio:9/16;overflow:hidden;background:var(--ink)}
.reel-media img,.reel-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.reel-media video{opacity:0;transition:opacity .8s,transform 1.4s var(--ease)}
.reel-media video.on{opacity:1}
.reel-item:hover .reel-media img,.reel-item:hover .reel-media video{transform:scale(1.04)}
.reel-cap{font-size:13.5px;color:var(--muted);line-height:1.3}
.reel-cap b{display:block;font-weight:400;font-size:15px;color:var(--fg)}

/* Portfolio : film à la une */
.feat{padding-block:clamp(70px,9vw,130px)}
.feat-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:40px clamp(40px,7vw,120px);align-items:center}
.feat-media{position:relative;display:block;width:100%;max-width:440px;justify-self:end;aspect-ratio:9/16;overflow:hidden;background:#000;border:0;padding:0;cursor:pointer}
.feat-media img,.feat-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.feat-media video{opacity:0;transition:opacity .8s}
.feat-media video.on{opacity:1}
.feat-text{display:grid;gap:22px;justify-items:start;max-width:46ch}
.feat-text h2{font-size:clamp(44px,6vw,104px);line-height:.98}
.feat-text .feat-cat{margin:0;font-size:14px;letter-spacing:.06em;color:var(--muted)}
.feat-text p{margin:0;color:var(--fg-2);font-size:17px}
.feat-text .ctas{display:flex;flex-wrap:wrap;gap:18px 30px;align-items:center;margin-top:8px}

/* Portfolio : grille filtrable */
.works{background:var(--bg);padding-block:clamp(80px,10vw,140px)}
.w-bar{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:24px 40px;margin-bottom:clamp(30px,4vw,52px)}
.w-bar h2{font-size:clamp(36px,4.4vw,72px)}
.w-filters{display:flex;flex-wrap:wrap;gap:8px}
.w-filter{font:inherit;font-size:14px;font-weight:400;padding:10px 18px;border:1px solid var(--line);background:transparent;color:var(--fg);cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.w-filter sup{font-size:10px;margin-left:4px;opacity:.6}
.w-filter:hover{border-color:var(--fg)}
.w-filter[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.w-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(36px,4vw,56px) clamp(14px,1.8vw,28px)}
.w-card{display:grid;gap:6px;align-content:start}
.w-card[hidden]{display:none}
.w-play{display:block;width:100%;border:0;padding:0;background:none;cursor:pointer;margin-bottom:10px}
.w-media{position:relative;display:block;aspect-ratio:9/16;overflow:hidden;background:var(--ink)}
.w-media img,.w-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.w-media video{opacity:0;transition:opacity .5s,transform 1.4s var(--ease)}
.w-card.on .w-media video{opacity:1}
.w-play:hover .w-media img,.w-play:hover .w-media video{transform:scale(1.045)}
.w-dur{position:absolute;right:10px;bottom:10px;z-index:2;font-size:12px;background:rgba(16,19,15,.72);padding:3px 8px;color:var(--cream)}
.w-title{font-family:var(--display);font-weight:400;font-size:clamp(18px,1.5vw,22px);line-height:1.2}
.w-cat{margin:0;font-size:13.5px;color:var(--muted)}
.w-desc{margin:4px 0 0;font-size:14.5px;line-height:1.6;color:var(--fg-2)}
.w-photos{margin-top:clamp(80px,10vw,140px);display:grid;gap:24px}
.w-photos h3{font-size:clamp(26px,2.4vw,38px)}
.w-ph-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.6vw,24px)}
.w-ph-grid figure{margin:0;display:grid;gap:10px}
.w-ph-grid img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;display:block}
.w-ph-grid figcaption{font-size:13.5px;color:var(--muted)}
.w-cta{margin-top:clamp(50px,7vw,90px);display:flex;flex-wrap:wrap;gap:20px 30px;align-items:center}

/* Curseur « Regarder » sur ordinateur */
.cur{position:fixed;left:0;top:0;z-index:70;pointer-events:none;width:0;height:0}
.cur span{position:absolute;left:-48px;top:-48px;width:96px;height:96px;border-radius:50%;background:var(--cream);color:var(--ink);display:grid;place-items:center;font-size:10.5px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;transform:scale(0);transition:transform .45s var(--ease);box-shadow:0 6px 30px rgba(16,19,15,.18)}
.cur.on span{transform:scale(1)}
@media (hover:hover) and (pointer:fine){ .js-cursor [data-cursor]{cursor:none} }

/* Références et déroulé */
.trust{background:var(--bg-2)}
.trust .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(48px,8vw,140px);align-items:start}
.trust h2{font-size:clamp(34px,3.8vw,64px);margin:16px 0 34px}
.clients{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.clients li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.clients b{font-family:var(--display);font-weight:400;font-size:clamp(22px,2vw,32px);line-height:1.1}
.clients span{font-size:13.5px;color:var(--muted);text-align:right}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--line)}
.steps li{display:grid;grid-template-columns:72px minmax(0,1fr);gap:4px 20px;padding:22px 0;border-bottom:1px solid var(--line)}
.steps .n{font-family:var(--display);font-size:34px;line-height:1;grid-row:span 2}
.steps h3{font-family:var(--body);font-weight:500;font-size:16px}
.steps p{margin:0;color:var(--fg-2);max-width:46ch}
.trust .btn{margin-top:34px}

/* À propos */
.about{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;background:var(--bg)}
.about-visual{position:relative;background:var(--sage);display:grid;place-items:center;padding:12%;min-height:100svh;overflow:hidden}
.about-visual .a-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.about-text{display:grid;align-content:center;gap:24px;padding:clamp(110px,12vh,150px) clamp(28px,7vw,120px) clamp(70px,10vh,110px)}
.about-text h2{font-size:clamp(26px,2.5vw,42px);line-height:1.18}
.about-text p{margin:0;max-width:54ch;font-size:16px;line-height:1.75;color:var(--fg-2)}
.about-text p.first{font-size:17.5px;color:var(--fg)}
.sig{display:flex;align-items:baseline;gap:22px;flex-wrap:wrap;padding-top:6px}
.sig .name{font-family:var(--display);font-size:46px;line-height:1}
.sig a{font-size:14px;color:var(--muted);text-decoration:none}
.sig a:hover{color:var(--fg)}
.about-portrait{padding:0;background:#d9d6d1}
.about-portrait .a-photo{object-position:50% 30%}

/* Prestations : une liste, pas des cartes */
.services{background:var(--bg)}
.s-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:20px 40px;margin-bottom:clamp(36px,6vh,64px)}
.s-head h2{font-size:clamp(40px,5.2vw,90px)}
.s-head p{margin:0;max-width:30ch;color:var(--muted);font-size:15px}
.s-list{border-top:1px solid var(--line)}
.s-row{display:grid;grid-template-columns:clamp(96px,9vw,140px) minmax(0,1fr) minmax(0,1fr) auto;gap:20px clamp(24px,4vw,64px);align-items:center;padding-block:clamp(18px,2.6vh,28px);border-bottom:1px solid var(--line)}
.s-row img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 45%;display:block}
.s-row h3{font-size:clamp(30px,3vw,50px)}
.s-row h3 a{text-decoration:none;color:inherit}
.s-row h3 a:hover{color:var(--sage-d)}
.s-row p{margin:0;max-width:40ch;color:var(--fg-2)}

/* Contact */
.contact{background:var(--sage);color:var(--ink)}
.c-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,7vw,120px);align-items:center}
.c-side{display:grid;gap:28px}
.c-side h1,.c-side h2{font-size:clamp(42px,5.4vw,96px);line-height:1.02}
.c-side p{margin:0;max-width:38ch;font-weight:400}
.c-num{font-size:12px;letter-spacing:.22em;user-select:all}
.c-alt{margin-top:18px;max-width:44ch}
.c-alt a{color:inherit;text-decoration:underline;text-underline-offset:3px}
form{display:grid;gap:26px;background:var(--bg);color:var(--ink);padding:clamp(28px,4vw,56px)}
.field{display:grid;gap:4px}
.field label,.legend{font-size:13.5px;color:#5f6758}
.field input,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid #c9c2b5;color:var(--ink);font:inherit;font-weight:400;font-size:17px;padding:10px 0;border-radius:0}
.field input:focus,.field textarea:focus{border-color:var(--ink);outline:none}
.field textarea{resize:vertical;min-height:60px}
.field input::placeholder,.field textarea::placeholder{color:#a19a8d}
.field.err input{border-color:#a3392f}
.err-msg{font-size:13px;color:#a3392f;min-height:0}
fieldset{border:0;margin:0;padding:0;display:grid;gap:12px;min-width:0}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative}
.chip input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.chip span{display:inline-block;padding:9px 15px;font-size:14px;border:1px solid #c9c2b5}
.chip:hover span{border-color:var(--ink)}
.chip input:checked+span{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.chip input:focus-visible+span{outline:1px solid var(--ink);outline-offset:3px}
.form-foot{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.form-foot small{color:#646c5d;font-size:12.5px;max-width:28ch;line-height:1.5}
.done{display:grid;gap:14px;padding:18px 20px;background:#e3dbcf;font-size:15px;line-height:1.55}
.done strong{font-weight:500}
.done[hidden]{display:none}

/* Accueil : pourquoi travailler avec moi */
.why{background:var(--bg-2);padding-block:clamp(90px,12vw,160px)}
.why .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px clamp(40px,7vw,120px);align-items:start}
.why h2{font-size:clamp(38px,4.6vw,78px)}
.why .lead{margin:24px 0 0;max-width:36ch;color:var(--fg-2)}
.why-list{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(28px,4vw,60px);margin:0;padding:0;list-style:none}
.why-list li{border-top:1px solid var(--line);padding:26px 0 34px;display:grid;gap:10px}
.why-list h3{font-weight:400;font-size:clamp(20px,1.8vw,26px);letter-spacing:-.01em}
.why-list p{margin:0;color:var(--fg-2);font-size:15.5px}

/* Appel à l'action */
.cta-band{--fg:var(--ink);--bg:var(--cream);background:var(--sage);color:var(--ink);padding-block:clamp(90px,12vw,160px)}
.cta-band .wrap{display:grid;justify-items:center;text-align:center;gap:28px}
.cta-band h2{font-size:clamp(42px,6vw,104px);max-width:14ch}
.cta-band p{margin:0;max-width:44ch;font-weight:400}
.cta-band .ctas{justify-content:center}

/* Pages intérieures */
.p-head{padding:calc(140px + env(safe-area-inset-top,0px)) 0 clamp(30px,5vw,60px)}
.p-head .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,34ch);gap:20px 60px;align-items:end}
.p-head h1{font-size:clamp(46px,6.6vw,112px);line-height:1}
.p-head p{margin:0;color:var(--fg-2);font-size:15.5px}
.inner .contact{min-height:calc(100svh - 70px);padding-top:70px}
.crumbs{font-size:12.5px;letter-spacing:.04em;color:var(--muted);margin-bottom:22px}
.crumbs a{color:inherit;text-decoration:none;border-bottom:1px solid var(--line)}
.crumbs span{color:var(--fg)}

/* Pages services et FAQ */
.svc{padding-block:clamp(40px,6vw,90px) clamp(80px,10vw,140px)}
.svc-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px clamp(40px,7vw,120px);align-items:start}
.svc-img{margin:0;position:sticky;top:110px}
.svc-img img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;display:block}
.svc-text h2{font-size:clamp(26px,2.4vw,38px);margin:0 0 14px;padding-top:30px;border-top:1px solid var(--line)}
.svc-text h2:first-child{border-top:0;padding-top:0}
.svc-text p{margin:0 0 30px;max-width:58ch;color:var(--fg-2);font-size:16px}
.svc-text p a{color:var(--fg)}
.svc-text .ctas{display:flex;flex-wrap:wrap;gap:20px 30px;align-items:center;margin-top:10px}
.faq{background:var(--bg-2);padding-block:clamp(80px,10vw,140px)}
.faq .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:30px clamp(40px,7vw,120px);align-items:start}
.faq h2{font-size:clamp(34px,3.8vw,64px)}
.faq-list{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:22px 40px 22px 0;position:relative;font-size:clamp(18px,1.5vw,22px);font-weight:400}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:18px;font-size:26px;font-weight:300}
.faq details[open] summary::after{content:"−"}
.faq details p{margin:0 0 24px;max-width:60ch;color:var(--fg-2)}
.faq details p a{color:var(--fg)}

footer{background:var(--ink);color:var(--cream);padding-block:40px calc(30px + env(safe-area-inset-bottom,0px))}
footer .wrap{display:grid;grid-template-columns:1fr auto 1fr;gap:20px 40px;align-items:center}
footer img{height:36px;width:auto;display:block}
footer nav{display:flex;flex-wrap:wrap;gap:10px 32px;justify-content:center}
footer a{font-size:14px;text-decoration:none;color:var(--muted)}
footer a:hover{color:var(--cream)}
footer .copy{justify-self:end;font-size:13px;color:var(--muted)}

.float[hidden]{display:none!important}
.float{position:fixed;left:calc(14px + env(safe-area-inset-left,0px));right:calc(14px + env(safe-area-inset-right,0px));bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:40;display:none}

/* Lecteur : s'ouvre depuis la vignette */
.lb{position:fixed;inset:0;z-index:80;background:rgba(10,12,9,.97);color:var(--cream);display:grid;place-items:center;padding:calc(64px + env(safe-area-inset-top,0px)) 16px calc(40px + env(safe-area-inset-bottom,0px))}
.lb-inner{display:grid;gap:16px;justify-items:center}
.lb video{height:min(72vh,800px);max-width:calc(100vw - 32px);aspect-ratio:9/16;background:#000;object-fit:cover;display:block}
.lb .cap{font-family:var(--display);font-size:26px;text-align:center}
.lb-cta{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}
.lb-close{position:absolute;top:calc(18px + env(safe-area-inset-top,0px));right:calc(18px + env(safe-area-inset-right,0px));background:none;border:0;color:var(--cream);font-family:var(--body);font-size:11px;letter-spacing:.26em;text-transform:uppercase;cursor:pointer;padding:10px}

@media (max-width:1100px){
  .w-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:1000px){
  .nav-r .nl{display:none}
}
@media (max-width:820px){
  .hero-copy p{font-size:clamp(26px,7.4vw,34px)}
  .burger{width:50px;height:50px}
  .reel .wrap{grid-template-columns:minmax(0,1fr)}
  .reel-strip{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:44vw;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(-1*var(--gl)) calc(-1*var(--gr));padding-inline:var(--gl) var(--gr);scroll-padding-inline:var(--gl);padding-bottom:8px}
  .reel-strip::-webkit-scrollbar{display:none}
  .reel-item{scroll-snap-align:start}
  .reel-item:nth-child(even){margin-top:36px}
  .feat-grid{grid-template-columns:minmax(0,1fr)}
  .feat-media{justify-self:stretch;max-width:none;aspect-ratio:4/5}
  .w-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 12px}
  .w-desc{font-size:13.5px}
  .w-ph-grid{grid-template-columns:1fr 1fr}
  .about{grid-template-columns:minmax(0,1fr)}
  .about-visual{min-height:56svh}
  .about-portrait{min-height:0;aspect-ratio:4/5}
  .about-portrait .a-photo{object-position:50% 22%}
  .about-portrait + .about-text{padding-top:48px}
  .trust .wrap{grid-template-columns:minmax(0,1fr)}
  .s-head{grid-template-columns:minmax(0,1fr)}
  .s-row{grid-template-columns:96px minmax(0,1fr);align-items:start;align-content:start;row-gap:10px}
  .s-row img{grid-row:1 / span 3}
  .s-row h3,.s-row p,.s-row .link{grid-column:2}
  .s-row h3{line-height:1}
  .c-grid{grid-template-columns:minmax(0,1fr)}
  .p-head .wrap,.why .wrap,.svc-grid,.faq .wrap{grid-template-columns:minmax(0,1fr)}
  .p-head{padding-top:calc(110px + env(safe-area-inset-top,0px))}
  .why-list{grid-template-columns:minmax(0,1fr)}
  .svc-img{position:static}
  .svc-img img{aspect-ratio:4/3}
  footer .wrap{grid-template-columns:1fr;justify-items:center;text-align:center}
  footer .copy{justify-self:center}
  .float{display:flex}
  footer{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:520px){
  .hide-sm{display:none}
  .ctas .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){ *{transition:none!important} html{scroll-behavior:auto} .band-track,.ticker-track{animation:none} }
