/* ═══════════════════════════════════════════════════════════
   SOPHIE BEAUTÉ — Direction artistique « Lotus & Bois de hêtre »
   Palette
     --lin         #F5EEE6  fond principal (lin / papier chaud)
     --creme       #FBF7F1  cartes, fonds clairs
     --rose        #D8A7A0  rose poudré — accent doux (fil rouge du logo)
     --rose-pale   #EFD6D0  fonds rosés
     --terre       #B4695A  terracotta rosé — accent, survols
     --terre-fonce #8A4638  texte accent (contraste AA)
     --sauge       #8D9C84  vert sauge
     --sauge-pale  #C9D1C0  fond des soins
     --foret       #25302A  texte & fonds sombres
     --bois        #C79A6B  hêtre — détails dorés
   Typographies : Cormorant Garamond (titres), Pinyon Script (signature), DM Sans (texte)
   Fil rouge : l'ARCHE (cadres arrondis) + le PÉTALE DE LOTUS (séparateurs, puces, loader)
   ═══════════════════════════════════════════════════════════ */

:root{
  --lin:#F5EEE6; --creme:#FBF7F1; --rose:#D8A7A0; --rose-pale:#EFD6D0;
  --terre:#B4695A; --terre-fonce:#8A4638; --sauge:#8D9C84; --sauge-pale:#C9D1C0;
  --foret:#25302A; --bois:#C79A6B;
  --f-title:'Cormorant Garamond','Times New Roman',serif;
  --f-script:'Pinyon Script','Snell Roundhand',cursive;
  --f-body:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --pad:clamp(20px,5vw,88px);
  --arch-r:clamp(40px,9vw,160px);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
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(--lin);color:var(--foret);font-family:var(--f-body);font-size:clamp(16px,1.02vw,18px);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,video,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
h1,h2,h3,p,ul,ol,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
:focus-visible{outline:2px solid var(--terre);outline-offset:3px;border-radius:4px}
::selection{background:var(--rose);color:var(--foret)}

/* Grain léger, comme du papier */
body::after{content:"";position:fixed;inset:0;z-index:960;pointer-events:none;opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.15 0 0 0 0 0.19 0 0 0 0 0.16 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

.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:2000;background:var(--foret);color:var(--creme);padding:.7rem 1.1rem;border-radius:999px;transition:top .3s}
.skip:focus{top:1rem}

/* ── Typo ── */
.eyebrow{display:inline-flex;align-items:center;gap:.9rem;font-size:.76rem;letter-spacing:.26em;text-transform:uppercase;color:var(--terre-fonce);font-weight:500}
.eyebrow::before{content:"";width:2.6rem;height:1px;background:currentColor}
h2{font-family:var(--f-title);font-weight:300;font-size:clamp(2.7rem,6.4vw,6.2rem);line-height:.98;letter-spacing:-.012em}
h2 em,.story-title em{font-style:italic;color:var(--terre);font-weight:300}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding:.06em .04em .16em;margin:-.06em -.04em -.16em}
.w>*{display:inline-block;will-change:transform}
html.no-scroll{overflow:hidden}

/* Soulignement animé */
a.u,button.u{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;padding-bottom:.15em;transition:background-size .55s var(--ease),color .3s}
a.u:hover,button.u:hover{background-size:100% 1px}

/* ── Boutons ── */
.btn{--bg:var(--terre-fonce);--fg:#fff;--fill:var(--foret);--fgh:#fff;--bd:transparent;
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.7em;padding:1.05em 1.9em;border-radius:999px;
  background:var(--bg);color:var(--fg);border:1px solid var(--bd);font-weight:500;font-size:.95rem;letter-spacing:.02em;line-height:1;
  overflow:hidden;isolation:isolate;transition:color .5s var(--ease),border-color .5s var(--ease);will-change:transform}
.btn::before{content:"";position:absolute;left:var(--x,50%);top:var(--y,110%);width:240%;aspect-ratio:1;border-radius:50%;background:var(--fill);
  transform:translate(-50%,-50%) scale(0);transition:transform .75s var(--ease);z-index:-1}
.btn:hover::before,.btn:focus-visible::before{transform:translate(-50%,-50%) scale(1)}
.btn:hover,.btn:focus-visible{color:var(--fgh)}
.btn svg{width:1.25em;height:1.25em;flex:none}
.btn-sm{padding:.8em 1.4em;font-size:.85rem}
.btn-solid{--bg:var(--terre-fonce);--fill:var(--foret)}
.btn-glass{--bg:rgba(251,247,241,.12);--fg:var(--creme);--fill:var(--creme);--fgh:var(--foret);--bd:rgba(251,247,241,.4);backdrop-filter:blur(10px)}
.btn-line{--bg:transparent;--fg:var(--foret);--bd:rgba(37,48,42,.5);--fill:var(--foret);--fgh:var(--creme)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn[disabled]::before{display:none}

/* ── Loader ── */
#loader{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;color:var(--creme)}
.ld-panels{position:absolute;inset:0;display:grid;grid-template-columns:repeat(6,1fr)}
.ld-panels i{background:var(--foret);margin:0 -1px;border-radius:0 0 50% 50%/0 0 16vh 16vh;will-change:transform}
.ld-center{position:relative;display:grid;justify-items:center;gap:1rem;text-align:center}
.ld-lotus{width:min(34vw,170px);color:var(--rose);overflow:visible}
.ld-name{font-family:var(--f-title);font-size:clamp(2rem,5vw,3.4rem);font-weight:300;letter-spacing:.02em;line-height:1}
.ld-name em{font-family:var(--f-script);font-style:normal;color:var(--rose);font-size:1.2em;margin-left:.15em}
.ld-count{font-variant-numeric:tabular-nums;font-size:.78rem;letter-spacing:.3em;color:var(--sauge-pale)}
.ld-count small{font-size:.7em;margin-left:.2em}
html:not(.js) #loader{display:none}

.progress{position:fixed;left:0;top:0;right:0;height:3px;z-index:900;pointer-events:none}
.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--rose),var(--terre));transform:scaleX(0);transform-origin:left}

.cursor{position:fixed;left:0;top:0;z-index:955;pointer-events:none;display:none}
@media (hover:hover) and (pointer:fine){.cursor{display:block}}
.cursor span{display:grid;place-items:center;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:var(--terre);color:#fff;
  font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;mix-blend-mode:normal;opacity:0;transition:transform .45s var(--ease),opacity .3s,background .3s}
.cursor.is-on span{opacity:.9}
.cursor.is-link span{transform:scale(2.6);opacity:.28}
.cursor.is-label span{transform:scale(5);opacity:1;background:var(--foret)}

/* ── Navigation ── */
.nav{position:fixed;top:0;left:0;right:0;z-index:800;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.1rem var(--pad);
  color:var(--creme);transition:background .5s var(--ease),color .5s var(--ease),box-shadow .5s}
.nav.is-solid{background:rgba(245,238,230,.86);backdrop-filter:blur(14px);color:var(--foret);box-shadow:0 1px 0 rgba(37,48,42,.08)}
.nav.is-open{background:transparent;color:var(--creme);box-shadow:none;backdrop-filter:none}
.nav-logo{display:flex;align-items:center;gap:.7rem;font-family:var(--f-title);font-size:1.5rem;font-weight:400;line-height:1}
.nav-logo svg{width:2.6rem;height:1.9rem;color:var(--rose)}
.nav-logo em{font-family:var(--f-script);font-style:normal;font-size:1.25em;margin-left:.1em}
.nav-links{display:flex;gap:2.2rem;font-size:.9rem;letter-spacing:.04em}
.nav-cta{--bg:var(--creme);--fg:var(--foret);--fill:var(--rose);--fgh:var(--foret)}
.nav.is-solid .nav-cta{--bg:var(--terre-fonce);--fg:#fff;--fill:var(--foret);--fgh:#fff}
.burger{display:none;width:3rem;height:3rem;position:relative;border-radius:50%;border:1px solid currentColor}
.burger i{position:absolute;left:30%;right:30%;height:1.5px;background:currentColor;transition:transform .5s var(--ease)}
.burger i:nth-child(1){top:42%}.burger i:nth-child(2){top:58%}
.burger[aria-expanded=true] i:nth-child(1){transform:translateY(3.4px) rotate(45deg)}
.burger[aria-expanded=true] i:nth-child(2){transform:translateY(-3.4px) rotate(-45deg)}

.menu{position:fixed;inset:0;z-index:790;visibility:hidden;display:flex;flex-direction:column;justify-content:center;padding:6rem var(--pad) 2rem;color:var(--creme)}
.menu.is-open{visibility:visible}
.menu-bg{position:absolute;inset:0;background:var(--foret);border-radius:0 0 50% 50%/0 0 12vh 12vh}
.menu-links{position:relative;display:grid;gap:.2rem}
.menu-links a{font-family:var(--f-title);font-size:clamp(2.6rem,11vw,5rem);font-weight:300;line-height:1.1;overflow:hidden;display:block}
.menu-links a span{display:inline-block}
.menu-links a:hover{color:var(--rose);font-style:italic}
.menu-foot{position:relative;display:grid;gap:.4rem;margin-top:2.4rem;font-size:.9rem;opacity:.8}

/* ── Hero ── */
.hero{position:relative;height:100svh;min-height:640px;overflow:hidden;color:var(--creme);isolation:isolate;background:var(--foret)}
.hero-media{position:absolute;inset:-9% 0;will-change:transform}
.hero-video{width:100%;height:100%;object-fit:cover;background:var(--foret)}
.hero-scrim{position:absolute;inset:0;z-index:1;background:
  linear-gradient(180deg,rgba(37,48,42,.58) 0%,rgba(37,48,42,.12) 36%,rgba(37,48,42,.22) 62%,rgba(37,48,42,.8) 100%),
  radial-gradient(ellipse at 50% 46%,rgba(37,48,42,.22) 20%,rgba(37,48,42,.5) 100%)}
.hero-branch{position:absolute;z-index:1;bottom:-3%;width:clamp(120px,19vw,320px);aspect-ratio:160/520;height:auto;color:rgba(245,238,230,.5);transform-origin:50% 100%;pointer-events:none}
.hb-l{left:-1%}.hb-r{right:-1%}
.petals{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.petal{position:absolute;left:0;top:0;width:var(--s,14px);height:calc(var(--s,14px)*1.4);background:linear-gradient(160deg,var(--rose),var(--rose-pale));border-radius:60% 0 60% 60%/70% 0 70% 70%;opacity:0;will-change:transform}
.hero-content{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:3svh var(--pad) 3svh}
.hero-eyebrow{display:flex;align-items:center;gap:1rem;font-size:clamp(.66rem,.9vw,.78rem);letter-spacing:.28em;text-transform:uppercase;margin-bottom:clamp(.6rem,2vh,1.4rem)}
.hero-eyebrow i{width:clamp(1.4rem,4vw,3.4rem);height:1px;background:currentColor;opacity:.6}
.hero-title{position:relative;font-family:var(--f-title);font-weight:300;font-size:1rem;line-height:1}
.ht-a{display:block;overflow:hidden;font-size:clamp(5rem,min(25vw,31vh),25rem);line-height:.84;letter-spacing:-.04em;padding:.04em .06em .2em;margin-bottom:-.2em}
.ht-a .ch{display:inline-block;will-change:transform}
.ht-b{display:block;font-family:var(--f-script);font-weight:400;font-size:clamp(3.6rem,min(17vw,21vh),17rem);line-height:1;color:var(--rose-pale);margin:-.3em 0 0 26%;text-shadow:0 .03em .5em rgba(0,0,0,.28);padding-right:.1em}
.js .ht-b{clip-path:inset(0 100% 0 0)}
.hero-tag{font-family:var(--f-title);font-style:italic;font-size:clamp(1.25rem,2.3vw,2.1rem);font-weight:300;margin-top:clamp(.8rem,2.4vh,1.6rem);max-width:30ch;line-height:1.2}
.hero-cta{display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center;margin-top:clamp(1.2rem,3.4vh,2.2rem)}
.hero .btn-solid{--bg:var(--creme);--fg:var(--foret);--fill:var(--rose);--fgh:var(--foret)}
.hero-foot{position:absolute;z-index:3;left:var(--pad);right:var(--pad);bottom:1.4rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.82rem}
.hero-rating{display:inline-flex;align-items:center;gap:.55rem;padding:.55rem 1.05rem;border-radius:999px;background:rgba(251,247,241,.14);backdrop-filter:blur(8px);border:1px solid rgba(251,247,241,.26)}
.stars{display:inline-flex;gap:2px;color:#E8B77C}
.stars svg{width:.95em;height:.95em}
.hero-scroll{position:absolute;left:50%;bottom:0;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.55rem;letter-spacing:.24em;text-transform:uppercase;font-size:.66rem}
@media (max-height:820px){.hero-scroll{display:none}}
.hero-scroll i{width:1px;height:36px;background:linear-gradient(var(--creme),transparent);transform-origin:top;animation:drip 2.2s var(--ease) infinite}
@keyframes drip{0%{transform:scaleY(0)}60%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.hero-hours{opacity:.85}

/* ── Marquee ── */
.marquee{position:relative;z-index:5;margin:-1.6rem -3vw 0;transform:rotate(-1.4deg);box-shadow:0 20px 40px -20px rgba(37,48,42,.5)}
.mq-row{overflow:hidden;white-space:nowrap}
.mq-track{display:inline-flex;align-items:center;gap:clamp(1.4rem,3vw,3rem);padding-right:clamp(1.4rem,3vw,3rem);will-change:transform}
.mq-track svg{width:1.1em;height:.8em;flex:none;color:currentColor}
.mq-a{background:var(--rose);color:var(--foret);font-family:var(--f-title);font-style:italic;font-weight:300;font-size:clamp(2.6rem,7vw,6.2rem);line-height:1.15;padding:.3rem 0}
.mq-b{background:var(--foret);color:var(--creme);font-size:clamp(.78rem,1.4vw,1.2rem);letter-spacing:.34em;text-transform:uppercase;padding:1.1rem 0}

/* ── Histoire épinglée ── */
.story{position:relative;background:var(--lin);padding-top:3rem}
.story-pin{height:100svh;min-height:640px;display:flex;align-items:center;padding:5.5rem var(--pad) 2.5rem}
.story-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,6vw,8rem);align-items:center;width:100%;max-width:1500px;margin:0 auto}
.story-visual{position:relative;display:grid;place-items:center}
.story-frame{position:relative;width:min(100%,500px,calc((100svh - 10rem)*.75));aspect-ratio:3/4;overflow:hidden;background:var(--rose-pale);box-shadow:0 40px 80px -30px rgba(37,48,42,.4);
  border-radius:999px 999px 1.2rem 1.2rem}
.sf{position:absolute;inset:0}
.js .sf{clip-path:inset(100% 0 0 0)}
.js .sf:first-child,.sf.is-on{clip-path:inset(0)}
.sf img{width:100%;height:100%;object-fit:cover}
.story-lotus{position:absolute;right:-3%;bottom:-3%;width:clamp(100px,15vw,210px);height:auto;aspect-ratio:132/92;color:var(--terre);transform:rotate(-8deg)}
.story-count{position:absolute;left:-1%;top:4%;display:flex;align-items:baseline;gap:.4rem;font-family:var(--f-title);font-style:italic;color:var(--terre)}
.story-count b{font-size:clamp(3rem,6vw,5.5rem);font-weight:300;line-height:1}
.story-count span{opacity:.6;font-size:1.2rem}
.story-text{display:grid;gap:1.3rem;align-content:center}
.story-title{font-family:var(--f-title);font-weight:300;font-size:clamp(2.3rem,4.8vw,4.8rem);line-height:1}
.story-steps{display:grid;margin-top:.4rem}
.ss{grid-area:1/1}
.js .ss{opacity:0;visibility:hidden}
.js .ss:first-child{opacity:1;visibility:visible}
.ss h3{font-family:var(--f-title);font-size:clamp(1.8rem,3vw,2.8rem);font-weight:500;line-height:1.05;margin-bottom:.7rem;color:var(--terre-fonce)}
.ss p{max-width:46ch}
.story-bar{height:2px;background:rgba(37,48,42,.14);position:relative}
.story-bar i{position:absolute;inset:0;background:var(--terre);transform:scaleX(0);transform-origin:left}

/* ── Séparateur vague ── */
.sep{line-height:0;margin-top:-1px;position:relative;z-index:2}
.sep svg{width:100%;height:clamp(50px,8vw,130px)}
.sep-wave{background:var(--sauge-pale)}
.sep-wave path{fill:var(--lin)}

/* ── Soins : défilement horizontal ── */
.services{position:relative;background:var(--sauge-pale)}
.sv-pin{position:relative;height:100svh;min-height:640px;display:flex;flex-direction:column;overflow:hidden;padding-top:clamp(4.6rem,9vh,6.4rem)}
.sv-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;padding:0 var(--pad)}
.sv-head h2{font-size:clamp(2rem,3.9vw,3.8rem);max-width:28ch;padding-bottom:.18em}
.sv-hint{display:flex;align-items:center;gap:.7rem;font-size:.76rem;letter-spacing:.24em;text-transform:uppercase;color:var(--terre-fonce);white-space:nowrap}
.sv-hint svg{width:1.6rem;height:1.6rem}
.sv-track{display:flex;gap:clamp(1.2rem,2.4vw,2.6rem);padding:1.4rem var(--pad) 3.6rem;flex:1;min-height:0;width:max-content;align-items:stretch}
.sv-card{position:relative;flex:0 0 min(86vw,1080px);display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(1rem,2.6vw,3rem);background:var(--creme);border-radius:2rem;padding:clamp(.8rem,1.6vw,1.6rem);box-shadow:0 30px 50px -34px rgba(37,48,42,.55);overflow:hidden}
.sv-card.c2{background:#F3E0DA}.sv-card.c3{background:var(--lin)}.sv-card.c4{background:#EDF0E8}.sv-card.c5{background:#F6E8DA}.sv-card.c6{background:#F3E0DA}
.arch{border-radius:999px 999px 1rem 1rem}
.sv-img{position:relative;overflow:hidden;min-height:0;background:var(--rose-pale)}
.sv-img img{position:absolute;left:-8%;top:-4%;width:116%;height:108%;object-fit:cover}
.sv-body{position:relative;display:flex;flex-direction:column;justify-content:center;gap:.8rem;padding:.4rem clamp(.4rem,1.4vw,1.4rem)}
.sv-num{position:absolute;right:.2rem;top:-.6rem;font-family:var(--f-title);font-style:italic;font-weight:300;font-size:clamp(5rem,11vw,10rem);line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(37,48,42,.22);pointer-events:none}
.sv-body h3{position:relative;font-family:var(--f-title);font-size:clamp(2.1rem,3.9vw,3.8rem);font-weight:400;line-height:1}
.sv-sub{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--terre-fonce);font-weight:500}
.sv-body>p:not(.sv-sub){max-width:50ch;font-size:.98rem;line-height:1.55}
.tags{display:flex;flex-wrap:wrap;gap:.4rem}
.tags li{padding:.3rem .8rem;border:1px solid rgba(37,48,42,.26);border-radius:999px;font-size:.78rem}
.prices{display:grid;gap:.1rem;max-width:30rem}
.prices li{display:flex;align-items:baseline;gap:.6rem;padding:.2rem 0}
.prices i{flex:1;border-bottom:1px dotted rgba(37,48,42,.45);transform:translateY(-.28em)}
.prices b{font-family:var(--f-title);font-size:1.45rem;font-weight:500;white-space:nowrap;color:var(--terre-fonce)}
.sv-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.5rem;flex-wrap:wrap}
.sv-price{font-family:var(--f-title);font-style:italic;font-size:1.2rem}
.sv-progress{position:absolute;left:var(--pad);right:var(--pad);bottom:1.4rem;height:2px;background:rgba(37,48,42,.16)}
.sv-progress i{position:absolute;inset:0;background:var(--terre-fonce);transform:scaleX(0);transform-origin:left}

/* ── Chiffres ── */
.stats{position:relative;background:var(--rose);color:var(--foret);padding:calc(var(--pad) + 2.4rem) var(--pad) var(--pad);overflow:hidden}
.scallop-top{position:absolute;left:0;right:0;top:-1px;height:26px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='26' viewBox='0 0 64 26'%3E%3Cpath d='M0 0h64c0 14-14 26-32 26S0 14 0 0Z' fill='%23C9D1C0'/%3E%3C/svg%3E") repeat-x top/64px 26px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);max-width:1400px;margin:0 auto}
.stat{text-align:center;padding:1rem 1.2rem;position:relative}
.stat+.stat::before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:1px;background:rgba(37,48,42,.25)}
.stat b{display:block;font-family:var(--f-title);font-weight:300;font-style:italic;font-size:clamp(4.2rem,10.5vw,9.6rem);line-height:.95;font-variant-numeric:tabular-nums}
.stat span{display:block;font-size:.92rem;max-width:19ch;margin:.7rem auto 0}

/* ── Boutique : polaroïds éparpillés ── */
.shop{position:relative;background:var(--lin);padding:clamp(5rem,10vw,10rem) var(--pad);overflow:hidden}
.shop-wrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,5vw,6rem);align-items:center;max-width:1400px;margin:0 auto}
.shop-text{display:grid;gap:1.5rem;justify-items:start}
.shop-text p{max-width:48ch}
.shop-board{position:relative;aspect-ratio:1/1.04;min-height:420px}
.pol{position:absolute;margin:0;width:46%;perspective:900px}
.pol-in{position:relative;background:#fff;padding:.65rem .65rem 2.7rem;box-shadow:0 26px 40px -22px rgba(37,48,42,.5);transform-style:preserve-3d;will-change:transform}
.pol img{width:100%;aspect-ratio:1;object-fit:cover}
.pol figcaption{position:absolute;left:0;right:0;bottom:.6rem;text-align:center;font-family:var(--f-script);font-size:1.5rem;color:var(--terre-fonce);line-height:1.2}
.tape{position:absolute;top:-13px;left:50%;width:86px;height:26px;margin-left:-43px;background:rgba(216,167,160,.75);rotate:-3deg;backdrop-filter:blur(2px)}
.p1{left:0;top:4%;width:44%;rotate:-6deg}
.p2{right:0;top:-2%;width:35%;rotate:5deg}.p2 img{aspect-ratio:3/4}
.p3{left:14%;bottom:-2%;width:42%;rotate:3deg}
.p4{right:3%;bottom:0;width:33%;rotate:-4deg}.p4 img{aspect-ratio:6/7}
.pol-in::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.45),transparent 55%);opacity:0;transition:opacity .4s;pointer-events:none}
.pol:hover .pol-in::after{opacity:1}

/* ── Galerie ── */
.gallery{background:var(--creme);padding:clamp(5rem,9vw,9rem) var(--pad)}
.gal-head{max-width:1400px;margin:0 auto clamp(2rem,4vw,3.4rem);display:grid;gap:1rem;justify-items:start}
.gal-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(64px,7.4vw,112px);gap:clamp(.6rem,1.3vw,1.3rem);max-width:1400px;margin:0 auto}
.g{position:relative;margin:0;perspective:1000px;min-height:0}
.g1{grid-column:1/5;grid-row:1/6}
.g2{grid-column:5/10;grid-row:1/4}
.g3{grid-column:10/13;grid-row:1/7}
.g4{grid-column:5/8;grid-row:4/9}
.g5{grid-column:8/10;grid-row:4/9}
.g6{grid-column:1/5;grid-row:6/9}
.g7{grid-column:10/13;grid-row:7/9}
.g-in{position:relative;width:100%;height:100%;overflow:hidden;border-radius:1.1rem;background:var(--rose-pale);transform-style:preserve-3d;will-change:transform}
.g-in img{position:absolute;left:0;top:-6%;width:100%;height:112%;object-fit:cover}
.g4 img{object-position:68% 50%}
.g5 img{object-position:46% 50%}
.g7 img{object-position:30% 80%}
.sv-card.c6 .sv-img img{object-position:28% 50%}
.g-in::after{content:"";position:absolute;inset:auto 0 0;height:55%;background:linear-gradient(transparent,rgba(37,48,42,.62));opacity:0;transition:opacity .5s var(--ease);pointer-events:none}
.g:hover .g-in::after{opacity:1}
.glare{position:absolute;inset:0;z-index:2;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.34),transparent 55%);opacity:0;transition:opacity .4s;pointer-events:none}
.g:hover .glare{opacity:1}
.g figcaption{position:absolute;left:1.1rem;right:1.1rem;bottom:.9rem;z-index:3;color:#fff;font-size:.82rem;opacity:0;transform:translateY(16px);transition:.6s var(--ease);pointer-events:none}
.g figcaption span{display:block;font-family:var(--f-title);font-style:italic;font-size:1.6rem;line-height:1.1}
.g:hover figcaption{opacity:1;transform:none}
.gal-credit{max-width:1400px;margin:1.6rem auto 0;font-size:.78rem;opacity:.65}

/* ── Avis ── */
.reviews{position:relative;background:var(--rose-pale);padding:clamp(5rem,9vw,9rem) 0 calc(clamp(5rem,9vw,9rem) + var(--arch-r));overflow:hidden}
.rv-bg{position:absolute;left:-2vw;top:-6vw;font-family:var(--f-title);font-style:italic;font-size:min(62vw,760px);line-height:1;color:rgba(180,105,90,.13);pointer-events:none;user-select:none}
.rv-head{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;padding:0 var(--pad);margin-bottom:clamp(2rem,4vw,3.4rem)}
.rv-head>div:first-child{display:grid;gap:1rem}
.rv-score{display:grid;gap:.35rem;justify-items:start}
.rv-score b{font-weight:500}
.rv-viewport{position:relative;overflow:hidden;padding:0 var(--pad);cursor:grab;touch-action:pan-y}
.rv-viewport.is-drag{cursor:grabbing}
.rv-track{display:flex;gap:clamp(1rem,2vw,2rem);will-change:transform;user-select:none}
.rv-card{flex:0 0 min(86vw,560px);display:flex;flex-direction:column;justify-content:space-between;gap:1.6rem;background:var(--creme);border-radius:1.6rem;padding:clamp(1.4rem,2.4vw,2.6rem);min-height:clamp(300px,32vw,420px);box-shadow:0 30px 50px -34px rgba(37,48,42,.45)}
.rv-card blockquote p{font-family:var(--f-title);font-size:clamp(1.2rem,1.8vw,1.6rem);line-height:1.35;font-weight:400}
.rv-card figcaption b{display:block;font-size:1.05rem}
.rv-card figcaption span{font-size:.78rem;letter-spacing:.1em;color:var(--terre-fonce)}
.rv-ctrl{position:relative;display:flex;align-items:center;gap:1.4rem;padding:2.2rem var(--pad) 0}
.rv-btn{width:3.4rem;height:3.4rem;border-radius:50%;border:1px solid var(--foret);display:grid;place-items:center;transition:background .4s,color .4s}
.rv-btn svg{width:1.3rem;height:1.3rem}
#rv-prev svg{transform:scaleX(-1)}
.rv-btn:hover{background:var(--foret);color:var(--creme)}
.rv-bar{flex:1;height:2px;background:rgba(37,48,42,.2);position:relative}
.rv-bar i{position:absolute;inset:0;background:var(--terre);transform:scaleX(.2);transform-origin:left}

/* ── Réservation ── */
.book{position:relative;z-index:3;background:var(--foret);color:var(--creme);margin-top:calc(-1*var(--arch-r));border-radius:50% 50% 0 0/var(--arch-r) var(--arch-r) 0 0;padding:clamp(5.5rem,10vw,10rem) var(--pad) clamp(4rem,8vw,8rem)}
.book .eyebrow{color:var(--rose)}
.book h2 em{color:var(--rose)}
.book-inner{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,6rem);max-width:1400px;margin:0 auto;align-items:start}
.book-intro{position:sticky;top:6.5rem;display:grid;gap:1.4rem;justify-items:start}
.book-lead{max-width:44ch;color:rgba(251,247,241,.82)}
.book-steps{display:grid;gap:.8rem}
.book-steps li{display:flex;gap:1rem;align-items:center}
.book-steps b{width:2.3rem;height:2.3rem;flex:none;border-radius:50%;border:1px solid var(--rose);display:grid;place-items:center;font-family:var(--f-title);font-size:1.15rem;font-weight:500;color:var(--rose)}
.book-direct{display:flex;gap:1.4rem;align-items:center;flex-wrap:wrap}
.book-hours{font-size:.85rem;opacity:.7}
.bk{background:var(--creme);color:var(--foret);border-radius:2rem;padding:clamp(1.2rem,2.6vw,2.6rem);display:grid;gap:1.8rem;box-shadow:0 40px 80px -40px rgba(0,0,0,.65)}
.bk-step{border:0;padding:0;margin:0;min-width:0}
.bk-step legend{display:flex;align-items:center;gap:.7rem;font-family:var(--f-title);font-size:1.75rem;font-weight:500;margin-bottom:1rem;padding:0;line-height:1}
.bk-step legend b{font-family:var(--f-body);width:1.9rem;height:1.9rem;border-radius:50%;background:var(--terre-fonce);color:#fff;display:grid;place-items:center;font-size:.8rem;font-weight:500}
.bk-services{display:flex;flex-wrap:wrap;gap:.55rem}
.chip{padding:.62rem 1.05rem;border:1px solid rgba(37,48,42,.3);border-radius:999px;font-size:.9rem;line-height:1.2;transition:background .35s var(--ease),color .35s,border-color .35s;text-align:left}
.chip:hover{border-color:var(--terre)}
.chip[aria-pressed=true]{background:var(--foret);color:var(--creme);border-color:var(--foret)}
.chip small{opacity:.7;margin-left:.35em;font-size:.82em}
.bk-cal{background:#fff;border-radius:1.2rem;padding:1rem;border:1px solid rgba(37,48,42,.1)}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.7rem}
.cal-head p{font-family:var(--f-title);font-size:1.45rem;text-transform:capitalize;font-weight:500}
.cal-nav{width:2.4rem;height:2.4rem;border-radius:50%;border:1px solid rgba(37,48,42,.22);display:grid;place-items:center;transition:background .3s}
.cal-nav svg{width:1.05rem;height:1.05rem}
#cal-prev svg{transform:scaleX(-1)}
.cal-nav:hover:not(:disabled){background:var(--rose-pale)}
.cal-nav:disabled{opacity:.3;cursor:not-allowed}
.cal-dow,.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;text-align:center}
.cal-dow{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;opacity:.55;margin-bottom:.3rem}
.cal-day{height:2.5rem;border-radius:999px;display:grid;place-items:center;font-size:.92rem;transition:background .3s,color .3s}
.cal-day:hover:not(:disabled){background:var(--rose-pale)}
.cal-day[aria-pressed=true]{background:var(--terre-fonce);color:#fff}
.cal-day:disabled{opacity:.25;cursor:not-allowed}
.cal-day.is-today{box-shadow:inset 0 0 0 1px var(--terre)}
.cal-day.is-void{visibility:hidden}
.bk-slots{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1rem}
.slot{padding:.5rem .9rem;border-radius:.7rem;border:1px solid rgba(37,48,42,.24);font-size:.9rem;font-variant-numeric:tabular-nums;transition:background .3s,color .3s,border-color .3s}
.slot:hover{border-color:var(--terre)}
.slot[aria-pressed=true]{background:var(--terre-fonce);color:#fff;border-color:var(--terre-fonce)}
.bk-empty{font-size:.9rem;opacity:.6}
.bk-fields{display:grid;gap:.9rem;grid-template-columns:1fr 1.5fr}
.fld{display:grid;gap:.35rem;font-size:.84rem}
.fld span{letter-spacing:.05em}
.fld small{opacity:.6}
.fld input{font:inherit;padding:.85rem 1rem;border-radius:.8rem;border:1px solid rgba(37,48,42,.26);background:#fff;color:inherit;width:100%}
.fld input:focus{outline:2px solid var(--terre);outline-offset:1px}
.bk-recap{background:rgba(216,167,160,.24);border-radius:1.2rem;padding:1.1rem 1.3rem;font-size:.95rem;line-height:1.55}
.bk-recap strong{font-weight:600}
.bk-recap .rc{display:grid;grid-template-columns:auto 1fr;gap:.2rem .9rem}
.bk-recap .rc dt{opacity:.65}
.bk-recap .rc dd{margin:0}
.bk-actions{display:grid;gap:1rem}
.bk-actions .btn{width:100%}
.bk-alt{display:flex;gap:1.4rem;flex-wrap:wrap;justify-content:center;font-size:.9rem}
.bk-alt button[disabled]{opacity:.4;cursor:not-allowed}
.bk-note{font-size:.78rem;opacity:.65;line-height:1.5}
.bk-done{background:var(--sauge-pale);border-radius:1.2rem;padding:1rem 1.2rem;font-size:.92rem}

/* ── Nous trouver ── */
.find{background:var(--lin);padding:clamp(5rem,9vw,9rem) var(--pad)}
.find-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(2rem,5vw,6rem);max-width:1400px;margin:0 auto;align-items:center}
.find-info{display:grid;gap:1.5rem;justify-items:start}
address{font-style:normal;display:grid;width:100%}
.info-row{display:flex;gap:1.1rem;align-items:center;padding:1rem 0;border-bottom:1px solid rgba(37,48,42,.16);transition:padding .45s var(--ease)}
.info-row:hover{padding-left:.7rem}
.info-row svg{width:1.7rem;height:1.7rem;color:var(--terre);flex:none}
.info-row b{display:block;font-family:var(--f-title);font-size:1.45rem;font-weight:500;line-height:1.15}
.info-row span{font-size:.95rem;line-height:1.45}
.hours{width:100%;background:var(--creme);border-radius:1.4rem;padding:1.2rem 1.5rem}
.hours-state{display:flex;align-items:center;gap:.6rem;font-weight:500;margin-bottom:.6rem}
.hours-state::before{content:"";width:.7rem;height:.7rem;border-radius:50%;background:var(--sauge)}
.hours-state.is-open::before{background:#5FA16B;animation:pulse 2s infinite}
.hours-state.is-closed::before{background:var(--terre)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(95,161,107,.6)}70%{box-shadow:0 0 0 .6rem rgba(95,161,107,0)}100%{box-shadow:0 0 0 0 rgba(95,161,107,0)}}
.hours li{display:flex;justify-content:space-between;padding:.28rem 0;font-size:.95rem}
.hours li.off{opacity:.55}
.hours li.is-today{font-weight:600;color:var(--terre-fonce);opacity:1}
.find-map{position:relative;aspect-ratio:4/5;max-height:660px;width:100%;overflow:hidden;box-shadow:0 40px 70px -40px rgba(37,48,42,.55);background:var(--sauge-pale)}
.find-map iframe{width:100%;height:100%;border:0;filter:saturate(.85) sepia(.1)}
.map-link{position:absolute;left:50%;bottom:1rem;transform:translateX(-50%);padding:.65rem 1.2rem;background:var(--creme);border-radius:999px;font-size:.85rem;font-weight:500;white-space:nowrap;box-shadow:0 10px 24px -12px rgba(0,0,0,.5)}

/* ── FAQ ── */
.faq{background:var(--creme);padding:clamp(4rem,8vw,8rem) var(--pad)}
.faq-wrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,6rem);max-width:1400px;margin:0 auto}
.faq-wrap>div:first-child{display:grid;gap:1rem;align-content:start;justify-items:start}
.faq h2{font-size:clamp(2.4rem,5vw,4.8rem)}
.faq details{border-bottom:1px solid rgba(37,48,42,.18)}
.faq summary{list-style:none;cursor:pointer;padding:1.3rem 0;font-family:var(--f-title);font-size:clamp(1.3rem,2vw,1.75rem);line-height:1.2;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.9rem;line-height:1;transition:transform .45s var(--ease);color:var(--terre);flex:none}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details>div{padding:0 0 1.4rem;max-width:58ch;color:rgba(37,48,42,.86)}

/* ── Footer ── */
.foot{position:relative;background:var(--foret);color:var(--creme);padding:clamp(4rem,7vw,7rem) var(--pad) 1.6rem;overflow:hidden}
.foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem;max-width:1400px;margin:0 auto}
.foot-lotus{width:84px;height:auto;aspect-ratio:132/92;color:var(--rose);margin-bottom:1rem}
.foot-col p{font-size:.95rem;line-height:1.6;opacity:.85}
.foot-nav,.foot-contact{display:grid;gap:.55rem;align-content:start;font-size:.95rem}
.foot-giant{font-family:var(--f-title);font-weight:300;font-size:clamp(2.6rem,15.6vw,22rem);line-height:.9;text-align:center;margin:clamp(2rem,5vw,4rem) 0 0;white-space:nowrap;color:transparent;-webkit-text-stroke:1px rgba(245,238,230,.38);letter-spacing:-.03em;padding:.05em 0 .12em;overflow:hidden}
.foot-giant em{font-family:var(--f-script);font-style:normal;color:var(--rose);-webkit-text-stroke:0;letter-spacing:0}
.foot-giant .ch{display:inline-block;will-change:transform}
.foot-legal{font-size:.76rem;opacity:.6;text-align:center;margin-top:1.4rem}

/* ── Boutons flottants (mobile) ── */
.fab{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));z-index:700;display:none;gap:.4rem;padding:.35rem;border-radius:999px;background:rgba(37,48,42,.93);backdrop-filter:blur(10px);transform:translate(-50%,170%);transition:transform .7s var(--ease);box-shadow:0 14px 30px -12px rgba(0,0,0,.6)}
.fab.is-on{transform:translate(-50%,0)}
.fab a{display:flex;align-items:center;gap:.5rem;padding:.85rem 1.25rem;border-radius:999px;font-weight:500;font-size:.92rem;line-height:1}
.fab-call{color:var(--creme)}
.fab-book{background:var(--rose);color:var(--foret)}
.fab svg{width:1.1rem;height:1.1rem}

/* ═══════ Responsive ═══════ */
@media (max-width:1100px){
  .nav-links{display:none}
  .burger{display:block}
  .nav-cta{display:none}
  .stats-grid{grid-template-columns:repeat(2,1fr);row-gap:1.4rem}
  .stat:nth-child(3)::before{display:none}
}
@media (max-width:899px){
  .fab{display:flex}
  .foot{padding-bottom:6rem}
  .hero-hours{display:none}
  .hero-foot{justify-content:center}
  .hero-scroll{display:none}
  .ht-b{margin-left:18%}
  .marquee{margin-top:-1rem}

  .story-pin{height:auto;min-height:100svh;padding:5rem var(--pad) 2rem}
  .story-grid{grid-template-columns:1fr;gap:1.2rem}
  .story-frame{width:min(54vw,calc((100svh - 22rem)*.75),280px);min-width:150px}
  .story-count{left:6%;top:0}
  .story-count b{font-size:2.4rem}
  .story-title{font-size:clamp(1.8rem,7.4vw,2.6rem)}
  .story-title br{display:none}
  .ss h3{font-size:1.5rem}
  .ss p{font-size:.95rem}
  .story-lotus{width:80px;right:4%}

  .sv-pin{height:auto;min-height:0;padding:4.4rem 0 3rem}
  .sv-head{flex-direction:column;align-items:flex-start;gap:1rem}
  .sv-track{width:auto;overflow-x:auto;scroll-snap-type:x mandatory;padding:1.6rem var(--pad) 1.4rem;scrollbar-width:none}
  .sv-track::-webkit-scrollbar{display:none}
  .sv-card{flex:0 0 84vw;grid-template-columns:1fr;scroll-snap-align:center;padding:1rem}
  .sv-img{height:min(62vw,280px)}
  .sv-body{padding:.6rem .4rem 1rem}
  .sv-num{font-size:5rem;top:-3.6rem;right:.4rem;-webkit-text-stroke:1px rgba(255,255,255,.9)}
  .sv-progress{display:none}

  .shop-wrap,.find-wrap,.faq-wrap,.book-inner{grid-template-columns:1fr}
  .shop-board{aspect-ratio:auto;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:1.6rem 1.2rem;padding:1rem .7rem}
  .pol{position:relative;width:100%!important;inset:auto!important}
  .book-intro{position:static}
  .find-map{aspect-ratio:1/1}

  .gal-grid{grid-template-columns:1fr 1fr;grid-auto-rows:46vw}
  .g{grid-column:auto!important;grid-row:auto!important}
  .g1,.g3{grid-row:span 2!important}
  .g2{grid-column:span 2!important}
  .bk-fields{grid-template-columns:1fr}
  .foot-top{grid-template-columns:1fr 1fr}
  .foot-col:first-child{grid-column:1/-1}
}
@media (max-width:520px){
  .hero-eyebrow{flex-direction:column;gap:.35rem}
  .hero-eyebrow i{display:none}
  .stats-grid{grid-template-columns:1fr 1fr}
  .stat b{font-size:3.6rem}
  .rv-card{min-height:0}
  .bk-alt{justify-content:flex-start}
  .nav-logo span{font-size:1.25rem}
}
@media (max-height:720px) and (min-width:900px){
  .sv-body>p:not(.sv-sub){font-size:.9rem;line-height:1.45}
  .sv-body{gap:.55rem}
  .sv-body h3{font-size:clamp(1.9rem,3.2vw,3rem)}
  .tags li{font-size:.72rem;padding:.22rem .65rem}
}

/* ═══════ Accessibilité mouvement ═══════ */
@media (prefers-reduced-motion:reduce){
  #loader{display:none}
  *{scroll-behavior:auto!important}
  .js .ht-b{clip-path:none}
  .hero-scroll i{animation:none}
  .hours-state.is-open::before{animation:none}
  .sv-pin{height:auto;min-height:0;padding-bottom:3rem}
  .sv-track{width:auto;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:1.6rem}
  .sv-card{flex-basis:min(86vw,1000px)}
  .sv-progress{display:none}
  .story-pin{height:auto}
  .story-grid{grid-template-columns:1fr}
  .js .ss{grid-area:auto;opacity:1;visibility:visible;margin-bottom:1.4rem}
  .js .sf{clip-path:none;display:none}
  .js .sf:first-child{display:block}
}
