/* ==========================================================================
   Institut Head Spa · Gardanne
   Direction artistique « Soie & Pampa »
   Fil rouge : l'ARCEAU (arche du head spa) + la GOUTTE dorée
   Palette
     --silk    fond principal (bouclé crème)
     --sand    fond secondaire (sable)
     --blush   fond doux (rose poudré)
     --velvet  noir velours : sections sombres + texte
     --gold    accent (or champagne)  /  --gold-soft sur fond sombre
     --glow    lueur mauve des LED de la cabine
   Typo : Fraunces (titres, italique expressif) + Jost (texte)
   ========================================================================== */

@font-face{font-family:'Fraunces';src:url(../fonts/fraunces-roman.woff2) format('woff2');font-weight:300 500;font-style:normal;font-display:swap}
@font-face{font-family:'Fraunces';src:url(../fonts/fraunces-italic.woff2) format('woff2');font-weight:300 500;font-style:italic;font-display:swap}
@font-face{font-family:'Jost';src:url(../fonts/jost.woff2) format('woff2');font-weight:300 500;font-style:normal;font-display:swap}

:root{
  --silk:#F5EFE6;
  --sand:#E8DAC6;
  --blush:#F1DDD5;
  --taupe:#6B5848;
  --velvet:#1D1714;
  --velvet-2:#2A211C;
  --gold:#B98F55;
  --gold-deep:#8C6730;
  --gold-soft:#E3C998;
  --glow:#A27FC4;

  --f-display:'Fraunces','Iowan Old Style','Palatino Linotype',Georgia,serif;
  --f-body:'Jost','Helvetica Neue',Arial,sans-serif;

  --ease:cubic-bezier(.16,1,.3,1);
  --gut:clamp(20px,5vw,84px);
  --maxw:1440px;
  --arch:999px 999px 18px 18px;
}

*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
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-stopped{overflow:hidden}
body{
  font-family:var(--f-body);font-weight:300;
  font-size:clamp(1rem,.35vw + .93rem,1.125rem);line-height:1.65;
  color:var(--velvet);background:var(--silk);
  overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
body::after{ /* grain de bouclé, très léger */
  content:"";position:fixed;inset:0;z-index:999;pointer-events:none;opacity:.07;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
img,video,svg{display:block;max-width:100%}
a{color:inherit}
ul{list-style:none}
button{font:inherit;color:inherit;cursor:pointer}
address{font-style:normal}
::selection{background:var(--gold);color:var(--velvet)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.arch{border-radius:var(--arch)}
.skip{position:fixed;left:12px;top:-60px;z-index:3000;background:var(--velvet);color:var(--silk);padding:.8em 1.2em;border-radius:999px;transition:top .3s}
.skip:focus{top:12px}

/* icônes */
.ic{width:1.15em;height:1.15em;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.ic--fill{fill:currentColor;stroke:none}

/* ============ Typographie ============ */
.h2{
  font:300 clamp(2.5rem,6.4vw,6.4rem)/.98 var(--f-display);letter-spacing:-.03em;
  margin:.45em 0 .55em;text-wrap:balance;
}
.h2 em,.hero__title em,.foot__giant em{font-style:italic;font-weight:300;color:var(--gold-deep)}
.h2--light{color:var(--silk)}
.h2--light em{color:var(--gold-soft)}
.eyebrow{
  display:inline-flex;align-items:center;gap:.9em;
  font:500 .76rem/1 var(--f-body);letter-spacing:.3em;text-transform:uppercase;color:var(--taupe);
}
.eyebrow::before{ /* la goutte, fil rouge */
  content:"";width:.62em;height:.62em;background:var(--gold);border-radius:0 50% 50% 50%;transform:rotate(45deg);flex:none;
}
.eyebrow--light{color:var(--gold-soft)}
.fine{font-size:.82rem;line-height:1.5;opacity:.78}
.fine--light{color:var(--silk);opacity:.7}
.stars{display:inline-flex;gap:.12em;color:var(--gold-soft)}
.stars--gold,.rev .stars{color:var(--gold)}
.stars .ic{width:1em;height:1em}

/* mots / lettres découpés (titres animés) */
.w{display:inline-block;overflow:hidden;vertical-align:top;padding:.12em .08em .22em;margin:-.12em -.08em -.22em}
.c{display:inline-block;will-change:transform}

/* ============ Boutons, liens ============ */
.btn{
  --btn-bg:transparent;--btn-fg:var(--velvet);--btn-bd:currentColor;--btn-fill:var(--velvet);--btn-hfg:var(--silk);
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.75em;
  padding:1.1em 2em;border-radius:999px;border:1px solid var(--btn-bd);
  background:var(--btn-bg);color:var(--btn-fg);
  font:500 .78rem/1 var(--f-body);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;white-space:nowrap;
  overflow:hidden;isolation:isolate;transition:color .5s var(--ease),border-color .5s var(--ease);
}
.btn::before{
  content:"";position:absolute;inset:-1px;z-index:-1;background:var(--btn-fill);
  transform:translateY(102%);border-radius:50% 50% 0 0/90% 90% 0 0;
  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(--btn-hfg);border-color:var(--btn-fill)}
.btn > span,.btn > .ic{position:relative;will-change:transform}
.btn--gold{--btn-bg:var(--gold);--btn-fg:var(--velvet);--btn-bd:var(--gold);--btn-fill:var(--silk);--btn-hfg:var(--velvet)}
.btn--dark{--btn-bg:var(--velvet);--btn-fg:var(--silk);--btn-bd:var(--velvet);--btn-fill:var(--gold);--btn-hfg:var(--velvet)}
.btn--ghost-light{--btn-fg:var(--silk);--btn-bd:rgba(245,239,230,.55);--btn-fill:var(--silk);--btn-hfg:var(--velvet)}
.btn--sm{padding:.9em 1.5em;font-size:.72rem}
.btn--lg{padding:1.35em 2.4em;font-size:.84rem}
.btn[aria-disabled="true"],.btn:disabled{opacity:.4;pointer-events:none}

.link,.ulink{
  display:inline-flex;align-items:center;gap:.5em;text-decoration:none;font-weight:500;
  background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;padding-bottom:.2em;
  transition:background-size .6s var(--ease);
}
.link{font-size:.76rem;letter-spacing:.2em;text-transform:uppercase}
.ulink{background-size:100% 1px}
.link:hover,.link:focus-visible{background-size:100% 1px}
.ulink:hover,.ulink:focus-visible{background-size:0 1px;background-position:100% 100%}
.round{
  width:3.4rem;height:3.4rem;border-radius:50%;border:1px solid currentColor;background:transparent;display:grid;place-items:center;
  transition:background .4s var(--ease),color .4s var(--ease);
}
.round:hover,.round:focus-visible{background:var(--velvet);color:var(--silk)}

/* ============ Barre de lecture, curseur ============ */
.progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:300;pointer-events:none}
.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-soft));transform:scaleX(0);transform-origin:0 50%}
.cursor{position:fixed;left:0;top:0;z-index:2000;pointer-events:none;opacity:0;display:none}
@media (hover:hover) and (pointer:fine){.cursor{display:block}}
.cursor span{
  position:absolute;left:-18px;top:-18px;width:36px;height:36px;border:1px solid var(--gold);border-radius:50%;
  display:grid;place-items:center;font:500 .5rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:transparent;
  transition:transform .5s var(--ease),background .4s,color .3s;
}
.cursor span::after{content:attr(data-label)}
.cursor.is-link span{transform:scale(1.7);background:rgba(185,143,85,.18)}
.cursor.is-view span{transform:scale(2.5);background:var(--gold);color:var(--velvet)}

/* ============ Préchargeur ============ */
.loader{position:fixed;inset:0;z-index:1000;color:var(--silk);display:grid;place-items:center;will-change:transform}
.loader__bg{position:absolute;inset:0;background:var(--velvet)}
.loader__curve{position:absolute;left:0;top:calc(100% - 1px);width:100%;height:18vh;fill:var(--velvet)}
.loader__center{position:relative;z-index:2;text-align:center;display:grid;gap:1.4rem;justify-items:center}
.loader__scene{position:relative;width:150px;height:170px}
.loader__drop{position:absolute;left:50%;top:0;width:30px;height:30px;margin-left:-15px;color:var(--gold)}
.loader__ripple{position:absolute;left:50%;bottom:20px;width:150px;height:46px;margin:0 0 -23px -75px;border:1px solid var(--gold-soft);border-radius:50%;opacity:0}
.loader__word{font:300 clamp(1.7rem,4.4vw,3.2rem)/1.05 var(--f-display);letter-spacing:-.01em}
.loader__word em{color:var(--gold-soft)}
.lw{display:inline-block;overflow:hidden;vertical-align:bottom;padding:.1em .06em .2em;margin:-.1em -.06em -.2em}
.lw>span{display:inline-block}
.loader__count{font:400 .78rem/1 var(--f-body);letter-spacing:.3em;color:var(--gold-soft);font-variant-numeric:tabular-nums}
.loader__count small{font-size:.7em;margin-left:.2em}
.loaded .loader{display:none}

/* ============ Navigation ============ */
.nav{
  position:fixed;left:0;right:0;top:0;z-index:110;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;
  padding:clamp(14px,1.8vw,24px) var(--gut);color:var(--silk);
  transition:transform .7s var(--ease),background .5s,color .5s,box-shadow .5s,padding .5s var(--ease);
}
.nav.is-solid{background:rgba(245,239,230,.86);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:var(--velvet);box-shadow:0 1px 0 rgba(29,23,20,.08);padding-block:clamp(10px,1.2vw,16px)}
.nav.is-hidden{transform:translateY(-110%)}
.nav.is-menu{background:transparent;color:var(--silk);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.nav__logo{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;font:300 1.55rem/1 var(--f-display);letter-spacing:-.02em;justify-self:start}
.nav__logo em{font-style:italic;color:var(--gold-soft)}
.nav.is-solid .nav__logo em{color:var(--gold-deep)}
.nav__drop{width:.8em;height:.8em;color:var(--gold)}
.nav__links{display:flex;gap:clamp(1.2rem,2.6vw,2.8rem)}
.nav__links a{
  position:relative;text-decoration:none;font:500 .74rem/1 var(--f-body);letter-spacing:.2em;text-transform:uppercase;padding:.6em 0;
}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:.1em;height:1px;background:currentColor;transform:scaleX(0);transform-origin:100% 50%;transition:transform .5s var(--ease)}
.nav__links a:hover::after,.nav__links a.is-active::after,.nav__links a:focus-visible::after{transform:scaleX(1);transform-origin:0 50%}
.nav__cta{justify-self:end}
.nav__burger{display:none;justify-self:end;width:46px;height:46px;border-radius:50%;border:1px solid currentColor;background:transparent;position:relative;color:inherit}
.nav__burger i{position:absolute;left:13px;right:13px;height:1.5px;background:currentColor;transition:transform .5s var(--ease)}
.nav__burger i:first-child{top:19px}
.nav__burger i:last-child{top:26px}
.nav__burger[aria-expanded="true"] i:first-child{transform:translateY(3.5px) rotate(45deg)}
.nav__burger[aria-expanded="true"] i:last-child{transform:translateY(-3.5px) rotate(-45deg)}

.menu{position:fixed;inset:0;z-index:105;visibility:hidden;color:var(--silk);display:flex;flex-direction:column;justify-content:center;padding:100px var(--gut) 40px}
.menu.is-open{visibility:visible}
.menu__bg{position:fixed;right:calc(var(--gut) + 23px);top:calc(24px + 23px);width:300vmax;height:300vmax;margin:-150vmax -150vmax 0 0;border-radius:50%;background:var(--velvet);transform:scale(0);will-change:transform}
.menu__nav{position:relative;display:grid;gap:.2rem}
.menu__nav a{display:block;overflow:hidden;text-decoration:none;font:300 clamp(2.2rem,9vw,3.6rem)/1.15 var(--f-display);letter-spacing:-.02em;padding:.05em 0 .12em}
.menu__nav a span{display:block}
.menu__nav a:hover,.menu__nav a:focus-visible{color:var(--gold-soft);font-style:italic}
.menu__foot{position:relative;display:grid;gap:1.2rem;justify-items:start;margin-top:2.4rem}
.menu__tel{font:300 1.8rem/1 var(--f-display);text-decoration:none;color:var(--gold-soft)}

/* ============ HERO ============ */
.hero{
  position:relative;min-height:100vh;min-height:100svh;color:var(--silk);overflow:hidden;isolation:isolate;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:clamp(120px,18vh,200px) var(--gut) clamp(20px,3.4vh,40px);background:var(--velvet);
}
.hero__media{position:absolute;left:0;right:0;top:-9%;bottom:-9%;z-index:-4}
.hero__video{width:100%;height:100%;object-fit:cover;object-position:50% 40%;transform-origin:50% 40%;will-change:transform}
.hero__shade{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(29,23,20,.66) 0%,rgba(29,23,20,.24) 36%,rgba(29,23,20,.82) 100%),
    radial-gradient(70% 55% at 80% 28%,rgba(162,127,196,.32),transparent 70%);
}
.hero__glow{position:absolute;left:-10%;bottom:-20%;width:80vw;height:80vw;z-index:-3;pointer-events:none;border-radius:50%;
  background:radial-gradient(circle,rgba(185,143,85,.30),transparent 62%);will-change:transform}
.hero__bokeh{position:absolute;inset:0;z-index:-2;pointer-events:none}
.hero__bokeh i{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(227,201,152,.55),rgba(227,201,152,0) 70%);animation:floaty 9s ease-in-out infinite alternate}
.hero__bokeh i:nth-child(1){left:8%;top:30%;width:90px;height:90px}
.hero__bokeh i:nth-child(2){left:30%;top:18%;width:46px;height:46px;animation-duration:7s;animation-delay:-2s}
.hero__bokeh i:nth-child(3){left:58%;top:26%;width:120px;height:120px;animation-duration:11s}
.hero__bokeh i:nth-child(4){left:76%;top:52%;width:64px;height:64px;animation-duration:8s;animation-delay:-4s}
.hero__bokeh i:nth-child(5){left:90%;top:20%;width:38px;height:38px;animation-duration:6s}
.hero__bokeh i:nth-child(6){left:44%;top:60%;width:70px;height:70px;animation-duration:10s;animation-delay:-5s}
@keyframes floaty{from{transform:translate3d(0,0,0)}to{transform:translate3d(18px,-34px,0)}}

.plumes{position:absolute;inset:0;z-index:1;pointer-events:none}
.plume{position:absolute;bottom:-3%;aspect-ratio:200/520;will-change:transform}
.plume--1{left:-6%;width:clamp(140px,17vw,300px);opacity:.85}
.plume--2{right:3%;width:clamp(130px,16vw,280px)}
.plume--3{right:19%;width:clamp(90px,10vw,170px);opacity:.75}
.plume__sway{width:100%;height:100%;transform-origin:50% 100%;animation:sway 8s ease-in-out infinite alternate}
.plume--2 .plume__sway{animation-duration:9.5s;animation-delay:-3s}
.plume--3 .plume__sway{animation-duration:7s;animation-delay:-1.5s}
.plume svg{width:100%;height:100%;overflow:visible;stroke:var(--plume,var(--silk));fill:none;stroke-linecap:round}
@keyframes sway{from{transform:rotate(-2.2deg)}to{transform:rotate(2.6deg)}}

.hero__content{position:relative;z-index:3;max-width:var(--maxw);width:100%;margin-inline:auto;will-change:transform}
.hero__title{
  font:300 clamp(4.6rem,19vw,22rem)/.84 var(--f-display);letter-spacing:-.045em;
  margin:.12em 0 .14em -.04em;will-change:transform;
}
.hero__title em{color:var(--gold-soft)}
.hero__lead{max-width:34rem;font-size:clamp(1.02rem,1.3vw,1.25rem);line-height:1.6;color:rgba(245,239,230,.92)}
.hero__cta{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:1.8rem}
.hero__meta{
  position:relative;z-index:3;width:100%;max-width:var(--maxw);margin:clamp(28px,5vh,56px) auto 0;
  display:flex;justify-content:space-between;align-items:center;gap:1rem 2rem;flex-wrap:wrap;
  padding-top:1.1rem;border-top:1px solid rgba(245,239,230,.28);font-size:.88rem;
}
.hero__rating{display:inline-flex;align-items:center;gap:.8rem}
.hero__rating strong{font-weight:500}
.hero__addr{display:inline-flex;align-items:center;gap:.5rem;opacity:.9}
.hero__scroll{display:inline-flex;align-items:center;gap:.9rem;text-decoration:none;font:500 .7rem/1 var(--f-body);letter-spacing:.3em;text-transform:uppercase}
.hero__scroll i{position:relative;display:block;width:1px;height:46px;background:rgba(245,239,230,.35);overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;left:-1px;top:0;width:3px;height:14px;border-radius:3px;background:var(--gold-soft);animation:drip 2.2s var(--ease) infinite}
@keyframes drip{0%{transform:translateY(-16px)}70%,100%{transform:translateY(50px)}}

/* ============ MARQUEE ============ */
.marquee{
  position:relative;z-index:4;background:var(--gold);color:var(--velvet);overflow:hidden;
  margin:-2.4rem -3% -1.8rem;padding:.9rem 0 .8rem;transform:rotate(-1.6deg);
  box-shadow:0 18px 40px rgba(29,23,20,.28);
}
.marquee__row{overflow:hidden;white-space:nowrap;transform:skewX(calc(var(--sk,0) * 1deg))}
.marquee__inner{display:flex;width:max-content;will-change:transform}
.marquee__group{display:flex;align-items:center;flex:none}
.marquee__group span{font:italic 300 clamp(1.7rem,4.2vw,3.6rem)/1.2 var(--f-display);letter-spacing:-.02em;padding:0 .35em}
.marquee__group i{display:block;width:.55em;height:.55em;background:var(--velvet);border-radius:0 50% 50% 50%;transform:rotate(45deg);flex:none;margin:0 .6em}
.marquee__row--outline span{font-style:normal;color:transparent;-webkit-text-stroke:1px var(--velvet)}
.marquee__row--outline i{background:transparent;border:1px solid var(--velvet)}

/* ============ LE RITUEL (pinné) ============ */
.ritual{position:relative;background:var(--silk);padding-top:clamp(2.2rem,4vw,3.2rem)}
.ritual__pin{
  position:relative;max-width:var(--maxw);margin-inline:auto;height:100vh;min-height:640px;
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(24px,5vw,90px);align-items:center;
  padding:clamp(60px,9vh,100px) var(--gut) clamp(30px,5vh,60px);
}
.ritual__media{position:relative;display:grid;place-items:center;height:100%}
.ritual__frame{position:relative;width:min(100%,500px);aspect-ratio:3/4;max-height:78vh;overflow:hidden;background:var(--sand);box-shadow:0 40px 80px -40px rgba(29,23,20,.5)}
.ritual__img{position:absolute;inset:0;overflow:hidden}
.ritual__img img{width:100%;height:100%;object-fit:cover;will-change:transform}
.ritual__ripples{--rs:clamp(420px,50vw,720px);position:absolute;left:50%;top:50%;width:var(--rs);height:var(--rs);margin:calc(var(--rs) / -2) 0 0 calc(var(--rs) / -2);fill:none;stroke:var(--gold);stroke-width:.8;opacity:.55;z-index:-1;will-change:transform}
.ritual__text{position:relative;min-width:0}
.ritual__text .h2{font-size:clamp(2.2rem,4.8vw,4.8rem);margin-bottom:.4em}
.ritual__intro{max-width:34rem;color:var(--taupe)}
.ritual__stage{position:relative;margin-top:clamp(1.6rem,3.6vh,2.8rem);height:clamp(250px,36vh,340px)}
.ritual__num{
  position:absolute;right:0;top:-.15em;z-index:0;height:1em;overflow:hidden;
  font:300 clamp(6rem,13vw,12rem)/1 var(--f-display);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px rgba(140,103,48,.5);
}
.ritual__num span{display:block;height:1em;text-align:right}
.step{position:absolute;left:0;right:0;top:0;z-index:1;max-width:36rem}
.step__fig{display:none}
.step__title{font:300 clamp(1.7rem,2.8vw,2.7rem)/1.1 var(--f-display);letter-spacing:-.02em;margin-bottom:.6em}
.step p{max-width:32rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.1rem}
.chips li{padding:.5em 1.05em;border:1px solid rgba(29,23,20,.22);border-radius:999px;font-size:.76rem;letter-spacing:.07em;background:rgba(245,239,230,.7)}
.ritual__progress{position:relative;height:2px;background:rgba(29,23,20,.12);margin-top:1.2rem;overflow:hidden}
.ritual__progress i{position:absolute;inset:0;background:var(--gold);transform:scaleX(0);transform-origin:0 50%}

/* ============ Séparateurs de sections ============ */
.sep{position:relative;display:block;z-index:2;height:clamp(40px,7.5vw,120px);background:var(--to);line-height:0}
.sep svg{display:block;width:100%;height:100%;fill:var(--from)}
.sep--flip svg{transform:scaleX(-1)}

/* ============ HEAD SPA HOLISTIQUE (défilement horizontal) ============ */
.soins{position:relative;background:var(--velvet);color:var(--silk);overflow:hidden}
.soins__pin{position:relative;height:100vh;min-height:620px;display:flex;align-items:center}
.soins__track{display:flex;align-items:stretch;gap:clamp(18px,2.4vw,40px);padding:0 var(--gut);height:min(86vh,790px);width:max-content;will-change:transform;outline-offset:-4px}
.soins__intro{flex:0 0 clamp(330px,35vw,540px);display:flex;flex-direction:column;justify-content:center;padding-right:clamp(10px,3vw,50px)}
.soins__intro .h2{font-size:clamp(2.2rem,4.6vw,4.6rem)}
.soins__intro>p:not(.eyebrow):not(.soins__hint){color:rgba(245,239,230,.82);max-width:30rem}
.ideal{margin-top:1.4rem;display:grid;gap:.5rem}
.ideal li{position:relative;padding-left:1.7rem;font-size:.95rem}
.ideal li::before{content:"";position:absolute;left:.1rem;top:.55em;width:.5em;height:.5em;background:var(--gold);border-radius:0 50% 50% 50%;transform:rotate(45deg)}
.ideal--dark li::before{background:var(--gold-deep)}
.soins__hint{display:inline-flex;align-items:center;gap:.7rem;margin-top:2rem;font:500 .72rem/1 var(--f-body);letter-spacing:.26em;text-transform:uppercase;color:var(--gold-soft)}
.soins__hint .ic{animation:nudge 1.8s var(--ease) infinite}
@keyframes nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(8px)}}

.card{flex:0 0 clamp(310px,26vw,410px);height:100%;perspective:1100px}
.card__in{
  position:relative;height:100%;display:flex;flex-direction:column;overflow:hidden;
  --pad:clamp(22px,2vw,32px);--dome:clamp(104px,16vh,150px);
  padding:12px var(--pad) clamp(16px,2.2vh,26px);
  border-radius:50% 50% 26px 26px/var(--dome) var(--dome) 26px 26px;color:var(--fg,var(--velvet));
  background:var(--bg,var(--sand));transform-style:preserve-3d;will-change:transform;
  box-shadow:0 40px 70px -35px rgba(0,0,0,.6);
}
.card--blush{--bg:#EBCBC4}
.card--sand{--bg:var(--sand)}
.card--gold{--bg:linear-gradient(165deg,#D9B67F,#B98F55)}
.card--glow{--bg:linear-gradient(165deg,#7A5E96,#4A3A62);--fg:var(--silk)}
.card__glare{position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(circle at var(--gx,50%) var(--gy,20%),rgba(255,255,255,.5),transparent 55%);z-index:3}
.card:hover .card__glare{opacity:.8}
.card__photo{
  position:relative;flex:none;overflow:hidden;background:rgba(29,23,20,.12);
  height:calc(var(--dome) + clamp(16px,3.8vh,42px));
  margin:0 calc(12px - var(--pad)) clamp(.8rem,1.8vh,1.2rem);
  border-radius:50% 50% 18px 18px/calc(var(--dome) - 12px) calc(var(--dome) - 12px) 18px 18px;
}
.card__photo img{width:100%;height:100%;object-fit:cover;transform:scale(1.2);will-change:transform}
.card__photo::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.4);pointer-events:none}
.card__n{position:relative;font:500 .74rem/1 var(--f-body);letter-spacing:.28em;text-transform:uppercase;display:flex;gap:1rem;align-items:center;justify-content:center;margin-bottom:.9rem}
.card__n span{padding:.4em .9em;border:1px solid currentColor;border-radius:999px;font-size:.66rem;letter-spacing:.14em}
.card__name{position:relative;text-align:center;font:300 clamp(1.9rem,2.6vw,2.7rem)/1 var(--f-display);letter-spacing:-.02em}
.card__name em{font-style:italic}
.card__dur{position:relative;text-align:center;margin:.5rem 0 1rem;font-size:.86rem;letter-spacing:.1em;text-transform:uppercase;opacity:.8}
.card__list{position:relative;display:grid;gap:clamp(.26rem,.55vh,.42rem);font-size:clamp(.74rem,1.65vh,.86rem);line-height:1.38;border-top:1px solid currentColor;padding-top:1rem;opacity:.95}
.card__list li{position:relative;padding-left:1.3rem}
.card__list li::before{content:"";position:absolute;left:.1rem;top:.5em;width:.42em;height:.42em;background:currentColor;border-radius:0 50% 50% 50%;transform:rotate(45deg);opacity:.7}
.card__note{margin-top:.8rem;font-size:.78rem;font-weight:500;letter-spacing:.06em}
.card__foot{position:relative;margin-top:auto;padding-top:1rem;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}
.card__price{font:300 clamp(2.8rem,min(5vw,7.2vh),4.8rem)/.9 var(--f-display);letter-spacing:-.04em}
.card__price small{font-size:.36em;margin-left:.1em;vertical-align:.8em;letter-spacing:0}
.soins__outro{flex:0 0 clamp(300px,28vw,420px);display:flex;flex-direction:column;justify-content:center;gap:1.8rem;align-items:flex-start;padding-right:var(--gut)}
.soins__outro-t{font:300 clamp(2rem,3.4vw,3.2rem)/1.1 var(--f-display);letter-spacing:-.02em}
.soins__outro-t em{color:var(--gold-soft)}
.soins__bar{position:absolute;left:var(--gut);right:var(--gut);bottom:5.5vh;height:2px;background:rgba(245,239,230,.16);overflow:hidden}
.soins__bar i{position:absolute;inset:0;background:var(--gold);transform:scaleX(0);transform-origin:0 50%}

/* ============ MASSAGES (liste interactive) ============ */
.carte{position:relative;background:var(--sand);padding:clamp(70px,9vw,140px) 0 clamp(70px,9vw,130px)}
.carte__wrap{display:grid;grid-template-columns:minmax(0,4.4fr) minmax(0,7fr);gap:clamp(30px,6vw,110px);align-items:start}
.carte__head{position:sticky;top:16vh}
.carte__head .h2{font-size:clamp(2.2rem,4.4vw,4.4rem)}
.carte__head>p:not(.eyebrow){color:var(--taupe);max-width:28rem}
.carte__list{border-top:1px solid rgba(29,23,20,.28)}
.row{position:relative;border-bottom:1px solid rgba(29,23,20,.28)}
.row__head{
  width:100%;display:grid;align-items:center;column-gap:clamp(.8rem,1.6vw,1.6rem);text-align:left;background:none;border:0;padding:clamp(1.1rem,2vw,1.7rem) 0;
  grid-template-columns:2.2rem minmax(0,1fr) auto 3.8rem 1.4rem;
  grid-template-areas:"n name dur price plus" "n zones dur price plus";
}
.row__n{grid-area:n;font:500 .72rem/1 var(--f-body);letter-spacing:.2em;color:var(--taupe);transition:color .4s}
.row__name{grid-area:name;font:300 clamp(1.45rem,2.7vw,2.5rem)/1.1 var(--f-display);letter-spacing:-.02em;transition:transform .6s var(--ease),font-style .3s}
.row__zones{grid-area:zones;font-size:.86rem;color:var(--taupe);transition:transform .6s var(--ease)}
.row__dur{grid-area:dur;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--taupe)}
.row__price{grid-area:price;text-align:right;font:300 clamp(1.5rem,2.4vw,2.2rem)/1 var(--f-display)}
.row__plus{grid-area:plus;position:relative;width:1rem;height:1rem}
.row__plus::before,.row__plus::after{content:"";position:absolute;left:0;top:50%;width:100%;height:1.5px;background:currentColor;transition:transform .5s var(--ease)}
.row__plus::after{transform:rotate(90deg)}
.row.is-open .row__plus::after{transform:rotate(0)}
.row__body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .7s var(--ease)}
.row__body>div{overflow:hidden}
.row__body p{max-width:42rem;padding:0 2rem 1.6rem 2.2rem;color:var(--taupe)}
.row.is-open .row__body{grid-template-rows:1fr}
@media (hover:hover){
  .row__head:hover .row__name,.row__head:hover .row__zones{transform:translateX(14px)}
  .row__head:hover .row__n{color:var(--gold-deep)}
  .row__head:hover .row__name{font-style:italic}
}
.carte__cta{margin-top:2.2rem;display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap}
.carte__preview{
  position:fixed;left:0;top:0;z-index:60;width:clamp(170px,16vw,250px);aspect-ratio:3/4;border-radius:var(--arch);overflow:hidden;
  pointer-events:none;opacity:0;box-shadow:0 30px 60px -20px rgba(29,23,20,.5);will-change:transform;
}
.carte__preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .45s var(--ease)}
.carte__preview img.on{opacity:1}
@media (hover:none){.carte__preview{display:none}}

/* ============ CHIFFRES ============ */
.stats{position:relative;background:var(--silk);overflow:hidden;padding:clamp(70px,9vw,140px) 0}
.stats__ripples{--rs:min(900px,95vw);position:absolute;right:-14%;top:50%;width:var(--rs);height:var(--rs);margin-top:calc(var(--rs) / -2);fill:none;stroke:var(--gold);stroke-width:.9;opacity:.4;pointer-events:none;will-change:transform}
.stats .wrap{position:relative}
.stats__title{font-size:clamp(2.4rem,6vw,6rem);margin-bottom:.3em}
.stats__lead{max-width:32rem;color:var(--taupe)}
.stats__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(40px,6vw,90px);border-top:1px solid rgba(29,23,20,.25)}
.stat{padding:1.8rem 1.2rem 0 1.4rem;border-left:1px solid rgba(29,23,20,.2)}
.stat:first-child{border-left:0;padding-left:0}
.stat dt{order:2;font:500 .76rem/1.3 var(--f-body);letter-spacing:.22em;text-transform:uppercase}
.stat dt small{display:block;margin-top:.5rem;font-weight:300;letter-spacing:.08em;text-transform:none;font-size:.9rem;color:var(--taupe)}
.stat{display:flex;flex-direction:column}
.stat dd{order:1;margin-bottom:1rem;display:flex;align-items:flex-start;gap:.15em}
.stat .num{font:300 clamp(3.6rem,9.5vw,9rem)/.95 var(--f-display);letter-spacing:-.05em;font-variant-numeric:tabular-nums;display:inline-block}
.stat sup{font:italic 300 clamp(1.1rem,2.4vw,2.2rem)/1 var(--f-display);color:var(--gold-deep);margin-top:.5em}

/* ============ GALERIE ============ */
.galerie{position:relative;background:var(--velvet);color:var(--silk);padding:clamp(40px,5vw,80px) 0 clamp(70px,9vw,130px);overflow:hidden}
.galerie__head p:not(.eyebrow){color:rgba(245,239,230,.8);max-width:30rem}
.gal{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(12px,2vw,28px);margin:clamp(36px,6vw,80px) 0 1.6rem;align-items:start}
.tile{position:relative;display:block;width:100%;padding:0;border:0;background:none;text-align:left;color:inherit;transform-style:preserve-3d;will-change:transform}
.tile__img{display:block;position:relative;overflow:hidden;width:100%;height:100%;border-radius:14px;background:var(--velvet-2)}
.tile__img img{position:absolute;left:0;top:-9%;width:100%;height:118%;object-fit:cover;will-change:transform}
.tile__cap{
  position:absolute;left:.9rem;bottom:.9rem;z-index:2;padding:.55em 1.1em;border-radius:999px;
  background:rgba(245,239,230,.92);color:var(--velvet);font:500 .72rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;
  transform:translateY(160%);opacity:0;transition:transform .6s var(--ease),opacity .4s;
}
.tile:hover .tile__cap,.tile:focus-visible .tile__cap{transform:translateY(0);opacity:1}
@media (hover:none){.tile__cap{transform:none;opacity:1}}
.tile--arch .tile__img{border-radius:var(--arch)}
.tile--pebble .tile__img{border-radius:58% 42% 55% 45%/48% 56% 44% 52%}
.tile--round .tile__img{border-radius:50%}
.tile--a1{grid-column:1/6;aspect-ratio:4/5}
.tile--a2{grid-column:6/13;aspect-ratio:16/10;margin-top:clamp(40px,9vw,150px)}
.tile--b1{grid-column:1/5;aspect-ratio:4/5}
.tile--b2{grid-column:5/9;aspect-ratio:1;margin-top:clamp(30px,6vw,100px)}
.tile--b3{grid-column:9/13;aspect-ratio:3/4}
.tile--c1{grid-column:1/7;aspect-ratio:4/3}
.tile--c2{grid-column:7/10;aspect-ratio:1;margin-top:clamp(30px,5vw,80px)}
.tile--c3{grid-column:10/13;aspect-ratio:3/4}
.tile--c3 img{object-position:84% 50%}
.tile--b2 img{object-position:50% 60%}

/* ============ AVIS ============ */
.avis{position:relative;background:var(--blush);padding:clamp(60px,8vw,130px) 0 clamp(60px,7vw,100px);overflow:hidden}
.avis__top{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap}
.avis__top .h2{font-size:clamp(2.3rem,5.6vw,5.6rem);max-width:15ch}
.avis__score{display:grid;gap:.6rem;justify-items:start;padding-bottom:1rem}
.avis__big{font:300 clamp(4.4rem,9vw,8rem)/.9 var(--f-display);letter-spacing:-.05em}
.avis__big small{font:italic 300 .32em/1 var(--f-display);color:var(--gold-deep);margin-left:.15em;letter-spacing:0}
.avis__src{font-size:.88rem;color:var(--taupe);line-height:1.5}
.avis__rail{
  margin-top:clamp(30px,4vw,60px);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;
  padding:1.6rem calc(var(--gut) + 0px) 2.6rem;cursor:grab;-webkit-overflow-scrolling:touch;outline-offset:-4px;
}
.avis__rail::-webkit-scrollbar{display:none}
.avis__rail.is-drag{cursor:grabbing;scroll-snap-type:none}
.avis__track{display:flex;gap:clamp(16px,2vw,28px);width:max-content;padding-right:var(--gut)}
.rev{
  position:relative;flex:0 0 clamp(290px,30vw,430px);scroll-snap-align:center;display:flex;flex-direction:column;gap:1rem;
  min-height:320px;padding:2rem 2rem 1.6rem;border-radius:26px;background:var(--silk);
  box-shadow:0 24px 50px -30px rgba(29,23,20,.4);will-change:transform,opacity;user-select:none;
}
.rev__q{position:absolute;right:1.3rem;top:.2rem;font:300 7.5rem/1 var(--f-display);color:var(--gold);opacity:.3;pointer-events:none}
.rev blockquote{flex:1}
.rev blockquote p{font:300 clamp(1.1rem,1.45vw,1.4rem)/1.42 var(--f-display);letter-spacing:-.01em}
.rev footer{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-size:.84rem;color:var(--taupe);border-top:1px solid rgba(29,23,20,.14);padding-top:.9rem}
.rev footer b{font-weight:500;color:var(--velvet)}
.avis__ctrl{display:grid;grid-template-columns:1fr auto;gap:1rem 2rem;align-items:center}
.avis__bar{position:relative;height:2px;background:rgba(29,23,20,.14);overflow:hidden}
.avis__bar i{position:absolute;inset:0;background:var(--gold-deep);transform:scaleX(.1);transform-origin:0 50%}
.avis__btns{display:flex;gap:.6rem}
.avis__ctrl .fine{grid-column:1/-1;max-width:46rem}

/* ============ CARTES CADEAUX ============ */
.cadeau{position:relative;background:var(--velvet);color:var(--silk);overflow:hidden;padding:clamp(70px,9vw,140px) 0}
.cadeau__glow{position:absolute;left:-10%;top:10%;width:70vw;height:70vw;border-radius:50%;background:radial-gradient(circle,rgba(162,127,196,.28),transparent 62%);pointer-events:none}
.cadeau__wrap{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(30px,6vw,100px);align-items:center}
.cadeau__card{perspective:1400px;display:grid;place-items:center;padding:2rem 0}
.gcard{position:relative;width:min(100%,470px);aspect-ratio:1.586;transform-style:preserve-3d;will-change:transform}
.gcard__face{position:absolute;inset:0;border-radius:22px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;padding:clamp(18px,3vw,34px)}
.gcard__face--front{background:linear-gradient(135deg,#34261D,#1D1714 60%);box-shadow:inset 0 0 0 1px rgba(227,201,152,.5),0 40px 80px -30px rgba(0,0,0,.8);display:flex;flex-direction:column;justify-content:flex-end}
.gcard__face--back{transform:rotateY(180deg);background:linear-gradient(135deg,#E3C998,#B98F55);color:var(--velvet);display:grid;place-content:center;text-align:center;gap:.6rem;box-shadow:0 40px 80px -30px rgba(0,0,0,.8)}
.gcard__face--back p{font:italic 300 clamp(1.5rem,3vw,2.3rem)/1.1 var(--f-display)}
.gcard__face--back small{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase}
.gcard__drop{position:absolute;left:clamp(18px,3vw,34px);top:clamp(18px,3vw,34px);width:1.5rem;height:1.5rem;color:var(--gold)}
.gcard__t{font:300 clamp(2rem,4.4vw,3.4rem)/1 var(--f-display);letter-spacing:-.03em;position:relative}
.gcard__t em{color:var(--gold-soft)}
.gcard__s{position:relative;font-size:.76rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(245,239,230,.7);margin-top:.5rem}
.gcard__arch{position:absolute;right:6%;top:12%;width:34%;fill:none;stroke:var(--gold-soft);stroke-width:1;opacity:.45}
.gcard__sheen{position:absolute;inset:-20% auto -20% -40%;width:35%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.22),transparent);transform:skewX(-18deg);animation:sheen 5.5s ease-in-out infinite}
@keyframes sheen{0%,55%{transform:translateX(0) skewX(-18deg)}100%{transform:translateX(520%) skewX(-18deg)}}
.cadeau__text>p:not(.eyebrow):not(.fine){color:rgba(245,239,230,.85);max-width:32rem}
.gift-ways{display:grid;gap:1rem;margin:1.6rem 0;max-width:34rem}
.gift-ways li{display:grid;gap:.2rem;padding:1.1rem 1.3rem;border:1px solid rgba(245,239,230,.2);border-radius:20px;background:rgba(245,239,230,.05)}
.gift-ways b{font:italic 300 1.4rem/1.1 var(--f-display);color:var(--gold-soft)}
.gift-ways span{font-size:.94rem;color:rgba(245,239,230,.82)}
.cadeau__cta{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:1.6rem}

/* ============ AVANT DE VENIR ============ */
.infos{position:relative;background:var(--silk);padding:clamp(60px,8vw,120px) 0 clamp(70px,9vw,130px)}
.infos__head .h2{font-size:clamp(2.3rem,5.4vw,5.4rem)}
.infos__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,28px);margin-top:clamp(30px,4vw,60px)}
.info{padding:clamp(1.4rem,2vw,2.2rem);border:1px solid rgba(29,23,20,.16);border-radius:26px;background:rgba(232,218,198,.35);transition:transform .6s var(--ease),background .5s,border-color .5s}
.info:hover{transform:translateY(-6px);background:var(--sand);border-color:rgba(29,23,20,.3)}
.info__ic{box-sizing:content-box;width:26px;height:26px;padding:20px 19px 14px;margin-bottom:1.3rem;border:1px solid var(--gold-deep);border-radius:999px 999px 8px 8px;color:var(--gold-deep);stroke-width:1.3}
.info h3{font:300 clamp(1.4rem,1.9vw,1.8rem)/1.15 var(--f-display);letter-spacing:-.015em;margin-bottom:.6rem}
.info p{font-size:.96rem;color:var(--taupe)}

/* ============ RÉSERVATION ============ */
.resa{position:relative;background:var(--velvet);color:var(--silk);overflow:hidden;padding:clamp(70px,9vw,140px) 0}
.resa__glow{position:absolute;right:-20%;top:-10%;width:90vw;height:90vw;border-radius:50%;background:radial-gradient(circle,rgba(162,127,196,.26),transparent 60%);pointer-events:none}
.resa__wrap{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(30px,6vw,100px);align-items:start}
.resa__lead{color:rgba(245,239,230,.85);max-width:30rem}
.resa__online,.resa__call{margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(245,239,230,.2)}
.resa__online p:not(.resa__tag){color:rgba(245,239,230,.82);max-width:28rem;margin-bottom:1.3rem}
.resa__tag{font:500 .74rem/1 var(--f-body);letter-spacing:.28em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:.9rem}
.resa__tel{display:inline-block;font:300 clamp(2.2rem,5vw,4.2rem)/1 var(--f-display);letter-spacing:-.03em;color:var(--silk);text-decoration:none;
  background:linear-gradient(var(--gold-soft),var(--gold-soft)) 0 100%/0 2px no-repeat;padding-bottom:.1em;transition:background-size .7s var(--ease),color .4s}
.resa__tel:hover,.resa__tel:focus-visible{background-size:100% 2px;color:var(--gold-soft)}
.resa__form{display:grid;gap:1.3rem;padding:clamp(22px,3vw,40px);border-radius:32px;border:1px solid rgba(245,239,230,.18);background:rgba(245,239,230,.06);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.resa__form-head h3{font:300 clamp(1.7rem,2.6vw,2.4rem)/1.1 var(--f-display);letter-spacing:-.02em}
.resa__form-head p{margin-top:.5rem;font-size:.95rem;color:rgba(245,239,230,.75)}
.field{display:grid;gap:.55rem;border:0;min-width:0}
.field>span,.field>label,.field legend{font:500 .7rem/1 var(--f-body);letter-spacing:.24em;text-transform:uppercase;color:var(--gold-soft);padding:0}
.field>label{cursor:pointer;width:max-content;max-width:100%}

/* Sélecteur sur mesure (remplace les menus natifs, qui ne se stylent pas) */
.field.is-enhanced>select{position:absolute;left:0;top:0;width:1px;height:1px;padding:0;border:0;opacity:0;pointer-events:none;clip-path:inset(50%)}
.field.is-enhanced{position:relative}
.sel{position:relative;z-index:1}
.sel.is-open{z-index:40}
.sel__btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;text-align:left;
  padding:1rem 1.15rem;border-radius:16px;border:1px solid rgba(245,239,230,.3);background:rgba(29,23,20,.6);color:var(--silk);
  font:400 1rem/1.3 var(--f-body);transition:border-color .3s,background .3s,box-shadow .3s;
}
.sel__btn:hover:not(:disabled){border-color:var(--gold-soft)}
.sel.is-open .sel__btn,.sel__btn:focus-visible{border-color:var(--gold-soft);background:rgba(29,23,20,.88)}
.sel__btn:focus-visible{outline:2px solid var(--gold-soft);outline-offset:2px}
.sel__btn:disabled{opacity:.55;cursor:not-allowed}
.sel__val{min-width:0;flex:1;display:flex;align-items:baseline;justify-content:space-between;gap:.9rem}
.sel__val b{font:300 1.18rem/1.25 var(--f-display);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.sel__val small{flex:none;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-soft)}
.sel__val.is-ph{color:rgba(245,239,230,.55)}
.sel__caret{flex:none;width:.6rem;height:.6rem;margin-right:.1rem;border-right:1.5px solid var(--gold-soft);border-bottom:1.5px solid var(--gold-soft);transform:translateY(-2px) rotate(45deg);transition:transform .5s var(--ease)}
.sel.is-open .sel__caret{transform:translateY(2px) rotate(225deg)}
.sel__panel{
  position:absolute;left:0;right:0;top:calc(100% + 8px);max-height:min(352px,54vh);overflow-y:auto;overscroll-behavior:contain;
  padding:.5rem;border-radius:22px;border:1px solid rgba(227,201,152,.34);
  background:rgba(33,26,22,.97);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  box-shadow:0 34px 70px -22px rgba(0,0,0,.75),0 0 0 1px rgba(0,0,0,.2);
  scrollbar-width:thin;scrollbar-color:rgba(227,201,152,.4) transparent;
  visibility:hidden;opacity:0;transform:translateY(-10px) scale(.985);transform-origin:50% 0;
  transition:opacity .35s var(--ease),transform .5s var(--ease),visibility 0s .5s;
}
.sel.is-open .sel__panel{visibility:visible;opacity:1;transform:none;transition:opacity .3s var(--ease),transform .55s var(--ease)}
.sel__list{outline:none}
.sel__group+.sel__group{margin-top:.35rem;padding-top:.35rem;border-top:1px solid rgba(245,239,230,.12)}
.sel__group-lbl{display:flex;align-items:center;gap:.65rem;padding:.7rem .85rem .35rem;font:500 .64rem/1 var(--f-body);letter-spacing:.28em;text-transform:uppercase;color:var(--gold-soft)}
.sel__group-lbl::before{content:"";width:.5em;height:.5em;background:var(--gold);border-radius:0 50% 50% 50%;transform:rotate(45deg);flex:none}
.sel__opt{
  position:relative;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;cursor:pointer;
  padding:.72rem .85rem .72rem 1.15rem;border-radius:14px;color:var(--silk);transition:background .25s,color .25s;
}
.sel__opt b{font:300 1.14rem/1.25 var(--f-display);letter-spacing:-.01em;min-width:0}
.sel__opt small{flex:none;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(245,239,230,.62);transition:color .25s}
.sel__opt.is-active{background:rgba(227,201,152,.14)}
.sel__opt.is-active small{color:var(--gold-soft)}
.sel__opt.is-selected b{font-style:italic;color:var(--gold-soft)}
.sel__opt.is-selected::before{content:"";position:absolute;left:.4rem;top:50%;width:.42rem;height:.42rem;margin-top:-.21rem;background:var(--gold);border-radius:0 50% 50% 50%;transform:rotate(45deg)}
.sel--grid .sel__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:.45rem;padding:.25rem}
.sel--grid .sel__opt{justify-content:center;padding:.7rem .4rem;border:1px solid rgba(245,239,230,.22);border-radius:999px 999px 12px 12px}
.sel--grid .sel__opt b{font:300 1.12rem/1 var(--f-display)}
.sel--grid .sel__opt.is-selected{background:var(--gold);border-color:var(--gold);color:var(--velvet)}
.sel--grid .sel__opt.is-selected b{color:var(--velvet);font-style:normal}
.sel--grid .sel__opt.is-selected::before{display:none}
.sel--grid .sel__opt.is-active:not(.is-selected){border-color:var(--gold-soft)}
@media (max-width:600px){
  .sel__val small{display:none}
  .sel__opt{padding:.8rem .75rem .8rem 1.1rem}
}
.field input,.field select{
  width:100%;padding:1rem 1.15rem;border-radius:16px;border:1px solid rgba(245,239,230,.3);background:rgba(29,23,20,.6);color:var(--silk);
  font:400 1rem/1.3 var(--f-body);appearance:none;-webkit-appearance:none;transition:border-color .3s,background .3s;
}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--gold-soft) 50%),linear-gradient(135deg,var(--gold-soft) 50%,transparent 50%);background-position:calc(100% - 22px) 52%,calc(100% - 16px) 52%;background-size:6px 6px;background-repeat:no-repeat;padding-right:2.6rem}
.field input::placeholder{color:rgba(245,239,230,.4)}
.field input:focus,.field select:focus{border-color:var(--gold-soft);outline:none;background-color:rgba(29,23,20,.85)}
.field input:focus-visible,.field select:focus-visible{outline:2px solid var(--gold-soft);outline-offset:2px}
.field select:disabled{opacity:.55}
.field select option,.field select optgroup{color:#1D1714;background:#F5EFE6}
.days{display:flex;gap:.5rem;overflow-x:auto;padding:.2rem .1rem .6rem;scrollbar-width:thin;scrollbar-color:rgba(245,239,230,.3) transparent}
.day{position:relative;flex:0 0 auto}
.day input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}
.day label{display:grid;justify-items:center;gap:.15rem;min-width:62px;padding:.75rem .5rem .6rem;border:1px solid rgba(245,239,230,.3);border-radius:999px 999px 14px 14px;line-height:1.1;transition:background .3s,color .3s,border-color .3s}
.day label small{font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;opacity:.8}
.day label b{font:300 1.5rem/1.1 var(--f-display)}
.day input:checked+label{background:var(--gold);color:var(--velvet);border-color:var(--gold)}
.day input:focus-visible+label{outline:2px solid var(--gold-soft);outline-offset:2px}
.day:hover label{border-color:var(--gold-soft)}
.bubble{position:relative;padding:1.2rem 1.4rem;border-radius:22px 22px 22px 6px;background:var(--silk);color:var(--velvet)}
.bubble__label{display:block;margin-bottom:.5rem;font:500 .66rem/1 var(--f-body);letter-spacing:.24em;text-transform:uppercase;color:var(--gold-deep)}
.bubble p{font:300 1.12rem/1.45 var(--f-display);min-height:4.4em}
.bubble.is-empty p{color:var(--taupe);font-style:italic}
.resa__actions{display:flex;flex-wrap:wrap;gap:.7rem}

/* ============ NOUS TROUVER ============ */
.venir{position:relative;background:var(--sand);padding:clamp(60px,8vw,120px) 0 clamp(70px,9vw,130px)}
.venir__wrap{display:grid;grid-template-columns:minmax(0,5.2fr) minmax(0,6fr);gap:clamp(30px,6vw,100px);align-items:center}
.venir__map{position:relative;aspect-ratio:4/5;max-height:700px;width:100%;overflow:hidden;background:var(--silk);box-shadow:0 40px 80px -40px rgba(29,23,20,.5);will-change:clip-path}
.venir__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.35) sepia(.28) saturate(.9) contrast(1.02)}
.venir__text .h2{font-size:clamp(2.2rem,4.8vw,4.8rem)}
.venir__addr{display:grid;gap:.7rem;margin:.4rem 0 1.4rem;font:300 clamp(1.25rem,1.9vw,1.7rem)/1.3 var(--f-display)}
.venir__addr a{display:flex;gap:.9rem;align-items:flex-start;text-decoration:none;width:max-content;max-width:100%}
.venir__addr a:hover span,.venir__addr a:focus-visible span{font-style:italic}
.venir__addr .ic{margin-top:.2em;color:var(--gold-deep);width:1.1em;height:1.1em}
.venir__status{display:inline-flex;align-items:center;gap:.7rem;padding:.55em 1.1em;border-radius:999px;background:rgba(29,23,20,.07);font-size:.9rem;font-weight:500;margin-bottom:1.2rem}
.venir__status i{width:.6rem;height:.6rem;border-radius:50%;background:var(--taupe)}
.venir__status.is-open i{background:#4E8B5F;box-shadow:0 0 0 0 rgba(78,139,95,.5);animation:ping 2s infinite}
.venir__status.is-closed i{background:#A5584F}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(78,139,95,.5)}80%,100%{box-shadow:0 0 0 10px rgba(78,139,95,0)}}
.hours{width:100%;max-width:26rem;border-collapse:collapse;margin-bottom:.8rem}
.hours th,.hours td{padding:.55rem 0;text-align:left;font-weight:300;border-bottom:1px solid rgba(29,23,20,.16)}
.hours td{text-align:right;font-variant-numeric:tabular-nums}
.hours tr.is-today th,.hours tr.is-today td{font-weight:500}
.hours tr.is-today th::before{content:"";display:inline-block;width:.5em;height:.5em;margin-right:.7em;background:var(--gold-deep);border-radius:0 50% 50% 50%;transform:rotate(45deg)}
.venir__cta{margin:1.6rem 0 1.2rem}
.social{display:flex;flex-wrap:wrap;gap:.6rem 1.6rem}
.social a{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;font-size:.92rem;font-weight:400;border-bottom:1px solid rgba(29,23,20,.35);padding-bottom:.15em;transition:border-color .3s,color .3s}
.social a:hover,.social a:focus-visible{color:var(--gold-deep);border-color:var(--gold-deep)}

/* ============ FOOTER ============ */
.foot{position:relative;background:var(--velvet);color:var(--silk);overflow:hidden;padding:clamp(60px,8vw,110px) 0 1.6rem}
.foot__plumes{position:absolute;inset:0;pointer-events:none;--plume:var(--gold)}
.plume--f1{left:2%;bottom:-6%;width:clamp(120px,14vw,240px);opacity:.55}
.plume--f2{right:3%;bottom:-6%;width:clamp(100px,11vw,190px);opacity:.4}
.foot__top{position:relative;z-index:2;display:grid;grid-template-columns:2fr 1.2fr 1.2fr auto;gap:2rem;align-items:start}
.foot__col{display:grid;gap:.5rem;align-content:start;font-size:.95rem;color:rgba(245,239,230,.82)}
.foot__col ul{display:grid;gap:.4rem}
.foot__h{font:500 .72rem/1 var(--f-body);letter-spacing:.28em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:.6rem}
.foot a{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .5s var(--ease),color .3s}
.foot a:hover,.foot a:focus-visible{background-size:100% 1px;color:var(--gold-soft)}
.foot__up{width:3.6rem;height:3.6rem;border-radius:50%;border:1px solid rgba(245,239,230,.4);background:transparent;display:grid;place-items:center;color:var(--silk);transition:background .4s,color .4s}
.foot__up:hover,.foot__up:focus-visible{background:var(--gold);color:var(--velvet);border-color:var(--gold)}
.foot__giant{
  position:relative;z-index:1;text-align:center;white-space:nowrap;margin:clamp(30px,5vw,70px) 0 0;
  font:300 clamp(5rem,23vw,25rem)/.82 var(--f-display);letter-spacing:-.055em;color:var(--silk);
  -webkit-mask-image:linear-gradient(180deg,#000 35%,transparent 98%);mask-image:linear-gradient(180deg,#000 35%,transparent 98%);
}
.foot__giant em{color:var(--gold-soft)}
.foot__bottom{position:relative;z-index:2;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid rgba(245,239,230,.16);font-size:.8rem;color:rgba(245,239,230,.6)}

/* ============ Bouton flottant mobile ============ */
.fab{
  position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));z-index:90;display:none;gap:.4rem;padding:.4rem;border-radius:999px;
  background:rgba(29,23,20,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 14px 40px -10px rgba(0,0,0,.5);
  transform:translate(-50%,160%);transition:transform .7s var(--ease);
}
.fab.is-on{transform:translate(-50%,0)}
.fab__a{display:inline-flex;align-items:center;gap:.55rem;padding:.9em 1.4em;border-radius:999px;color:var(--silk);text-decoration:none;font:500 .74rem/1 var(--f-body);letter-spacing:.18em;text-transform:uppercase}
.fab__a--main{background:var(--gold);color:var(--velvet)}

/* ============ Lightbox ============ */
.lb{position:fixed;inset:0;z-index:2500;display:grid;place-items:center;visibility:hidden;opacity:0;transition:opacity .45s var(--ease),visibility 0s .45s}
.lb.is-open{visibility:visible;opacity:1;transition:opacity .45s var(--ease)}
.lb__bg{position:absolute;inset:0;background:rgba(18,14,12,.94)}
.lb__fig{position:relative;margin:0;display:grid;gap:.9rem;justify-items:center;max-width:92vw;transform:scale(.94);transition:transform .6s var(--ease)}
.lb.is-open .lb__fig{transform:scale(1)}
.lb__fig img{max-width:92vw;max-height:78vh;width:auto;height:auto;object-fit:contain;border-radius:14px}
.lb__fig figcaption{color:var(--silk);font:italic 300 1.2rem/1.3 var(--f-display);text-align:center}
.lb__btn{position:absolute;width:3.4rem;height:3.4rem;border-radius:50%;border:1px solid rgba(245,239,230,.4);background:rgba(29,23,20,.5);color:var(--silk);display:grid;place-items:center;transition:background .3s,color .3s}
.lb__btn:hover,.lb__btn:focus-visible{background:var(--gold);color:var(--velvet);border-color:var(--gold)}
.lb__close{right:var(--gut);top:20px}
.lb__prev{left:var(--gut);top:50%;margin-top:-1.7rem}
.lb__next{right:var(--gut);top:50%;margin-top:-1.7rem}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-height:780px) and (min-width:901px){
  .ritual__frame{max-height:70vh}
  .ritual__stage{height:300px}
}

@media (max-height:700px) and (min-width:901px){ /* portables : cartes plus compactes */
  .card__in{--dome:96px}
  .card__photo{height:calc(var(--dome) + 20px)}
  .card__n{margin-bottom:.45rem}
  .card__name{font-size:1.85rem}
  .card__dur{margin:.25rem 0 .55rem}
  .card__list{padding-top:.65rem;line-height:1.32}
  .card__foot{padding-top:.5rem}
  .card__price{font-size:2.7rem}
}

@media (max-width:1100px){
  .nav__links{gap:1.1rem}
  .nav__links a{font-size:.68rem;letter-spacing:.14em}
}
@media (max-width:760px){
  .foot__top{grid-template-columns:1fr 1fr}
  .foot__up{justify-self:start}
}

@media (max-width:900px){
  /* navigation : menu plein écran */
  .nav{grid-template-columns:1fr auto auto}
  .nav__links{display:none}
  .nav__burger{display:block}
  .nav__cta{display:none}
  .nav .nav__burger{grid-column:3}

  .fab{display:flex}

  /* hero */
  .hero{padding-top:110px}
  .hero__meta{font-size:.82rem}
  .hero__addr{order:3;width:100%}
  .hero__scroll{display:none}
  .plume--3{display:none}

  /* rituel : plus de pin, empilé */
  .ritual__pin{display:block;height:auto;min-height:0;padding-top:clamp(40px,10vw,70px);padding-bottom:clamp(40px,10vw,70px)}
  .ritual__media{display:none}
  .ritual__stage{height:auto;margin-top:2.4rem}
  .ritual__num{display:none}
  .ritual__progress{display:none}
  .step{position:relative;max-width:none;margin-bottom:3.2rem}
  .step__fig{display:block;margin:0 0 1.4rem;aspect-ratio:4/5;overflow:hidden;border-radius:var(--arch)}
  .step__fig img{width:100%;height:100%;object-fit:cover}

  /* soins : cartes empilées */
  .soins__pin{height:auto;min-height:0;display:block;padding:clamp(50px,10vw,80px) 0 clamp(50px,10vw,80px)}
  .soins__track{display:grid;width:auto;height:auto;gap:clamp(40px,10vw,60px) 0;padding:0 var(--gut)}
  .soins__intro{padding:0}
  .soins__hint{display:none}
  .card{flex:none}
  .card__in{height:auto;--dome:clamp(120px,32vw,160px)}
  .card__foot{margin-top:1.6rem}
  .soins__outro{padding:0}
  .soins__bar{display:none}

  /* massages */
  .carte__wrap{grid-template-columns:1fr}
  .carte__head{position:static}
  .row__head{grid-template-columns:1.8rem minmax(0,1fr) auto 1.2rem;grid-template-areas:"n name price plus" "n zones dur plus";row-gap:.2rem}
  .row__dur{text-align:right}
  .row__body p{padding:0 .4rem 1.4rem 1.8rem}

  /* chiffres */
  .stats__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat:nth-child(odd){border-left:0;padding-left:0}
  .stat:nth-child(n+3){border-top:1px solid rgba(29,23,20,.2);margin-top:1.6rem}

  /* galerie : grille simplifiée */
  .gal{grid-template-columns:repeat(6,minmax(0,1fr))}
  .tile--a1{grid-column:1/5}
  .tile--a2{grid-column:1/7;margin-top:0}
  .tile--b1{grid-column:3/7}
  .tile--b2{grid-column:1/5;margin-top:0}
  .tile--b3{grid-column:4/7}
  .tile--c1{grid-column:1/7}
  .tile--c2{grid-column:1/4;margin-top:0}
  .tile--c3{grid-column:4/7}

  .cadeau__wrap,.resa__wrap,.venir__wrap{grid-template-columns:1fr}
  .cadeau__card{order:2}
  .infos__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .venir__map{max-height:520px;aspect-ratio:1/1.05}
  .foot{padding-bottom:6.5rem}
}

@media (max-width:600px){
  .hero__title{font-size:min(24.5vw,6.6rem)}
  .plume--1{left:-16%;width:130px;opacity:.55}
  .plume--2{right:-9%;width:120px;opacity:.55}
  .hero__cta .btn{flex:1 1 100%}
  .hero__rating{font-size:.8rem}
  .infos__grid{grid-template-columns:1fr}
  .avis__top .h2{max-width:none}
  .row__head{column-gap:.6rem}
  .row__price{font-size:1.35rem}
  .foot__top{grid-template-columns:1fr 1fr}
  .foot__top .foot__col:first-child{grid-column:1/-1}
  .foot__bottom{flex-direction:column}
  .marquee{margin-top:-1.8rem}
  .resa__actions .btn{flex:1 1 100%}
  .lb__prev,.lb__next{top:auto;bottom:24px;margin-top:0}
}

/* Mode « à plat » : mouvement réduit ou script indisponible → rituel et soins sans pin ni défilement horizontal */
html.is-flat .ritual__pin{display:block;height:auto;min-height:0;padding-top:clamp(40px,10vw,70px);padding-bottom:clamp(40px,10vw,70px)}
html.is-flat .ritual__media,html.is-flat .ritual__num,html.is-flat .ritual__progress{display:none}
html.is-flat .ritual__stage{height:auto;margin-top:2.4rem}
html.is-flat .step{position:relative;max-width:none;margin-bottom:3.2rem}
html.is-flat .step__fig{display:block;margin:0 0 1.4rem;aspect-ratio:4/5;max-width:420px;overflow:hidden;border-radius:var(--arch)}
html.is-flat .step__fig img{width:100%;height:100%;object-fit:cover}
html.is-flat .soins__pin{height:auto;min-height:0;display:block;padding:clamp(50px,10vw,80px) 0}
html.is-flat .soins__track{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));width:auto;height:auto;gap:clamp(40px,6vw,60px) clamp(18px,2.4vw,40px);padding:0 var(--gut)}
html.is-flat .soins__intro{grid-column:1/-1;padding:0}
html.is-flat .soins__hint,html.is-flat .soins__bar{display:none}
html.is-flat .card{flex:none}
html.is-flat .card__in{height:auto;--dome:150px}
html.is-flat .card__foot{margin-top:1.6rem}
html.is-flat .soins__outro{grid-column:1/-1;padding:0}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .plume__sway{animation:none}
}
