/* eykfrance.com — styles du site (pages reconstruites)
   Parti pris : le noir d'une salle de projection, des images en très grand, une typographie
   monumentale et très peu d'ornements. Une seule rupture : le portrait, sur fond blanc. */
:root{--noir:#000;--blanc:#fff;--bleu:#234AFF;--gris:rgba(255,255,255,.58);--trait:rgba(255,255,255,.14);--papier:#fff;--encre:#0a0a0a;
  --f-fin:"Helvetica Neue",Helvetica,Arial,sans-serif;--f-gras:"Archivo Black","Helvetica Neue",Helvetica,Arial,sans-serif;--f-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --r:clamp(12px,1.2vw,20px);--out:cubic-bezier(.16,1,.3,1);--surface:#0b0b0f;--hd-space:112px;--goutt:clamp(20px,4vw,72px);--bloc:clamp(96px,12vw,210px)}
@media(max-width:1024px){:root{--hd-space:2px}}
@media(max-width:767px){:root{--hd-space:82px}}
.home .pc{display:none}
.eyk .hd-bar{max-width:none;padding-inline:var(--goutt)}
.eyk{background:var(--noir)}
body.eyk .site-main{max-width:none;width:100%;margin:0;padding:0}
.v2 a{color:inherit}
.v2{position:relative;isolation:isolate;font-family:var(--f-fin);color:var(--blanc);background:var(--noir);-webkit-font-smoothing:antialiased}

/* ---------- Lumière d'ambiance : voiles de lumière bleue dans la brume, calculés en direct (fin de site.js) ---------- */
.aura{position:fixed;top:0;left:0;width:100%;height:100vh;height:100lvh;z-index:-1;overflow:hidden;pointer-events:none;background:var(--noir)}
.aura canvas{position:absolute;inset:0;display:block;width:100%;height:100%;opacity:0;transition:opacity 2.4s ease}
.aura.is-gl canvas{opacity:1}
.aura.is-fixe{background:var(--noir) url(/assets/img/fond.webp) center/cover no-repeat}
.aura:after{content:"";position:absolute;inset:0;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.v2 *{box-sizing:border-box}
.v2 h2{margin:0;font:200 clamp(44px,6.6vw,124px)/.92 var(--f-fin);letter-spacing:-.05em;color:var(--blanc)}
.v2 h2 .ln{display:block}
.v2 h2 strong{font-family:var(--f-gras);font-weight:400;letter-spacing:-.035em}
.v2 h2 strong:after{content:"";display:inline-block;width:.13em;height:.13em;margin-left:.05em;background:var(--bleu)}
.v2 .tx{margin:0 0 28px;font:300 clamp(16px,1.2vw,19px)/1.65 var(--f-fin);color:rgba(255,255,255,.78)}
.v2 .lk{display:inline-block;padding-bottom:5px;border-bottom:1px solid currentColor;font:400 15px/1.3 var(--f-fin);color:inherit;text-decoration:none;background:linear-gradient(var(--bleu),var(--bleu)) left bottom/0 1px no-repeat;transition:background-size .45s var(--out),border-color .3s}
.v2 .lk:hover{background-size:100% 1px;border-color:transparent;color:inherit}
.v2 .bt{display:inline-flex;align-items:center;padding:20px 32px;border-radius:999px;border:1px solid var(--blanc);font:700 12px/1 var(--f-fin);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:background .25s,color .25s,border-color .25s}
.v2 .bt-w{background:var(--blanc);color:var(--noir)}
.v2 .bt-w:hover{background:var(--bleu);border-color:var(--bleu);color:var(--blanc)}
.v2 .bt-g{background:rgba(0,0,0,.2);border-color:rgba(255,255,255,.5);color:var(--blanc);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.v2 .bt-g:hover{background:var(--blanc);border-color:var(--blanc);color:var(--noir)}
.v2 a:focus-visible,.v2 button:focus-visible{outline:2px solid var(--bleu);outline-offset:4px}

/* ---------- 1. Hero ---------- */
.hx{position:relative;isolation:isolate;overflow:hidden;margin-top:calc(-1*var(--hd-space));min-height:max(660px,min(100svh,1100px));display:flex;align-items:flex-end;padding:190px var(--goutt) clamp(40px,4.6vw,72px);background:var(--noir)}
.hx-frame{position:absolute;inset:0;z-index:-1;overflow:hidden}
.hx-media img,.hx-video{translate:0 calc(var(--p,0)*9%)}
.hx-media{position:absolute;inset:0;container-type:size;overflow:hidden}
.hx-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hx-video{position:absolute;top:50%;left:50%;width:max(100cqw,177.78cqh);height:max(100cqh,56.25cqw);transform:translate(-50%,-50%) scale(1.02);opacity:0;transition:opacity 1.2s ease;pointer-events:none}
.hx-video iframe{width:100%;height:100%;border:0;display:block}
.hx.is-playing .hx-video{opacity:1}
.hx-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,.12) 32%,rgba(0,0,0,.28) 56%,rgba(0,0,0,.94) 100%)}
.hx-in{width:100%}
.hx-k{display:flex;align-items:center;gap:14px;margin:0 0 clamp(18px,2vw,30px);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.hx-k i{flex:none;width:8px;height:8px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 4px rgba(74,222,128,.18)}
.hx h1{margin:0;font:200 min(7.5vw,150px)/.9 var(--f-fin);letter-spacing:-.05em;color:var(--blanc);text-transform:none}
.hx h1 .ln{display:block}
.hx h1 .ln>span{display:block}
.hx h1 strong{font-family:var(--f-gras);font-weight:400;letter-spacing:-.035em}
.hx h1 em{font-style:normal;color:var(--bleu)}
.hx-row{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-top:clamp(28px,3.4vw,52px);padding-top:28px;border-top:1px solid rgba(255,255,255,.24)}
.hx-row p{margin:0;max-width:520px;font:300 clamp(15px,1.15vw,18px)/1.65 var(--f-fin);color:rgba(255,255,255,.88)}
.hx-cta{display:flex;flex-wrap:wrap;gap:12px;flex:none}
@keyframes hxBlink{0%{opacity:1}100%{opacity:.15}}
@keyframes v2Up{from{opacity:0;filter:blur(26px);transform:scale(1.04)}to{opacity:1;filter:none;transform:none}}
@keyframes v2Fade{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.rv .hx h1 .ln>span{transform-origin:0 60%;animation:v2Up 1.5s var(--out) both}
.rv .hx h1 .ln:nth-child(2)>span{animation-delay:.12s}
.rv .hx h1 .ln:nth-child(3)>span{animation-delay:.24s}
.rv .hx-k{animation:v2Fade 1s .05s both}
.rv .hx-row{animation:v2Fade 1s .7s both}
@media(max-width:900px){.hx-row{flex-direction:column;align-items:flex-start;gap:26px}}
@media(max-width:767px){.hx{padding-top:170px;min-height:0}.hx h1{font-size:14.2vw}.hx-cta{width:100%}.hx-cta .bt{flex:1 1 auto;justify-content:center;padding:18px 20px}}
@media(min-width:768px){.hx h1 .ln:nth-child(2),.hx h1 .ln:nth-child(3){display:inline-block;vertical-align:top}}

/* ---------- 2. Références ---------- */
.lg{display:flex;align-items:center;gap:clamp(24px,3vw,56px);padding:10px 0 10px var(--goutt);border-bottom:1px solid var(--trait);overflow:hidden}
.lg p{flex:none;margin:0;font:400 14px/1.4 var(--f-fin);color:var(--gris);max-width:9em}
.lg-m{display:flex;flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.lg-m ul{flex:none;display:flex;align-items:center;gap:clamp(28px,3.4vw,64px);margin:0;padding:0 clamp(14px,1.7vw,32px);list-style:none;animation:lgRun 60s linear infinite}
.lg-m li{flex:none}
.lg-m img{display:block;width:clamp(104px,9.5vw,150px);height:auto;aspect-ratio:1;object-fit:contain;filter:grayscale(1) brightness(1.7);opacity:.82}
.lg:hover .lg-m ul{animation-play-state:paused}
@keyframes lgRun{to{transform:translateX(-100%)}}
@media(max-width:767px){.lg{flex-direction:column;align-items:flex-start;gap:0;padding:26px 0 6px}.lg p{padding-left:var(--goutt);max-width:none}.lg-m{width:100%}}

/* ---------- 3. Réalisations : l'annonce puis la pellicule ---------- */
.re{padding:var(--bloc) var(--goutt) 16px;overflow:hidden}
.re-hd{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px clamp(40px,6vw,120px);align-items:end;margin-bottom:clamp(48px,6vw,104px)}
.re-st{margin:0 0 .35em;font:200 clamp(21px,2.3vw,40px)/1.22 var(--f-fin);letter-spacing:-.02em;color:var(--blanc);text-wrap:balance}
.fs{margin-inline:calc(-1*var(--goutt));padding-block:3vh;overflow:hidden}
.fs-t{display:flex;gap:clamp(10px,1.1vw,20px);width:max-content;padding-inline:var(--goutt);transform:translate3d(calc(var(--x,0)*1px),0,0);will-change:transform}
.fs figure{--f:0;position:relative;flex:none;height:clamp(230px,52vh,600px);margin:0;border-radius:var(--r);overflow:hidden;background:#0d0d0d}
.fs video,.fs img{display:block;width:100%;height:100%;object-fit:cover;filter:blur(calc(var(--f)*9px)) brightness(calc(1 - var(--f)*.5));transform:scale(calc(1 + var(--f)*.07))}
.fs figcaption{position:absolute;left:0;right:0;bottom:0;display:flex;gap:12px;align-items:baseline;padding:60px 22px 18px;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.7));font:300 13px/1.3 var(--f-fin);color:rgba(255,255,255,.8)}
.fs figcaption b{font:400 15px/1.3 var(--f-fin);color:var(--blanc)}
.rv .fs figcaption{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .7s var(--out)}
.rv .fs figure.is-focus figcaption{opacity:1;transform:none}
.re-ft{display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap;padding:clamp(28px,3vw,48px) 0 0}
.v2 .vd{display:inline-flex;align-items:center;gap:20px;max-width:100%;margin:0;padding:0;border:0;background:none;color:var(--blanc);font:inherit;text-align:left;white-space:normal;cursor:pointer}
.vd-tx{min-width:0}
.v2 .vd:hover{background:none;color:var(--blanc)}
.vd-pl{position:relative;flex:none;width:68px;height:68px;border-radius:50%;border:1px solid rgba(255,255,255,.5);transition:background .3s,border-color .3s,transform .4s var(--out)}
.vd-pl:before{content:"";position:absolute;top:50%;left:50%;margin:-8px 0 0 -5px;border-style:solid;border-width:8px 0 8px 13px;border-color:transparent transparent transparent var(--blanc);transition:border-color .3s}
.vd:hover .vd-pl{background:var(--blanc);border-color:var(--blanc);transform:scale(1.06)}
.vd:hover .vd-pl:before{border-left-color:var(--noir)}
.vd-tx b{display:block;font:400 clamp(17px,1.5vw,22px)/1.25 var(--f-fin);letter-spacing:-.01em}
.vd-tx small{display:block;margin-top:5px;font:300 14px/1.3 var(--f-fin);color:var(--gris)}
@media(max-width:900px){.re-hd{grid-template-columns:1fr}.fs figure{height:clamp(200px,58vw,360px)}}

/* Fenêtre vidéo */
.vm{width:min(1280px,94vw);max-width:none;max-height:none;padding:0;border:0;background:none;color:var(--blanc);overflow:visible}
.vm::backdrop{background:rgba(0,0,0,.9);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.vm-f{aspect-ratio:16/9;background:#000;border-radius:var(--r);overflow:hidden}
.vm-f iframe{width:100%;height:100%;border:0;display:block}
.v2 .vm-x{display:block;margin:0 0 14px auto;padding:8px 0;border:0;border-bottom:1px solid currentColor;border-radius:0;background:none;color:var(--blanc);font:400 14px/1 var(--f-fin);cursor:pointer}
.v2 .vm-x:hover{background:none;color:var(--blanc)}

/* ---------- Bande typographique : les formats, en deux lignes qui se croisent ---------- */
.kt{padding:var(--bloc) 0 0;overflow:hidden}
.kt-l{--tx:0;display:flex;width:max-content;margin:0;font:400 clamp(44px,8.4vw,160px)/1.02 var(--f-gras);letter-spacing:-.04em;color:var(--blanc);white-space:nowrap;transform:translate3d(calc(var(--tx)*1px),0,0);will-change:transform}
.kt-l.kt-o{font-family:var(--f-fin);font-weight:200;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.55)}
.kt-g{display:flex}
.kt-g>span{display:flex;align-items:center;padding-right:.35em}
.kt-g>span:after{content:"";flex:none;width:.13em;height:.13em;margin-left:.35em;background:var(--bleu)}

/* ---------- 4. Projets ---------- */
.wk{padding:clamp(72px,8vw,140px) var(--goutt) var(--bloc)}
.wk-hd{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;margin-bottom:clamp(36px,4.4vw,72px)}
.wk-f{display:flex;flex-wrap:wrap;gap:6px 28px;margin:0 0 .9em;padding:0;list-style:none}
.wk .wk-f button{margin:0;padding:6px 0;border:0;border-bottom:1px solid transparent;border-radius:0;background:none;font:300 16px/1.3 var(--f-fin);color:var(--gris);cursor:pointer;transition:color .25s,border-color .25s}
.wk .wk-f button:hover{color:var(--blanc);background:none}
.wk .wk-f button.is-on{color:var(--blanc);border-bottom-color:var(--blanc)}
.wk-g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(36px,4vw,72px) clamp(10px,1.1vw,20px)}
.v2 a.wk-c{grid-column:span 4;display:block;color:var(--blanc);text-decoration:none}
.v2 a.wk-c:hover{color:var(--blanc)}
.v2 a.wk-c[hidden]{display:none}
.v2 .wk-g:not(.is-filtered) a.s5{grid-column:span 5}
.v2 .wk-g:not(.is-filtered) a.s6{grid-column:span 6}
.v2 .wk-g:not(.is-filtered) a.s7{grid-column:span 7}
.v2 .wk-g:not(.is-filtered) a.s8{grid-column:span 8}
.wk-im{position:relative;display:block;height:clamp(230px,31vw,600px);border-radius:var(--r);overflow:hidden;background:#0d0d0d}
.wk-im img{display:block;width:100%;height:100%;object-fit:cover;scale:var(--zoom,1);transition:transform 1.6s var(--out)}
.wk-im video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;filter:blur(22px);scale:1.06;transition:opacity .5s ease,filter .9s var(--out),scale 1.1s var(--out)}
.wk-im video.is-on{opacity:1;filter:none;scale:1}
.wk-cap{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-top:16px}
.wk-cap b{font:400 clamp(17px,1.35vw,22px)/1.25 var(--f-fin);letter-spacing:-.015em}
.wk-cap small{flex:none;font:300 14px/1.3 var(--f-fin);color:var(--gris)}
.v2 a.wk-all{grid-column:span 8;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;height:clamp(230px,31vw,600px);padding:clamp(22px,2.6vw,44px);border:1px solid var(--trait);border-radius:var(--r);color:var(--blanc);text-decoration:none;transition:background .45s,color .45s,border-color .45s}
.wk-all span{font:200 clamp(34px,4.6vw,88px)/.95 var(--f-fin);letter-spacing:-.05em}
.wk-all strong{display:block;font-family:var(--f-gras);font-weight:400;letter-spacing:-.035em}
.wk-all i{flex:none;position:relative;width:clamp(56px,5vw,92px);aspect-ratio:1;border-radius:50%;border:1px solid currentColor;transition:transform .5s var(--out)}
.wk-all i:before,.wk-all i:after{content:"";position:absolute;top:50%;left:50%;background:currentColor}
.wk-all i:before{width:34%;height:1px;transform:translate(-50%,-50%)}
.wk-all i:after{width:11%;aspect-ratio:1;background:none;border:solid currentColor;border-width:1px 1px 0 0;transform:translate(60%,-50%) rotate(45deg)}
.v2 a.wk-all:hover{background:var(--bleu);border-color:var(--bleu);color:var(--blanc)}
.wk-all:hover i{transform:translateX(8px)}
.v2 .wk-g.is-filtered a.wk-all{grid-column:span 4}
.wk-g.is-filtered .wk-all span{font-size:clamp(28px,2.6vw,44px)}
@media(max-width:1024px){.v2 .wk-g a.wk-c:nth-child(n){grid-column:span 6}.v2 .wk-g a.wk-c:nth-child(5n+1){grid-column:span 12}.v2 .wk-g a.wk-all{grid-column:span 12;height:auto;min-height:220px}.wk-im{height:clamp(220px,40vw,420px)}}
@media(max-width:640px){.v2 .wk-g a.wk-c:nth-child(n){grid-column:span 12}.wk-im{height:60vw}.wk-cap small{display:none}}

/* ---------- 5. Services ---------- */
.sv2{position:relative;padding:0 var(--goutt) clamp(64px,7vw,120px)}
.sv2-hd{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:32px clamp(40px,6vw,120px);align-items:end;padding-top:var(--bloc);border-top:1px solid var(--trait);margin-bottom:clamp(48px,6vw,96px)}
.sv2-b{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(32px,5vw,96px);align-items:start}
.sv2-m{position:sticky;top:104px;aspect-ratio:1;border-radius:calc(var(--r)*1.5);overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px rgba(255,255,255,.1)}
.sv2-m video{display:block;width:100%;height:100%;object-fit:cover}
.sv2-l{margin:0;padding:0;list-style:none}
.sv2-l li{position:relative;margin:0;padding:clamp(24px,2.6vw,44px) 0;border-top:1px solid var(--trait);color:var(--blanc);transition:opacity .35s}
.sv2-l li:last-child{border-bottom:1px solid var(--trait)}
.sv2-l h3{margin:0 0 .35em;font:200 clamp(28px,3.7vw,68px)/1 var(--f-fin);letter-spacing:-.045em;color:inherit;transition:transform .6s var(--out)}
.sv2-l p{margin:0;max-width:34em;font:300 clamp(15px,1.15vw,18px)/1.6 var(--f-fin);color:inherit;opacity:.72}
@media(hover:hover){.sv2-l:hover li{opacity:.32}.sv2-l li:hover{opacity:1}.sv2-l li:hover h3{transform:translateX(clamp(8px,1vw,18px))}.sv2-l li:hover p{opacity:1}}
@media(max-width:900px){.sv2-hd{grid-template-columns:1fr}.sv2-b{grid-template-columns:1fr}.sv2-m{position:static;order:-1}}


/* ---------- Appel au devis : un grand plan de film, le titre posé dessus ---------- */
.cta{padding:0 var(--goutt) var(--bloc)}
.cta-p{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:clamp(440px,78vh,820px);border-radius:calc(var(--r)*1.5);overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px rgba(255,255,255,.1)}
.cta-p video{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;filter:brightness(.82)}
.cta-p:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.28) 0%,rgba(0,0,0,.08) 30%,rgba(0,0,0,.86) 100%)}
.cta-in{display:flex;justify-content:space-between;align-items:flex-end;gap:32px 56px;flex-wrap:wrap;width:100%;padding:clamp(24px,3.6vw,64px)}
.cta-t{margin:0;font:200 clamp(44px,8.2vw,158px)/.9 var(--f-fin);letter-spacing:-.055em;color:var(--blanc)}
.cta-t strong{display:block;font-family:var(--f-gras);font-weight:400;letter-spacing:-.04em}
.cta-t strong:after{content:"";display:inline-block;width:.13em;height:.13em;margin-left:.05em;background:var(--bleu)}
.cta-a{display:grid;gap:20px;padding-bottom:.6vw}
.cta-n{margin:0;max-width:18em;font:300 clamp(16px,1.25vw,20px)/1.5 var(--f-fin);color:rgba(255,255,255,.85)}
.cta-a div{display:flex;align-items:center;gap:16px 28px;flex-wrap:wrap}
.v2 a.cta-tel{font:300 clamp(18px,1.5vw,24px)/1 var(--f-fin);color:var(--blanc);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:5px;font-variant-numeric:tabular-nums}
.v2 a.cta-tel:hover{color:var(--blanc);border-color:var(--blanc)}
.rv .cta-p video{filter:blur(22px) brightness(.55);scale:1.12;transition:filter 1.8s var(--out),scale 2.2s var(--out)}
.rv .cta-p.is-in video{filter:brightness(.82);scale:1}
.rv .cta-t{opacity:0;filter:blur(20px);transition:opacity .9s ease .25s,filter 1.4s var(--out) .25s}
.rv .cta-p.is-in .cta-t{opacity:1;filter:none}
@media(max-width:640px){.cta-p{min-height:520px}.cta-a div,.cta-a .bt{width:100%;justify-content:center}}

/* ---------- 6. À propos ---------- */
.bio{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:40px clamp(40px,7vw,140px);align-items:center;padding:0 var(--goutt) var(--bloc);overflow:hidden}
.bio-im{aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px rgba(255,255,255,.1)}
.bio-im img{display:block;width:100%;height:116%;object-fit:cover;transform:translateY(calc(var(--py,0)*-13.8%));will-change:transform}
.v2 .bio h2{font-size:clamp(40px,5vw,96px);margin-bottom:clamp(28px,3vw,52px)}
.bio p{margin:0 0 1.2em;max-width:36em;font:300 clamp(16px,1.2vw,19px)/1.65 var(--f-fin);color:rgba(255,255,255,.7)}
.bio p.bio-l{font:300 clamp(20px,1.9vw,31px)/1.32 var(--f-fin);letter-spacing:-.015em;color:var(--blanc);max-width:26em}
.v2 .bio p a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}
.v2 .bio p a:hover{color:#8A9DFF}
.bio-st{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:clamp(32px,3.6vw,60px) 0;padding:clamp(24px,2.4vw,38px) 0 0;border-top:1px solid var(--trait);list-style:none}
.bio-st li{margin:0}
.bio-st b{display:block;font:400 clamp(26px,3.2vw,58px)/1 var(--f-gras);letter-spacing:-.035em;color:var(--blanc);font-variant-numeric:tabular-nums}
.bio-st span span,.bio-st li>span{display:block;margin-top:10px;font:300 15px/1.4 var(--f-fin);color:var(--gris)}
.bio-st b span{display:inline;margin:0;font:inherit;color:inherit}
.bio-ft{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.bio-ft img{display:block;width:150px;height:auto}
.bio-ft span{display:flex;gap:28px}
@media(max-width:900px){.bio{grid-template-columns:1fr}.bio-im{aspect-ratio:4/4.4}}

/* ---------- Animations liées au défilement ---------- */
.rv [data-words] .w{opacity:calc(.2 + .8*var(--o,1));transition:opacity .25s linear}
/* Portfolio : mise au point (rack focus) à l'apparition et au survol */
.rv .wk-c .wk-im img{filter:blur(28px) brightness(.55);scale:calc(var(--zoom,1)*1.14);transition:filter 1.5s var(--out) var(--d,0s),scale 2s var(--out) var(--d,0s),transform 1.6s var(--out)}
.rv .wk-c.is-in .wk-im img{filter:none;scale:var(--zoom,1)}
.rv .wk-c.is-set .wk-im img{transition:filter .6s ease,scale .6s ease,transform 1.6s var(--out)}
.rv .wk-c .wk-cap{opacity:0;transition:opacity .9s ease calc(var(--d,0s) + .5s)}
.rv .wk-c.is-in .wk-cap{opacity:1}
.rv .wk-c.is-set .wk-cap{transition:opacity .5s ease}
@media(hover:hover) and (pointer:fine){
  .rv .wk-g:hover .wk-c.is-set:not(:hover) .wk-im img{filter:blur(8px) brightness(.5);scale:calc(var(--zoom,1)*1.06)}
  .rv .wk-g:hover .wk-c.is-set:not(:hover) .wk-cap{opacity:.35}
  .rv .wk-c.is-set .wk-im.is-racking img{filter:blur(20px) brightness(.8);scale:calc(var(--zoom,1)*1.1)}
}




/* ---------- 7. Contact : coordonnées et formulaire ---------- */
.ct2{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:48px clamp(40px,7vw,140px);align-items:start;padding:var(--bloc) var(--goutt)}
.ct2-l .tx{max-width:30em}
.v2 .ct2 h1,.v2 .ct2 h2{margin:0 0 clamp(24px,2.6vw,44px);font:200 clamp(44px,5.6vw,108px)/.92 var(--f-fin);letter-spacing:-.05em;color:var(--blanc)}
.v2 .ct2 h1 .ln,.v2 .ct2 h2 .ln{display:block}
.v2 .ct2 h1 strong{font-family:var(--f-gras);font-weight:400;letter-spacing:-.035em}
.v2 .ct2 h1 strong:after{content:"";display:inline-block;width:.13em;height:.13em;margin-left:.05em;background:var(--bleu)}
.ct2-i{display:grid;gap:26px;margin:clamp(32px,3.6vw,60px) 0 0;padding:clamp(28px,3vw,48px) 0 0;border-top:1px solid var(--trait);list-style:none}
.ct2-i li{margin:0}
.ct2-i small{display:block;margin-bottom:6px;font:400 14px/1.3 var(--f-fin);color:var(--gris)}
.v2 .ct2-i a,.ct2-i strong{font:300 clamp(20px,1.9vw,30px)/1.25 var(--f-fin);letter-spacing:-.015em;color:var(--blanc);text-decoration:none}
.v2 .ct2-i a:hover{color:#8A9DFF}
.fm{display:grid;gap:clamp(22px,2.2vw,34px);padding:clamp(24px,3vw,52px);border-radius:calc(var(--r)*1.5);background:rgba(11,11,15,.72);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.fm-r{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;border:0}
.fm-r legend,.fm-c>span{display:block;width:100%;margin:0 0 10px;padding:0;font:400 14px/1.3 var(--f-fin);color:var(--gris)}
.fm-r label{position:relative;cursor:pointer}
.fm-r input{position:absolute;opacity:0;width:1px;height:1px}
.fm-r span{display:inline-block;padding:11px 22px;border:1px solid rgba(255,255,255,.24);border-radius:999px;font:400 15px/1.2 var(--f-fin);color:rgba(255,255,255,.78);transition:background .25s,color .25s,border-color .25s}
.fm-r label:hover span{border-color:var(--blanc);color:var(--blanc)}
.fm-r input:checked+span{background:var(--blanc);border-color:var(--blanc);color:var(--noir)}
.fm-r input:focus-visible+span{outline:2px solid var(--bleu);outline-offset:3px}
.fm-c{display:block}
.v2 .fm-c input,.v2 .fm-c textarea{display:block;width:100%;margin:0;padding:8px 0 14px;border:0;border-bottom:1px solid rgba(255,255,255,.24);border-radius:0;background:transparent;color:var(--blanc);font:300 clamp(18px,1.4vw,21px)/1.4 var(--f-fin);box-shadow:none;transition:border-color .25s}
.v2 .fm-c textarea{min-height:120px;resize:vertical}
.v2 .fm-c input:focus,.v2 .fm-c textarea:focus{outline:0;border-bottom-color:var(--blanc)}
.fm-c ::placeholder{color:rgba(255,255,255,.3)}
.fm-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.fm-n{margin:0;font:300 13px/1.6 var(--f-fin);color:rgba(255,255,255,.5)}
.v2 .fm-n a{color:rgba(255,255,255,.7);text-decoration:underline}
.fm .bt{justify-self:start;cursor:pointer}
.fm.elementor-form-waiting{opacity:.6;pointer-events:none}
.fm .elementor-message{margin:0;font:300 16px/1.5 var(--f-fin);color:var(--blanc)}
.fm .elementor-message-danger{color:#ff9a8f}
@media(max-width:900px){.ct2{grid-template-columns:1fr}}
@media(max-width:640px){.fm .bt{justify-self:stretch;justify-content:center}}
/* Page Contact : le formulaire est visible dès l'arrivée */
.ct2.ct2-p{padding-top:calc(var(--hd-space) + clamp(72px,9vw,150px));margin-top:calc(-1*var(--hd-space));min-height:100svh}
@media(min-width:901px){.ct2-p .fm{position:sticky;top:104px}}
.rv .ct2 h1 .ln>span{display:block;transform-origin:0 60%;animation:v2Up 1.5s var(--out) both}
.rv .ct2 h1 .ln+.ln>span{animation-delay:.12s}

/* ---------- Page Prestations ---------- */
.v2 h1.pg-t{margin:0;font:200 min(8.6vw,172px)/.9 var(--f-fin);letter-spacing:-.055em;color:var(--blanc);text-transform:none}
.v2 h1.pg-t .ln{display:block}
.v2 h1.pg-t strong{font-family:var(--f-gras);font-weight:400;letter-spacing:-.04em}
.v2 h1.pg-t strong:after{content:"";display:inline-block;width:.13em;height:.13em;margin-left:.05em;background:var(--bleu)}
.pg-h{margin-top:calc(-1*var(--hd-space));padding:calc(var(--hd-space) + clamp(72px,9vw,150px)) var(--goutt) clamp(56px,6vw,96px)}
.pg-h-r{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px clamp(40px,6vw,120px);align-items:end;margin-top:clamp(36px,4.4vw,72px);padding-top:clamp(28px,3vw,48px);border-top:1px solid var(--trait)}
.pg-h-r .re-st{margin:0}
.pg-h-a{display:flex;align-items:center;gap:18px 32px;flex-wrap:wrap}
.pg-h-a span{font:300 15px/1.4 var(--f-fin);color:var(--gris)}
.pg-h-a b{font:400 clamp(20px,1.7vw,28px)/1 var(--f-gras);color:var(--blanc);margin-right:8px}
.pg-m{position:relative;margin:0 var(--goutt);aspect-ratio:21/9;border-radius:calc(var(--r)*1.5);overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px rgba(255,255,255,.1)}
.pg-m video{display:block;width:100%;height:100%;object-fit:cover}
.rv .pg-m video{filter:blur(24px) brightness(.55);scale:1.12;transition:filter 1.8s var(--out) .3s,scale 2.2s var(--out) .3s}
.rv .pg-m.is-in video{filter:none;scale:1}
@media(max-width:900px){.pg-h-r{grid-template-columns:1fr}.pg-m{aspect-ratio:16/10}}
/* Les formats, en trois entrées */
.fo{padding:var(--bloc) var(--goutt) 0}
.fo-l{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(16px,2vw,36px);margin:clamp(36px,4.4vw,72px) 0 0;padding:0;list-style:none}
.fo-l li{margin:0}
.v2 .fo-l a{display:block;height:100%;padding:clamp(24px,2.6vw,44px) 0;border-top:1px solid var(--trait);color:var(--blanc);text-decoration:none;transition:opacity .35s}
.fo-l b{display:block;margin-bottom:.5em;font:200 clamp(32px,3.6vw,68px)/1 var(--f-fin);letter-spacing:-.045em;transition:transform .6s var(--out)}
.fo-l span{display:block;font:300 clamp(15px,1.15vw,18px)/1.7 var(--f-fin);color:rgba(255,255,255,.7)}
@media(hover:hover){.fo-l:hover a{opacity:.35}.v2 .fo-l a:hover{opacity:1;color:var(--blanc)}.fo-l a:hover b{transform:translateX(clamp(8px,1vw,18px))}}
@media(max-width:900px){.fo-l{grid-template-columns:1fr}}
/* Un format : l'annonce, puis trois films */
.pr{padding:var(--bloc) var(--goutt) 0}
.pr-hd{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px clamp(40px,6vw,120px);align-items:end;padding-top:var(--bloc);border-top:1px solid var(--trait);margin-bottom:clamp(40px,5vw,84px)}
.pr-hd .re-st{margin:0 0 .7em}
.pr-hd .tx{margin:0 0 14px}
.pr-kw{margin:0;font:300 15px/1.6 var(--f-fin);color:var(--gris)}
.pr-v{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:clamp(10px,1.1vw,20px);align-items:start}
.pr:nth-of-type(even) .pr-v{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.pr:nth-of-type(even) .pr-v>.yt{order:2}
.pr-side{display:grid;gap:clamp(10px,1.1vw,20px)}
.v2 button.yt{display:block;width:100%;margin:0;padding:0;border:0;border-radius:0;background:none;color:var(--blanc);font:inherit;text-align:left;cursor:pointer}
.v2 button.yt:hover,.v2 button.yt:focus{background:none;color:var(--blanc)}
.yt .wk-im{height:auto;aspect-ratio:16/9}
.yt-pl{position:absolute;z-index:2;left:clamp(14px,1.4vw,24px);bottom:clamp(14px,1.4vw,24px);width:clamp(44px,3.6vw,64px);aspect-ratio:1;border-radius:50%;border:1px solid rgba(255,255,255,.7);background:rgba(0,0,0,.25);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .3s,border-color .3s}
.yt-pl:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-36%,-50%);border-style:solid;border-width:7px 0 7px 12px;border-color:transparent transparent transparent var(--blanc);transition:border-color .3s}
.yt:hover .yt-pl{background:var(--blanc);border-color:var(--blanc)}
.yt:hover .yt-pl:before{border-left-color:var(--noir)}
@media(max-width:900px){.pr-hd{grid-template-columns:1fr}.pr-v,.pr:nth-of-type(even) .pr-v{grid-template-columns:1fr}.pr:nth-of-type(even) .pr-v>.yt{order:0}}
.eyk .bio.bio-b{border-top:0;padding-top:var(--bloc)}
.bio p.bio-q{max-width:none;margin:0 0 clamp(24px,2.6vw,44px);font:200 clamp(34px,4.4vw,84px)/.98 var(--f-fin);letter-spacing:-.045em;color:var(--blanc)}
.bio p.bio-q strong{display:block;font-family:var(--f-gras);font-weight:400;letter-spacing:-.035em}
.bio p.bio-q strong:after{content:"";display:inline-block;width:.13em;height:.13em;margin-left:.05em;background:var(--bleu)}

/* ---------- 8. FAQ et pied de page ---------- */
.eyk .fq{padding:var(--bloc) 0;background:transparent;border-top:1px solid var(--trait)}
.eyk .fq .fq-k{display:none}
.eyk .fq-in{max-width:none;padding:0 var(--goutt);grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:48px clamp(40px,7vw,140px)}
.eyk .fq .fq-t{font-family:var(--f-fin);font-size:clamp(44px,5.4vw,104px);line-height:.92;letter-spacing:-.05em}
.eyk .fq .fq-t strong{display:block}
.eyk .ft-wrap{max-width:none;padding:0 var(--goutt)}
@media(max-width:1024px){.eyk .fq-in{grid-template-columns:minmax(0,1fr)}}

/* ---------- Titres : apparition ligne à ligne ---------- */
.rv h1[data-rv] .ln>span,.rv h2[data-rv] .ln>span{display:block;opacity:0;filter:blur(22px);transform:scale(1.03);transform-origin:0 60%;transition:opacity .9s ease,filter 1.3s var(--out),transform 1.4s var(--out)}
.rv h1[data-rv] .ln+.ln>span,.rv h2[data-rv] .ln+.ln>span{transition-delay:.12s}
.rv h1[data-rv].is-in .ln>span,.rv h2[data-rv].is-in .ln>span{opacity:1;filter:none;transform:none}
@media(prefers-reduced-motion:reduce){.v2 *,.v2 *:before,.v2 *:after{animation:none!important;transition:none!important}.fs-t{transform:none}.fs{overflow-x:auto}.fs video{filter:none;transform:none}.aura i{animation:none}}


/* ---------- Page Réalisations ---------- */
.pg-h-a b span{font:inherit;color:inherit}
.wk-p{padding-top:clamp(24px,3vw,56px)}
.dm{padding:0 var(--goutt)}
.v2 button.dm-b{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:28px clamp(32px,5vw,96px);align-items:center;width:100%;margin:0;padding:clamp(14px,1.4vw,22px);border:0;border-radius:calc(var(--r)*1.5);overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px rgba(255,255,255,.1);color:var(--blanc);text-align:left;white-space:normal;cursor:pointer}
.v2 button.dm-b:hover,.v2 button.dm-b:focus{background:var(--surface);color:var(--blanc)}
.dm-b:before{content:"";position:absolute;z-index:-1;right:-14%;top:-90%;width:62%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle closest-side,rgba(35,74,255,.42),rgba(35,74,255,0));transition:scale 1.2s var(--out)}
.dm-im{position:relative;display:block;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:#0d0d0d}
.dm-im img{display:block;width:100%;height:100%;object-fit:cover;transition:scale 1.4s var(--out)}
.dm-tx{display:block;padding:clamp(8px,1.4vw,24px) clamp(8px,2vw,40px) clamp(8px,1.4vw,24px) 0}
.dm-t{display:block;font:200 clamp(30px,4.2vw,80px)/.98 var(--f-fin);letter-spacing:-.045em;text-transform:none;text-wrap:balance}
.dm-t strong{font-family:var(--f-gras);font-weight:400;letter-spacing:-.035em}
.dm-s{display:block;margin-top:clamp(14px,1.5vw,24px);font:300 clamp(16px,1.2vw,19px)/1.5 var(--f-fin);letter-spacing:0;text-transform:none;color:var(--gris)}
.dm-a{display:inline-block;margin-top:clamp(22px,2.4vw,40px);padding-bottom:5px;border-bottom:1px solid currentColor;font:400 15px/1.3 var(--f-fin);letter-spacing:0;text-transform:none}
@media(hover:hover){
  .dm-b:hover .dm-im img{scale:1.04}
  .dm-b:hover:before{scale:1.25}
  .dm-b:hover .yt-pl{background:var(--blanc);border-color:var(--blanc)}
  .dm-b:hover .yt-pl:before{border-left-color:var(--noir)}
}
@media(max-width:767px){
  .v2 button.dm-b{grid-template-columns:1fr}
  .dm-tx{padding:4px 8px 14px}
}

/* ---------- Page Matériel : une fiche technique, catégorie par catégorie ---------- */
.v2 h1.pg-t.mt-t{font-size:min(7.4vw,148px)}
.mt-st{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px clamp(10px,1.1vw,20px);margin:clamp(48px,5.4vw,96px) 0 0;padding:clamp(24px,2.6vw,40px) 0 0;border-top:1px solid var(--trait);list-style:none}
.mt-st li{margin:0}
.mt-st b{display:block;margin-bottom:10px;font:400 clamp(40px,5.2vw,96px)/1 var(--f-gras);letter-spacing:-.04em}
.mt-st li>span{font:300 15px/1.45 var(--f-fin);color:var(--gris)}
.mt-nav{display:flex;gap:6px clamp(18px,2.6vw,44px);overflow-x:auto;scrollbar-width:none;padding:18px var(--goutt);border-block:1px solid var(--trait);background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.mt-nav::-webkit-scrollbar{display:none}
.v2 .mt-nav a{flex:none;display:inline-flex;align-items:baseline;gap:9px;font:300 16px/1.3 var(--f-fin);color:var(--gris);text-decoration:none;transition:color .25s}
.v2 .mt-nav a:hover{color:var(--blanc)}
.mt-nav small{font:400 11px/1 var(--f-mono);letter-spacing:.04em;color:var(--bleu);filter:brightness(1.6)}
.mt{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px clamp(40px,7vw,140px);align-items:start;padding:var(--bloc) var(--goutt) 0;scroll-margin-top:40px}
.mt-hd{position:sticky;top:calc(var(--hd-space) + 24px)}
.mt-n{margin:0 0 clamp(16px,1.6vw,26px);font:400 13px/1 var(--f-mono);letter-spacing:.04em;color:var(--gris)}
.v2 .mt h2{font-size:clamp(38px,4.8vw,90px);margin-bottom:clamp(20px,2.2vw,36px)}
.mt-hd .tx{max-width:26em;margin:0}
.mt-l{margin:0;padding:0;list-style:none;border-top:1px solid var(--trait)}
.mt-l li{position:relative;display:flex;justify-content:space-between;align-items:baseline;gap:8px 32px;flex-wrap:wrap;margin:0;padding:clamp(20px,2vw,30px) 0;border-bottom:1px solid var(--trait)}
.mt-l li:after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:1px;background:var(--bleu);transform:scaleX(0);transform-origin:0 50%;transition:transform .7s var(--out)}
.mt-l b{display:inline-flex;align-items:center;gap:14px;font:300 clamp(21px,2.1vw,34px)/1.2 var(--f-fin);letter-spacing:-.025em;transition:transform .5s var(--out)}
.mt-l em{padding:6px 10px 5px;border-radius:999px;background:var(--bleu);font:700 10px/1 var(--f-fin);font-style:normal;letter-spacing:.12em;text-transform:uppercase}
.mt-l li>span{font:300 15px/1.45 var(--f-fin);color:var(--gris);text-align:right}
@media(hover:hover){
  .mt-l li:hover:after{transform:scaleX(1)}
  .mt-l li:hover b{transform:translateX(10px)}
}
/* Panneau d'appel au devis (pages intérieures) */
.pn-s{padding:var(--bloc) var(--goutt)}
.pn{position:relative;isolation:isolate;display:flex;justify-content:space-between;align-items:flex-end;gap:32px 48px;flex-wrap:wrap;padding:clamp(32px,5vw,96px) clamp(24px,4.4vw,84px);border-radius:calc(var(--r)*1.5);overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px rgba(255,255,255,.1)}
.pn:before{content:"";position:absolute;z-index:-1;right:-18%;top:-70%;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle closest-side,rgba(35,74,255,.5),rgba(35,74,255,0))}
.pn-t{margin:0 0 clamp(18px,1.8vw,28px);font:200 clamp(40px,5.6vw,104px)/.95 var(--f-fin);letter-spacing:-.05em}
.pn-t strong{display:block;font-family:var(--f-gras);font-weight:400;letter-spacing:-.035em}
.pn .tx{max-width:28em;margin:0}
.pn-a{display:flex;align-items:center;gap:18px 28px;flex-wrap:wrap}
@media(max-width:900px){
  .mt{grid-template-columns:1fr}
  .mt-hd{position:static}
  .mt-st{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .mt-l li{flex-direction:column;gap:4px}
  .mt-l li>span{text-align:left}
}

/* ---------- Page Création de contenu : tout en vertical, 9:16 ---------- */
.rs-k{display:flex;align-items:center;gap:11px;margin:0 0 clamp(16px,1.6vw,26px);font:400 14px/1.3 var(--f-fin);color:var(--gris)}
.rs-k:before{content:"";flex:none;width:7px;height:7px;background:var(--bleu)}
.rs{padding:0 var(--goutt) var(--bloc)}
.rs-hd .pr-kw{margin-bottom:12px}
.rs-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(28px,3vw,48px) clamp(10px,1.1vw,20px);align-items:start}
.rs-c{display:block;margin:0;min-width:0}
.rs-g:not(.rs-4)>.rs-c:nth-of-type(2){margin-top:clamp(28px,4.4vw,84px)}
.rs-im{position:relative;display:block;width:100%;aspect-ratio:9/16;border-radius:var(--r);overflow:hidden;background:var(--surface)}
.rs-im img,.rs-im video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.rs-im video{opacity:0;transition:opacity .7s ease}
.rs-im video.is-on{opacity:1}
.rs-c figcaption,.rs-cap{display:block;padding-top:14px;font:300 14px/1.5 var(--f-fin);letter-spacing:0;text-transform:none;text-align:left;color:var(--gris)}
.rs-c figcaption b{display:block;margin-bottom:2px;font:400 clamp(17px,1.35vw,22px)/1.25 var(--f-fin);letter-spacing:-.015em;color:var(--blanc)}
.v2 button.rs-b,.v2 button.rs-full{margin:0;padding:0;border:0;border-radius:0;background:none;color:var(--blanc);white-space:normal;cursor:pointer}
.v2 button.rs-full{border-radius:var(--r);background:var(--surface)}
.v2 button.rs-b:hover,.v2 button.rs-b:focus{background:none;color:var(--blanc)}
.v2 button.rs-full:hover,.v2 button.rs-full:focus{background:var(--surface);color:var(--blanc)}
.rs-b .rs-im img,.rs-full img{transition:scale 1.4s var(--out)}
.rs-full.is-playing{cursor:default}
.rs-full.is-playing .yt-pl{display:none}
@media(hover:hover){
  .rs-b:hover .rs-im img{scale:1.04}
  .rs-b:hover .yt-pl,.rs-full:hover .yt-pl{background:var(--blanc);border-color:var(--blanc)}
  .rs-b:hover .yt-pl:before,.rs-full:hover .yt-pl:before{border-left-color:var(--noir)}
}
.rs-l{margin:0;padding:0;list-style:none;border-top:1px solid var(--trait)}
.rs-l li{margin:0;padding:clamp(20px,2vw,30px) 0;border-bottom:1px solid var(--trait)}
.rs-l small{display:block;margin-bottom:12px;font:400 12px/1 var(--f-mono);letter-spacing:.04em;color:var(--gris)}
.v2 .rs-l h3{margin:0 0 10px;font:300 clamp(21px,1.9vw,30px)/1.2 var(--f-fin);letter-spacing:-.025em;color:var(--blanc)}
.rs-l p{margin:0;font:300 15px/1.6 var(--f-fin);color:rgba(255,255,255,.7)}
.rs-g>.rs-l{padding-right:clamp(0px,1.6vw,28px)}
.rs-r>.rs-l{padding:0 0 0 clamp(0px,1.6vw,28px)}
.rs-in{border:0;align-self:end}
.rs-in .re-st{font-size:clamp(21px,2vw,32px);margin:12px 0 16px}
.rs-in .tx{margin:0;font-size:15px}
.rs-yt{margin-bottom:var(--bloc)}
.v2 .rs-yt button.wk-c{grid-column:span 6;margin:0;padding:0;border:0;border-radius:0;background:none;color:var(--blanc);text-align:left;white-space:normal;cursor:pointer}
.rs-yt .wk-cap b,.rs-yt .wk-cap small{text-transform:none;letter-spacing:normal}
/* Mise au point à l'arrivée */
.rv .rs-im img{filter:blur(24px) brightness(.55);scale:1.1;transition:filter 1.5s var(--out) var(--d,0s),scale 2s var(--out) var(--d,0s)}
.rv .rs-c.is-in .rs-im img,.rv .rs-c.is-in.rs-im img,.rv .rs-c.is-in .rs-full img{filter:none;scale:1}
/* Lecteur : films verticaux */
.vm.is-v{width:auto}
.vm.is-v .vm-f{aspect-ratio:9/16;height:min(84vh,calc(94vw*16/9));margin-inline:auto}
@media(max-width:900px){
  .rs-g{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rs-g>.rs-l{grid-column:1/-1;padding:0}
  .rs-g.rs-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v2 .rs-yt button.wk-c{grid-column:1/-1}
}
@media(max-width:560px){
  .rs-g:not(.rs-4){grid-template-columns:repeat(2,minmax(0,1fr))}
  .rs-g:not(.rs-4)>.rs-c:nth-of-type(2){margin-top:clamp(28px,8vw,56px)}
  .rs-g:not(.rs-4)>.rs-c:nth-of-type(3){grid-column:1/-1;width:calc(50% - 5px);justify-self:center;margin-top:0}
}

/* ---------- Page Étapes de production : un fil qui se remplit au défilement ---------- */
.wf{padding:clamp(24px,3vw,56px) var(--goutt) 0}
.wf-l{position:relative;margin:0;padding:0;list-style:none;--fil:0}
.wf-l:before,.wf-l:after{content:"";position:absolute;top:0;left:clamp(26px,3.3vw,60px);width:1px;height:100%;background:var(--trait)}
.wf-l:after{background:var(--bleu);transform:scaleY(var(--fil));transform-origin:50% 0;box-shadow:0 0 18px rgba(35,74,255,.9)}
.wf-s{position:relative;display:grid;grid-template-columns:clamp(52px,6.6vw,120px) minmax(0,5fr) minmax(0,6fr);gap:20px clamp(28px,5vw,100px);align-items:start;margin:0;padding:clamp(48px,6vw,110px) 0}
.wf-n{position:relative;z-index:1;display:grid;place-items:center;width:100%;aspect-ratio:1;margin:0;border-radius:50%;border:1px solid var(--trait);background:var(--noir);font:400 clamp(13px,1.1vw,17px)/1 var(--f-mono);letter-spacing:.04em;color:var(--gris);transition:background .5s,border-color .5s,color .5s,box-shadow .5s}
.wf-s.is-on .wf-n{background:var(--bleu);border-color:var(--bleu);color:var(--blanc);box-shadow:0 0 0 8px rgba(35,74,255,.14),0 0 44px rgba(35,74,255,.55)}
.v2 .wf-s h2{font-size:clamp(38px,5.2vw,100px);padding-top:.12em}
.wf-b .re-st{margin:0 0 .8em}
.wf-b .tx{margin:0 0 1em;max-width:34em}
.wf-m{margin-top:clamp(24px,2.6vw,44px);aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px rgba(255,255,255,.1)}
.wf-m.wf-sq{aspect-ratio:1;max-width:520px}
.wf-m video{display:block;width:100%;height:100%;object-fit:cover}
.rv .wf-s h2,.rv .wf-b{transition:opacity .6s ease}
.rv .wf-s:not(.is-on) h2,.rv .wf-s:not(.is-on) .wf-b{opacity:.38}
.wf-e{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px clamp(40px,7vw,140px);padding:var(--bloc) var(--goutt) 0}
.wf-st{margin:0 0 18px;font:400 18px/1 var(--f-fin);letter-spacing:.28em;color:var(--bleu);filter:brightness(1.5)}
.v2 .wf-e h2{font-size:clamp(38px,4.8vw,90px);margin-bottom:clamp(20px,2.2vw,36px)}
.wf-e .tx{max-width:32em}
@media(max-width:900px){
  .wf-s{grid-template-columns:clamp(52px,6.6vw,120px) minmax(0,1fr)}
  .wf-b{grid-column:2}
  .wf-e{grid-template-columns:1fr}
}

/* ---------- Pages de texte (mentions légales) ---------- */
.dc-h{padding-bottom:clamp(40px,4.4vw,72px)}
.dc-maj{margin:clamp(24px,2.6vw,40px) 0 0;font:300 15px/1.4 var(--f-fin);color:var(--gris)}
.dc{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,8fr);gap:40px clamp(40px,7vw,140px);align-items:start;padding:clamp(40px,4.4vw,72px) var(--goutt) var(--bloc);border-top:1px solid var(--trait)}
.dc-toc{position:sticky;top:calc(var(--hd-space) + 24px)}
.dc-toc p{margin:0 0 16px;font:400 14px/1.3 var(--f-fin);color:var(--gris)}
.dc-toc ol{margin:0;padding:0;list-style:none}
.dc-toc li{margin:0}
.v2 .dc-toc a{display:flex;align-items:baseline;gap:12px;padding:9px 0;font:300 16px/1.3 var(--f-fin);color:rgba(255,255,255,.72);text-decoration:none;transition:color .25s,transform .45s var(--out)}
.v2 .dc-toc a:hover{color:var(--blanc);transform:translateX(6px)}
.dc-toc small{font:400 11px/1 var(--f-mono);letter-spacing:.04em;color:var(--gris)}
.dc-b{max-width:860px}
.dc-in{margin:0 0 clamp(40px,5vw,84px)}
.dc-s{padding:clamp(36px,4vw,64px) 0;border-top:1px solid var(--trait);scroll-margin-top:calc(var(--hd-space) + 16px)}
.dc-n{margin:0 0 14px;font:400 12px/1 var(--f-mono);letter-spacing:.04em;color:var(--gris)}
.v2 .dc-s h2{margin:0 0 clamp(20px,2.2vw,32px);font:400 clamp(26px,2.6vw,44px)/1.05 var(--f-gras);letter-spacing:-.03em}
.v2 .dc-s h3{margin:clamp(28px,3vw,44px) 0 12px;font:400 clamp(19px,1.5vw,24px)/1.2 var(--f-fin);letter-spacing:-.015em;color:var(--blanc)}
.dc-s p{margin:0 0 1.1em;font:300 clamp(16px,1.2vw,18px)/1.7 var(--f-fin);color:rgba(255,255,255,.78)}
.v2 .dc-s p a:not(.lk),.v2 .dc-dl a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:rgba(255,255,255,.4)}
.dc-dl{margin:0}
.dc-dl>div{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:6px 28px;padding:16px 0;border-bottom:1px solid var(--trait)}
.dc-dl>div:first-child{border-top:1px solid var(--trait)}
.dc-dl dt{margin:0;font:300 15px/1.5 var(--f-fin);color:var(--gris)}
.dc-dl dd{margin:0;font:300 clamp(16px,1.2vw,18px)/1.55 var(--f-fin);color:var(--blanc)}
@media(max-width:900px){
  .dc{grid-template-columns:1fr}
  .dc-toc{position:static}
}
@media(max-width:560px){.dc-dl>div{grid-template-columns:1fr}}
.v2 .wf-e h2 strong:after{content:none}
.dc-dl>div:last-child{border-bottom:0}

/* ---------- Page anglaise « Shooting in France » ---------- */
.lp{padding-top:0}
.pg-m+.lp{padding-top:0}
.lp-l{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 clamp(16px,2vw,36px);border-top:0}
.lp-l li{border-top:1px solid var(--trait);border-bottom:0}
.v2 .lp-l a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:var(--bleu)}
.lp-w{padding-top:0}
.lp-w .wk-hd{padding-top:var(--bloc);border-top:1px solid var(--trait)}
.fo+.lp{padding-top:var(--bloc)}
@media(max-width:900px){.lp-l{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.lp-l{grid-template-columns:1fr}}

/* ---------- Page Photo & vidéo live : une galerie qui se remplit en direct ---------- */
.lv-pt{display:flex;flex-wrap:wrap;gap:8px 22px;margin:0 0 22px;padding:0;list-style:none}
.lv-pt li{display:flex;align-items:center;gap:9px;margin:0;font:300 15px/1.4 var(--f-fin);color:rgba(255,255,255,.8)}
.lv-pt li:before{content:"";width:6px;height:6px;background:var(--bleu)}
.lv-x{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(10px,1.1vw,20px);margin:0 var(--goutt) var(--bloc)}
.lv-v{position:relative;margin:0;min-height:clamp(300px,40vw,640px);border-radius:calc(var(--r)*1.5);overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px rgba(255,255,255,.1)}
.lv-v img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;filter:blur(18px);scale:1.06;transition:opacity .6s ease,filter 1.1s var(--out),scale 1.4s var(--out)}
.lv-v img:first-child{opacity:1;filter:none;scale:1}
.lv-v img.on{opacity:1;filter:none;scale:1}
.lv-v figcaption{position:absolute;left:clamp(14px,1.4vw,24px);bottom:clamp(14px,1.4vw,24px);display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font:300 13px/1 var(--f-fin);color:rgba(255,255,255,.8)}
.lv-v figcaption i,.lv-fh span i{flex:none;width:7px;height:7px;border-radius:50%;background:#2fd36b}
.lv-v figcaption b{font:400 12px/1 var(--f-mono);letter-spacing:.03em;color:var(--blanc)}
.lv-f{display:flex;flex-direction:column;border-radius:calc(var(--r)*1.5);overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px rgba(255,255,255,.1)}
.lv-fh{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:0;padding:18px clamp(16px,1.6vw,24px);border-bottom:1px solid var(--trait)}
.lv-fh b{font:400 13px/1 var(--f-mono);letter-spacing:.02em}
.lv-fh span{display:inline-flex;align-items:center;gap:8px;font:300 12px/1 var(--f-fin);color:var(--gris)}
.lv-fd{display:flex;gap:6px;flex-wrap:wrap;margin:0;padding:14px clamp(16px,1.6vw,24px);list-style:none;border-bottom:1px solid var(--trait)}
.lv-fd li{margin:0;padding:8px 12px;border-radius:999px;border:1px solid var(--trait);font:300 13px/1 var(--f-fin);color:var(--gris)}
.lv-fd li.on{border-color:var(--blanc);color:var(--blanc)}
.lv-fd span{margin-left:4px;font:400 11px/1 var(--f-mono)}
.lv-fl{flex:1;margin:0;padding:6px clamp(16px,1.6vw,24px);list-style:none;overflow:hidden}
.lv-fl li{position:relative;display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:14px;margin:0;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.lv-fl li:last-child{border-bottom:0}
.lv-fl img{width:56px;height:38px;border-radius:6px;object-fit:cover}
.lv-fl b{font:400 13px/1 var(--f-mono);letter-spacing:.02em}
.lv-fl small{font:300 12px/1 var(--f-fin);color:var(--gris)}
.lv-fl i{position:absolute;left:0;bottom:-1px;width:100%;height:1px;background:var(--bleu);transform:scaleX(1);transform-origin:0 50%;opacity:0;transition:opacity .4s ease .9s}
.lv-fl li.is-new{animation:lvIn .6s var(--out) both}
.lv-fl li.is-new i{opacity:1;animation:lvUp 1s var(--out) both}
.lv-fl li.is-new img{filter:blur(6px) brightness(.6)}
.lv-fl li img{transition:filter .6s ease}
@keyframes lvIn{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
@keyframes lvUp{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.lv-ft{display:flex;justify-content:space-between;align-items:center;margin:0;padding:16px clamp(16px,1.6vw,24px);border-top:1px solid var(--trait);font:300 12px/1 var(--f-fin);color:var(--gris)}
.lv-ft b{font:400 12px/1 var(--f-mono);color:var(--blanc)}
.lv-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.lv .rs-l small{font-family:var(--f-fin);font-size:13px;letter-spacing:0}
.lv-o{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(36px,4vw,64px) clamp(10px,1.1vw,20px)}
.lv-oi{position:relative;aspect-ratio:3/2;margin-bottom:clamp(18px,1.8vw,28px);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.lv-oi img{display:block;width:100%;height:100%;object-fit:cover}
.lv-oi4{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;background:none}
.lv-oi4 img{object-position:50% 20%}
.rv .lv-oi img{filter:blur(24px) brightness(.55);scale:1.1;transition:filter 1.5s var(--out) var(--d,0s),scale 2s var(--out) var(--d,0s)}
.rv .rs-c.is-in .lv-oi img{filter:none;scale:1}
.v2 .lv-o h3{margin:0 0 12px;font:300 clamp(24px,2.3vw,38px)/1.1 var(--f-fin);letter-spacing:-.03em;color:var(--blanc)}
.lv-o p{margin:0 0 18px;font:300 clamp(15px,1.15vw,17px)/1.6 var(--f-fin);color:rgba(255,255,255,.75)}
.lv-o ul,.lv-p ul{margin:0;padding:0;list-style:none;border-top:1px solid var(--trait)}
.lv-o li,.lv-p li{position:relative;margin:0;padding:11px 0 11px 20px;border-bottom:1px solid var(--trait);font:300 15px/1.4 var(--f-fin);color:rgba(255,255,255,.85)}
.lv-o li:before,.lv-p li:before{content:"";position:absolute;left:0;top:1.1em;width:6px;height:6px;background:var(--bleu)}
.lv-pl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,1.1vw,20px);align-items:stretch}
.lv-p{position:relative;isolation:isolate;display:flex;flex-direction:column;padding:clamp(24px,2.6vw,44px);border-radius:calc(var(--r)*1.5);overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px rgba(255,255,255,.1)}
.lv-p-r{box-shadow:0 0 0 1px rgba(110,140,255,.6)}
.lv-p-r:before{content:"";position:absolute;z-index:-1;right:-40%;top:-30%;width:120%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle closest-side,rgba(35,74,255,.42),rgba(35,74,255,0))}
.lv-b{position:absolute;top:clamp(20px,2vw,32px);right:clamp(20px,2vw,32px);padding:7px 11px 6px;border-radius:999px;background:var(--bleu);font:700 10px/1 var(--f-fin);letter-spacing:.12em;text-transform:uppercase}
.lv-pn{margin:0 0 14px;font:400 12px/1 var(--f-mono);letter-spacing:.04em;color:var(--gris)}
.v2 .lv-p h3{margin:0 0 10px;font:400 clamp(24px,2.2vw,36px)/1.05 var(--f-gras);letter-spacing:-.03em;color:var(--blanc)}
.lv-pp{margin:0 0 clamp(22px,2.4vw,36px);font:300 15px/1.5 var(--f-fin);color:var(--gris)}
.lv-px{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 clamp(22px,2.4vw,36px)}
.lv-px small{flex-basis:100%;font:300 13px/1 var(--f-fin);color:var(--gris)}
.lv-px b{font:200 clamp(44px,4.6vw,80px)/1 var(--f-fin);letter-spacing:-.05em}
.lv-px span{font:400 13px/1 var(--f-fin);color:var(--gris)}
.lv-p ul{margin-bottom:clamp(24px,2.6vw,40px)}
.lv-p .bt{margin-top:auto;justify-content:center}
.lv-nt{margin:clamp(24px,2.6vw,40px) 0 0;font:300 15px/1.5 var(--f-fin);color:var(--gris)}
.lv-op{display:flex;align-items:center;gap:16px 28px;flex-wrap:wrap;margin-top:clamp(28px,3vw,48px);padding-top:clamp(24px,2.6vw,40px);border-top:1px solid var(--trait)}
.lv-op b{font:400 18px/1.2 var(--f-gras);letter-spacing:-.02em}
.lv-op .pp-tags{margin:0}
.lv-m{padding-top:0}
.v2 .lv-m h2{font-size:clamp(34px,4vw,72px)}
@media(max-width:1024px){
  .lv-x{grid-template-columns:1fr}
  .lv-o,.lv-pl{grid-template-columns:1fr}
  .lv-oi{max-width:640px}
}
@media(max-width:900px){.lv-3{grid-template-columns:1fr}}
.v2 .lv .pr-hd h2{font-size:clamp(36px,4.6vw,84px);line-height:.95;text-wrap:balance}

/* ---------- Galeries (photographie, drone, coulisses) ---------- */
.ga{columns:4;column-gap:clamp(10px,1.1vw,20px)}
.ga-3{columns:3}
.ga figure{display:block;margin:0 0 clamp(10px,1.1vw,20px);break-inside:avoid}
.ga img{display:block;width:100%;height:auto;border-radius:var(--r);background:var(--surface)}
.ga figcaption{padding-top:10px;font:300 13px/1.4 var(--f-fin);color:var(--gris)}
.ga-4{columns:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,1.1vw,20px)}
.ga-4 figure{margin:0}
.ga-4 img{aspect-ratio:3/2;object-fit:cover}
.ga-p img{aspect-ratio:3/4;object-fit:cover}
.rv .ga figure img{filter:blur(22px) brightness(.55);transition:filter 1.4s var(--out)}
.rv .ga figure.is-in img{filter:none}
.ga-a{margin:clamp(28px,3vw,48px) 0 0}
.ga-pn{margin-top:clamp(36px,4vw,64px);padding:clamp(28px,3.4vw,56px) clamp(24px,3.4vw,56px)}
.pn-s2{font-size:clamp(30px,3.6vw,64px)}
@media(max-width:1024px){.ga{columns:3}.ga-3{columns:2}.ga-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.ga,.ga-3{columns:2}}

/* ---------- Simulateur de budget ---------- */
.sm{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(10px,1.1vw,20px);align-items:start;padding:0 var(--goutt) var(--bloc)}
.sm-c{display:grid;gap:clamp(10px,1.1vw,20px)}
.sm-b,.sm-r{padding:clamp(22px,2.4vw,40px);border-radius:calc(var(--r)*1.5);background:var(--surface);box-shadow:0 0 0 1px rgba(255,255,255,.1)}
.sm-k{display:flex;align-items:baseline;gap:12px;margin:0 0 clamp(14px,1.4vw,22px);font:400 clamp(22px,2vw,32px)/1.1 var(--f-gras);letter-spacing:-.03em}
.sm-k small{font:400 12px/1 var(--f-mono);letter-spacing:.04em;color:var(--gris)}
.sm-q,.sm-o{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px 22px;padding:16px 0;border-top:1px solid var(--trait)}
.sm-o{grid-template-columns:auto 1fr auto;cursor:pointer}
.sm-q b,.sm-o b{display:block;font:300 clamp(17px,1.4vw,21px)/1.25 var(--f-fin);letter-spacing:-.015em;color:var(--blanc)}
.sm-pop{display:inline-block;margin-left:8px;padding:5px 9px 4px;border-radius:999px;background:var(--bleu);font:700 10px/1 var(--f-fin);font-style:normal;letter-spacing:.12em;text-transform:uppercase;vertical-align:middle}
.sm-q small,.sm-o small{display:block;margin-top:4px;font:300 14px/1.4 var(--f-fin);color:var(--gris)}
.sm-q em,.sm-o em{font:400 14px/1 var(--f-mono);font-style:normal;color:rgba(255,255,255,.8);white-space:nowrap}
.sm-n{display:inline-flex;align-items:center;gap:6px}
.v2 .sm-n button{width:38px;height:38px;margin:0;padding:0;border:1px solid var(--trait);border-radius:50%;background:none;color:var(--blanc);font:300 20px/1 var(--f-fin);cursor:pointer;transition:background .2s,border-color .2s,color .2s}
@media(hover:hover){.v2 .sm-n button:hover{background:var(--blanc);border-color:var(--blanc);color:var(--noir)}}
.v2 .sm-n button:focus-visible,.v2 .sm-n button:active{background:var(--blanc);border-color:var(--blanc);color:var(--noir)}
.v2 .sm-n button:focus:not(:focus-visible){background:none;border-color:var(--trait);color:var(--blanc)}
.sm-n output{min-width:26px;text-align:center;font:400 16px/1 var(--f-mono)}
.sm-q.on b{color:#fff}
.sm-q.on{box-shadow:inset 2px 0 0 var(--bleu);padding-left:14px}
.sm-o input{appearance:none;-webkit-appearance:none;width:22px;height:22px;margin:0;border:1px solid rgba(255,255,255,.4);border-radius:6px;background:none;cursor:pointer;transition:background .2s,border-color .2s}
.sm-o input:checked{background:var(--bleu) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/14px no-repeat;border-color:var(--bleu)}
.sm-o input:focus-visible{outline:2px solid var(--bleu);outline-offset:3px}
.sm-r{position:sticky;top:calc(var(--hd-space) + 20px);isolation:isolate;overflow:hidden}
.sm-r:before{content:"";position:absolute;z-index:-1;right:-50%;top:-40%;width:130%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle closest-side,rgba(35,74,255,.38),rgba(35,74,255,0))}
.sm-rk{margin:0 0 14px;font:400 14px/1.3 var(--f-fin);color:var(--gris)}
.sm-t{display:flex;align-items:baseline;gap:8px;margin:0 0 clamp(20px,2vw,32px);font:200 clamp(52px,5.4vw,96px)/1 var(--f-fin);letter-spacing:-.05em}
.sm-t small{font:400 14px/1 var(--f-fin);letter-spacing:0;color:var(--gris)}
.sm-d{margin:0 0 clamp(22px,2.2vw,36px);padding:0;list-style:none;border-top:1px solid var(--trait)}
.sm-d li{display:flex;justify-content:space-between;gap:16px;margin:0;padding:11px 0;border-bottom:1px solid var(--trait);font:300 14px/1.4 var(--f-fin);color:rgba(255,255,255,.85)}
.sm-d b{flex:none;font:400 13px/1.5 var(--f-mono)}
.sm-d .sm-v{color:var(--gris)}
.sm-r .bt{width:100%;justify-content:center;white-space:normal;text-align:center}
.sm-nt{margin:14px 0 0;font:300 13px/1.5 var(--f-fin);color:var(--gris)}
.v2 .mt-l a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:var(--bleu)}
@media(max-width:1024px){.sm{grid-template-columns:1fr}.sm-r{position:relative;top:auto}}
@media(max-width:560px){.sm-q{grid-template-columns:1fr auto}.sm-q em{grid-column:1;grid-row:2}.sm-n{grid-column:2;grid-row:1/3}}
.sm-q>span,.sm-o>span{min-width:0}
.sm,.sm-c,.sm-b{min-width:0}


/* ---------- Accueil : en-tête (titre, programme, cadre du film) ---------- */
.hv{position:relative;padding:clamp(16px,2.2vw,40px) var(--goutt) 0}
.hv-k{display:flex;align-items:center;gap:12px;margin:0 0 clamp(14px,1.4vw,22px);font:400 15px/1.3 var(--f-fin);color:rgba(255,255,255,.78)}
.hv-k i{flex:none;width:8px;height:8px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 4px rgba(74,222,128,.18)}
.hv-hd{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:28px clamp(40px,6vw,120px);align-items:end;margin-bottom:clamp(26px,2.8vw,44px)}
.v2 .hv h1{margin:0;font:200 min(6.2vw,128px,12.5vh)/.9 var(--f-fin);letter-spacing:-.05em;color:var(--blanc);text-transform:none}
.hv h1 .ln,.hv h1 .ln>span{display:block}
.hv h1 strong{font-family:var(--f-gras);font-weight:400;letter-spacing:-.035em}
.hv h1 em{font-style:normal;color:var(--bleu)}
.hv-tx>p:not(.hv-k){margin:0 0 26px;max-width:30em;font:300 clamp(16px,1.2vw,19px)/1.6 var(--f-fin);color:rgba(255,255,255,.82)}
.hv-cta{display:flex;flex-wrap:wrap;gap:12px}
/* le programme : cinq projets, celui qui passe à l'image est allumé et sa barre avance */
.hv-pl{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(10px,1.4vw,24px);margin:0 0 clamp(14px,1.5vw,22px);padding:0;list-style:none}
.hv-pl li{margin:0}
.v2 .hv-pl a{--k:0;position:relative;display:block;padding-top:13px;border-top:1px solid rgba(255,255,255,.2);text-decoration:none}
.hv-pl a:before{content:"";position:absolute;left:0;top:-1px;width:100%;height:1px;background:var(--blanc);transform-origin:0 50%;transform:scaleX(var(--k))}
.hv-pl b{display:block;font:400 15px/1.3 var(--f-fin);letter-spacing:-.005em;color:rgba(255,255,255,.5);transition:color .4s}
.hv-pl small{display:block;margin-top:3px;font:300 13px/1.3 var(--f-fin);color:rgba(255,255,255,.34);transition:color .4s}
.hv-pl .on b,.hv-pl a:hover b{color:var(--blanc)}
.hv-pl .on small,.hv-pl a:hover small{color:var(--gris)}
/* le cadre : l'image fait le point entre deux projets */
.hv-film{position:relative;aspect-ratio:2/1;border-radius:calc(var(--r)*1.5);overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px rgba(255,255,255,.1),0 70px 180px -50px rgba(35,74,255,.55)}
.hv-film img,.hv-film video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.hv-film video{--hb:0;opacity:0;filter:blur(calc(var(--hb)*1px));transform:scale(calc(1 + var(--hb)*.006));transition:opacity .8s ease}
.hv-film video.is-on{opacity:1}
.rv .hv h1 .ln>span{transform-origin:0 60%;animation:v2Up 1.5s var(--out) both}
.rv .hv h1 .ln:nth-child(2)>span{animation-delay:.12s}
.rv .hv h1 .ln:nth-child(3)>span{animation-delay:.24s}
.rv .hv-k{animation:v2Fade 1s .05s both}
.rv .hv-tx,.rv .hv-pl{animation:v2Fade 1s .6s both}
.rv .hv-film img{animation:hvPoint 1.9s var(--out) .25s both}
@keyframes hvPoint{0%{filter:blur(26px) brightness(.55);transform:scale(1.08)}100%{filter:none;transform:none}}
@media(min-width:768px){.hv h1 .ln:nth-child(2),.hv h1 .ln:nth-child(3){display:inline-block;vertical-align:top}}
@media(max-width:900px){.hv-hd{grid-template-columns:minmax(0,1fr)}}
@media(max-width:767px){
  .v2 .hv h1{font-size:13.6vw}
  .hv-cta{width:100%}.hv-cta .bt{flex:1 1 auto;justify-content:center;padding:18px 20px}
  .hv-film{aspect-ratio:5/4}
  .hv-pl{position:relative;gap:6px;padding-bottom:50px}
  .v2 .hv-pl a{padding-top:0;height:14px}
  .hv-pl b,.hv-pl small{position:absolute;left:calc(var(--i,0)*(-100% - 6px));white-space:nowrap;opacity:0;pointer-events:none}
  .hv-pl b{top:16px}.hv-pl small{top:36px;margin:0}
  .hv-pl .on b,.hv-pl .on small{opacity:1}
}

/* ---------- Accueil : les formats (la ligne au point montre son extrait) ---------- */
.fmt-s{padding:var(--bloc) var(--goutt) 0}
.fmt-s>h2{margin-bottom:clamp(36px,4.4vw,80px)}
.fmt{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px clamp(40px,6vw,120px);align-items:center}
.fmt-l{margin:0;padding:0;list-style:none;border-bottom:1px solid var(--trait)}
.fmt-l li{margin:0;border-top:1px solid var(--trait)}
.v2 .fmt-l a{display:block;padding:clamp(12px,1.25vw,22px) 0;color:rgba(255,255,255,.4);text-decoration:none;transition:color .5s var(--out),filter .5s var(--out)}
.fmt-l span{font:200 clamp(28px,3.7vw,68px)/1.08 var(--f-fin);letter-spacing:-.045em;white-space:nowrap}
.fmt-l span:after{content:"";display:inline-block;width:.13em;height:.13em;margin-left:.1em;background:var(--bleu);opacity:0;transition:opacity .4s}
.v2 .fmt-l a.on{color:var(--blanc)}
.fmt-l a.on span:after{opacity:1}
.fmt-l.is-live a:not(.on){filter:blur(1px)}
.fmt-v{position:relative;margin:0;aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px rgba(255,255,255,.1)}
.fmt-v img,.fmt-v video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;transition:filter .45s var(--out),transform .9s var(--out)}
.fmt-v video{opacity:0}
.fmt-v video.is-on{opacity:1}
.fmt-v.is-racking img,.fmt-v.is-racking video{filter:blur(18px) brightness(.7);transform:scale(1.06)}
.fmt-v figcaption{position:absolute;left:0;right:0;bottom:0;padding:56px 20px 16px;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.7));font:400 15px/1.3 var(--f-fin);color:var(--blanc)}
@media(max-width:900px){
  .fmt{grid-template-columns:minmax(0,1fr);gap:22px}
  .fmt-v{order:-1;position:sticky;top:calc(var(--hd-space) - 24px);z-index:2;aspect-ratio:16/9}
  .fmt-l span{font-size:clamp(24px,6.6vw,44px)}
}
/* fenêtres peu hautes : le titre se tasse pour laisser voir le film dès l'arrivée */
@media(min-width:901px) and (max-height:780px){.hv{padding-top:6px}.v2 .hv h1{font-size:min(5.1vw,11.6vh)}.hv-hd{margin-bottom:20px}.hv-tx>p:not(.hv-k){margin-bottom:18px}}

/* ---------- Téléphone et tablette : ce qui se touche au lieu de se survoler ---------- */
/* Pellicule de l'accueil : on la fait glisser au doigt, image par image, tout reste net */
.fs.is-swipe{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:var(--goutt);overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.fs.is-swipe::-webkit-scrollbar{display:none}
.fs.is-swipe .fs-t{transform:none;will-change:auto}
.fs.is-swipe figure{scroll-snap-align:start;width:min(82vw,520px);height:auto;aspect-ratio:16/10!important}
.fs.is-swipe video,.fs.is-swipe img{filter:none;transform:none}
.rv .fs.is-swipe figcaption{opacity:1;transform:none}
/* Formats de l'accueil : sans survol, toutes les lignes restent nettes et lisibles */
@media(hover:none),(pointer:coarse){
  .fmt-l.is-live a:not(.on){filter:none}
  .v2 .fmt-l a{color:rgba(255,255,255,.55)}
  .v2 .fmt-l a.on{color:var(--blanc)}
}
/* Zones tactiles : les petits liens gardent leur dessin, mais répondent sur 44 px de haut */
@media(pointer:coarse){
  .v2 .lk,.v2 a.pj-lk,.v2 a.pj-back,.pj-back,.pj-meta a,.v2 .vm-x{position:relative}
  .v2 .lk:after,.v2 a.pj-lk:after,.v2 a.pj-back:after,.pj-back:after,.pj-meta a:after{content:"";position:absolute;inset:-11px -8px}
  .v2 .vm-x{padding:14px 0 8px}
  .v2 .sm-n button{width:44px;height:44px}
  .sm-o{min-height:56px}
}
/* Très petits écrans : les grands titres ne dépassent plus */
@media(max-width:340px){.v2 h2,.v2 .wf-s h2{font-size:11vw}.v2 .pg-t{font-size:11vw}.wk-all span{font-size:27px}.wk-all i{width:44px}.v2 a.wk-all{padding:18px}}
/* Simulateur : le total reste en bas de l'écran pendant qu'on compose (une seule colonne) */
.sm-bar{display:none}
@media(max-width:1024px){
  .v2 a.sm-bar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:60;display:flex;align-items:center;gap:12px;padding:12px 18px;border-radius:999px;background:rgba(12,12,16,.88);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 0 0 1px rgba(255,255,255,.14),0 12px 40px rgba(0,0,0,.5);color:var(--blanc);text-decoration:none;transform:translateY(160%);visibility:hidden;transition:transform .5s var(--out),visibility 0s .5s}
  .v2 a.sm-bar.on{transform:none;visibility:visible;transition:transform .5s var(--out),visibility 0s}
  .sm-bar span{font:300 13px/1.2 var(--f-fin);color:var(--gris)}
  .sm-bar b{margin-right:auto;font:400 19px/1 var(--f-fin);letter-spacing:-.02em;white-space:nowrap}
  .sm-bar b small{font:400 11px/1 var(--f-fin);color:var(--gris)}
  .sm-bar i{flex:none;font:400 13px/1 var(--f-fin);font-style:normal;padding-bottom:3px;border-bottom:1px solid currentColor}
  .sm-r{scroll-margin-top:calc(var(--hd-space) + 12px)}
}


/* ---------- Page Photographie : mosaïque d'ouverture, galeries éditoriales, visionneuse ----------
   Les photos passent devant : une mosaïque dès le premier écran, puis par catégorie une ou deux grandes
   images entourées de plus petites. Sur téléphone, chaque galerie se feuillette au doigt, presque pleine largeur.
   Un clic ouvre la photo en grand (templates/partials/galerie-script.html). */
.ph-h,.ph-g,.ph-a{--ph-g:clamp(8px,1vw,18px)}
.ph-f{position:relative;margin:0;min-width:0;border-radius:var(--r);overflow:hidden;background:var(--surface)}
.ph-b{display:block;width:100%;height:100%;cursor:zoom-in}
.ph-f img{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%);transition:scale 1.2s var(--out)}
.ph-f figcaption{position:absolute;left:10px;bottom:10px;padding:6px 10px 5px;border-radius:999px;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font:400 12px/1 var(--f-fin);color:var(--blanc);pointer-events:none}
.ph-b:focus-visible{outline:2px solid var(--bleu);outline-offset:-2px}
@media(hover:hover){.ph-b:hover img{scale:1.035}}
.rv .ph-f img{filter:blur(20px) brightness(.55);transition:filter 1.4s var(--out) var(--d,0s),scale 1.2s var(--out)}
.rv .ph-f.is-in img{filter:none}
.v2 .ph-h h1.pg-t{font-size:clamp(46px,6.9vw,104px);line-height:.92}
.ph-h .re-st{margin:clamp(24px,2.6vw,44px) 0 clamp(24px,2.4vw,36px);font-size:clamp(19px,1.55vw,26px);max-width:30em}
@media(min-width:768px){
.ph-h{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,72px);align-items:center;padding-top:calc(var(--hd-space) + clamp(28px,4vw,72px))}
.ph-mo{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--ph-g)}
.ph-mo>.ph-f:nth-child(1){grid-row:1/3}
.ph-mo>.ph-f:nth-child(2){aspect-ratio:3/2;--d:.12s}
.ph-mo-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--ph-g)}
.ph-mo-2 .ph-f{aspect-ratio:1;--d:.24s}
.ph-mo-2 .ph-f+.ph-f{--d:.36s}
.ph-g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--ph-g)}
/* Portraits : deux grands encadrent quatre petits */
.ph-p .ph-f{grid-column:span 2;aspect-ratio:480/682}
.ph-p .ph-f:nth-child(1){grid-column:1/5;grid-row:1/3;aspect-ratio:auto}
.ph-p .ph-f:nth-child(2){grid-column:9/13;grid-row:1/3;aspect-ratio:auto}
/* Publicité : deux colonnes inversées, un paysage et deux portraits chacune */
.ph-a{display:grid;grid-template-columns:1fr 1fr;gap:var(--ph-g)}
.ph-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--ph-g);align-content:start}
.ph-col .ph-f{aspect-ratio:480/682}
.ph-col .ph-l{grid-column:1/-1;aspect-ratio:3/2}
/* Événementiel : une grande image, trois autres autour */
.ph-e .ph-f:nth-child(1){grid-column:1/8;aspect-ratio:3/2}
.ph-e .ph-f:nth-child(2){grid-column:8/13}
.ph-e .ph-f:nth-child(3){grid-column:1/6}
.ph-e .ph-f:nth-child(4){grid-column:6/13;aspect-ratio:2.2}
}
@media(max-width:767px){
.ph-h{padding-top:calc(var(--hd-space) + 24px);padding-bottom:56px}
.ph-h .ph-mo{margin-top:36px}
.ph-mo,.ph-g,.ph-a{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;margin-left:calc(-1*var(--goutt));margin-right:calc(-1*var(--goutt));padding:0 var(--goutt);scroll-padding:0 var(--goutt);scrollbar-width:none;-webkit-overflow-scrolling:touch}
.ph-mo::-webkit-scrollbar,.ph-g::-webkit-scrollbar,.ph-a::-webkit-scrollbar{display:none}
.ph-mo-2,.ph-col{display:contents}
.ph-f{flex:0 0 78vw;aspect-ratio:4/5;scroll-snap-align:start}
.ph-e .ph-f{flex-basis:84vw;aspect-ratio:4/3}
.ph-f img{object-position:var(--pos-m,var(--pos,50% 50%))}
}
/* Méthode : une photo des coulisses à côté des quatre étapes */
.ph-m .ph-f{aspect-ratio:4/5}
@media(min-width:768px){
.ph-m{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(28px,4vw,72px);align-items:center}
.ph-m .lp-l{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
.ph-m .ph-f{margin-bottom:28px}
}
/* Logos clients remontés sous l'ouverture : celui du pied de page est masqué sur cette page */
.page-photo footer .pc{display:none}
.page-photo .site-main .pc{padding:clamp(28px,3vw,48px) 0 clamp(72px,9vw,150px)}
/* Visionneuse */
html:has(.ph-lb[open]){overflow:hidden}
.ph-lb{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(0,0,0,.95);color:var(--blanc);overflow:hidden}
.ph-lb::backdrop{background:#000}
.ph-lb[open]{display:grid;grid-template-columns:88px minmax(0,1fr) 88px;align-items:center;justify-items:center}
.ph-lb figure{grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;width:100%;height:100%;margin:0;padding:64px 0 24px;min-height:0}
.ph-lb img{display:block;max-width:100%;height:auto;border-radius:var(--r);opacity:0;filter:blur(14px);transition:opacity .25s ease,filter .5s var(--out)}
.ph-lb img.is-on{opacity:1;filter:none}
.ph-lb figcaption{display:flex;gap:16px;align-items:baseline;justify-content:center;max-width:60ch;font:300 14px/1.4 var(--f-fin);color:var(--gris);text-align:center}
.ph-lb figcaption b{flex:none;font:400 12px/1 var(--f-mono);color:var(--blanc)}
.v2 .ph-lb button,.ph-lb button{display:grid;place-items:center;width:48px;height:48px;margin:0;padding:0;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(0,0,0,.4);color:var(--blanc);cursor:pointer;transition:background .25s ease,color .25s ease,border-color .25s ease}
.ph-lb button:focus{background:rgba(0,0,0,.4);color:var(--blanc)}
.ph-lb button:hover,.ph-lb button:focus-visible{background:var(--blanc);border-color:var(--blanc);color:var(--noir)}
.ph-lb svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ph-lb-x{position:absolute;top:16px;right:20px;z-index:2}
.ph-lb-p{grid-column:1;grid-row:1}
.ph-lb-s{grid-column:3;grid-row:1}
@media(max-width:767px){
.ph-lb[open]{grid-template-columns:minmax(0,1fr)}
.ph-lb figure{grid-column:1;padding:72px 12px 88px}
.ph-lb-p,.ph-lb-s{position:absolute;bottom:20px;grid-column:auto}
.ph-lb-p{left:calc(50% - 60px)}
.ph-lb-s{left:calc(50% + 12px)}
}
