/* ══════════════════════════════════════════════════════════════
   SHIATSU & BIEN-ÊTRE — « Terre & Souffle »
   Palette : lin · sable · cacao · terre cuite · ocre bougie · sauge
   Fil rouge : l’ensō (cercle tracé au pinceau) + les points de pression
   ══════════════════════════════════════════════════════════════ */

:root{
  --lin:#F3EBDF;        /* fond clair, papier washi */
  --sable:#E6D8C4;      /* panneaux, surfaces */
  --cacao:#271913;      /* fond sombre + texte */
  --cacao-2:#3A2820;    /* cartes sur fond sombre */
  --terre:#A44A30;      /* accent principal (terre cuite) */
  --braise:#7E301C;     /* survol de l’accent */
  --ocre:#D9A25A;       /* accent lumineux (bougie) */
  --sauge:#5F6D50;      /* respiration, bambou */

  --f-title:'Fraunces','Iowan Old Style','Palatino Linotype',Georgia,serif;
  --f-body:'Figtree',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --f-kanji:'Shippori Mincho','Hiragino Mincho ProN','Yu Mincho',serif;

  --ease:cubic-bezier(.22,1,.36,1);
  --gutter:clamp(1.25rem,4vw,4rem);
  --maxw:1480px;
  --focus:var(--terre);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
.lenis.lenis-smooth iframe{pointer-events:none}

body{
  margin:0;background:var(--lin);color:var(--cacao);
  font:400 clamp(1rem,.95rem + .25vw,1.125rem)/1.65 var(--f-body);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.is-loading{overflow:hidden}

/* grain papier, statique (aucun coût d’animation) */
body::after{
  content:'';position:fixed;inset:0;z-index:150;pointer-events:none;opacity:.5;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .16  0 0 0 0 .1  0 0 0 0 .07  0 0 0 .09 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

img,svg,video{display:block;max-width:100%}
h1,h2,h3,h4,p,figure,blockquote,dl,dd,address{margin:0}
address{font-style:normal}
ul{margin:0;padding:0}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:4px}
::selection{background:var(--terre);color:var(--lin)}

.sr-only{position:absolute;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:-5rem;z-index:500;background:var(--cacao);color:var(--lin);padding:.8rem 1.2rem;border-radius:999px;transition:top .3s}
.skip:focus{top:1rem}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}

/* ── Typographie ───────────────────────────────────────────── */
.h2{font-family:var(--f-title);font-weight:300;font-size:clamp(2.7rem,7.4vw,7.4rem);line-height:.98;letter-spacing:-.035em;text-wrap:balance}
.h2 em,.h3 em{font-style:italic;font-weight:300;color:var(--terre)}
.h2--light{color:var(--lin)}
.h2--light em{color:var(--ocre)}
.h3{font-family:var(--f-title);font-weight:300;font-size:clamp(1.7rem,3vw,2.6rem);line-height:1.1;letter-spacing:-.02em}
.h3--light{color:var(--lin)}
.lead{font-size:clamp(1.05rem,1rem + .5vw,1.35rem);line-height:1.55;max-width:34em;margin-top:1.6rem;color:rgba(39,25,19,.8)}
.lead--light{color:rgba(243,235,223,.82)}
.eyebrow{display:inline-flex;align-items:center;gap:.65rem;margin-bottom:1.4rem;font-size:.78rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--terre)}
.eyebrow--light{color:var(--ocre)}

/* découpe en mots / lettres (masque qui monte) */
.w{display:inline-block;overflow:hidden;vertical-align:top;padding:.06em .1em .18em;margin:-.06em -.1em -.18em}
.wi,.ch{display:inline-block;will-change:transform}

.ic{width:1.2em;height:1.2em;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ic--flip{transform:scaleX(-1)}
.ic--ring{stroke-width:1.5}

/* soulignement animé */
.u-link{position:relative;display:inline-block;text-decoration:none;padding-bottom:2px}
.u-link::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;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}
.u-link--btn{background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;padding:0 0 2px}
.u-link--btn:disabled{opacity:.4;cursor:not-allowed}

/* ── Boutons magnétiques à remplissage ─────────────────────── */
.btn{
  --bg:var(--cacao);--fg:var(--lin);--fill:var(--terre);--fg-h:var(--lin);--bd:transparent;
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.7rem;
  padding:1.05rem 1.7rem;border-radius:999px;border:1.5px solid var(--bd);
  background:var(--bg);color:var(--fg);font:500 1rem/1 var(--f-body);letter-spacing:.01em;
  text-decoration:none;white-space:nowrap;cursor:pointer;overflow:hidden;isolation:isolate;
  transition:color .5s var(--ease),border-color .5s var(--ease);will-change:transform;
}
.btn::before{
  content:'';position:absolute;inset:-1px;z-index:-1;background:var(--fill);
  clip-path:circle(0% at var(--bx,50%) var(--by,100%));transition:clip-path .7s var(--ease);
}
.btn:hover,.btn:focus-visible{color:var(--fg-h)}
.btn:hover::before,.btn:focus-visible::before{clip-path:circle(160% at var(--bx,50%) var(--by,100%))}
.btn .ic{width:1.15em;height:1.15em;transition:transform .5s var(--ease)}
.btn:hover .ic{transform:translateX(3px)}
.btn--sm{padding:.78rem 1.25rem;font-size:.92rem}
.btn--terre{--bg:var(--terre);--fg:var(--lin);--fill:var(--cacao);--fg-h:var(--lin)}
.btn--ocre{--bg:var(--ocre);--fg:var(--cacao);--fill:var(--lin);--fg-h:var(--cacao)}
.btn--ghost{--bg:transparent;--fg:var(--lin);--bd:rgba(243,235,223,.55);--fill:var(--lin);--fg-h:var(--cacao)}
.btn--line,.btn--line-dark{--bg:transparent;--fg:var(--cacao);--bd:rgba(39,25,19,.45);--fill:var(--cacao);--fg-h:var(--lin)}
.btn.is-disabled{opacity:.42;pointer-events:none}

.round{display:grid;place-items:center;width:3.4rem;height:3.4rem;border-radius:50%;border:1.5px solid currentColor;background:transparent;cursor:pointer;transition:background .4s,color .4s,transform .5s var(--ease)}
.round:hover{background:var(--terre);border-color:var(--terre);color:var(--lin)}
.round--sm{width:2.6rem;height:2.6rem}

/* ── Préchargeur ───────────────────────────────────────────── */
.loader{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.6rem;background:var(--cacao);color:var(--ocre)}
.loader__inner{position:relative;width:clamp(150px,26vw,230px);aspect-ratio:1;display:grid;place-items:center}
.loader__enso{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.loader__kanji{font-family:var(--f-kanji);font-weight:600;font-size:clamp(2.4rem,5vw,3.6rem);line-height:1;color:var(--lin);writing-mode:vertical-rl;letter-spacing:.08em;opacity:0}
.loader__word{position:relative;height:1.6em;width:9ch;text-align:center;font-family:var(--f-title);font-style:italic;font-weight:300;font-size:clamp(1.4rem,2.4vw,1.9rem);color:var(--lin)}
.loader__word span{position:absolute;inset:0;opacity:0}
.loader__count{font-size:.8rem;letter-spacing:.3em;color:rgba(243,235,223,.6);font-variant-numeric:tabular-nums}
body.is-loading .hero{z-index:210}

/* ── Progression + curseur ─────────────────────────────────── */
.progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:120;pointer-events:none}
.progress__bar{display:block;height:100%;background:linear-gradient(90deg,var(--terre),var(--ocre));transform:scaleX(0);transform-origin:0 50%}
.cursor{position:fixed;left:0;top:0;z-index:400;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;border:1.5px solid var(--ocre);box-shadow:0 0 0 1px rgba(39,25,19,.28);pointer-events:none;opacity:0;display:grid;place-items:center;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background .35s,opacity .3s}
.cursor.is-on{opacity:1}
.cursor.is-hover{width:44px;height:44px;margin:-22px 0 0 -22px;background:rgba(217,162,90,.22)}
.cursor.is-label{width:84px;height:84px;margin:-42px 0 0 -42px;background:var(--ocre);border-color:var(--ocre)}
.cursor__label{font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--cacao);opacity:0;transition:opacity .25s}
.cursor.is-label .cursor__label{opacity:1}
@media (hover:none),(pointer:coarse){.cursor{display:none}}

/* ── En-tête ───────────────────────────────────────────────── */
.header{position:fixed;inset:0 0 auto 0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.15rem var(--gutter);color:var(--lin);transition:background .5s var(--ease),color .5s var(--ease),padding .5s var(--ease),box-shadow .5s;will-change:transform;--focus:var(--ocre)}
.header.is-solid{background:rgba(243,235,223,.88);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);color:var(--cacao);padding-block:.7rem;box-shadow:0 1px 0 rgba(39,25,19,.08);--focus:var(--terre)}
.header.is-open{background:transparent;color:var(--lin);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;--focus:var(--ocre)}
.brand{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none}
.brand__enso{width:2.1rem;height:2.1rem;color:var(--ocre);overflow:visible;flex:none}
.header.is-solid .brand__enso{color:var(--terre)}
.header.is-open .brand__enso{color:var(--ocre)}
.brand__name{font-family:var(--f-title);font-weight:400;font-size:1.2rem;letter-spacing:-.01em;white-space:nowrap}
.brand__name i{font-style:italic;font-weight:300;color:var(--ocre)}
.header.is-solid .brand__name i{color:var(--terre)}
.nav{display:flex;gap:clamp(1.4rem,2.6vw,2.8rem);font-size:.95rem;font-weight:500}
.header__cta{display:flex;align-items:center;gap:1rem}
.header__tel{display:none;align-items:center;gap:.5rem;text-decoration:none;font-weight:500;font-size:.95rem}
.burger{display:none;position:relative;width:2.9rem;height:2.9rem;border:0;border-radius:50%;background:transparent;cursor:pointer}
.burger span{position:absolute;left:.85rem;right:.85rem;height:1.5px;background:currentColor;transition:transform .5s var(--ease)}
.burger span:nth-child(1){top:1.1rem}
.burger span:nth-child(2){top:1.7rem}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(.3rem) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){transform:translateY(-.3rem) rotate(-45deg)}
@media (min-width:1180px){.header__tel{display:inline-flex}}
@media (max-width:899px){.nav{display:none}.burger{display:block}}

.menu{position:fixed;inset:0;z-index:90;display:flex;flex-direction:column;justify-content:space-between;gap:2rem;padding:6.5rem var(--gutter) calc(2rem + env(safe-area-inset-bottom));background:var(--cacao);color:var(--lin);visibility:hidden;clip-path:circle(0% at calc(100% - 2.6rem) 2.6rem);--focus:var(--ocre)}
.menu__nav{display:flex;flex-direction:column;gap:.3rem}
.menu__nav a{display:flex;align-items:baseline;gap:1rem;font-family:var(--f-title);font-weight:300;font-size:clamp(2.3rem,10vw,4rem);line-height:1.15;letter-spacing:-.03em;text-decoration:none;overflow:hidden}
.menu__nav a span{font-family:var(--f-body);font-size:.8rem;letter-spacing:.2em;color:var(--ocre)}
.menu__tel{font-family:var(--f-title);font-size:2rem;color:var(--ocre);text-decoration:none}
.menu__foot p{margin-top:.6rem;color:rgba(243,235,223,.7);font-size:.95rem}

/* ── Séparateurs de section ────────────────────────────────── */
.edge{position:absolute;left:0;width:100%;height:clamp(36px,7vw,110px);display:block;pointer-events:none;z-index:2}
.edge--wave{bottom:-1px;fill:var(--terre)}
.edge--arc{top:-1px;fill:var(--lin)}
.edge--brush{top:-1px;fill:var(--sauge-prev,#271913);height:clamp(40px,7.5vw,120px)}
.edge--diag{top:-1px;fill:var(--sauge);height:clamp(40px,6vw,90px)}
.edge--scallop{top:-1px;fill:var(--lin);height:clamp(26px,4.2vw,60px)}
.edge--wave-up{top:-1px;fill:var(--lin);height:clamp(40px,7vw,100px)}

/* ── HERO ──────────────────────────────────────────────────── */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;color:var(--lin);background:var(--cacao);overflow:hidden;isolation:isolate;--focus:var(--ocre)}
.hero__media{position:absolute;inset:-14% 0;z-index:-4;will-change:transform,clip-path}
body.is-loading .hero{background:transparent}
body.is-loading .hero>*{opacity:0}
body.is-loading .hero>.hero__media{opacity:1;clip-path:circle(0% at 50% 50%)}
.hero__video{width:100%;height:100%;object-fit:cover;object-position:50% 55%;will-change:transform}
.hero__shade{position:absolute;inset:0;background:
  radial-gradient(110% 80% at 72% 38%,rgba(39,25,19,0) 0%,rgba(39,25,19,.5) 72%),
  linear-gradient(180deg,rgba(39,25,19,.62) 0%,rgba(39,25,19,.12) 34%,rgba(39,25,19,.9) 100%)}
.hero__kanji{position:absolute;z-index:-3;right:clamp(.5rem,5vw,6rem);top:9vh;font-family:var(--f-kanji);font-weight:600;font-size:clamp(10rem,34vw,36rem);line-height:.9;color:rgba(243,235,223,.075);writing-mode:vertical-rl;letter-spacing:-.02em;user-select:none;will-change:transform}
.hero__enso{position:absolute;z-index:-2;top:0;bottom:0;right:clamp(-12rem,-4vw,2rem);margin:auto 0;width:min(96vh,86vw);height:auto;aspect-ratio:1;color:var(--ocre);opacity:.6;overflow:visible;will-change:transform}
.hero__dust{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.dust{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(255,214,150,.9) 0%,rgba(217,162,90,.35) 38%,rgba(217,162,90,0) 70%);will-change:transform}
.hero__content{position:relative;z-index:3;width:100%;max-width:var(--maxw);margin-inline:auto;padding:9rem var(--gutter) 2.4rem}
.hero__title{font-family:var(--f-title);font-weight:300;font-size:clamp(3.1rem,11vw,11.5rem);line-height:.92;letter-spacing:-.045em;color:var(--lin);margin:0 0 1.8rem;text-wrap:balance}
.hero__title em{font-style:italic;color:var(--ocre);font-weight:300}
.hero__sub{max-width:36rem;font-size:clamp(1.02rem,1rem + .45vw,1.3rem);line-height:1.55;color:rgba(243,235,223,.88)}
.hero__actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}
.hero__bar{position:relative;z-index:3;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:0 var(--gutter);margin-bottom:clamp(3.4rem,8.4vw,8rem)}
.chip{display:inline-flex;align-items:center;gap:.6rem;padding:.6rem 1.05rem;border-radius:999px;background:rgba(243,235,223,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(243,235,223,.26);color:var(--lin);font-size:.9rem;line-height:1.2;text-decoration:none}
.chip b{font-weight:600}
.stars{display:inline-flex;gap:.1rem;color:var(--ocre)}
.stars .ic{width:1rem;height:1rem}
.pulse{position:relative;flex:none;width:.6rem;height:.6rem;border-radius:50%;background:#86d99a}
.pulse::after{content:'';position:absolute;inset:-5px;border-radius:50%;border:1.5px solid #86d99a;animation:ping 2.4s var(--ease) infinite}
.is-closed .pulse{background:var(--ocre)}
.is-closed .pulse::after{border-color:var(--ocre)}
.scrollcue{display:flex;flex-direction:column;align-items:center;gap:.7rem;text-decoration:none;color:var(--lin);font-size:.7rem;letter-spacing:.26em;text-transform:uppercase}
.scrollcue__dot{position:relative;display:block;width:1px;height:3rem;background:rgba(243,235,223,.3);overflow:hidden}
.scrollcue__dot::after{content:'';position:absolute;left:-1px;top:0;width:3px;height:14px;border-radius:2px;background:var(--ocre);animation:cue 2.2s var(--ease) infinite}
@keyframes cue{0%{transform:translateY(-16px)}100%{transform:translateY(3.2rem)}}
@keyframes ping{0%{transform:scale(.7);opacity:.9}80%,100%{transform:scale(1.9);opacity:0}}

/* ── MARQUEE ───────────────────────────────────────────────── */
.marquee{position:relative;background:var(--terre);color:var(--lin);padding:clamp(.6rem,2vw,1.6rem) 0 clamp(2.2rem,4.4vw,3.6rem);overflow:hidden;--focus:var(--ocre)}
.marquee__row{overflow:hidden;white-space:nowrap}
.marquee__track{display:inline-flex;will-change:transform}
.marquee__set{display:inline-flex;flex:none}
.m-item{display:inline-flex;align-items:center;gap:.45em;padding-right:.45em;font-family:var(--f-title);font-weight:300;font-size:clamp(3.4rem,10vw,9.4rem);line-height:1.08;letter-spacing:-.035em}
.m-item.is-out{color:transparent;-webkit-text-stroke:1.5px rgba(243,235,223,.92)}
.m-sep{flex:none;width:.34em;height:.34em;border-radius:50%;border:2px solid currentColor;position:relative}
.m-sep::after{content:'';position:absolute;inset:28%;border-radius:50%;background:currentColor}
.marquee__row--b .m-item{font-size:clamp(1.1rem,2.2vw,1.9rem);font-style:italic;letter-spacing:.01em;opacity:.88;padding-block:.5rem}
.marquee__row--b .m-sep{width:.5em;height:.5em;border-width:1.5px}

/* ── MANIFESTE ─────────────────────────────────────────────── */
.manifesto{position:relative;background:var(--lin);padding:clamp(6.5rem,13vw,12rem) 0 clamp(6rem,12vw,11rem);overflow:hidden}
.manifesto__enso{position:absolute;left:-14vw;top:50%;width:min(82vw,1000px);margin-top:calc(min(82vw,1000px) / -2);color:var(--terre);opacity:.11;overflow:visible}
.manifesto .wrap{position:relative}
.manifesto__text{font-family:var(--f-title);font-weight:300;font-size:clamp(1.95rem,4.9vw,5rem);line-height:1.12;letter-spacing:-.025em;max-width:19em}
.manifesto__text em{font-style:italic;color:var(--terre)}
.manifesto__text .w{overflow:visible;padding:0;margin:0}
.manifesto__note{margin-top:2.4rem;font-family:var(--f-title);font-style:italic;font-size:1.15rem;color:rgba(39,25,19,.65)}

/* ── APPROCHE (pinnée) ─────────────────────────────────────── */
.story{position:relative;background:var(--lin)}
.story__pin{position:relative;height:100svh;min-height:620px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);align-items:center;gap:clamp(1.2rem,4vw,5rem);padding:5.5rem 0 2rem}
.story .story__text{margin:0;justify-self:end;width:100%;max-width:700px;padding:0 0 0 var(--gutter)}
.story__steps{display:grid;margin-top:clamp(1.4rem,3.4vh,2.6rem)}
.step{grid-area:1/1;max-width:33rem}
.step__num{display:block;font-family:var(--f-title);font-style:italic;font-weight:300;font-size:clamp(3.4rem,8.4vw,7.6rem);line-height:.9;letter-spacing:-.04em;color:var(--terre)}
.step h3{margin:.25rem 0 .6rem;font-family:var(--f-title);font-weight:400;font-size:clamp(1.6rem,2.7vw,2.45rem);line-height:1.08;letter-spacing:-.02em}
.step p{font-size:clamp(1rem,.96rem + .25vw,1.12rem);color:rgba(39,25,19,.82)}
.story__rail{position:relative;margin-top:clamp(1.4rem,3vh,2.2rem);height:1.4rem;max-width:33rem}
.story__rail-line{position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(39,25,19,.2)}
.story__rail-fill{display:block;height:100%;background:var(--terre);transform:scaleX(0);transform-origin:0 50%}
.story__rail-dots{position:absolute;inset:0;display:flex;justify-content:space-between;align-items:center}
.story__rail-dots i{width:.8rem;height:.8rem;border-radius:50%;border:1.5px solid var(--terre);background:var(--lin);transition:background .45s var(--ease),box-shadow .45s var(--ease)}
.story__rail-dots i.is-on{background:var(--terre);box-shadow:0 0 0 .4rem rgba(164,74,48,.18)}
.story__media{position:relative;margin-right:var(--gutter);height:min(80svh,820px);max-height:100%;border-radius:999px 999px 28px 28px;overflow:hidden;background:var(--sable);box-shadow:0 40px 90px -50px rgba(39,25,19,.55)}
.story__img{position:absolute;inset:0}
.story__img img{width:100%;height:100%;object-fit:cover;will-change:transform}
.story__badge{position:absolute;z-index:5;left:50%;bottom:1.4rem;transform:translateX(-50%);display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1rem;border-radius:999px;background:rgba(39,25,19,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--lin);font-size:.85rem;letter-spacing:.08em}
.story__badge b{font-weight:600;color:var(--ocre)}
@media (max-width:899px){
  .story__pin{grid-template-columns:1fr;grid-template-rows:auto 1fr;align-content:start;gap:.9rem;padding:4.4rem 0 1rem}
  .story__media{order:-1;margin:0 var(--gutter);height:34svh;border-radius:999px 999px 22px 22px / 140px 140px 22px 22px}
  .story .story__text{max-width:none;justify-self:stretch;padding:0 var(--gutter)}
  .story .eyebrow{margin-bottom:.5rem}
  .story .h2{font-size:clamp(2.1rem,9vw,3rem)}
  .step__num{font-size:3rem}
  .step h3{margin-top:0}
  .step p{font-size:.98rem;line-height:1.5}
  .story__rail{margin-top:1rem}
}

/* ── SOINS (défilement horizontal piloté par le scroll) ───── */
.services{position:relative;background:var(--cacao);color:var(--lin);--focus:var(--ocre)}
.services__pin{position:relative;height:100svh;min-height:640px;overflow:hidden;display:flex;align-items:center;padding-top:3rem}
.services__track{display:flex;align-items:stretch;gap:clamp(1.2rem,2.4vw,2.6rem);padding:0 var(--gutter);width:max-content;height:min(72svh,690px);will-change:transform}
.services__cards{display:contents}
.services__intro{flex:0 0 min(84vw,560px);align-self:center;display:flex;flex-direction:column;align-items:flex-start;padding-right:clamp(0rem,4vw,4rem)}
.services__hint{display:inline-flex;align-items:center;gap:.7rem;margin-top:2rem;font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ocre)}
.services__hint .ic{animation:nudge 1.8s var(--ease) infinite}
@keyframes nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(10px)}}
.card{position:relative;flex:0 0 min(80vw,430px);display:flex;flex-direction:column;border-radius:30px;overflow:hidden;background:var(--cacao-2);box-shadow:0 30px 70px -40px rgba(0,0,0,.8);transform-style:preserve-3d;will-change:transform}
.card:nth-of-type(odd){margin-bottom:2.2rem}
.card:nth-of-type(even){margin-top:2.2rem}
.card__media{flex:0 0 50%;overflow:hidden;position:relative}
.card__media img{width:100%;height:100%;object-fit:cover;will-change:transform;transform:scale(1.14)}
.card__media::after{content:'';position:absolute;inset:auto 0 0 0;height:40%;background:linear-gradient(180deg,transparent,var(--cacao-2))}
.card__body{position:relative;flex:1;display:flex;flex-direction:column;padding:1.2rem 1.6rem 1.5rem}
.card__kanji{position:absolute;right:1.3rem;top:-3.1rem;font-family:var(--f-kanji);font-weight:600;font-size:4.6rem;line-height:1;color:var(--ocre);opacity:.95;pointer-events:none}
.card__tag{font-size:.74rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--ocre)}
.card h3{margin:.35rem 0 .7rem;font-family:var(--f-title);font-weight:400;font-size:clamp(1.9rem,2.7vw,2.55rem);line-height:1;letter-spacing:-.025em}
.card p:not(.card__tag){color:rgba(243,235,223,.78);font-size:.98rem;line-height:1.55}
.card__foot{margin-top:auto;padding-top:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.card__price{font-size:.84rem;letter-spacing:.04em;color:rgba(243,235,223,.7)}
.card__sheen{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .45s;background:radial-gradient(520px circle at var(--mx,50%) var(--my,0%),rgba(255,232,190,.2),transparent 62%)}
.card:hover .card__sheen{opacity:1}
.services__end{position:relative;flex:0 0 min(80vw,440px);align-self:center;display:flex;flex-direction:column;align-items:flex-start;gap:1.1rem;padding:2rem 2rem 2rem 1rem}
.services__end p:not(.h3){color:rgba(243,235,223,.78)}
.services__end-enso{position:absolute;left:-30%;top:50%;width:150%;margin-top:-75%;color:var(--ocre);opacity:.14;overflow:visible;pointer-events:none}
.services__end>*:not(svg){position:relative}
.services__progress{position:absolute;left:var(--gutter);right:var(--gutter);bottom:2.1rem;height:2px;background:rgba(243,235,223,.16)}
.services__progress span{display:block;height:100%;background:var(--ocre);transform:scaleX(0);transform-origin:0 50%}
@media (max-width:899px){
  .services__pin{height:auto;min-height:0;overflow:visible;display:block;padding:7rem 0 4rem}
  .services__track{display:block;width:auto;height:auto;padding:0}
  .services__intro{flex:none;padding:0 var(--gutter);margin-bottom:2rem}
  .services__cards{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.4rem var(--gutter) 1.4rem;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .services__cards::-webkit-scrollbar{display:none}
  .card{flex:0 0 82vw;min-height:520px;scroll-snap-align:center}
  .card:nth-of-type(odd),.card:nth-of-type(even){margin:0}
  .card__media{flex:0 0 220px}
  .services__end{padding:2.5rem var(--gutter) 0;flex:none}
  .services__progress{display:none}
  .services__hint{margin-top:1.2rem}
}

/* ── CHIFFRES ──────────────────────────────────────────────── */
.stats{position:relative;background:var(--sauge);color:var(--lin);padding:clamp(7.5rem,14vw,12.5rem) 0 clamp(5.5rem,10vw,9rem);overflow:hidden;--focus:var(--ocre)}
.stats::before{content:'';position:absolute;inset:0;opacity:.13;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'><g fill='none' stroke='%23F3EBDF' stroke-width='1'><circle cx='36' cy='36' r='7'/><circle cx='36' cy='36' r='15'/><circle cx='36' cy='36' r='23'/><circle cx='36' cy='36' r='31'/><circle cx='0' cy='0' r='7'/><circle cx='0' cy='0' r='15'/><circle cx='0' cy='0' r='23'/><circle cx='72' cy='0' r='7'/><circle cx='72' cy='0' r='15'/><circle cx='72' cy='0' r='23'/><circle cx='0' cy='72' r='7'/><circle cx='0' cy='72' r='15'/><circle cx='0' cy='72' r='23'/><circle cx='72' cy='72' r='7'/><circle cx='72' cy='72' r='15'/><circle cx='72' cy='72' r='23'/></g></svg>")}
.stats__enso{position:absolute;right:-12vw;top:-8vw;width:min(64vw,780px);color:var(--lin);opacity:.13;overflow:visible}
.stats .wrap{position:relative}
.stats__grid{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1.4rem,3vw,3rem);margin-top:clamp(3rem,6vw,5.5rem)}
.stats__grid li{border-top:1px solid rgba(243,235,223,.4);padding-top:1.4rem}
.stat__n{display:flex;align-items:baseline;gap:.08em;font-family:var(--f-title);font-weight:300;font-size:clamp(4rem,8.6vw,9rem);line-height:.95;letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.stat__n small{font-size:.3em;font-style:italic;letter-spacing:0;opacity:.85}
.stat__l{display:block;margin-top:.9rem;max-width:17em;font-size:1rem;line-height:1.45;color:rgba(243,235,223,.92)}
@media (max-width:899px){.stats__grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:2.4rem}}

/* ── OÙ ÇA SERRE ? ─────────────────────────────────────────── */
.zones{position:relative;background:var(--sable);padding:clamp(8.5rem,14vw,12.5rem) 0 clamp(5rem,9vw,8rem)}
.zones__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.75fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.zones__panel{margin-top:2.2rem;max-width:34rem;padding:1.7rem 1.9rem 1.9rem;border-radius:26px;background:var(--lin);box-shadow:0 26px 60px -36px rgba(39,25,19,.45)}
.zones__k{font-family:var(--f-title);font-size:clamp(1.7rem,2.6vw,2.3rem);font-weight:400;line-height:1.1;letter-spacing:-.02em;color:var(--terre)}
.zones__t{margin:.7rem 0 1rem;color:rgba(39,25,19,.86)}
.zones__s{margin-bottom:1.3rem;font-size:.95rem;color:rgba(39,25,19,.72)}
.zones__s strong{color:var(--cacao);font-weight:600}
.zones__legal{margin-top:1.4rem;max-width:34rem;font-size:.85rem;color:rgba(39,25,19,.62)}
.zones__figure{position:relative;width:min(100%,360px);margin-inline:auto;aspect-ratio:300/640}
.body{width:100%;height:100%;overflow:visible}
.body__ghost circle,.body__ghost rect,.body__ghost path{fill:rgba(164,74,48,.12);stroke:none}
.body__ghost .limb,.body__ghost .leg{fill:none;stroke:rgba(164,74,48,.12);stroke-width:30;stroke-linecap:round;stroke-linejoin:round}
.body__ghost .leg{stroke-width:40}
.body__meridian{fill:none;stroke:var(--terre);stroke-width:1.3;stroke-dasharray:3 8;stroke-linecap:round;opacity:.75;animation:flow 9s linear infinite}
@keyframes flow{to{stroke-dashoffset:-110}}
.pt{position:absolute;left:var(--x);top:var(--y);width:3rem;height:3rem;margin:-1.5rem 0 0 -1.5rem;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer}
.pt i{position:absolute;inset:1rem;border-radius:50%;background:var(--terre);transition:transform .5s var(--ease),background .4s}
.pt::before,.pt::after{content:'';position:absolute;inset:.35rem;border-radius:50%;border:1.5px solid var(--terre);animation:ping 2.6s var(--ease) infinite}
.pt::after{animation-delay:1.3s}
.pt:hover i,.pt:focus-visible i{transform:scale(1.35)}
.pt.is-on i{background:var(--cacao);transform:scale(1.5)}
.pt.is-on::before,.pt.is-on::after{border-color:var(--cacao)}
@media (max-width:899px){
  .zones__grid{grid-template-columns:1fr}
  .zones__figure{width:min(70%,300px)}
}

/* ── GALERIE ───────────────────────────────────────────────── */
.gallery{position:relative;background:var(--cacao);color:var(--lin);padding:clamp(6.5rem,12vw,11rem) 0;overflow:hidden;--focus:var(--ocre)}
.gallery__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.8rem,2vw,2rem);margin-top:clamp(3rem,6vw,5.5rem);align-items:start;perspective:1600px}
.gallery__col{display:flex;flex-direction:column;gap:clamp(.8rem,2vw,2rem);will-change:transform}
.gallery__col:nth-child(2){margin-top:clamp(2.5rem,8vw,8rem)}
.gallery__col:nth-child(3){margin-top:clamp(1rem,3vw,3rem)}
.g{position:relative;border-radius:22px;overflow:hidden;background:var(--cacao-2);transform-style:preserve-3d;will-change:transform}
.g__in{position:relative;overflow:hidden;aspect-ratio:var(--ar,3/2)}
.g__in img{position:absolute;left:0;top:-9%;width:100%;height:118%;object-fit:cover;will-change:transform;transition:transform 1.2s var(--ease)}
.g:hover .g__in img{transform:scale(1.07)}
.g figcaption{position:absolute;left:0;right:0;bottom:0;padding:2.4rem 1.2rem 1rem;font-family:var(--f-title);font-style:italic;font-size:1.15rem;background:linear-gradient(180deg,transparent,rgba(39,25,19,.82));transform:translateY(101%);transition:transform .7s var(--ease)}
.g:hover figcaption,.g:focus-within figcaption{transform:translateY(0)}
@media (hover:none){.g figcaption{transform:none}}
.g--v{--ar:2/3}.g--h{--ar:3/2}
@media (max-width:760px){
  .gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery__col:nth-child(3){grid-column:1/-1;flex-direction:row;margin-top:0}
  .gallery__col:nth-child(3) .g{flex:1}
  .gallery__col:nth-child(2){margin-top:2rem}
  .g{border-radius:16px}
}

/* ── AVIS ──────────────────────────────────────────────────── */
.reviews{position:relative;background:var(--lin);padding:clamp(6.5rem,12vw,11rem) 0}
.reviews__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:2rem}
.reviews__score{display:inline-flex;align-items:center;gap:.9rem;text-decoration:none;padding:.9rem 1.4rem;border-radius:999px;border:1.5px solid rgba(39,25,19,.3);transition:background .4s,color .4s,border-color .4s}
.reviews__score:hover{background:var(--cacao);color:var(--lin);border-color:var(--cacao)}
.reviews__score b{font-family:var(--f-title);font-weight:300;font-size:2.6rem;line-height:1;letter-spacing:-.03em}
.reviews__score .stars{color:var(--terre)}
.reviews__score:hover .stars{color:var(--ocre)}
.reviews__score small{font-size:.85rem;opacity:.75}
.reviews__stage{position:relative;display:grid;margin-top:clamp(2.4rem,5vw,4rem);padding:clamp(2rem,5vw,4.6rem);border-radius:36px;background:var(--sable);overflow:hidden}
.reviews__stage::before{content:'“';position:absolute;left:clamp(1rem,3vw,3rem);top:-.18em;font-family:var(--f-title);font-size:clamp(11rem,22vw,22rem);line-height:1;color:var(--terre);opacity:.16;pointer-events:none}
.rev{grid-area:1/1;position:relative;display:flex;flex-direction:column;justify-content:center;gap:1.6rem}
.rev blockquote p{font-family:var(--f-title);font-weight:300;font-size:clamp(1.25rem,2.35vw,2.1rem);line-height:1.35;letter-spacing:-.012em;max-width:42em}
.rev figcaption{display:flex;flex-direction:column;gap:.1rem;padding-left:1.1rem;border-left:2px solid var(--terre)}
.rev figcaption b{font-weight:600}
.rev figcaption span{font-size:.88rem;opacity:.72}
.rev__reply{max-width:38em;padding:1rem 1.2rem;border-radius:16px;background:rgba(243,235,223,.7);font-size:.95rem;color:rgba(39,25,19,.82)}
.rev__reply b{display:block;margin-bottom:.2rem;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--terre)}
.reviews__ctrl{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem;margin-top:1.8rem}
.reviews__dots{display:flex;gap:.55rem;align-items:center}
.reviews__dots i{display:block;width:.7rem;height:.7rem;border-radius:50%;border:1.5px solid var(--terre);transition:width .6s var(--ease),background .4s;cursor:pointer}
.reviews__dots i.is-on{width:2.4rem;border-radius:999px;background:var(--terre)}
.reviews__all{margin-left:auto;font-weight:500}
@media (max-width:640px){.reviews__all{margin-left:0;width:100%}.reviews__stage{border-radius:26px}}

/* ── RÉSERVATION ───────────────────────────────────────────── */
.book{position:relative;background:radial-gradient(90% 60% at 12% 0%,#4b2d21 0%,var(--cacao) 62%);color:var(--lin);padding:clamp(7rem,13vw,12rem) 0 clamp(5rem,9vw,8rem);overflow:hidden;--focus:var(--ocre)}
.book__enso{position:absolute;left:-18vw;bottom:-14vw;width:min(70vw,880px);color:var(--ocre);opacity:.12;overflow:visible}
.book__grid{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,5vw,5.5rem);align-items:start}
.book__intro{position:sticky;top:6.5rem}
.book__tel{display:block;margin:2.2rem 0 2rem;text-decoration:none}
.book__tel-k{display:block;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ocre)}
.book__tel-n{display:inline-block;position:relative;font-family:var(--f-title);font-weight:300;font-size:clamp(2.4rem,5vw,4.6rem);line-height:1.05;letter-spacing:-.035em;transition:color .5s var(--ease)}
.book__tel-n::after{content:'';position:absolute;left:0;right:0;bottom:-.08em;height:2px;background:var(--ocre);transform:scaleX(.18);transform-origin:left;transition:transform .7s var(--ease)}
.book__tel:hover .book__tel-n{color:var(--ocre)}
.book__tel:hover .book__tel-n::after{transform:scaleX(1)}

.hours{display:grid;max-width:26rem}
.hours div{display:flex;justify-content:space-between;gap:1rem;padding:.62rem 0;border-bottom:1px solid rgba(39,25,19,.16);font-size:.98rem}
.hours dt{display:flex;align-items:center;gap:.6rem}
.hours dd{font-variant-numeric:tabular-nums}
.hours .is-today{color:var(--terre);font-weight:600}
.hours .is-today dt::before{content:'';width:.5rem;height:.5rem;border-radius:50%;background:currentColor}
.hours--dark div{border-color:rgba(243,235,223,.2)}
.hours--dark .is-today{color:var(--ocre)}

.form{display:grid;gap:1.7rem;padding:clamp(1.4rem,3.2vw,2.8rem);border-radius:34px;background:var(--lin);color:var(--cacao);box-shadow:0 50px 120px -50px rgba(0,0,0,.75);--focus:var(--terre)}
.fs{min-width:0;margin:0;padding:0;border:0}
.fs legend{display:flex;align-items:center;gap:.75rem;margin-bottom:.95rem;padding:0;font-family:var(--f-title);font-size:1.3rem;font-weight:400;letter-spacing:-.01em}
.fs__n{display:grid;place-items:center;width:1.9rem;height:1.9rem;border-radius:50%;background:var(--terre);color:var(--lin);font:600 .82rem/1 var(--f-body)}
.chips{display:flex;flex-wrap:wrap;gap:.55rem}
.chip-r{position:relative}
.chip-r input{position:absolute;opacity:0;pointer-events:none}
.chip-r span{display:inline-block;padding:.62rem 1.1rem;border-radius:999px;border:1.5px solid rgba(39,25,19,.26);font-size:.95rem;line-height:1.2;cursor:pointer;transition:background .4s var(--ease),color .4s var(--ease),border-color .4s,transform .5s var(--ease)}
.chip-r:hover span{border-color:var(--cacao)}
.chip-r input:checked+span{background:var(--cacao);border-color:var(--cacao);color:var(--lin)}
.chip-r input:focus-visible+span{outline:2px solid var(--terre);outline-offset:2px}
.slots__empty{font-size:.95rem;color:rgba(39,25,19,.6)}
.chips--slots .chip-r span{font-variant-numeric:tabular-nums;min-width:4.6rem;text-align:center}

.cal{max-width:26rem}
.cal__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.8rem}
.cal__month{font-family:var(--f-title);font-size:1.2rem;text-transform:capitalize}
.cal__dow,.cal__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.2rem}
.cal__dow{margin-bottom:.3rem;text-align:center;font-size:.72rem;letter-spacing:.12em;color:rgba(39,25,19,.55)}
.cal__cell{aspect-ratio:1;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;font-size:.95rem;font-variant-numeric:tabular-nums;cursor:pointer;transition:background .35s,color .35s,transform .4s var(--ease)}
.cal__cell:not(:disabled):hover{background:var(--sable);transform:scale(1.08)}
.cal__cell:disabled{opacity:.26;cursor:not-allowed}
.cal__cell.is-today{box-shadow:inset 0 0 0 1.5px var(--terre)}
.cal__cell.is-sel{background:var(--terre);color:var(--lin);box-shadow:none;transform:scale(1.05)}
.cal__blank{aspect-ratio:1}
.cal__legend{display:flex;align-items:center;gap:.5rem;margin-top:.7rem;font-size:.8rem;color:rgba(39,25,19,.6)}
.cal__legend i{width:.8rem;height:.8rem;border-radius:50%;background:rgba(39,25,19,.2)}

.fields{display:grid;grid-template-columns:1fr;gap:1rem}
.fld{display:grid;gap:.4rem;font-size:.85rem;font-weight:500;letter-spacing:.02em}
.fld em{font-style:normal;font-weight:400;opacity:.65}
.fld input,.fld textarea{width:100%;padding:.9rem 1.05rem;border:1.5px solid rgba(39,25,19,.26);border-radius:16px;background:#fbf7f1;font:400 1rem/1.4 var(--f-body);color:var(--cacao);resize:vertical;transition:border-color .3s,box-shadow .3s}
.fld input:focus,.fld textarea:focus{outline:0;border-color:var(--terre);box-shadow:0 0 0 4px rgba(164,74,48,.16)}
.recap{padding:1rem 1.2rem;border-radius:18px;background:var(--sable)}
.recap__k{font-size:.74rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--terre)}
.recap__t{margin-top:.3rem;font-family:var(--f-title);font-size:1.12rem;line-height:1.4}
.form__actions{display:flex;flex-wrap:wrap;gap:.8rem}
.form__more{display:flex;flex-wrap:wrap;gap:.8rem 1.6rem;font-size:.92rem;font-weight:500}
.form__note{font-size:.84rem;color:rgba(39,25,19,.65)}
.form__note.is-ok{color:var(--sauge);font-weight:500}
@media (max-width:980px){
  .book__grid{grid-template-columns:1fr}
  .book__intro{position:static}
}

/* ── VENIR ─────────────────────────────────────────────────── */
.visit{position:relative;background:var(--lin);padding:clamp(6.5rem,12vw,11rem) 0 clamp(9rem,14vw,13rem)}
.visit__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,5vw,5.5rem);align-items:center}
.visit__addr{display:flex;gap:.9rem;margin-top:1.8rem;font-size:1.12rem}
.visit__addr .ic{margin-top:.25rem;color:var(--terre)}
.visit__addr small{display:block;margin-top:.3rem;font-size:.82rem;opacity:.65}
.visit__tel{display:inline-flex;align-items:center;gap:.6rem;margin:1.2rem 0 1.8rem;font-family:var(--f-title);font-size:1.6rem}
.visit__tel .ic{color:var(--terre)}
.visit__actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.visit__map{position:relative;aspect-ratio:4/4.4;border-radius:36px;overflow:hidden;background:var(--sable);box-shadow:0 40px 90px -50px rgba(39,25,19,.6);will-change:clip-path}
.visit__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:sepia(.28) saturate(.82) contrast(.96)}
.visit__map-link{position:absolute;inset:0;z-index:2;display:block;text-decoration:none}
.visit__map-link span{position:absolute;left:1rem;bottom:1rem;display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.15rem;border-radius:999px;background:var(--cacao);color:var(--lin);font-size:.9rem;font-weight:500;box-shadow:0 14px 30px -12px rgba(0,0,0,.6);transition:background .4s}
.visit__map-link:hover span,.visit__map-link:focus-visible span{background:var(--terre)}
@media (max-width:899px){.visit__grid{grid-template-columns:1fr}.visit__map{aspect-ratio:1/1}}

/* ── PIED DE PAGE ──────────────────────────────────────────── */
.footer{position:relative;background:var(--cacao);color:var(--lin);padding:clamp(7.5rem,12vw,11rem) 0 2rem;overflow:hidden;--focus:var(--ocre)}
.footer__enso{position:absolute;right:-14vw;top:-6vw;width:min(70vw,860px);color:var(--ocre);opacity:.1;overflow:visible}
.footer .wrap{position:relative}
.footer__top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:2rem}
.footer__line{font-family:var(--f-title);font-weight:300;font-size:clamp(2.2rem,5.4vw,5rem);line-height:1;letter-spacing:-.035em}
.footer__line em{font-style:italic;color:var(--ocre)}
.footer__cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;margin-top:clamp(3rem,6vw,5rem);padding-top:2.2rem;border-top:1px solid rgba(243,235,223,.2)}
.footer__cols h3{margin-bottom:.8rem;font-size:.74rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--ocre)}
.footer__cols p{color:rgba(243,235,223,.82);font-size:.98rem;line-height:1.7}
.footer__giant{margin:clamp(2.4rem,5vw,4.5rem) 0 1rem;font-family:var(--f-title);font-weight:300;font-size:clamp(2.7rem,10.6vw,14rem);line-height:.92;letter-spacing:-.05em;white-space:nowrap;color:var(--lin)}
.footer__giant .w{overflow:hidden}
.footer__bottom{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 2rem;padding-top:1.4rem;border-top:1px solid rgba(243,235,223,.18);font-size:.84rem;color:rgba(243,235,223,.66)}
.totop{margin-left:auto;display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;border:1.5px solid rgba(243,235,223,.5);background:transparent;color:var(--lin);cursor:pointer;transition:background .4s,color .4s,transform .6s var(--ease)}
.totop:hover{background:var(--ocre);border-color:var(--ocre);color:var(--cacao);transform:translateY(-4px)}
@media (max-width:899px){.footer__cols{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ── Boutons flottants mobile ──────────────────────────────── */
.fab{position:fixed;left:50%;bottom:calc(.9rem + env(safe-area-inset-bottom));z-index:80;display:none;gap:.5rem;padding:.4rem;border-radius:999px;background:rgba(39,25,19,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 16px 40px -12px rgba(0,0,0,.6);transform:translate(-50%,160%);transition:transform .7s var(--ease);--focus:var(--ocre)}
.fab.is-on{transform:translate(-50%,0)}
.fab a{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.3rem;border-radius:999px;font-weight:500;font-size:.95rem;text-decoration:none}
.fab__call{background:var(--ocre);color:var(--cacao)}
.fab__book{color:var(--lin)}
@media (max-width:899px){.fab{display:flex}}

/* ── Adaptations mobile générales ──────────────────────────── */
@media (max-width:899px){
  .hero__content{padding-top:7rem}
  .hero__bar{flex-wrap:wrap;justify-content:flex-start;gap:.7rem}
  .hero__bar .scrollcue{display:none}
  .hero__enso{right:-28vw;width:130vw;opacity:.42}
  .hero__kanji{font-size:clamp(9rem,46vw,16rem);top:12vh;right:.4rem}
  .btn{padding:.95rem 1.4rem}
  .brand__name{font-size:1.05rem}
}
@media (max-width:560px){
  .header__cta .btn{display:none}
}
@media (max-width:420px){
  .hero__actions .btn{width:100%}
  .brand__name{font-size:.98rem}
}

/* ── Mouvement réduit : version posée, sans pin ni défilement horizontal ── */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .scrollcue__dot::after{animation:none}
}
.no-motion .story__pin{display:block;height:auto;min-height:0;padding:6rem 0 4rem}
.no-motion .story .story__text{justify-self:start;margin-inline:auto;padding-inline:var(--gutter)}
.no-motion .story__steps{display:block}
.no-motion .step{margin-bottom:2.4rem}
.no-motion .story__media,.no-motion .story__rail{display:none}
.no-motion .services__pin{height:auto;min-height:0;overflow:visible;display:block;padding:7rem 0 4rem}
.no-motion .services__track{display:block;width:auto;height:auto;padding:0}
.no-motion .services__intro{flex:none;padding:0 var(--gutter);margin-bottom:2rem}
.no-motion .services__cards{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.4rem var(--gutter) 1.4rem}
.no-motion .card{flex:0 0 min(82vw,430px);min-height:520px;scroll-snap-align:center;margin:0!important}
.no-motion .card__media{flex:0 0 220px}
.no-motion .services__end{flex:none;padding:2.5rem var(--gutter) 0}
.no-motion .services__progress{display:none}
.no-motion .hero__media{inset:0}
.no-motion .reviews__stage .rev:not(:first-child){display:none}
