/* ==========================================================================
   zen et nature’L : direction artistique
   Fil rouge : le soleil levant (arche + rayons), formes arrondies, nature.
   Palette
     --cream  #F6EFE6  fond clair          --ink   #2B1E18  texte / fonds sombres
     --sand   #E8D9C5  fond alternatif     --moss  #4D5B43  vert sauge profond
     --blush  #EBD6C8  rose poudré         --clay  #9C5335  argile (accent chaud)
     --sun    #D4A24F  or soleil (CTA)     --sage  #A8B39A  sauge clair
   Typo : Fraunces (titres, souple et organique) + Manrope (texte)
   ========================================================================== */

:root{
  --cream:#F6EFE6; --cream-2:#FBF7F1; --sand:#E8D9C5; --blush:#EBD6C8;
  --sage:#A8B39A; --moss:#4D5B43; --moss-d:#38442F;
  --ink:#2B1E18; --cacao:#3A2A22; --clay:#9C5335;--taupe:#65564A; --clay-l:#C9825F;
  --sun:#D4A24F; --sun-d:#B98532;
  --ff-d:'Fraunces','Cormorant Garamond',Georgia,serif;
  --ff-b:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --pad:clamp(1.25rem,5vw,5rem);
  --maxw:1500px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;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}
.lenis.lenis-scrolling iframe{pointer-events:none}
html.is-loading{overflow:hidden}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--ff-b);font-size:clamp(1rem,.35vw + .92rem,1.15rem);line-height:1.65;overflow-x:clip;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
ul,ol{list-style:none;margin:0;padding:0}
h1,h2,h3,p,figure,address,dl,dd{margin:0}
address{font-style:normal}
::selection{background:var(--sun);color:var(--ink)}
:focus-visible{outline:2.5px solid var(--sun-d);outline-offset:3px;border-radius:4px}

[hidden]{display:none!important}
.panel:focus,.panel:focus-visible{outline:none}
.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:fixed;left:1rem;top:-4rem;z-index:300;background:var(--ink);color:var(--cream);padding:.8rem 1.2rem;border-radius:999px;transition:top .3s}
.skip:focus{top:1rem}

/* ---------- Typo ---------- */
.h2{font-family:var(--ff-d);font-weight:340;font-size:clamp(2.7rem,7.2vw,7.4rem);line-height:.96;letter-spacing:-.025em;font-variation-settings:"SOFT" 100,"WONK" 0;font-optical-sizing:auto;text-wrap:balance}
.h2 em,.card__t em,.hero__title em,.gift__name em,.nav__logo em{font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1}
.eyebrow{display:inline-flex;align-items:center;gap:.7em;font-size:.76rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;margin-bottom:1.6rem}
.eyebrow svg{color:var(--sun-d)}
.on-dark .eyebrow svg,.hero .eyebrow svg,.services .eyebrow svg,.regard .eyebrow svg,.gift .eyebrow svg,.cta .eyebrow svg{color:var(--sun)}

/* split text */
.split .w{display:inline-block;overflow:hidden;vertical-align:top;white-space:nowrap;padding:.12em .1em .22em;margin:-.12em -.1em -.22em}
.fx{position:absolute;inset:0;overflow:hidden;pointer-events:none}
#i-star path{fill:var(--star-fill,none)}
.rcard--real .rcard__stars{--star-fill:currentColor}
.split .wi,.split .c{display:inline-block;will-change:transform}

/* ---------- Boutons & liens ---------- */
.btn{--fill:var(--ink);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.7em;padding:1.05em 1.8em;border-radius:999px;font-weight:700;font-size:.95rem;letter-spacing:.02em;line-height:1;white-space:nowrap;border:1.5px solid currentColor;overflow:hidden;isolation:isolate;transition:color .55s var(--ease),border-color .55s var(--ease);will-change:transform}
.btn::before{content:"";position:absolute;inset:-1px;z-index:-1;background:var(--fill);border-radius:50% 50% 0 0/100% 100% 0 0;transform:translateY(102%);transition:transform .65s var(--ease),border-radius .65s var(--ease)}
.btn:hover::before,.btn:focus-visible::before{transform:translateY(0);border-radius:0}
.btn svg{flex:none;transition:transform .5s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn--sun{background:var(--sun);border-color:var(--sun);color:var(--ink);--fill:var(--ink)}
.btn--sun:hover,.btn--sun:focus-visible{color:var(--cream);border-color:var(--ink)}
.btn--ghost{color:var(--cream);--fill:var(--cream)}
.btn--ghost:hover,.btn--ghost:focus-visible{color:var(--ink)}
.btn--line{color:var(--ink);--fill:var(--ink)}
.btn--line:hover,.btn--line:focus-visible{color:var(--cream)}
.btn--sm{padding:.85em 1.3em;font-size:.85rem}
.btn[disabled]{opacity:.5;pointer-events:none}

.u-link{position:relative;display:inline-block}
.u-link::after{content:"";position:absolute;left:0;right:0;bottom:-.1em;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .55s var(--ease)}
.u-link:hover::after,.u-link:focus-visible::after{transform:scaleX(1);transform-origin:left}

/* ---------- Motifs : arche, rayons, grain, bords ---------- */
.arch{border-radius:999px 999px 0 0;overflow:hidden}
.frame{position:relative;overflow:hidden}
.par{position:absolute;inset:-9% 0;will-change:transform}
.card__media .par{inset:-4% -9%}
.par img{width:100%;height:100%;object-fit:cover}
.rays{aspect-ratio:1;border-radius:50%;color:currentColor;background:repeating-conic-gradient(from 0deg,currentColor 0 .45deg,transparent .45deg 6deg);-webkit-mask:radial-gradient(circle,transparent 60%,#000 60.3%,#000 72%,transparent 72.4%);mask:radial-gradient(circle,transparent 60%,#000 60.3%,#000 72%,transparent 72.4%);animation:spin 160s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.grain{position:absolute;inset:0;pointer-events:none;opacity:.14;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E")}

.edge{position:absolute;left:0;right:0;top:0;transform:translateY(-99%);pointer-events:none;z-index:3;color:var(--c,var(--cream))}
.edge--arc{height:clamp(36px,7vw,110px);background:currentColor;border-radius:50% 50% 0 0/100% 100% 0 0}
.edge--wave{height:clamp(30px,5.5vw,84px);background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath d='M0 80V42C240 0 480 0 720 40S1200 80 1440 38V80Z'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath d='M0 80V42C240 0 480 0 720 40S1200 80 1440 38V80Z'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat}
.edge--diag{height:clamp(36px,6vw,96px);background:currentColor;clip-path:polygon(0 100%,100% 0,100% 100%)}
.edge--scallop{--eh:clamp(14px,2.4vw,38px);height:var(--eh);background:currentColor;-webkit-mask:radial-gradient(circle farthest-side at 50% 100%,#000 98%,transparent 100%) 0 0/calc(var(--eh)*2) 100% repeat-x;mask:radial-gradient(circle farthest-side at 50% 100%,#000 98%,transparent 100%) 0 0/calc(var(--eh)*2) 100% repeat-x}

/* ---------- Loader ---------- */
.loader{position:fixed;inset:0;z-index:200;display:none;flex-direction:column;align-items:center;justify-content:center;background:var(--ink);color:var(--cream);animation:loaderFailsafe .01s 9s forwards}
html.js .loader{display:flex}
@keyframes loaderFailsafe{to{visibility:hidden;pointer-events:none}}
.loader__inner{display:flex;flex-direction:column;align-items:center;gap:1.4rem;text-align:center}
.loader__logo{display:block;width:clamp(230px,42vw,480px);height:auto}
.loader__tag{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;opacity:.6}
.loader__count{position:absolute;left:var(--pad);bottom:2.4rem;font-family:var(--ff-d);font-size:clamp(3rem,8vw,6rem);line-height:1;font-weight:200;display:flex;align-items:baseline;gap:.15em;font-variant-numeric:tabular-nums}
.loader__count i{font-size:.35em;opacity:.55;font-style:normal}
.loader__bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(246,239,230,.12)}
.loader__bar span{display:block;height:100%;background:var(--sun);transform:scaleX(0);transform-origin:left}

/* ---------- Progress, curseur ---------- */
.progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:120;pointer-events:none}
.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--sun),var(--clay-l));transform:scaleX(0);transform-origin:left}
.cursor{position:fixed;left:0;top:0;z-index:250;pointer-events:none;display:none}
.cursor i{position:absolute;left:-9px;top:-9px;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--sun);background:rgba(212,162,79,.15);transition:transform .45s var(--ease),background .3s,opacity .3s}
.cursor.is-hover i{transform:scale(2.6);background:rgba(212,162,79,.28)}
@media (hover:hover) and (pointer:fine){html.js .cursor{display:block}}

/* ---------- Navigation ---------- */
.nav{position:fixed;left:0;right:0;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.1rem var(--pad);color:var(--cream);transition:transform .7s var(--ease),background .5s,color .5s,padding .5s var(--ease);will-change:transform}
.nav.is-solid{background:rgba(246,239,230,.88);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--ink);padding-top:.75rem;padding-bottom:.75rem;box-shadow:0 1px 0 rgba(43,30,24,.08)}
.nav.is-hidden{transform:translateY(-110%)}
.nav__logo{position:relative;display:block;height:clamp(44px,4.2vw,60px);aspect-ratio:480/240;flex:none;transition:height .5s var(--ease)}
.nav.is-solid .nav__logo{height:clamp(40px,3.6vw,50px)}
.nav__logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .45s}
.nav__logo-img--dark{opacity:0}
.nav.is-solid .nav__logo-img--light{opacity:0}
.nav.is-solid .nav__logo-img--dark{opacity:1}
.nav__links{display:none;gap:2.2rem;font-size:.9rem;font-weight:600;letter-spacing:.02em}
.nav__cta{margin-left:auto}
.burger{position:relative;width:48px;height:48px;border-radius:50%;border:1.5px solid currentColor;display:grid;place-items:center;z-index:130}
.burger i{position:absolute;left:14px;right:14px;height:1.8px;background:currentColor;transition:transform .5s var(--ease)}
.burger i:first-child{transform:translateY(-4px)}
.burger i:last-child{transform:translateY(4px)}
html.menu-open .burger i:first-child{transform:rotate(45deg)}
html.menu-open .burger i:last-child{transform:rotate(-45deg)}
html.menu-open .nav{z-index:130;transform:none;color:var(--cream);background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
html.menu-open .nav .nav__logo-img--light{opacity:1}
html.menu-open .nav .nav__logo-img--dark{opacity:0}
html.menu-open .fab{transform:translateY(180%)}
@media (min-width:900px){.nav__links{display:flex;margin-left:auto}.nav__cta{margin-left:0}.burger{display:none}}

.menu{position:fixed;inset:0;z-index:110;display:none;flex-direction:column;justify-content:center;padding:6rem var(--pad) 2.5rem;background:var(--ink);color:var(--cream)}
.menu__list li{overflow:hidden}
.menu__list a{display:block}
.menu__list a span{display:block;font-family:var(--ff-d);font-size:clamp(2.6rem,12vw,5rem);line-height:1.12;font-weight:320;font-variation-settings:"SOFT" 100;transition:color .4s,transform .5s var(--ease)}
.menu__list a:hover span,.menu__list a:focus-visible span{color:var(--sun);transform:translateX(.4em)}
.menu__foot{display:flex;flex-wrap:wrap;gap:.6rem 2rem;margin-top:2.5rem;font-size:.95rem;opacity:.8}

/* ---------- HERO ---------- */
.hero{position:relative;height:100vh;height:100svh;min-height:640px;display:flex;flex-direction:column;justify-content:flex-end;color:var(--cream);overflow:hidden;background:var(--ink);isolation:isolate}
html.is-loading .hero{z-index:210;clip-path:circle(0% at 50% 62%)}
html.is-loading .nav{z-index:220}
.hero__media{position:absolute;inset:-4% 0;z-index:-3;will-change:transform}
.hero__video{width:100%;height:100%;object-fit:cover;will-change:transform}
.hero__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,18,12,.5) 0%,rgba(28,18,12,.12) 34%,rgba(28,18,12,.35) 62%,rgba(28,18,12,.82) 100%)}
.hero .grain{z-index:-2}
.hero__sun{position:absolute;left:50%;bottom:-38vmin;width:112vmin;margin-left:-56vmin;z-index:-1;color:rgba(246,239,230,.26);pointer-events:none}
.hero__arcs{position:absolute;left:50%;bottom:-62vmax;width:124vmax;margin-left:-62vmax;aspect-ratio:1;z-index:-1;color:rgba(246,239,230,.4);pointer-events:none}
.hero__arcs circle{stroke-dasharray:1;stroke-dashoffset:0}
/* le vrai logo, devant la vidéo (à la place des épis de blé) */
.hero__logo{position:absolute;left:0;right:0;top:clamp(5.4rem,15vh,9.5rem);z-index:1;display:flex;justify-content:center;pointer-events:none;will-change:transform}
.hero__logo::before{content:"";position:absolute;left:50%;top:50%;width:min(94vw,860px);aspect-ratio:2/1;transform:translate(-50%,-50%);background:radial-gradient(closest-side,rgba(20,11,6,.5),rgba(20,11,6,0));pointer-events:none}
.hero__logo img{position:relative;display:block;width:clamp(250px,34vw,580px);height:auto;filter:drop-shadow(0 2px 18px rgba(18,10,6,.5))}
.hero__inner{padding:0 var(--pad);margin-bottom:clamp(4.5rem,9vh,7rem);position:relative}
.hero__eyebrow{margin-bottom:clamp(1rem,3vh,2rem)}
.hero__title{font-family:var(--ff-d);font-weight:300;font-size:clamp(5rem,19.5vw,21rem);line-height:.8;letter-spacing:-.045em;font-variation-settings:"SOFT" 100,"WONK" 0;display:flex;flex-direction:column;text-shadow:0 2px 40px rgba(20,12,8,.25)}
.hl{display:block;overflow:hidden;padding:.06em .08em .16em;margin:-.06em -.08em -.16em}
.hl__in{display:inline-block;will-change:transform}
.hl--b{align-self:flex-end;padding-right:.04em}
.hero__et{font-size:.34em;font-style:italic;font-weight:300;letter-spacing:0;margin-right:.12em;vertical-align:.7em;line-height:1.4;font-variation-settings:"SOFT" 100,"WONK" 1}
.hero__et .w{line-height:1.4}
.hero__row{display:flex;flex-direction:column;gap:1.6rem;margin-top:clamp(1.8rem,5vh,3.4rem)}
.hero__lead{max-width:34rem;font-size:clamp(1.05rem,1.2vw + .7rem,1.4rem);line-height:1.5;color:rgba(246,239,230,.92)}
.hero__cta{display:flex;flex-wrap:wrap;gap:.9rem}
.hero__foot{position:absolute;left:var(--pad);right:var(--pad);bottom:1.4rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.hero__status{display:flex;align-items:center;gap:.7em}
.dot{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;background:var(--sage);box-shadow:0 0 0 0 rgba(168,179,154,.6);flex:none}
.dot.is-open{background:#8fd18b;animation:pulse 2.2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(143,209,139,.6)}70%{box-shadow:0 0 0 .7rem rgba(143,209,139,0)}100%{box-shadow:0 0 0 0 rgba(143,209,139,0)}}
.hero__scroll{display:none;align-items:center;gap:.8rem}
.hero__scroll i{position:relative;display:block;width:1.5px;height:44px;background:rgba(246,239,230,.3);overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;left:0;top:0;width:100%;height:50%;background:var(--sun);animation:drip 2.2s var(--ease) infinite}
@keyframes drip{0%{transform:translateY(-100%)}100%{transform:translateY(200%)}}
.hero__open{display:none;text-align:right;line-height:1.5}
.hero__open strong{color:var(--sun)}
@media (min-width:900px){
  .hero__row{flex-direction:row;align-items:flex-end;justify-content:space-between}
  .hero__scroll{display:flex;flex-direction:column}
  .hero__open{display:block}
  .hero__foot{justify-content:space-between;align-items:flex-end}
}

/* ---------- MARQUEE ---------- */
.marquee{position:relative;background:var(--cream);padding:clamp(2.2rem,5vw,4.5rem) 0;overflow:hidden}
.mq{overflow:hidden;white-space:nowrap}
.mq + .mq{margin-top:.2rem}
.mq__row{display:flex;width:max-content;will-change:transform}
.mq__grp{display:flex;align-items:center;flex:none}
.mq__grp span{font-family:var(--ff-d);font-size:clamp(3rem,8.5vw,8.5rem);line-height:1.1;font-weight:320;letter-spacing:-.02em;font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1;padding:0 .12em}
.mq--out .mq__grp span{font-style:normal;color:transparent;-webkit-text-stroke:1.2px var(--ink);font-variation-settings:"SOFT" 100,"WONK" 0;font-weight:300}
.mq__sun{display:block;width:auto;height:clamp(28px,3.6vw,50px);flex:none;margin:0 .45em;opacity:.9}

/* ---------- HISTOIRE ---------- */
.story{position:relative;padding:clamp(5rem,10vw,9rem) var(--pad) clamp(6rem,11vw,10rem);background:var(--cream)}
.story__bgs{display:none}
.story__left{max-width:46rem}
.story__title{font-size:clamp(2.4rem,6vw,5.6rem);margin-bottom:clamp(2.5rem,6vw,4.5rem)}
.story__steps{display:flex;flex-direction:column;gap:clamp(3.5rem,9vw,5.5rem)}
.step__n{display:block;font-family:var(--ff-d);font-size:clamp(3.4rem,7vw,5.5rem);line-height:1;font-weight:200;color:var(--clay);font-variation-settings:"SOFT" 100;margin-bottom:.6rem}
.step__t{font-family:var(--ff-d);font-size:clamp(1.8rem,3.6vw,3rem);line-height:1.05;font-weight:380;font-variation-settings:"SOFT" 100;margin-bottom:1rem}
.step p{max-width:34rem;font-size:clamp(1rem,.5vw + .9rem,1.2rem)}
.step__fig{width:min(78%,360px);aspect-ratio:3/4;margin-top:1.8rem}
.step__fig img{width:100%;height:100%;object-fit:cover}
.story__right,.story__dots{display:none}

@media (min-width:900px){
  html.pin .story{padding:0;height:100vh;height:100svh;background:transparent;overflow:visible}
  html.pin .story__bgs{display:block;position:absolute;inset:0;z-index:0}
  html.pin .story__bgs i{position:absolute;inset:0;background:var(--b);opacity:0}
  html.pin .story__bgs i:first-child{opacity:1}
  html.pin .story__pin{position:relative;z-index:1;height:100%;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);align-items:center;gap:4vw;padding:0 var(--pad)}
  html.pin .story__left{max-width:none;display:flex;flex-direction:column;justify-content:center;padding-top:3.5rem}
  html.pin .story__title{font-size:clamp(2.2rem,4.4vw,4.6rem);margin-bottom:clamp(1.5rem,4vh,3rem)}
  html.pin .story__steps{display:grid;gap:0}
  html.pin .step{grid-area:1/1;align-self:start}
  html.pin .step__fig{display:none}
  html.pin .story__right{display:block;position:relative;justify-self:center;align-self:center;height:min(76vh,48vw);aspect-ratio:3/4}
  html.pin .story__arch{position:relative;width:100%;height:100%;box-shadow:0 40px 80px -30px rgba(43,30,24,.35)}
  html.pin .story__img{position:absolute;inset:0}
  html.pin .story__img img{width:100%;height:100%;object-fit:cover;transform-origin:50% 60%}
  html.pin .story__sunmark{position:absolute;right:-4.2rem;top:8%;color:var(--clay)}
  html.pin .story__dots{display:flex;gap:.7rem;margin-top:2rem}
  .story__dots li{width:2.6rem;height:2px;background:rgba(43,30,24,.2);position:relative;overflow:hidden}
  .story__dots li::after{content:"";position:absolute;inset:0;background:var(--clay);transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease)}
  .story__dots li.is-on::after{transform:scaleX(1)}
}

/* ---------- SOINS ---------- */
.services{position:relative;background:var(--ink);color:var(--cream);padding:clamp(5rem,10vw,8rem) 0 clamp(5rem,9vw,7rem)}
.services__sticky{position:relative}
.services__track{display:flex;gap:clamp(1rem,2.4vw,2rem);padding:0 var(--pad);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.services__track::-webkit-scrollbar{display:none}
.services__head{flex:0 0 min(86vw,30rem);scroll-snap-align:start;display:flex;flex-direction:column;justify-content:center;padding-right:2rem}
.services__head .h2{font-size:clamp(2.6rem,6vw,5.6rem);margin-bottom:1.6rem}
.services__intro{max-width:26rem;color:rgba(246,239,230,.78)}
.services__hint{display:flex;align-items:center;gap:1rem;margin-top:2rem;font-size:.76rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700;color:var(--sun)}
.services__bar{display:none}

.card{position:relative;flex:0 0 min(80vw,22rem);scroll-snap-align:center;display:flex;flex-direction:column;background:var(--cream);color:var(--ink);border-radius:1.6rem;padding:.7rem .7rem 1.4rem;overflow:hidden;transform-style:preserve-3d}
.card__media{aspect-ratio:4/4.6;border-radius:999px 999px 1rem 1rem}
.card__body{padding:1.2rem .8rem 0;display:flex;flex-direction:column;gap:.7rem;flex:1}
.card__no{font-family:var(--ff-d);font-size:.95rem;color:var(--clay);font-weight:600;letter-spacing:.1em}
.card__t{font-family:var(--ff-d);font-size:clamp(1.7rem,2.2vw,2.3rem);line-height:1.02;font-weight:380;font-variation-settings:"SOFT" 100}
.card p{font-size:.96rem;line-height:1.55;color:rgba(43,30,24,.82)}
.card__foot{margin-top:auto;padding-top:.8rem;display:flex;align-items:center;justify-content:space-between;gap:.8rem}
.price{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--clay);transition:color .3s}
a.price::after{content:" →";display:inline-block;transition:transform .5s var(--ease)}
a.price:hover,a.price:focus-visible{color:var(--ink)}
a.price:hover::after{transform:translateX(4px)}
.glare{position:absolute;left:50%;top:50%;width:18rem;height:18rem;margin:-9rem 0 0 -9rem;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.55),rgba(255,255,255,0) 65%);opacity:0;pointer-events:none;z-index:5;mix-blend-mode:soft-light}

@media (min-width:900px){
  html.pin .services{padding:0;height:100vh;height:100svh}
  html.pin .services__sticky{height:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:center}
  html.pin .services__track{overflow:visible;scroll-snap-type:none;width:max-content;align-items:stretch;padding:0 var(--pad) 0 var(--pad);will-change:transform}
  html.pin .services__head{flex:0 0 min(38vw,34rem);padding-right:4vw}
  html.pin .card{flex:0 0 clamp(300px,25vw,420px);height:min(76vh,720px)}
  html.pin .card__media{flex:1 1 0;min-height:0;aspect-ratio:auto}
  html.pin .card__body{flex:0 0 auto}
  html.pin .services__bar{display:block;position:absolute;left:var(--pad);right:var(--pad);bottom:2.2rem;height:2px;background:rgba(246,239,230,.14)}
  html.pin .services__bar span{display:block;height:100%;background:var(--sun);transform:scaleX(0);transform-origin:left}
}

/* ---------- LE REGARD ---------- */
.regard{position:relative;background:var(--moss);color:var(--cream);padding:clamp(5rem,10vw,9rem) var(--pad) clamp(5rem,10vw,9rem)}
.regard__rays{position:absolute;right:-18vw;top:-6vw;width:56vw;color:rgba(246,239,230,.1)}
.regard__inner{position:relative;max-width:var(--maxw);margin:0 auto;display:grid;gap:clamp(2.5rem,5vw,4rem)}
.regard__txt{max-width:40rem}
.regard__txt .h2{margin-bottom:1.6rem}
.regard__txt p{color:rgba(246,239,230,.85)}
.regard__list{margin-top:2rem;border-top:1px solid rgba(246,239,230,.22)}
.regard__list button{display:flex;width:100%;align-items:center;justify-content:space-between;padding:1.05rem 0;border-bottom:1px solid rgba(246,239,230,.22);font-family:var(--ff-d);font-size:clamp(1.3rem,2vw,1.8rem);font-weight:340;text-align:left;transition:padding .5s var(--ease),color .3s}
.regard__list button:hover,.regard__list button:focus-visible{padding-left:1rem;color:var(--sun)}
.ba{position:relative;aspect-ratio:1183/528;border-radius:1.2rem;overflow:hidden;cursor:ew-resize;user-select:none;-webkit-user-select:none;touch-action:pan-y;box-shadow:0 30px 70px -30px rgba(0,0,0,.55);background:var(--moss-d)}
.ba__layer{position:absolute;inset:0}
.ba__layer img{width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba__avant{clip-path:inset(0 50% 0 0)}
.ba__handle{position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--cream);will-change:transform;pointer-events:none}
.ba__handle span{position:absolute;left:50%;top:50%;width:3.4rem;height:3.4rem;margin:-1.7rem 0 0 -1.7rem;border-radius:50%;background:var(--sun);color:var(--ink);display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.ba__handle svg{transform:rotate(0)}
.ba__range{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;margin:0}
.ba:focus-within{outline:3px solid var(--sun);outline-offset:4px}
.ba__cap{display:flex;align-items:center;gap:.7rem;margin-top:1rem;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:rgba(246,239,230,.8)}
.ba__cap svg{color:var(--sun)}
.regard__duo{display:flex;gap:clamp(1rem,3vw,2.5rem);justify-content:center;align-items:flex-start}
.orb{position:relative;width:min(44%,300px)}
.orb--b{margin-top:3.5rem}
.orb__img{position:relative;aspect-ratio:1;border-radius:50%;overflow:hidden;border:1.5px solid rgba(246,239,230,.35);padding:0}
.orb__img img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.orb figcaption{margin-top:.9rem;text-align:center;font-family:var(--ff-d);font-style:italic;font-size:1.15rem;font-variation-settings:"SOFT" 100,"WONK" 1}
@media (min-width:900px){
  .regard__inner{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);grid-template-areas:"txt ba" "txt duo";align-items:center;column-gap:clamp(2rem,5vw,5rem)}
  .regard__txt{grid-area:txt}
  .regard__ba{grid-area:ba}
  .regard__duo{grid-area:duo;justify-content:center;gap:clamp(2rem,4vw,4rem)}
  .orb{width:clamp(170px,16vw,250px)}
}

/* ---------- LA CARTE (TARIFS) ---------- */
.carte{position:relative;background:var(--cream);padding:clamp(5rem,10vw,9rem) var(--pad)}
.carte__grid{max-width:var(--maxw);margin:0 auto;display:grid;gap:clamp(2.5rem,5vw,4rem)}
.carte__head .h2{margin-bottom:1.6rem}
.carte__head p:not(.eyebrow){max-width:28rem;margin-bottom:1.6rem}
.tabs{display:flex;gap:.5rem;overflow-x:auto;padding:.2rem .1rem .9rem;scrollbar-width:none;margin-bottom:.4rem}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:none;padding:.75em 1.25em;border-radius:999px;border:1.5px solid rgba(43,30,24,.25);font-weight:700;font-size:.9rem;line-height:1.1;white-space:nowrap;transition:background .35s,color .35s,border-color .35s,transform .5s var(--ease)}
.tab:hover{border-color:var(--ink);transform:translateY(-2px)}
.tab[aria-selected="true"]{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.carte__panel{background:var(--cream-2);border:1px solid rgba(43,30,24,.1);border-radius:2rem;padding:clamp(1.4rem,3vw,2.6rem);box-shadow:0 40px 90px -55px rgba(43,30,24,.45);outline-offset:6px}
.carte__top{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.carte__name{font-family:var(--ff-d);font-size:clamp(2rem,4vw,3.4rem);font-weight:340;line-height:1;font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1}
.carte__no{font-family:var(--ff-d);color:var(--clay);font-weight:600;letter-spacing:.1em;white-space:nowrap}
.carte__list{list-style:none}
.it{display:flex;align-items:baseline;gap:.6rem;padding:.7rem 0;break-inside:avoid}
.it__n{flex:0 1 auto;font-weight:600;line-height:1.35}
.it__n small{display:block;font-weight:500;font-size:.82rem;color:rgba(43,30,24,.62);margin-top:.15rem}
.it__dots{flex:1 1 1.2rem;min-width:.8rem;border-bottom:1.5px dotted rgba(43,30,24,.32);transform:translateY(-.3em)}
.it__t{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--clay);font-weight:800;white-space:nowrap}
.it__p{font-family:var(--ff-d);font-size:1.4rem;font-weight:420;font-variation-settings:"SOFT" 100;white-space:nowrap}
.carte__h{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;font-weight:800;color:var(--clay);margin:1.4rem 0 .2rem;break-after:avoid}
.carte__h:first-child{margin-top:0}
.carte__note{margin-top:1.2rem;padding:.9rem 1.2rem;border-radius:1rem;background:rgba(212,162,79,.22);font-weight:600;font-size:.95rem}
.carte__foot{margin-top:1.6rem;display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;justify-content:space-between}
@media(min-width:760px){.carte__list.is-cols{columns:2;column-gap:3.5rem}}
@media(min-width:980px){.carte__grid{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);align-items:start}.carte__head{position:sticky;top:7rem}}

/* ---------- CHIFFRES ---------- */
.numbers{position:relative;background:var(--sand);padding:clamp(5rem,9vw,8rem) var(--pad)}
.numbers__list{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(2.5rem,5vw,3rem) clamp(1rem,3vw,2rem)}
.numbers__list li{position:relative;text-align:center;display:flex;flex-direction:column;align-items:center}
.ring{position:absolute;top:-.4rem;left:50%;width:clamp(110px,18vw,200px);margin-left:calc(clamp(110px,18vw,200px) / -2);color:var(--clay);transform:rotate(-90deg)}
.ring circle{fill:none;stroke:currentColor;stroke-width:.9;stroke-dasharray:1;stroke-dashoffset:1;stroke-linecap:round}
.num{position:relative;display:flex;align-items:baseline;justify-content:center;font-family:var(--ff-d);font-size:clamp(4rem,10vw,9rem);line-height:1;font-weight:240;letter-spacing:-.04em;font-variation-settings:"SOFT" 100;height:clamp(110px,18vw,200px);align-items:center}
.num small{font-size:.28em;margin-left:.1em;font-style:italic;color:var(--clay);letter-spacing:0;font-variation-settings:"SOFT" 100,"WONK" 1}
.num__l{max-width:15rem;margin-top:1rem;font-size:.95rem;line-height:1.5;color:rgba(43,30,24,.8)}
@media (min-width:900px){.numbers__list{grid-template-columns:repeat(4,1fr)}}

/* ---------- GALERIE ---------- */
.gallery{position:relative;background:var(--cream);padding:clamp(5rem,10vw,9rem) var(--pad) clamp(5rem,9vw,8rem)}
.gallery__head{max-width:var(--maxw);margin:0 auto clamp(2.5rem,5vw,4.5rem);display:grid;gap:1.4rem}
.gallery__head p:not(.eyebrow){max-width:30rem}
.gallery__cols{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(.8rem,2vw,2rem);align-items:start}
.gcol{display:flex;flex-direction:column;gap:clamp(.8rem,2vw,2rem);will-change:transform}
.gcol:nth-child(2){margin-top:clamp(2rem,6vw,6rem)}
.gcol--3{display:none}
.shot{position:relative;cursor:zoom-in;transform-style:preserve-3d;overflow:clip}
.shot__mask{border-radius:1.1rem}
.shot--tall .shot__mask{aspect-ratio:3/4.2}
.shot--sq .shot__mask{aspect-ratio:1}
.shot--port .shot__mask{aspect-ratio:4/5}
.shot:nth-child(2n) .shot__mask{border-radius:999px 999px 1.1rem 1.1rem}
.shot figcaption{position:absolute;left:.8rem;right:.8rem;bottom:.8rem;z-index:6;display:flex;gap:.8rem;align-items:center;padding:.65rem 1rem;border-radius:999px;background:rgba(246,239,230,.92);color:var(--ink);font-size:.78rem;font-weight:700;letter-spacing:.04em;transform:translateY(130%);opacity:0;transition:transform .6s var(--ease),opacity .4s}
.shot figcaption span{color:var(--clay);font-family:var(--ff-d);font-weight:600}
.shot:hover figcaption,.shot:focus-within figcaption{transform:none;opacity:1}
.shot .par img{transition:transform 1.2s var(--ease)}
.shot:hover .par img{transform:scale(1.07)}
@media (hover:none){.shot figcaption{transform:none;opacity:1;background:rgba(246,239,230,.82)}}
.gallery__more{text-align:center;margin-top:clamp(2.5rem,5vw,4rem);position:relative;z-index:2}
/* sur grand écran les colonnes descendent en défilant (parallaxe, jusqu'à 13 % de la hauteur d'écran) : on garde le bouton Instagram en dessous des photos */
@media (min-width:900px){.gallery__more{margin-top:calc(clamp(2.5rem,5vw,4rem) + 15vh)}}
@media (min-width:900px){
  .gallery__cols{grid-template-columns:repeat(3,1fr)}
  .gcol--3{display:flex;margin-top:clamp(1rem,3vw,3rem)}
  .gallery__head{grid-template-columns:1fr 1fr;align-items:end}
  .gallery__head .eyebrow{grid-column:1/-1;margin-bottom:0}
}

.lb{border:0;padding:0;background:transparent;max-width:min(92vw,820px);max-height:92vh;overflow:visible;color:var(--cream)}
.lb::backdrop{background:rgba(28,18,12,.88);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.lb img{max-height:80vh;width:auto;max-width:100%;margin:0 auto;border-radius:1rem;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.lb__cap{text-align:center;margin-top:1rem;font-family:var(--ff-d);font-style:italic;font-size:1.2rem}
.lb__x{position:absolute;right:-.4rem;top:-3.4rem;width:2.8rem;height:2.8rem;border-radius:50%;background:var(--cream);color:var(--ink);font-size:1.6rem;line-height:1}

/* ---------- AVIS ---------- */
.reviews{position:relative;background:var(--blush);padding:clamp(5rem,9vw,8rem) 0 clamp(5rem,9vw,8rem)}
.reviews__head{max-width:var(--maxw);margin:0 auto clamp(2rem,4vw,3.5rem);padding:0 var(--pad);display:grid;gap:1.2rem}
.reviews__head p:not(.eyebrow){max-width:32rem}
.rv__track{display:flex;gap:clamp(1rem,2vw,1.8rem);padding:.5rem var(--pad) 1.5rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab;-webkit-overflow-scrolling:touch}
.rv__track::-webkit-scrollbar{display:none}
.rv__track.is-drag{cursor:grabbing;scroll-snap-type:none}
.rcard{flex:0 0 min(84vw,27rem);scroll-snap-align:center;position:relative;background:var(--cream-2);border-radius:1.6rem 1.6rem 1.6rem 4rem;padding:2rem 2rem 1.8rem;display:flex;flex-direction:column;gap:1.2rem;min-height:19rem;box-shadow:0 20px 50px -30px rgba(43,30,24,.4)}
.rcard__q{font-family:var(--ff-d);font-size:5rem;line-height:.6;color:var(--sun-d);font-style:italic;height:2rem;font-variation-settings:"SOFT" 100,"WONK" 1}
.rcard__stars{display:flex;gap:.25rem;color:var(--sun-d)}
.rcard__txt{font-family:var(--ff-d);font-size:1.12rem;line-height:1.45;font-weight:340;font-variation-settings:"SOFT" 100}
.rcard__sk{display:grid;gap:.7rem;margin-top:.3rem}
.rcard__sk i{display:block;height:.8rem;border-radius:999px;background:linear-gradient(90deg,rgba(43,30,24,.08),rgba(43,30,24,.15),rgba(43,30,24,.08));background-size:200% 100%;animation:shimmer 3.2s linear infinite}
.rcard__sk i:nth-child(2){width:88%}.rcard__sk i:nth-child(3){width:64%}
@keyframes shimmer{to{background-position:-200% 0}}
.rcard__who{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--clay)}
.rcard__who span:last-child{color:rgba(43,30,24,.55);font-weight:600}
.rcard--empty .rcard__who{border-top:1px dashed rgba(43,30,24,.25);padding-top:1rem}
.rv__ctrl{max-width:var(--maxw);margin:0 auto;padding:.4rem var(--pad) 0;display:flex;align-items:center;gap:1.2rem}
.rv__btn{width:3.4rem;height:3.4rem;border-radius:50%;border:1.5px solid var(--ink);display:grid;place-items:center;transition:background .4s,color .4s,transform .5s var(--ease)}
.rv__btn:hover,.rv__btn:focus-visible{background:var(--ink);color:var(--cream)}
.rv__dots{display:flex;gap:.5rem;flex:1}
.rv__dots i{width:.55rem;height:.55rem;border-radius:50%;background:rgba(43,30,24,.22);transition:background .3s,transform .5s var(--ease)}
.rv__dots i.is-on{background:var(--clay);transform:scale(1.5)}

/* ---------- BON CADEAU ---------- */
.gift{position:relative;background:var(--taupe);color:var(--cream);padding:clamp(5rem,10vw,9rem) var(--pad) clamp(6rem,11vw,10rem)}
.gift__rays{position:absolute;left:-14vw;bottom:-22vw;width:64vw;color:rgba(246,239,230,.14)}
.gift__inner{position:relative;max-width:var(--maxw);margin:0 auto;display:grid;gap:clamp(3rem,6vw,5rem);align-items:center}
.gift__txt .h2{margin-bottom:1.6rem}
.gift__txt p{max-width:34rem;margin-bottom:1.6rem}
.gift__txt p:last-child{margin-bottom:0}
/* carte cadeau : la vraie carte (recto / verso) en 3D, glissable et retournable */
.gstage{position:relative;justify-self:center;width:min(100%,35rem);display:flex;flex-direction:column;align-items:center;gap:1.1rem}
.gcard{position:relative;width:100%;aspect-ratio:1000/469;isolation:isolate;touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}
.gcard.is-drag{cursor:grabbing}
.gcard::before{content:"";position:absolute;z-index:-1;left:5%;right:5%;bottom:-9%;height:16%;border-radius:50%;background:radial-gradient(closest-side,rgba(18,9,4,.62),rgba(18,9,4,0));filter:blur(7px);transform:translateX(var(--shx,0px)) scaleX(var(--shs,1));opacity:var(--sho,.9)}
.gcard__body{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}
.gcard__face{position:absolute;inset:0;border-radius:.55% / 1.2%;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#f6f4ef;box-shadow:0 1px 0 rgba(255,255,255,.5) inset}
.gcard__face img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none}
.gcard__face::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,rgba(255,255,255,0) calc(var(--sx,50%) - 22%),rgba(255,255,255,.34) var(--sx,50%),rgba(255,255,255,0) calc(var(--sx,50%) + 22%));mix-blend-mode:soft-light}
.gcard__face--front{transform:translateZ(2.5px)}
.gcard__face--back{transform:rotateY(180deg) translateZ(2.5px)}
.gcard__edge{position:absolute;background:linear-gradient(#e9e3d5,#d9d1bf)}
.gcard__edge--t,.gcard__edge--b{left:0;width:100%;height:5px}
.gcard__edge--t{top:0;transform:translateY(-2.5px) rotateX(90deg)}
.gcard__edge--b{top:100%;transform:translateY(-2.5px) rotateX(90deg)}
.gcard__edge--l,.gcard__edge--r{top:0;height:100%;width:5px}
.gcard__edge--l{left:0;transform:translateX(-2.5px) rotateY(90deg)}
.gcard__edge--r{left:100%;transform:translateX(-2.5px) rotateY(90deg)}
.gstage__hint{font-size:.82rem;letter-spacing:.04em;opacity:.85;text-align:center}
@media (prefers-reduced-motion:reduce){.gcard__body{transition:none}}
@media (min-width:900px){.gift__inner{grid-template-columns:1.1fr .9fr}}

/* ---------- CTA vidéo ---------- */
.cta{position:relative;min-height:100vh;min-height:100svh;display:grid;place-items:center;color:var(--cream);background:var(--ink);padding:clamp(6rem,12vw,10rem) var(--pad)}
.cta__bg{position:absolute;inset:0;overflow:hidden}
.cta__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cta__veil{position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(28,18,12,.62),rgba(28,18,12,.9))}
.cta__inner{position:relative;text-align:center;display:flex;flex-direction:column;align-items:center;gap:clamp(1.4rem,3vw,2.4rem)}
.cta__title{font-family:var(--ff-d);font-weight:300;font-size:clamp(2.8rem,8.4vw,8.6rem);line-height:.95;letter-spacing:-.03em;max-width:15ch;font-variation-settings:"SOFT" 100,"WONK" 1;text-wrap:balance}
.cta__phone{position:relative;display:inline-grid;place-items:center;padding:clamp(1.2rem,3vw,2rem) clamp(1.8rem,5vw,4rem);margin:.4rem 0}
.cta__num{position:relative;z-index:1;font-family:var(--ff-d);font-size:clamp(2.2rem,8.6vw,7.4rem);line-height:1;font-weight:240;letter-spacing:-.03em;font-variant-numeric:lining-nums;color:var(--sun);transition:color .4s;font-variation-settings:"SOFT" 100}
.cta__phone:hover .cta__num{color:var(--cream)}
.cta__ring{position:absolute;right:clamp(-4.5rem,-4vw,-1.2rem);top:clamp(-5.6rem,-6.4vw,-3rem);width:clamp(96px,12vw,170px);animation:spin 26s linear infinite;color:rgba(246,239,230,.85);pointer-events:none}
.cta__ring text{font-family:var(--ff-b);font-size:15px;letter-spacing:.3em;text-transform:uppercase;fill:currentColor;font-weight:700}
.cta__btns{display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center}

/* ---------- RÉSERVATION ---------- */
.booking{position:relative;background:var(--cream);padding:clamp(5rem,10vw,9rem) var(--pad)}
.booking__grid{max-width:var(--maxw);margin:0 auto;display:grid;gap:clamp(2.5rem,5vw,4.5rem)}
.booking__head .h2{margin-bottom:1.6rem;font-size:clamp(2.5rem,6vw,5.8rem)}
.booking__head p:not(.eyebrow){max-width:30rem}
.booking__alt{margin-top:2rem;display:grid;gap:.9rem;font-weight:600}
.booking__alt li{display:flex;align-items:center;gap:.9rem}
.booking__alt svg{color:var(--clay);flex:none}
.wiz{position:relative;background:var(--cream-2);border:1px solid rgba(43,30,24,.12);border-radius:2rem;padding:clamp(1.3rem,3vw,2.6rem);box-shadow:0 40px 90px -50px rgba(43,30,24,.4)}
.wiz__steps{display:flex;gap:.4rem;margin-bottom:clamp(1.5rem,3vw,2.2rem)}
.wiz__steps li{flex:1;display:flex;align-items:center;gap:.6rem;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:rgba(43,30,24,.4);padding-bottom:.8rem;border-bottom:2px solid rgba(43,30,24,.12);transition:color .4s,border-color .4s}
.wiz__steps b{display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;border:1.5px solid currentColor;font-size:.72rem}
.wiz__steps li.is-done{color:var(--clay);border-color:var(--clay)}
.wiz__steps li.is-on{color:var(--ink);border-color:var(--sun-d)}
.wiz__steps li.is-on b{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.wiz__steps span{display:none}
@media (min-width:520px){.wiz__steps span{display:inline}}
.panel{border:0;margin:0;padding:0;min-width:0;display:none}
.panel.is-on{display:block}
.panel legend,.panel__title{font-family:var(--ff-d);font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.1;font-weight:350;font-variation-settings:"SOFT" 100;margin-bottom:.6rem;padding:0}
.panel legend{float:left;width:100%}
.panel legend + *{clear:both}
.panel__hint{color:rgba(43,30,24,.7);font-size:.95rem;margin-bottom:1.4rem;clear:both}
.panel__lbl{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;font-weight:800;color:var(--clay);margin:1.2rem 0 .7rem}
.chips{display:flex;flex-wrap:wrap;gap:.6rem}
.chip{position:relative;display:inline-block;cursor:pointer}
.chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.chip span{display:inline-flex;align-items:center;gap:.5rem;padding:.8em 1.3em;border-radius:999px;border:1.5px solid rgba(43,30,24,.25);font-weight:600;font-size:.95rem;line-height:1.2;background:transparent;transition:background .35s,color .35s,border-color .35s,transform .5s var(--ease)}
.chip:hover span{border-color:var(--ink);transform:translateY(-2px)}
.chip input:checked + span{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.chip input:checked + span::before{content:"✓";color:var(--sun)}
.chip input:focus-visible + span{outline:2.5px solid var(--sun-d);outline-offset:3px}
.dates,.times{display:flex;gap:.55rem;flex-wrap:wrap}
.dates{flex-wrap:nowrap;overflow-x:auto;padding:.3rem .2rem .8rem;margin:0 -.2rem;scrollbar-width:thin}
.chip--date span{flex-direction:column;gap:0;padding:.7em 0;width:4.6rem;border-radius:1.6rem;text-align:center;line-height:1.15}
.chip--date b{font-family:var(--ff-d);font-size:1.7rem;font-weight:400;line-height:1.1}
.chip--date small{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;opacity:.75}
.chip--date input:checked + span::before{content:none}
.chip--time span{padding:.6em 1em;font-size:.9rem;font-variant-numeric:tabular-nums}
.chip--time input:checked + span::before{content:none}
.chip input:disabled + span{opacity:.3;pointer-events:none;text-decoration:line-through}
.check{display:flex;align-items:center;gap:.7rem;margin-top:1.3rem;font-weight:600;cursor:pointer}
.check input{width:1.3rem;height:1.3rem;accent-color:var(--clay)}
.fields{display:grid;gap:1rem;grid-template-columns:1fr}
.field{display:grid;gap:.4rem}
.field span{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--clay)}
.field input,.field textarea{width:100%;padding:.95em 1.1em;border-radius:1rem;border:1.5px solid rgba(43,30,24,.22);background:var(--cream);transition:border-color .3s,box-shadow .3s;resize:vertical}
.field input:focus,.field textarea:focus{outline:0;border-color:var(--ink);box-shadow:0 0 0 4px rgba(212,162,79,.35)}
@media (min-width:560px){.fields{grid-template-columns:1fr 1fr}.field--full{grid-column:1/-1}}
.err{min-height:1.4em;margin-top:1rem;color:#a6321d;font-weight:700;font-size:.92rem}
.phone{margin:1.2rem 0 1.6rem;max-width:30rem;background:var(--sand);border-radius:1.6rem;padding:1rem}
.phone__bar{display:flex;align-items:center;gap:.7rem;padding:.2rem .4rem .8rem;font-size:.78rem;font-weight:700;letter-spacing:.06em;color:rgba(43,30,24,.7)}
.phone__bar i{width:1.9rem;height:1.9rem;border-radius:50%;background:var(--moss);position:relative}
.phone__bar i::after{content:"L";position:absolute;inset:0;display:grid;place-items:center;color:var(--cream);font-family:var(--ff-d);font-style:italic;font-size:.95rem}
.phone__bubble{background:var(--ink);color:var(--cream);padding:1rem 1.2rem;border-radius:1.3rem 1.3rem .3rem 1.3rem;font-size:.96rem;line-height:1.55;white-space:pre-line;margin-left:2rem}
.send{display:flex;flex-wrap:wrap;gap:.7rem}
.mailbox{margin-top:1.2rem;padding:1.2rem 1.3rem 1rem;max-width:34rem;border-radius:1.4rem;background:var(--sand);display:grid;gap:.8rem}
.mailbox[hidden]{display:none}
.mailbox__info{font-size:.84rem;line-height:1.5;color:rgba(43,30,24,.72)}
.mailbox .btn{justify-self:start}
.mailbox .err{margin-top:0;min-height:0}
.mailbox .err:empty{display:none}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.send__note{margin-top:1.3rem;font-size:.88rem;color:rgba(43,30,24,.7);max-width:38rem}
.send__ok{min-height:1.5em;margin-top:.6rem;font-weight:700;color:var(--moss)}
.wiz__nav{display:flex;justify-content:space-between;gap:1rem;margin-top:clamp(1.5rem,3vw,2.2rem)}
.wiz__nav #wiz-next{margin-left:auto}
@media (min-width:980px){.booking__grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start}.booking__head{position:sticky;top:7rem}}

/* ---------- NOUS TROUVER ---------- */
.find{position:relative;background:var(--sand);padding:clamp(5rem,10vw,9rem) var(--pad)}
.find__grid{max-width:var(--maxw);margin:0 auto;display:grid;gap:clamp(2.5rem,5vw,4.5rem);align-items:center}
.find__info .h2{margin-bottom:2rem;font-size:clamp(2.4rem,5.4vw,5.2rem)}
.find__addr{display:grid;gap:.9rem;margin-bottom:2rem}
.find__addr a{display:flex;align-items:center;gap:1rem;padding:1rem 1.3rem;border-radius:1.2rem;background:var(--cream-2);font-weight:600;line-height:1.35;transition:transform .5s var(--ease),box-shadow .5s,background .4s}
.find__addr a:hover,.find__addr a:focus-visible{transform:translateX(.5rem);background:var(--ink);color:var(--cream)}
.find__addr svg{flex:none;color:var(--clay);transition:color .4s}
.find__addr a:hover svg{color:var(--sun)}
.find__addr small{font-size:.8rem;font-weight:600;opacity:.6;letter-spacing:.06em}
.hours h3{font-family:var(--ff-d);font-size:1.7rem;font-weight:380;margin-bottom:.4rem;font-variation-settings:"SOFT" 100}
.hours__now{display:flex;align-items:center;gap:.7rem;font-weight:700;font-size:.9rem;margin-bottom:1rem}
.hours .dot.is-open{background:#4fa84a}
.hours dl div{display:flex;justify-content:space-between;padding:.55rem 0;border-bottom:1px solid rgba(43,30,24,.14);font-size:.98rem}
.hours dt{font-weight:600}
.hours dd{font-variant-numeric:tabular-nums}
.hours dl div.is-today{color:var(--clay);font-weight:800}
.hours dl div.is-today dt::after{content:" · aujourd’hui";font-weight:600;font-size:.8rem}
.find__map{position:relative}
.find__frame{position:relative;aspect-ratio:4/4.6;border-radius:999px 999px 1.4rem 1.4rem;overflow:hidden;box-shadow:0 40px 80px -40px rgba(43,30,24,.5);background:var(--sage)}
.find__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.85) contrast(.98)}
.find__go{position:absolute;left:50%;bottom:1.6rem;transform:translateX(-50%)}
@media (min-width:900px){.find__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.find__map{justify-self:center;width:min(100%,38rem)}}
@media (max-width:899px){.find__go{position:static;transform:none;margin-top:1.2rem;display:flex}}

/* ---------- FOOTER ---------- */
.footer{position:relative;background:var(--ink);color:var(--cream);padding:clamp(5rem,9vw,8rem) var(--pad) 2rem;overflow-x:clip}
.footer__top{max-width:var(--maxw);margin:0 auto;display:grid;gap:2.5rem;grid-template-columns:1fr}
.footer__col{display:flex;flex-direction:column;gap:.6rem;align-items:flex-start;line-height:1.55}
.footer__h{font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;font-weight:800;color:var(--sun);margin:0 0 .6rem}
.footer__h--logo{margin:0 0 .9rem;letter-spacing:0;text-transform:none;line-height:0}
.footer__logo{display:block;width:min(230px,62vw);height:auto}
.footer__small{margin-top:.6rem;font-size:.9rem;opacity:.7}
.footer__big{width:min(82vw,840px);margin:clamp(3rem,7vw,6rem) auto 1.5rem;user-select:none}
.footer__big img{display:block;width:100%;height:auto;opacity:.95}
.footer__bottom{max-width:var(--maxw);margin:0 auto;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 2rem;padding-top:1.4rem;border-top:1px solid rgba(246,239,230,.16);font-size:.82rem;opacity:.75}
@media (min-width:760px){.footer__top{grid-template-columns:1.4fr 1fr 1fr}}

/* ---------- FAB mobile ---------- */
.fab{position:fixed;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));z-index:90;display:none;align-items:center;gap:.6rem;transform:translateY(180%);transition:transform .7s var(--ease)}
.fab.is-on{transform:none}
.fab__book{display:flex;align-items:center;gap:.6rem;padding:.95rem 1.4rem;border-radius:999px;background:var(--sun);color:var(--ink);font-weight:800;letter-spacing:.02em;box-shadow:0 12px 30px -8px rgba(20,10,5,.55)}
.fab__tel{display:grid;place-items:center;width:3.3rem;height:3.3rem;border-radius:50%;background:var(--ink);color:var(--sun);box-shadow:0 12px 30px -8px rgba(20,10,5,.55)}
@media (max-width:899px){.fab{display:flex}}

/* ---------- Réservation en fenêtre (ouverte depuis tous les boutons « Réserver ») ---------- */
.bk{border:0;padding:0;background:var(--cream-2);color:var(--ink);width:min(94vw,46rem);max-width:94vw;max-height:92vh;max-height:92dvh;border-radius:2rem;overflow:hidden;box-shadow:0 50px 120px -30px rgba(20,10,5,.65)}
.bk::backdrop{background:rgba(28,18,12,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.bk__body{max-height:92vh;max-height:92dvh;overflow:auto;overscroll-behavior:contain;padding:clamp(1.3rem,3vw,2.4rem)}
.bk__x{position:absolute;right:1rem;top:1rem;z-index:3;width:2.8rem;height:2.8rem;border-radius:50%;background:var(--ink);color:var(--cream);font-size:1.7rem;line-height:1;display:grid;place-items:center;transition:transform .5s var(--ease),background .3s}
.bk__x:hover,.bk__x:focus-visible{background:var(--clay);transform:rotate(90deg)}
.bk__t{font-family:var(--ff-d);font-size:clamp(1.9rem,4.4vw,2.9rem);font-weight:340;line-height:1;margin:0 3.4rem .5rem 0;font-variation-settings:"SOFT" 100}
.bk__sub{color:rgba(43,30,24,.72);font-size:.95rem;margin-bottom:1.5rem;max-width:34rem}
.bk .wiz{background:none;border:0;box-shadow:none;padding:0;border-radius:0}

/* ---------- Divers responsive ---------- */
@media (max-width:899px){
  .hero__logo{top:5.6rem}
  .hero__logo img{width:min(62vw,300px)}
  .hero__title{font-size:clamp(4.4rem,23vw,10rem)}
  .nav__cta{display:none}
  .nav{justify-content:space-between}
  .hero__foot{justify-content:flex-start}
}
@media (max-width:520px){
  .nav__logo{height:42px}
  .nav.is-solid .nav__logo{height:38px}
}

/* ---------- Mouvement réduit ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .rays,.cta__ring{animation:none!important}
  .mq{white-space:normal}
  .mq__row{width:auto;flex-wrap:wrap;justify-content:center}
  .mq__grp{flex-wrap:wrap;justify-content:center}
  html.is-loading{overflow:auto}
  .cursor{display:none!important}
}

/* ==========================================================================
   Mobile : correctifs de cadrage (colonnes qui ne débordent plus)
   ========================================================================== */
@media (max-width:899px){
  .regard__inner,.carte__grid,.gift__inner,.booking__grid,.find__grid,.gallery__head,.reviews__head,.footer__top{grid-template-columns:minmax(0,1fr)}
  .regard__inner>*,.carte__grid>*,.gift__inner>*,.booking__grid>*,.find__grid>*{min-width:0}
  .numbers__list,.gallery__cols{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:559px){
  .fields{grid-template-columns:minmax(0,1fr)}
}
.gift{overflow-x:clip}
@media (max-width:899px){
  .hero__title{font-size:clamp(3.8rem,20.5vw,9rem)}
  .tabs{flex-wrap:wrap;overflow:visible;padding-bottom:.4rem}
  .tab{padding:.7em 1.1em}
  a.price{display:inline-flex;align-items:center;min-height:44px;padding:0 1rem;border:1.5px solid rgba(156,83,53,.35);border-radius:999px;font-size:.82rem;letter-spacing:.08em}
  .shot figcaption{left:.5rem;right:.5rem;bottom:.5rem;padding:.5rem .8rem;border-radius:1rem;font-size:.7rem;gap:.5rem;line-height:1.25}
  .footer__col a,.booking__alt a{padding:.3rem 0}
}
/* ---- Soins : sur mobile, titre au-dessus, cartes à faire glisser en dessous ---- */
.services__cards{display:contents}
.hl--b{padding-right:.14em}
@media (max-width:899px){
  .services{padding:clamp(4.5rem,12vw,6rem) 0 clamp(4.5rem,10vw,6rem)}
  .services__track{display:block;overflow:visible;scroll-snap-type:none;padding:0}
  .services__head{display:block;padding:0 var(--pad);margin-bottom:1.8rem}
  .services__head .h2{margin-bottom:1rem}
  .services__hint{margin-top:1.2rem}
  .services__cards{display:flex;gap:1rem;padding:0 var(--pad) .8rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 var(--pad);scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .services__cards::-webkit-scrollbar{display:none}
  .card{flex:0 0 min(80vw,21rem);scroll-snap-align:start}
  .gstage{width:100%}
  .cta__ring{right:-.4rem;top:-4.2rem;width:88px}
  .footer{padding-bottom:6.5rem}
  .hero__title{font-size:clamp(3.8rem,20vw,9rem)}
}
@media (max-width:899px) and (max-height:720px){
  .hero__title{font-size:clamp(3.2rem,17vw,6rem)}
  .hero__lead{font-size:1rem}
}
@media (max-width:899px){
  .bk__body{padding-bottom:0}
  .bk .wiz__nav{position:sticky;bottom:0;z-index:2;margin:1rem calc(-1 * clamp(1.3rem,3vw,2.4rem)) 0;padding:.9rem clamp(1.3rem,3vw,2.4rem) 1.1rem;background:linear-gradient(180deg,rgba(251,247,241,0),var(--cream-2) 28%)}
  .bk .send__ok{margin-bottom:1rem}
}
@media (max-width:899px){
  .bk .wiz[data-step="4"] .wiz__nav{position:static;margin:1rem 0 0;padding:0;background:none}
  .bk .wiz[data-step="4"] .send .btn{width:100%}
}
/* ==========================================================================
   Explications dépliables, QR code, fermetures et messages d’information
   ========================================================================== */
.carte__tip{display:flex;align-items:center;gap:.6rem;margin:0 0 .8rem;font-size:.88rem;color:rgba(43,30,24,.7)}
.carte__tip i{flex:none;width:1.5rem;height:1.5rem;border-radius:50%;border:1.5px solid var(--clay);position:relative}
.carte__tip i::before{content:"+";position:absolute;inset:0;display:grid;place-items:center;color:var(--clay);font-weight:800;line-height:1;font-size:1rem}
/* une ligne = nom + pointillés + prix (le nom passe à la ligne plutôt que le prix), l’explication dessous */
.it{display:grid;grid-template-columns:minmax(0,max-content) minmax(.8rem,1fr) auto auto;column-gap:0;row-gap:0;align-items:baseline}
.it>.it__n{grid-column:1;grid-row:1}
.it__dots{grid-column:2;grid-row:1;flex:none;margin:0 .6rem;min-width:0}
.it__t{grid-column:3;grid-row:1;margin-right:.6rem}
.it__p{grid-column:4;grid-row:1}
.it__x{grid-column:1/-1;grid-row:2}
button.it__n{display:flex;align-items:baseline;gap:.55rem;text-align:left;cursor:pointer;color:inherit;font:inherit;font-weight:600;line-height:1.35}
button.it__n:hover .it__name,button.it__n:focus-visible .it__name{text-decoration:underline;text-decoration-color:var(--sun-d);text-underline-offset:.25em}
.it__plus{flex:none;align-self:center;width:1.3rem;height:1.3rem;border-radius:50%;border:1.5px solid var(--clay);position:relative;transition:transform .5s var(--ease),background .3s}
.it__plus::before,.it__plus::after{content:"";position:absolute;left:50%;top:50%;width:.55rem;height:1.5px;background:var(--clay);transform:translate(-50%,-50%);transition:transform .5s var(--ease),background .3s}
.it__plus::after{transform:translate(-50%,-50%) rotate(90deg)}
.it.is-open .it__plus{background:var(--clay);transform:rotate(180deg)}
.it.is-open .it__plus::before,.it.is-open .it__plus::after{background:var(--cream)}
.it.is-open .it__plus::after{transform:translate(-50%,-50%) rotate(0)}
.it__x{flex:0 0 100%;display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.it__x p{overflow:hidden;min-height:0;margin:0 0 0 .2rem;padding:0 .2rem 0 .9rem;border-left:2px solid var(--sun);font-size:.94rem;line-height:1.55;color:rgba(43,30,24,.84);opacity:0;transition:opacity .4s,padding .5s var(--ease)}
.it.is-open .it__x{grid-template-rows:1fr}
.it.is-open .it__x p{opacity:1;padding-top:.45rem;padding-bottom:.45rem;margin-top:.5rem;margin-bottom:.3rem}

.qr{display:flex;gap:1.4rem;align-items:center;margin:1rem 0 1.4rem;padding:1.1rem;border-radius:1.4rem;background:var(--sand)}
.qr__img{flex:none;width:min(46vw,200px);aspect-ratio:1;background:#fff;border-radius:.9rem;overflow:hidden;padding:.4rem}
.qr__img svg{display:block;width:100%;height:100%}
.qr__txt h4{font-family:var(--ff-d);font-size:1.3rem;font-weight:380;line-height:1.15;margin:0 0 .45rem;font-variation-settings:"SOFT" 100}
.qr__txt p{margin:0;font-size:.9rem;line-height:1.5;color:rgba(43,30,24,.8)}
@media (max-width:559px){.qr{flex-direction:column;text-align:center}}

.hours__notice,.wiz__notice{margin:.4rem 0 1rem;padding:.8rem 1rem;border-radius:1rem;background:rgba(212,162,79,.25);font-weight:600;font-size:.92rem;line-height:1.45}
.hours__exh{margin:1.4rem 0 .3rem;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;font-weight:800;color:var(--clay)}
.hours__ex{list-style:none}
.hours__ex li{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid rgba(43,30,24,.14);font-size:.95rem}
.hours__ex b{font-weight:800;color:var(--clay);white-space:nowrap}
@media (max-width:899px) and (max-height:760px){.hero__eyebrow{display:none}}

/* ---------- Message de Lison (pop-up, 3 s après l’arrivée) ---------- */
.pop{border:0;padding:clamp(1.8rem,4vw,2.6rem) clamp(1.4rem,4vw,2.4rem) clamp(1.6rem,4vw,2.2rem);width:min(92vw,30rem);max-width:92vw;border-radius:2rem;background:var(--cream-2);color:var(--ink);text-align:center;box-shadow:0 50px 120px -30px rgba(20,10,5,.65);overflow:visible}
.pop:focus{outline:0}
.pop::backdrop{background:rgba(28,18,12,.7);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.pop[open]{animation:popIn .8s var(--ease) both}
@keyframes popIn{from{opacity:0;transform:translateY(26px) scale(.96)}to{opacity:1;transform:none}}
.pop__x{position:absolute;right:.9rem;top:.9rem;width:2.6rem;height:2.6rem;border-radius:50%;background:var(--ink);color:var(--cream);font-size:1.6rem;line-height:1;display:grid;place-items:center;transition:transform .5s var(--ease),background .3s}
.pop__x:hover,.pop__x:focus-visible{background:var(--clay);transform:rotate(90deg)}
.pop__logo{display:block;width:min(68%,14rem);height:auto;margin:.2rem auto 1.1rem}
.pop__eyebrow{font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;font-weight:800;color:var(--clay);margin:0 0 .9rem}
.pop__txt{font-family:var(--ff-d);font-size:clamp(1.35rem,3.8vw,1.7rem);line-height:1.35;font-weight:380;font-variation-settings:"SOFT" 100;white-space:pre-line;overflow-wrap:anywhere;margin:0 0 1.7rem}
.pop__btns{display:flex;justify-content:center}
@media (prefers-reduced-motion:reduce){.pop[open]{animation:none}}

/* Le regard : une courte explication sous chaque soin */
.regard__list button{align-items:center;gap:1rem}
.regard__list button svg{flex:none}
.rl{display:grid;gap:.3rem;min-width:0}
.rl__d{font-family:var(--ff-b);font-size:.92rem;font-weight:500;line-height:1.45;letter-spacing:0;color:rgba(246,239,230,.78)}

/* vidéo d'accueil = massage vu de dessus, deux cadrages : paysage (1024x576) sur ordinateur, portrait (576x1024) sur téléphone ; choisis par le script de index.html */
.hero__video{object-position:50% 50%}
