/* ==========================================================================
   Faustine — Make Up Artist
   FONDS — trois tons clairs, chacun avec un rôle :
     --blanc   blanc cassé : fond de page par défaut
     --ivoire  ivoire      : sections alternées (.alt)
     --creme   crème       : mises en avant ponctuelles (.hl), voile de transition,
                             fond d'attente des images
   + --inv-bg anthracite pour les sections sombres (.inv)
   ========================================================================== */
:root{--blanc:#FAF8F4;--ivoire:#F3EEE6;--creme:#E8DFD0;
--bg:var(--blanc);--bg2:var(--ivoire);--panel:var(--creme);
--ink:#1F1D1B;--muted:#655E58;--line:rgba(31,29,27,.17);--accent:#96756B;--accent-t:#7A5A51;--champ:#CDB79A;--err:#A4432F;
--inv-bg:#1F1D1B;--inv-ink:#F3EEE6;--inv-muted:#B8AEA4;--inv-line:rgba(243,238,230,.2);--on-photo:#FAF8F4;
--serif:'Bodoni Moda','Didot','Bodoni 72','Playfair Display',Georgia,serif;--sans:'Hanken Grotesk','Helvetica Neue',Helvetica,Arial,sans-serif;
--pad:clamp(20px,4.4vw,76px);--hh:88px;--ease:cubic-bezier(.2,.75,.2,1);--sm:cubic-bezier(.65,0,.2,1);--io:cubic-bezier(.75,0,.2,1);
box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--blanc:#191716;--ivoire:#211E1C;--creme:#2C2825;--ink:#F1ECE4;--muted:#ACA39A;--line:rgba(241,236,228,.18);--accent:#C8A79C;--accent-t:#C8A79C;--err:#E08A75;--inv-bg:#0F0E0D}}
:root[data-theme="dark"]{--blanc:#191716;--ivoire:#211E1C;--creme:#2C2825;--ink:#F1ECE4;--muted:#ACA39A;--line:rgba(241,236,228,.18);--accent:#C8A79C;--accent-t:#C8A79C;--err:#E08A75;--inv-bg:#0F0E0D}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 70px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:350 17px/1.65 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
html.lock,html.lock body{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,ul,ol,figure,blockquote,dl,dd{margin:0;padding:0}
ul,ol{list-style:none}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent-t);outline-offset:4px}
.inv :focus-visible,.mm :focus-visible,.hero :focus-visible,body[data-tone="light"] .hd:not(.solid) :focus-visible{outline-color:var(--on-photo)}
::selection{background:var(--champ);color:#1F1D1B}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
a.vh:focus{z-index:100;left:12px;top:12px;width:auto;height:auto;clip-path:none;padding:12px 18px;background:var(--ink);color:var(--bg);font:500 13px/1 var(--sans);letter-spacing:.08em}
.st{width:.72em;height:.72em;display:inline-block;vertical-align:.02em;fill:currentColor;flex:none}
.wrap{padding-inline:var(--pad)}
.sec{padding-block:clamp(76px,11vw,184px)}
.sec-s{padding-block:clamp(60px,7.5vw,120px)}
.inv{background:var(--inv-bg);color:var(--inv-ink);--line:var(--inv-line);--muted:var(--inv-muted);--panel:#2D2926;--accent:#C8A79C;--accent-t:#D2B4AA}
.alt{background:var(--bg2)}
.hl{background:var(--creme)}
.g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(14px,2vw,32px)}

/* type */
.eyebrow{font:500 12px/1.6 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.eyebrow.c{text-align:center}
.num{font:400 13px/1 var(--sans);letter-spacing:.2em;color:var(--muted);display:flex;align-items:center;gap:14px}
.num::after{content:"";width:56px;height:1px;background:currentColor;opacity:.5}
.d1{font:400 clamp(44px,7.6vw,124px)/.96 var(--serif);letter-spacing:-.022em;font-optical-sizing:auto}
.d2{font:400 clamp(34px,4.6vw,74px)/1.05 var(--serif);letter-spacing:-.02em}
.d3{font:400 clamp(25px,2.6vw,40px)/1.15 var(--serif);letter-spacing:-.012em}
.d4{font:400 clamp(22px,2vw,30px)/1.22 var(--serif);letter-spacing:-.005em}
.d1 em,.d2 em,.d3 em,.d4 em{font-style:italic;font-weight:400}
.lead{font:400 clamp(20px,1.85vw,28px)/1.42 var(--serif);letter-spacing:-.005em}
.txt{max-width:58ch;color:var(--muted)}
.txt p+p{margin-top:1em}
.small{font-size:15px;line-height:1.6;color:var(--muted)}
.caps{font:500 12px/1.6 var(--sans);letter-spacing:.18em;text-transform:uppercase}

/* links & buttons */
.lk{position:relative;display:inline-flex;align-items:center;gap:12px;font:500 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;padding:10px 0;min-height:44px}
button.lk{background:none;border:0;cursor:pointer;color:inherit}
.lk::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:1px;background:currentColor;transform-origin:right;transition:transform .6s var(--io)}
.ar{width:26px;height:10px;fill:none;stroke:currentColor;stroke-width:1;transition:transform .5s var(--ease);flex:none}
.btn{--c:var(--ink);--cb:var(--bg);position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;gap:16px;min-height:54px;padding:0 28px;border:1px solid var(--c);color:var(--c);background:none;cursor:pointer;font:500 12px/1.45 var(--sans);letter-spacing:.18em;text-transform:uppercase;padding-block:12px;transition:color .5s var(--ease),opacity .4s}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--c);transform:translateY(101%);transition:transform .55s var(--io)}
.btn.fill{color:var(--cb)}.btn.fill::before{transform:none}
.inv .btn,.on-ph .btn{--c:var(--on-photo);--cb:#1F1D1B}
.btn span{transition:transform .5s var(--ease)}
.btn[disabled]{opacity:.6;cursor:progress}
@media (hover:hover){
.lk:hover::after{transform:scaleX(0);transform-origin:right;animation:redraw .9s var(--io) .05s forwards}
@keyframes redraw{0%{transform:scaleX(1);transform-origin:right}49%{transform:scaleX(0);transform-origin:right}50%{transform:scaleX(0);transform-origin:left}100%{transform:scaleX(1);transform-origin:left}}
.lk:hover .ar,.btn:not([disabled]):hover .ar{transform:translateX(6px)}
.btn:not([disabled]):hover{color:var(--cb)}.btn:not([disabled]):hover::before{transform:none}
.btn.fill:not([disabled]):hover{color:var(--c)}.btn.fill:not([disabled]):hover::before{transform:translateY(-101%)}
.btn:not([disabled]):hover span{transform:translateX(-3px)}
}

/* motion system */
.rv{opacity:0;translate:0 12px;transition:opacity .8s var(--ease) var(--d,0s),translate .9s var(--ease) var(--d,0s)}
.rv.in{opacity:1;translate:0 0}
.hr{display:block;height:1px;background:var(--line);transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--io) var(--d,0s)}
.hr.in{transform:none}
.sp .w{display:inline-block;overflow:hidden;vertical-align:top;padding:.1em .06em .2em;margin:-.1em -.06em -.2em}
.sp .w>span{display:inline-block;translate:0 112%;transition:translate .8s var(--ease) calc(var(--d,0s) + min(var(--i),12)*45ms)}
.sp.in .w>span{translate:0 0}
.ph{position:relative;overflow:hidden;aspect-ratio:var(--ar,3/4);background:var(--panel)}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%);scale:1.05;transition:scale 1.6s var(--ease) var(--d,0s),opacity .6s}
.ph[data-par] img{inset:-8% 0;height:116%}
.ph::after{content:"";position:absolute;inset:0;background:var(--panel);transform-origin:top;transition:transform 1s var(--sm) var(--d,0s)}
.ph.l::after{transform-origin:right}
.ph.in::after{transform:scaleY(0)}.ph.l.in::after{transform:scaleX(0)}
.ph.in img{scale:1}
.ph figcaption{position:absolute;left:18px;bottom:16px;z-index:2;color:var(--on-photo);opacity:0;translate:0 8px;transition:.5s var(--ease);text-shadow:0 1px 14px rgba(0,0,0,.4)}
@media (hover:hover){a:hover>.ph.in img,.ph.hov.in:hover img{scale:1.035;transition-duration:1.2s;transition-delay:0s}a:hover>.ph figcaption{opacity:1;translate:0 0}}

/* header — transparent en haut de page, fond progressif au scroll (--hp de 0 à 1) */
.hd{--hc:var(--ink);--hbg:var(--bg);--hp:0;position:fixed;inset:0 0 auto 0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:calc(env(safe-area-inset-top,0px) + 20px) var(--pad) 20px;color:var(--hc);
background:color-mix(in srgb,var(--hbg) calc(var(--hp)*92%),transparent);-webkit-backdrop-filter:blur(calc(var(--hp)*14px));backdrop-filter:blur(calc(var(--hp)*14px));
transition:color .45s var(--ease),padding .5s var(--ease),translate 1s var(--ease) var(--hd-d,1.5s),opacity 1s var(--hd-d,1.5s);translate:0 -14px;opacity:0}
.hd::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line);opacity:var(--hp)}
body.ready .hd{translate:0 0;opacity:1}
body[data-tone="light"] .hd:not(.solid){--hc:var(--on-photo)}
body[data-page="home"] .hd:not(.solid) .logo,body[data-page="home"] .hd:not(.solid) .nl,body[data-page="home"] .hd:not(.solid) .hd-r>*{text-shadow:0 1px 18px rgba(20,14,8,.55)}
body[data-hd="dark"] .hd{--hbg:var(--inv-bg);--hc:var(--inv-ink);--line:var(--inv-line)}
.hd.solid{padding-block:calc(env(safe-area-inset-top,0px) + 13px) 13px}
body.mm-open .hd{--hc:var(--inv-ink)!important;background:none!important;-webkit-backdrop-filter:none;backdrop-filter:none}
body.mm-open .hd::after{display:none}
.logo{display:flex;flex-direction:column;gap:5px;font:500 19px/1 var(--serif);letter-spacing:.3em;text-transform:uppercase}
.logo small{font:500 9px/1 var(--sans);letter-spacing:.4em;opacity:.8}
.nav{display:flex;align-items:center;gap:clamp(22px,3vw,46px)}
.nav>li{position:relative}
.nl{font:500 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;padding:14px 0;display:inline-flex;gap:8px;align-items:center;background:none;border:0;cursor:pointer;position:relative}
.nl::after{content:"";position:absolute;left:0;right:0;bottom:8px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--io)}
.nl:hover::after,.nl[aria-current]::after,li:focus-within>.nl::after{transform:scaleX(1);transform-origin:left}
.dd{position:absolute;top:100%;left:-28px;min-width:340px;padding:14px 28px 18px;background:var(--bg);color:var(--ink);--line:rgba(31,29,27,.17);border:1px solid var(--line);opacity:0;visibility:hidden;translate:0 8px;transition:.35s var(--ease)}
.nav li:hover>.dd,.nav li:focus-within>.dd{opacity:1;visibility:visible;translate:0 0}
.dd a{display:flex;align-items:baseline;gap:16px;padding:11px 0;font:400 19px/1.25 var(--serif);border-bottom:1px solid var(--line);transition:padding .4s var(--ease),color .3s}
.dd li:last-child a{border:0}
.dd a i{font:400 11px var(--sans);letter-spacing:.16em;color:var(--muted);font-style:normal}
.dd a:hover,.dd a[aria-current]{padding-left:8px;color:var(--accent)}
.hd-r{display:flex;align-items:center;gap:26px}
.burger{display:none;background:none;border:0;cursor:pointer;min-height:44px;padding:0 0 0 12px;font:500 12px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;align-items:center;gap:12px}
.burger b{display:block;width:26px;height:9px;position:relative}
.burger b::before,.burger b::after{content:"";position:absolute;left:0;right:0;height:1px;background:currentColor;transition:.5s var(--ease)}
.burger b::before{top:0}.burger b::after{bottom:0}
body.mm-open .burger b::before{top:4px;rotate:45deg}body.mm-open .burger b::after{bottom:4px;rotate:-45deg}
@media (max-width:960px){:root{--hh:76px}.nav,.hd-r .lk{display:none}.burger{display:inline-flex}}

/* mobile menu */
.mm{position:fixed;inset:0;z-index:55;background:var(--inv-bg);color:var(--inv-ink);--line:var(--inv-line);--muted:var(--inv-muted);clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .8s var(--io),visibility 0s .8s;display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top,0px) + 96px) var(--pad) calc(env(safe-area-inset-bottom,0px) + 28px);overflow-y:auto}
body.mm-open .mm{clip-path:inset(0);visibility:visible;transition:clip-path .8s var(--io),visibility 0s}
.mm a{display:block}
.mm-main>li{overflow:hidden;border-bottom:1px solid var(--line)}
.mm-main>li>a,.mm-main>li>span{display:block;font:400 clamp(34px,9.5vw,54px)/1.08 var(--serif);letter-spacing:-.01em;padding:14px 0;translate:0 110%;transition:translate .9s var(--ease) calc(.15s + var(--i)*70ms)}
.mm-sub{padding:2px 0 16px;opacity:0;transition:opacity .8s .55s}
.mm-sub a{display:flex;gap:16px;align-items:baseline;font:400 17px/1.35 var(--sans);padding:10px 0;color:var(--inv-ink)}
.mm-sub i{font:400 11px var(--sans);letter-spacing:.16em;color:var(--muted);font-style:normal;min-width:20px}
body.mm-open .mm-main>li>a,body.mm-open .mm-main>li>span{translate:0 0}
body.mm-open .mm-sub,body.mm-open .mm-ft{opacity:1}
.mm-ft{margin-top:auto;padding-top:30px;opacity:0;transition:opacity .8s .7s;display:grid;gap:6px;font-size:15.5px;color:var(--muted)}
.mm-ft a{color:var(--inv-ink);padding:11px 0}

/* veil (transition entre pages) & cursor */
.veil{position:fixed;inset:0;z-index:80;background:var(--creme);translate:0 101%;pointer-events:none;display:grid;place-items:center;color:var(--accent);will-change:translate}
.veil-s{margin:0;padding-inline:20px;text-align:center;font:500 clamp(12px,1.25vw,17px)/1.5 var(--serif);letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;color:var(--ink);opacity:0;translate:0 8px;transition:opacity .45s var(--ease),translate .9s var(--ease)}
.veil.on{translate:0 0;transition:translate .8s var(--sm)}.veil.on .veil-s{opacity:1;translate:0 0;transition-delay:.3s}
html.arriving .veil{translate:0 0;transition:none}html.arriving .veil .veil-s{opacity:1;translate:0 0;transition:none}
.veil.off,html.arriving .veil.off{translate:0 -101%;transition:translate 1.05s var(--sm)}
.veil.off .veil-s,html.arriving .veil.off .veil-s{opacity:0;translate:0 -8px;transition:opacity .4s var(--ease),translate 1.2s var(--ease)}
/* le contenu accompagne le voile : il s'efface vers le haut au départ, remonte doucement à l'arrivée */
main,body>footer{transition:translate 1.25s var(--ease),opacity .9s var(--ease)}
body.leaving main,body.leaving>footer{translate:0 -36px;opacity:.35;transition:translate .8s var(--sm),opacity .8s var(--sm)}
html.arriving main{translate:0 40px;opacity:0;transition:none}
html.arriving.lift main{translate:0 0;opacity:1;transition:translate 1.25s var(--ease) .12s,opacity .9s var(--ease) .12s}
.cur{position:fixed;left:0;top:0;z-index:90;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:50%;background:rgba(250,248,244,.94);color:#1F1D1B;display:grid;place-items:center;font:500 10.5px var(--sans);letter-spacing:.18em;text-transform:uppercase;pointer-events:none;scale:0;transition:scale .45s var(--ease)}
.cur.on{scale:1}
@media (hover:none),(pointer:coarse){.cur{display:none}}

.pt{padding-top:calc(var(--hh) + clamp(40px,6vw,96px))}

/* HOME hero */
.hero{position:relative;height:calc(100svh - env(safe-area-inset-top,0px));min-height:540px;overflow:hidden;background:var(--creme);color:var(--on-photo)}
.hero-img{position:absolute;inset:0;clip-path:inset(16% 30% 16% 30%);transition:clip-path 1.7s var(--io)}
.hero-img img{width:100%;height:112%;object-fit:cover;object-position:50% 47%;scale:1.25}
.hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(24,18,12,.72),rgba(24,18,12,.12) 46%,rgba(24,18,12,0) 62%),linear-gradient(to bottom,rgba(24,18,12,.58),rgba(24,18,12,.22) 16%,rgba(24,18,12,0) 30%);opacity:0;transition:opacity 1.4s .9s}
.hero.in .hero-img{clip-path:inset(0)}
.hero.in .hero-img::after{opacity:1}
.hero.in .hero-img img{animation:heroZoom 22s cubic-bezier(.2,.6,.2,1) forwards}
@keyframes heroZoom{0%{scale:1.25}9%{scale:1.06}100%{scale:1.13}}
.hero-in{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(20px,3.2vw,44px)}
.hero-role{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:clamp(6px,1vw,14px);font:500 clamp(11px,1vw,13px)/1 var(--sans);letter-spacing:.4em;text-transform:uppercase}
.hero-role i{flex:1;height:1px;background:currentColor;opacity:.55;transform:scaleX(0);transform-origin:left;transition:transform 1.5s var(--io) 1.5s}
.hero-role span{opacity:0;translate:0 10px;transition:opacity .9s 1.45s,translate .9s var(--ease) 1.45s}
.hero.in .hero-role i{transform:none}.hero.in .hero-role span{opacity:1;translate:0 0}
.hero-name{font:400 15.6vw/.84 var(--serif);letter-spacing:-.012em;text-transform:uppercase;white-space:nowrap;overflow:hidden;padding:.05em 0 .04em;display:block;width:max-content;max-width:none}
.hero-name .l{display:inline-block;translate:0 108%;transition:translate 1.15s var(--ease) calc(.75s + var(--i)*65ms)}
.hero.in .hero-name .l{translate:0 0}
.hero-bot{display:flex;justify-content:space-between;align-items:center;gap:20px 40px;flex-wrap:wrap;margin-top:clamp(14px,1.8vw,26px)}
.tag{display:flex;flex-wrap:wrap;align-items:center;gap:.5em 1.1em;font:500 clamp(11px,1vw,13px)/1 var(--sans);letter-spacing:.32em;text-transform:uppercase}
.tag .st{color:var(--champ)}
.hero .tag>*{opacity:0;translate:0 10px;transition:opacity .8s calc(1.75s + var(--i)*70ms),translate .8s var(--ease) calc(1.75s + var(--i)*70ms)}
.hero.in .tag>*{opacity:1;translate:0 0}
.hero-cta{display:flex;align-items:center;gap:28px;opacity:0;translate:0 12px;transition:opacity .9s 2.3s,translate .9s var(--ease) 2.3s}
.hero.in .hero-cta{opacity:1;translate:0 0}
@media (max-width:760px){.hero-img img{object-position:43% 50%}.hero-role i,.hero-role span:last-child{display:none}.hero-role{justify-content:flex-start;letter-spacing:.3em}.hero .tag{font-size:10.5px;letter-spacing:.14em;gap:.5em .7em;flex-wrap:nowrap;white-space:nowrap}.hero-bot{flex-direction:column;align-items:flex-start}.hero-cta .lk{display:none}}

/* HOME intro */
.intro{row-gap:clamp(18px,2vw,28px)}
.intro>*{grid-column:1/-1}
.intro .lead{grid-column:1/11;font-size:clamp(23px,2.7vw,42px);line-height:1.26;letter-spacing:-.015em}
.intro .more{margin-top:clamp(8px,1vw,16px);display:flex;gap:14px 36px;flex-wrap:wrap;align-items:center}

/* HOME univers — textes toujours calés sur la colonne 1 ou la colonne 8 */
.u{align-items:center;row-gap:34px}
.u+.u{margin-top:clamp(90px,12vw,200px)}
.u-t{display:grid;gap:clamp(16px,1.6vw,24px);justify-items:start}
.u-t .d2{font-size:clamp(38px,5vw,82px)}
.u-t p{max-width:40ch;color:var(--muted)}
.u1{position:relative}
.u1 .a{grid-column:1/7;grid-row:1}.u1 .u-t{grid-column:8/13;grid-row:1}.u1 .b{grid-column:6/8;grid-row:1;align-self:end;translate:0 20%;z-index:2;width:100%}
.u2 .u-t{grid-column:1/6;grid-row:1}.u2 .a{grid-column:8/13;grid-row:1}
.u3w{padding-block:clamp(80px,10vw,170px)}
.u3 .a{grid-column:1/6}.u3 .b{grid-column:10/13;grid-row:1;align-self:start;margin-top:-6vw}.u3 .u-t{grid-column:8/13;grid-row:1;align-self:end;padding-bottom:2vw}
.u4 .a{grid-column:8/13;grid-row:1}.u4 .u-t{grid-column:1/7;grid-row:1}.u4 .u-t .d2{font-size:clamp(36px,4.6vw,76px)}
.u5 .a{grid-column:1/5;margin-top:9vw}.u5 .b{grid-column:5/8}.u5 .u-t{grid-column:8/13;grid-row:1;align-self:end}
@media (max-width:860px){
.u>*{grid-column:1/-1!important;grid-row:auto!important;margin-top:0!important;translate:none!important;padding-bottom:0!important}
.u1 .a{grid-column:1/11!important}
.u1 .b{grid-column:7/13!important;margin-top:-22%!important;margin-bottom:-4px}
.u2 .a{grid-column:3/13!important;order:-1}
.u3 .a{grid-column:1/10!important}.u3 .b{grid-column:6/13!important;margin-top:-30%!important}
.u4 .a{order:-1;margin-inline:calc(var(--pad)*-1)}
.u5 .a{grid-column:1/7!important;margin-top:14vw!important}.u5 .b{grid-column:7/13!important}
.intro .lead{grid-column:1/-1}
}

/* slider — swipe natif (scroll-snap) au tactile, drag + inertie à la souris */
.sl{position:relative}
.sl-t{position:relative;display:flex;gap:clamp(16px,2.4vw,40px);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;margin-right:calc(var(--pad)*-1);padding-right:var(--pad);cursor:grab;outline-offset:-2px}
.sl-t::-webkit-scrollbar{display:none}
.sl-t>*{flex:none;scroll-snap-align:start}
.sl.drag .sl-t{cursor:grabbing;scroll-snap-type:none;user-select:none}
.sl.anim .sl-t{scroll-snap-type:none}
.sl.drag img,.sl.drag a{pointer-events:none}
.sl-t img{-webkit-user-drag:none;user-select:none}
.sl-ui{display:flex;align-items:center;gap:clamp(18px,2.4vw,36px);margin-top:clamp(26px,3vw,46px)}
.sl-bar{flex:1;height:1px;background:var(--line);position:relative}
.sl-bar i{position:absolute;left:0;top:-1px;height:3px;width:33%;background:currentColor;transform-origin:left;will-change:transform;transition:width .4s var(--ease)}
.sl-c{font:400 13px/1 var(--sans);letter-spacing:.16em;color:var(--muted);min-width:4.2em;font-variant-numeric:tabular-nums}
.sl-c b{font-weight:500;color:var(--ink)}.inv .sl-c b{color:var(--inv-ink)}
.sl-b{display:flex;gap:8px}
.sl-b button{width:48px;height:48px;border:1px solid var(--line);border-radius:50%;background:none;cursor:pointer;display:grid;place-items:center;transition:border-color .4s,opacity .4s,background .4s,color .4s}
.sl-b button[disabled]{opacity:.3;cursor:default}
.sl-b .ar{width:20px}.sl-b button:first-child .ar{rotate:180deg}
@media (hover:hover){.sl-b button:not([disabled]):hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}.inv .sl-b button:not([disabled]):hover{background:var(--inv-ink);border-color:var(--inv-ink);color:var(--inv-bg)}}
.sl-q .sl-t>*{width:min(78%,980px);transition:opacity .7s var(--ease)}
.sl-q .sl-t>*:not(.cur-s){opacity:.32}
.sl-p .sl-t>*{width:clamp(230px,27vw,440px)}
.sl-p .ph{--ar:3/4}
@media (max-width:760px){.sl-q .sl-t>*{width:86%}.sl-p .sl-t>*{width:72%}.sl-c{display:none}}

/* quotes */
.q p{font:400 clamp(20px,2vw,30px)/1.38 var(--serif);letter-spacing:-.008em;max-width:30em}
.q p::before{content:"« "}.q p::after{content:" »"}
.q footer{margin-top:26px;display:flex;gap:14px;align-items:center}

/* CTA band */
.cta{text-align:center;display:grid;justify-items:center;gap:clamp(22px,2.6vw,40px);position:relative;overflow:hidden}
.cta .d1{font-size:clamp(38px,6.2vw,100px)}
.cta .spin{width:clamp(34px,3.4vw,52px);height:clamp(34px,3.4vw,52px);color:var(--accent);animation:spin 28s linear infinite}
@keyframes spin{to{rotate:360deg}}
.cta p{max-width:44ch;color:var(--muted)}
.cta-b{display:flex;gap:18px 28px;flex-wrap:wrap;justify-content:center;align-items:center}

/* déplacements */
.dep{row-gap:clamp(30px,4vw,56px);align-items:start}
.dep h2{grid-column:1/-1}
.dep-z{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(14px,2vw,32px)}
.dep-z li{border-top:1px solid var(--line);padding-top:clamp(18px,2vw,28px);display:grid;gap:10px;align-content:start}
.dep-z b{font:400 clamp(24px,2.5vw,40px)/1.1 var(--serif);letter-spacing:-.015em;text-transform:uppercase}
.dep-z span{font:500 13px/1.5 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--accent-t)}
.dep-n{grid-column:1/9;font:400 clamp(18px,1.5vw,22px)/1.45 var(--serif)}
.dep-x{grid-column:1/9;color:var(--muted)}
@media (max-width:760px){.dep-z{grid-template-columns:1fr}.dep-z li{gap:6px;padding-block:18px}.dep-z li:last-child{border-bottom:1px solid var(--line)}.dep-z b{font-size:25px}.dep-z span{font-size:12.5px;letter-spacing:.16em}.dep-n,.dep-x{grid-column:1/-1}}

/* marquee & footer */
.mq{overflow:hidden;border-block:1px solid var(--line);padding:clamp(16px,2vw,28px) 0;white-space:nowrap}
.mq-t{display:inline-flex;animation:mq 70s linear infinite;will-change:transform}
.mq span{display:inline-flex;align-items:center;gap:.5em;padding-right:.5em;font:italic 400 clamp(24px,3.1vw,46px)/1.15 var(--serif);letter-spacing:-.01em}
.mq .st{width:.34em;height:.34em;color:var(--accent)}
@keyframes mq{to{transform:translateX(-50%)}}
.ft{position:relative;overflow:hidden;padding-top:clamp(60px,7vw,110px)}
.ft-g{row-gap:44px;position:relative;z-index:1}
.ft-a{grid-column:1/5}.ft-b{grid-column:6/9}.ft-c{grid-column:9/13;overflow-wrap:anywhere}
.ft-logo{font:500 22px/1 var(--serif);letter-spacing:.3em;text-transform:uppercase}
.ft-logo small{display:block;font:500 10px/1 var(--sans);letter-spacing:.4em;margin-top:9px;color:var(--muted)}
.ft .tag{margin-top:30px;font-size:11px;letter-spacing:.28em;color:var(--muted)}
.ft-h{font:500 12px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:20px}
.ft li a,.ft-c a{display:inline-block;padding:5px 0;position:relative}
.ft li a::after,.ft-c a::after{content:"";position:absolute;left:0;right:0;bottom:3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--io)}
.ft li a:hover::after,.ft-c a:hover::after{transform:none;transform-origin:left}
.ft-c p+p{margin-top:16px}
.ft-big{font:400 20vw/.74 var(--serif);text-transform:uppercase;letter-spacing:-.012em;white-space:nowrap;width:max-content;color:var(--inv-ink);opacity:.09;margin:clamp(40px,6vw,90px) 0 0;padding-top:.06em;user-select:none}
.ft-end{display:flex;justify-content:space-between;gap:10px 24px;flex-wrap:wrap;padding-block:20px 24px;border-top:1px solid var(--line);font-size:13.5px;color:var(--muted);position:relative}
@media (max-width:860px){.ft-a,.ft-b,.ft-c{grid-column:1/-1}}

/* inner heroes — la photo commence sous le header : le menu reste lisible */
.h-split{min-height:calc(100svh - env(safe-area-inset-top,0px));align-items:stretch;padding-top:var(--hh)}
.h-split .tx{grid-column:1/7;display:flex;flex-direction:column;justify-content:flex-end;gap:clamp(18px,2vw,30px);padding:clamp(30px,4vw,60px) 0 clamp(40px,5vw,80px) var(--pad)}
.h-split .ph{grid-column:8/13;aspect-ratio:auto;min-height:100%}
.h-split .d1{font-size:clamp(42px,6.4vw,104px)}
.h-split .txt{max-width:46ch}
.strip{display:flex;flex-wrap:wrap;gap:8px 30px;color:var(--muted)}
.strip span{display:inline-flex;gap:12px;align-items:center}.strip .st{color:var(--accent);width:9px;height:9px}
.acts{display:flex;gap:18px 28px;flex-wrap:wrap;align-items:center}
@media (max-width:860px){.h-split{display:flex;flex-direction:column-reverse;min-height:0}.h-split .ph{aspect-ratio:4/5;min-height:0}.h-split .tx{padding:34px var(--pad) 50px}}
.hd-row{row-gap:20px;align-items:end}.hd-row>:first-child{grid-column:1/8}.hd-row>:last-child{grid-column:8/13}
@media (max-width:860px){.hd-row>*{grid-column:1/-1!important}}

/* formulas */
.fm{padding-block:clamp(30px,3.6vw,56px);align-items:start;row-gap:14px;position:relative}
.fm .hr{position:absolute;top:0;left:0;right:0}
.fm-h{grid-column:1/6}.fm-b{grid-column:6/11}.fm-p{grid-column:11/13;text-align:right;font:400 clamp(32px,3.4vw,52px)/1 var(--serif);letter-spacing:-.02em;white-space:nowrap}
.fm-p small{display:block;font:400 12.5px/1.4 var(--sans);letter-spacing:.12em;color:var(--muted);margin-top:8px;text-transform:uppercase}
.fm-h h3{font:400 clamp(27px,2.8vw,44px)/1.1 var(--serif);letter-spacing:-.015em}
.fm-h p{margin-top:12px;font:500 12px/1.65 var(--sans);letter-spacing:.15em;text-transform:uppercase;color:var(--accent-t);max-width:34ch}
.fm-b p{color:var(--muted);max-width:52ch}.fm-b p+p{margin-top:.9em}
.notes{margin-top:18px;display:grid;gap:7px}
.notes li,.ck li{position:relative;padding-left:22px}
.notes li{font-size:15px;line-height:1.55;color:var(--muted)}
.notes li::before,.ck li::before{content:"";position:absolute;left:0;top:.76em;width:10px;height:1px;background:var(--accent)}
.ck{display:grid;gap:10px;font-size:16.5px}
.fm.star{background:var(--creme);margin-inline:calc(var(--pad)*-1);padding-inline:var(--pad)}
.fm.star .hr{display:none}.fm.star+.fm .hr{display:none}
@media (max-width:860px){.fm-h{grid-column:1/9}.fm-p{grid-column:9/13;grid-row:1;font-size:31px}.fm-b{grid-column:1/-1}}

/* steps */
.steps{align-items:start}
.steps .ph{grid-column:1/6;position:sticky;top:110px}
.steps ol{grid-column:7/13;display:grid}
.step{display:grid;grid-template-columns:clamp(54px,7vw,112px) 1fr;gap:10px 20px;padding-block:clamp(28px,3.4vw,52px);border-top:1px solid var(--line);align-items:start}
.step:last-child{border-bottom:1px solid var(--line)}
.step b{font:italic 400 clamp(46px,5.4vw,88px)/.85 var(--serif);color:var(--accent);letter-spacing:-.03em}
.step h3{margin-bottom:12px}
.step p{color:var(--muted);max-width:46ch}
@media (max-width:860px){.steps .ph{grid-column:1/-1;position:relative;top:auto;margin-bottom:30px;--ar:4/3!important}.steps ol{grid-column:1/-1}}
.know{row-gap:30px;align-items:start}
.know h2{grid-column:1/5}.know ul{grid-column:7/13;columns:2;column-gap:clamp(24px,3vw,56px)}
.know li{break-inside:avoid;padding:16px 0;border-top:1px solid var(--line);font:400 clamp(18px,1.5vw,22px)/1.32 var(--serif)}
@media (max-width:860px){.know h2,.know ul{grid-column:1/-1}.know ul{columns:1}}
.why{align-items:center;row-gap:40px}
.why .ph{grid-column:8/13;grid-row:1}.why .tx{grid-column:1/7;grid-row:1}
.why ol{margin-top:clamp(26px,3vw,46px)}
.why li{padding:clamp(14px,1.5vw,22px) 0;border-top:1px solid var(--line);font:400 clamp(19px,1.75vw,26px)/1.28 var(--serif);letter-spacing:-.008em;display:flex;gap:18px;align-items:baseline}
.why li .st{color:var(--accent);width:11px;height:11px;translate:0 -2px}
.why.q2 .tx{grid-column:1/7}.why.q2 .q{grid-column:8/13;grid-row:1}
@media (max-width:860px){.why .ph,.why .tx,.why.q2 .tx,.why.q2 .q{grid-column:1/-1;grid-row:auto}}
.sec-h{margin-bottom:clamp(36px,5vw,76px);display:grid;gap:16px}

/* beauté */
.b-hero{padding-top:calc(var(--hh) + clamp(36px,5vw,90px))}
.b-band{margin-top:clamp(26px,3.6vw,60px)}
.b-intro{row-gap:26px;padding-top:clamp(40px,5vw,84px);align-items:start}
.b-intro .lead{grid-column:1/7}.b-intro .r{grid-column:8/13;display:grid;gap:28px;justify-items:start}
@media (max-width:860px){.b-intro>*{grid-column:1/-1!important}}
.offers{align-items:start;row-gap:60px}
.of{display:grid;gap:22px}
.of.a{grid-column:1/6}.of.b{grid-column:8/13;margin-top:clamp(60px,12vw,200px)}
.of-h{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.of-h b{font:400 clamp(34px,3.6vw,56px)/.92 var(--serif);letter-spacing:-.02em;white-space:nowrap}
.of-h span{color:var(--muted)}
.of p{color:var(--muted);max-width:46ch}
@media (max-width:860px){.of.a,.of.b{grid-column:1/-1;margin-top:0}}
.inc{row-gap:clamp(40px,5vw,80px);align-items:start}
.ch h3{display:flex;align-items:baseline;gap:16px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.ch h3 i{font:400 12px/1 var(--sans);font-style:normal;letter-spacing:.2em;color:var(--muted);min-width:2.2em;translate:0 -.35em}
.ch .ck{color:var(--muted)}
.inc .c1{grid-column:1/5}.inc .c2{grid-column:5/9}.inc .i1{grid-column:9/13}
.inc .i2{grid-column:1/5}.inc .c3{grid-column:5/9}.inc .c4{grid-column:9/13}
@media (max-width:1000px){.inc .c1,.inc .c2{grid-column:span 6}.inc .i1{grid-column:1/-1;--ar:16/10!important}.inc .i2{grid-column:1/-1}.inc .c3,.inc .c4{grid-column:span 6}}
@media (max-width:620px){.inc>*{grid-column:1/-1!important}}
.occ-i{margin-top:clamp(16px,1.8vw,24px);max-width:30ch;color:var(--muted)}
.occ-h{grid-column:1/6}
@media (max-width:860px){.occ-h{grid-column:1/-1}}
@media (min-width:480px) and (max-width:860px){.know ul.occ-l{columns:2}}
.t-one{align-items:center;row-gap:36px}
.t-one .ph{grid-column:1/5}.t-one .q{grid-column:7/13}
@media (max-width:860px){.t-one .ph{grid-column:1/8}.t-one .q{grid-column:1/-1}}

/* shooting */
.s-hero{padding-top:calc(var(--hh) + 8px);padding-bottom:clamp(50px,6vw,100px)}
.s-hero .ph{--ar:16/6.6}
.s-hero .d1{margin-top:-.56em;position:relative;z-index:2;font-size:clamp(46px,8.6vw,140px);line-height:.92}
.s-hero .sub{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(14px,2vw,32px);row-gap:20px;margin-top:clamp(28px,3.4vw,56px);align-items:start}
.s-hero .sub .eyebrow{grid-column:1/7}.s-hero .sub .txt{grid-column:8/13;max-width:none}
@media (max-width:860px){.s-hero .ph{--ar:4/5;--pos:58% 50%}.s-hero .sub>*{grid-column:1/-1!important}}
.sv{align-items:center;row-gap:34px}
.sv .tx{display:grid;gap:22px;justify-items:start}
.sv .tx>p{color:var(--muted);max-width:44ch}
/* « Idéal pour » */
.ideal-w{display:grid;gap:14px;margin-top:10px;padding-top:22px;border-top:1px solid var(--line);width:100%}
.ideal-t{font:500 13.5px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
.inv .ideal-t{color:var(--inv-ink)}
.ideal{display:flex;flex-wrap:wrap;gap:6px 0;max-width:32em}
.ideal li{font:400 clamp(20px,1.8vw,27px)/1.32 var(--serif);letter-spacing:-.005em}
.ideal li:not(:last-child)::after{content:"/";margin:0 .55em;color:var(--accent);font-style:italic}
.sv1 .ph{grid-column:1/5}.sv1 .tx{grid-column:7/13}
.sv2 .tx{grid-column:1/6;grid-row:1}.sv2 .pa{grid-column:7/10;grid-row:1}.sv2 .pb{grid-column:10/13;grid-row:1;align-self:end;margin-bottom:-6vw}
.sv3 .ph{grid-column:9/13;grid-row:1}.sv3 .tx{grid-column:1/7;grid-row:1}
@media (max-width:860px){.sv>*{grid-column:1/-1!important;grid-row:auto!important;margin:0!important}.sv1 .ph{grid-column:1/9!important}.sv2 .pa{grid-column:1/8!important}.sv2 .pb{grid-column:6/13!important;margin-top:-24%!important}.sv3 .ph{grid-column:5/13!important;order:-1}}
.dv{row-gap:46px;align-items:start}
.dv .hd2{grid-column:1/6}.dv .ca{grid-column:7/10}.dv .cb{grid-column:10/13}
.dv h3{margin-bottom:20px}
.dv .ck{color:var(--muted)}
@media (max-width:960px){.dv .hd2{grid-column:1/-1}.dv .ca,.dv .cb{grid-column:span 6}}
@media (max-width:620px){.dv .ca,.dv .cb{grid-column:1/-1}}

/* artistique */
.a-hero{padding-top:calc(var(--hh) + clamp(36px,5vw,90px))}
.a-trio{margin-top:clamp(30px,4vw,64px);align-items:start}
.a-trio .a{grid-column:1/5}.a-trio .b{grid-column:5/9;margin-top:9vw}.a-trio .c{grid-column:9/13;margin-top:3vw}
.a-txt{row-gap:24px;margin-top:clamp(50px,7vw,120px);align-items:start}
.a-txt .lead{grid-column:1/7}.a-txt .txt{grid-column:8/13;max-width:none}
.gal{row-gap:clamp(14px,6vw,110px);align-items:start}
.gal .ph{grid-column:var(--c);margin-top:var(--mt,0)}
@media (max-width:760px){.a-trio .a{grid-column:1/7}.a-trio .b{grid-column:7/13;margin-top:16vw}.a-trio .c{display:none}.a-txt>*{grid-column:1/-1!important}
.gal{grid-template-columns:1fr 1fr;row-gap:14px}.gal .ph{grid-column:auto;margin-top:0}.gal .ph.w{grid-column:1/-1}.gal .ph.o{margin-top:34px}}

/* cours */
.c-hero{align-items:end;row-gap:34px;padding-top:calc(var(--hh) + clamp(36px,5vw,90px))}
.c-hero .tx{grid-column:1/7;display:grid;gap:24px;justify-items:start;padding-bottom:2vw}.c-hero .ph{grid-column:8/13}
.c-hero .d1{font-size:clamp(40px,5.8vw,96px)}
@media (max-width:860px){.c-hero>*{grid-column:1/-1!important}}
.pr{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:0 clamp(22px,3vw,48px);width:100%;border-top:1px solid var(--line);padding-top:20px}
.pr a{display:grid;gap:4px}
.pr b{font:400 clamp(27px,2.7vw,42px)/1 var(--serif);letter-spacing:-.02em;white-space:nowrap}
.pr span{font:500 12px/1.5 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
@media (max-width:520px){.pr{grid-template-columns:1fr}.pr a{grid-template-columns:5.2em 1fr;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--line)}.pr{padding-top:6px}}
.cf{position:relative;padding-block:clamp(40px,5.5vw,96px);row-gap:22px;align-items:start}
.cf .hr{position:absolute;top:0;left:0;right:0}
.cf-p{grid-column:1/5;font:400 clamp(58px,7.4vw,124px)/.86 var(--serif);letter-spacing:-.04em;white-space:nowrap}
.cf-p small{font-size:.36em;letter-spacing:0;margin-left:.12em;vertical-align:.9em}
.cf-b{grid-column:6/13;display:grid;gap:clamp(16px,1.8vw,26px);justify-items:start}
.cf-b h3{font:400 clamp(28px,3.2vw,52px)/1.08 var(--serif);letter-spacing:-.018em}
.cf-b>p{color:var(--muted);max-width:54ch;font-size:clamp(17px,1.25vw,19px)}
.cf-b .notes{margin-top:0}
.cf-k{font:500 13px/1.5 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-t);display:flex;gap:12px;align-items:center}
.cf-full .cf-p{font-size:clamp(64px,8.6vw,146px)}
@media (max-width:860px){.cf-p,.cf-b{grid-column:1/-1}}

/* à propos */
.verbs li{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(14px,2vw,32px);align-items:baseline;padding-block:clamp(20px,2.6vw,40px);border-top:1px solid var(--line)}
.verbs li:last-child{border-bottom:1px solid var(--line)}
.verbs h3{grid-column:1/7;font:italic 400 clamp(46px,8vw,132px)/1 var(--serif);letter-spacing:-.025em}
.verbs p{grid-column:8/13;color:var(--muted)}
@media (max-width:860px){.verbs h3,.verbs p{grid-column:1/-1}.verbs p{margin-top:10px}}
.words{row-gap:40px}
.words blockquote{grid-column:span 4;font:400 clamp(22px,2.2vw,32px)/1.32 var(--serif)}
.words footer{margin-top:14px;color:var(--muted)}
@media (max-width:860px){.words blockquote{grid-column:1/-1}}

/* contact & formulaire */
.ct{row-gap:60px;align-items:start}
.ct-i{grid-column:1/6;display:grid;gap:34px}.ct-f{grid-column:7/13}
.ct-i dl{display:grid;gap:26px}.ct-i dt{margin-bottom:8px;color:var(--muted)}.ct-i dd{font:400 clamp(20px,1.9vw,27px)/1.35 var(--serif);overflow-wrap:anywhere}
.ct-i dd a{background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;transition:background-size .5s var(--io)}
.ct-i dd a:hover{background-size:0 1px;background-position:100% 100%}
.fg{display:grid;grid-template-columns:1fr 1fr;gap:10px 28px;transition:opacity .5s}
.f{display:grid;position:relative;padding-top:18px;align-content:start}.f.w{grid-column:1/-1}
.f label{font:500 12px/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);transition:color .3s}
.f label i{font-style:normal;color:var(--accent-t);margin-left:.3em}
.f label small{font:400 12.5px/1.3 var(--sans);letter-spacing:.02em;text-transform:none;margin-left:.5em;opacity:.85}
.f label [hidden]{display:none}
.f input,.f select,.f textarea{appearance:none;-webkit-appearance:none;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:12px 0 14px;font:400 19px/1.3 var(--serif);width:100%;min-height:52px;outline:0;transition:border-color .4s}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--ink);box-shadow:0 1px 0 var(--ink)}
.f input,.f select,.f textarea{transition:border-color .4s,box-shadow .4s}
.f:focus-within label{color:var(--ink)}
.f select{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' fill='none' stroke='%23887f78'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E") right 4px center no-repeat;cursor:pointer}
.f select option{color:#1F1D1B;background:#fff}
.f textarea{min-height:140px;resize:vertical}
.f input::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}
.f-h{font-size:15px;line-height:1.55;color:var(--muted);margin-top:10px}
.f-e{font-size:14px;line-height:1.4;color:var(--err);margin-top:8px;display:none}
.f.err input,.f.err select,.f.err textarea{border-color:var(--err)}
.f.err label{color:var(--err)}.f.err .f-e{display:block}
.f.err input:focus,.f.err select:focus,.f.err textarea:focus{box-shadow:0 1px 0 var(--err)}
.hp-f{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.f-end{display:flex;gap:18px 28px;flex-wrap:wrap;align-items:center;margin-top:30px}
.f-msg{font-size:15px;line-height:1.5;color:var(--muted);max-width:40ch}
.f-msg.bad{color:var(--err)}
form[data-state="sending"] .fg{opacity:.45;pointer-events:none}
.f-ok{display:none;border-top:1px solid var(--line);padding-top:clamp(24px,3vw,40px)}
.f-ok h2{margin-bottom:16px}.f-ok p{color:var(--muted);max-width:48ch}.f-ok p+p{margin-top:.8em}.f-ok a{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.f-ok .lk{margin-top:22px;text-decoration:none}
form[data-state="success"] .fg,form[data-state="success"] .f-end{display:none}
form[data-state="success"] .f-ok{display:block;animation:okin .9s var(--ease) both}
@keyframes okin{from{opacity:0;translate:0 16px}}
.spinr{width:14px;height:14px;border:1px solid currentColor;border-right-color:transparent;border-radius:50%;display:none;animation:spin .8s linear infinite}
form[data-state="sending"] .spinr{display:block}form[data-state="sending"] .btn .ar{display:none}
@media (max-width:860px){.ct-i,.ct-f{grid-column:1/-1}}
@media (max-width:560px){.fg{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){
*,*::before,*::after{animation:none!important;transition-duration:.01ms!important;transition-delay:0s!important}
.rv,.sp .w>span,.hero-name .l,.hero-role span,.hero .tag>*,.hero-cta{opacity:1!important;translate:none!important}
.hr,.hero-role i{transform:none!important}.ph::after{display:none}.ph img{scale:1!important}
.hero-img{clip-path:none!important}.hero-img img{scale:1.04!important}.hero-img::after{opacity:1!important}
.hd{opacity:1;translate:none}.cur,.veil{display:none}main{translate:none!important;opacity:1!important}
}
body:not([data-page="home"]) .hd{--hd-d:.1s}

/* formulaire : légende, champs conditionnels, données personnelles */
.f-leg{font-size:14.5px;line-height:1.5;color:var(--muted);margin-bottom:6px}
.f-leg i{font-style:normal;color:var(--accent-t)}
.f[hidden]{display:none}
.f-new{animation:okin .6s var(--ease) both}
.f-rgpd{font-size:14.5px;line-height:1.55;color:var(--muted);margin-top:22px;max-width:60ch}
.f-msg:empty{display:none}
/* contact : titre moins haut */
[data-page="contact"] h1.d1{font-size:clamp(38px,5.4vw,88px);margin:12px 0 clamp(32px,4.4vw,70px)!important}
[data-page="contact"] .pt{padding-top:calc(var(--hh) + clamp(28px,4vw,64px))}
/* menu mobile : zone tactile et page courante */
.mm-main>li>a[aria-current],.mm-sub a[aria-current]{color:var(--champ)}
.mm-sub a{min-height:44px;align-items:center}
.burger{min-width:44px;justify-content:flex-end}
/* très petits écrans (320 px) */
@media (max-width:360px){.logo{font-size:17px;letter-spacing:.24em}.d1{font-size:40px}.hero .tag{font-size:9.5px;letter-spacing:.1em}.btn{padding-inline:20px;letter-spacing:.14em}.cf-p{font-size:56px}}
/* très grands écrans : on plafonne la largeur des contenus */
@media (min-width:1760px){:root{--pad:calc((100vw - 1608px)/2)}}
.fm-p small{white-space:normal}
@media (max-width:860px){.fm-p small{letter-spacing:.06em;font-size:11.5px}}
@media (max-width:420px){.cf-b h3,.d2,.d3{overflow-wrap:anywhere}}
/* pages juridiques */
.legal-p{padding-bottom:clamp(70px,9vw,150px)}
.legal-p h1{margin:14px 0 clamp(36px,5vw,72px)}
.legal{max-width:68ch}
.legal h2{font:400 clamp(24px,2.3vw,34px)/1.2 var(--serif);letter-spacing:-.01em;margin:clamp(36px,4vw,56px) 0 14px;padding-top:22px;border-top:1px solid var(--line)}
.legal h2:first-child{margin-top:0}
.legal p{color:var(--muted)}.legal p+p{margin-top:.9em}
.legal a,.f-rgpd a{color:var(--ink);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.legal-d{margin-top:clamp(36px,4vw,56px)!important;font-size:15px}
.ft-legal{display:flex;gap:6px 22px;flex-wrap:wrap}
.ft-legal a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;padding-block:11px;margin-block:-11px}
.f-rgpd+.f-rgpd{margin-top:8px}

/* ==========================================================================
   Portfolio — page /portfolio, aperçu de l'accueil, affichage plein écran
   ========================================================================== */
.pf-hero{padding-top:calc(var(--hh) + clamp(40px,6vw,110px));padding-bottom:clamp(34px,4.6vw,76px)}
.pf-hero .d1{margin:12px 0 clamp(20px,2.8vw,44px)}
.pf-hero .lead{grid-column:1/8}
.pf-sec{padding-bottom:clamp(76px,11vw,184px)}
.pf-bar{display:flex;flex-wrap:wrap;gap:0 clamp(20px,2.8vw,44px);padding-block:6px;margin-bottom:clamp(20px,3vw,46px);border-block:1px solid var(--line)}
.pf-bar[hidden]{display:none}
.pf-f{position:relative;display:inline-flex;align-items:baseline;gap:7px;min-height:48px;padding:17px 0 15px;background:none;border:0;cursor:pointer;font:500 12px/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);transition:color .35s var(--ease)}
.pf-f i{font:400 10.5px/1 var(--sans);font-style:normal;letter-spacing:.06em;opacity:.75}
.pf-f::after{content:"";position:absolute;left:0;right:0;bottom:10px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .55s var(--io)}
.pf-f[aria-pressed="true"]{color:var(--ink)}
.pf-f[aria-pressed="true"]::after{transform:none}
.pf{--gap:clamp(10px,2vw,30px);columns:2;column-gap:var(--gap)}
.pf-i{break-inside:avoid;margin-bottom:var(--gap)}
.pf-i[hidden]{display:none}
.pf-i a{position:absolute;inset:0;display:block;cursor:zoom-in}
.pf-i a:focus-visible{outline-offset:-6px;outline-color:var(--on-photo)}
.pf-i figcaption{pointer-events:none}
.pf.pf-abs{columns:auto;position:relative;transition:opacity .3s var(--ease)}
.pf.pf-abs .pf-i{position:absolute;margin:0}
.pf.pf-out{opacity:0}
.js .pf:not(.on){opacity:0;animation:pf-secours .4s 6s forwards}
@keyframes pf-secours{to{opacity:1}}
.pf-vide{max-width:26ch;padding-block:clamp(30px,6vw,90px);color:var(--muted)}
/* aperçu sur l'accueil */
.pfa-h{align-items:end;row-gap:18px;margin-bottom:clamp(34px,4.6vw,72px)}
.pfa-t{grid-column:1/8;display:grid;gap:clamp(14px,1.6vw,22px)}
.pfa-p{grid-column:9/13;max-width:34ch;color:var(--muted)}
.pfa-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,2vw,32px);align-items:start}
.pfa-g>a{display:block}
.pfa-g>a:nth-child(even){margin-top:clamp(20px,4.4vw,76px)}
.pfa-g>a[hidden]{display:none}
.pfa-b{margin-top:clamp(34px,4.6vw,70px);display:flex;justify-content:center}
/* plein écran */
.lb{position:fixed;inset:0;z-index:120;background:#141211;color:#F3EEE6;opacity:0;visibility:hidden;transition:opacity .4s var(--ease),visibility 0s .4s;overscroll-behavior:contain;touch-action:none;-webkit-user-select:none;user-select:none}
.lb.on{opacity:1;visibility:visible;transition-delay:0s}
.lb-f{position:absolute;left:50%;top:50%;margin:0;translate:-50% -50%}
.lb-f.snap{transition:transform .45s var(--ease)}
.lb-f img{display:block;max-width:none;background:#2D2926 center/cover no-repeat;opacity:0;scale:.985;transition:opacity .45s var(--ease),scale .7s var(--ease)}
.lb-f img.on{opacity:1;scale:1}
.lb-c{position:absolute;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 22px);display:flex;justify-content:center;align-items:center;gap:16px;font:500 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#B8AEA4;pointer-events:none}
.lb-c b{font-weight:500;color:#F3EEE6}
.lb-c i{width:34px;height:1px;background:currentColor;opacity:.5}
.lb button{position:absolute;display:grid;place-items:center;min-width:52px;min-height:52px;padding:0;background:none;border:0;color:inherit;cursor:pointer;font:500 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase}
.lb button:focus-visible{outline-color:#FAF8F4;outline-offset:2px}
.lb-x{top:calc(env(safe-area-inset-top,0px) + 12px);right:calc(var(--pad) - 6px);padding-inline:6px!important}
.lb-p{left:clamp(4px,2vw,36px);top:50%;translate:0 -50%}
.lb-n{right:clamp(4px,2vw,36px);top:50%;translate:0 -50%}
.lb-p .ar{rotate:180deg}
.lb-p[hidden],.lb-n[hidden],.lb-c[hidden]{display:none}
@media (hover:hover){
.pf-f:hover{color:var(--ink)}
.pf-i:hover figcaption,.pf-i:focus-within figcaption{opacity:1;translate:0 0}
.lb-n:hover .ar{transform:translateX(5px)}.lb-p:hover .ar{transform:translateX(5px)}
}
@media (hover:none),(pointer:coarse){.pf-i figcaption{display:none}}
@media (min-width:900px){.pf{columns:3}}
@media (max-width:860px){
.pf-hero .lead,.pfa-t,.pfa-p{grid-column:1/-1}
.pfa-g{grid-template-columns:1fr 1fr}
.pfa-g>a:nth-child(even){margin-top:34px}
}
@media (max-width:700px){
.lb-p,.lb-n{top:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 4px);translate:none}
.lb-p{left:8px}.lb-n{right:8px}
}
@media (prefers-reduced-motion:reduce){
.pf.pf-abs,.lb,.lb-f.snap,.lb-f img,.pf-f::after{transition:none!important}
.lb-f img{scale:1}
.js .pf:not(.on){animation-delay:2s}
}

/* ==========================================================================
   À propos — parcours, vision, expertises, Instagram
   ========================================================================== */
.lead strong,.cta p strong{font-weight:500}
.ab-p{row-gap:clamp(40px,6vw,80px);align-items:start}
.ab-p-a{grid-column:1/6;display:grid;gap:clamp(14px,1.6vw,22px);justify-items:start}
.ab-p-a .ph{width:100%;margin-top:clamp(18px,2.6vw,40px)}
.ab-yr{font:400 clamp(80px,11vw,180px)/.82 var(--serif);letter-spacing:-.04em;margin:clamp(10px,1.4vw,22px) 0 0 -.04em;color:var(--accent-t)}
.ab-p-b{grid-column:7/13;display:grid;gap:clamp(24px,2.6vw,40px);padding-top:clamp(0px,6vw,110px)}
.ab-p-b .txt,.ab-v-t .txt{max-width:54ch}
.ab-v{align-items:center;row-gap:40px}
.ab-v .ph{grid-column:1/5}
.ab-v-t{grid-column:6/12;display:grid;gap:clamp(22px,2.4vw,36px)}
.ab-q{margin-top:clamp(64px,9vw,150px);display:grid;gap:clamp(20px,2.4vw,36px)}
.ab-q-i{max-width:46ch;color:var(--muted)}
.ab-q-t{font:400 clamp(30px,4.2vw,70px)/1.1 var(--serif);letter-spacing:-.02em;max-width:19em;text-wrap:balance}
.ab-q-t em{font-style:italic}
.ab-q-v{display:flex;gap:14px;align-items:baseline;max-width:52ch;margin-top:clamp(10px,1.6vw,26px);padding-top:clamp(20px,2.4vw,34px);border-top:1px solid var(--line);color:var(--muted)}
.ab-q-v .st{color:var(--accent);translate:0 .08em}
.xp{border-bottom:1px solid var(--line)}
.xp a{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(14px,2vw,32px);align-items:baseline;padding-block:clamp(22px,2.6vw,38px);border-top:1px solid var(--line);transition:opacity .8s var(--ease) var(--d,0s),translate .9s var(--ease) var(--d,0s),padding .5s var(--ease),color .35s}
.xp-n{grid-column:1/2;font:400 12px/1 var(--sans);letter-spacing:.2em;color:var(--muted)}
.xp h3{grid-column:2/7;font:400 clamp(24px,2.6vw,40px)/1.14 var(--serif);letter-spacing:-.012em}
.xp p{grid-column:7/11;color:var(--muted)}
.xp-l{grid-column:11/13;justify-self:end;display:inline-flex;align-items:center;gap:12px;font:500 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;white-space:nowrap}
.ab-l{row-gap:clamp(50px,7vw,90px)}
.ab-l>div{display:grid;gap:clamp(18px,2vw,28px);align-content:start}
.ab-l>div:first-child{grid-column:1/6}
.ab-l>div:last-child{grid-column:8/13}
.ab-l-p{max-width:44ch;color:var(--muted)}
.ab-ig{align-items:end;row-gap:26px;padding-block:clamp(34px,4.4vw,64px);border-block:1px solid var(--line)}
.ab-ig h2{grid-column:1/7}
.ab-ig-t{grid-column:8/13;display:grid;gap:22px;justify-items:start}
.ab-ig-t p{max-width:38ch;color:var(--muted)}
.ig-i{width:20px;height:20px;flex:none}
.ft-c a.ig{display:inline-flex;align-items:center;gap:10px}
.cta .ab-cta{font-size:clamp(32px,4.4vw,72px);max-width:16em}
@media (hover:hover){
.xp a:hover{padding-left:clamp(8px,1vw,16px);color:var(--accent-t)}
.xp a:hover .ar{transform:translateX(6px)}
}
@media (max-width:1100px){
.xp p{grid-column:7/13}
.xp-l{grid-column:7/13;justify-self:start;margin-top:14px}
}
@media (max-width:860px){
.ab-p-a,.ab-p-b,.ab-v .ph,.ab-v-t,.ab-l>div:first-child,.ab-l>div:last-child,.ab-ig h2,.ab-ig-t{grid-column:1/-1}
.ab-p-b{padding-top:0}
.ab-p-a .ph{max-width:420px}
.ab-v .ph{max-width:420px}
.xp a{row-gap:10px}
.xp-n{grid-column:1/-1}
.xp h3,.xp p,.xp-l{grid-column:1/-1}
.xp-l{margin-top:6px}
}

/* ==========================================================================
   Finalisation — type de demande du formulaire, mentions tarifaires, déroulement du cours
   ========================================================================== */
.f-seg{border:0;margin:0;padding:0;min-width:0;display:flex;flex-wrap:wrap;gap:10px}
.f-seg legend{padding:0;margin-bottom:12px;font:500 12px/1.6 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.f-seg legend i{font-style:normal;color:var(--accent-t);margin-left:4px}
.f-seg label{position:relative;display:block;cursor:pointer;margin:0}
.f-seg input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.f-seg span{display:flex;align-items:center;min-height:50px;padding:12px 20px;border:1px solid var(--line);font:500 12px/1.45 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);transition:color .35s var(--ease),background .35s var(--ease),border-color .35s var(--ease)}
.f-seg input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.f-seg input:focus-visible+span{outline:2px solid var(--accent-t);outline-offset:3px}
.f-mode{margin:22px 0 0;max-width:60ch}
.f-mode strong{font-weight:500;color:var(--ink)}
.px-n{margin-top:clamp(22px,2.6vw,36px);max-width:74ch}
.cf-d{display:grid;gap:14px}
.cf-d h4{margin:0;color:var(--muted)}
.cf-d .ck{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(20px,2.6vw,44px);font-size:16px}
.know-c{margin-top:clamp(56px,7vw,110px)}
.know-c ul{columns:1}
.know-c li{font-size:clamp(17px,1.35vw,20px);line-height:1.45}
.q-src{margin-left:auto;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;color:var(--muted)}
@media (hover:hover){.f-seg label:hover span{color:var(--ink);border-color:var(--ink)}.f-seg label:hover input:checked+span{color:var(--bg)}}
@media (max-width:620px){.f-seg label{flex:1 1 100%}.cf-d .ck{grid-template-columns:1fr}}
.know-c a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;overflow-wrap:anywhere}

/* témoignages de l'accueil : filet entre le prénom et la prestation */
.q-c{display:inline-flex;align-items:center;gap:14px;color:var(--muted)}
.q-c::before{content:"";width:22px;height:1px;background:currentColor;opacity:.7}
.f-rgpd a{display:inline-block;padding-block:11px;margin-block:-11px}
/* formulaire : case « À définir » sous l'heure et le nombre de personnes */
.f .f-opt{display:inline-flex;align-items:center;gap:10px;min-height:44px;justify-self:start;cursor:pointer;letter-spacing:.12em}
.f .f-opt input{appearance:auto;-webkit-appearance:auto;width:16px;height:16px;min-height:0;padding:0;margin:0;border:0;flex:none;accent-color:var(--ink);cursor:pointer}
.f input:disabled{opacity:.35}
.f.err .f-opt{color:var(--muted)}
.f .f-opt input:focus-visible{outline:2px solid var(--accent-t);outline-offset:3px;box-shadow:none}
