/* ==========================================================================
   MAISON ELLA — Aix-en-Provence
   Direction artistique : "maison de pierre blanche et d'ocre d'Aix".
   Fil rouge : l'ARCHE (fenêtre provençale) + le GALET + l'étincelle dorée.
   Palette
     --cream  fond principal        --sand   fond doux (onglerie)
     --ink    sections sombres      --cocoa  texte secondaire
     --wine   accent (ongles)       --gold   or du logo / accents
     --ochre  façades d'Aix         --gold-l or clair (texte sur fond sombre)
   Typo : Cormorant Garamond (titres) + Jost (texte), auto-hébergées.
   ========================================================================== */

@font-face{font-family:"Cormorant Garamond";src:url(../fonts/cormorant-garamond-normal-latin.woff2) format("woff2");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(../fonts/cormorant-garamond-italic-latin.woff2) format("woff2");font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:"Jost";src:url(../fonts/jost-normal-latin.woff2) format("woff2");font-weight:300 600;font-style:normal;font-display:swap}

:root{
  --cream:#F5EDE2;
  --stone:#FBF7F0;
  --sand:#EBDCCB;
  --ink:#241613;
  --ink-2:#150B09;
  --ink-3:#33201A;
  --cocoa:#4A2E25;
  --wine:#6B1D2E;
  --wine-d:#4A1220;
  --gold:#B5873F;
  --gold-l:#DDB873;
  --ochre:#D39B3E;

  --f-display:"Cormorant Garamond","Times New Roman",serif;
  --f-body:"Jost",system-ui,-apple-system,"Segoe UI",sans-serif;

  --gutter:clamp(1.25rem,5vw,5rem);
  --maxw:1440px;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.76,0,.24,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
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(--cream);color:var(--ink);
  font-family:var(--f-body);font-size:1.0625rem;line-height:1.65;font-weight:400;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:clip;
}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
h1,h2,h3,p,figure,blockquote,dl,dd,address{margin:0}
address{font-style:normal}
ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
::selection{background:var(--gold-l);color:var(--ink)}

.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:1rem;top:-4rem;z-index:20000;background:var(--gold-l);color:var(--ink);padding:.7rem 1.1rem;border-radius:999px;transition:top .3s}
.skip:focus{top:1rem}

/* grain léger, statique */
body::after{
  content:"";position:fixed;inset:0;z-index:9000;pointer-events:none;opacity:.07;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .5  0 0 0 0 .4  0 0 0 0 .3  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}

.ico{width:1.15em;height:1.15em;flex:none;fill:none;stroke:currentColor}
.flip{transform:scaleX(-1)}

/* ---------- Typo ---------- */
.display{
  font-family:var(--f-display);font-weight:400;line-height:.92;letter-spacing:-.02em;
  font-size:clamp(2.7rem,7.2vw,7rem);
}
.display em{font-style:italic;color:var(--gold)}
.eyebrow{
  display:inline-flex;align-items:center;gap:.7rem;
  font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;font-weight:500;color:var(--wine);
  margin-bottom:1.4rem;
}
.eyebrow__dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(181,135,63,.22)}
.eyebrow--light{color:var(--gold-l)}
.eyebrow--light .eyebrow__dot{background:var(--gold-l);box-shadow:0 0 0 4px rgba(221,184,115,.2)}
.eyebrow--gold{color:var(--gold)}

/* mots masqués qui montent (split) */
.word{display:inline-block;overflow:hidden;vertical-align:top;padding:.08em .04em .16em;margin:-.08em -.04em -.16em}
.word__in{display:inline-block;will-change:transform}
.char{display:inline-block;will-change:transform}

/* soulignement animé */
.ulink{position:relative;display:inline-block;padding-bottom:.15em}
.ulink::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:right;transition:transform .6s var(--ease-out);
}
.ulink:hover::after,.ulink:focus-visible::after{transform:scaleX(1);transform-origin:left}

/* ---------- Boutons ---------- */
.btn{
  --bg:var(--gold-l);--fg:var(--ink);--fill:var(--cream);--fg-h:var(--ink);--bd:transparent;
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  padding:1.05rem 1.9rem;border-radius:999px;border:1px solid var(--bd);
  background:var(--bg);color:var(--fg);isolation:isolate;overflow:hidden;
  font-size:.95rem;font-weight:500;letter-spacing:.04em;white-space:nowrap;
  transition:color .45s var(--ease-out);will-change:transform;
}
.btn__fill{
  position:absolute;left:-10%;right:-10%;top:0;height:220%;border-radius:50%;
  background:var(--fill);z-index:-1;transform:translateY(100%);
  transition:transform .75s var(--ease-out);
}
.btn__label{position:relative;display:inline-flex;align-items:center;gap:.6rem}
.btn:hover,.btn:focus-visible{color:var(--fg-h)}
.btn:hover .btn__fill,.btn:focus-visible .btn__fill{transform:translateY(-12%)}
.btn--small{padding:.7rem 1.3rem;font-size:.88rem}
.btn--big{padding:1.3rem 2.4rem;font-size:1.05rem}
.btn--ghost{--bg:rgba(245,237,226,.06);--fg:var(--cream);--fill:var(--cream);--fg-h:var(--ink);--bd:rgba(245,237,226,.45);backdrop-filter:blur(6px)}
.btn--ghost-dark{--bg:transparent;--fg:var(--ink);--fill:var(--ink);--fg-h:var(--cream);--bd:rgba(36,22,19,.35)}

/* ---------- Loader ---------- */
.loader{
  position:fixed;inset:0;z-index:10000;display:grid;place-items:center;
  background:var(--ink);color:var(--gold-l);
}
.loader__inner{display:grid;justify-items:center;gap:1.25rem}
.loader__arch{
  position:relative;width:220px;height:320px;border-radius:110px 110px 0 0;overflow:hidden;
  background:var(--ink-2);will-change:transform;
}
.loader__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;transform:scale(1.3)}
.loader__fill{position:absolute;inset:0;background:var(--ink);transform-origin:top center}
.loader__stroke{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.loader__stroke path{vector-effect:non-scaling-stroke}
.loader__pebbles{position:absolute;left:0;right:0;bottom:16px;display:flex;flex-direction:column-reverse;align-items:center;gap:3px}
.loader__pebbles span{display:block;border-radius:50% 50% 46% 54%/60% 58% 42% 40%;background:linear-gradient(145deg,#fff,#e6dccf 60%,#c9bba9)}
.loader__pebbles span:nth-child(1){width:74px;height:26px}
.loader__pebbles span:nth-child(2){width:54px;height:22px}
.loader__pebbles span:nth-child(3){width:36px;height:18px}
.loader__brand{
  display:flex;gap:.45em;overflow:hidden;padding:.1em .2em .18em;
  font-family:var(--f-display);font-size:clamp(2rem,4vw,2.8rem);line-height:1;letter-spacing:.01em;color:var(--cream);
}
.loader__brand em{color:var(--gold-l)}
.loader__word{display:inline-block}
.loader__count{font-size:.8rem;letter-spacing:.3em;color:var(--gold-l);font-variant-numeric:tabular-nums}
.loader__count small{margin-left:.2em;opacity:.7}

/* ---------- Nav ---------- */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:800;
  display:flex;align-items:center;justify-content:space-between;gap:2rem;
  padding:1.1rem var(--gutter);color:var(--cream);
  transition:transform .7s var(--ease-out),background-color .5s,padding .5s var(--ease-out),color .5s;
}
.nav.is-solid{background:rgba(36,22,19,.82);backdrop-filter:blur(14px) saturate(1.2);padding-block:.75rem}
.nav.is-hidden{transform:translateY(-110%)}
.nav__logo{display:flex;align-items:center;gap:.7rem;color:var(--gold-l)}
.nav__mark{width:1.55rem;height:1.9rem}
.nav__name{font-family:var(--f-display);font-size:1.55rem;line-height:1;color:var(--cream);letter-spacing:.01em}
.nav__name em{color:var(--gold-l)}
.nav__links{display:flex;gap:clamp(1.2rem,2.6vw,2.6rem);font-size:.92rem;letter-spacing:.05em}
.nav__actions{display:flex;align-items:center;gap:1rem}
.nav__progress{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--gold-l);transform:scaleX(0);transform-origin:left}
.burger{display:none;position:relative;width:2.8rem;height:2.8rem;border-radius:50%;border:1px solid rgba(245,237,226,.35)}
.burger span{position:absolute;left:50%;top:50%;width:1.1rem;height:1.5px;background:currentColor;transform:translate(-50%,-4px);transition:transform .5s var(--ease-out)}
.burger span:last-child{transform:translate(-50%,4px)}
.burger[aria-expanded="true"] span:first-child{transform:translate(-50%,0) rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{transform:translate(-50%,0) rotate(-45deg)}

.menu{position:fixed;inset:0;z-index:790;visibility:hidden;color:var(--cream)}
.menu__bg{position:absolute;inset:0;background:var(--ink);transform:scaleY(0);transform-origin:top}
.menu__nav{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;gap:.2rem;padding:6rem var(--gutter) 8rem}
.menu__nav a{
  display:flex;align-items:baseline;gap:1rem;overflow:hidden;
  font-family:var(--f-display);font-size:clamp(2.6rem,11vw,5rem);line-height:1.08;
}
.menu__nav a>*{display:inline-block}
.menu__n{font-family:var(--f-body);font-size:.8rem;letter-spacing:.2em;color:var(--gold-l)}
.menu__foot{position:absolute;left:var(--gutter);right:var(--gutter);bottom:2rem;display:flex;justify-content:space-between;gap:1rem;font-size:.95rem;color:var(--gold-l)}

/* ---------- Hero ---------- */
.hero{
  position:relative;height:100vh;height:100svh;min-height:640px;overflow:hidden;
  background:var(--ink);color:var(--cream);isolation:isolate;
}
.hero__media{position:absolute;left:0;right:0;top:-20%;height:140%;will-change:transform}
.hero__video{width:100%;height:100%;object-fit:cover;transform-origin:center;will-change:transform}
.hero__veil{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(36,22,19,.62) 0%,rgba(36,22,19,.32) 48%,rgba(36,22,19,0) 78%),
    radial-gradient(120% 80% at 20% 85%,rgba(36,22,19,.78),rgba(36,22,19,0) 62%),
    linear-gradient(180deg,rgba(36,22,19,.55) 0%,rgba(36,22,19,.22) 38%,rgba(36,22,19,.66) 100%);
}
.hero .eyebrow{text-shadow:0 1px 14px rgba(36,22,19,.7)}
.hero__arch{
  position:absolute;right:7vw;bottom:-2svh;height:94svh;aspect-ratio:400/560;width:auto;
  color:var(--gold-l);opacity:.9;pointer-events:none;will-change:transform;
}
.hero__pebbles{
  position:absolute;right:7vw;bottom:9svh;width:calc(94svh*400/560);
  display:flex;flex-direction:column-reverse;align-items:center;gap:6px;pointer-events:none;will-change:transform;
}
.pebble{
  display:block;border-radius:50% 50% 46% 54%/60% 58% 42% 40%;
  background:linear-gradient(145deg,#fff 0%,#eadfd2 55%,#c9bba9 100%);
  box-shadow:inset -8px -10px 18px rgba(0,0,0,.14),0 22px 34px rgba(0,0,0,.35);
}
.pebble--1{width:clamp(130px,17svh,210px);height:clamp(46px,6.2svh,76px)}
.pebble--2{width:clamp(96px,12.5svh,156px);height:clamp(38px,5svh,62px)}
.pebble--3{width:clamp(64px,8.4svh,104px);height:clamp(30px,4svh,48px)}

.hero__content{
  position:absolute;left:var(--gutter);bottom:clamp(5.5rem,13svh,9rem);z-index:2;max-width:min(62rem,86vw);
  will-change:transform;
}
.hero__title{
  font-family:var(--f-display);font-weight:300;letter-spacing:-.035em;line-height:.8;
  font-size:clamp(4.6rem,15.5vw,15rem);margin:.2rem 0 1.6rem;
}
.hero__line{display:block;overflow:hidden;padding:.06em .08em .14em;margin:-.06em -.08em -.14em}
.hero__line--ella{margin-left:.55em;font-style:italic;font-weight:400;color:var(--gold-l)}
.hero__lead{max-width:34rem;font-size:clamp(1rem,1.25vw,1.2rem);color:rgba(245,237,226,.92);margin-bottom:2rem}
.hero__cta{display:flex;flex-wrap:wrap;gap:.9rem}

.hero__rating{
  position:absolute;right:calc(7vw + 1rem);bottom:calc(9svh + 19svh);z-index:3;
  display:grid;justify-items:center;gap:.15rem;padding:1.1rem 1.5rem;border-radius:1.6rem;
  background:rgba(245,237,226,.12);border:1px solid rgba(245,237,226,.28);backdrop-filter:blur(10px);
  transition:transform .6s var(--ease-out);
}
.hero__rating:hover{transform:translateY(-4px) rotate(-1.5deg)}
.hero__rating-score{font-family:var(--f-display);font-size:2.6rem;line-height:1}
.hero__rating-sub{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;opacity:.85}
.stars{display:inline-flex;gap:.12rem}
.stars svg{width:1rem;height:1rem;fill:var(--gold-l)}

.hero__toggle{
  position:absolute;left:var(--gutter);bottom:1.6rem;z-index:3;width:2.6rem;height:2.6rem;border-radius:50%;
  display:grid;place-items:center;border:1px solid rgba(245,237,226,.4);background:rgba(36,22,19,.35);backdrop-filter:blur(6px);
}
.hero__toggle .ico{width:1rem;height:1rem}
.hero__scroll{
  position:absolute;left:50%;bottom:1.4rem;z-index:3;translate:-50% 0;
  display:flex;flex-direction:column;align-items:center;gap:.5rem;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(245,237,226,.8);
}
.hero__scroll i{display:block;width:1px;height:2.6rem;background:linear-gradient(var(--gold-l),transparent);transform-origin:top;animation:scrollcue 2.2s var(--ease-io) infinite}
@keyframes scrollcue{0%{transform:scaleY(0)}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- Marquee ---------- */
.marquee{
  position:relative;z-index:3;overflow:hidden;background:var(--gold-l);color:var(--ink);
  margin:-2.4rem -3vw 0;padding:1.6rem 0 1.5rem;transform:rotate(-1.6deg);
  box-shadow:0 24px 50px rgba(36,22,19,.25);
}
.marquee__row{overflow:hidden;white-space:nowrap}
.marquee__row+.marquee__row{margin-top:.3rem}
.marquee__track{display:inline-flex;align-items:center;gap:2.2rem;padding-right:2.2rem;will-change:transform}
.marquee__track span{font-family:var(--f-display);font-style:italic;font-size:clamp(2.3rem,5.6vw,5.4rem);line-height:1.05}
.marquee__track .outline{font-style:normal;color:transparent;-webkit-text-stroke:1.2px var(--ink);letter-spacing:.01em}
.spark{width:clamp(1.2rem,2.2vw,2rem);height:clamp(1.2rem,2.2vw,2rem);fill:var(--wine);flex:none}

/* ---------- Rituel (pinné) ---------- */
.story{position:relative;background:var(--cream);margin-top:-1.5rem;padding-top:1.5rem}
.story__pin{
  height:100vh;height:100svh;min-height:600px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;
  gap:clamp(1.5rem,5vw,6rem);padding:5.5rem var(--gutter) 3rem;max-width:var(--maxw);margin-inline:auto;
}
.story__title{font-size:clamp(2.3rem,5vw,5.4rem);margin-bottom:2.2rem;max-width:14ch}
.story__steps{display:grid;min-height:15rem}
.step{grid-area:1/1;opacity:0;visibility:hidden;max-width:34rem}
.step:first-child{opacity:1;visibility:visible}
.step__n{display:block;font-family:var(--f-display);font-style:italic;font-size:clamp(3.2rem,6vw,5.5rem);line-height:.9;color:var(--gold)}
.step__t{font-family:var(--f-display);font-weight:500;font-size:clamp(1.8rem,2.6vw,2.6rem);line-height:1.05;margin:.3rem 0 .8rem}
.step p{color:var(--cocoa)}
.story__nav{display:flex;align-items:center;gap:1.2rem;margin-top:1.8rem;max-width:34rem}
.story__line{position:relative;flex:1;height:1px;background:rgba(36,22,19,.2);overflow:hidden}
.story__line i{position:absolute;inset:0;background:var(--wine);transform:scaleX(0);transform-origin:left}
.story__count{font-size:.85rem;letter-spacing:.2em;color:var(--cocoa);font-variant-numeric:tabular-nums}
.story__count b{font-weight:500;color:var(--wine)}

.story__visual{position:relative;display:grid;place-items:center;height:100%;max-height:min(80svh,48rem)}
.story__halo{
  position:absolute;width:min(86%,34rem);aspect-ratio:1;border-radius:50%;border:1px dashed rgba(181,135,63,.6);
  right:-4%;top:6%;will-change:transform;
}
.story__halo::after{content:"";position:absolute;inset:12%;border-radius:50%;border:1px solid rgba(181,135,63,.35)}
.arch{border-radius:9999px 9999px 0 0;overflow:hidden}
.story__frame{position:relative;height:100%;aspect-ratio:3/4.1;max-width:100%;background:var(--sand);box-shadow:0 40px 80px -30px rgba(36,22,19,.45)}
.story__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;will-change:transform,opacity}
.story__img:first-child{opacity:1}
.story__badge{
  position:absolute;left:-2%;bottom:6%;width:clamp(7rem,12vw,10rem);height:auto;color:var(--wine);
  animation:spin 22s linear infinite;
}
.story__badge text{font-family:var(--f-body);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;fill:currentColor}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- Séparateurs ---------- */
.divider{position:relative;pointer-events:none}
.divider--dome{height:clamp(40px,7vw,110px);background:var(--cream)}
.divider--dome::after{content:"";position:absolute;inset:0;background:var(--ink);border-radius:50% 50% 0 0/100% 100% 0 0}
.divider--wave{background:var(--ink);line-height:0;margin-top:-1px}
.divider--wave svg{width:100%;height:clamp(40px,7vw,110px)}
.divider--scallop{height:22px;background:var(--cream);margin-top:-1px}
.divider--scallop::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 15px 0,var(--ink) 14.5px,transparent 15.5px) 0 0/30px 100% repeat-x;
}

/* ---------- Épilation laser (défilement horizontal) ---------- */
.laser{position:relative;background:var(--ink);color:var(--cream);overflow:hidden}
.laser::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 70% at 80% 20%,rgba(107,29,46,.55),transparent 70%),radial-gradient(50% 60% at 10% 90%,rgba(181,135,63,.16),transparent 70%);
}
.laser__pin{position:relative;height:100vh;height:100svh;min-height:620px;display:flex;align-items:center}
.laser__track{display:flex;align-items:center;gap:clamp(1rem,2vw,2rem);padding:0 var(--gutter);width:max-content;will-change:transform}
.laser__intro{flex:none;width:min(40rem,82vw);padding-right:clamp(1rem,4vw,5rem)}
.laser__title{font-size:clamp(2.6rem,5.4vw,5.6rem);margin-bottom:1.6rem}
.laser__p{color:rgba(245,237,226,.82);max-width:30rem}
.laser__hint{display:flex;align-items:center;gap:.7rem;margin-top:2rem;font-size:.78rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-l)}
.laser__hint .ico{animation:nudge 1.8s var(--ease-io) infinite}
@keyframes nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(8px)}}
.laser__bar{position:absolute;left:var(--gutter);right:var(--gutter);bottom:2.2rem;height:1px;background:rgba(245,237,226,.2)}
.laser__bar i{position:absolute;inset:0;background:var(--gold-l);transform:scaleX(0);transform-origin:left}
.laser__end{flex:none;width:min(26rem,80vw);display:grid;gap:1.5rem;justify-items:start;padding:0 2rem 0 1rem}
.laser__end .display{font-size:clamp(3rem,6vw,6rem);font-style:italic;color:var(--gold-l)}

.pcard{
  --mx:50%;--my:30%;
  position:relative;flex:none;width:clamp(17rem,21vw,21rem);height:min(35rem,78svh);
  border-radius:999px 999px 1.4rem 1.4rem;
  display:flex;flex-direction:column;align-items:center;text-align:center;
  background:linear-gradient(180deg,rgba(245,237,226,.09),rgba(245,237,226,.03));
  border:1px solid rgba(221,184,115,.35);overflow:hidden;transform-style:preserve-3d;
}
.pcard__photo{position:relative;flex:none;width:100%;height:46%;overflow:hidden;background:var(--ink-3)}
.pcard__photo img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 1.4s var(--ease-out)}
.pcard:hover .pcard__photo img{transform:scale(1.09)}
.pcard__photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(36,22,19,.55) 0%,rgba(36,22,19,.05) 38%,rgba(36,22,19,.5) 100%)}
.pcard__body{flex:1;width:100%;display:flex;flex-direction:column;align-items:center;padding:.9rem 1.4rem 1.4rem}
.pcard__glare{
  position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;
  background:radial-gradient(circle at var(--mx) var(--my),rgba(255,236,196,.32),transparent 55%);
}
.pcard:hover .pcard__glare,.bcard:hover .pcard__glare{opacity:1}
.pcard__tag{position:absolute;z-index:2;top:1.5rem;left:50%;transform:translateX(-50%);font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--cream);white-space:nowrap;text-shadow:0 1px 10px rgba(36,22,19,.6)}
.pcard__idx{position:absolute;z-index:2;bottom:.7rem;left:50%;transform:translateX(-50%);font-family:var(--f-display);font-style:italic;font-size:1.15rem;line-height:1;color:var(--gold-l);text-shadow:0 1px 10px rgba(36,22,19,.6)}
.pcard__name{font-family:var(--f-display);font-weight:500;font-size:clamp(1.4rem,1.75vw,1.7rem);line-height:1.1;min-height:3.4rem;display:flex;align-items:center;justify-content:center}
.pcard__time{margin-top:.3rem;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(245,237,226,.65)}
.pcard__price{margin-top:auto;font-family:var(--f-display);font-size:clamp(3.6rem,4.8vw,5rem);line-height:.9;color:var(--gold-l);display:flex;align-items:flex-start}
.pcard__price small{font-size:.38em;margin:.2em 0 0 .1em;font-style:italic}
.pcard__cta{
  margin-top:.8rem;display:inline-flex;align-items:center;gap:.6rem;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;
  padding:.7rem 1.2rem;border-radius:999px;border:1px solid rgba(245,237,226,.35);transition:background .4s,color .4s,border-color .4s;
}
.pcard__cta:hover{background:var(--gold-l);color:var(--ink);border-color:var(--gold-l)}
.pcard__text{margin-top:.4rem;font-size:.98rem;color:rgba(245,237,226,.8)}
.pcard--star{background:linear-gradient(180deg,var(--gold-l),#c79d52);color:var(--ink);border-color:transparent}
.pcard--star .pcard__tag{top:1.2rem;padding:.3rem .8rem;border-radius:999px;background:var(--gold-l);color:var(--ink);font-weight:600;text-shadow:none}
.pcard--star .pcard__time{color:rgba(36,22,19,.7)}
.pcard--star .pcard__price{color:var(--ink)}
.pcard--star .pcard__cta{border-color:rgba(36,22,19,.4)}
.pcard--star .pcard__cta:hover{background:var(--ink);color:var(--gold-l);border-color:var(--ink)}
.pcard--quote{border-style:dashed}
.pcard--quote .pcard__cta{margin-top:auto}
.pcard--quote .pcard__text{font-size:.92rem;line-height:1.45}

/* ---------- Onglerie ---------- */
.nails{position:relative;background:var(--sand);margin-top:-2px;padding:clamp(4rem,9vw,8rem) 0 calc(clamp(4rem,9vw,8rem) + 5vw)}
.nails__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,6vw,7rem);align-items:start}
.nails__visual{position:sticky;top:7.5rem;height:min(44rem,calc(100svh - 9rem));min-height:26rem}
.nails__main{position:absolute;left:0;top:0;width:72%;height:92%;background:var(--wine)}
.nails__small{position:absolute;right:0;bottom:0;width:46%;height:46%;background:var(--wine);border:6px solid var(--sand);box-sizing:content-box;transform:translate(6px,6px);border-bottom:0}
.nails__frame{position:absolute;inset:0;overflow:hidden}
.nails__frame img,.shot__frame img{position:absolute;left:0;width:100%;height:128%;top:-14%;object-fit:cover;will-change:transform}
.nails__main img{object-position:60% 50%}
.nails__small img{object-position:40% 50%}
.nails__badge{position:absolute;left:60%;top:2%;width:clamp(6.5rem,10vw,9rem);color:var(--wine);background:var(--sand);border-radius:50%;padding:.35rem;animation:spin 20s linear infinite reverse;z-index:2}
.nails__badge text{font-family:var(--f-body);font-size:11px;letter-spacing:.18em;text-transform:uppercase;fill:currentColor}
.nails__content .display{font-size:clamp(2.4rem,5vw,5rem);margin-bottom:1.5rem;max-width:13ch}
.nails__lead{max-width:36rem;color:var(--cocoa);margin-bottom:2.4rem}

.price-list__h{
  font-family:var(--f-display);font-style:italic;font-weight:500;font-size:2rem;color:var(--wine);
  margin:2.2rem 0 .4rem;display:flex;align-items:center;gap:1rem;
}
.price-list__h::after{content:"";flex:1;height:1px;background:rgba(107,29,46,.3)}
.row{
  display:flex;align-items:baseline;gap:1.2rem;padding:1rem 0;border-bottom:1px dashed rgba(36,22,19,.22);
  transition:padding .5s var(--ease-out),background-color .5s;
}
.row:hover{padding-left:.8rem;background:linear-gradient(90deg,rgba(181,135,63,.14),transparent)}
.row dt{flex:1;font-weight:500;line-height:1.3}
.row dt small{display:block;margin-top:.15rem;font-weight:400;font-size:.85rem;color:var(--cocoa);opacity:.8}
.row dd{font-family:var(--f-display);font-size:1.9rem;line-height:1;color:var(--wine);white-space:nowrap}
.nails__note{margin-top:1.8rem;font-size:.9rem;color:var(--cocoa);padding:1rem 1.2rem;border-left:2px solid var(--gold);background:rgba(251,247,240,.6)}
.nails__cta{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}

/* ---------- Chiffres clés ---------- */
.stats{
  --cut:clamp(24px,5vw,80px);
  position:relative;z-index:2;background:var(--ink);color:var(--cream);margin-top:calc(var(--cut) * -1);
  clip-path:polygon(0 var(--cut),100% 0,100% 100%,0 100%);padding:calc(var(--cut) + clamp(3.5rem,7vw,6rem)) 0 clamp(3.5rem,7vw,6rem);
}
.stats__grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{position:relative;padding:0 clamp(.8rem,2vw,2rem);text-align:center}
.stat+.stat::before{content:"";position:absolute;left:0;top:8%;bottom:8%;width:1px;background:rgba(221,184,115,.35)}
.stat__n{
  font-family:var(--f-display);font-weight:300;font-size:clamp(3.6rem,8.4vw,8.6rem);line-height:.95;letter-spacing:-.03em;
  background:linear-gradient(180deg,#f3dba5,var(--gold) 90%);-webkit-background-clip:text;background-clip:text;color:transparent;
  font-variant-numeric:tabular-nums;
}
.stat__n small{font-size:.36em;font-style:italic;letter-spacing:0;margin-left:.08em;-webkit-text-fill-color:currentColor;color:var(--gold-l)}
.stat__l{margin-top:.8rem;font-size:.9rem;letter-spacing:.08em;color:rgba(245,237,226,.75)}

/* ---------- Galerie ---------- */
.gallery{background:var(--cream);padding:clamp(4rem,9vw,8rem) 0 clamp(3rem,6vw,5rem)}
.gallery__head{margin-bottom:clamp(2rem,5vw,4rem);max-width:46rem}
.gallery__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(.8rem,2vw,1.6rem)}
.shot{position:relative;margin:0;cursor:zoom-in;perspective:900px}
.shot__frame{position:relative;width:100%;height:100%;overflow:hidden;background:var(--sand)}
.shot img{transition:filter .6s}
.shot:hover img{filter:saturate(1.15) contrast(1.03)}
.shot figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:2.6rem 1.2rem 1.4rem;text-align:center;pointer-events:none;
  background:linear-gradient(transparent,rgba(36,22,19,.72));color:var(--cream);
  transform:translateY(101%);transition:transform .7s var(--ease-out);
}
.shot figcaption span{font-family:var(--f-display);font-style:italic;font-size:1.6rem;line-height:1}
.shot:hover figcaption,.shot:focus-visible figcaption{transform:none}
.shot--a{grid-column:1/6;aspect-ratio:4/5}
.shot--a .shot__frame{border-radius:9999px 9999px 0 0}
.shot--b{grid-column:6/10;aspect-ratio:1/1;margin-top:clamp(2rem,8vw,7rem)}
.shot--b .shot__frame{border-radius:50%}
.shot--c{grid-column:10/13;aspect-ratio:3/4.2}
.shot--c .shot__frame{border-radius:9999px 9999px 0 0}
.shot--d{grid-column:2/6;aspect-ratio:4/4.6}
.shot--d .shot__frame{border-radius:9999px}
.shot--e{grid-column:6/9;aspect-ratio:3/4.2;margin-top:clamp(1rem,4vw,4rem)}
.shot--e .shot__frame{border-radius:0 0 9999px 9999px}
.shot--f{grid-column:9/13;aspect-ratio:4/5;margin-top:clamp(1rem,3vw,3rem)}
.shot--f .shot__frame{border-radius:9999px 9999px 0 0}
.shot--a img{object-position:62% 50%}.shot--b img{object-position:58% 50%}.shot--c img{object-position:52% 55%}
.shot--d img{object-position:46% 50%}.shot--e img{object-position:42% 50%}.shot--f img{object-position:70% 50%}
.gallery__more{margin-top:clamp(2rem,5vw,4rem);text-align:center}
.gallery__more .ulink{display:inline-flex;align-items:center;gap:.6rem;font-size:1rem;color:var(--wine)}

/* ---------- Avis ---------- */
.reviews{
  position:relative;z-index:2;background:var(--wine-d);color:var(--cream);
  padding:clamp(4rem,8vw,7rem) 0 clamp(5rem,10vw,9rem);border-radius:0 0 50% 50%/0 0 clamp(30px,6vw,90px) clamp(30px,6vw,90px);
  background-image:radial-gradient(60% 80% at 90% 0%,rgba(181,135,63,.22),transparent 70%);
}
.reviews__top{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:clamp(2rem,4vw,3.5rem)}
.reviews__score .display{font-size:clamp(2.4rem,5vw,5rem);margin-bottom:1.8rem;max-width:13ch}
.reviews__ratings{display:flex;flex-wrap:wrap;gap:1.2rem 2.6rem}
.rate{display:flex;align-items:center;gap:.8rem}
.rate b{font-family:var(--f-display);font-weight:400;font-size:2.8rem;line-height:1;color:var(--gold-l)}
.rate small{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;opacity:.8}
.reviews__ctrl{display:flex;gap:.7rem}
.round{width:3.4rem;height:3.4rem;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(245,237,226,.4);transition:background .4s,color .4s,transform .5s var(--ease-out)}
.round:hover{background:var(--gold-l);color:var(--ink);border-color:var(--gold-l);transform:scale(1.08)}
.reviews__rail{
  display:flex;gap:clamp(1rem,2vw,1.6rem);overflow-x:auto;scroll-snap-type:x mandatory;
  padding:.5rem var(--gutter) 1.5rem;scrollbar-width:none;cursor:grab;-webkit-overflow-scrolling:touch;
}
.reviews__rail::-webkit-scrollbar{display:none}
.reviews__rail.is-drag{cursor:grabbing;scroll-snap-type:none}
.rev{
  position:relative;flex:none;width:clamp(18.5rem,28vw,26rem);min-height:21rem;scroll-snap-align:start;
  display:flex;flex-direction:column;justify-content:space-between;gap:1.6rem;padding:2.2rem 2rem 1.8rem;
  border-radius:1.6rem;background:var(--cream);color:var(--ink);user-select:none;
}
.rev::before{content:"“";position:absolute;top:.2rem;right:1.4rem;font-family:var(--f-display);font-size:7rem;line-height:1;color:var(--gold);opacity:.35}
.rev blockquote{font-family:var(--f-display);font-size:clamp(1.3rem,1.55vw,1.5rem);line-height:1.3}
.rev figcaption{display:grid;gap:.4rem}
.rev .stars svg{fill:var(--gold)}
.rev__who{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cocoa)}
.rev--wine{background:var(--wine);color:var(--cream)}
.rev--wine .rev__who{color:rgba(245,237,226,.75)}
.rev--wine .stars svg{fill:var(--gold-l)}
.rev--gold{background:var(--gold-l);color:var(--ink)}
.rev--gold::before{color:var(--wine)}
.rev--gold .stars svg{fill:var(--wine)}
.rev--gold .rev__who{color:rgba(36,22,19,.8)}
.reviews__links{display:flex;flex-wrap:wrap;gap:1rem 2.4rem;margin-top:1rem;font-size:.95rem;color:var(--gold-l)}

/* ---------- Réserver ---------- */
.book{position:relative;background:var(--cream);margin-top:calc(-1 * clamp(30px,6vw,90px));padding:calc(clamp(30px,6vw,90px) + clamp(4rem,8vw,7rem)) 0 clamp(4rem,8vw,7rem);overflow:hidden}
.book__arch{
  position:absolute;left:50%;top:6%;width:min(70vw,60rem);aspect-ratio:3/4;transform:translateX(-50%);pointer-events:none;
  border-radius:9999px 9999px 0 0;background:linear-gradient(180deg,rgba(221,184,115,.34),rgba(221,184,115,0) 75%);
}
.book__arch::after{content:"";position:absolute;inset:6%;border-radius:inherit;border:1px solid rgba(181,135,63,.4);border-bottom:0}
.book__inner{position:relative}
.book__head{text-align:center;max-width:46rem;margin:0 auto clamp(2.5rem,5vw,4rem)}
.book__head .eyebrow{justify-content:center}
.book__title{font-size:clamp(2.6rem,6vw,6rem);margin-bottom:1.4rem}
.book__lead{color:var(--cocoa);max-width:38rem;margin-inline:auto}
.book__grid{display:grid;grid-template-columns:1fr 1.1fr;grid-template-areas:"main sms" "call sms";gap:clamp(1rem,2vw,1.6rem);align-items:stretch}
.bcard{
  --mx:50%;--my:30%;
  position:relative;display:flex;flex-direction:column;gap:.7rem;padding:2rem;border-radius:1.8rem;overflow:hidden;
  background:var(--stone);border:1px solid rgba(36,22,19,.1);transform-style:preserve-3d;
  transition:box-shadow .5s;box-shadow:0 20px 50px -30px rgba(36,22,19,.4);
}
.bcard--main{grid-area:main;background:var(--ink);color:var(--cream);border-color:transparent}
.bcard:not(.bcard--main){grid-area:call}
.bcard__ico{width:3.2rem;height:3.2rem;border-radius:50%;display:grid;place-items:center;background:var(--gold-l);color:var(--ink);margin-bottom:.8rem}
.bcard__ico .ico{width:1.4rem;height:1.4rem}
.bcard h3{font-family:var(--f-display);font-weight:500;font-size:2.2rem;line-height:1}
.bcard p{max-width:26rem;opacity:.85}
.bcard__go{margin-top:auto;padding-top:1.2rem;display:inline-flex;align-items:center;gap:.6rem;font-weight:500;letter-spacing:.06em;color:var(--gold)}
.bcard--main .bcard__go{color:var(--gold-l)}
.bcard:hover .bcard__go .ico{transform:translateX(6px)}
.bcard__go .ico{transition:transform .5s var(--ease-out)}

.sms{grid-area:sms;display:flex;flex-direction:column;gap:1rem;padding:2rem;border-radius:1.8rem;background:var(--sand);border:1px solid rgba(36,22,19,.08)}
.sms h3{display:flex;align-items:center;gap:.6rem;font-family:var(--f-display);font-weight:500;font-size:1.9rem;line-height:1.05}
.sms__help{font-size:.92rem;color:var(--cocoa)}
.field{display:grid;gap:.55rem;border:0;padding:0;margin:0;min-width:0}
.field__label{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cocoa);font-weight:500;padding:0}
.field input[type="text"]{
  width:100%;font:inherit;color:var(--ink);padding:.85rem 1.1rem;border-radius:999px;border:1px solid rgba(36,22,19,.22);
  background:var(--stone);appearance:none;-webkit-appearance:none;min-height:3rem;transition:border-color .3s,box-shadow .3s;
}
.field input[type="text"]::placeholder{color:rgba(74,46,37,.55)}
.field input[type="text"]:focus{outline:none;border-color:var(--wine);box-shadow:0 0 0 3px rgba(107,29,46,.16)}

/* menu déroulant sur mesure (remplace le menu natif du navigateur) */
.select{position:relative}
.select__native{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden}
.select__btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;text-align:left;
  min-height:3rem;padding:.85rem 1.1rem;border-radius:999px;border:1px solid rgba(36,22,19,.22);background:var(--stone);
  transition:border-color .3s,box-shadow .3s,background-color .3s;
}
.select__btn:hover{border-color:rgba(107,29,46,.5)}
.select__btn:focus-visible,.select.is-open .select__btn{outline:none;border-color:var(--wine);box-shadow:0 0 0 3px rgba(107,29,46,.16)}
.select__chev{width:.8rem;height:.55rem;flex:none;color:var(--wine);transition:transform .5s var(--ease-out)}
.select.is-open .select__chev{transform:rotate(180deg)}
.select__list{
  position:absolute;left:0;right:0;top:calc(100% + .55rem);z-index:40;margin:0;padding:.5rem;list-style:none;
  max-height:min(21rem,60svh);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(181,135,63,.65) transparent;
  background:var(--stone);border:1px solid rgba(181,135,63,.45);border-radius:1.4rem;
  box-shadow:0 34px 70px -24px rgba(36,22,19,.5),0 0 0 6px rgba(245,237,226,.55);
  opacity:0;visibility:hidden;transform:translateY(-10px) scale(.985);transform-origin:top center;
  transition:opacity .35s var(--ease-out),transform .5s var(--ease-out),visibility 0s .5s;
}
.select.is-open .select__list{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.select__group{
  display:flex;align-items:center;gap:.7rem;padding:.8rem .9rem .35rem;font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--gold);font-weight:500;
}
.select__group::after{content:"";flex:1;height:1px;background:rgba(181,135,63,.35)}
.select__group:first-child{padding-top:.4rem}
.select__opt{
  position:relative;display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;
  padding:.7rem .9rem .7rem 1.2rem;border-radius:.9rem;font-size:1rem;line-height:1.3;color:var(--ink);
  transition:background-color .25s,color .25s,padding .35s var(--ease-out);
}
.select__opt::before{
  content:"";position:absolute;left:.5rem;top:50%;width:.3rem;height:.3rem;border-radius:50%;background:var(--gold);
  transform:translateY(-50%) scale(0);transition:transform .35s var(--ease-out);
}
.select__opt.is-active{background:rgba(181,135,63,.16);padding-left:1.5rem}
.select__opt.is-active::before{transform:translateY(-50%) scale(1)}
.select__opt[aria-selected="true"]{color:var(--wine);font-weight:500}
.select__opt[aria-selected="true"]::after{
  content:"";flex:none;width:.42rem;height:.8rem;margin-right:.2rem;border:solid var(--wine);border-width:0 2px 2px 0;transform:rotate(45deg) translateY(-2px);
}

/* jours : petites tuiles de calendrier */
.days{display:grid;grid-template-columns:repeat(auto-fill,minmax(3.9rem,1fr));gap:.5rem}
.day,.chip{position:relative;cursor:pointer}
.day input,.chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.day span{display:block}
.day{
  display:grid;place-items:center;align-content:center;gap:.05rem;padding:.55rem .2rem;min-height:4.4rem;border-radius:1.1rem;
  background:var(--stone);border:1px solid rgba(36,22,19,.16);text-align:center;
  transition:background-color .35s,border-color .35s,color .35s,transform .45s var(--ease-out);
}
.day:hover{border-color:rgba(107,29,46,.5);transform:translateY(-2px)}
.day__w{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cocoa)}
.day__n{font-family:var(--f-display);font-size:1.7rem;line-height:1;font-weight:500}
.day__m{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cocoa);opacity:.8}
.day--asap{grid-column:span 2;grid-auto-flow:column;gap:.5rem;font-size:.82rem;line-height:1.2}
.day--asap .ico{width:1rem;height:1rem;color:var(--gold)}
.day:has(input:checked){background:var(--wine);border-color:var(--wine);color:var(--cream)}
.day:has(input:checked) .day__w,.day:has(input:checked) .day__m{color:var(--gold-l)}
.day:has(input:checked) .ico{color:var(--gold-l)}
.day:has(input:focus-visible),.chip:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:3px}

/* moments : pastilles */
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip span{
  display:block;padding:.6rem 1.1rem;border-radius:999px;background:var(--stone);border:1px solid rgba(36,22,19,.2);font-size:.92rem;
  transition:background-color .35s,border-color .35s,color .35s,transform .45s var(--ease-out);
}
.chip:hover span{border-color:rgba(107,29,46,.5);transform:translateY(-2px)}
.chip input:checked + span{background:var(--wine);border-color:var(--wine);color:var(--cream)}

.sms__actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.4rem}
.sms__preview{font-size:.88rem;color:var(--cocoa);padding:.9rem 1rem;border-radius:.9rem;background:rgba(251,247,240,.7);border:1px dashed rgba(36,22,19,.25);min-height:4.4rem}

/* ---------- FAQ ---------- */
.faq{background:var(--stone);padding:clamp(4rem,8vw,7rem) 0}
.faq__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,6vw,7rem);align-items:start}
.faq__head{position:sticky;top:7rem}
.faq__head .display{font-size:clamp(2.4rem,4.6vw,4.6rem);max-width:12ch}
.qa{border-bottom:1px solid rgba(36,22,19,.18)}
.qa:first-child{border-top:1px solid rgba(36,22,19,.18)}
.qa summary{
  list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;cursor:pointer;padding:1.5rem 0;
  font-family:var(--f-display);font-size:clamp(1.35rem,1.9vw,1.85rem);line-height:1.15;font-weight:500;
}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{
  content:"";flex:none;width:2.2rem;height:2.2rem;border-radius:50%;border:1px solid rgba(107,29,46,.45);
  background:linear-gradient(var(--wine),var(--wine)) center/.8rem 1.5px no-repeat,linear-gradient(var(--wine),var(--wine)) center/1.5px .8rem no-repeat;
  transition:transform .6s var(--ease-out),background-color .4s;
}
.qa[open] summary::after{transform:rotate(135deg);background-color:var(--gold-l)}
.qa__a{overflow:hidden}
.qa__a p{padding:0 3.5rem 1.6rem 0;color:var(--cocoa);max-width:44rem}

/* ---------- Nous trouver ---------- */
.find{position:relative;z-index:2;background:var(--ink-3);color:var(--cream);padding:clamp(4rem,8vw,7rem) 0 clamp(5rem,9vw,8rem);border-radius:clamp(1.5rem,5vw,4.5rem) clamp(1.5rem,5vw,4.5rem) 0 0}
.find__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,7rem);align-items:start}
.find__info .display{font-size:clamp(2.4rem,4.8vw,4.8rem);margin-bottom:2rem;max-width:12ch}
.find__addr{display:grid;gap:.9rem;margin-bottom:2rem}
.find__addr a{display:flex;align-items:flex-start;gap:.9rem;font-size:1.1rem;transition:color .3s,transform .5s var(--ease-out)}
.find__addr a:hover{color:var(--gold-l);transform:translateX(6px)}
.find__addr .ico{margin-top:.2rem;color:var(--gold-l);width:1.3rem;height:1.3rem}
.hours{padding:1.6rem 1.8rem;border-radius:1.4rem;background:rgba(245,237,226,.06);border:1px solid rgba(221,184,115,.25);margin-bottom:1.6rem}
.hours__status{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem;font-size:.82rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-l)}
.hours__status i{width:.6rem;height:.6rem;border-radius:50%;background:var(--gold-l);box-shadow:0 0 0 4px rgba(221,184,115,.25)}
.hours__status[data-open="true"] i{background:#8FD19E;box-shadow:0 0 0 4px rgba(143,209,158,.25);animation:pulse 2s infinite}
.hours__status[data-open="false"] i{background:#E58B8B;box-shadow:0 0 0 4px rgba(229,139,139,.22)}
@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(143,209,158,0)}}
.hours table{width:100%;border-collapse:collapse}
.hours th,.hours td{padding:.55rem 0;font-weight:400;text-align:left;border-bottom:1px solid rgba(245,237,226,.1)}
.hours td{text-align:right;font-variant-numeric:tabular-nums}
.hours tr:last-child th,.hours tr:last-child td{border-bottom:0}
.hours tr.is-closed td{opacity:.6}
.hours tr.is-today th,.hours tr.is-today td{color:var(--gold-l);font-weight:500}
.hours__note{margin-top:1rem;font-size:.82rem;opacity:.65}
.find__access{font-size:.95rem;opacity:.85;max-width:30rem}
.find__map{position:relative;padding-bottom:3.5rem}
.find__mapframe{position:relative;aspect-ratio:5/6;background:#2f1f1b;border:1px solid rgba(221,184,115,.5);box-shadow:0 40px 80px -30px rgba(0,0,0,.6)}
/* l'iframe dépasse du cadre vers le haut : la fiche Google (en haut à gauche) est rognée,
   le repère reste centré dans l'arche et les mentions Google restent visibles en bas */
.find__mapframe iframe{position:absolute;left:0;top:-200px;width:100%;height:calc(100% + 200px);border:0;filter:sepia(.28) saturate(.85) contrast(1.02)}
.find__mapframe::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(221,184,115,.35),inset 0 -60px 60px -50px rgba(36,22,19,.35)}
.find__maplink{position:absolute;left:50%;bottom:0;translate:-50% 0}
.find__street{
  position:absolute;left:-2.4rem;bottom:8rem;z-index:2;width:clamp(5.5rem,10vw,8.5rem);aspect-ratio:3/4;border-radius:9999px 9999px 0 0;overflow:hidden;
  border:4px solid var(--ink);box-shadow:0 20px 40px -12px rgba(0,0,0,.6);
}
.find__street img{width:100%;height:100%;object-fit:cover}

/* ---------- Footer ---------- */
.footer{position:relative;background:var(--ink-2);color:var(--cream);padding:clamp(4rem,7vw,6rem) 0 1.6rem;overflow:hidden}
.footer__scallop{position:absolute;left:0;right:0;top:-1px;height:22px;background:radial-gradient(circle at 15px 0,var(--ink-3) 14.5px,transparent 15.5px) 0 0/30px 100% repeat-x}
.footer__top{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:2rem;align-items:start;padding-bottom:clamp(2rem,5vw,4rem)}
.footer__col{display:grid;gap:.7rem;justify-items:start}
.footer__col h3{font-size:.74rem;letter-spacing:.26em;text-transform:uppercase;font-weight:500;color:var(--gold-l);margin-bottom:.4rem}
.footer__giant{
  font-family:var(--f-display);font-weight:300;font-size:clamp(5rem,19vw,22rem);line-height:.78;letter-spacing:-.04em;
  white-space:nowrap;text-align:center;color:var(--cream);padding:.05em 0 .12em;overflow:hidden;
}
.footer__giant em{font-style:italic;font-weight:400;color:var(--gold-l)}
.footer__giant .char{transition:transform .7s var(--ease-out),color .5s}
.footer__giant .char:hover{transform:translateY(-6%);color:var(--gold-l)}
.footer__giant em .char:hover{color:var(--cream)}
.footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 2rem;margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid rgba(245,237,226,.14);font-size:.82rem;opacity:.7}

/* ---------- FAB mobile ---------- */
.fab{
  position:fixed;left:1rem;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:700;display:none;gap:.6rem;
  transform:translateY(160%);transition:transform .7s var(--ease-out);
}
.fab.is-visible{transform:none}
.fab a{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:1rem;border-radius:999px;font-weight:500;letter-spacing:.04em;box-shadow:0 14px 30px -10px rgba(0,0,0,.5)}
.fab__call{background:var(--ink);color:var(--gold-l);border:1px solid rgba(221,184,115,.4)}
.fab__book{background:var(--gold-l);color:var(--ink)}

/* ---------- Lightbox ---------- */
.lightbox{position:fixed;inset:0;z-index:12000;display:grid;place-items:center;padding:3vw;background:rgba(25,14,12,.92);backdrop-filter:blur(8px);opacity:0;transition:opacity .4s}
.lightbox[hidden]{display:none}
.lightbox.is-open{opacity:1}
.lightbox img{max-height:90svh;max-width:94vw;width:auto;border-radius:1rem;box-shadow:0 40px 100px rgba(0,0,0,.6)}
.lightbox__close{position:absolute;top:1.2rem;right:1.2rem;width:3rem;height:3rem;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(245,237,226,.45);color:var(--cream);transition:background .3s,color .3s}
.lightbox__close:hover{background:var(--cream);color:var(--ink)}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1100px){
  .nav__links{display:none}
  .burger{display:block}
  .footer__top{grid-template-columns:repeat(3,1fr)}
  .footer__cta{grid-column:1/-1;justify-self:start}
}

@media (max-width:899px){
  body{font-size:1rem}
  .nav .btn{display:none}
  .fab{display:flex}

  .hero__arch{right:-18vw;height:78svh;opacity:.5}
  .hero__pebbles{display:none}
  .hero__content{bottom:clamp(6rem,15svh,8rem)}
  .hero__title{font-size:clamp(4.2rem,24vw,9rem)}
  .hero__line--ella{margin-left:.35em}
  .hero__rating{right:var(--gutter);bottom:auto;top:5.8rem;padding:.7rem 1rem;border-radius:1.2rem}
  .hero__rating-score{font-size:1.8rem}
  .hero__scroll{display:none}
  .hero__toggle{bottom:3.6rem}

  .marquee{margin-top:-1.6rem}

  /* rituel : visuel au-dessus, texte dessous, toujours pinné */
  .story__pin{grid-template-columns:1fr;grid-template-rows:auto 1fr;padding-top:4.8rem;padding-bottom:5.2rem;gap:1.2rem;align-content:start}
  .story__visual{order:-1;height:34svh;max-height:none;justify-self:center;width:100%}
  .story__frame{height:100%;aspect-ratio:3/3.6}
  .story__halo,.story__badge{display:none}
  .story__title{font-size:clamp(1.9rem,8vw,2.6rem);margin-bottom:1rem;max-width:none}
  .story__steps{min-height:13.5rem}
  .step__n{font-size:2.6rem}
  .step__t{font-size:1.7rem}

  /* laser : swipe natif */
  .laser__pin{height:auto;min-height:0;padding:clamp(3.5rem,12vw,5rem) 0 clamp(4rem,12vw,5.5rem);display:block}
  .laser__track{width:auto;overflow-x:auto;scroll-snap-type:x mandatory;gap:1rem;padding:0 var(--gutter) 1.2rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .laser__track::-webkit-scrollbar{display:none}
  .laser__track>*{scroll-snap-align:center}
  .laser__intro{width:84vw;padding-right:0}
  .laser__title{font-size:clamp(2.2rem,9vw,3.2rem)}
  .laser__bar{display:none}
  .pcard{width:min(76vw,19rem);height:32rem}
  .laser__end{width:76vw}

  .nails__grid{grid-template-columns:1fr}
  .nails__visual{position:relative;top:0;height:clamp(22rem,92vw,32rem);min-height:0;margin-bottom:1rem}
  .nails__content .display{max-width:none}
  .row dd{font-size:1.6rem}

  .stats__grid{grid-template-columns:1fr 1fr;row-gap:2.6rem}
  .stat:nth-child(3)::before{display:none}

  .gallery__grid{grid-template-columns:repeat(6,1fr)}
  .shot--a{grid-column:1/5}.shot--b{grid-column:3/7;margin-top:1rem}
  .shot--c{grid-column:1/4}.shot--d{grid-column:4/7;margin-top:2rem}
  .shot--e{grid-column:1/4;margin-top:0}.shot--f{grid-column:4/7;margin-top:2.5rem}

  .reviews__ctrl{display:none}
  .reviews__top{align-items:flex-start}
  .rev{width:min(82vw,22rem)}

  .book__grid{grid-template-columns:1fr;grid-template-areas:"main" "call" "sms"}
  .field-row{grid-template-columns:1fr}

  .faq__grid{grid-template-columns:1fr}
  .faq__head{position:relative;top:0}
  .qa__a p{padding-right:0}

  .find__grid{grid-template-columns:1fr}
  .find__map{margin-top:1rem}
  .find__street{left:-.4rem;bottom:7rem}

  .footer__top{grid-template-columns:1fr 1fr}
  .footer{padding-bottom:6.5rem}
}

@media (hover:none){
  .shot figcaption{transform:none}
}

/* ---------- Mouvement réduit ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .hero__scroll i,.story__badge,.nails__badge,.laser__hint .ico{animation:none}
  .laser__pin{height:auto;min-height:0;padding:4rem 0;display:block}
  .laser__track{width:auto;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--gutter) 1.2rem}
  .laser__track>*{scroll-snap-align:center}
  .laser__bar{display:none}
  .story__pin{height:auto;min-height:0;display:block;padding-top:6rem;padding-bottom:4rem}
  .story__steps{display:block;min-height:0}
  .step{opacity:1;visibility:visible;margin-bottom:2rem}
  .story__nav{display:none}
  .story__visual{height:26rem;margin-top:2rem}
  .marquee__track{transform:none!important}
}
