/* ==========================================================
   LE COFFEE DE FRANCE — Estaminet, bar & salon de thé
   Direction artistique : l’ardoise, le kraft et la dorure.
   Fil rouge : le cercle (assiette, sceau, enseigne) + l’auvent à festons.
   ========================================================== */

:root{
  /* Palette & rôles */
  --ink:#0e0d0b;        /* fond ardoise noire */
  --slate:#17150f;      /* surfaces sombres */
  --slate-2:#211e17;    /* cartes */
  --chalk:#f4ecd9;      /* texte, craie */
  --chalk-dim:#cfc5ac;  /* texte secondaire */
  --kraft:#d8b784;      /* papier kraft */
  --paper:#ecdfc3;      /* papier clair */
  --gold:#d4a24c;       /* accent : dorure d’enseigne */
  --gold-hi:#f2cd85;    /* survol / lueur */
  --hemp:#6ea044;       /* vert chanvre (coin CBD) */
  --brick:#a8382a;      /* rouge brique : prix, tampons */
  --wine:#4a1712;       /* bordeaux : Verre Gourmand */
  --wood:#6d4a2a;

  --f-display:'Rozha One','Playfair Display',Georgia,'Times New Roman',serif;
  --f-hand:'Caveat Brush','Segoe Script','Bradley Hand',cursive;
  --f-body:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;

  --ease:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.76,0,.24,1);
  --gutter:clamp(1.1rem,4vw,4rem);

  --noise: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='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --noise-ink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .2  0 0 0 0 .13  0 0 0 0 .05  0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:4.5rem}
html.is-loading{overflow:hidden}
body{margin:0;background:var(--ink);color:var(--chalk);font-family:var(--f-body);font-size:clamp(1rem,.96rem + .2vw,1.125rem);line-height:1.65;overflow-x:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img,svg,video{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,blockquote,address,dl,dd{margin:0}
address{font-style:normal}
[hidden]{display:none!important}
table{border-collapse:collapse;width:100%}
:focus-visible{outline:2px solid var(--gold-hi);outline-offset:3px;border-radius:4px}
::selection{background:var(--gold);color:var(--ink)}

/* Lenis */
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}

.sr{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:1100;background:var(--gold);color:var(--ink);padding:.7rem 1.1rem;border-radius:.6rem;font-weight:700;transition:top .25s var(--ease)}
.skip:focus{top:1rem}
.wrap{width:min(100% - 2*var(--gutter),1440px);margin-inline:auto}

/* ---------- Typo commune ---------- */
.kicker{display:inline-block;font-family:var(--f-hand);font-size:clamp(1.35rem,1.1rem + 1vw,2.1rem);line-height:1.1;color:var(--gold);transform:rotate(-1.5deg);margin-bottom:.5rem}
.kicker--gold{color:var(--gold-hi)}
.kicker--ink{color:var(--brick)}
.kicker--hemp{color:#a5d977}
.h2{font-family:var(--f-display);font-weight:400;font-size:clamp(2.4rem,1rem + 5.6vw,6.6rem);line-height:.96;letter-spacing:-.01em;text-wrap:balance}
.h2--ink{color:var(--ink)}
.lead{max-width:38em;font-size:clamp(1.05rem,1rem + .35vw,1.3rem);color:var(--chalk-dim)}
.lead--ink{color:rgba(14,13,11,.82)}
#t-carte{font-size:clamp(4.2rem,1.5rem + 13vw,13rem);line-height:.88}
#t-resa{font-size:clamp(3.4rem,1rem + 6.4vw,7.4rem);line-height:.9}

/* Soulignement animé */
.ulink{position:relative;display:inline-block;padding-block:.12em}
.ulink::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .55s var(--ease)}
.ulink:hover::after,.ulink:focus-visible::after{transform:scaleX(1);transform-origin:left}
.ulink--gold{color:var(--gold-hi)}
.hero__tel::after{transform:scaleX(1)}
.hero__tel:hover::after{transform:scaleX(0);transform-origin:right}

/* ---------- Boutons (magnétiques + remplissage) ---------- */
.btn{--fill:var(--chalk);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:1.05rem 1.9rem;border-radius:999px;overflow:hidden;isolation:isolate;font-weight:700;letter-spacing:.09em;text-transform:uppercase;font-size:.8rem;line-height:1.2;text-align:center;will-change:transform;transition:color .5s var(--ease),box-shadow .5s var(--ease)}
.btn__label{position:relative;z-index:1}
.btn__fill{position:absolute;z-index:0;left:var(--x,50%);top:var(--y,100%);width:calc(var(--w,300) * 2.6px);aspect-ratio:1;margin:calc(var(--w,300) * -1.3px) 0 0 calc(var(--w,300) * -1.3px);border-radius:50%;background:var(--fill);transform:scale(0);transition:transform .75s var(--ease);pointer-events:none}
.btn:hover .btn__fill,.btn:focus-visible .btn__fill{transform:scale(1)}
.btn--gold{background:var(--gold);color:var(--ink);box-shadow:0 10px 30px -10px rgba(212,162,76,.55)}
.btn--ghost{border:1px solid rgba(244,236,217,.5);color:var(--chalk)}
.btn--ghost:hover,.btn--ghost:focus-visible{color:var(--ink)}
.btn--ghost-ink{border:1px solid rgba(14,13,11,.35);color:var(--ink);--fill:var(--ink)}
.btn--ghost-ink:hover,.btn--ghost-ink:focus-visible{color:var(--chalk)}
.btn--hemp{background:var(--hemp);color:var(--ink)}
.btn--small{padding:.72rem 1.25rem;font-size:.72rem}
.btn--block{display:flex;width:100%}
.btn i{font-style:normal}

/* ---------- Préchargeur : l’auvent s’ouvre ---------- */
.loader{position:fixed;inset:0;z-index:1000;pointer-events:none}
.loader__panel{position:absolute;inset:0;will-change:transform}
.loader__panel::after{content:"";position:absolute;left:0;right:0;top:calc(100% - 1px);height:16px;background:radial-gradient(circle at 16px 0,var(--pc) 15.5px,transparent 16px) 0 0/32px 16px repeat-x}
.loader__panel--gold{--pc:var(--gold);background:var(--gold)}
.loader__panel--ink{--pc:var(--ink);background:var(--ink);display:grid;place-items:center}
.loader__center{display:grid;justify-items:center;gap:.9rem;text-align:center}
.loader__ring{overflow:visible}
.loader__ring-fg{stroke-dasharray:100;stroke-dashoffset:100}
.loader__cf{font-family:var(--f-display);font-size:34px;fill:var(--gold)}
.loader__name{font-family:var(--f-display);font-size:clamp(1.3rem,3vw,1.9rem);letter-spacing:.04em}
.loader__count{font-size:.8rem;letter-spacing:.3em;color:var(--gold);font-variant-numeric:tabular-nums}
html:not(.js) .loader{display:none}

/* ---------- Barre de progression, grain, curseur ---------- */
.progress{position:fixed;inset:0 0 auto 0;height:3px;z-index:300;pointer-events:none}
.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-hi));transform-origin:left;transform:scaleX(0)}
.grain{position:fixed;inset:-50%;width:200%;height:200%;z-index:250;pointer-events:none;background:var(--noise);opacity:.05;animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}
.cursor{position:fixed;left:0;top:0;width:46px;height:46px;margin:-23px 0 0 -23px;border:1px solid var(--gold);border-radius:50%;pointer-events:none;z-index:900;opacity:0;transition:opacity .4s}
.cursor span{display:block;width:100%;height:100%;border-radius:50%;background:var(--gold);opacity:.0;transform:scale(.2);transition:transform .45s var(--ease),opacity .45s}
.cursor.is-on{opacity:1}
.cursor.is-hover span{opacity:.22;transform:scale(1)}
@media (hover:none),(pointer:coarse){.cursor{display:none}}

/* ---------- Navigation ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:200;display:flex;align-items:center;justify-content:space-between;gap:1.2rem;padding:.8rem var(--gutter);transition:transform .7s var(--ease),background .5s,backdrop-filter .5s}
.nav.is-solid{background:rgba(14,13,11,.8);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.nav.is-hidden{transform:translateY(-110%)}
.nav__brand{display:flex;align-items:center;gap:.75rem;flex:none}
.nav__name{font-family:var(--f-display);font-size:1.02rem;line-height:1;letter-spacing:.02em}
.nav__links{display:flex;gap:clamp(.9rem,1.8vw,2rem);font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;font-weight:500}
.burger{display:none;width:46px;height:46px;position:relative;border:1px solid rgba(244,236,217,.35);border-radius:50%;flex:none}
.burger span{position:absolute;left:13px;right:13px;height:1.5px;background:var(--chalk);transition:transform .5s var(--ease)}
.burger span:first-child{top:19px}.burger span:last-child{top:26px}
.burger[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
@media (max-width:1100px){.nav__links{display:none}.burger{display:block}.nav{justify-content:flex-start}.nav .btn{margin-left:auto}}
@media (max-width:480px){.nav .btn{display:none}.burger{margin-left:auto}}

.menu{position:fixed;inset:0;z-index:190;background:var(--ink);display:flex;flex-direction:column;justify-content:space-between;padding:6.5rem var(--gutter) 2rem;transform:translateY(-102%);transition:transform 1s var(--ease-io);visibility:hidden}
.menu::after{content:"";position:absolute;left:0;right:0;top:calc(100% - 1px);height:16px;background:radial-gradient(circle at 16px 0,var(--ink) 15.5px,transparent 16px) 0 0/32px 16px repeat-x}
.menu.is-open{transform:none;visibility:visible}
.menu__nav{display:grid;gap:.2rem}
.menu__nav a{display:flex;align-items:baseline;gap:1rem;font-family:var(--f-display);font-size:clamp(2.1rem,9vw,4rem);line-height:1.15;opacity:0;transform:translateY(40px);transition:opacity .7s var(--ease),transform .9s var(--ease)}
.menu__nav a i{font-style:normal;font-family:var(--f-body);font-size:.8rem;letter-spacing:.2em;color:var(--gold)}
.menu.is-open .menu__nav a{opacity:1;transform:none;transition-delay:calc(.25s + var(--i,0) * 55ms)}
.menu__cta{color:var(--gold)}
.menu__foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.8rem;color:var(--chalk-dim);font-size:.95rem}
.menu__foot a{color:var(--gold);font-weight:700}

/* ---------- Festons d’auvent (séparateurs) ---------- */
.sc{--c:var(--ink);position:absolute;left:0;right:0;top:calc(100% - 1px);height:15px;z-index:6;pointer-events:none;background:radial-gradient(circle at 15px 0,var(--c) 14.5px,transparent 15px) 0 0/30px 15px repeat-x}
.sc--ink,.sc--ink-b{--c:var(--ink)}
.sc--kraft{--c:var(--kraft)}
.sc--slate{--c:var(--slate)}
.sc--paper{--c:var(--paper)}
.sc--wine{--c:var(--wine)}
.sc--gold{--c:var(--gold)}
/* Dents de feuille de chanvre */
.saw{position:absolute;left:0;right:0;height:18px;z-index:6;pointer-events:none;background-repeat:repeat-x;background-size:36px 18px}
.saw--top{top:-1px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='18'%3E%3Cpath d='M0 0H36L18 18Z' fill='%230e0d0b'/%3E%3C/svg%3E")}
.saw--bottom{top:-1px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='18'%3E%3Cpath d='M0 0H36L18 18Z' fill='%230b1a10'/%3E%3C/svg%3E")}

/* ---------- Reveals ---------- */
.js [data-reveal]{opacity:0;transform:translateY(34px)}
.js [data-reveal].in{opacity:1;transform:none;transition:opacity 1s var(--ease) var(--d,0s),transform 1.25s var(--ease) var(--d,0s)}
.js [data-split]{visibility:hidden}
.js [data-split].is-split{visibility:visible}
.w{display:inline-block;white-space:nowrap;overflow:hidden;vertical-align:top;padding:.14em 0 .18em;margin:-.14em 0 -.18em}
.c{display:inline-block}
.js .is-split .c{transform:translateY(118%)}
.js .is-split.in .c{transform:none;transition:transform 1.15s var(--ease) calc(var(--i,0) * 22ms + var(--d,0s))}
.js .is-split.by-words.in .c{transition-delay:calc(var(--i,0) * 70ms + var(--d,0s))}
.gsap-failed [data-reveal],.gsap-failed [data-split],.gsap-failed .is-split .c{opacity:1!important;transform:none!important;visibility:visible!important}

/* ================= HERO ================= */
.hero{position:relative;height:100vh;height:100svh;min-height:620px;background:var(--ink)}
.hero__clip{position:absolute;inset:0;overflow:hidden}
.hero__media{position:absolute;inset:-6% 0;will-change:transform}
.hero__poster,.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__video{opacity:0;transition:opacity 1.2s ease}
.hero__video.is-ready{opacity:1}
.hero__shade{position:absolute;inset:0;background:radial-gradient(120% 90% at 55% 35%,transparent 25%,rgba(14,13,11,.72) 100%),linear-gradient(180deg,rgba(14,13,11,.62) 0%,rgba(14,13,11,.08) 32%,rgba(14,13,11,.55) 70%,rgba(14,13,11,.94) 100%)}
.hero__embers{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.ember{position:absolute;bottom:-12px;left:var(--x);width:var(--s);height:var(--s);border-radius:50%;background:radial-gradient(circle,#ffe2a6 0%,#ff9a3a 45%,transparent 70%);opacity:0;animation:ember var(--t) linear var(--dl) infinite}
@keyframes ember{0%{transform:translate3d(0,0,0) scale(1);opacity:0}10%{opacity:.95}100%{transform:translate3d(var(--dx),-88vh,0) scale(.3);opacity:0}}
.hero__content{position:absolute;z-index:4;left:var(--gutter);right:var(--gutter);bottom:clamp(5.2rem,13vh,8.5rem);max-width:1280px;will-change:transform}
.hero__eyebrow{display:flex;align-items:center;gap:.7rem;font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-hi);margin-bottom:1rem}
.hero__dot{width:2.2rem;height:1px;background:var(--gold)}
.hero__title{font-family:var(--f-display);font-weight:400;font-size:clamp(3.7rem,1rem + 11.2vw,13.5rem);line-height:.88;letter-spacing:-.015em;margin:0 0 1.2rem -.04em}
.hero__title .line{display:block}
.hero__title .line--gold{color:var(--gold);padding-left:clamp(0rem,6vw,7rem)}
.hero__tag{font-family:var(--f-hand);font-size:clamp(1.5rem,1.1rem + 1.5vw,2.6rem);line-height:1.1;color:var(--chalk);margin-bottom:.8rem}
.hero__tag span{color:#a5d977}
.hero__lead{max-width:36em;color:rgba(244,236,217,.86);font-size:clamp(1rem,.95rem + .3vw,1.2rem);margin-bottom:1.6rem}
.hero__cta{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 1.2rem}
.hero__tel{font-family:var(--f-display);font-size:1.4rem;margin-left:.4rem}
.js [data-hero="fade"]{opacity:0;transform:translateY(26px)}
.js .hero.in [data-hero="fade"]{opacity:1;transform:none;transition:opacity 1.2s var(--ease) var(--d,.5s),transform 1.4s var(--ease) var(--d,.5s)}
.hero__status{position:absolute;z-index:5;left:var(--gutter);bottom:clamp(1.3rem,3vw,2.2rem);display:flex;align-items:center;gap:.7rem;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--chalk)}
.status__light{position:relative;width:.62rem;height:.62rem;border-radius:50%;background:#8a8678}
.status__light::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid currentColor;opacity:0}
.hero__status.is-open .status__light{background:#7fd37f;color:#7fd37f}
.hero__status.is-open .status__light::after{animation:pulse 2.2s ease-out infinite}
@keyframes pulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.2);opacity:0}}
.hero__seal{position:absolute;z-index:5;right:var(--gutter);bottom:clamp(1.3rem,4vw,3rem);width:clamp(104px,12vw,172px);color:var(--gold);will-change:transform}
.seal{width:100%;animation:spin 38s linear infinite}
.seal__text{font-family:var(--f-body);font-weight:700;font-size:13.5px;fill:currentColor;letter-spacing:.06em}
@keyframes spin{to{transform:rotate(360deg)}}
.hero__scroll{position:absolute;z-index:5;left:50%;bottom:1.2rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:var(--chalk-dim);translate:-50% 0}
.hero__scroll i{display:block;width:1px;height:34px;background:linear-gradient(var(--gold),transparent);transform-origin:top;animation:cue 2.2s var(--ease-io) infinite}
@keyframes cue{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
@media (max-width:900px){.hero__scroll{display:none}.hero__seal{bottom:auto;top:5.6rem;width:92px}.hero__status{bottom:5.2rem}.hero__content{bottom:7.8rem}}

/* ================= MARQUEE ================= */
.marquee{position:relative;background:var(--kraft);background-image:var(--noise-ink);color:var(--ink);padding:clamp(1.4rem,3vw,2.6rem) 0 clamp(2.2rem,4vw,3.4rem)}
.marquee__row{overflow:hidden;white-space:nowrap;line-height:1}
.marquee__row + .marquee__row{margin-top:.2rem}
.marquee__track{display:inline-flex;will-change:transform}
.mq{display:inline-flex;align-items:center;font-family:var(--f-display);font-size:clamp(2.6rem,1rem + 6.6vw,6.8rem);padding:.08em 0 .14em;text-transform:uppercase}
.mq svg{width:.62em;height:.62em;margin:0 .5em;color:var(--brick)}
.marquee__row--out .mq{color:transparent;-webkit-text-stroke:1.5px var(--ink)}
.marquee__row--out .mq svg{color:var(--ink)}

/* ================= HISTOIRE ================= */
.story{position:relative;background:var(--ink);padding:clamp(5rem,11vw,10rem) 0 clamp(4rem,8vw,8rem)}
.story__head{display:grid;gap:1.1rem;margin-bottom:clamp(2.5rem,6vw,5rem)}
.story__head .h2{max-width:14em}
.story__stage{position:relative;width:min(100% - 2*var(--gutter),1440px);margin-inline:auto}
.story__steps{display:grid;gap:clamp(4rem,10vw,7rem)}
.story__step{display:grid;gap:.7rem;align-content:start}
.step__time{font-family:var(--f-display);font-size:clamp(5.5rem,24vw,9.5rem);line-height:.85;color:var(--gold)}
.step__title{font-family:var(--f-display);font-weight:400;font-size:clamp(2rem,1.2rem + 3vw,3.6rem);line-height:1}
.step__text{max-width:30em;color:var(--chalk-dim)}
.step__note{font-family:var(--f-hand);font-size:1.5rem;color:var(--gold-hi)}
.step__media{position:relative;width:min(80vw,380px);aspect-ratio:1;margin-top:1.2rem}
.step__disc{position:absolute;inset:0;border-radius:50%;overflow:hidden;box-shadow:0 30px 60px -20px rgba(0,0,0,.7)}
.step__disc img{width:100%;height:100%;object-fit:cover}
.step__media::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:1.5px dashed rgba(212,162,76,.6);animation:spin 50s linear infinite}
.story__rail,.story__bar{display:none}
/* mode épinglé (desktop) */
.story.is-pinned .story__head{margin-bottom:0}
.story.is-pinned .story__stage{width:100%;height:100vh;height:100svh;display:block}
.story.is-pinned .story__steps{position:absolute;inset:0;display:block}
.story.is-pinned .story__step{position:absolute;inset:0;width:min(100% - 2*var(--gutter),1440px);margin-inline:auto;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);grid-template-rows:auto auto auto auto;grid-template-areas:"time media" "title media" "text media" "note media";align-content:center;column-gap:clamp(2rem,6vw,7rem);row-gap:.7rem}
.story.is-pinned .step__time{grid-area:time;font-size:clamp(7rem,19vw,17rem);margin-bottom:.4rem}
.story.is-pinned .step__title{grid-area:title}
.story.is-pinned .step__text{grid-area:text}
.story.is-pinned .step__note{grid-area:note}
.story.is-pinned .step__media{grid-area:media;align-self:center;justify-self:center;width:min(40vw,66vh);margin:0}
.story.is-pinned .story__rail{display:block;position:absolute;left:calc(var(--gutter) * .5);top:22%;bottom:22%;width:2px;background:rgba(244,236,217,.12);z-index:3}
.story.is-pinned .story__bar{display:block;position:absolute;inset:0;background:var(--gold);transform-origin:top;transform:scaleY(0)}

/* ================= L’ARDOISE ================= */
.carte{position:relative;background:var(--slate);background-image:radial-gradient(80% 60% at 20% 0%,rgba(212,162,76,.08),transparent 70%);padding:clamp(4.5rem,9vw,8rem) 0 clamp(5rem,9vw,8rem)}
.carte__head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem 3rem;flex-wrap:wrap;margin-bottom:clamp(1.5rem,3vw,3rem)}
.h2--chalk{color:var(--chalk);text-shadow:0 0 18px rgba(244,236,217,.12)}
.carte__intro{max-width:30em;color:var(--chalk-dim)}
.carte__viewport{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;padding:2rem var(--gutter) 2.2rem;scrollbar-width:thin;scrollbar-color:var(--gold) transparent;-webkit-overflow-scrolling:touch}
.carte__track{display:flex;gap:clamp(1.2rem,2.2vw,2.2rem);width:max-content;align-items:stretch}
.ticket{flex:0 0 clamp(270px,78vw,372px);scroll-snap-align:start;position:relative}
.ticket__board{position:relative;height:100%;display:flex;flex-direction:column;gap:.55rem;padding:1.1rem 1.15rem 1.5rem;background:var(--noise),#1a1915;background-blend-mode:soft-light;border:11px solid var(--wood);border-radius:10px;box-shadow:0 0 0 1px #2f1f0e,inset 0 0 50px rgba(0,0,0,.65),0 26px 50px -18px rgba(0,0,0,.7)}
.ticket__media{position:relative;aspect-ratio:4/3;border-radius:4px;overflow:hidden;background:#11100d;display:grid;place-items:center}
.ticket__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.ticket:hover .ticket__media img{transform:scale(1.07)}
.ticket__tag{position:absolute;left:.55rem;bottom:.55rem;z-index:2;padding:.18rem .6rem;border-radius:999px;background:rgba(14,13,11,.78);color:var(--chalk-dim);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;line-height:1.4}
.ticket__kick{font-family:var(--f-hand);font-size:1.55rem;line-height:1;color:var(--gold);margin-top:.5rem}
.ticket__title{font-family:var(--f-display);font-weight:400;font-size:clamp(1.45rem,1.2rem + .7vw,1.85rem);line-height:1.05;padding-right:3.6rem}
.ticket__desc{font-size:.95rem;color:var(--chalk-dim);line-height:1.55}
.stamp{position:absolute;top:-1.5rem;right:-.8rem;z-index:3;width:5.3rem;height:5.3rem;border-radius:50%;display:grid;place-content:center;text-align:center;background:var(--brick);color:var(--chalk);box-shadow:0 0 0 3px var(--slate),0 0 0 4.5px var(--gold),0 14px 24px -6px rgba(0,0,0,.6);transform:rotate(12deg) scale(0)}
.stamp b{font-family:var(--f-display);font-weight:400;font-size:2.2rem;line-height:.9;display:block}
.stamp i{font-style:normal;font-size:1rem;line-height:1;display:block}
.stamp small{display:block;font-size:.55rem;letter-spacing:.06em}
.ticket.in .stamp{transform:rotate(12deg) scale(1);transition:transform .9s cubic-bezier(.34,1.56,.64,1) .45s}
.ticket--last .ticket__list{display:grid;margin:.3rem 0 auto}
.ticket--last .ticket__list li{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px dashed rgba(244,236,217,.22);font-size:.95rem}
.ticket--last .ticket__list b{font-weight:500;color:var(--gold-hi);text-align:right}
.ticket--last .btn{align-self:flex-start;margin-top:1.1rem}
.ticket--last .ticket__media{margin-bottom:.2rem}
.carte__hint{display:flex;align-items:center;gap:1rem;margin:0 var(--gutter);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--chalk-dim)}
.carte__line{position:relative;flex:1;max-width:260px;height:1px;background:rgba(244,236,217,.2);overflow:hidden}
.carte__line i{position:absolute;inset:0;background:var(--gold);transform-origin:left;transform:scaleX(0)}
.carte.is-pinned .carte__pin{height:100vh;height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding-top:3.5rem}
.carte.is-pinned{padding:0}
.carte.is-pinned #t-carte{font-size:clamp(3.4rem,13vh,9rem)}
.carte.is-pinned .carte__head{margin-bottom:0}
.carte.is-pinned .carte__viewport{overflow:visible;scroll-snap-type:none;padding-top:2.2rem;padding-bottom:1.5rem}
.carte.is-pinned .ticket{flex-basis:clamp(300px,25vw,380px)}
.carte.is-pinned .ticket__media{aspect-ratio:auto;height:clamp(120px,22vh,230px)}

/* ================= CHIFFRES ================= */
.stats{position:relative;background:var(--paper);background-image:var(--noise-ink);color:var(--ink);padding:clamp(4.5rem,9vw,8rem) 0 clamp(5rem,9vw,8rem)}
.stats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.5rem,3vw,3rem)}
.stat{display:grid;grid-template-rows:auto auto;justify-items:center;align-items:center;text-align:center;gap:1rem}
.stat__ring,.stat__num{grid-area:1/1}
.stat__ring{width:min(100%,230px);height:auto}
.stat__arc{stroke-dasharray:100;stroke-dashoffset:100}
.stat.in .stat__arc{stroke-dashoffset:0;transition:stroke-dashoffset 2.4s var(--ease) .2s}
.stat__num{font-family:var(--f-display);font-size:clamp(3rem,2rem + 3.5vw,5rem);line-height:1;font-variant-numeric:tabular-nums}
.stat__num small{font-size:.38em;margin-left:.12em;color:var(--brick)}
.stat__label{grid-row:2;max-width:15em;font-size:.95rem;line-height:1.4}
@media (max-width:900px){.stats__grid{grid-template-columns:repeat(2,1fr);row-gap:2.6rem}}

/* ================= VERRE GOURMAND ================= */
.verre{position:relative;background:var(--wine);background-image:radial-gradient(60% 70% at 85% 30%,rgba(212,162,76,.22),transparent 70%),radial-gradient(50% 50% at 0% 100%,rgba(168,56,42,.35),transparent 70%);padding:clamp(5rem,10vw,9.5rem) 0 clamp(6rem,11vw,10rem)}
.floater{position:absolute;z-index:2;overflow:hidden;box-shadow:0 30px 60px -20px rgba(0,0,0,.65);border:4px solid var(--wine);will-change:transform}
.floater img{width:100%;height:100%;object-fit:cover}
.floater--a{left:-9%;bottom:-3%;width:30%;aspect-ratio:3/4;rotate:-8deg;border-radius:1rem}
.floater--b{right:-5%;top:-2%;width:23%;aspect-ratio:1;rotate:8deg;border-radius:50%}
.verre__grid{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.verre__text{display:grid;gap:1.3rem;justify-items:start}
.verre__price{font-size:1.1rem;color:var(--chalk-dim)}
.verre__price span{display:block;font-family:var(--f-display);font-size:clamp(4.8rem,2rem + 12vw,11rem);line-height:.85;color:var(--gold)}
.verre__chips{display:flex;flex-wrap:wrap;gap:.6rem}
.verre__chips li{padding:.5rem 1.1rem;border:1px solid rgba(242,205,133,.5);border-radius:999px;font-family:var(--f-hand);font-size:1.35rem;color:var(--gold-hi);line-height:1.1}
.verre__visual{position:relative;width:min(100%,560px);aspect-ratio:1;justify-self:center}
.verre__circle{position:absolute;inset:8%;border-radius:50%;overflow:hidden;box-shadow:0 40px 80px -20px rgba(0,0,0,.65);clip-path:circle(0% at 50% 50%)}
.verre__circle img{width:100%;height:100%;object-fit:cover;transform:scale(1.15)}
.verre__ring{position:absolute;inset:0;width:100%;height:100%;color:var(--gold);animation:spin 36s linear infinite reverse}
.seal__text--gold{fill:var(--gold-hi);font-size:12.6px}
.gsap-failed .verre__circle,.no-clip .verre__circle{clip-path:none}
@media (max-width:900px){.verre__grid{grid-template-columns:1fr}.verre__visual{width:min(78vw,420px)}.floater--b{display:none}.floater--a{left:-6%}}

/* ================= LIEUX & TRAITEUR ================= */
.lieux{position:relative;background:var(--ink);padding:clamp(5rem,10vw,9rem) 0 clamp(6rem,11vw,10rem)}
.lieux .h2{max-width:11em;margin-bottom:clamp(2rem,5vw,4rem)}
.lieux__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.2vw,2.2rem);perspective:1400px}
.card3d{position:relative;border-radius:1.3rem;transform-style:preserve-3d;will-change:transform}
.card3d__inner{border-radius:1.3rem;overflow:hidden;background:var(--slate-2);border:1px solid rgba(244,236,217,.1);height:100%;display:flex;flex-direction:column;transform:translateZ(0)}
.card3d__img{aspect-ratio:4/4.4;overflow:hidden}
.card3d__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.card3d:hover .card3d__img img{transform:scale(1.07)}
.card3d__body{position:relative;display:grid;gap:.6rem;padding:1.6rem 1.5rem 1.8rem;align-content:start;flex:1}
.card3d__num{font-family:var(--f-hand);font-size:1.6rem;color:var(--gold);line-height:1}
.card3d__body h3{font-family:var(--f-display);font-weight:400;font-size:clamp(1.6rem,1.3rem + 1vw,2.2rem);line-height:1}
.card3d__body p{color:var(--chalk-dim);font-size:.98rem}
.card3d__body .ulink{justify-self:start;margin-top:.3rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem}
.glare{position:absolute;inset:0;border-radius:1.3rem;pointer-events:none;background:radial-gradient(circle at var(--gx,50%) var(--gy,30%),rgba(255,236,190,.28),transparent 52%);opacity:0;transition:opacity .4s}
.card3d.is-tilting .glare{opacity:1}
@media (max-width:900px){.lieux__grid{grid-template-columns:1fr;max-width:520px}}

/* ================= COIN CBD ================= */
.cbd{position:relative;background:#0b1a10;background-image:radial-gradient(70% 60% at 15% 20%,rgba(110,160,68,.18),transparent 70%),radial-gradient(50% 50% at 100% 100%,rgba(110,160,68,.1),transparent 70%);padding:clamp(6rem,11vw,10rem) 0 clamp(6rem,11vw,10rem)}
.cbd__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.cbd__visual{position:relative;padding-bottom:12%}
.px{display:block;position:relative;overflow:hidden;aspect-ratio:var(--ar,4/3)}
.px img{position:absolute;left:0;top:-9%;width:100%;height:118%;object-fit:cover;will-change:transform}
.cbd__img--big{--ar:4/5;border-radius:999px 999px 1.2rem 1.2rem;box-shadow:0 40px 80px -30px rgba(0,0,0,.7)}
.cbd__img--small{--ar:1/1.15;position:absolute;right:-6%;bottom:0;width:46%;border-radius:1rem;border:6px solid #0b1a10;box-shadow:0 20px 40px -10px rgba(0,0,0,.6)}
.cbd__leaf{position:absolute;left:-4%;top:4%;width:clamp(74px,9vw,120px);color:var(--hemp);animation:spin 60s linear infinite}
.cbd__text{display:grid;gap:1.2rem;justify-items:start}
.cbd__text .lead{color:#c9d6bb}
.ledger{width:100%;display:grid;gap:.1rem;margin-top:.5rem;columns:2;column-gap:2.4rem;display:block}
.ledger li{display:flex;align-items:baseline;gap:.5rem;padding:.38rem 0;break-inside:avoid;font-size:.96rem}
.ledger li i{flex:1;min-width:.6rem;border-bottom:2px dotted rgba(165,217,119,.4);transform:translateY(-.25em)}
.ledger li b{font-weight:700;color:#a5d977;white-space:nowrap}
.cbd__note{font-size:.84rem;color:#9fb08f;max-width:46em}
@media (max-width:1000px){.ledger{columns:1}}
@media (max-width:900px){.cbd__grid{grid-template-columns:1fr}.cbd__visual{max-width:460px;margin-inline:auto;width:100%}}

/* ================= GALERIE ================= */
.galerie{position:relative;background:var(--ink);padding:clamp(6rem,11vw,10rem) 0 clamp(6rem,11vw,10rem)}
.galerie .h2{margin-bottom:clamp(2rem,5vw,4rem)}
.gal{columns:3;column-gap:clamp(.7rem,1.6vw,1.5rem)}
.gal__item{position:relative;break-inside:avoid;margin:0 0 clamp(.7rem,1.6vw,1.5rem);border-radius:.9rem;overflow:hidden;transform-style:preserve-3d;will-change:transform;perspective:900px}
.gal__btn{display:block;width:100%;cursor:zoom-in;border-radius:.9rem;overflow:hidden}
.gal__item .px{border-radius:.9rem}
.g1{--ar:3/4}.g2{--ar:3/4}.g3{--ar:9/16}.g4{--ar:4/3}.g5{--ar:3/4}.g6{--ar:4/5}.g7{--ar:4/3}.g8{--ar:3/4}.g9{--ar:3/4}.g10{--ar:4/3}
.gal__item figcaption{position:absolute;inset:auto 0 0 0;padding:2.4rem 1rem 1rem;background:linear-gradient(transparent,rgba(14,13,11,.88));font-family:var(--f-hand);font-size:1.4rem;line-height:1.1;transform:translateY(101%);transition:transform .65s var(--ease);pointer-events:none;z-index:3}
.gal__item:hover figcaption,.gal__item:focus-within figcaption{transform:none}
.js .curtain::after{content:"";position:absolute;inset:0;background:var(--gold);transform-origin:top;z-index:4;pointer-events:none}
.js .curtain.in::after{transform:scaleY(0);transition:transform 1.4s var(--ease) var(--d,0s)}
.js .curtain .gal__btn{transform:scale(1.14)}
.js .curtain.in .gal__btn{transform:none;transition:transform 1.9s var(--ease) var(--d,0s)}
@media (max-width:900px){.gal{columns:2}}
@media (hover:none){.gal__item figcaption{transform:none;font-size:1.15rem;padding-top:1.6rem}}

/* ================= AVIS ================= */
.avis{position:relative;background:var(--kraft);background-image:var(--noise-ink);color:var(--ink);padding:clamp(5rem,9vw,8rem) 0 clamp(6rem,10vw,9rem)}
.avis__top{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:2rem;margin-bottom:clamp(2rem,4vw,3.5rem)}
.avis__top .h2{max-width:9em}
.avis__score{display:grid;gap:.15rem;justify-items:start}
.avis__big{font-family:var(--f-display);font-size:clamp(3.4rem,2rem + 4vw,6rem);line-height:.9}
.avis__big span{display:block;font-family:var(--f-body);font-size:1.3rem;letter-spacing:.15em;color:var(--brick);margin-top:.3rem}
.avis__viewport{overflow-x:auto;scroll-snap-type:x mandatory;padding:1.2rem var(--gutter) 2rem;scrollbar-width:none;cursor:grab}
.avis__viewport::-webkit-scrollbar{display:none}
.avis__viewport.is-drag{cursor:grabbing;scroll-snap-type:none}
.avis__track{display:flex;gap:clamp(1rem,2vw,1.8rem);width:max-content}
.rev{position:relative;flex:0 0 clamp(280px,80vw,410px);scroll-snap-align:start;display:flex;flex-direction:column;gap:1rem;justify-content:space-between;padding:2rem 1.8rem 1.6rem;background:#f6ecd6;border-radius:.6rem;box-shadow:0 22px 40px -22px rgba(40,24,6,.55);transition:transform .6s var(--ease)}
.rev:nth-child(odd){rotate:-1.2deg}.rev:nth-child(even){rotate:1deg;margin-top:1.2rem}
.rev:hover{transform:translateY(-8px)}
.rev::before{content:"“";position:absolute;top:.2rem;right:1.2rem;font-family:var(--f-display);font-size:6rem;line-height:1;color:rgba(168,56,42,.22)}
.rev__stars{color:var(--brick);letter-spacing:.15em;font-size:1.1rem}
.rev blockquote p{font-size:1.02rem;line-height:1.6}
.rev footer{display:flex;flex-direction:column;font-size:.84rem;color:rgba(14,13,11,.7)}
.rev footer strong{color:var(--ink);font-size:.95rem}
.avis__ctrl{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.avis__btn{width:3.2rem;height:3.2rem;border-radius:50%;border:1.5px solid var(--ink);font-size:1.3rem;display:grid;place-items:center;transition:background .4s var(--ease),color .4s var(--ease),transform .4s var(--ease)}
.avis__btn:hover,.avis__btn:focus-visible{background:var(--ink);color:var(--kraft)}
.avis__btn:active{transform:scale(.92)}
.avis__src{margin-left:.6rem;font-size:.8rem;color:rgba(14,13,11,.7);max-width:34em}

/* ================= RÉSERVATION ================= */
.resa{position:relative;background:var(--gold);background-image:var(--noise-ink);color:var(--ink);padding:clamp(5rem,9vw,8rem) 0 clamp(6rem,10vw,9rem);overflow:visible}
.resa__bgring{position:absolute;left:-14vw;top:8%;width:46vw;aspect-ratio:1;border-radius:50%;border:1.5px solid rgba(14,13,11,.22);pointer-events:none}
.resa__bgring::after{content:"";position:absolute;inset:6%;border-radius:50%;border:1.5px dashed rgba(14,13,11,.22)}
.resa__grid{position:relative;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.resa__text{display:grid;gap:1.3rem;justify-items:start;position:sticky;top:6rem}
.resa__phone{display:grid;gap:.1rem;padding:1.2rem 1.4rem;border:1.5px solid var(--ink);border-radius:1rem;font-size:.95rem}
.resa__tel{font-family:var(--f-display);font-size:clamp(2rem,1.4rem + 2vw,3rem);line-height:1.1}
.resa__hours{font-size:.84rem;letter-spacing:.12em;text-transform:uppercase}
.resa__tip{font-family:var(--f-hand);font-size:1.4rem;line-height:1.2;color:var(--brick);max-width:22em}
.board__frame{position:relative;background:var(--noise),#1a1915;background-blend-mode:soft-light;color:var(--chalk);border:13px solid var(--wood);border-radius:12px;padding:clamp(1.1rem,3vw,2.2rem);box-shadow:0 0 0 1px #2a1b0b,inset 0 0 70px rgba(0,0,0,.6),0 40px 70px -26px rgba(14,13,11,.7)}
.rform{display:grid;gap:1.6rem}
.rmode{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;padding:.3rem;border:1px solid rgba(244,236,217,.25);border-radius:999px}
.rmode button{padding:.75rem .6rem;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;transition:background .4s var(--ease),color .4s var(--ease)}
.rmode button[aria-selected="true"]{background:var(--gold);color:var(--ink)}
.rf{border:0;margin:0;padding:0;min-width:0;display:grid;gap:.7rem}
.rf[hidden],[data-only][hidden]{display:none}
.rf legend{padding:0;margin-bottom:.1rem;font-family:var(--f-hand);font-size:1.6rem;color:var(--gold-hi);display:flex;align-items:center;gap:.6rem}
.rf legend i{font-style:normal;display:inline-grid;place-items:center;width:1.7rem;height:1.7rem;border:1.5px solid var(--gold);border-radius:50%;font-family:var(--f-body);font-size:.8rem;color:var(--gold)}
.rdates{display:flex;gap:.5rem;overflow-x:auto;padding:.2rem .1rem .6rem;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--gold) transparent}
.rdate{position:relative;flex:0 0 auto;scroll-snap-align:start}
.rdate input,.rslot input,.rzone input{position:absolute;opacity:0;pointer-events:none}
.rdate span{display:grid;justify-items:center;gap:.05rem;min-width:4.3rem;padding:.65rem .5rem;border:1px solid rgba(244,236,217,.28);border-radius:.8rem;cursor:pointer;transition:background .35s var(--ease),color .35s var(--ease),border-color .35s,transform .35s var(--ease)}
.rdate em{font-style:normal;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--chalk-dim)}
.rdate b{font-family:var(--f-display);font-weight:400;font-size:1.7rem;line-height:1}
.rdate small{font-size:.7rem;color:var(--chalk-dim)}
.rdate:hover span{border-color:var(--gold);transform:translateY(-2px)}
.rdate input:checked + span{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.rdate input:checked + span em,.rdate input:checked + span small{color:var(--ink)}
.rdate input:focus-visible + span,.rslot input:focus-visible + span,.rzone input:focus-visible + span{outline:2px solid var(--gold-hi);outline-offset:2px}
.rdate input:disabled + span{opacity:.32;cursor:not-allowed;text-decoration:line-through;transform:none}
.rdate.is-ondemand span{border-style:dashed}
.rhint{font-size:.82rem;color:var(--chalk-dim)}
.rslots{display:grid;gap:.9rem}
.rslots__group{display:grid;gap:.4rem}
.rslots__label{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--chalk-dim)}
.rslots__chips{display:flex;flex-wrap:wrap;gap:.4rem}
.rslot span,.rzone span{display:block;padding:.5rem .85rem;border:1px solid rgba(244,236,217,.28);border-radius:999px;font-size:.92rem;font-variant-numeric:tabular-nums;cursor:pointer;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s}
.rslot:hover span,.rzone label:hover span{border-color:var(--gold)}
.rslot input:checked + span,.rzone input:checked + span{background:var(--gold);color:var(--ink);border-color:var(--gold);font-weight:700}
.rslot input:disabled + span{opacity:.28;cursor:not-allowed;text-decoration:line-through}
.rstep{display:flex;align-items:center;gap:1rem}
.rstep__btn{width:3rem;height:3rem;border-radius:50%;border:1.5px solid var(--gold);color:var(--gold);font-size:1.5rem;line-height:1;display:grid;place-items:center;transition:background .3s var(--ease),color .3s var(--ease),transform .3s var(--ease)}
.rstep__btn:hover{background:var(--gold);color:var(--ink)}
.rstep__btn:active{transform:scale(.9)}
.rstep__btn:disabled{opacity:.3;pointer-events:none}
.rstep output{font-family:var(--f-display);font-size:2.6rem;min-width:2.2ch;text-align:center;line-height:1}
.rstep__lab{color:var(--chalk-dim)}
.rzone{display:flex;flex-wrap:wrap;gap:.4rem}
.rgrid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.rfield{display:grid;gap:.3rem;font-size:.82rem;letter-spacing:.04em}
.rfield > span{color:var(--chalk-dim)}
.rfield em{font-style:normal;opacity:.7}
.rfield input,.rfield textarea{width:100%;padding:.8rem .95rem;background:rgba(244,236,217,.06);border:1px solid rgba(244,236,217,.28);border-radius:.7rem;color:var(--chalk);font:inherit;font-size:1rem;letter-spacing:0;transition:border-color .3s,background .3s}
.rfield input:focus,.rfield textarea:focus{outline:none;border-color:var(--gold);background:rgba(244,236,217,.1)}
.rfield input[aria-invalid="true"],.rfield textarea[aria-invalid="true"]{border-color:#f08a7a}
.rfield textarea{resize:vertical;min-height:5.2rem}
.rerr{min-height:0;color:#f6a99c;font-size:.8rem}
.rfoot{font-size:.78rem;color:var(--chalk-dim);text-align:center}
@media (max-width:900px){.resa__grid{grid-template-columns:1fr}.resa__text{position:static}.rgrid{grid-template-columns:1fr}}

/* Ticket de caisse */
.receipt{display:grid;justify-items:center}
.receipt[hidden]{display:none}
.receipt__paper{position:relative;width:min(100%,430px);background:#f7efdc;color:var(--ink);padding:1.8rem 1.5rem 2.6rem;font-family:ui-monospace,'SFMono-Regular','Cascadia Mono','Courier New',monospace;box-shadow:0 20px 40px -10px rgba(0,0,0,.55);display:grid;gap:1rem;animation:print 1.1s var(--ease) both}
@keyframes print{from{transform:translateY(-34px) rotate(-2deg);opacity:0}to{transform:none;opacity:1}}
.receipt__top{text-align:center;font-family:var(--f-display);font-size:1.4rem;line-height:1.15}
.receipt__top small{font-family:ui-monospace,'Courier New',monospace;font-size:.72rem;letter-spacing:.06em}
.receipt__title{text-align:center;font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.88rem;padding:.6rem 0;border-block:1.5px dashed rgba(14,13,11,.5)}
.receipt__list{display:grid;gap:.5rem;font-size:.9rem}
.receipt__list div{display:flex;justify-content:space-between;gap:1rem}
.receipt__list dt{opacity:.65;text-transform:uppercase;font-size:.74rem;letter-spacing:.1em;padding-top:.15rem}
.receipt__list dd{text-align:right;font-weight:700;max-width:70%}
.receipt__status{font-size:.82rem;line-height:1.5;padding:.7rem .8rem;background:rgba(168,56,42,.1);border-left:3px solid var(--brick)}
.receipt__status.is-ok{background:rgba(110,160,68,.16);border-color:var(--hemp)}
.receipt__actions{display:grid;gap:.6rem;font-family:var(--f-body)}
.rlink{justify-self:center;font-family:var(--f-body);font-size:.84rem;text-decoration:underline;text-underline-offset:3px;padding:.3rem}
.receipt__tear{position:absolute;left:0;right:0;bottom:-10px;height:11px;background:linear-gradient(135deg,#f7efdc 50%,transparent 50%) 0 0/16px 11px repeat-x,linear-gradient(225deg,#f7efdc 50%,transparent 50%) 0 0/16px 11px repeat-x}

/* ================= ACCÈS ================= */
.acces{position:relative;background:var(--ink);padding:clamp(5.5rem,10vw,9rem) 0 clamp(5rem,9vw,8rem)}
.acces__grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.acces__info{display:grid;gap:1.3rem;justify-items:start}
.acces__addr{font-size:clamp(1.2rem,1rem + 1vw,1.7rem);line-height:1.35}
.acces__addr strong{font-family:var(--f-display);font-weight:400;color:var(--gold)}
.acces__btns{display:flex;flex-wrap:wrap;gap:.8rem}
.acces__h3{font-family:var(--f-hand);font-weight:400;font-size:2rem;color:var(--gold);margin-top:.6rem}
.hours{max-width:26rem}
.hours tr{border-bottom:1px dashed rgba(244,236,217,.2)}
.hours th,.hours td{padding:.55rem 0;text-align:left;font-weight:400}
.hours td{text-align:right;font-variant-numeric:tabular-nums}
.hours tr.is-off{color:var(--chalk-dim)}
.hours tr.is-today{color:var(--gold-hi);font-weight:700}
.hours tr.is-today th,.hours tr.is-today td{font-weight:700}
.hours tr.is-today th::after{content:" · aujourd’hui";font-weight:400;font-size:.8em}
.acces__tags{display:flex;flex-wrap:wrap;gap:.45rem}
.acces__tags li{padding:.35rem .85rem;border:1px solid rgba(244,236,217,.25);border-radius:999px;font-size:.84rem;color:var(--chalk-dim)}
.acces__map{position:relative}
.map__frame{position:relative;aspect-ratio:4/4.4;border-radius:1.4rem;overflow:hidden;border:2px solid var(--gold);box-shadow:0 40px 80px -30px rgba(0,0,0,.8);background:var(--slate-2)}
.map__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map__badge{position:absolute;left:-2.4rem;bottom:-2.4rem;width:clamp(96px,11vw,146px);color:var(--gold)}
@media (max-width:900px){.acces__grid{grid-template-columns:1fr}.map__frame{aspect-ratio:1/1}.map__badge{left:auto;right:1rem;bottom:-1.6rem}}

/* ================= FOOTER ================= */
.foot{position:relative;background:var(--slate);overflow:hidden;padding-top:clamp(4rem,8vw,7rem)}
.foot__top{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:2.5rem;align-items:start}
.foot__lead{font-family:var(--f-display);font-size:clamp(1.8rem,1.2rem + 2.4vw,3.4rem);line-height:1.05;margin-bottom:1.6rem}
.foot__nav{display:grid;gap:.5rem;justify-items:start;font-size:.9rem;text-transform:uppercase;letter-spacing:.14em}
.foot__contact{display:grid;gap:1rem;color:var(--chalk-dim)}
.foot__giant{font-family:var(--f-display);font-size:clamp(4rem,2rem + 17.5vw,23rem);line-height:.84;text-align:center;color:transparent;-webkit-text-stroke:1.5px rgba(212,162,76,.55);margin:clamp(2.5rem,6vw,5rem) 0 0;padding-bottom:.08em;user-select:none;letter-spacing:-.01em}
.foot__giant .c{transition:transform .6s var(--ease),color .5s,-webkit-text-stroke-color .5s}
.foot__giant .c:hover{transform:translateY(-.1em);color:var(--gold);-webkit-text-stroke-color:var(--gold)}
.foot__giant .w{overflow:visible}
.foot__legal{position:relative;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;flex-wrap:wrap;padding:1.4rem 0 2rem;border-top:1px solid rgba(244,236,217,.12);font-size:.78rem;color:var(--chalk-dim)}
.foot__legal p:nth-child(2){max-width:42em}
.foot__top-btn{width:3rem;height:3rem;border-radius:50%;border:1.5px solid var(--gold);color:var(--gold);font-size:1.2rem;display:grid;place-items:center;transition:transform .5s var(--ease),background .4s,color .4s}
.foot__top-btn:hover{background:var(--gold);color:var(--ink);transform:translateY(-4px)}
@media (max-width:900px){.foot__top{grid-template-columns:1fr}.foot{padding-bottom:5.4rem}}

/* ================= DOCK MOBILE ================= */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:180;display:none;gap:.6rem;padding:.8rem var(--gutter) calc(.8rem + env(safe-area-inset-bottom));background:linear-gradient(transparent,rgba(14,13,11,.92) 38%);transition:transform .6s var(--ease)}
.dock.is-hidden{transform:translateY(120%)}
.dock__btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.55rem;padding:.95rem 1rem;border-radius:999px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem}
.dock__btn--call{border:1.5px solid var(--gold);color:var(--gold);background:rgba(14,13,11,.7)}
.dock__btn--book{background:var(--gold);color:var(--ink)}
@media (max-width:820px){.dock{display:flex}}

/* ================= LIGHTBOX ================= */
.lightbox{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;background:rgba(14,13,11,.94);padding:3.5rem 1rem;opacity:0;transition:opacity .4s}
.lightbox[hidden]{display:none}
.lightbox.is-open{opacity:1}
.lightbox figure{display:grid;gap:.8rem;justify-items:center;max-width:min(92vw,1100px)}
.lightbox img{max-height:78vh;width:auto;border-radius:.8rem;box-shadow:0 30px 80px rgba(0,0,0,.7)}
.lightbox figcaption{font-family:var(--f-hand);font-size:1.5rem;color:var(--gold-hi)}
.lightbox__close,.lightbox__nav{position:absolute;width:3.2rem;height:3.2rem;border-radius:50%;border:1.5px solid var(--chalk);display:grid;place-items:center;font-size:1.5rem;line-height:1;transition:background .3s,color .3s}
.lightbox__close:hover,.lightbox__nav:hover{background:var(--chalk);color:var(--ink)}
.lightbox__close{top:1rem;right:1rem}
.lightbox__nav--prev{left:1rem;top:50%}
.lightbox__nav--next{right:1rem;top:50%}
@media (max-width:700px){.lightbox__nav{top:auto;bottom:1rem}.lightbox__nav--prev{left:calc(50% - 4rem)}.lightbox__nav--next{right:calc(50% - 4rem)}}

/* ================= RESPONSIVE & ACCESSIBILITÉ ================= */
@media (max-width:900px){
  .ledger li{font-size:.92rem}
  .rev:nth-child(even){margin-top:0}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .grain,.hero__embers,.cursor{display:none}
  .js [data-reveal],.js [data-hero="fade"],.js .is-split .c,.js .curtain .gal__btn{opacity:1!important;transform:none!important}
  .js .curtain::after{display:none}
  .js [data-split]{visibility:visible}
  .stamp{transform:rotate(12deg) scale(1)!important}
  .stat__arc{stroke-dashoffset:0}
  .verre__circle{clip-path:none}
}
html.rm .grain,html.rm .hero__embers{display:none}