/* ==========================================================================
   LOU GRAMACI — Brasserie, Manosque
   Direction artistique : « Ardoise & Platane »
   - Fil rouge  : la feuille de platane (+ le feston du store banne en séparateur)
   - Palette    : craie · lin · ardoise · brique (tuile) · safran (carri) · platane · craie bleue
   - Typo       : Fraunces (titres géants) · Figtree (texte) · Caveat (écriture à la craie)
   ========================================================================== */

:root{
  --craie:#F4EBDB;
  --lin:#EADBC2;
  --sable:#D9C4A0;
  --ardoise:#14181B;
  --ardoise-2:#1E2529;
  --ardoise-3:#2B343A;
  --brique:#B8431F;
  --brique-clair:#D75B3A;
  --safran:#EDA63C;
  --platane:#2F4A33;
  --feuille:#6E8F4E;
  --bleu-craie:#93C8E8;
  --texte:#1B1814;
  --texte-doux:#4C4439;

  --f-display:'Fraunces',Georgia,'Times New Roman',serif;
  --f-body:'Figtree',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-craie:'Caveat','Segoe Script','Bradley Hand',cursive;

  --ease:cubic-bezier(.22,1,.36,1);
  --gutter:clamp(1.25rem,4.5vw,4.5rem);
  --festons:34px;
  --leaf-r:2rem 8rem 2rem 8rem;
  --leaf-soft:1.6rem 7rem 1.6rem 1.6rem;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;color-scheme:light}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{
  margin:0;background:var(--craie);color:var(--texte);
  font-family:var(--f-body);font-size:clamp(1rem,.95rem + .22vw,1.125rem);line-height:1.62;
  overflow-x:hidden;overflow-x:clip;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
em{font-style:italic}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,p,figure,blockquote,address{margin:0}
address{font-style:normal}
::selection{background:var(--safran);color:var(--ardoise)}

:focus-visible{outline:3px solid var(--safran);outline-offset:3px;border-radius:6px}
.hero :focus-visible,.carte :focus-visible,.reserve :focus-visible,.footer :focus-visible,.numbers :focus-visible{outline-color:var(--bleu-craie)}

.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:1rem;top:-5rem;z-index:200;background:var(--safran);color:var(--ardoise);padding:.8rem 1.2rem;border-radius:999px;font-weight:700;transition:top .3s var(--ease)}
.skip:focus{top:1rem}
.wrap{width:100%;max-width:1480px;margin-inline:auto;padding-inline:var(--gutter)}

/* ---------- Grain de papier + barre de progression ---------- */
.grain{
  position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.07;mix-blend-mode:multiply;
  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 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:95;pointer-events:none}
.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--brique),var(--safran));transform:scaleX(0);transform-origin:0 50%}

/* ---------- Festons de store banne (séparateurs) ---------- */
.festons{
  position:absolute;left:0;right:0;bottom:calc(var(--festons) * -1 + 1px);height:var(--festons);z-index:5;pointer-events:none;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='68' height='34' viewBox='0 0 68 34'%3E%3Cpath d='M0 0H68A34 34 0 0 1 0 0Z'/%3E%3C/svg%3E") repeat-x 0 0/68px 34px;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='68' height='34' viewBox='0 0 68 34'%3E%3Cpath d='M0 0H68A34 34 0 0 1 0 0Z'/%3E%3C/svg%3E") repeat-x 0 0/68px 34px;
}

/* ---------- Typographie ---------- */
.display{
  font-family:var(--f-display);font-weight:800;line-height:.95;letter-spacing:-.025em;
  font-size:clamp(2.8rem,7.6vw,7.6rem);font-variation-settings:"opsz" 144;
}
.display em{font-weight:700;color:var(--brique)}
.display--sm{font-size:clamp(2rem,4.4vw,4rem)}
.display--xl{font-size:clamp(5rem,15vw,15rem);line-height:.85}
.eyebrow{
  display:inline-flex;align-items:center;gap:.6rem;margin-bottom:1.2rem;
  font:700 .8rem/1 var(--f-body);letter-spacing:.22em;text-transform:uppercase;color:var(--brique);
}
.eyebrow svg{width:1.15rem;height:1.15rem;color:var(--feuille)}
.eyebrow--light{color:var(--safran)}
.eyebrow--light svg{color:var(--safran)}
/* mots masqués pour l'animation « le mot monte » */
.sw{display:inline-block;overflow:hidden;vertical-align:top;padding:.08em .06em .16em 0;margin:-.08em -.06em -.16em 0}
.swi,.sc{display:inline-block;will-change:transform}

.link{position:relative;display:inline-block}
.link::after{content:"";position:absolute;left:0;right:0;bottom:-.12em;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:100% 50%;transition:transform .55s var(--ease)}
.link:hover::after,.link:focus-visible::after{transform:scaleX(1);transform-origin:0 50%}

/* ---------- Boutons magnétiques ---------- */
.btn{
  --bg:var(--brique);--fg:var(--craie);--fill:var(--safran);--fill-fg:var(--ardoise);
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.7em;
  padding:1.05em 1.85em;border:0;border-radius:999px;background:var(--bg);color:var(--fg);
  font:700 1rem/1 var(--f-body);letter-spacing:.02em;overflow:hidden;isolation:isolate;
  transition:color .45s var(--ease),box-shadow .45s var(--ease);will-change:transform;
}
.btn::before{
  content:"";position:absolute;left:-15%;right:-15%;top:-10%;height:230%;border-radius:50%;
  background:var(--fill);z-index:-1;transform:translateY(102%);transition:transform .7s var(--ease);
}
.btn:hover::before,.btn:focus-visible::before{transform:translateY(0)}
.btn:hover,.btn:focus-visible{color:var(--fill-fg)}
.btn svg{width:1.15em;height:1.15em;flex:none}
.btn .flip{transform:scaleX(-1)}
.btn__label{position:relative;display:inline-block}
.btn--ghost{--bg:transparent;--fg:var(--craie);box-shadow:inset 0 0 0 1.5px rgba(244,235,219,.7)}
.btn--ghost:hover{box-shadow:inset 0 0 0 1.5px var(--safran)}
.btn--line{--bg:transparent;--fg:var(--texte);box-shadow:inset 0 0 0 1.5px currentColor}
.btn--line:hover{box-shadow:inset 0 0 0 1.5px var(--safran)}
.btn--sm{padding:.8em 1.35em;font-size:.92rem}
.btn[disabled]{opacity:.55;pointer-events:none}

.round{
  display:inline-grid;place-items:center;width:3rem;height:3rem;border-radius:50%;border:1.5px solid currentColor;background:transparent;
  transition:background .4s var(--ease),color .4s var(--ease),transform .4s var(--ease);flex:none;
}
.round svg{width:1.2rem;height:1.2rem}
.round:hover{background:var(--safran);color:var(--ardoise);border-color:var(--safran)}
.round--lg{width:3.8rem;height:3.8rem}

/* ---------- Curseur personnalisé (souris uniquement) ---------- */
.cursor{position:fixed;left:0;top:0;z-index:99;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;pointer-events:none;
  background:var(--safran);mix-blend-mode:normal;opacity:0;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background .3s}
.cursor__label{position:absolute;inset:0;display:grid;place-items:center;font:700 .72rem/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--ardoise);opacity:0;white-space:nowrap}
.cursor.is-on{opacity:1}
.cursor.is-link{width:44px;height:44px;margin:-22px 0 0 -22px;background:rgba(237,166,60,.35)}
.cursor.is-label{width:92px;height:92px;margin:-46px 0 0 -46px;background:var(--safran)}
.cursor.is-label .cursor__label{opacity:1}
@media (hover:none),(pointer:coarse){.cursor{display:none}}

/* ---------- Loader : le store banne qui se lève ---------- */
.loader{position:fixed;inset:0;z-index:100;pointer-events:all;overflow:hidden}
.loader__panel{position:absolute;inset:0 0 var(--festons) 0;--pbg:var(--ardoise);background:var(--pbg)}
.loader__panel::after{
  content:"";position:absolute;left:0;right:0;top:100%;height:var(--festons);background:var(--pbg);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='68' height='34' viewBox='0 0 68 34'%3E%3Cpath d='M0 0H68A34 34 0 0 1 0 0Z'/%3E%3C/svg%3E") repeat-x 0 0/68px 34px;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='68' height='34' viewBox='0 0 68 34'%3E%3Cpath d='M0 0H68A34 34 0 0 1 0 0Z'/%3E%3C/svg%3E") repeat-x 0 0/68px 34px;
}
.loader__panel--brique{--pbg:var(--brique)}
.loader__panel--ardoise{
  background:
    repeating-linear-gradient(90deg,transparent 0 76px,rgba(244,235,219,.035) 76px 78px),
    var(--ardoise);
}
.loader__inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;color:var(--craie);text-align:center}
.loader__leaf path{stroke-dasharray:1;stroke-dashoffset:1}
.loader__name{font:italic 800 clamp(2.4rem,7vw,5rem)/1 var(--f-display);letter-spacing:-.02em;overflow:hidden}
.loader__name span{display:inline-block}
.loader__count{font:700 1rem/1 var(--f-body);letter-spacing:.2em;color:var(--safran);font-variant-numeric:tabular-nums}
.loader__count small{font-size:.7em;margin-left:.15em}
.js body:not(.is-ready){overflow:hidden}

/* ---------- Navigation ---------- */
.nav{
  position:fixed;left:0;right:0;top:0;z-index:80;display:flex;align-items:center;gap:2rem;
  padding:1rem var(--gutter);color:var(--craie);transition:background .5s var(--ease),padding .5s var(--ease),box-shadow .5s var(--ease);
  will-change:transform;
}
.nav.is-solid{background:rgba(20,24,27,.82);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);padding-block:.7rem;box-shadow:0 1px 0 rgba(244,235,219,.08)}
.nav__logo{display:inline-flex;align-items:center;gap:.6rem;font:italic 800 1.5rem/1 var(--f-display);letter-spacing:-.02em;margin-right:auto}
.nav__leaf{width:1.7rem;height:1.7rem;color:var(--safran);transition:transform .8s var(--ease)}
.nav__logo:hover .nav__leaf{transform:rotate(25deg) scale(1.1)}
.nav__links{display:flex;gap:2rem;font-weight:600;font-size:.95rem}
.nav__burger{display:none;position:relative;width:3rem;height:3rem;border:0;background:transparent;border-radius:50%;margin-right:-.5rem}
.nav__burger span{position:absolute;left:.8rem;right:.8rem;height:2px;background:currentColor;border-radius:2px;transition:transform .5s var(--ease)}
.nav__burger span:first-child{top:1.2rem}
.nav__burger span:last-child{top:1.7rem}
.nav__burger[aria-expanded="true"] span:first-child{transform:translateY(.25rem) rotate(45deg)}
.nav__burger[aria-expanded="true"] span:last-child{transform:translateY(-.25rem) rotate(-45deg)}

.menu{position:fixed;inset:0;z-index:78;background:var(--ardoise);color:var(--craie);display:flex;flex-direction:column;justify-content:space-between;
  padding:6.5rem var(--gutter) 2rem;clip-path:circle(0 at calc(100% - 2.6rem) 2.6rem);visibility:hidden}
.menu__nav{display:flex;flex-direction:column;gap:.1rem}
.menu__nav a{display:flex;align-items:baseline;gap:1rem;font:italic 800 clamp(2.4rem,11vw,4.4rem)/1.15 var(--f-display);letter-spacing:-.02em;overflow:hidden}
.menu__nav a span{font:700 .8rem var(--f-body);letter-spacing:.2em;color:var(--safran)}
.menu__nav a>*,.menu__nav a{will-change:transform}
.menu__foot{display:flex;flex-direction:column;gap:.4rem;font-size:1rem;color:rgba(244,235,219,.8)}

/* ==========================================================================
   1. HERO
   ========================================================================== */
.hero{position:relative;z-index:11;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;color:var(--craie);background:var(--ardoise);isolation:isolate;overflow:visible}
.hero__media{position:absolute;inset:0;z-index:-4;overflow:hidden;background:var(--ardoise)}
.hero__video{position:absolute;left:0;top:-10%;width:100%;height:120%;object-fit:cover;object-position:50% 55%;transform-origin:50% 50%;will-change:transform}
.hero__shade{position:absolute;inset:0;z-index:-3;
  background:
    radial-gradient(120% 90% at 20% 100%,rgba(20,24,27,.82) 0%,rgba(20,24,27,0) 60%),
    linear-gradient(180deg,rgba(20,24,27,.6) 0%,rgba(20,24,27,.1) 32%,rgba(20,24,27,.55) 78%,rgba(20,24,27,.9) 100%);
}
.hero__leaves,.hero__front{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.hero__leaves{z-index:-2}
.hero__front{z-index:3}
.hleaf{position:absolute;color:var(--c,#EDA63C);opacity:var(--o,.85);will-change:transform;--vein:rgba(20,24,27,.28)}
.hleaf svg{width:100%;height:100%}
.hleaf--blur{filter:blur(6px)}

.hero__inner{position:relative;z-index:2;width:100%;padding:clamp(7rem,16vh,10rem) var(--gutter) clamp(3.5rem,11vh,7rem)}
.hero__title{display:flex;flex-direction:column;font-family:var(--f-display);font-weight:900;line-height:.8;letter-spacing:-.035em;margin-bottom:clamp(1.2rem,3vh,2.2rem)}
.hero__lou{display:block;font:700 clamp(3.2rem,9vw,8.5rem)/1 var(--f-craie);color:var(--safran);transform-origin:0 100%;margin:0 0 -.12em .08em;letter-spacing:0;text-shadow:0 6px 30px rgba(0,0,0,.35)}
.hero__line{display:block;overflow:hidden;padding:.06em .12em .1em 0;margin:-.06em 0 -.1em}
.hero__gramaci{display:block;font-style:italic;font-size:clamp(4.6rem,20.5vw,21rem);font-variation-settings:"opsz" 144;color:var(--craie);text-shadow:0 10px 60px rgba(0,0,0,.35)}
.hero__gramaci .sc{padding-right:.01em}
.hero__lead{max-width:34rem;font-size:clamp(1.05rem,1.4vw,1.35rem);line-height:1.5;color:rgba(244,235,219,.94);margin-bottom:2rem}
.hero__lead em{color:var(--safran);font-family:var(--f-display);font-weight:600}
.hero__cta{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.2rem}
.hero__tel{display:inline-flex;align-items:center;gap:.55rem;font-weight:700;letter-spacing:.02em;margin-left:.6rem}
.hero__tel svg{width:1.2rem;height:1.2rem;color:var(--safran)}

.hero__status{position:absolute;z-index:4;right:var(--gutter);top:clamp(5.6rem,12vh,7rem);display:inline-flex;align-items:center;gap:.65rem;padding:.6rem 1.05rem;border-radius:999px;
  background:rgba(20,24,27,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:.88rem;font-weight:600;border:1px solid rgba(244,235,219,.18)}
.hero__status .dot{width:.65rem;height:.65rem;border-radius:50%;background:#6fdc7d;box-shadow:0 0 0 0 rgba(111,220,125,.6);animation:pulse 2.2s infinite}
.hero__status.is-closed .dot{background:var(--safran);animation:none;box-shadow:none}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(111,220,125,.6)}70%{box-shadow:0 0 0 .7rem rgba(111,220,125,0)}100%{box-shadow:0 0 0 0 rgba(111,220,125,0)}}

.hero__badge{position:absolute;z-index:4;right:var(--gutter);bottom:clamp(5rem,13vh,8rem);width:clamp(8rem,13vw,12.5rem);aspect-ratio:1;display:grid;place-items:center;color:var(--craie)}
.hero__badge-ring{position:absolute;inset:0;width:100%;height:100%;will-change:transform}
.hero__badge-ring text{font:700 15px var(--f-body);letter-spacing:.22em;fill:currentColor}
.hero__badge-leaf{width:34%;height:34%;color:var(--safran);will-change:transform;--vein:rgba(20,24,27,.4)}

.hero__scroll{position:absolute;z-index:4;left:var(--gutter);bottom:1.2rem;display:flex;align-items:center;gap:.8rem;font:700 .72rem/1 var(--f-body);letter-spacing:.24em;text-transform:uppercase;writing-mode:horizontal-tb}
.hero__scroll i{position:relative;display:block;width:3rem;height:1px;background:rgba(244,235,219,.35);overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;inset:0;background:var(--safran);transform:translateX(-100%);animation:slide 2.2s var(--ease) infinite}
@keyframes slide{0%{transform:translateX(-100%)}60%,100%{transform:translateX(100%)}}

/* ==========================================================================
   2. MARQUEE
   ========================================================================== */
.marquee{position:relative;z-index:10;background:var(--brique);color:var(--craie);padding:clamp(1.6rem,3.4vw,2.8rem) 0 clamp(1.4rem,3vw,2.4rem);overflow:visible}
.marquee__row{white-space:nowrap;overflow:hidden}
.marquee__track{display:inline-flex;will-change:transform}
.marquee__item{display:inline-flex;align-items:center;gap:clamp(1rem,2.4vw,2.4rem);padding-right:clamp(1rem,2.4vw,2.4rem);font:italic 800 clamp(2.6rem,7.4vw,7rem)/1.08 var(--f-display);letter-spacing:-.02em}
.marquee__item svg{width:.62em;height:.62em;color:var(--safran);flex:none;--vein:rgba(20,24,27,.3)}
.marquee__row--outline .marquee__item{color:transparent;-webkit-text-stroke:1.5px var(--craie)}
.marquee__row--outline .marquee__item svg{color:var(--craie)}

/* ==========================================================================
   3. LA MAISON
   ========================================================================== */
.story{position:relative;z-index:9;background:var(--craie);padding-top:calc(var(--festons) + clamp(4rem,9vw,8rem));background-image:
  radial-gradient(60% 40% at 90% 10%,rgba(237,166,60,.16),transparent 70%),
  radial-gradient(50% 40% at 0% 60%,rgba(110,143,78,.12),transparent 70%)}
.story__head{padding-bottom:clamp(2rem,5vw,4rem)}
.story__head .display{max-width:15ch}
.story__pin{position:relative}
.story__stage{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(2rem,6vw,7rem);align-items:center;min-height:100vh;padding-block:clamp(2rem,6vh,4rem)}
.story__visual{position:relative;height:min(76vh,720px);max-height:calc(100vh - 6rem)}
.story__frame{position:absolute;inset:0;overflow:hidden;border-radius:var(--leaf-r);background:var(--sable);box-shadow:0 30px 70px -30px rgba(20,24,27,.55)}
.story__frame img{position:absolute;inset:-6%;width:112%;height:112%;max-width:none;object-fit:cover;will-change:transform}
.story__leafdeco{position:absolute;right:-2.2rem;bottom:-2.4rem;width:clamp(5rem,9vw,8.5rem);height:clamp(5rem,9vw,8.5rem);color:var(--brique);transform:rotate(18deg);z-index:2;--vein:rgba(244,235,219,.45)}
.story__text{position:relative}
.story__meta{display:flex;align-items:center;gap:1.2rem;margin-bottom:2rem;font:700 .85rem var(--f-body);letter-spacing:.2em;color:var(--texte-doux)}
.story__count b{font:italic 800 2.6rem/1 var(--f-display);color:var(--brique);letter-spacing:-.02em;margin-right:.2rem}
.story__bar{flex:1;height:2px;background:rgba(27,24,20,.14);overflow:hidden;border-radius:2px}
.story__bar i{display:block;height:100%;background:var(--brique);transform:scaleX(0);transform-origin:0 50%}
.story__steps{position:relative;min-height:22rem}
.story__step{position:absolute;inset:0 auto auto 0;width:100%}
.story__step h3{font:800 clamp(2rem,4.2vw,4.1rem)/1 var(--f-display);letter-spacing:-.025em;margin-bottom:1.3rem;font-variation-settings:"opsz" 144}
.story__step p{max-width:36rem;font-size:clamp(1.05rem,1.35vw,1.3rem);line-height:1.65;color:var(--texte-doux)}
.story__step em{font-family:var(--f-display);color:var(--brique);font-weight:600}

/* ==========================================================================
   4. L'ARDOISE — défilement horizontal
   ========================================================================== */
.carte{position:relative;z-index:8;background:var(--ardoise);color:var(--craie);
  background-image:radial-gradient(70% 60% at 85% 0%,rgba(184,67,31,.25),transparent 70%),radial-gradient(50% 50% at 0% 100%,rgba(110,143,78,.16),transparent 70%)}
.carte__pin{height:100vh;display:flex;align-items:center;overflow:hidden}
.carte__track{display:flex;align-items:center;gap:clamp(1.4rem,3vw,3rem);padding:0 var(--gutter);will-change:transform}
.carte__intro{flex:0 0 min(44vw,620px);position:relative;padding-right:2rem}
.carte__intro .display em{color:var(--safran)}
.carte__lead{margin-top:1.6rem;max-width:30rem;color:rgba(244,235,219,.82);font-size:clamp(1.02rem,1.2vw,1.2rem)}
.carte__lead b{color:var(--safran)}
.carte__hint{display:flex;align-items:center;gap:.8rem;margin-top:2.2rem;font:700 .78rem var(--f-body);letter-spacing:.24em;text-transform:uppercase;color:var(--safran)}
.carte__hint svg{width:2.4rem;height:1.2rem;animation:nudge 1.8s var(--ease) infinite}
@keyframes nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(.7rem)}}
.carte__progress{margin-top:1.4rem;height:2px;width:min(18rem,100%);background:rgba(244,235,219,.16);overflow:hidden;border-radius:2px}
.carte__progress i{display:block;height:100%;background:var(--safran);transform:scaleX(0);transform-origin:0 50%}

.dish{flex:0 0 clamp(290px,25vw,400px);position:relative;border-radius:var(--leaf-soft);background:var(--ardoise-2);overflow:hidden;
  box-shadow:0 30px 60px -28px rgba(0,0,0,.7),inset 0 0 0 1px rgba(244,235,219,.07);transform-style:preserve-3d;will-change:transform}
.dish__media{position:relative;height:clamp(240px,42vh,440px);overflow:hidden}
.dish__media img{position:absolute;top:0;left:-9%;width:118%;max-width:none;height:100%;object-fit:cover;will-change:transform;transition:filter .6s var(--ease)}
.dish:hover .dish__media img{filter:saturate(1.15) contrast(1.05)}
.dish::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;opacity:0;transition:opacity .4s;
  background:radial-gradient(circle at var(--mx,50%) var(--my,30%),rgba(255,255,255,.22),transparent 46%)}
.dish:hover::after{opacity:1}
.dish__badge{position:absolute;top:1rem;right:1rem;z-index:2;display:grid;place-items:center;min-width:4.9rem;height:4.9rem;padding:0 .6rem;border-radius:50%;
  background:var(--safran);color:var(--ardoise);font:italic 800 1.35rem/1 var(--f-display);text-align:center;transform:rotate(-9deg);box-shadow:0 8px 24px rgba(0,0,0,.35)}
.dish__badge--txt{font-size:1rem}
.dish__badge svg{width:2rem;height:2rem;color:var(--brique)}
.dish__body{padding:1.3rem 1.6rem 1.8rem}
.dish__tag{font:700 .72rem/1 var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--safran);margin-bottom:.7rem}
.dish__body h3{font:800 clamp(1.5rem,2.1vw,2rem)/1.05 var(--f-display);letter-spacing:-.02em;margin-bottom:.7rem}
.dish__body p{font-size:.98rem;line-height:1.5;color:rgba(244,235,219,.78)}
.dish__body p b{display:block;margin-top:.55rem;color:var(--craie);font-weight:700}
.carte__outro{flex:0 0 min(80vw,500px);padding:0 4vw 0 2vw}
.carte__outro .btn{margin-top:2rem}

/* ----- L'ardoise complète (craie sur tableau noir) ----- */
.board-section{position:relative;z-index:7;background:var(--lin);padding:calc(var(--festons) + clamp(4rem,9vw,8rem)) 0 calc(var(--festons) + clamp(4rem,8vw,7rem));
  background-image:radial-gradient(60% 50% at 10% 0%,rgba(237,166,60,.2),transparent 70%)}
.board-section__head{margin-bottom:clamp(2rem,5vw,4rem)}
.board{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,5rem);padding:clamp(1.6rem,4.5vw,4.2rem);
  color:#F1ECE0;border:clamp(10px,1.4vw,18px) solid #0C0E10;border-radius:6px;
  background:
    radial-gradient(120% 90% at 20% 10%,rgba(255,255,255,.05),transparent 55%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
    #1B2125;
  box-shadow:0 40px 80px -30px rgba(20,24,27,.6),inset 0 0 60px rgba(0,0,0,.45)}
.board__block+.board__block{margin-top:clamp(1.6rem,3vw,2.6rem)}
.board__title{display:flex;align-items:baseline;gap:.9rem;font:700 clamp(1.7rem,2.6vw,2.4rem)/1.1 var(--f-craie);color:var(--bleu-craie);margin-bottom:.8rem;position:relative;padding-bottom:.3rem;width:max-content;max-width:100%}
.board__title::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--bleu-craie);opacity:.75;transform:scaleX(var(--u,1));transform-origin:0 50%;filter:url(#chalk)}
.board__title b{color:var(--craie);font-weight:700}
.board__title small{font:600 1rem var(--f-craie);color:var(--craie);opacity:.8}
.board li{display:flex;align-items:baseline;gap:.6rem;padding:.28rem 0;font:700 clamp(1.3rem,1.75vw,1.7rem)/1.2 var(--f-craie)}
.board li i{flex:1;min-width:1rem;border-bottom:2px dotted rgba(241,236,224,.32);transform:translateY(-.28em)}
.board li b{font-weight:700;color:var(--safran);white-space:nowrap}
.board__plain li{flex-wrap:wrap;gap:.1rem .8rem}
.board__plain small{font:500 1rem var(--f-body);color:rgba(241,236,224,.7);width:100%;margin-top:-.2rem;letter-spacing:.01em}
.board__leaf{position:absolute;right:1.4rem;bottom:1.1rem;width:3.6rem;height:3.6rem;color:rgba(241,236,224,.1);transform:rotate(14deg);--vein:rgba(0,0,0,.4)}
.board__note{margin-top:1.6rem;max-width:56rem;font-size:.92rem;color:var(--texte-doux)}

/* ==========================================================================
   5. CHIFFRES
   ========================================================================== */
.numbers{position:relative;z-index:6;background:var(--platane);color:var(--craie);padding:clamp(5rem,9vw,8rem) 0 calc(clamp(4rem,8vw,7rem) + var(--festons));
  background-image:radial-gradient(60% 80% at 100% 0%,rgba(237,166,60,.18),transparent 65%),radial-gradient(50% 70% at 0% 100%,rgba(0,0,0,.25),transparent 70%)}
.numbers__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1rem,2.4vw,2.6rem);margin-top:clamp(2rem,5vw,4rem)}
.numbers__grid li{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;aspect-ratio:1/.92;text-align:center;padding:1rem}
.numbers__ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.numbers__ring ellipse{fill:none;stroke:var(--safran);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:var(--d,1);filter:url(#chalk);transform:rotate(-14deg);transform-origin:50% 50%}
.numbers__val{display:inline-flex;align-items:baseline;font:italic 900 clamp(3.6rem,8vw,8rem)/.95 var(--f-display);letter-spacing:-.04em;color:var(--craie);font-variation-settings:"opsz" 144;font-variant-numeric:tabular-nums}
.numbers__val small{font-size:.42em;font-weight:700;color:var(--safran);margin-left:.08em;letter-spacing:0}
.numbers__stars{display:flex;gap:.2rem;color:var(--safran)}
.numbers__stars svg{width:1.05rem;height:1.05rem}
.numbers__lbl{font:600 .92rem/1.35 var(--f-body);color:rgba(244,235,219,.85)}

/* ==========================================================================
   6. GALERIE
   ========================================================================== */
.gallery-section{position:relative;z-index:5;background:var(--craie);padding:calc(var(--festons) + clamp(4rem,8vw,7rem)) 0 calc(var(--festons) + clamp(4rem,8vw,7rem))}
.gallery-section__head{margin-bottom:clamp(2rem,5vw,4rem)}
.gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(48px,6.2vw,96px);gap:clamp(.7rem,1.5vw,1.5rem)}
.g{position:relative;border-radius:var(--leaf-r);overflow:hidden;background:var(--sable);transform-style:preserve-3d;will-change:transform;box-shadow:0 24px 50px -28px rgba(20,24,27,.55)}
.g:nth-child(even){border-radius:8rem 2rem 8rem 2rem}
.g__img{position:absolute;inset:0;overflow:hidden}
.g__img img{position:absolute;left:0;top:-10%;width:100%;height:120%;max-width:none;object-fit:cover;will-change:transform;transition:filter .6s var(--ease)}
.g:nth-child(odd) figcaption{left:auto;right:1rem}
.g:nth-child(even) figcaption{left:1rem;right:auto}
.g figcaption{position:absolute;bottom:1rem;z-index:2;padding:.55rem .95rem;border-radius:999px;width:max-content;max-width:calc(100% - 2rem);
  background:rgba(20,24,27,.72);color:var(--craie);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font:600 .85rem/1.2 var(--f-body);
  transform:translateY(160%);transition:transform .6s var(--ease)}
.g:hover figcaption,.g:focus-within figcaption{transform:translateY(0)}
.g::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(circle at var(--mx,50%) var(--my,40%),rgba(255,255,255,.28),transparent 48%)}
.g:hover::after{opacity:1}
.g1{grid-column:1/6;grid-row:1/8}
.g2{grid-column:6/10;grid-row:1/5}
.g3{grid-column:10/13;grid-row:1/8}
.g4{grid-column:6/10;grid-row:5/8}
.g5{grid-column:1/5;grid-row:8/12}
.g6{grid-column:5/9;grid-row:8/12}
.g7{grid-column:9/13;grid-row:8/12}
.g8{grid-column:1/13;grid-row:12/16}
.credit{margin-top:1.4rem;font-size:.85rem;color:var(--texte-doux)}

/* ==========================================================================
   7. AVIS
   ========================================================================== */
.reviews{position:relative;z-index:4;background:var(--lin);padding:calc(var(--festons) + clamp(4rem,8vw,7rem)) 0 calc(clamp(4rem,8vw,7rem) + var(--festons));
  background-image:radial-gradient(60% 60% at 100% 0%,rgba(184,67,31,.12),transparent 70%)}
.reviews__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:clamp(2rem,4vw,3.4rem)}
.reviews__score{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.reviews__score b{font:italic 900 clamp(3.4rem,6vw,5.6rem)/1 var(--f-display);color:var(--brique);letter-spacing:-.04em}
.stars{display:inline-flex;gap:.15rem;color:var(--safran)}
.stars svg{width:1.4rem;height:1.4rem}
.stars .half{clip-path:inset(0 40% 0 0)}
.reviews__score small{font-weight:600;color:var(--texte-doux)}
.reviews__viewport{overflow:hidden;padding:1rem 0 2rem;cursor:grab;touch-action:pan-y}
.reviews__viewport:active{cursor:grabbing}
.reviews__track{display:flex;gap:clamp(1rem,2vw,2rem);padding-inline:var(--gutter);width:max-content;will-change:transform}
.rev{position:relative;flex:0 0 clamp(290px,31vw,470px);min-height:clamp(300px,32vw,400px);padding:clamp(1.6rem,2.4vw,2.4rem);display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem;
  border-radius:var(--leaf-soft);background:var(--craie);box-shadow:0 26px 50px -30px rgba(20,24,27,.45);user-select:none;-webkit-user-select:none}
.rev--alt{background:var(--ardoise);color:var(--craie)}
.rev__q{width:3.2rem;height:2.4rem;color:var(--safran)}
.rev blockquote{font:italic 600 clamp(1.5rem,2.3vw,2.2rem)/1.2 var(--f-display);letter-spacing:-.015em;flex:1;display:flex;align-items:center}
.rev figcaption{display:flex;flex-direction:column;gap:.15rem;font-size:.95rem}
.rev figcaption b{font-weight:700}
.rev figcaption span{font-size:.82rem;opacity:.7;letter-spacing:.04em}
.rev--topics{background:var(--safran);color:var(--ardoise)}
.rev__kicker{font:700 .78rem var(--f-body);letter-spacing:.2em;text-transform:uppercase}
.topics{display:flex;flex-wrap:wrap;gap:.55rem;margin:auto 0}
.topics li{display:inline-flex;align-items:baseline;gap:.5rem;padding:.55rem 1rem;border-radius:999px;background:rgba(20,24,27,.1);font:600 1rem var(--f-body)}
.topics b{font:italic 800 1.4rem var(--f-display)}
.rev--cta{background:var(--brique);color:var(--craie);align-items:flex-start;justify-content:center}
.rev__big{font:italic 800 clamp(2rem,3.4vw,3.2rem)/1.02 var(--f-display);letter-spacing:-.02em}
.reviews__ctrl{display:flex;align-items:center;gap:.8rem}
.reviews__hint{margin-left:auto;font-size:.82rem;color:var(--texte-doux);max-width:24rem;text-align:right}

/* ==========================================================================
   8. RÉSERVER
   ========================================================================== */
.reserve{position:relative;z-index:3;background:var(--ardoise);color:var(--craie);padding:calc(var(--festons) + clamp(4rem,8vw,7rem)) 0 calc(clamp(4rem,8vw,7rem) + var(--festons));overflow:visible;isolation:isolate}
.reserve__tiles{position:absolute;inset:0;z-index:-1;opacity:.5;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23B8431F' stroke-width='2' opacity='.55'%3E%3Cpath d='M0 60a60 60 0 0 0 60-60M60 0a60 60 0 0 0 60 60M120 60a60 60 0 0 0-60 60M60 120A60 60 0 0 0 0 60'/%3E%3Ccircle cx='60' cy='60' r='14'/%3E%3C/g%3E%3Cg fill='%23B8431F' opacity='.35'%3E%3Ccircle cx='60' cy='60' r='6'/%3E%3Ccircle cx='0' cy='0' r='5'/%3E%3Ccircle cx='120' cy='0' r='5'/%3E%3Ccircle cx='0' cy='120' r='5'/%3E%3Ccircle cx='120' cy='120' r='5'/%3E%3C/g%3E%3C/svg%3E") 0 0/120px 120px,
    radial-gradient(80% 70% at 0% 0%,rgba(20,24,27,0),var(--ardoise) 100%);
  -webkit-mask:linear-gradient(180deg,transparent,#000 22%,#000 80%,transparent);mask:linear-gradient(180deg,transparent,#000 22%,#000 80%,transparent)}
.reserve__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.reserve__intro .display--xl{color:var(--craie);margin-bottom:1.6rem}
.reserve__lead{max-width:30rem;font-size:clamp(1.05rem,1.3vw,1.25rem);color:rgba(244,235,219,.85)}
.bigtel{display:inline-flex;align-items:center;gap:1.1rem;margin:2.2rem 0 1.8rem;padding:1rem 2rem 1rem 1rem;border-radius:999px;background:var(--safran);color:var(--ardoise);transition:background .4s var(--ease)}
.bigtel:hover{background:var(--craie)}
.bigtel__ico{display:grid;place-items:center;width:3.6rem;height:3.6rem;border-radius:50%;background:var(--ardoise);color:var(--safran)}
.bigtel__ico svg{width:1.5rem;height:1.5rem;animation:ring 2.8s ease-in-out infinite;transform-origin:50% 50%}
@keyframes ring{0%,60%,100%{transform:rotate(0)}65%{transform:rotate(-16deg)}70%{transform:rotate(14deg)}75%{transform:rotate(-12deg)}80%{transform:rotate(10deg)}85%{transform:rotate(0)}}
.bigtel__txt{display:flex;flex-direction:column;line-height:1.1}
.bigtel__txt small{font:700 .72rem var(--f-body);letter-spacing:.18em;text-transform:uppercase}
.bigtel__txt b{font:italic 900 clamp(1.7rem,3vw,2.5rem)/1.1 var(--f-display);letter-spacing:-.02em;white-space:nowrap}
.reserve__facts{display:flex;flex-direction:column;gap:.8rem;color:rgba(244,235,219,.88)}
.reserve__facts li{display:flex;align-items:center;gap:.8rem}
.reserve__facts svg{width:1.3rem;height:1.3rem;color:var(--safran);flex:none}

.book{position:relative;background:var(--craie);color:var(--texte);border-radius:var(--leaf-soft);padding:clamp(1.5rem,3vw,2.8rem);box-shadow:0 40px 90px -30px rgba(0,0,0,.65);transform-style:preserve-3d}
.book__title{font:800 clamp(1.6rem,2.4vw,2.2rem)/1.05 var(--f-display);letter-spacing:-.02em;margin-bottom:1.2rem}
.book__steps{display:flex;gap:.5rem;margin-bottom:1.6rem}
.book__steps li{flex:1;display:flex;align-items:center;gap:.6rem;padding-bottom:.7rem;border-bottom:3px solid rgba(27,24,20,.12);font:600 .85rem var(--f-body);color:var(--texte-doux);transition:border-color .5s var(--ease),color .5s}
.book__steps b{display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:rgba(27,24,20,.1);font-size:.8rem;transition:background .5s,color .5s}
.book__steps li.is-on{border-color:var(--brique);color:var(--texte)}
.book__steps li.is-on b{background:var(--brique);color:var(--craie)}
.book__steps li.is-done b{background:var(--feuille);color:#fff}
.book__panel[hidden],.book__done[hidden]{display:none}
.field{border:0;padding:0;margin:0 0 1.35rem;min-width:0}
.field legend,.field label{display:block;margin-bottom:.6rem;font:700 .95rem var(--f-body);letter-spacing:.01em;padding:0}
.field label small,.field legend small{font-weight:500;color:var(--texte-doux)}
.field label span{color:var(--brique);margin-left:.15rem}
.field__hint{font-size:.88rem;color:var(--texte-doux)}
.field--row input,.field--row textarea,.field__other input{
  width:100%;padding:.9rem 1.05rem;border:1.5px solid rgba(27,24,20,.2);border-radius:14px;background:#fffaf1;font:500 1rem var(--f-body);color:var(--texte);
  transition:border-color .3s,box-shadow .3s}
.field--row textarea{resize:vertical;min-height:5rem}
.field--row input:focus,.field--row textarea:focus,.field__other input:focus{outline:0;border-color:var(--brique);box-shadow:0 0 0 4px rgba(184,67,31,.18)}
.field--row input.is-bad{border-color:#c0261b;box-shadow:0 0 0 4px rgba(192,38,27,.14)}
.field__other{display:flex;align-items:center;gap:.8rem;margin:.9rem 0 0;font-weight:600;font-size:.92rem;flex-wrap:wrap}
.field__other input{width:auto;padding:.55rem .8rem}
.stepper{display:flex;align-items:center;gap:1.2rem}
.stepper output{min-width:9rem;text-align:center;font:600 1.05rem var(--f-body)}
.stepper output b{font:italic 900 2.6rem/1 var(--f-display);color:var(--brique);margin-right:.2rem;letter-spacing:-.03em}
.stepper .round{color:var(--texte)}
.chips{display:flex;flex-wrap:wrap;gap:.55rem}
.chip{padding:.62rem 1.05rem;border-radius:999px;border:1.5px solid rgba(27,24,20,.22);background:transparent;font:600 .92rem var(--f-body);color:var(--texte);transition:background .3s var(--ease),color .3s,border-color .3s,transform .3s var(--ease)}
.chip:hover{border-color:var(--brique);transform:translateY(-2px)}
.chip.is-on,.chip[aria-checked="true"]{background:var(--brique);border-color:var(--brique);color:var(--craie)}
.chip[disabled]{opacity:.35;pointer-events:none;text-decoration:line-through}
.chips--dates{flex-wrap:nowrap;overflow-x:auto;padding:.3rem .2rem .7rem;margin:0 -.2rem;scrollbar-width:thin;scroll-snap-type:x proximity}
.chips--dates .chip{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:.05rem;min-width:4.3rem;padding:.6rem .8rem;border-radius:18px;line-height:1.15;scroll-snap-align:start}
.chips--dates .chip small{font:600 .7rem var(--f-body);letter-spacing:.12em;text-transform:uppercase;opacity:.75}
.chips--dates .chip b{font:italic 800 1.5rem/1 var(--f-display)}
.slotgroup{margin-bottom:.9rem}
.slotgroup h4{margin:0 0 .45rem;font:700 .74rem var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--texte-doux)}
.book__error{margin:.2rem 0 1rem;padding:.7rem 1rem;border-radius:12px;background:rgba(192,38,27,.1);color:#8d1a11;font-weight:600;font-size:.92rem}
.book__nav,.book__send{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}
.book__nav{justify-content:space-between;margin-top:.4rem}
.check{display:flex;gap:.75rem;align-items:flex-start;margin:0 0 1.2rem;font-size:.86rem;line-height:1.45;color:var(--texte-doux);cursor:pointer}
.check input{width:1.3rem;height:1.3rem;margin-top:.1rem;accent-color:var(--brique);flex:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.recap{margin-bottom:1.2rem;padding:1.2rem 1.3rem;border-radius:18px;background:#fffaf1;border:1.5px dashed rgba(27,24,20,.25)}
.recap dl{display:grid;grid-template-columns:auto 1fr;gap:.45rem 1.1rem;margin:0}
.recap dt{font:700 .78rem var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--texte-doux);padding-top:.15rem}
.recap dd{margin:0;font-weight:600}
.recap dd.big{font:italic 800 1.5rem/1.15 var(--f-display);color:var(--brique)}
.book__small{margin-bottom:1rem;font-size:.92rem;color:var(--texte-doux)}
.book__back{margin-top:1.1rem;background:none;border:0;padding:0;font-weight:600;font-size:.92rem}
.book__done{text-align:center;padding:1rem 0}
.book__done:focus{outline:0}
.book__done h3{font:800 clamp(1.6rem,2.6vw,2.3rem)/1.1 var(--f-display);margin:1rem 0 .6rem}
.book__done p{max-width:26rem;margin:0 auto 1.4rem;color:var(--texte-doux)}
.book__done .book__send{justify-content:center}
.book__tick{width:5.2rem;height:5.2rem;margin:0 auto;fill:none;stroke:var(--feuille);stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round}
.book__tick circle,.book__tick path{stroke-dasharray:1;stroke-dashoffset:1}
.book__done.is-shown .book__tick circle{animation:draw .9s var(--ease) forwards}
.book__done.is-shown .book__tick path{animation:draw .6s .55s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}

/* ==========================================================================
   9. NOUS TROUVER
   ========================================================================== */
.find{position:relative;z-index:2;background:var(--craie);padding:calc(var(--festons) + clamp(4rem,8vw,7rem)) 0 calc(clamp(4rem,8vw,7rem) + var(--festons));
  background-image:radial-gradient(50% 50% at 0% 100%,rgba(110,143,78,.14),transparent 70%)}
.find__head{margin-bottom:clamp(2rem,5vw,4rem)}
.find__head .display{max-width:16ch}
.find__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.find__info address{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}
.find__info address p{display:flex;gap:.9rem;align-items:flex-start;font-weight:500}
.find__info address svg{width:1.4rem;height:1.4rem;margin-top:.25rem;color:var(--brique);flex:none}
.find__addr{font-size:1.15rem}
.hours{width:100%;border-collapse:collapse;margin-bottom:1.6rem;font-size:1rem}
.hours caption{display:flex;align-items:center;gap:.7rem;text-align:left;margin-bottom:.6rem;font:700 .8rem var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--brique)}
.hours caption svg{width:1.2rem;height:1.2rem}
.hours__now{margin-left:auto;font-weight:700;letter-spacing:.04em;text-transform:none;color:var(--feuille)}
.hours__now.is-closed{color:var(--texte-doux)}
.hours th,.hours td{padding:.62rem .3rem;border-bottom:1px solid rgba(27,24,20,.12);text-align:left;font-weight:600}
.hours td{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.hours tr.is-today{background:linear-gradient(90deg,rgba(237,166,60,.28),rgba(237,166,60,0));}
.hours tr.is-today th{color:var(--brique)}
.hours tr.is-today th::after{content:" · aujourd’hui";font-weight:500;font-size:.82rem;color:var(--texte-doux)}
.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}
.tags li{padding:.45rem .9rem;border-radius:999px;background:rgba(47,74,51,.1);color:var(--platane);font:600 .86rem var(--f-body)}
.find__btns{display:flex;flex-wrap:wrap;gap:.8rem}
.postcard{position:relative;padding:clamp(.8rem,1.4vw,1.3rem);background:#fffaf1;border-radius:6px;box-shadow:0 40px 80px -30px rgba(20,24,27,.55);transform:rotate(1.2deg);transform-style:preserve-3d;
  background-image:repeating-linear-gradient(135deg,var(--brique) 0 14px,transparent 14px 26px,#2c5a8f 26px 40px,transparent 40px 52px);background-size:100% 8px;background-repeat:no-repeat;background-position:0 0}
.postcard__stamp{position:absolute;right:1.6rem;top:-1.5rem;z-index:3;display:flex;align-items:center;gap:.5rem;padding:.55rem .8rem;background:var(--craie);border:2px dashed var(--brique);color:var(--brique);transform:rotate(5deg);font:700 .66rem/1.15 var(--f-body);letter-spacing:.14em;text-transform:uppercase}
.postcard__stamp svg{width:2rem;height:2rem;--vein:rgba(244,235,219,.6)}
.postcard__frame{position:relative;aspect-ratio:4/3.3;margin-top:.6rem;border-radius:3px;overflow:hidden;background:var(--sable)}
.postcard__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.92) contrast(1.02)}
.postcard__veil{position:absolute;inset:0;display:grid;place-items:center;border:0;background:rgba(20,24,27,.28);color:var(--craie);font:700 .95rem var(--f-body);letter-spacing:.06em;transition:opacity .4s}
.postcard__veil.is-off{opacity:0;pointer-events:none}
.postcard__link{display:inline-block;margin-top:.9rem;font-weight:600;font-size:.92rem;color:var(--brique)}

/* ==========================================================================
   10. FOOTER
   ========================================================================== */
.footer{position:relative;z-index:1;background:var(--ardoise);color:var(--craie);padding-top:clamp(3rem,6vw,5rem);overflow:hidden}
.footer__marquee{overflow:hidden;white-space:nowrap;border-block:1px solid rgba(244,235,219,.14);padding:1rem 0;margin-bottom:clamp(2.4rem,5vw,4rem)}
.footer__mtrack{display:inline-flex;will-change:transform}
.footer__mtrack span{display:inline-flex;align-items:center;gap:1.4rem;padding-right:1.4rem;font:italic 800 clamp(1.4rem,3vw,2.6rem)/1 var(--f-display);color:rgba(244,235,219,.9)}
.footer__mtrack svg{width:1em;height:1em;color:var(--safran);--vein:rgba(20,24,27,.4)}
.footer__cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;margin-bottom:clamp(2rem,5vw,4rem);font-size:.98rem;color:rgba(244,235,219,.82)}
.footer__h{margin-bottom:.7rem;font:700 .74rem var(--f-body);letter-spacing:.22em;text-transform:uppercase;color:var(--safran)}
.footer__fb{display:inline-flex;align-items:center;gap:.5rem}
.footer__fb svg{width:1.1rem;height:1.1rem}
.footer__giant{display:flex;align-items:flex-end;justify-content:center;gap:clamp(.2rem,1vw,1rem);padding:0 var(--gutter);line-height:.8;white-space:nowrap;overflow:hidden;user-select:none}
.footer__giant span{font:700 clamp(2.4rem,8vw,8rem)/1 var(--f-craie);color:var(--safran);transform:rotate(-6deg) translateY(-.15em);margin-right:.1em}
.footer__giant b{display:flex;padding-bottom:.04em;font:italic 900 clamp(3.6rem,17.5vw,17.5rem)/.86 var(--f-display);letter-spacing:-.04em;color:var(--craie);font-variation-settings:"opsz" 144}
.footer__giant b i{font-style:inherit;display:inline-block;will-change:transform}
.footer__legal{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:1.6rem 5.5rem;font-size:.82rem;color:rgba(244,235,219,.6)}

/* ---------- Bouton flottant mobile ---------- */
.fab{position:fixed;z-index:70;left:50%;bottom:calc(.9rem + env(safe-area-inset-bottom));display:none;gap:.5rem;padding:.4rem;border-radius:999px;background:rgba(20,24,27,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  box-shadow:0 14px 40px rgba(0,0,0,.45);transform:translate(-50%,160%);transition:transform .6s var(--ease)}
.fab.is-on{transform:translate(-50%,0)}
.fab a{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.3rem;border-radius:999px;font:700 .95rem/1 var(--f-body)}
.fab__call{background:var(--safran);color:var(--ardoise)}
.fab__call svg{width:1.15rem;height:1.15rem}
.fab__book{background:var(--brique);color:var(--craie)}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1100px){
  .nav__links{display:none}
  .nav__burger{display:block}
  .nav__cta{display:none}
  .numbers__grid{grid-template-columns:repeat(2,1fr)}
  .footer__cols{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:899px){
  :root{--festons:26px;--leaf-r:1.4rem 5rem 1.4rem 5rem}
  .hero{align-items:flex-end}
  .hero__inner{padding-bottom:6.5rem}
  .hero__badge{display:none}
  .hero__status{top:5rem;left:var(--gutter);right:auto}
  .hero__scroll{display:none}
  .hero__tel{margin-left:0}


  .board{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(110px,28vw,170px)}
  .g1{grid-column:1/3;grid-row:1/4}
  .g2{grid-column:1/2;grid-row:4/7}
  .g3{grid-column:2/3;grid-row:4/8}
  .g4{grid-column:1/2;grid-row:7/10}
  .g5{grid-column:2/3;grid-row:8/11}
  .g6{grid-column:1/2;grid-row:10/13}
  .g7{grid-column:2/3;grid-row:11/14}
  .g8{grid-column:1/3;grid-row:13/16}
  .g figcaption{transform:translateY(0);font-size:.74rem;left:.6rem;bottom:.6rem;padding:.4rem .7rem}
  .reserve__grid,.find__grid{grid-template-columns:minmax(0,1fr)}
  .reserve__grid>*,.find__grid>*{min-width:0}
  .reviews__hint{display:none}
  .fab{display:flex}
  .footer__legal{padding-bottom:6.5rem}
}
@media (max-width:560px){
  .numbers__val{font-size:clamp(3rem,16vw,4.6rem)}
  .numbers__grid li{aspect-ratio:1/.95;padding:.4rem}
  .bigtel{padding-right:1.4rem}
  .bigtel__txt b{font-size:1.6rem}
  .footer__cols{grid-template-columns:1fr}
  .hero__cta .btn{flex:1 1 auto}
  .book__nav .btn{flex:1 1 auto}
}


/* ---------- Mode sans épinglage : mobile ou mouvement réduit ---------- */
.no-pin .story__stage,html:not(.js) .story__stage{grid-template-columns:1fr;min-height:0;gap:2rem;padding-block:0 2rem}
.no-pin .story__visual,.no-pin .story__meta,.no-pin .story__leafdeco,html:not(.js) .story__visual,html:not(.js) .story__meta{display:none}
.no-pin .story__steps,html:not(.js) .story__steps{min-height:0;display:flex;flex-direction:column;gap:3.2rem}
.no-pin .story__step,html:not(.js) .story__step{position:relative;inset:auto;opacity:1!important;visibility:visible!important;transform:none!important}
.no-pin .story__step::before,html:not(.js) .story__step::before{content:"";display:block;width:100%;aspect-ratio:4/3;margin-bottom:1.4rem;border-radius:var(--leaf-r);background:var(--img) center/cover no-repeat;box-shadow:0 24px 50px -28px rgba(20,24,27,.55)}
@media (min-width:900px){
  .no-pin .story__stage{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  .no-pin .story__steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3rem 2.4rem}
  .no-pin .story__text{grid-column:1/-1}
}
.no-pin .carte__pin,html:not(.js) .carte__pin{height:auto;display:block;overflow:visible;padding-block:clamp(3.5rem,10vw,5rem)}
.no-pin .carte__track,html:not(.js) .carte__track{overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1.6rem;scrollbar-width:none;-webkit-overflow-scrolling:touch;transform:none!important}
.no-pin .carte__track::-webkit-scrollbar{display:none}
.no-pin .carte__intro{flex:0 0 min(82vw,520px);scroll-snap-align:start;padding-right:0}
.no-pin .dish{flex:0 0 min(78vw,360px);scroll-snap-align:center;opacity:1!important;transform:none!important}
.no-pin .dish__media{height:clamp(220px,48vw,320px)}
.no-pin .carte__outro{flex:0 0 min(82vw,460px);scroll-snap-align:center;padding:0}
.no-pin .carte__outro>*{opacity:1!important;transform:none!important}
.no-pin .carte__progress{display:none}
/* ---------- Mouvement réduit ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .hero__status .dot{animation:none}
  .loader{display:none}
  .js body:not(.is-ready){overflow:auto}
}
