/* =====================================================
   ARC-EN-CILS — direction artistique « l'atelier du regard »
   Fil rouge : arcs concentriques arc-en-ciel + cils tracés à la main
   Fonds : encre aubergine / crème / or champagne
   Titres : Bodoni Moda (empattements en poil = cils)   Texte : DM Sans
   ===================================================== */
:root{
  --ink:#120E18;      /* fond principal */
  --ink-2:#1B1523;    /* surfaces */
  --ink-3:#2A2135;    /* cartes, bordures */
  --cream:#F7EFE5;    /* texte sur fond sombre / fond clair */
  --cream-2:#EADFCF;
  --gold:#D2AC70;     /* accent principal (or des stories Instagram) */
  --gold-2:#EBD3A3;
  --gold-deep:#8A5F1F;/* accent lisible sur fond clair */
  --violet:#7A4DE8; --magenta:#E64A9A; --orange:#FF8A3D; --sun:#F2C14E; --teal:#2EC4B6;
  --rainbow:linear-gradient(90deg,#7A4DE8,#E64A9A,#FF8A3D,#F2C14E,#2EC4B6);
  --rainbow-soft:linear-gradient(100deg,#B9A0FF,#FF93C6,#FFB873,#FFE08A,#86E5DA);
  --f-display:'Bodoni Moda','Didot','Bodoni 72',Georgia,serif;
  --f-body:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --gutter:clamp(1.25rem,4.2vw,4.5rem);
  --nav-h:4.6rem;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto;overflow-x:clip}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--ink);color:var(--cream);font-family:var(--f-body);font-size:clamp(1rem,.95rem + .22vw,1.125rem);line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
body.is-loading{overflow:hidden}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,ul,ol,figure,blockquote,address,dl{margin:0}
ul,ol{padding:0;list-style:none}
address{font-style:normal}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:6px}
::selection{background:var(--magenta);color:#fff}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:1rem;top:-5rem;z-index:2000;background:var(--gold);color:var(--ink);padding:.8rem 1.2rem;border-radius:999px;font-weight:600;transition:top .3s var(--ease)}
.skip:focus{top:1rem}
.muted{opacity:.62}
.ico{width:1.15em;height:1.15em;flex:none}
.ico--flip{transform:scaleX(-1)}
.ico--lg{width:2.1rem;height:2.1rem}

/* ---------- typographie ---------- */
.h2{font-family:var(--f-display);font-weight:500;font-size:clamp(2.45rem,6.4vw,6.4rem);line-height:.98;letter-spacing:-.028em;text-wrap:balance}
.h2--xl{font-size:clamp(2.8rem,7.4vw,7.6rem)}
.h2 em,.lead em{font-style:italic;color:var(--gold-2);font-weight:500}
.lead{font-size:clamp(1.08rem,1rem + .5vw,1.4rem);line-height:1.55;max-width:34em;opacity:.92}
.fine{font-size:.82rem;opacity:.66;line-height:1.5}
.eyebrow{display:inline-flex;align-items:center;gap:.7rem;font-size:.76rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:1.4rem}
.eyebrow em{font-style:normal;opacity:.8}
.eyebrow--dark{color:var(--gold-deep)}
.eyebrow__dot{width:.72rem;height:.72rem;border-radius:50%;flex:none;background:conic-gradient(#7A4DE8,#E64A9A,#FF8A3D,#F2C14E,#2EC4B6,#7A4DE8);box-shadow:0 0 0 3px rgba(210,172,112,.18)}
.br-sm{display:none}
.link-u{display:inline-flex;align-items:center;gap:.6rem;font-weight:600;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;padding-bottom:.25rem;transition:background-size .5s var(--ease)}
.link-u:hover{background-size:0 1px;background-position:100% 100%}
.link-u .ico{transition:transform .4s var(--ease)}
.link-u:hover .ico{transform:translateX(5px)}

/* split text */
.w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .1em .14em 0;margin:0 -.1em -.14em 0}
.wi,.ch{display:inline-block;will-change:transform}
.js .eyebrow,.js .lead,.js [data-reveal]{will-change:transform,opacity}

/* états initiaux (animés par GSAP) — filet de sécurité .no-anim */
.js [data-reveal]{opacity:0;transform:translateY(36px)}
.js.no-anim [data-reveal],.js.no-anim .hero [data-hero-fade]{opacity:1!important;transform:none!important}
.js.no-anim .wi,.js.no-anim .ch{transform:none!important}
.js .hero [data-hero-fade]{opacity:0}

/* ---------- barre de progression + curseur ---------- */
.progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:900;pointer-events:none}
.progress span{display:block;height:100%;background:var(--rainbow);transform-origin:0 50%;transform:scaleX(0)}
.cursor{position:fixed;inset:0;pointer-events:none;z-index:1500;display:none}
.cursor__dot,.cursor__ring{position:absolute;left:0;top:0;border-radius:50%}
.cursor__dot{width:7px;height:7px;margin:-3.5px 0 0 -3.5px;background:var(--gold)}
.cursor__ring{width:42px;height:42px;margin:-21px 0 0 -21px;border:1px solid rgba(210,172,112,.7);transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background .35s,border-color .35s}
.cursor.is-hover .cursor__ring{width:74px;height:74px;margin:-37px 0 0 -37px;background:rgba(210,172,112,.14);border-color:var(--gold)}
@media (hover:hover) and (pointer:fine){.js .cursor{display:block}}

/* ---------- boutons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.7rem;padding:1.05rem 1.9rem;border-radius:999px;border:1px solid currentColor;font-weight:600;font-size:.98rem;letter-spacing:.01em;line-height:1;overflow:hidden;isolation:isolate;white-space:nowrap;transition:color .45s var(--ease),border-color .45s,box-shadow .45s}
.btn::before{content:'';position:absolute;inset:-1px;z-index:-1;background:var(--rainbow-soft);border-radius:50% 50% 0 0/100% 100% 0 0;transform:translateY(102%);transition:transform .65s var(--ease),border-radius .65s var(--ease)}
.btn:hover::before,.btn:focus-visible::before{transform:translateY(0);border-radius:0}
.btn:hover,.btn:focus-visible{color:var(--ink);border-color:transparent}
.btn .ico{transition:transform .45s var(--ease)}
.btn:hover .ico{transform:translateX(4px)}
.btn__label{position:relative;display:inline-block;will-change:transform}
.btn--primary{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.btn--ghost{color:var(--cream);border-color:rgba(247,239,229,.45)}
.btn--ghost-dark{color:var(--ink);border-color:rgba(18,14,24,.4)}
.btn--sm{padding:.78rem 1.3rem;font-size:.9rem}
.btn--lg{padding:1.3rem 2.3rem;font-size:1.05rem}
.btn.is-disabled{opacity:.45;pointer-events:none}
.round{display:grid;place-items:center;width:3.4rem;height:3.4rem;border-radius:50%;border:1px solid rgba(247,239,229,.4);transition:background .4s,color .4s,transform .4s var(--ease)}
.round:hover{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.round--sm{width:2.5rem;height:2.5rem;border-color:rgba(18,14,24,.3)}
.round--sm:hover{background:var(--ink);color:var(--gold);border-color:var(--ink)}

/* ---------- loader : les paupières ---------- */
.loader{position:fixed;inset:0;z-index:1000}
.loader__lid{position:absolute;left:0;right:0;height:51.5vh;background:var(--ink);will-change:transform}
.loader__lid--top{top:0}
.loader__lid--bottom{bottom:0}
.loader__lid::after{content:'';position:absolute;left:-6%;width:112%;height:22vh;background:var(--ink)}
.loader__lid--top::after{top:100%;border-radius:0 0 50% 50%/0 0 100% 100%}
.loader__lid--bottom::after{bottom:100%;border-radius:50% 50% 0 0/100% 100% 0 0}
.loader__center{position:absolute;inset:0;z-index:3;display:grid;place-content:center;justify-items:center;gap:.9rem;text-align:center}
.loader__eye{position:relative;width:min(74vw,380px);aspect-ratio:320/170;margin-bottom:.6rem}
.loader__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.loader__lidline{stroke-dasharray:1;stroke-dashoffset:1}
.loader__name{font-family:var(--f-display);font-style:italic;font-size:clamp(1.6rem,4.5vw,2.4rem);letter-spacing:.01em;color:var(--gold-2)}
.loader__count{font-family:var(--f-display);font-size:.95rem;letter-spacing:.3em;color:var(--cream);opacity:.7}
.loader__count small{font-size:.7em;margin-left:.15em}
.lashes{position:absolute;inset:0;pointer-events:none}
.lash{position:absolute;width:2px;border-radius:2px;background:currentColor;transform-origin:50% 100%;will-change:transform}
.loader .lashes{color:var(--gold)}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:800;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.05rem var(--gutter);transition:background .5s,backdrop-filter .5s}
.nav.is-solid{background:rgba(18,14,24,.74);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.nav__logo{display:inline-flex;align-items:center;gap:.65rem;font-family:var(--f-display);font-style:italic;font-size:1.45rem;color:var(--cream)}
.nav__eye{width:2.4rem;height:1.5rem;color:var(--gold)}
.nav__links{display:flex;gap:clamp(1.2rem,2.6vw,2.6rem)}
.nav__links a,.footer a:not(.btn){position:relative;font-size:.95rem;font-weight:500}
.nav__links a::after{content:'';position:absolute;left:0;right:0;bottom:-.3rem;height:1px;background:var(--rainbow);transform:scaleX(0);transform-origin:100% 50%;transition:transform .5s var(--ease)}
.nav__links a:hover::after{transform:scaleX(1);transform-origin:0 50%}
.nav__burger{display:none;position:relative;width:3rem;height:3rem;border-radius:50%;border:1px solid rgba(247,239,229,.4);z-index:900}
.nav__burger span{position:absolute;left:50%;width:1.2rem;height:1.5px;background:var(--cream);margin-left:-.6rem;transition:transform .5s var(--ease)}
.nav__burger span:nth-child(1){top:calc(50% - 4px)}
.nav__burger span:nth-child(2){top:calc(50% + 3px)}
.nav__burger[aria-expanded="true"] span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
.nav__burger[aria-expanded="true"] span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}

.menu{position:fixed;inset:0;z-index:850;background:var(--ink);display:flex;flex-direction:column;justify-content:space-between;padding:6.5rem var(--gutter) 2rem;visibility:hidden;clip-path:circle(0 at calc(100% - 3rem) 2.6rem)}
.menu__nav{display:grid;gap:.2rem}
.menu__nav a{display:flex;align-items:baseline;gap:1rem;font-family:var(--f-display);font-size:clamp(2.2rem,9vw,3.4rem);line-height:1.25;overflow:hidden}
.menu__nav a span{font-family:var(--f-body);font-size:.8rem;letter-spacing:.2em;color:var(--gold)}
.menu__nav a>*,.menu__nav a{will-change:transform}
.menu__foot{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--gold-2);font-weight:500}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;display:grid;align-items:end;overflow:hidden;isolation:isolate;background:var(--ink)}
.hero__media{position:absolute;inset:-7% 0;z-index:-4;will-change:transform}
.hero__video{width:100%;height:100%;object-fit:cover;filter:saturate(1.15) contrast(1.06);transform-origin:50% 50%}
.hero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,14,24,.84) 0%,rgba(18,14,24,.62) 38%,rgba(18,14,24,.18) 72%,transparent 100%),linear-gradient(180deg,rgba(18,14,24,.55) 0%,rgba(18,14,24,.22) 28%,rgba(18,14,24,.7) 80%,var(--ink) 100%)}
.hero__grain{position:absolute;inset:0;opacity:.18;mix-blend-mode:overlay;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='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero__arcs{position:absolute;left:0;right:0;bottom:-10%;margin-inline:auto;width:min(150vw,1800px);z-index:-3;pointer-events:none;opacity:.6;-webkit-mask-image:linear-gradient(90deg,transparent 18%,#000 62%);mask-image:linear-gradient(90deg,transparent 18%,#000 62%)}
.hero__front{position:absolute;inset:0;z-index:-1;pointer-events:none}
.petal{position:absolute;width:clamp(120px,16vw,260px);aspect-ratio:1/.22;border-radius:50%;filter:blur(.3px);opacity:.85;will-change:transform}
.petal--1{right:34%;top:15%;background:linear-gradient(90deg,transparent,#7A4DE8 60%,#E64A9A);transform:rotate(-24deg)}
.petal--2{right:6%;top:34%;background:linear-gradient(90deg,#FF8A3D,#F2C14E 60%,transparent);transform:rotate(18deg)}
.petal--3{right:16%;top:66%;width:clamp(80px,10vw,170px);background:linear-gradient(90deg,transparent,#2EC4B6,#7A4DE8);transform:rotate(-12deg)}
.petal--4{right:12%;top:12%;width:clamp(60px,8vw,130px);background:linear-gradient(90deg,transparent,#E64A9A,#FF8A3D);transform:rotate(30deg)}
.hero__content{position:relative;z-index:2;padding:calc(var(--nav-h) + 3rem) var(--gutter) clamp(5.2rem,13vh,9rem);max-width:1700px;width:100%}
.hero__eyebrow{display:block;line-height:1.9;color:var(--gold-2)}
.hero__eyebrow .eyebrow__dot{display:inline-block;margin-right:.7rem;vertical-align:-.1em}
.hero__title{font-family:var(--f-display);font-weight:600;font-optical-sizing:none;font-variation-settings:'opsz' 20;font-size:clamp(3.2rem,12vw,12.6rem);line-height:.92;letter-spacing:-.03em;margin-bottom:clamp(1.4rem,3vw,2.6rem);color:#FFF8EE;text-shadow:0 2px 3px rgba(18,14,24,.35),0 10px 50px rgba(18,14,24,.6)}
.hero__line{display:block;overflow:hidden;padding:.02em .08em .2em 0;margin-bottom:-.14em}
.hero__line--accent{display:block}
.hero__word{position:relative;display:inline-block}
.hero__em{font-style:italic;color:#F3D9A4;font-weight:600}
.hero__underline{position:absolute;left:0;bottom:-.1em;width:100%;height:.2em;max-width:none;overflow:visible;transform-origin:0 50%}
.hero__lead{max-width:36em;font-size:clamp(1.05rem,.98rem + .55vw,1.4rem);line-height:1.5;margin-bottom:2rem;color:#FFF8EE;text-shadow:0 1px 18px rgba(18,14,24,.7)}
.hero__cta{display:flex;flex-wrap:wrap;gap:.9rem}
.hero__badge{position:absolute;right:var(--gutter);top:calc(var(--nav-h) + 1.6rem);z-index:3;display:grid;justify-items:center;gap:.1rem;padding:1rem 1.3rem;border-radius:1.4rem;background:rgba(18,14,24,.5);border:1px solid rgba(210,172,112,.4);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:.78rem;letter-spacing:.04em}
.hero__badge strong{font-family:var(--f-display);font-size:2.3rem;line-height:1}
.hero__scroll{position:absolute;right:var(--gutter);bottom:2.2rem;z-index:3;display:flex;flex-direction:column;align-items:center;gap:.7rem;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;writing-mode:vertical-rl}
.hero__scroll-line{display:block;width:1px;height:3.4rem;background:linear-gradient(var(--gold),transparent);transform-origin:50% 0;animation:drip 2.2s var(--ease) infinite}
@keyframes drip{0%{transform:scaleY(0)}60%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.stars{display:inline-flex;gap:.15rem;color:var(--gold)}
.stars svg{width:.95rem;height:.95rem}
.stars--sm svg{width:.85rem;height:.85rem}

/* ---------- marquee ---------- */
.marquee{position:relative;background:var(--gold);color:var(--ink);padding:1.2rem 0 1.4rem;overflow:hidden;transform:rotate(-1.6deg);margin:-1.4rem -2vw 0;z-index:5;border-block:1px solid rgba(18,14,24,.2);box-shadow:0 20px 60px rgba(0,0,0,.35)}
.marquee__row{overflow:hidden;white-space:nowrap}
.marquee__track{display:inline-flex;will-change:transform}
.marquee__group{display:inline-flex;align-items:center;flex:none}
.marquee__group li{font-family:var(--f-display);font-size:clamp(2rem,5.2vw,4.6rem);font-weight:500;line-height:1.15;padding:0 clamp(1rem,2.4vw,2.4rem);letter-spacing:-.02em}
.marquee__group li.mq-sep{padding:0 .4rem;display:inline-grid;place-items:center}
.marquee__group li.mq-sep svg{width:clamp(2.4rem,4.4vw,4rem);height:clamp(1.5rem,2.8vw,2.5rem);color:var(--ink)}
.marquee__row--outline .marquee__group li{font-style:italic;color:transparent;-webkit-text-stroke:1.2px var(--ink)}
.marquee__row--outline .marquee__group li.mq-sep{-webkit-text-stroke:0;color:var(--ink)}

/* ---------- lash dividers ---------- */
.lashline{position:absolute;left:0;right:0;height:clamp(46px,6vw,84px);pointer-events:none;z-index:4}
.lashline--top{top:0;transform:translateY(-99%)}
.lashline{color:var(--cream)}
.lashline--light{color:var(--ink-2)}
.lashline--ink{color:#0b0810}

/* ---------- savoir-faire (épinglé) ---------- */
.story{position:relative;background:var(--ink);padding:clamp(7rem,14vh,10rem) 0 clamp(4rem,9vh,7rem);overflow:hidden}
.story__inner{padding:0 var(--gutter)}
.story__stage{display:none}
.story__text .h2{margin-bottom:2.4rem}
.story__steps{display:grid;gap:3.2rem}
.story__step h3{font-family:var(--f-display);font-weight:500;font-size:clamp(1.9rem,3.6vw,3rem);line-height:1.1;margin:.4rem 0 .8rem}
.story__step p{max-width:32em;opacity:.88}
.story__num{font-family:var(--f-display);font-style:italic;font-size:clamp(3.4rem,8vw,6.5rem);line-height:1;background:var(--rainbow);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;display:inline-block}
.story__thumb{width:100%;max-height:60vw;object-fit:cover;border-radius:50% 50% 1.2rem 1.2rem/22% 22% 1.2rem 1.2rem;aspect-ratio:4/5;margin-bottom:1.4rem}
.story__meter{display:none}

@media (min-width:901px){
  .story{height:100svh;min-height:640px;padding:0}
  .story__inner{height:100%;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2rem,5vw,6rem);align-items:center;padding:calc(var(--nav-h) + 1rem) var(--gutter) 2.4rem}
  .story__stage{display:block;position:relative;justify-self:center;width:min(100%,clamp(300px,31vw,460px));aspect-ratio:3/4;max-height:calc(100svh - 9rem)}
  .story__ring{position:absolute;inset:-6%;z-index:0;opacity:.9}
  .story__frame{position:absolute;inset:0;z-index:1;overflow:hidden;border-radius:50% 50% 1.6rem 1.6rem/38% 38% 1.6rem 1.6rem;background:var(--ink-3)}
  .story__frame img,.story__frame video{width:100%;height:100%;object-fit:cover;transform-origin:50% 50%}
  .story__text{position:relative}
  .story__text .h2{font-size:clamp(2.2rem,4.4vw,4.4rem);margin-bottom:clamp(1.2rem,3vh,2.4rem)}
  html:not(.no-anim):not(.reduced) .story__steps{display:grid;gap:0;min-height:15.5rem}
  html:not(.no-anim):not(.reduced) .story__step{grid-area:1/1;align-self:start}
  .story__thumb{display:none}
  /* sans animation (mouvement réduit / script bloqué) : lecture simple, empilée */
  html.reduced .story,html.no-anim .story,html.no-js .story{height:auto;padding:clamp(6rem,12vh,9rem) 0}
  html.reduced .story__inner,html.no-anim .story__inner,html.no-js .story__inner{display:block;height:auto;padding:0 var(--gutter)}
  html.reduced .story__stage,html.no-anim .story__stage,html.no-js .story__stage{display:none}
  html.reduced .story__thumb,html.no-anim .story__thumb,html.no-js .story__thumb{display:block;max-width:420px}
  html.reduced .story__steps,html.no-anim .story__steps,html.no-js .story__steps{display:grid;gap:3.2rem}
  html.reduced .story__meter,html.no-anim .story__meter,html.no-js .story__meter{display:none}
  html.reduced .services__pin{height:auto;min-height:0;overflow-x:auto;padding:2rem 0}
  .story__meter{display:flex;align-items:center;gap:1.2rem;margin-top:clamp(1.2rem,3vh,2.4rem)}
  .story__meter-fill{position:relative;flex:1;height:2px;background:rgba(247,239,229,.18);overflow:hidden}
  .story__meter-fill::after{content:'';position:absolute;inset:0;background:var(--rainbow);transform-origin:0 50%;transform:scaleX(var(--p,.0))}
  .story__meter-label{font-size:.9rem;letter-spacing:.2em;color:var(--gold-2)}
  .story__meter-label b{font-family:var(--f-display);font-size:1.4rem;letter-spacing:0}
}
@media (min-width:901px) and (max-height:760px){
  .story__text .h2{font-size:clamp(2rem,3.6vw,3.2rem)}
  .story__step p{font-size:.98rem;line-height:1.5}
}

/* ---------- prestations (défilement horizontal) ---------- */
.services{position:relative;background:var(--cream);color:var(--ink);padding:clamp(5rem,10vh,8rem) 0 3rem}
.services .lashline{color:var(--cream)}
.services__pin{position:relative}
.services__track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);padding:1rem var(--gutter) 2rem;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.services__track::-webkit-scrollbar{display:none}
.services__progress{display:none}
.s-intro{flex:0 0 min(86vw,420px);scroll-snap-align:start;padding-right:1rem;display:flex;flex-direction:column;justify-content:center}
.s-intro .h2{font-size:clamp(2.5rem,10vw,3.6rem);margin-bottom:1.2rem}
.s-intro .h2 em,.numbers .h2 em,.reviews .h2 em{color:var(--gold-deep)}
.s-intro__p{opacity:.78;max-width:26em}
.s-intro__hint{display:flex;align-items:center;gap:.7rem;margin-top:1.6rem;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--gold-deep)}
.s-card{position:relative;flex:0 0 min(80vw,380px);scroll-snap-align:center;display:flex;flex-direction:column;background:var(--ink);color:var(--cream);border-radius:1.8rem;overflow:hidden;box-shadow:0 30px 60px -30px rgba(18,14,24,.6);transform-style:preserve-3d;will-change:transform}
.s-card__img{position:relative;flex:1 1 56%;min-height:14rem;overflow:hidden}
.s-card__img img{position:absolute;left:-6%;top:0;width:112%;max-width:none;height:100%;object-fit:cover;will-change:transform}
.s-card__body{position:relative;padding:1.3rem 1.5rem 1.4rem;display:flex;flex-direction:column;gap:.45rem}
.s-card__n{position:absolute;right:1.4rem;top:1.1rem;font-family:var(--f-display);font-style:italic;font-size:1.1rem;color:var(--gold)}
.s-card__tag{align-self:flex-start;font-size:.68rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-2);border:1px solid rgba(210,172,112,.5);border-radius:999px;padding:.3rem .7rem}
.s-card h3{font-family:var(--f-display);font-weight:500;font-size:clamp(1.7rem,2.4vw,2.2rem);line-height:1.05}
.s-card p{font-size:.95rem;opacity:.82;line-height:1.5}
.s-card__foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.5rem;padding-top:.9rem;border-top:1px solid rgba(247,239,229,.14)}
.price{font-family:var(--f-display);font-style:italic;font-size:1.15rem;color:var(--gold-2)}
.s-card__go{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.92rem;color:var(--gold)}
.s-card__go .ico{transition:transform .4s var(--ease)}
.s-card__go:hover .ico{transform:translateX(5px)}
.glare{position:absolute;left:0;top:0;width:60%;aspect-ratio:1;margin:-30% 0 0 -30%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.34),transparent 62%);opacity:0;pointer-events:none;mix-blend-mode:soft-light;will-change:transform,opacity}
.s-outro{flex:0 0 min(80vw,360px);scroll-snap-align:center;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:1rem}
.s-outro__t{font-family:var(--f-display);font-size:clamp(1.9rem,3.2vw,2.8rem);line-height:1.05}
.s-outro p:not(.s-outro__t){opacity:.78}
.s-outro .btn--primary{background:var(--ink);color:var(--gold);border-color:var(--ink)}

@media (min-width:901px){
  .services{padding:0}
  .services__pin{height:100svh;min-height:640px;display:flex;align-items:center;overflow:hidden;padding-top:var(--nav-h)}
  .services__track{overflow:visible;scroll-snap-type:none;width:max-content;gap:clamp(1.4rem,2.4vw,2.6rem);padding:0 var(--gutter);align-items:center}
  html.no-anim .services__pin,html.no-js .services__pin{overflow-x:auto}
  .s-intro{flex:0 0 min(44vw,620px);padding-right:3vw}
  .s-intro .h2{font-size:clamp(3rem,5.6vw,6rem)}
  .s-card{flex:0 0 clamp(330px,26vw,430px);height:min(66vh,600px)}
  .s-outro{flex:0 0 clamp(300px,24vw,380px);height:auto;padding-right:6vw}
  .services__progress{display:block;position:absolute;left:var(--gutter);right:var(--gutter);bottom:2.2rem;height:2px;background:rgba(18,14,24,.14)}
  .services__progress span{display:block;height:100%;background:var(--rainbow);transform-origin:0 50%;transform:scaleX(0)}
}

/* ---------- cocon / Mélanie ---------- */
.about{position:relative;background:var(--ink-2);padding:clamp(6rem,13vh,10rem) var(--gutter) clamp(5rem,11vh,9rem);overflow:hidden}
.about .lashline{color:var(--ink-2)}
.about__grid{display:grid;gap:3rem;max-width:1400px;margin:0 auto;align-items:center}
.about__visual{position:relative;width:min(88%,460px);margin:0 auto;aspect-ratio:4/5}
.about__arch{position:absolute;inset:7%;overflow:hidden;border-radius:50% 50% 2rem 2rem/34% 34% 2rem 2rem;background:#E9CDB0}
.about__arch img{position:absolute;left:0;top:-6%;width:100%;height:112%;object-fit:cover;object-position:50% 20%}
.about__ring{position:absolute;inset:0;width:100%;height:100%;animation:spin 60s linear infinite}
.about__tag{position:absolute;z-index:2;padding:.7rem 1.1rem;border-radius:999px;background:var(--ink);border:1px solid rgba(210,172,112,.55);font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-2);box-shadow:0 14px 30px rgba(0,0,0,.4)}
.about__tag--a{left:-6%;top:16%;transform:rotate(-6deg)}
.about__tag--b{right:-4%;bottom:14%;transform:rotate(5deg)}
.about__text .h2{margin-bottom:1.6rem}
.about__text p{margin-bottom:1.2rem;max-width:34em}
.pull{margin:2rem 0 1.6rem;padding:1.4rem 0 1.4rem 1.6rem;border-left:3px solid;border-image:var(--rainbow) 1;font-family:var(--f-display);font-size:clamp(1.4rem,2.4vw,2.1rem);line-height:1.25;font-style:italic}
.pull cite{display:block;margin-top:.8rem;font-family:var(--f-body);font-style:normal;font-size:.85rem;letter-spacing:.1em;color:var(--gold)}
.ticks{display:flex;flex-wrap:wrap;gap:.6rem}
.ticks li{padding:.55rem 1rem;border-radius:999px;background:rgba(210,172,112,.12);border:1px solid rgba(210,172,112,.35);font-size:.9rem}
@keyframes spin{to{transform:rotate(360deg)}}
@media (min-width:901px){
  .about__grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(3rem,7vw,8rem)}
}

/* ---------- chiffres ---------- */
.numbers{position:relative;background:linear-gradient(135deg,#EAD2A1,#D2AC70 55%,#C39A5C);color:var(--ink);padding:clamp(5rem,11vh,8rem) var(--gutter);overflow:hidden}
.numbers::before{content:'';position:absolute;inset:0;background:repeating-radial-gradient(circle at 50% 120%,transparent 0 46px,rgba(18,14,24,.06) 46px 47px);pointer-events:none}
.numbers__head{position:relative;margin-bottom:clamp(2.4rem,6vw,5rem);max-width:1400px;margin-inline:auto}
.numbers__grid{position:relative;display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.6rem,3vw,3rem) clamp(1rem,2vw,2rem);max-width:1400px;margin:0 auto}
.stat{position:relative;padding-top:.6rem;border-top:1px solid rgba(18,14,24,.35)}
.stat__fan{position:relative;inset:auto;height:56px;width:7.5rem;margin-bottom:.4rem;color:rgba(18,14,24,.55)}
.stat__n{font-family:var(--f-display);font-weight:500;font-size:clamp(3.6rem,10.5vw,10.5rem);line-height:.95;letter-spacing:-.04em;font-variant-numeric:lining-nums tabular-nums}
.stat__n small{font-size:.28em;font-style:italic;letter-spacing:0;margin-left:.1em;opacity:.7}
.stat__l{font-size:.82rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;margin-top:.5rem}
@media (min-width:901px){.numbers__grid{grid-template-columns:repeat(4,1fr)}}

/* ---------- galerie ---------- */
.gallery{position:relative;background:var(--ink);padding:clamp(5rem,11vh,9rem) var(--gutter)}
.gallery__head{display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap;margin:0 auto clamp(2rem,5vw,4rem);max-width:1500px}
.gallery__grid{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-rows:46vw;gap:.7rem;max-width:1500px;margin:0 auto}
.g-item{position:relative;overflow:hidden;border-radius:1.2rem;background:var(--ink-3);transform-style:preserve-3d;will-change:transform}
.g-item--a{grid-column:1/-1;grid-row:span 2}
.g-open{position:absolute;inset:0;display:block;width:100%;height:100%;cursor:zoom-in;overflow:hidden}
.g-open img{position:absolute;left:0;top:-6%;width:100%;height:112%;object-fit:cover;will-change:transform}
.g-item--c .g-open img{left:-22%;top:-27%;width:150%;height:150%;max-width:none}
.g-item figcaption{position:absolute;left:0;right:0;bottom:0;z-index:4;padding:2.4rem 1.1rem .95rem;background:linear-gradient(transparent,rgba(18,14,24,.82));font-family:var(--f-display);font-size:1.15rem;line-height:1.15;transform:translateY(101%);transition:transform .6s var(--ease);pointer-events:none}
.g-item figcaption span{display:block;font-family:var(--f-body);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-2);margin-top:.2rem}
.g-item:hover figcaption,.g-item:focus-within figcaption{transform:translateY(0)}
.g-item .glare{z-index:3}
.curtain{position:absolute;inset:0;z-index:6;background:var(--ink);transform-origin:50% 0;pointer-events:none}
@media (min-width:901px){
  .gallery__grid{grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(110px,13.4vw,200px);gap:clamp(.6rem,1.1vw,1.1rem)}
  .g-item--a{grid-column:1/6;grid-row:1/4}
  .g-item--b{grid-column:6/9;grid-row:1/3}
  .g-item--c{grid-column:9/13;grid-row:1/3}
  .g-item--d{grid-column:6/9;grid-row:3/6}
  .g-item--e{grid-column:9/11;grid-row:3/6}
  .g-item--f{grid-column:11/13;grid-row:3/6}
  .g-item--g{grid-column:1/4;grid-row:4/6}
  .g-item--h{grid-column:4/6;grid-row:4/6}
}

/* ---------- labo couleur ---------- */
.colorlab{position:relative;padding:clamp(5rem,11vh,9rem) var(--gutter);background:radial-gradient(80% 90% at 85% 40%,#2c1d45 0%,var(--ink-2) 55%,var(--ink) 100%);overflow:hidden}
.colorlab__grid{display:grid;gap:3rem;max-width:1400px;margin:0 auto;align-items:center}
.colorlab__text .h2{margin-bottom:1.4rem}
.swatches{display:flex;flex-wrap:wrap;gap:.9rem;margin:2rem 0 1rem}
.swatch{position:relative;width:3.4rem;height:3.4rem;border-radius:50%;background:var(--c);border:2px solid rgba(247,239,229,.25);box-shadow:inset 0 -8px 14px rgba(0,0,0,.25),0 10px 24px -10px var(--glow,var(--c));transition:transform .5s var(--ease),border-color .3s}
.swatch:hover{transform:translateY(-4px) scale(1.08)}
.swatch.is-on{border-color:var(--cream);transform:scale(1.14)}
.swatch.is-on::after{content:'';position:absolute;inset:-7px;border-radius:50%;border:1px solid var(--gold)}
.colorlab__name{margin-bottom:.6rem}
.colorlab__name b{font-family:var(--f-display);font-style:italic;font-weight:500;font-size:1.4rem;color:var(--gold-2)}
.colorlab__stage{position:relative;aspect-ratio:1;width:100%;max-width:560px;margin:0 auto;border-radius:2.4rem 2.4rem 2.4rem 8rem;background:var(--ink-3);box-shadow:0 0 0 1px rgba(210,172,112,.35),0 50px 90px -40px rgba(0,0,0,.8);overflow:hidden;isolation:isolate}
.colorlab__stage img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;will-change:transform,clip-path}
.colorlab__stage img:first-of-type{z-index:1}
.colorlab__cap{position:absolute;left:1.2rem;bottom:1.2rem;z-index:50;padding:.65rem 1.2rem;border-radius:999px;background:rgba(18,14,24,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(210,172,112,.45);font-family:var(--f-display);font-style:italic;font-size:1.15rem;color:var(--gold-2)}
@media (min-width:901px){.colorlab__grid{grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:6vw}}

/* ---------- avis ---------- */
.reviews{position:relative;background:var(--cream);color:var(--ink);padding:clamp(5rem,11vh,9rem) 0;overflow:hidden}
.reviews__head{padding:0 var(--gutter);margin:0 auto clamp(2rem,5vw,4rem);max-width:1500px}
.reviews__head .h2{margin-bottom:1.4rem}
.reviews__score{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;font-size:1.05rem}
.reviews__score .stars{color:var(--gold-deep)}
.carousel{position:relative;max-width:1700px;margin:0 auto}
.carousel__viewport{overflow:hidden;padding:1rem var(--gutter) 2rem;cursor:grab;touch-action:pan-y}
.carousel__viewport.is-drag{cursor:grabbing}
.carousel__track{display:flex;gap:clamp(.9rem,2vw,1.8rem);will-change:transform}
.r-card{position:relative;flex:0 0 min(86vw,540px);display:flex;flex-direction:column;justify-content:space-between;gap:1.6rem;padding:clamp(1.6rem,3vw,2.6rem);background:var(--ink);color:var(--cream);border-radius:1.8rem;box-shadow:0 30px 60px -34px rgba(18,14,24,.7);user-select:none;-webkit-user-select:none}
.r-card::before{content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--rainbow);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.6;pointer-events:none}
.r-card__q{width:2.6rem;color:var(--gold)}
.r-card__t{font-family:var(--f-display);font-size:clamp(1.12rem,1.5vw,1.4rem);line-height:1.5;font-weight:400}
.r-card__t--big{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.1;font-style:italic;color:var(--gold-2)}
.r-card footer{display:grid;grid-template-columns:auto 1fr;gap:.2rem .9rem;align-items:center}
.r-card footer .stars{grid-column:1/-1}
.r-card footer b{font-weight:600}
.r-card footer span:last-child{font-size:.8rem;opacity:.6;justify-self:end}
.r-card--cta{background:linear-gradient(150deg,var(--ink-3),var(--ink));align-items:flex-start;justify-content:center}
.r-card--cta .btn{margin-top:.4rem}
.carousel__ui{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:0 var(--gutter)}
.carousel__bar{flex:1;height:2px;background:rgba(18,14,24,.15);overflow:hidden}
.carousel__bar span{display:block;height:100%;background:var(--rainbow);transform-origin:0 50%;transform:scaleX(.2)}
.carousel__btns{display:flex;gap:.7rem}
.reviews .round{border-color:rgba(18,14,24,.35)}
.reviews .round:hover{background:var(--ink);color:var(--gold)}

/* ---------- réserver ---------- */
.book{position:relative;background:var(--ink);padding:clamp(5rem,11vh,9rem) var(--gutter);overflow:hidden;isolation:isolate}
.book__bg{position:absolute;inset:0;z-index:-1;opacity:.28}
.book__bg::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 20%,rgba(18,14,24,.55) 70%,var(--ink));}
.book__bg img{width:100%;height:100%;object-fit:cover;filter:saturate(1.2)}
.book__grid{display:grid;gap:3rem;max-width:1500px;margin:0 auto;align-items:start}
.book__intro .h2{margin-bottom:1.6rem}
.book__tel{margin:.6rem 0 2rem;font-family:var(--f-display);font-size:clamp(1.8rem,3.4vw,3rem);line-height:1}
.book__tel a{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .5s var(--ease);padding-bottom:.2rem}
.book__tel a:hover{background-size:100% 1px}
.callring{position:relative;display:grid;place-items:center;width:9.5rem;height:9.5rem;margin:2.2rem 0 1rem;border-radius:50%}
.callring__text{position:absolute;inset:0;width:100%;height:100%;animation:spin 16s linear infinite;color:var(--gold-2)}
.callring__text text{fill:currentColor;font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-family:var(--f-body)}
.callring__core{display:grid;place-items:center;width:4.4rem;height:4.4rem;border-radius:50%;background:var(--gold);color:var(--ink);transition:transform .5s var(--ease),background .4s}
.callring__core .ico{width:1.5rem;height:1.5rem}
.callring:hover .callring__core{background:var(--cream);transform:scale(1.12)}
.how{display:grid;gap:.9rem;margin-top:.4rem}
.how li{display:flex;gap:1rem;align-items:center;opacity:.92}
.how b{flex:none;display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--rainbow);color:var(--ink);font-family:var(--f-display);font-size:1rem}

.form{background:var(--cream);color:var(--ink);border-radius:2rem;padding:clamp(1.4rem,3vw,2.6rem);box-shadow:0 50px 90px -40px rgba(0,0,0,.7)}
.form__step{border:0;padding:0;margin:0 0 1.9rem;min-width:0}
.form__step legend{display:flex;align-items:center;gap:.8rem;font-family:var(--f-display);font-size:1.5rem;line-height:1.1;margin-bottom:1rem;padding:0}
.form__n{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--ink);color:var(--gold);font-family:var(--f-body);font-size:.85rem;font-weight:700}
.form__sub{font-weight:600;font-size:.9rem;margin:1.1rem 0 .6rem}
.chips{display:flex;flex-wrap:wrap;gap:.55rem}
.chip{position:relative}
.chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.chip span{display:inline-block;padding:.7rem 1.1rem;border-radius:999px;border:1px solid rgba(18,14,24,.3);font-weight:500;font-size:.94rem;transition:background .35s var(--ease),color .35s,border-color .35s,transform .35s var(--ease)}
.chip:hover span{border-color:var(--ink);transform:translateY(-2px)}
.chip input:checked+span{background:var(--ink);color:var(--gold-2);border-color:var(--ink)}
.chip input:focus-visible+span{outline:2px solid var(--magenta);outline-offset:3px}
.chips--sm .chip span{padding:.55rem .95rem;font-size:.88rem}
.cal{background:#fff;border-radius:1.2rem;padding:1rem;border:1px solid rgba(18,14,24,.1);max-width:27rem}
.cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}
.cal__month{font-family:var(--f-display);font-size:1.25rem;text-transform:capitalize}
.cal__dow,.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.2rem;text-align:center}
.cal__dow span{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;opacity:.55;padding:.3rem 0}
.day{position:relative;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;font-weight:500;font-size:.95rem;transition:background .3s,color .3s,transform .3s var(--ease)}
.day:not(:disabled):hover{background:var(--cream-2);transform:scale(1.08)}
.day:disabled{opacity:.28;cursor:not-allowed;text-decoration:line-through}
.day.is-today{box-shadow:inset 0 0 0 1px var(--gold-deep)}
.day[aria-pressed="true"]{background:var(--ink);color:var(--gold-2);transform:scale(1.05)}
.day--empty{visibility:hidden}
.fields{display:grid;gap:.8rem;margin-bottom:1rem}
.field{display:grid;gap:.35rem;font-size:.82rem;font-weight:600;letter-spacing:.04em}
.field input,.field textarea{width:100%;font:inherit;font-weight:400;font-size:1rem;letter-spacing:0;color:var(--ink);background:#fff;border:1px solid rgba(18,14,24,.22);border-radius:.9rem;padding:.85rem 1rem;transition:border-color .3s,box-shadow .3s}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(230,74,154,.25)}
.field--area{margin-top:1rem}
.field textarea{resize:vertical;min-height:4.2rem}
.sms{margin:1.2rem 0 1.4rem}
.sms__label{font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;opacity:.6;margin-bottom:.5rem}
.sms__bubble{position:relative;background:linear-gradient(160deg,#2f7df6,#1d5fd1);color:#fff;border-radius:1.4rem 1.4rem .4rem 1.4rem;padding:1rem 1.2rem;font-size:.97rem;line-height:1.5;margin-left:12%;box-shadow:0 14px 30px -16px rgba(29,95,209,.8)}
.form__actions{display:flex;flex-wrap:wrap;gap:.8rem}
.form .btn--primary{background:var(--ink);color:var(--gold-2);border-color:var(--ink)}
.form__more{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin-top:1rem}
.link-btn{font-size:.9rem;font-weight:600;text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:1px}
.link-btn:hover{color:var(--magenta)}
.form__status{min-height:1.4rem;margin-top:.8rem;font-size:.9rem;font-weight:600;color:#0a7a3e}
.form__status.is-warn{color:#b3261e}
.form__note{margin-top:.4rem}
@media (min-width:641px){.fields{grid-template-columns:1fr 1fr}}
@media (min-width:1001px){.book__grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(3rem,6vw,7rem)}.book__intro{position:sticky;top:calc(var(--nav-h) + 1rem)}}

/* ---------- faq ---------- */
.faq{background:var(--ink-2);padding:clamp(5rem,11vh,9rem) var(--gutter)}
.faq__grid{display:grid;gap:3rem;max-width:1400px;margin:0 auto}
.faq details{border-top:1px solid rgba(247,239,229,.2)}
.faq details:last-child{border-bottom:1px solid rgba(247,239,229,.2)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem 0;cursor:pointer;list-style:none;font-family:var(--f-display);font-size:clamp(1.3rem,2.2vw,1.9rem);line-height:1.2}
.faq summary::-webkit-details-marker{display:none}
.plus{position:relative;flex:none;width:1.4rem;height:1.4rem}
.plus::before,.plus::after{content:'';position:absolute;left:0;top:50%;width:100%;height:1.5px;margin-top:-.75px;background:var(--gold);transition:transform .5s var(--ease)}
.plus::after{transform:rotate(90deg)}
details[open] .plus::after{transform:rotate(0)}
.faq__a{max-width:36em;opacity:.85;overflow:hidden}
.faq__a p{padding-bottom:1.6rem}
.about .curtain{background:var(--ink-2)}
.find .curtain{background:var(--ink-3)}
@media (min-width:901px){.faq__grid{grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:6vw}.faq__grid>div:first-child{position:sticky;top:calc(var(--nav-h) + 1rem);align-self:start}}

/* ---------- nous trouver ---------- */
.find{background:var(--ink);padding:clamp(5rem,11vh,9rem) var(--gutter)}
.find__grid{display:grid;gap:3rem;max-width:1500px;margin:0 auto}
.find__info .h2{margin-bottom:2rem}
.find__addr{display:flex;gap:1rem;align-items:flex-start;font-size:1.15rem;margin-bottom:1.4rem}
.find__addr .ico{color:var(--gold)}
.find__status{display:inline-flex;align-items:center;gap:.7rem;padding:.55rem 1rem;border-radius:999px;border:1px solid rgba(247,239,229,.25);font-size:.9rem;font-weight:600;margin-bottom:1.4rem}
.find__status .dot{width:.6rem;height:.6rem;border-radius:50%;background:#7c7c7c}
.find__status.is-open .dot{background:#3ddc84;box-shadow:0 0 0 4px rgba(61,220,132,.2)}
.find__status.is-closed .dot{background:#ff6b6b}
.hours{width:100%;max-width:26rem;border-collapse:collapse;margin-bottom:.8rem}
.hours th,.hours td{padding:.7rem 0;border-bottom:1px solid rgba(247,239,229,.14);text-align:left;font-weight:400}
.hours td{text-align:right;font-variant-numeric:tabular-nums}
.hours tr.is-closed{opacity:.5}
.hours tr.is-today{color:var(--gold-2);font-weight:700}
.hours tr.is-today th,.hours tr.is-today td{font-weight:700;border-bottom-color:var(--gold)}
.find__btns{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem}
.find__map{position:relative;border-radius:2rem;overflow:hidden;min-height:22rem;background:var(--ink-3)}
.find__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.3) contrast(1.05) saturate(.9)}
.find__mapbtn{position:absolute;left:1rem;bottom:1rem;z-index:2;display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 1.3rem;border-radius:999px;background:var(--ink);color:var(--gold-2);font-weight:600;font-size:.92rem;box-shadow:0 14px 30px rgba(0,0,0,.4)}
@media (min-width:901px){.find__grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(3rem,6vw,7rem);align-items:stretch}.find__map{min-height:36rem}}

/* ---------- footer ---------- */
.footer{position:relative;background:#0b0810;padding:clamp(4rem,9vh,7rem) var(--gutter) 1.6rem;overflow:hidden}
.footer .lashline{color:#0b0810}
.footer__top{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;max-width:1500px;margin:0 auto}
.footer h3{font-size:.74rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:.8rem}
.footer p{line-height:1.8}
.footer a:not(.btn):hover{color:var(--gold-2)}
.footer__giant{font-family:var(--f-display);font-style:italic;font-weight:500;text-align:center;white-space:nowrap;font-size:clamp(3.2rem,15.6vw,17rem);line-height:.9;letter-spacing:-.045em;margin:clamp(2.4rem,7vw,6rem) 0 1.4rem;overflow:hidden;padding:.02em .06em .16em;color:transparent;-webkit-text-stroke:1.4px var(--gold);transition:color .6s var(--ease)}
.footer__giant:hover{color:var(--gold)}
.footer__bottom{display:flex;justify-content:space-between;gap:.6rem 2rem;flex-wrap:wrap;font-size:.82rem;max-width:1500px;margin:0 auto;padding-top:1.2rem;border-top:1px solid rgba(247,239,229,.14)}
@media (min-width:901px){.footer__top{grid-template-columns:repeat(4,1fr)}}

/* ---------- FAB mobile ---------- */
.fab{position:fixed;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:700;display:none;align-items:center;gap:.6rem;padding:.95rem 1.4rem;border-radius:999px;background:var(--gold);color:var(--ink);font-weight:700;box-shadow:0 16px 34px -10px rgba(0,0,0,.7),0 0 0 6px rgba(210,172,112,.2)}
.fab .ico{width:1.2rem;height:1.2rem}

/* ---------- lightbox ---------- */
.lightbox{border:0;padding:0;background:transparent;max-width:min(92vw,980px);max-height:92vh;color:var(--cream);overflow:visible}
.lightbox::backdrop{background:rgba(11,8,16,.86);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.lightbox img{max-height:80vh;width:auto;max-width:100%;margin:0 auto;border-radius:1.2rem;box-shadow:0 40px 90px rgba(0,0,0,.6)}
.lightbox__cap{text-align:center;margin-top:1rem;font-family:var(--f-display);font-style:italic;font-size:1.2rem}
.lightbox__close{position:absolute;right:-.4rem;top:-3.2rem;width:2.8rem;height:2.8rem;border-radius:50%;border:1px solid rgba(247,239,229,.5);font-size:1.6rem;line-height:1}
.lightbox__close:hover{background:var(--gold);color:var(--ink)}

/* ---------- mobile ---------- */
@media (max-width:900px){
  .nav__links,.nav__cta{display:none}
  .nav__burger{display:block}
  .fab{display:inline-flex}
  .hero__badge{top:auto;bottom:4.6rem;right:auto;left:var(--gutter);grid-auto-flow:column;align-items:center;gap:.7rem;padding:.6rem 1rem;border-radius:999px}
  .hero__badge strong{font-size:1.4rem}
  .hero__scroll{display:none}
  .hero__content{padding-bottom:10.6rem}
  .hero__title{font-size:clamp(3.1rem,14.2vw,6rem)}
  .br-sm{display:inline}
  .petal--3,.petal--4{display:none}
  .marquee{margin:-.8rem -4vw 0;transform:rotate(-2deg)}
  .about__tag--a{left:-2%}
  .about__tag--b{right:-2%}
  .g-item figcaption{transform:translateY(0);font-size:1rem;padding-top:1.6rem}
  .footer__bottom{flex-direction:column}
}
@media (max-width:420px){
  .hero__cta .btn{width:100%}
  .btn{padding:1rem 1.4rem}
}

/* ---------- accessibilité : mouvement réduit ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .hero__scroll-line,.callring__text,.about__ring{animation:none!important}
  .js [data-reveal],.js .hero [data-hero-fade]{opacity:1!important;transform:none!important}
  .loader{display:none}
}
.reduced .loader{display:none}
