/* =====================================================================
   LE BEL ÉCRIN — direction artistique
   Un écrin : le patio la nuit (ambre des lanternes, vert du lierre),
   la faïence bleue, le citron et la majolique d'Amalfi, l'or des
   doubles filets de leur carte. Fil rouge : l'ARCHE à double filet doré,
   la GEMME et la branche d'OLIVIER.
   ===================================================================== */

:root{
  /* Palette (rôles) */
  --nuit:#0d1412;        /* fond principal : lierre de nuit */
  --nuit-2:#111b18;      /* fond alternatif */
  --ardoise:#14252a;     /* fond carte (ardoise bleu-vert) */
  --ambre:#e9a23b;       /* accent : lanternes */
  --ambre-2:#f6c46b;     /* survol / lumière */
  --citron:#f1d65a;      /* touche majolique */
  --turquoise:#2a8f9d;   /* faïence */
  --turquoise-d:#1b6b76; /* faïence sur fond clair (contraste) */
  --creme:#f5ead6;       /* texte sur fond sombre / fond clair */
  --creme-2:#eadfc6;
  --olive:#8a9150;
  --tomate:#c9482c;
  --encre:#16201d;       /* texte sur fond clair */
  --or:linear-gradient(135deg,#8f6c2c 0%,#e9c46a 38%,#a5802f 62%,#f1d98f 100%);

  --f-display:'Bodoni Moda','Didot','Bodoni 72','Times New Roman',serif;
  --f-body:'Jost','Helvetica Neue',Arial,sans-serif;

  --ease:cubic-bezier(.16,1,.3,1);
  --gut:clamp(1.15rem,4.2vw,4.5rem);
  --nav-h:4.6rem;
}

*,*::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-stopped{overflow:hidden}
body{
  margin:0;background:var(--nuit);color:var(--creme);
  font:400 1.05rem/1.65 var(--f-body);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
ul,ol{list-style:none;margin:0;padding:0}
h1,h2,h3,p,figure,address,dl,dd,blockquote{margin:0}
address{font-style:normal}
em{font-style:italic}
:focus-visible{outline:2px solid var(--ambre-2);outline-offset:3px;border-radius:4px}
::selection{background:var(--ambre);color:var(--encre)}

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

/* ---------- Titres ---------- */
h2{
  font-family:var(--f-display);font-weight:500;letter-spacing:-.02em;line-height:1.02;
  font-size:clamp(2.6rem,7.2vw,7rem);
}
h2 em{font-style:italic;font-weight:400;color:var(--ambre-2)}
.eyebrow{
  display:inline-flex;align-items:center;gap:.6rem;
  font:500 .78rem/1 var(--f-body);letter-spacing:.28em;text-transform:uppercase;color:var(--ambre-2);
  margin-bottom:1.4rem;
}
.eyebrow svg{fill:currentColor;flex:none}
.eyebrow--dark{color:var(--turquoise-d)}

/* Découpe de texte (JS) */
.sw{display:inline-block;overflow:hidden;vertical-align:top;padding:.14em .07em .18em;margin:-.14em -.07em -.18em}
.sc{display:inline-block;will-change:transform}
.wd{display:inline-block}

/* ---------- Boutons & liens ---------- */
.btn{
  --bc:rgba(233,196,106,.6);
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.7rem;
  padding:1.05rem 1.8rem;border-radius:999px;border:1px solid var(--bc);
  color:var(--creme);font:500 .8rem/1 var(--f-body);letter-spacing:.16em;text-transform:uppercase;
  overflow:hidden;isolation:isolate;will-change:transform;
  transition:color .5s var(--ease),border-color .5s var(--ease);
}
.btn__label{position:relative;display:inline-flex;align-items:center;gap:.6rem;will-change:transform}
.btn__label svg{flex:none;transition:transform .5s var(--ease)}
.btn__fill{
  position:absolute;inset:-1px;background:var(--or);z-index:-1;
  transform:translateY(104%);border-radius:50% 50% 0 0/100% 100% 0 0;
  transition:transform .65s var(--ease),border-radius .65s var(--ease);
}
.btn:hover .btn__fill,.btn:focus-visible .btn__fill{transform:translateY(0);border-radius:0}
.btn:hover,.btn:focus-visible{color:var(--encre);border-color:transparent}
.btn:hover .btn__label svg{transform:translateX(4px)}
.btn--lg{padding:1.3rem 2.3rem;font-size:.86rem}
.btn--sm{padding:.8rem 1.35rem;font-size:.72rem}
.btn--gold{background:var(--or);color:var(--encre);border-color:transparent}
.btn--gold .btn__fill{background:var(--creme)}
.btn--gold:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.5)}
.btn--gold:disabled .btn__fill{display:none}
.btn--dark{--bc:var(--encre);color:var(--encre)}
.btn--dark .btn__fill{background:var(--encre)}
.btn--dark:hover,.btn--dark:focus-visible{color:var(--creme)}
.btn--ghost{--bc:rgba(245,234,214,.4)}
.btn--text{border:0;padding:.8rem .2rem;letter-spacing:.1em;color:rgba(245,234,214,.75)}
.btn--text .btn__fill{display:none}
.btn--text:hover{color:var(--ambre-2)}

.link-u{position:relative;display:inline-block;font:500 .8rem/1.2 var(--f-body);letter-spacing:.16em;text-transform:uppercase;padding-bottom:.35rem;color:inherit;cursor:pointer}
.link-u::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform-origin:right;transition:transform .6s var(--ease)}
.link-u::before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ambre);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease) .05s}
.link-u:hover::after{transform:scaleX(0)}
.link-u:hover::before{transform:scaleX(1)}
p .link-u,li .link-u,address .link-u,.qa__a .link-u{letter-spacing:.04em;text-transform:none;font-size:inherit;font-weight:500}
.link-u--dark{color:var(--encre)}

/* ---------- Texture, curseur, progression ---------- */
.grain{
  position:fixed;inset:-50%;z-index:9990;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.cursor{position:fixed;left:0;top:0;z-index:9995;pointer-events:none;display:none}
.has-cursor .cursor{display:block}
.cursor__dot{
  position:absolute;left:-9px;top:-9px;width:18px;height:18px;border-radius:50%;
  background:radial-gradient(circle,rgba(246,196,107,.95) 0,rgba(233,162,59,.55) 45%,rgba(233,162,59,0) 72%);
  mix-blend-mode:screen;transition:transform .45s var(--ease);
}
.cursor.is-link .cursor__dot{transform:scale(3.2)}
.cursor.is-view .cursor__dot{transform:scale(5);background:radial-gradient(circle,rgba(245,234,214,.9) 0,rgba(245,234,214,.55) 55%,rgba(245,234,214,.0) 72%)}
.cursor__label{
  position:absolute;left:0;top:0;transform:translate(-50%,-50%);
  font:600 .6rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--encre);opacity:0;transition:opacity .3s;white-space:nowrap;
}
.cursor.is-view .cursor__label{opacity:1}

.progress{position:fixed;right:clamp(.6rem,1.4vw,1.4rem);top:50%;transform:translateY(-50%);z-index:450;pointer-events:none;opacity:0;transition:opacity .8s}
.progress.is-on{opacity:1}
.progress svg{height:min(46vh,360px);width:auto;overflow:visible}
.progress__track,.progress__fill{fill:none;stroke-linecap:round;stroke-width:1.6}
.progress__track{stroke:rgba(245,234,214,.18)}
.progress__fill{stroke:url(#gold-g);stroke:#e9c46a}
.progress__leaf{fill:#e9c46a;transform-box:fill-box;transform-origin:50% 100%}

/* ---------- Loader : l'écrin s'ouvre ---------- */
.loader{position:fixed;inset:0;z-index:10000;overflow:hidden;display:grid;place-items:center}
.loader__lid{position:absolute;left:0;right:0;height:50.2%;background:var(--nuit);will-change:transform}
.loader__lid--top{top:0;border-bottom:1px solid rgba(233,196,106,.5)}
.loader__lid--bottom{bottom:0}
.loader__core{position:relative;z-index:2;display:grid;place-items:center;gap:1.1rem;text-align:center}
.loader__arch{width:clamp(90px,14vw,150px);height:auto;overflow:visible}
.loader__arch path{stroke-dasharray:1;stroke-dashoffset:1}
.loader__word{display:flex;align-items:baseline;gap:.6rem;font-family:var(--f-display);overflow:hidden;padding:.2em .1em}
.loader__le{font-style:italic;color:var(--ambre-2);font-size:clamp(1.2rem,2.4vw,1.8rem)}
.loader__name{font-size:clamp(2.2rem,5vw,3.8rem);font-weight:500;letter-spacing:-.02em}
.loader__word span{display:inline-block}
.loader__count{font:500 .78rem/1 var(--f-body);letter-spacing:.3em;color:rgba(245,234,214,.6)}
.loader__count small{margin-left:.15em}
.no-js .loader{display:none}

/* ---------- Navigation ---------- */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:500;height:var(--nav-h);
  display:flex;align-items:center;justify-content:space-between;gap:2rem;
  padding:0 var(--gut);
  transition:transform .6s var(--ease),background .5s,backdrop-filter .5s;
  will-change:transform;
}
.nav.is-solid{background:rgba(13,20,18,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.nav.is-hidden{transform:translateY(-110%)}
.nav__logo{display:inline-flex;align-items:center;gap:.7rem;font:500 1.35rem/1 var(--f-display);letter-spacing:-.01em}
.nav__logo em{font-weight:400;color:var(--ambre-2);margin-right:.15em}
.nav__gem{fill:var(--ambre-2);transition:transform .7s var(--ease)}
.nav__logo:hover .nav__gem{transform:rotate(180deg) scale(1.15)}
.nav__links{display:flex;gap:clamp(1rem,2.6vw,2.6rem);margin-left:auto}
.nav__links a{position:relative;font:500 .76rem/1 var(--f-body);letter-spacing:.2em;text-transform:uppercase;padding:.5rem 0}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ambre-2);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.nav__links a:hover::after,.nav__links a:focus-visible::after{transform:scaleX(1);transform-origin:left}
.nav__burger{display:none;width:3rem;height:3rem;border-radius:50%;border:1px solid rgba(233,196,106,.5);position:relative;z-index:520}
.nav__burger span{position:absolute;left:50%;top:50%;width:18px;height:1.5px;background:var(--creme);transition:transform .5s var(--ease)}
.nav__burger span:first-child{transform:translate(-50%,-4px)}
.nav__burger span:last-child{transform:translate(-50%,4px)}
.nav__burger[aria-expanded="true"] span:first-child{transform:translate(-50%,0) rotate(45deg)}
.nav__burger[aria-expanded="true"] span:last-child{transform:translate(-50%,0) rotate(-45deg)}

.menu{position:fixed;inset:0;z-index:480;display:flex;flex-direction:column;justify-content:center;padding:6rem var(--gut) 2.5rem;overflow:hidden;visibility:hidden}
.menu.is-open{visibility:visible}
.menu[hidden]{display:flex}
.menu__bg{position:absolute;inset:0;background:radial-gradient(120% 80% at 80% 0,#1b2e28 0,var(--nuit) 70%);clip-path:circle(0% at calc(100% - 3rem) 2.4rem)}
.menu__nav{position:relative;display:grid;gap:.2rem}
.menu__nav a{display:flex;align-items:baseline;gap:1rem;font:500 clamp(2.2rem,9vw,3.6rem)/1.15 var(--f-display);overflow:hidden;padding:.1em 0}
.menu__nav a span{font:500 .75rem/1 var(--f-body);letter-spacing:.2em;color:var(--ambre-2)}
.menu__nav a>*,.menu__nav a{will-change:transform}
.menu__foot{position:relative;margin-top:2.5rem;display:grid;gap:.4rem;color:rgba(245,234,214,.75)}
.menu__foot a{font:500 1.6rem var(--f-display);color:var(--ambre-2)}

/* =====================================================================
   1 · HERO
   ===================================================================== */
.hero{position:relative;height:100vh;height:100svh;min-height:600px;overflow:hidden;display:flex;align-items:flex-end;background:var(--nuit)}
.hero__media{position:absolute;inset:-7% 0;will-change:transform}
.hero__video{width:100%;height:100%;object-fit:cover;transform-origin:50% 55%;will-change:transform}
.hero__shade{
  position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(13,20,18,.72) 0%,rgba(13,20,18,.32) 48%,rgba(13,20,18,0) 78%),
    radial-gradient(110% 80% at 50% 25%,rgba(13,20,18,0) 35%,rgba(13,20,18,.5) 82%),
    linear-gradient(180deg,rgba(13,20,18,.6) 0%,rgba(13,20,18,.05) 28%,rgba(13,20,18,.5) 72%,var(--nuit) 100%);
}
.hero__glows,.hero__leaves{position:absolute;inset:0;pointer-events:none}
.glow{position:absolute;border-radius:50%;mix-blend-mode:screen;will-change:transform;animation:flicker 5.5s ease-in-out infinite}
.glow--1{width:46vmin;height:46vmin;left:-8vmin;top:6vh;background:radial-gradient(circle,rgba(233,162,59,.42),rgba(233,162,59,0) 68%)}
.glow--2{width:38vmin;height:38vmin;right:2vmin;top:14vh;background:radial-gradient(circle,rgba(246,196,107,.38),rgba(246,196,107,0) 68%);animation-delay:-2s}
.glow--3{width:30vmin;height:30vmin;left:44%;top:-6vmin;background:radial-gradient(circle,rgba(233,162,59,.3),rgba(233,162,59,0) 68%);animation-delay:-3.4s}
@keyframes flicker{0%,100%{opacity:.95}30%{opacity:.6}55%{opacity:1}75%{opacity:.7}}
.leaf{position:absolute;color:var(--olive);will-change:transform;opacity:.7}
.leaf--a{width:clamp(110px,15vw,230px);left:-1vw;top:11vh;transform:rotate(-24deg)}
.leaf--b{width:clamp(150px,20vw,310px);right:-3vw;bottom:-3vh;transform:rotate(36deg);filter:blur(2.5px);opacity:.55}
.leaf--c{width:clamp(70px,9vw,140px);right:23vw;top:12vh;transform:rotate(18deg);opacity:.45;color:#a8b06a}
.hero__frame{position:absolute;inset:clamp(.7rem,1.5vw,1.5rem);pointer-events:none;will-change:transform}
.hero__frame i{position:absolute;border:1px solid rgba(233,196,106,.4)}
.hero__frame i:first-child{inset:0}
.hero__frame i:last-child{inset:7px;border-color:rgba(233,196,106,.22)}

.hero__content{position:relative;z-index:3;width:100%;padding:0 var(--gut) clamp(3.6rem,10vh,6.4rem);will-change:transform}
.hero__eyebrow{margin-bottom:clamp(1rem,2.6vh,2rem)}
.hero__title{font-family:var(--f-display);font-weight:500;line-height:.82;letter-spacing:-.035em;font-size:clamp(5.2rem,21vw,21rem);margin-bottom:clamp(1.2rem,3vh,2.4rem)}
.hero__line{display:block;white-space:nowrap}
.hero__title .sw{padding:.34em .08em .1em;margin:-.34em -.08em -.1em}
.hero__line--1{font-size:.46em;font-style:italic;font-weight:400;color:var(--ambre-2);letter-spacing:-.02em;margin:0 0 .08em 1.05em;line-height:1}
.hero__le{font-size:.62em;margin-right:.08em;opacity:.9}
.hero__line--2{margin-left:-.04em}
.hero__lead{max-width:33rem;font-size:clamp(1.02rem,1.5vw,1.28rem);line-height:1.6;color:rgba(245,234,214,.9);margin-bottom:clamp(1.4rem,3.4vh,2.4rem)}
.hero__cta{display:flex;flex-wrap:wrap;align-items:center;gap:1.4rem 2.2rem}
.hero__badge{position:absolute;z-index:4;right:var(--gut);bottom:clamp(5rem,16vh,9rem);width:clamp(112px,11vw,158px);aspect-ratio:1;display:grid;place-items:center;border-radius:50%;background:rgba(13,20,18,.5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.hero__badge-ring{position:absolute;inset:0;width:100%;height:100%;animation:spin 22s linear infinite}
.hero__badge-ring text{font:500 13.2px var(--f-body);letter-spacing:.2em;text-transform:uppercase;fill:var(--creme)}
.hero__badge-core{display:flex;align-items:center;gap:.25rem;font-family:var(--f-display);font-size:clamp(1.8rem,3vw,2.6rem);font-weight:500;line-height:1}
.hero__badge-core svg{fill:var(--ambre);margin-top:-.4rem}
@keyframes spin{to{transform:rotate(360deg)}}
.hero__status,.venir__status{display:inline-flex;align-items:center;gap:.6rem;font:500 .74rem/1 var(--f-body);letter-spacing:.18em;text-transform:uppercase}
.hero__status{position:absolute;z-index:4;right:var(--gut);top:calc(var(--nav-h) + 1.1rem);padding:.7rem 1rem;border-radius:999px;background:rgba(13,20,18,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(233,196,106,.25)}
.dot{width:8px;height:8px;border-radius:50%;background:#7bd389;position:relative;flex:none}
.dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit;animation:ping 2s ease-out infinite}
.is-closed-now .dot{background:var(--tomate)}
.is-soon .dot{background:var(--ambre)}
@keyframes ping{0%{transform:scale(1);opacity:.7}100%{transform:scale(3.2);opacity:0}}
.hero__scroll{position:absolute;z-index:4;left:50%;bottom:1.2rem;transform:translateX(-50%);display:grid;justify-items:center;gap:.5rem;font:500 .62rem/1 var(--f-body);letter-spacing:.3em;text-transform:uppercase;color:rgba(245,234,214,.7)}
.hero__scroll i{width:1px;height:38px;background:linear-gradient(var(--ambre-2),transparent);transform-origin:top;animation:drip 2.2s var(--ease) infinite}
@keyframes drip{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}

/* =====================================================================
   2 · MARQUEE
   ===================================================================== */
.marquee{position:relative;background:var(--nuit);padding:clamp(2.6rem,6vw,5rem) 0 clamp(5rem,8vw,7rem);overflow:hidden}
.marquee__row{overflow:hidden;white-space:nowrap}
.marquee__track{display:inline-flex;align-items:center;gap:clamp(1.4rem,3vw,3rem);padding-right:clamp(1.4rem,3vw,3rem);will-change:transform;font-family:var(--f-display);font-size:clamp(3.6rem,10.5vw,11rem);font-weight:500;line-height:1.1;font-style:italic;letter-spacing:-.02em}
.marquee__track .outline{color:transparent;-webkit-text-stroke:1.2px rgba(245,234,214,.6)}
.marquee__track .sep{display:inline-flex;color:var(--ambre);font-style:normal}
.marquee__track .sep svg{fill:currentColor;width:.28em;height:.28em}
.marquee__row--sm{margin-top:clamp(.6rem,1.4vw,1.4rem);border-top:1px solid rgba(233,196,106,.25);border-bottom:1px solid rgba(233,196,106,.25);padding:.9rem 0}
.marquee__row--sm .marquee__track{font:500 clamp(.8rem,1.1vw,1rem)/1 var(--f-body);letter-spacing:.32em;text-transform:uppercase;font-style:normal;color:var(--ambre-2);gap:clamp(1.4rem,2.6vw,2.6rem)}

/* Séparateurs (fil rouge : auvent festonné, arche) */
.scallop{position:absolute;left:0;right:0;top:-1px;height:24px;z-index:3;pointer-events:none;--c:var(--nuit);
  background:radial-gradient(circle at 50% 0,var(--c) 0 21px,transparent 22px) 0 0/44px 24px repeat-x}
.curve{position:absolute;left:-12%;right:-12%;top:-1px;height:clamp(3.4rem,8vw,8rem);z-index:2;background:var(--ardoise);border-radius:0 0 50% 50%/0 0 100% 100%;pointer-events:none}

/* =====================================================================
   3 · MANIFESTE
   ===================================================================== */
.manifeste{position:relative;background:var(--creme);color:var(--encre);padding:clamp(7rem,13vw,13rem) var(--gut) clamp(6rem,10vw,10rem)}
.manifeste__inner{max-width:1500px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr);gap:clamp(2rem,7vw,8rem);align-items:center}
.manifeste__lead{font:500 clamp(1.8rem,3.9vw,3.8rem)/1.16 var(--f-display);letter-spacing:-.015em;margin-bottom:2.6rem}
.manifeste__lead .wd{opacity:.16}
.manifeste__fig{position:relative;--gap:var(--creme);justify-self:center;width:min(100%,470px)}
.arch-frame{--gap:var(--nuit);padding:2px;background:var(--or);border-radius:999px 999px 0 0}
.manifeste .arch-frame{--gap:var(--creme)}
.arch-frame__gap{padding:7px;background:var(--gap);border-radius:999px 999px 0 0}
.arch-frame__img{position:relative;overflow:hidden;border-radius:999px 999px 0 0;background:#0a100e}
.manifeste__fig .arch-frame__img{aspect-ratio:3/4.1}
.arch-frame__img img,.arch-frame__img video{width:100%;height:100%;object-fit:cover}
[data-parallax-img]{transform:scale(1.2);will-change:transform}
.manifeste__lemon{position:absolute;left:-14%;bottom:7%;width:clamp(110px,12vw,158px);height:auto;filter:drop-shadow(0 10px 22px rgba(22,32,29,.25));will-change:transform}
.manifeste__lemon text{font:600 11.8px var(--f-body);letter-spacing:.2em;text-transform:uppercase;fill:var(--encre)}

/* =====================================================================
   4 · HISTOIRE (pinnée)
   ===================================================================== */
.story{position:relative;background:radial-gradient(90% 70% at 18% 8%,#1b2e28 0,var(--nuit) 62%);overflow:hidden}
.story__pin{min-height:100vh;height:100vh;padding:calc(var(--nav-h) + 1.2rem) var(--gut) 2.4rem;display:flex;flex-direction:column}
.story__head{flex:none;margin-bottom:clamp(.4rem,2vh,2rem)}
.story__head .eyebrow{margin-bottom:.9rem}
.story__title{font-size:clamp(2rem,4.4vw,4.4rem)}
.story__stage{position:relative;flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.8fr);gap:clamp(2rem,6vw,7rem);align-items:center}
.story__numeral{position:absolute;left:-1.5vw;top:50%;height:1em;transform:translateY(-52%);overflow:hidden;font:italic 400 clamp(12rem,27vw,30rem)/1 var(--f-display);color:transparent;-webkit-text-stroke:1px rgba(233,196,106,.28);pointer-events:none;z-index:0}
.story__numeral-roll{display:flex;flex-direction:column;will-change:transform}
.story__numeral-roll i{display:block;height:1em;line-height:1;font-style:italic}
.story__chapters{position:relative;z-index:2;min-height:19rem;margin-left:clamp(0rem,8vw,9rem);display:grid;align-items:center}
.chapter{grid-area:1/1;width:100%;max-width:34rem;opacity:0;visibility:hidden}
.chapter.is-active{opacity:1;visibility:visible}
.chapter h3{font:500 clamp(2rem,3.7vw,3.5rem)/1.05 var(--f-display);margin-bottom:1.2rem;letter-spacing:-.015em}
.chapter p{font-size:clamp(1rem,1.2vw,1.14rem);line-height:1.75;color:rgba(245,234,214,.82)}
.chapter__fig{display:none}
.story__visual{position:relative;z-index:2;justify-self:end;height:min(68vh,660px);aspect-ratio:3/4}
.arch-frame--lg,.arch-frame--lg .arch-frame__gap,.arch-frame--lg .arch-frame__img{height:100%}
.story__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;clip-path:inset(100% 0 0 0)}
.story__img.is-on{clip-path:inset(0)}
.story__dots{position:absolute;right:calc(-1 * var(--gut) + .8rem);top:50%;transform:translateY(-50%);display:grid;gap:.9rem;z-index:3}
.story__dots li{width:7px;height:7px;border-radius:50%;background:rgba(245,234,214,.3);transition:transform .5s var(--ease),background .5s}
.story__dots li.is-on{background:var(--ambre);transform:scale(1.7)}

/* =====================================================================
   5 · LA CARTE (défilement horizontal)
   ===================================================================== */
.carte{position:relative;background:var(--ardoise);overflow:hidden}
.carte::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background:radial-gradient(60% 50% at 12% 20%,rgba(42,143,157,.16),transparent 70%),radial-gradient(50% 50% at 90% 80%,rgba(241,214,90,.07),transparent 70%)}
.carte__pin{position:relative;height:100vh;display:flex;align-items:center}
.carte__track{display:flex;align-items:center;gap:clamp(2rem,4.4vw,5rem);padding:calc(var(--nav-h) + .6rem) var(--gut) 1.5rem;will-change:transform}
.carte__panel{flex:0 0 min(44vw,620px)}
.carte__panel h2{font-size:clamp(3rem,6.6vw,6.8rem);margin-bottom:1.6rem}
.carte__note{max-width:30rem;color:rgba(245,234,214,.78);margin-bottom:2rem}
.carte__note a{color:var(--ambre-2);text-decoration:underline;text-underline-offset:3px}
.carte__hint{display:inline-flex;align-items:center;gap:.8rem;font:500 .75rem/1 var(--f-body);letter-spacing:.26em;text-transform:uppercase;color:var(--ambre-2)}
.carte__hint svg{animation:nudge 1.8s var(--ease) infinite}
@keyframes nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(10px)}}
.carte__panel--outro{flex-basis:min(40vw,560px)}
.carte__outro-big{font:500 clamp(2rem,3.8vw,3.6rem)/1.08 var(--f-display);margin-bottom:1.4rem;letter-spacing:-.015em}
.carte__outro-big em{color:var(--ambre-2)}
.carte__panel--outro>p:not(.carte__outro-big):not(.eyebrow){color:rgba(245,234,214,.8);margin-bottom:2rem;max-width:26rem}

.mcard{
  position:relative;flex:0 0 clamp(330px,29vw,450px);max-height:calc(100vh - var(--nav-h) - 2.4rem);overflow:hidden;
  padding:clamp(1.8rem,2.4vw,2.6rem) clamp(1.5rem,2.2vw,2.4rem);
  background:linear-gradient(165deg,#fbf3e0 0,#f1e3c6 100%);color:var(--encre);
  border-radius:6px;box-shadow:0 30px 60px -20px rgba(0,0,0,.6);
  transform-style:preserve-3d;will-change:transform;
}
.mcard--lg{flex-basis:clamp(340px,31vw,480px)}
.mcard::before,.mcard::after{content:"";position:absolute;pointer-events:none;border:1px solid transparent;border-image:var(--or) 1}
.mcard::before{inset:10px}
.mcard::after{inset:16px;opacity:.55}
.mcard header{position:relative;display:flex;align-items:baseline;gap:1rem;margin-bottom:1.3rem}
.mcard__no{font:500 .74rem/1 var(--f-body);letter-spacing:.2em;color:var(--turquoise-d)}
.mcard h3{font:italic 500 clamp(2.2rem,3.2vw,3.2rem)/1 var(--f-display);color:var(--turquoise-d);letter-spacing:-.01em}
.dishes{position:relative;display:grid;gap:clamp(.7rem,1.5vh,1.1rem)}
.dish__top{display:flex;align-items:baseline;gap:.6rem}
.dish__top b{font:600 clamp(1.05rem,1.25vw,1.25rem)/1.2 var(--f-display)}
.dish__top i,.rows i{flex:1;min-width:1rem;border-bottom:1px dotted rgba(22,32,29,.45);transform:translateY(-.25em)}
.dish__top span{font:500 1.02rem/1 var(--f-body);color:var(--turquoise-d);white-space:nowrap}
.dishes p{font-size:.86rem;line-height:1.5;color:#46524e;margin-top:.2rem}
.mcard__kids{position:relative;margin-top:1rem;padding-top:.9rem;border-top:1px dashed rgba(22,32,29,.3);font-size:.86rem;line-height:1.45;color:#46524e}
.mcard__kids b{color:var(--encre);font-family:var(--f-display);font-size:1rem;margin-right:.3rem}
.glare{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit;z-index:3}
.glare__spot{position:absolute;left:0;top:0;width:90%;aspect-ratio:1;margin:-45% 0 0 -45%;background:radial-gradient(circle,rgba(255,255,255,.55),rgba(255,255,255,0) 60%);opacity:0;will-change:transform,opacity;mix-blend-mode:soft-light}
.carte__photo{flex:0 0 auto;width:clamp(240px,20vw,320px);margin:0}
.carte__photo .arch-frame{height:min(62vh,540px)}
.carte__photo .arch-frame__gap,.carte__photo .arch-frame__img{height:100%}
.carte__photo:nth-of-type(even){align-self:flex-end}
.carte__photo figcaption{margin-top:.9rem;font:500 .72rem/1.4 var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:rgba(245,234,214,.65);max-width:22rem}
.carte__photo--2{width:clamp(250px,21vw,340px)}

/* =====================================================================
   6 · CHIFFRES
   ===================================================================== */
.chiffres{position:relative;background:var(--creme);color:var(--encre);padding:clamp(8rem,14vw,14rem) var(--gut) clamp(6rem,10vw,10rem);overflow:hidden}
.chiffres__tiles{position:absolute;left:0;right:0;top:-12%;bottom:-12%;z-index:0;will-change:transform;opacity:.7;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Crect width='96' height='96' fill='%23f5ead6'/%3E%3Cg fill='none' stroke='%232a8f9d' stroke-width='1.3'%3E%3Crect x='24' y='24' width='48' height='48'/%3E%3Crect x='24' y='24' width='48' height='48' transform='rotate(45 48 48)'/%3E%3Ccircle cx='48' cy='48' r='9'/%3E%3C/g%3E%3Ccircle cx='48' cy='48' r='4.5' fill='%23f1d65a'/%3E%3Cg fill='%232a8f9d' opacity='.28'%3E%3Ccircle cx='0' cy='0' r='7'/%3E%3Ccircle cx='96' cy='0' r='7'/%3E%3Ccircle cx='0' cy='96' r='7'/%3E%3Ccircle cx='96' cy='96' r='7'/%3E%3C/g%3E%3C/svg%3E")}
.chiffres__inner{position:relative;z-index:2;max-width:1280px;margin:0 auto;padding:clamp(2.4rem,5vw,5rem) clamp(1.4rem,4vw,4.5rem) clamp(2.6rem,5vw,4.6rem);background:rgba(245,234,214,.94);border-radius:999px 999px 14px 14px/clamp(160px,22vw,300px) clamp(160px,22vw,300px) 14px 14px;box-shadow:0 0 0 1px rgba(143,108,44,.45),0 0 0 9px rgba(245,234,214,.9),0 0 0 10px rgba(143,108,44,.35);text-align:center}
.chiffres__title{font-size:clamp(2.2rem,5.2vw,5rem);margin:0 auto clamp(2rem,4vw,4rem);max-width:16ch}
.chiffres__title em{color:var(--turquoise-d)}
.chiffres__list{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1rem,2.4vw,2.6rem)}
.chiffres__list li{position:relative;display:grid;justify-items:center;align-content:start}
.chiffres__list .ring{width:min(100%,190px);aspect-ratio:1;transform:rotate(-90deg);overflow:visible}
.ring circle{fill:none;stroke-width:1.6}
.ring__bg{stroke:rgba(22,32,29,.14)}
.ring__fg{stroke:var(--turquoise-d);stroke-linecap:round;stroke-dasharray:339.3;stroke-dashoffset:339.3}
.num{position:absolute;left:0;right:0;top:0;aspect-ratio:1;max-width:190px;margin:0 auto;display:flex;align-items:center;justify-content:center;font:600 clamp(2.4rem,4.4vw,3.8rem)/1 var(--f-display);letter-spacing:-.02em;font-variation-settings:"opsz" 18}
.num small{font:italic 400 .42em/1 var(--f-display);color:var(--turquoise-d);margin:.7em 0 0 .1em}
.lbl{margin-top:1rem;max-width:14rem;font:500 .8rem/1.45 var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:#46524e}

/* =====================================================================
   7 · CAVE & BAR
   ===================================================================== */
.cave{position:relative;background:var(--nuit);padding:clamp(6rem,10vw,10rem) var(--gut)}
.cave__inner{max-width:1500px;margin:0 auto;display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:clamp(2rem,6vw,7rem);align-items:start}
.cave__visual{position:sticky;top:calc(var(--nav-h) + 2rem);height:min(72vh,680px);aspect-ratio:3/4;justify-self:center}
.cave__imgs{height:100%}
.cave__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity .9s var(--ease),transform 1.4s var(--ease)}
.cave__img.is-on{opacity:1;transform:scale(1)}
.cave__olive{position:absolute;right:-24%;bottom:-6%;width:46%;color:var(--olive);opacity:.8;transform:rotate(28deg);will-change:transform;pointer-events:none}
.cave__panel h2{font-size:clamp(2.6rem,6vw,6rem);margin-bottom:2.2rem}
.tabs{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2rem}
.tabs button{padding:.8rem 1.25rem;border-radius:999px;border:1px solid rgba(233,196,106,.35);font:500 .74rem/1 var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:rgba(245,234,214,.8);transition:background .4s var(--ease),color .4s,border-color .4s,transform .4s var(--ease)}
.tabs button:hover{border-color:var(--ambre-2);color:var(--creme)}
.tabs button[aria-selected="true"]{background:var(--or);color:var(--encre);border-color:transparent}
.tabpanel{display:none}
.tabpanel.is-on{display:block}
.tp__sub{font:500 .74rem/1 var(--f-body);letter-spacing:.26em;text-transform:uppercase;color:var(--ambre-2);margin:2rem 0 .7rem}
.tp__sub:first-child{margin-top:0}
.rows li{display:flex;align-items:baseline;gap:.9rem;padding:.78rem 0;border-bottom:1px solid rgba(245,234,214,.1);transition:transform .5s var(--ease),color .4s}
.rows li:hover{transform:translateX(8px);color:var(--ambre-2)}
.rows span{font-size:1.04rem;line-height:1.4}
.rows em{display:block;font:italic 400 .88rem/1.4 var(--f-display);color:rgba(245,234,214,.6);margin-top:.15rem}
.rows i{border-bottom-color:rgba(245,234,214,.3)}
.rows b{font:500 1.05rem/1 var(--f-body);color:var(--ambre-2);white-space:nowrap}
.rows--big li{padding:1.15rem 0}
.rows--big span{font:500 clamp(1.4rem,2.2vw,2rem)/1.15 var(--f-display)}
.tp__note{margin-top:1.4rem;font-size:.92rem;color:rgba(245,234,214,.65)}

/* =====================================================================
   8 · GALERIE
   ===================================================================== */
.galerie{position:relative;background:var(--nuit-2);padding:clamp(6rem,10vw,10rem) var(--gut) clamp(4rem,7vw,7rem);overflow:hidden}
.galerie__head{max-width:1500px;margin:0 auto clamp(2.4rem,5vw,5rem);display:grid;gap:1rem}
.galerie__head h2{max-width:14ch}
.galerie__sub{max-width:36rem;color:rgba(245,234,214,.75)}
.galerie__grid{max-width:1500px;margin:0 auto;columns:4;column-gap:clamp(.8rem,1.5vw,1.6rem)}
.g{break-inside:avoid;margin-bottom:clamp(.8rem,1.5vw,1.6rem);perspective:900px}
.g__btn{position:relative;display:block;width:100%;overflow:hidden;border-radius:6px;transform-style:preserve-3d;will-change:transform;cursor:pointer;background:#0a100e}
.g--arch .g__btn{border-radius:999px 999px 6px 6px}
.g__btn img{width:100%;height:100%;object-fit:cover;transform:scale(1.18);will-change:transform;transition:filter .6s}
.g__btn{aspect-ratio:1}
.g--tall .g__btn{aspect-ratio:3/4.1}
.g--wide .g__btn{aspect-ratio:4/3}
.g--arch .g__btn{aspect-ratio:2/3}
.g__cap{position:absolute;left:0;right:0;bottom:0;padding:2.6rem 1rem .9rem;text-align:left;font:500 .72rem/1.3 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--creme);background:linear-gradient(transparent,rgba(13,20,18,.85));transform:translateY(101%);transition:transform .6s var(--ease)}
.g__btn:hover .g__cap,.g__btn:focus-visible .g__cap{transform:translateY(0)}
.g__btn::after{content:"";position:absolute;inset:0;border:1px solid rgba(233,196,106,.0);border-radius:inherit;transition:border-color .5s;pointer-events:none}
.g__btn:hover::after{border-color:rgba(233,196,106,.6)}
.galerie__credit{max-width:1500px;margin:clamp(2rem,4vw,3.6rem) auto 0;font-size:.82rem;color:rgba(245,234,214,.5)}
.galerie__credit a{text-decoration:underline;text-underline-offset:3px}

.lightbox,.legal{border:0;padding:0;color:var(--creme)}
.lightbox{width:100vw;height:100vh;max-width:none;max-height:none;background:rgba(8,12,10,.95);align-items:center;justify-content:center}
.lightbox[open]{display:flex}
.lightbox::backdrop{background:rgba(8,12,10,.6)}
.lightbox figure{display:grid;gap:1rem;justify-items:center;max-width:min(92vw,1100px)}
.lightbox img{max-height:80vh;width:auto;max-width:100%;border-radius:6px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.lightbox figcaption{font:italic 400 1.2rem var(--f-display);color:var(--creme);text-align:center}
.lightbox__close{position:absolute;top:1.2rem;right:1.2rem;width:3.2rem;height:3.2rem;border-radius:50%;border:1px solid rgba(233,196,106,.5);display:grid;place-items:center;z-index:2}
.lightbox__nav{width:3.4rem;height:3.4rem;border-radius:50%;border:1px solid rgba(233,196,106,.5);display:grid;place-items:center;margin:0 clamp(.6rem,2vw,2rem);flex:none;transition:background .4s,color .4s}
.lightbox__nav:hover,.lightbox__close:hover{background:var(--or);color:var(--encre);border-color:transparent}
.legal{width:min(92vw,640px);background:var(--nuit-2);border:1px solid rgba(233,196,106,.4);border-radius:10px;padding:2.4rem}
.legal::backdrop{background:rgba(8,12,10,.8)}
.legal h2{font-size:2.2rem;margin-bottom:1.2rem}
.legal p{margin-bottom:.9rem;color:rgba(245,234,214,.85);font-size:.96rem}

/* =====================================================================
   9 · AVIS
   ===================================================================== */
.avis{position:relative;background:var(--creme);color:var(--encre);padding:clamp(6rem,10vw,10rem) var(--gut)}
.avis__inner{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,6vw,7rem);align-items:center}
.avis__side h2{font-size:clamp(2.6rem,5.6vw,5.6rem);margin-bottom:2rem}
.avis__side h2 em{color:var(--turquoise-d)}
.avis__score{display:flex;align-items:center;gap:1.4rem;margin-bottom:1.6rem}
.avis__score b{font:600 clamp(4rem,8vw,7rem)/.9 var(--f-display);letter-spacing:-.03em;font-variation-settings:"opsz" 20}
.avis__score p{font:500 .8rem/1.2 var(--f-body);letter-spacing:.16em;text-transform:uppercase;margin-top:.5rem;color:#46524e}
.stars{position:relative;width:140px;height:26px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='26' viewBox='0 0 140 26' fill='%23d9cdb2'%3E%3Cg id='s'%3E%3Cpath d='m13 1 3.4 7.4 7.9.8-5.9 5.4 1.7 7.9L13 18.5 5.9 22.5l1.7-7.9L1.7 9.2l7.9-.8z'/%3E%3C/g%3E%3Cuse href='%23s' x='28'/%3E%3Cuse href='%23s' x='56'/%3E%3Cuse href='%23s' x='84'/%3E%3Cuse href='%23s' x='112'/%3E%3C/svg%3E") no-repeat}
.stars__fill{position:absolute;inset:0;clip-path:inset(0 100% 0 0);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='26' viewBox='0 0 140 26' fill='%23c58a1c'%3E%3Cg id='s'%3E%3Cpath d='m13 1 3.4 7.4 7.9.8-5.9 5.4 1.7 7.9L13 18.5 5.9 22.5l1.7-7.9L1.7 9.2l7.9-.8z'/%3E%3C/g%3E%3Cuse href='%23s' x='28'/%3E%3Cuse href='%23s' x='56'/%3E%3Cuse href='%23s' x='84'/%3E%3Cuse href='%23s' x='112'/%3E%3C/svg%3E") no-repeat}
.chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2.2rem}
.chips li{display:inline-flex;align-items:center;gap:.6rem;padding:.35rem 1rem .35rem .4rem;border:1px solid rgba(22,32,29,.25);border-radius:999px;font:500 .78rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase}
.chips b{display:grid;place-items:center;min-width:2rem;height:2rem;border-radius:50%;background:var(--turquoise-d);color:var(--creme);font-weight:600}
.avis__carousel{position:relative;min-width:0}
.avis__viewport{overflow:hidden;border-radius:10px;touch-action:pan-y}
.avis__track{display:flex;will-change:transform;cursor:grab}
.avis__track:active{cursor:grabbing}
.rcard{position:relative;flex:0 0 100%;min-height:clamp(300px,34vw,420px);padding:clamp(2rem,4vw,3.6rem);background:var(--nuit);color:var(--creme);display:flex;flex-direction:column;justify-content:space-between;gap:2rem;user-select:none}
.rcard::before{content:"";position:absolute;inset:10px;border:1px solid rgba(233,196,106,.4);border-radius:4px;pointer-events:none}
.rcard__q{fill:var(--ambre)}
.rcard blockquote{font:italic 400 clamp(1.7rem,3vw,2.7rem)/1.22 var(--f-display);letter-spacing:-.01em}
.rcard footer{display:grid;gap:.25rem}
.rcard footer b{font:500 1rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--ambre-2)}
.rcard footer span{font-size:.86rem;color:rgba(245,234,214,.65)}
.rcard--cta{background:linear-gradient(160deg,#17302c,var(--ardoise))}
.rcard--cta footer a{color:var(--ambre-2);font-size:.9rem}
.avis__ctrl{display:flex;align-items:center;justify-content:space-between;margin-top:1.4rem}
.avis__btn{width:3.2rem;height:3.2rem;border-radius:50%;border:1px solid var(--encre);display:grid;place-items:center;transition:background .4s var(--ease),color .4s}
.avis__btn:hover{background:var(--encre);color:var(--creme)}
.avis__dots{display:flex;gap:.7rem}
.avis__dots li{width:8px;height:8px;border-radius:50%;background:rgba(22,32,29,.25);transition:transform .5s var(--ease),background .5s}
.avis__dots li.is-on{background:var(--turquoise-d);transform:scale(1.7)}

/* =====================================================================
   10 · RÉSERVER
   ===================================================================== */
.resa{position:relative;background:var(--nuit);padding:clamp(9rem,14vw,14rem) var(--gut) clamp(7rem,10vw,10rem);overflow:hidden}
.resa::before{content:"";position:absolute;left:-12%;right:-12%;top:-1px;height:clamp(3.4rem,8vw,8rem);background:var(--creme);border-radius:0 0 50% 50%/0 0 100% 100%;z-index:3}
.resa__bg{position:absolute;inset:-8% 0;opacity:.5;animation:candle 7s ease-in-out infinite}
@keyframes candle{0%,100%{opacity:.5}20%{opacity:.4}45%{opacity:.58}70%{opacity:.44}}
.carte__bar{position:absolute;left:var(--gut);right:var(--gut);bottom:1.8rem;height:1px;background:rgba(245,234,214,.18);z-index:4}
.carte__bar i{position:absolute;inset:0;background:var(--or);transform:scaleX(0);transform-origin:left}
.resa__bg img{width:100%;height:100%;object-fit:cover}
.resa__shade{position:absolute;inset:0;background:radial-gradient(80% 70% at 50% 40%,rgba(13,20,18,.2),rgba(13,20,18,.88)),linear-gradient(180deg,rgba(13,20,18,.5),rgba(13,20,18,.2) 40%,var(--nuit) 100%)}
.resa__inner{position:relative;z-index:2;max-width:1400px;margin:0 auto;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2rem,6vw,7rem);align-items:center}
.resa__intro h2{font-size:clamp(3rem,6.6vw,6.8rem);margin-bottom:1.6rem}
.resa__p{max-width:30rem;color:rgba(245,234,214,.85);margin-bottom:1.8rem}
.resa__facts{display:grid;gap:.9rem;margin-bottom:2.2rem}
.resa__facts li{display:flex;align-items:center;gap:.9rem;color:rgba(245,234,214,.9)}
.resa__facts svg{color:var(--ambre-2);flex:none}
.resa__facts a{text-decoration:underline;text-underline-offset:3px}

.frame{position:relative}
.frame::before,.frame::after{content:"";position:absolute;pointer-events:none;border:1px solid transparent;border-image:var(--or) 1}
.frame::before{inset:0}
.frame::after{inset:8px;opacity:.5}
.wizard{background:rgba(13,20,18,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:clamp(1.6rem,3.2vw,3rem);box-shadow:0 40px 90px -30px rgba(0,0,0,.8);transform-style:preserve-3d;will-change:transform}
.wizard__steps{display:flex;gap:.4rem 1.4rem;flex-wrap:wrap;margin-bottom:1.8rem}
.wizard__steps li{display:flex;align-items:center;gap:.6rem;font:500 .72rem/1 var(--f-body);letter-spacing:.18em;text-transform:uppercase;color:rgba(245,234,214,.45);transition:color .5s}
.wizard__steps li span{display:grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:50%;border:1px solid currentColor;font-size:.72rem;letter-spacing:0;transition:background .5s,color .5s}
.wizard__steps li.is-on{color:var(--ambre-2)}
.wizard__steps li.is-on span{background:var(--ambre-2);color:var(--encre);border-color:transparent}
.wizard__steps li.is-done{color:rgba(245,234,214,.8)}
.step{display:none}
.step.is-on{display:block}
.fld{border:0;padding:0;margin:0 0 1.4rem;min-width:0}
.fld legend{padding:0;margin-bottom:.7rem;font:500 .72rem/1 var(--f-body);letter-spacing:.22em;text-transform:uppercase;color:var(--ambre-2)}
.fld:disabled{opacity:.4}
.fld__hint{font-size:.84rem;color:rgba(245,234,214,.65);margin-top:.6rem}

.cal{margin-bottom:1.6rem}
.cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem}
.cal__head b{font:italic 500 1.6rem/1 var(--f-display);text-transform:capitalize}
.cal__nav{width:2.6rem;height:2.6rem;border-radius:50%;border:1px solid rgba(233,196,106,.4);display:grid;place-items:center;transition:background .4s,color .4s}
.cal__nav:hover:not(:disabled){background:var(--or);color:var(--encre);border-color:transparent}
.cal__nav:disabled{opacity:.3;cursor:not-allowed}
.cal__dow,.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal__dow span{text-align:center;font:500 .68rem/1 var(--f-body);letter-spacing:.14em;color:rgba(245,234,214,.5);padding:.4rem 0}
.cal__day{position:relative;aspect-ratio:1;max-height:3.1rem;border-radius:50%;display:grid;place-items:center;font:500 .98rem/1 var(--f-body);transition:background .35s,color .35s,transform .35s var(--ease)}
.cal__day:hover:not(:disabled):not(.is-sel){background:rgba(233,196,106,.18);transform:scale(1.08)}
.cal__day.is-today{box-shadow:inset 0 0 0 1px rgba(233,196,106,.7)}
.cal__day.is-sel{background:var(--or);color:var(--encre);font-weight:600}
.cal__day:disabled{opacity:.28;cursor:not-allowed}
.cal__day.is-closed:disabled{text-decoration:line-through;text-decoration-color:rgba(201,72,44,.9)}
.cal__day.is-empty{visibility:hidden}
.cal__legend{display:flex;align-items:center;gap:.6rem;margin-top:.8rem;font-size:.8rem;color:rgba(245,234,214,.6)}
.cal__legend i{width:14px;height:1px;background:var(--tomate);position:relative}
.seg{display:inline-grid;grid-auto-flow:column;gap:.4rem;padding:.3rem;border:1px solid rgba(233,196,106,.3);border-radius:999px}
.seg--3{display:grid;grid-template-columns:repeat(3,1fr)}
.seg__btn{padding:.75rem 1.4rem;border-radius:999px;font:500 .76rem/1 var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:rgba(245,234,214,.8);transition:background .4s,color .4s}
.seg__btn:disabled{opacity:.35;cursor:not-allowed}
.seg__btn[aria-pressed="true"]{background:var(--or);color:var(--encre)}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:.5rem}
.slots__empty{grid-column:1/-1;font-size:.9rem;color:rgba(245,234,214,.55)}
.slot{padding:.8rem .4rem;border:1px solid rgba(245,234,214,.25);border-radius:8px;font:500 .98rem/1 var(--f-body);transition:background .35s,border-color .35s,color .35s,transform .35s var(--ease)}
.slot:hover:not(:disabled){border-color:var(--ambre-2);transform:translateY(-2px)}
.slot[aria-pressed="true"]{background:var(--or);color:var(--encre);border-color:transparent;font-weight:600}
.slot:disabled{opacity:.3;text-decoration:line-through;cursor:not-allowed}
.stepper{display:inline-flex;align-items:center;gap:1.2rem;padding:.35rem;border:1px solid rgba(233,196,106,.3);border-radius:999px}
.stepper button{width:2.8rem;height:2.8rem;border-radius:50%;background:rgba(233,196,106,.14);font:500 1.4rem/1 var(--f-body);transition:background .3s,color .3s}
.stepper button:hover:not(:disabled){background:var(--or);color:var(--encre)}
.stepper button:disabled{opacity:.3;cursor:not-allowed}
.stepper output{min-width:8.5rem;text-align:center;font:italic 500 1.4rem/1 var(--f-display)}
.wizard__nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid rgba(233,196,106,.2)}
.wizard__sum{font-size:.92rem;color:rgba(245,234,214,.8);flex:1;min-width:12rem}
.wizard__sum b{color:var(--ambre-2);font-weight:500}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 1.4rem}
.in{display:block;margin-bottom:1.2rem}
.in span{display:block;font:500 .7rem/1 var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:rgba(245,234,214,.65);margin-bottom:.2rem}
.in input,.in textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(245,234,214,.3);padding:.7rem 0;color:var(--creme);font:400 1.1rem/1.4 var(--f-body);border-radius:0;transition:border-color .4s,box-shadow .4s;resize:vertical}
.in input::placeholder,.in textarea::placeholder{color:rgba(245,234,214,.35)}
.in input:focus,.in textarea:focus{outline:0;border-color:var(--ambre-2);box-shadow:0 1px 0 0 var(--ambre-2)}
.in input[aria-invalid="true"]{border-color:var(--tomate)}
.chk{display:flex;gap:.8rem;align-items:flex-start;font-size:.88rem;color:rgba(245,234,214,.8);cursor:pointer}
.chk input{appearance:none;flex:none;width:1.3rem;height:1.3rem;margin-top:.15rem;border:1px solid rgba(233,196,106,.7);border-radius:4px;display:grid;place-items:center;transition:background .3s}
.chk input::after{content:"";width:.5rem;height:.28rem;border-left:2px solid var(--encre);border-bottom:2px solid var(--encre);transform:rotate(-45deg) scale(0);transition:transform .3s var(--ease);margin-top:-.1rem}
.chk input:checked{background:var(--ambre-2)}
.chk input:checked::after{transform:rotate(-45deg) scale(1)}
.form-error{margin-top:1rem;padding:.8rem 1rem;border-left:3px solid var(--tomate);background:rgba(201,72,44,.12);font-size:.92rem}

.done{text-align:center;display:grid;justify-items:center;gap:1rem}
.done__gem{color:var(--ambre-2);animation:gem 4s ease-in-out infinite}
.done__gem svg{fill:currentColor}
@keyframes gem{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(6deg)}}
.done h3{font:500 clamp(1.8rem,3vw,2.6rem)/1.1 var(--f-display)}
.done p{max-width:30rem;color:rgba(245,234,214,.85)}
.recap{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.4rem;text-align:left;padding:1.2rem 1.4rem;border:1px dashed rgba(233,196,106,.45);border-radius:8px;width:100%;max-width:30rem}
.recap dt{font:500 .7rem/1.6 var(--f-body);letter-spacing:.18em;text-transform:uppercase;color:var(--ambre-2)}
.recap dd{font-size:1rem}
.done__actions{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center}
.spark{position:fixed;z-index:9000;width:7px;height:7px;border-radius:50%;background:var(--ambre-2);pointer-events:none}

/* =====================================================================
   11 · VENIR
   ===================================================================== */
.venir{position:relative;background:var(--creme);color:var(--encre);padding:clamp(7rem,11vw,11rem) var(--gut) clamp(5rem,8vw,8rem)}
.scallop--creme{--c:var(--nuit)}
.venir__inner{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:clamp(2rem,6vw,7rem);align-items:center}
.venir__info h2{font-size:clamp(2.6rem,5.6vw,5.6rem);margin-bottom:2rem}
.venir__info h2 em{color:var(--turquoise-d)}
.venir__addr{display:grid;gap:.9rem;margin-bottom:1.8rem}
.venir__addr p{display:flex;gap:1rem;align-items:flex-start;font-size:1.1rem}
.venir__addr svg{flex:none;color:var(--turquoise-d);margin-top:.15rem}
.venir__status{margin-bottom:1rem;padding:.7rem 1rem;border-radius:999px;border:1px solid rgba(22,32,29,.25)}
.hours{width:100%;max-width:30rem;border-collapse:collapse;margin-bottom:1.8rem}
.hours th,.hours td{padding:.7rem 0;border-bottom:1px solid rgba(22,32,29,.15);text-align:left;font-weight:400}
.hours th{font:500 .8rem/1.2 var(--f-body);letter-spacing:.16em;text-transform:uppercase;width:8.5rem}
.hours td{font-size:1.02rem}
.hours tr.is-closed td{color:var(--tomate)}
.hours tr.is-today{background:linear-gradient(90deg,rgba(42,143,157,.14),transparent)}
.hours tr.is-today th{color:var(--turquoise-d);position:relative;padding-left:1rem}
.hours tr.is-today th::before{content:"";position:absolute;left:0;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--turquoise-d)}
.venir__tags{display:flex;flex-wrap:wrap;gap:.5rem}
.venir__tags li{padding:.5rem .9rem;border:1px solid rgba(22,32,29,.25);border-radius:999px;font-size:.84rem}
.venir__map{position:relative;--gap:var(--creme);justify-self:center;width:min(100%,520px)}
.arch-frame--map{--gap:var(--creme)}
.map{aspect-ratio:3/4.3}
.map iframe{width:100%;height:100%;border:0;filter:sepia(.28) saturate(.85) contrast(1.05);transition:filter .6s}
.map:hover iframe{filter:none}
.venir__maplink{position:absolute;left:0;right:0;margin-inline:auto;width:max-content;max-width:94%;bottom:-1.6rem;white-space:nowrap;box-shadow:0 18px 40px -14px rgba(22,32,29,.5)}

/* =====================================================================
   12 · FAQ
   ===================================================================== */
.faq{background:var(--nuit);padding:clamp(6rem,10vw,10rem) var(--gut)}
.faq__inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(2rem,6vw,7rem);align-items:start}
.faq__head{position:sticky;top:calc(var(--nav-h) + 2rem)}
.faq__head h2{font-size:clamp(2.6rem,5.4vw,5.4rem)}
.qa{border-bottom:1px solid rgba(245,234,214,.15)}
.qa h3{font:inherit}
.qa button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem 0;text-align:left;font:500 clamp(1.2rem,2vw,1.7rem)/1.25 var(--f-display);transition:color .4s}
.qa button:hover{color:var(--ambre-2)}
.qa button i{position:relative;flex:none;width:1.4rem;height:1.4rem}
.qa button i::before,.qa button i::after{content:"";position:absolute;left:0;top:50%;width:100%;height:1.5px;background:currentColor;transition:transform .5s var(--ease)}
.qa button i::after{transform:rotate(90deg)}
.qa button[aria-expanded="true"] i::after{transform:rotate(0)}
.qa__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
.qa__a>div{overflow:hidden}
.qa__a p{padding:0 0 1.6rem;max-width:36rem;color:rgba(245,234,214,.8)}
.qa button[aria-expanded="true"]+.qa__a,.qa.is-open .qa__a{grid-template-rows:1fr}
.recrute{position:relative;grid-column:2;margin-top:2.4rem;padding:1.8rem 1.8rem 1.8rem 2rem;border:1px dashed rgba(233,196,106,.6);border-radius:8px;background:linear-gradient(120deg,rgba(233,196,106,.08),transparent)}
.recrute__tag{position:absolute;left:1.4rem;top:-.8rem;padding:.35rem .9rem;background:var(--or);color:var(--encre);font:600 .7rem/1 var(--f-body);letter-spacing:.2em;text-transform:uppercase;border-radius:999px;transform:rotate(-2deg)}
.recrute p{color:rgba(245,234,214,.88)}
.recrute b{color:var(--ambre-2);font-weight:500}

/* =====================================================================
   FOOTER
   ===================================================================== */
.footer{position:relative;background:var(--nuit-2);padding:clamp(5rem,9vw,9rem) var(--gut) 1.6rem;overflow:hidden;border-top:1px solid rgba(233,196,106,.2)}
.footer__top{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.footer__cta{font-size:clamp(2.6rem,6vw,6rem);margin-bottom:2rem}
.footer__cols{display:grid;grid-template-columns:repeat(3,auto);gap:2rem clamp(1.4rem,3vw,3.4rem);justify-content:start}
.footer__cols h3{font:500 .72rem/1 var(--f-body);letter-spacing:.26em;text-transform:uppercase;color:var(--ambre-2);margin-bottom:1rem}
.footer__cols p{color:rgba(245,234,214,.8);margin-bottom:.6rem;font-size:.98rem}
.social{display:grid;gap:.7rem}
.social a{display:inline-flex;align-items:center;gap:.7rem;transition:color .4s,transform .5s var(--ease)}
.social a:hover{color:var(--ambre-2);transform:translateX(5px)}
.footer__giant{display:flex;justify-content:center;gap:.18em;white-space:nowrap;margin:clamp(3rem,6vw,6rem) 0 0;font:italic 500 clamp(4rem,15.4vw,19rem)/.95 var(--f-display);letter-spacing:-.045em;color:transparent;-webkit-text-stroke:1px rgba(233,196,106,.5);user-select:none}
.footer__giant>span{display:inline-block;overflow:visible;padding:0 .02em .1em}
.footer__giant .fg-name{font-weight:600}
.footer__giant .sc{transition:color .5s,-webkit-text-stroke-color .5s}
.footer__giant .sc:hover{color:var(--ambre);-webkit-text-stroke-color:var(--ambre)}
.footer__bottom{max-width:1400px;margin:1.4rem auto 0;padding-top:1.4rem;border-top:1px solid rgba(245,234,214,.12);display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.86rem;color:rgba(245,234,214,.6)}
.footer__top-btn{display:grid;place-items:center;width:3.2rem;height:3.2rem;border-radius:50%;border:1px solid rgba(233,196,106,.5);color:var(--creme);transition:background .4s,color .4s}
.footer__top-btn:hover{background:var(--or);color:var(--encre);border-color:transparent}

/* Barre d'actions mobile */
.mbar{position:fixed;left:.8rem;right:.8rem;bottom:calc(.8rem + env(safe-area-inset-bottom));z-index:430;display:none;gap:.6rem;transform:translateY(160%);transition:transform .6s var(--ease)}
.mbar.is-on{transform:translateY(0)}
.mbar a{display:flex;align-items:center;justify-content:center;gap:.6rem;padding:1rem;border-radius:999px;font:600 .78rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;box-shadow:0 18px 40px -10px rgba(0,0,0,.7)}
.mbar__call{flex:0 0 auto;background:var(--nuit-2);border:1px solid rgba(233,196,106,.6);color:var(--creme);padding-inline:1.3rem}
.mbar__book{flex:1;background:var(--or);color:var(--encre)}

/* =====================================================================
   ÉTAT « STATIQUE » (mobile, tablette, mouvement réduit, sans JS)
   ===================================================================== */
.is-static .story__pin,.no-js .story__pin{height:auto;min-height:0;padding-top:clamp(5rem,12vw,7rem);padding-bottom:3rem}
.is-static .story__stage,.no-js .story__stage{display:block}
.is-static .story__visual,.is-static .story__numeral,.is-static .story__dots,.no-js .story__visual,.no-js .story__numeral,.no-js .story__dots{display:none}
.is-static .story__chapters,.no-js .story__chapters{margin:0;min-height:0;display:grid;gap:3.4rem}
.is-static .chapter,.no-js .chapter{grid-area:auto;opacity:1;visibility:visible;max-width:none;display:grid;gap:1rem}
.is-static .chapter__fig,.no-js .chapter__fig{display:block;width:min(78%,340px);aspect-ratio:3/4;overflow:hidden;border-radius:999px 999px 0 0;border:1px solid rgba(233,196,106,.6);padding:6px;background:var(--nuit);outline:1px solid rgba(233,196,106,.3);outline-offset:3px;margin-bottom:.8rem}
.is-static .chapter__fig img,.is-static .chapter__fig video,.no-js .chapter__fig img,.no-js .chapter__fig video{width:100%;height:100%;object-fit:cover;border-radius:999px 999px 0 0}
.is-static .carte__pin,.no-js .carte__pin{height:auto;padding:clamp(5rem,12vw,7rem) 0 clamp(3rem,6vw,4rem);display:block}
.is-static .carte__track,.no-js .carte__track{overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gut);padding:0 var(--gut) 2rem;align-items:stretch;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.is-static .carte__panel,.no-js .carte__panel{flex:0 0 min(86vw,420px);scroll-snap-align:start;align-self:center}
.is-static .mcard,.no-js .mcard{flex:0 0 min(86vw,410px);max-height:none;scroll-snap-align:center}
.is-static .carte__photo,.no-js .carte__photo{width:min(64vw,280px);scroll-snap-align:center;align-self:center}
.is-static .carte__photo .arch-frame,.no-js .carte__photo .arch-frame{height:min(60vh,440px)}
.is-static .cave__visual{display:none}

@media (max-width:1100px){
  .galerie__grid{columns:3}
  .chiffres__list{grid-template-columns:repeat(2,1fr);row-gap:2.4rem}
  .footer__cols{grid-template-columns:repeat(2,auto)}
}
@media (max-width:959px){
  .nav__links,.nav__cta{display:none}
  .nav__burger{display:block}
  .hero__badge{bottom:auto;top:calc(var(--nav-h) + 4.6rem);right:var(--gut);width:96px}
  .hero__status{right:auto;left:var(--gut);top:calc(var(--nav-h) + .8rem)}
  .hero__badge-core{font-size:1.6rem}
  .hero__badge-ring text{font-size:12.6px}
  .manifeste__inner,.cave__inner,.avis__inner,.resa__inner,.venir__inner,.faq__inner,.footer__top{grid-template-columns:1fr}
  .manifeste__fig{order:-1;width:min(78%,380px)}
  .manifeste__lemon{left:-8%}
  .faq__head{position:static}
  .recrute{grid-column:1}
  .cave__visual{position:relative;top:0;height:auto;width:min(80%,360px)}
  .venir__map{margin-bottom:1.6rem}
  .mbar{display:flex}
  .progress{display:none}
  .story__title{font-size:clamp(2.2rem,9vw,3.4rem)}
  .footer__bottom{flex-wrap:wrap}
}
@media (max-width:640px){
  body{font-size:1rem}
  .eyebrow{letter-spacing:.2em;font-size:.7rem}
  .galerie__grid{columns:2}
  .grid2{grid-template-columns:1fr}
  .chiffres__inner{border-radius:200px 200px 14px 14px/200px 200px 14px 14px}
  .hero__lead{font-size:1rem}
  .footer__cols{grid-template-columns:1fr}
  .cal__day{font-size:.92rem}
  .stepper output{min-width:7rem;font-size:1.2rem}
  .rows li{gap:.5rem}
  .tabs button{padding:.7rem 1rem}
  .wizard__nav .btn{width:100%}
  .wizard__steps{flex-wrap:nowrap;gap:.3rem .7rem}
  .wizard__steps li{font-size:.6rem;letter-spacing:.08em;gap:.4rem}
  .wizard__steps li span{width:1.5rem;height:1.5rem}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .loader{display:none}
  [data-parallax-img]{transform:none}
  .g__btn img{transform:none}
}
