/* ============================================================
   Brasserie de la Gare — BGL Café · Langon
   Feuille de style principale
   ============================================================ */

/* ---------- 1. Tokens ---------- */
:root{
  --ink:        #16221E;
  --ink-2:      #1E2E28;
  --ink-3:      #2A3B34;
  --ink-soft:   #3B4E46;

  --cream:      #F6F0E4;
  --cream-2:    #EDE4D3;
  --paper:      #FDFAF4;

  --brass:      #C9A227;
  --brass-2:    #E0C173;
  --brass-d:    #A2801A;
  --bordeaux:   #8C2233;

  --text:       #22302B;
  --muted:      #6B7A73;
  --muted-l:    rgba(246,240,228,.68);
  --line:       rgba(34,48,43,.13);
  --line-l:     rgba(246,240,228,.16);

  --serif: 'Cormorant Garamond', 'Iowan Old Style', Georgia, 'Times New Roman', serif;
  --sans:  'Jost', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  --fs-h1:   clamp(2.85rem, 1.35rem + 6.0vw, 6.6rem);
  --fs-h2:   clamp(2.05rem, 1.25rem + 3.3vw, 3.95rem);
  --fs-h3:   clamp(1.22rem, 1.08rem + .55vw, 1.5rem);
  --fs-lead: clamp(1.05rem, .99rem + .34vw, 1.22rem);
  --fs-body: clamp(1rem, .96rem + .18vw, 1.06rem);

  --pad-y:  clamp(4.5rem, 2.6rem + 6.4vw, 8.75rem);
  --gutter: clamp(1.15rem, .5rem + 3.2vw, 3rem);
  --maxw:   1240px;

  --r-sm: 6px;
  --r:    14px;
  --r-lg: 22px;

  --ease: cubic-bezier(.22,.61,.36,1);
  --shadow:    0 18px 44px -22px rgba(12,24,20,.42);
  --shadow-lg: 0 40px 90px -40px rgba(12,24,20,.58);

  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- 2. Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{-webkit-text-size-adjust:100%}
html:focus-within{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  font-size:var(--fs-body);
  font-weight:300;
  line-height:1.72;
  color:var(--text);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  overflow-x:clip;
}
html{overflow-x:clip}
img,svg,video{display:block;max-width:100%}
img{height:auto}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
ul,ol{list-style:none;padding:0}
a{color:inherit;text-decoration:none}
a:not([href]){cursor:pointer}
table{border-collapse:collapse;width:100%}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:3px}
::selection{background:var(--brass);color:var(--ink)}

.visually-hidden{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.skip-link{
  position:fixed;top:.6rem;left:.6rem;z-index:200;
  padding:.7rem 1.15rem;background:var(--ink);color:var(--cream);
  border-radius:var(--r-sm);font-size:.86rem;letter-spacing:.04em;
  transform:translateY(-160%);transition:transform .25s var(--ease);
}
.skip-link:focus{transform:none}

/* ---------- 3. Utilitaires ---------- */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.section{position:relative;padding-block:var(--pad-y)}
/* les ancres ne doivent pas passer sous l'en-tête fixe */
section[id],[id]{scroll-margin-top:clamp(78px,9vh,104px)}

.section--paper{background:var(--paper)}
.section--cream{background:var(--cream)}
.section--dark{background:var(--ink);color:var(--cream)}
.section--paper::before,.section--cream::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:var(--grain);opacity:.028;mix-blend-mode:multiply;
}

.eyebrow{
  display:flex;align-items:center;gap:.7rem;
  font-size:.735rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;
  color:var(--brass-d);margin-bottom:1.1rem;
}
.eyebrow i{display:block;width:clamp(24px,4vw,46px);height:1px;background:currentColor;opacity:.55;flex:none}
.eyebrow--light{color:var(--brass-2)}

.h2{
  font-family:var(--serif);font-weight:600;font-size:var(--fs-h2);
  line-height:1.04;letter-spacing:-.012em;color:var(--ink);
  text-wrap:balance;
}
.h2 em{font-style:italic;font-weight:400;color:var(--brass-d)}
.h2--light{color:var(--cream)}
.h2--light em{color:var(--brass-2)}
.h3--light{
  font-family:var(--serif);font-size:var(--fs-h3);font-weight:600;
  color:var(--cream);letter-spacing:.005em;margin-bottom:1.1rem;
}
.mt{margin-top:2.6rem}

.lead{font-size:var(--fs-lead);line-height:1.75;color:var(--ink-soft)}
.section__head{max-width:48ch;margin-bottom:clamp(2.5rem,1.5rem + 2.6vw,4.25rem)}
.section__head--center{margin-inline:auto;text-align:center}
.section__head--center .eyebrow{justify-content:center}
.section__intro{margin-top:1.35rem;font-size:var(--fs-lead);line-height:1.72;color:var(--ink-soft)}
.section--dark .section__intro,.cave .section__intro{color:rgba(246,240,228,.74)}

/* Boutons */
.btn{
  --btn-bg:var(--brass);--btn-fg:var(--ink);
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  padding:1.02rem 2.05rem;
  font-size:.815rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;
  background:var(--btn-bg);color:var(--btn-fg);
  border:1px solid var(--btn-bg);border-radius:999px;
  cursor:pointer;position:relative;overflow:hidden;isolation:isolate;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease);
  white-space:nowrap;
}
.btn::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:var(--ink);transform:translateY(101%);
  transition:transform .45s var(--ease);
}
.btn:hover{color:var(--cream);border-color:var(--ink);transform:translateY(-2px);box-shadow:0 14px 30px -14px rgba(12,24,20,.6)}
.btn:hover::after{transform:translateY(0)}
.btn--ghost{--btn-bg:transparent;--btn-fg:var(--cream);border-color:rgba(246,240,228,.42)}
.btn--ghost::after{background:var(--cream)}
.btn--ghost:hover{color:var(--ink);border-color:var(--cream)}
.btn--sm{padding:.72rem 1.35rem;font-size:.735rem;letter-spacing:.13em}
.btn--full{width:100%;margin-top:.6rem}

/* Reveal — masqué uniquement si JS est actif, sinon tout reste visible
   (robots sans JS, mode lecture, JS bloqué) */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .85s var(--ease),transform .85s var(--ease)}
.js .reveal.is-in{opacity:1;transform:none}

/* Barre de progression */
.scroll-progress{position:fixed;inset:0 0 auto;height:2px;z-index:120;pointer-events:none}
.scroll-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--brass-d),var(--brass-2));transition:width .1s linear}

/* Étoiles */
.stars{color:var(--brass);letter-spacing:.12em;font-size:.92em;line-height:1}
.stars__half{position:relative;display:inline-block;color:transparent}
.stars__half::before{content:"★";position:absolute;inset:0;width:50%;overflow:hidden;color:var(--brass)}
.stars__half::after{content:"★";position:absolute;inset:0;color:currentColor;opacity:.3;color:var(--brass);opacity:.28}

/* ============================================================
   4. HEADER
   ============================================================ */
.header{
  position:fixed;inset:0 0 auto;z-index:100;
  transition:background .45s var(--ease),box-shadow .45s var(--ease),backdrop-filter .45s var(--ease);
}
.header::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(10,18,15,.72),rgba(10,18,15,0));
  opacity:1;transition:opacity .4s var(--ease);pointer-events:none;
}
.header.is-stuck{background:rgba(18,28,24,.9);backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 1px 0 rgba(246,240,228,.11),0 18px 40px -30px rgba(0,0,0,.8)}
.header.is-stuck::before{opacity:0}
.header__inner{
  width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  min-height:clamp(68px,4.4vw + 52px,90px);
  transition:min-height .4s var(--ease);
}
.header.is-stuck .header__inner{min-height:clamp(60px,3vw + 48px,74px)}

.brand{display:flex;align-items:center;gap:.8rem;color:var(--cream);flex:0 1 auto;min-width:0;position:relative;z-index:101}
.brand__mark{color:var(--brass);flex:none;display:block;transition:transform .5s var(--ease)}
.brand:hover .brand__mark{transform:rotate(-4deg)}
.brand__mark svg{width:38px;height:38px}
.brand__text{display:flex;flex-direction:column;line-height:1.1;min-width:0}
.brand__text strong,.brand__text em{
  display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.brand__text strong{
  font-family:var(--serif);font-size:1.16rem;font-weight:600;letter-spacing:.005em;
}
.brand__text em{
  font-style:normal;font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;
  color:var(--brass-2);margin-top:.22rem;font-weight:400;
}

.nav__list{display:flex;align-items:center;gap:clamp(.9rem,1.6vw,1.9rem)}
.nav__list a{
  position:relative;display:block;padding:.35rem 0;
  font-size:.775rem;font-weight:400;letter-spacing:.15em;text-transform:uppercase;
  color:rgba(246,240,228,.86);transition:color .3s var(--ease);
}
.nav__list a::after{
  content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;
  background:var(--brass);transform:scaleX(0);transform-origin:right;
  transition:transform .4s var(--ease);
}
.nav__list a:hover{color:var(--cream)}
.nav__list a:hover::after{transform:scaleX(1);transform-origin:left}
.nav__foot{display:none}

.header__actions{display:flex;align-items:center;gap:1rem;flex:none;position:relative;z-index:101}
.header__phone{
  display:inline-flex;align-items:center;gap:.45rem;
  font-size:.79rem;letter-spacing:.07em;color:rgba(246,240,228,.82);white-space:nowrap;
}
.header__phone svg{color:var(--brass-2);flex:none}

.burger{display:none;width:42px;height:42px;position:relative;flex:none}
.burger span{
  position:absolute;left:11px;width:20px;height:1.5px;background:var(--cream);
  transition:transform .35s var(--ease),opacity .25s var(--ease),width .35s var(--ease);
}
.burger span:nth-child(1){top:15px}
.burger span:nth-child(2){top:20.5px}
.burger span:nth-child(3){top:26px;width:13px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg);width:20px}

.nav-scrim{position:fixed;inset:0;z-index:98;background:rgba(10,18,15,.62);backdrop-filter:blur(3px);opacity:0;transition:opacity .4s var(--ease)}
.nav-scrim.is-on{opacity:1}

/* ============================================================
   5. HERO
   ============================================================ */
.hero{
  position:relative;min-height:100svh;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding-block:clamp(8rem,16vh,11rem) clamp(3.5rem,7vh,5.5rem);
  color:var(--cream);overflow:hidden;isolation:isolate;
}
.hero__media{position:absolute;inset:0;z-index:-2}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:center 42%}
.hero::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(to top,rgba(10,18,15,.94) 4%,rgba(10,18,15,.66) 34%,rgba(10,18,15,.30) 62%,rgba(10,18,15,.58) 100%),
    radial-gradient(120% 80% at 20% 90%,rgba(10,18,15,.6),transparent 70%);
}
.hero__inner{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}

.hero__badges{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.85rem}
.chip{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.46rem 1rem;border-radius:999px;
  background:rgba(246,240,228,.09);border:1px solid rgba(246,240,228,.2);
  backdrop-filter:blur(8px);
  font-size:.755rem;letter-spacing:.06em;color:rgba(246,240,228,.92);
}
.chip b{font-weight:500;color:var(--cream)}
.chip--status .dot{width:7px;height:7px;border-radius:50%;background:var(--brass-2);flex:none;box-shadow:0 0 0 3px rgba(224,193,115,.22)}
.chip--status[data-status="open"] .dot{background:#5FCB8B;box-shadow:0 0 0 3px rgba(95,203,139,.22);animation:pulse 2.4s infinite}
.chip--status[data-status="closed"] .dot{background:#D98A6A;box-shadow:0 0 0 3px rgba(217,138,106,.2)}
@keyframes pulse{0%,100%{box-shadow:0 0 0 3px rgba(95,203,139,.22)}50%{box-shadow:0 0 0 7px rgba(95,203,139,0)}}

.hero__eyebrow{
  font-size:.735rem;font-weight:400;letter-spacing:.32em;text-transform:uppercase;
  color:var(--brass-2);margin-bottom:1.15rem;
}
.hero__title{
  font-family:var(--serif);font-weight:500;font-size:var(--fs-h1);
  line-height:.94;letter-spacing:-.022em;margin-bottom:1.5rem;text-wrap:balance;
}
.hero__title-1{display:block}
.hero__title-2{
  display:block;font-style:italic;font-weight:400;color:var(--brass-2);
  font-size:.62em;margin-top:.12em;letter-spacing:-.01em;padding-left:.08em;
}
.hero__lead{max-width:56ch;font-size:var(--fs-lead);line-height:1.72;color:rgba(246,240,228,.86)}
.hero__lead strong{font-weight:400;color:var(--cream);border-bottom:1px solid rgba(201,162,39,.55);padding-bottom:1px}

.hero__cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.3rem}

.hero__facts{
  display:flex;flex-wrap:wrap;gap:.7rem 2.2rem;margin-top:3rem;
  padding-top:1.65rem;border-top:1px solid rgba(246,240,228,.16);
}
.hero__facts li{display:flex;align-items:center;gap:.6rem;font-size:.83rem;letter-spacing:.03em;color:rgba(246,240,228,.8)}
.hero__facts svg{width:17px;height:17px;flex:none;fill:none;stroke:var(--brass-2);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}

.hero__scroll{
  position:absolute;right:var(--gutter);bottom:clamp(3.5rem,7vh,5.5rem);
  display:flex;flex-direction:column;align-items:center;gap:.85rem;
  font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:rgba(246,240,228,.55);
  writing-mode:vertical-rl;
}
.hero__scroll svg{width:15px;height:26px;writing-mode:horizontal-tb;animation:nudge 2.6s var(--ease) infinite}
@keyframes nudge{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(5px);opacity:1}}

/* ============================================================
   6. TICKER
   ============================================================ */
.ticker{
  background:var(--ink-2);color:var(--brass-2);overflow:hidden;
  border-block:1px solid rgba(201,162,39,.2);padding-block:.92rem;
}
.ticker__track{display:flex;width:max-content;animation:slide 46s linear infinite}
.ticker__group{display:flex;align-items:center;gap:1.9rem;padding-right:1.9rem;white-space:nowrap}
.ticker b{font-size:.74rem;font-weight:400;letter-spacing:.26em;text-transform:uppercase}
.ticker i{font-style:normal;font-size:.5rem;opacity:.5}
@keyframes slide{to{transform:translateX(-50%)}}

/* ============================================================
   7. LA MAISON
   ============================================================ */
.maison{
  display:grid;grid-template-columns:1.06fr .94fr;
  gap:clamp(2.5rem,1rem + 5vw,6rem);align-items:center;
}
.maison__text p+p{margin-top:1.1rem}
.maison__text .lead{margin-bottom:1.35rem}
.maison__text p{color:var(--ink-soft)}
.maison__text strong{font-weight:500;color:var(--ink)}

.pills{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2.1rem}
.pills li{
  padding:.42rem 1rem;border:1px solid var(--line);border-radius:999px;
  font-size:.755rem;letter-spacing:.08em;color:var(--ink-soft);background:rgba(255,255,255,.5);
}

.sign{margin-top:2.4rem;padding-top:1.5rem;border-top:1px solid var(--line);display:flex;flex-direction:column}
.sign__name{font-family:var(--serif);font-style:italic;font-size:1.55rem;color:var(--ink);line-height:1.2}
.sign__role{font-size:.73rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:.4rem}

.maison__media{position:relative;padding-bottom:clamp(2.5rem,5vw,4.5rem)}
.frame{position:relative;overflow:hidden;border-radius:var(--r-lg);box-shadow:var(--shadow)}
.frame img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.frame:hover img{transform:scale(1.035)}
.frame--tall{aspect-ratio:3/4}
.frame--float{
  position:absolute;right:-6%;bottom:0;width:56%;aspect-ratio:3/2;
  border:7px solid var(--paper);box-shadow:var(--shadow-lg);border-radius:var(--r);
}
.frame--sm{margin-top:2.2rem;aspect-ratio:3/2;border-radius:var(--r)}
.frame__stamp{
  position:absolute;left:-1.6rem;top:8%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;
  width:clamp(74px,8vw,96px);aspect-ratio:1;border-radius:50%;
  background:var(--brass);color:var(--ink);
  font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;text-align:center;
  box-shadow:0 12px 26px -12px rgba(12,24,20,.6);
  animation:spin-slow 26s linear infinite;
}
.frame__stamp b{font-weight:500}
.frame__stamp em{font-family:var(--serif);font-style:italic;font-size:1.32rem;letter-spacing:0;text-transform:none;line-height:1}
@keyframes spin-slow{to{transform:rotate(360deg)}}

/* Stats */
.stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.2rem,2.5vw,2.8rem);
  margin-top:clamp(3.5rem,2rem + 4vw,6rem);
  padding-top:clamp(2.2rem,1.5rem + 2vw,3.2rem);border-top:1px solid var(--line);
}
.stats li{display:flex;flex-direction:column;gap:.5rem}
.stats .num{
  font-family:var(--serif);font-size:clamp(2.6rem,1.6rem + 3vw,3.9rem);font-weight:500;
  line-height:.95;color:var(--brass-d);letter-spacing:-.02em;font-variant-numeric:lining-nums;
}
.stats span{font-size:.86rem;line-height:1.5;color:var(--ink-soft)}
.stats small{font-size:.76rem;color:var(--muted)}

/* ============================================================
   8. LA CARTE
   ============================================================ */
.dishes{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(1.1rem,.6rem + 1.6vw,2rem);
}
.dish{
  background:var(--ink-2);border:1px solid rgba(246,240,228,.09);
  border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;
  transition:transform .55s var(--ease),border-color .55s var(--ease),box-shadow .55s var(--ease);
}
.dish:hover{transform:translateY(-7px);border-color:rgba(201,162,39,.42);box-shadow:0 34px 60px -34px rgba(0,0,0,.85)}
.dish__img{aspect-ratio:4/3;overflow:hidden;position:relative}
.dish__img::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(22,34,30,.5),transparent 55%)}
.dish__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.15s var(--ease)}
.dish:hover .dish__img img{transform:scale(1.06)}
.dish__body{padding:1.5rem clamp(1.25rem,2vw,1.7rem) 1.7rem;display:flex;flex-direction:column;flex:1}
.dish__tag{
  align-self:flex-start;font-size:.635rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--brass-2);padding:.28rem .68rem;border:1px solid rgba(201,162,39,.36);
  border-radius:999px;margin-bottom:.95rem;
}
.dish h3{
  font-family:var(--serif);font-size:1.44rem;font-weight:600;line-height:1.15;
  color:var(--cream);margin-bottom:.6rem;letter-spacing:.004em;
}
.dish p{font-size:.895rem;line-height:1.6;color:rgba(246,240,228,.62)}
.dish__price{
  margin-top:auto;padding-top:1.15rem;
  font-family:var(--serif);font-size:1.35rem!important;font-weight:600;
  color:var(--brass)!important;letter-spacing:.01em;
}

/* Formules + carte */
.formules{
  display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(1.4rem,1rem + 2vw,2.6rem);
  margin-top:clamp(2.4rem,1.5rem + 2.5vw,4rem);align-items:start;
}
.formules__slate{
  position:relative;padding:clamp(1.8rem,1.2rem + 1.8vw,2.7rem);
  background:linear-gradient(155deg,#22332C,#141F1B 70%);
  border:1px solid rgba(201,162,39,.3);border-radius:var(--r-lg);
  box-shadow:inset 0 0 60px rgba(0,0,0,.45);
}
.formules__slate::before{
  content:"";position:absolute;inset:9px;border:1px dashed rgba(201,162,39,.22);
  border-radius:calc(var(--r-lg) - 8px);pointer-events:none;
}
.slate__eyebrow{font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;color:var(--brass-2);margin-bottom:.5rem}
.slate__title{font-family:var(--serif);font-size:2.1rem;font-weight:600;color:var(--cream);line-height:1.05}
.slate__date{font-size:.79rem;color:rgba(246,240,228,.55);margin-top:.4rem;font-style:italic}
.slate__list{margin-top:1.7rem;display:flex;flex-direction:column;gap:.1rem}
.slate__list li{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  padding:.85rem 0;border-bottom:1px dotted rgba(246,240,228,.18);
}
.slate__list li:last-child{border-bottom:0}
.slate__list span{color:var(--cream);font-size:.95rem;display:flex;flex-direction:column;gap:.12rem}
.slate__list small{font-size:.755rem;color:rgba(246,240,228,.5);font-style:italic}
.slate__list small i{font-style:normal;color:var(--brass-2)}
.slate__list b{font-family:var(--serif);font-size:1.42rem;font-weight:600;color:var(--brass);white-space:nowrap}
.slate__note{margin-top:1.35rem;font-size:.76rem;color:rgba(246,240,228,.48);line-height:1.55}

.menu{
  background:rgba(246,240,228,.045);border:1px solid rgba(246,240,228,.11);
  border-radius:var(--r-lg);padding:clamp(1.4rem,1rem + 1.4vw,2.2rem);
}
.menu__tabs{
  display:flex;flex-wrap:wrap;gap:.4rem;
  padding-bottom:1.15rem;margin-bottom:.5rem;border-bottom:1px solid rgba(246,240,228,.13);
}
.menu__tab{
  padding:.55rem 1.15rem;border-radius:999px;border:1px solid transparent;
  font-size:.735rem;letter-spacing:.15em;text-transform:uppercase;
  color:rgba(246,240,228,.6);transition:all .3s var(--ease);
}
.menu__tab:hover{color:var(--cream);border-color:rgba(246,240,228,.24)}
.menu__tab.is-active{background:var(--brass);color:var(--ink);border-color:var(--brass);font-weight:500}
.menu__panel{animation:fadeUp .5s var(--ease) both}
@keyframes fadeUp{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
.carte li{
  display:flex;align-items:baseline;gap:.6rem;
  padding:.82rem 0;border-bottom:1px solid rgba(246,240,228,.075);
}
.carte li:last-child{border-bottom:0}
.carte__name{color:var(--cream);font-size:.95rem;line-height:1.4}
.carte__name small{display:block;font-size:.72rem;color:rgba(246,240,228,.44);font-style:italic;letter-spacing:.02em}
.carte__dots{flex:1 1 auto;min-width:1.2rem;border-bottom:1px dotted rgba(246,240,228,.28);transform:translateY(-.22em)}
.carte__price{font-family:var(--serif);font-size:1.14rem;font-weight:600;color:var(--brass);white-space:nowrap}
.veg{
  display:inline-flex;align-items:center;justify-content:center;
  width:16px;height:16px;border-radius:50%;background:rgba(122,178,120,.2);
  color:#8FCB8C;font-style:normal;font-size:.6rem;font-weight:500;
  vertical-align:1px;margin-left:.3rem;
}
.menu__legend{margin-top:1.3rem;font-size:.735rem;color:rgba(246,240,228,.42);display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}

/* ============================================================
   9. LA CAVE
   ============================================================ */
.cave{background:var(--ink);color:var(--cream);overflow:hidden;isolation:isolate}
.cave__bg{position:absolute;inset:0;z-index:-2}
.cave__bg img{width:100%;height:100%;object-fit:cover;opacity:.3}
.cave::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(100deg,rgba(16,26,22,.96) 34%,rgba(16,26,22,.62) 72%,rgba(16,26,22,.35));
}
.cave__inner{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2.5rem,1rem + 5vw,6rem);align-items:center}
.cave__text strong{font-weight:400;color:var(--brass-2)}
.cave__aoc{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  margin-top:2.4rem;background:rgba(246,240,228,.13);border:1px solid rgba(246,240,228,.13);
  border-radius:var(--r);overflow:hidden;
}
.cave__aoc li{
  background:rgba(16,26,22,.72);padding:1.15rem 1.3rem;
  display:flex;flex-direction:column;gap:.18rem;
  transition:background .4s var(--ease);
}
.cave__aoc li:hover{background:rgba(201,162,39,.12)}
.cave__aoc b{font-family:var(--serif);font-size:1.3rem;font-weight:600;color:var(--brass-2)}
.cave__aoc span{font-size:.78rem;color:rgba(246,240,228,.55);letter-spacing:.04em}
.cave__note{
  margin-top:1.9rem;padding-left:1.15rem;border-left:2px solid var(--brass);
  font-family:var(--serif);font-style:italic;font-size:1.16rem;line-height:1.55;
  color:rgba(246,240,228,.82);
}
.cave__media .frame{aspect-ratio:3/4;box-shadow:var(--shadow-lg)}

/* ============================================================
   10. AMBIANCE
   ============================================================ */
.gallery{
  display:grid;grid-template-columns:repeat(4,1fr);
  grid-template-rows:clamp(160px,15.5vw,222px) clamp(198px,19.5vw,278px);
  gap:clamp(.6rem,.3rem + .9vw,1.1rem);
}
.g{position:relative;overflow:hidden;border-radius:var(--r)}
.g--wide{grid-column:span 2}
.g img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .6s var(--ease)}
.g::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(16,26,22,.68),transparent 46%);
  opacity:.85;transition:opacity .5s var(--ease);
}
.g:hover img{transform:scale(1.07)}
.g:hover::after{opacity:1}
.g figcaption{
  position:absolute;left:1.1rem;bottom:.95rem;z-index:2;
  font-size:.735rem;letter-spacing:.19em;text-transform:uppercase;color:var(--cream);
  transform:translateY(4px);opacity:.9;transition:transform .5s var(--ease),opacity .5s var(--ease);
}
.g:hover figcaption{transform:none;opacity:1}

/* ============================================================
   11. AVIS
   ============================================================ */
.rating-row{
  display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(1.4rem,3vw,3.4rem);
  margin-top:2rem;padding-top:1.8rem;border-top:1px solid var(--line);
}
.rating-row__item{display:flex;flex-direction:column;align-items:center;gap:.32rem}
.rating-row__item b{font-family:var(--serif);font-size:2.15rem;font-weight:600;color:var(--ink);line-height:1}
.rating-row__over{font-family:var(--serif);font-size:.95rem;color:var(--muted);margin-top:-.2rem}
.rating-row__item small{font-size:.735rem;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}

.reviews{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.9rem,.5rem + 1.2vw,1.6rem)}
.review{
  position:relative;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:clamp(1.5rem,1.1rem + 1.1vw,2rem);
  display:flex;flex-direction:column;gap:1rem;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease);
}
.review:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:rgba(201,162,39,.42)}
.review::before{
  content:"”";position:absolute;right:1.15rem;top:.1rem;
  font-family:var(--serif);font-size:5rem;line-height:1;color:var(--brass);opacity:.16;
}
.review p{font-size:.925rem;line-height:1.68;color:var(--ink-soft);flex:1}
.review footer{display:flex;flex-direction:column;gap:.1rem;padding-top:.85rem;border-top:1px solid var(--line)}
.review footer b{font-weight:500;font-size:.92rem;color:var(--ink)}
.review footer span{font-size:.735rem;letter-spacing:.06em;color:var(--muted)}

/* ============================================================
   12. INFOS & ACCÈS
   ============================================================ */
.infos{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(2.2rem,1rem + 4vw,4.5rem);align-items:start}

.hours{font-size:.9rem}
.hours th,.hours td{padding:.72rem .55rem;text-align:left;border-bottom:1px solid rgba(246,240,228,.11)}
.hours td:first-of-type{white-space:nowrap}
.hours thead th{
  font-size:.66rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;
  color:var(--brass-2);padding-bottom:.65rem;border-bottom-color:rgba(201,162,39,.3);
}
.hours tbody th{font-weight:400;color:rgba(246,240,228,.9)}
.hours td{color:rgba(246,240,228,.66);font-variant-numeric:tabular-nums}
.hours td b{font-weight:400;color:var(--brass-2)}
.hours tr:first-child th,.hours tr:first-child td{padding-top:.85rem}
.hours .is-closed td{color:rgba(246,240,228,.4);font-style:italic}
.hours tr.is-today{position:relative}
.hours tr.is-today th,.hours tr.is-today td{background:rgba(201,162,39,.11);color:var(--cream)}
.hours tr.is-today th{font-weight:500;box-shadow:inset 3px 0 0 var(--brass)}
.hours tr.is-today th::after{
  content:"aujourd'hui";margin-left:.6rem;font-size:.62rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--brass-2);
}
.hours__note{margin-top:1rem;font-size:.775rem;color:rgba(246,240,228,.46);line-height:1.55}

.contact{display:flex;flex-direction:column;gap:.15rem}
.contact li{display:grid;grid-template-columns:6.5rem 1fr;gap:1rem;padding:.72rem 0;border-bottom:1px solid rgba(246,240,228,.09)}
.contact li:last-child{border-bottom:0}
.contact__k{font-size:.68rem;letter-spacing:.17em;text-transform:uppercase;color:rgba(246,240,228,.45);padding-top:.28rem}
.contact__v{color:rgba(246,240,228,.9);line-height:1.5;font-size:.94rem}
.contact__v--big{font-family:var(--serif);font-size:1.55rem;font-weight:600;color:var(--brass-2);letter-spacing:.01em}

.map{position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid rgba(246,240,228,.14);box-shadow:var(--shadow-lg)}
.map img{width:100%;aspect-ratio:14/9;object-fit:cover;filter:saturate(.9)}
.map__pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-100%);width:34px;height:44px;pointer-events:none}
.map__pin::before{
  content:"";position:absolute;inset:0;
  background:var(--bordeaux);
  clip-path:path("M17 44C17 44 34 25.5 34 16A17 17 0 1 0 0 16c0 9.5 17 28 17 28Z");
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.4));
}
.map__pin i{
  position:absolute;left:50%;top:16px;transform:translate(-50%,-50%);
  width:12px;height:12px;border-radius:50%;background:var(--cream);
}
.map__pin::after{
  content:"";position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);
  width:30px;height:9px;border-radius:50%;background:rgba(0,0,0,.28);filter:blur(3px);
}
.map__card{
  position:absolute;left:1rem;right:1rem;bottom:1rem;
  display:flex;flex-direction:column;gap:.18rem;
  padding:.95rem 1.15rem;border-radius:var(--r);
  background:rgba(20,31,27,.9);backdrop-filter:blur(10px);
  border:1px solid rgba(246,240,228,.16);
}
.map__card b{font-family:var(--serif);font-size:1.1rem;font-weight:600;color:var(--cream)}
.map__card span{font-size:.8rem;color:rgba(246,240,228,.68)}
.map__meta{font-size:.7rem!important;letter-spacing:.09em;text-transform:uppercase;color:var(--brass-2)!important}

.access{margin-top:2.4rem}
.access__list{display:flex;flex-direction:column;gap:.2rem}
.access__list li{display:flex;gap:1rem;padding:1rem 0;border-bottom:1px solid rgba(246,240,228,.09)}
.access__list svg{
  width:34px;height:34px;flex:none;padding:7px;border-radius:50%;
  background:rgba(201,162,39,.13);
  fill:none;stroke:var(--brass-2);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;
}
.access__list div{display:flex;flex-direction:column;gap:.18rem}
.access__list b{font-weight:500;font-size:.94rem;color:var(--cream)}
.access__list span{font-size:.855rem;line-height:1.55;color:rgba(246,240,228,.6)}
.access__badges{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.5rem}
.badge{
  padding:.38rem .9rem;border:1px solid rgba(246,240,228,.2);border-radius:999px;
  font-size:.715rem;letter-spacing:.09em;color:rgba(246,240,228,.72);
}

/* ============================================================
   13. RÉSERVATION
   ============================================================ */
.booking{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(2.2rem,1rem + 4vw,4.5rem);align-items:start}
.booking__intro .lead{margin-top:1.4rem}
.booking__call{
  margin-top:2.2rem;padding:1.4rem 1.6rem;border-radius:var(--r);
  background:var(--cream);border:1px solid var(--line);
  display:flex;flex-direction:column;gap:.18rem;
}
.booking__call-k{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.booking__call-v{font-family:var(--serif);font-size:1.95rem;font-weight:600;color:var(--ink);letter-spacing:.015em;line-height:1.15}
.booking__call-h{font-size:.775rem;color:var(--muted)}

.booking__form{
  background:var(--cream);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:clamp(1.5rem,1rem + 1.9vw,2.6rem);box-shadow:var(--shadow);
}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.field{display:flex;flex-direction:column;gap:.45rem;margin-bottom:1rem;min-width:0}
.field label{font-size:.72rem;font-weight:400;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-soft)}
.field .opt{text-transform:none;letter-spacing:.02em;color:var(--muted);font-style:italic}

.field input[type=text],
.field input[type=tel],
.field input[type=email],
.field input[type=date],
.field textarea,
.select > select{
  width:100%;
  padding:.92rem 1.1rem;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r-sm);
  font-size:.95rem;font-weight:300;color:var(--text);
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease);
}
.field textarea{resize:vertical;min-height:96px;line-height:1.6}
.field ::placeholder{color:#A3ADA8;opacity:1}
.field input:hover,.field textarea:hover,.select > select:hover{border-color:rgba(34,48,43,.26)}
.field input:focus,.field textarea:focus,.select > select:focus{
  outline:none;border-color:var(--brass);background:#fff;
  box-shadow:0 0 0 3px rgba(201,162,39,.18);
}

/* --- SÉLECTEURS : flèche décollée du texte ET du bord --- */
.select{position:relative;display:block;min-width:0}
.select > select{
  -webkit-appearance:none;appearance:none;
  /* la réserve à droite (3.5rem) garde le texte loin de la flèche */
  padding-right:3.5rem;
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
  cursor:pointer;line-height:1.5;
}
.select::after{
  content:"";position:absolute;pointer-events:none;
  right:1.25rem;top:50%;
  width:9px;height:9px;
  border-right:1.6px solid var(--brass-d);
  border-bottom:1.6px solid var(--brass-d);
  transform:translateY(-70%) rotate(45deg);
  transition:transform .3s var(--ease),border-color .3s var(--ease);
}
.select:hover::after{border-color:var(--ink)}
.select:focus-within::after{transform:translateY(-25%) rotate(225deg);border-color:var(--ink)}
.select > select option{color:#22302B;background:#FDFAF4}
.select > select optgroup{color:#6B7A73;font-style:normal;font-weight:500}

.field--check{flex-direction:row;align-items:flex-start;gap:.7rem;margin-top:.4rem;margin-bottom:1.3rem}
.field--check input{
  appearance:none;-webkit-appearance:none;flex:none;
  width:19px;height:19px;margin-top:.16rem;
  border:1px solid rgba(34,48,43,.3);border-radius:4px;background:var(--paper);
  cursor:pointer;transition:all .25s var(--ease);position:relative;
}
.field--check input:checked{background:var(--brass);border-color:var(--brass)}
.field--check input:checked::after{
  content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;
  border:solid var(--ink);border-width:0 2px 2px 0;transform:rotate(43deg);
}
.field--check label{
  text-transform:none;letter-spacing:.005em;font-size:.83rem;line-height:1.55;
  color:var(--ink-soft);cursor:pointer;
}
.booking__legal{margin-top:1rem;font-size:.735rem;line-height:1.55;color:var(--muted);text-align:center}

/* ============================================================
   14. FAQ
   ============================================================ */
.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,1rem + 3vw,4.5rem);align-items:start}
.faq .section__head{margin-bottom:0;position:sticky;top:120px}
.faq__list{display:flex;flex-direction:column;gap:.55rem}
.qa{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
  transition:border-color .35s var(--ease),box-shadow .35s var(--ease);
}
.qa[open]{border-color:rgba(201,162,39,.45);box-shadow:var(--shadow)}
.qa summary{
  display:flex;align-items:center;justify-content:space-between;gap:1.2rem;
  padding:1.15rem clamp(1.1rem,2vw,1.5rem);cursor:pointer;list-style:none;
}
.qa summary::-webkit-details-marker{display:none}
.qa summary span{
  font-family:var(--serif);font-size:clamp(1.08rem,1rem + .35vw,1.28rem);
  font-weight:600;line-height:1.3;color:var(--ink);
}
.qa summary i{
  position:relative;flex:none;width:26px;height:26px;border-radius:50%;
  border:1px solid var(--line);transition:all .35s var(--ease);
}
.qa summary i::before,.qa summary i::after{
  content:"";position:absolute;left:50%;top:50%;background:var(--ink-soft);
  transform:translate(-50%,-50%);transition:transform .35s var(--ease),background .35s var(--ease);
}
.qa summary i::before{width:10px;height:1.4px}
.qa summary i::after{width:1.4px;height:10px}
.qa[open] summary i{background:var(--brass);border-color:var(--brass);transform:rotate(180deg)}
.qa[open] summary i::after{transform:translate(-50%,-50%) scaleY(0)}
.qa:hover summary i{border-color:var(--brass)}
.qa__body{padding:0 clamp(1.1rem,2vw,1.5rem) 1.35rem;animation:fadeUp .4s var(--ease) both}
.qa__body p{font-size:.925rem;line-height:1.7;color:var(--ink-soft)}
.qa__body strong{font-weight:500;color:var(--ink)}

/* ============================================================
   15. CTA FINAL
   ============================================================ */
.cta-final{
  position:relative;padding-block:clamp(3.8rem,2rem + 5vw,6.5rem);
  background:var(--ink-2);color:var(--cream);text-align:center;overflow:hidden;
}
.cta-final::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(70% 130% at 50% 0%,rgba(201,162,39,.16),transparent 62%);
}
.cta-final__inner{position:relative;display:flex;flex-direction:column;align-items:center}
.cta-final .eyebrow{justify-content:center}
.cta-final p{margin-top:1.15rem;max-width:52ch;color:rgba(246,240,228,.72);font-size:var(--fs-lead)}
.cta-final__btns{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1.3rem;margin-top:2.2rem}
.cta-final__tel{font-size:.9rem;color:rgba(246,240,228,.6)}
.cta-final__tel b{font-family:var(--serif);font-size:1.4rem;font-weight:600;color:var(--brass-2);letter-spacing:.01em;margin-left:.15rem}

/* ============================================================
   16. FOOTER
   ============================================================ */
.footer{background:var(--ink);color:rgba(246,240,228,.72);padding-top:clamp(3.2rem,2rem + 3.5vw,5rem)}
.footer__grid{
  display:grid;grid-template-columns:1.7fr 1fr 1.15fr 1.15fr;
  gap:clamp(2rem,1rem + 3vw,3.6rem);padding-bottom:clamp(2.6rem,1.5rem + 3vw,4rem);
}
.brand--footer{color:var(--cream)}
.brand--footer .brand__text strong{font-size:1.3rem}
.footer__pitch{margin-top:1.35rem;font-size:.875rem;line-height:1.7;color:rgba(246,240,228,.55);max-width:38ch}
.footer__social{display:flex;gap:.55rem;margin-top:1.6rem}
.soc{
  display:grid;place-items:center;width:38px;height:38px;border-radius:50%;
  border:1px solid rgba(246,240,228,.2);color:rgba(246,240,228,.72);
  transition:all .35s var(--ease);
}
.soc svg{width:17px;height:17px;fill:currentColor}
.soc:hover{background:var(--brass);border-color:var(--brass);color:var(--ink);transform:translateY(-3px)}

.footer__col h3{
  font-size:.7rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;
  color:var(--brass-2);margin-bottom:1.15rem;
}
.footer__col ul li{margin-bottom:.58rem}
.footer__col ul a{font-size:.885rem;color:rgba(246,240,228,.66);transition:color .3s var(--ease),padding-left .3s var(--ease)}
.footer__col ul a:hover{color:var(--brass-2);padding-left:.28rem}
.footer address{font-style:normal;font-size:.885rem;line-height:1.75;color:rgba(246,240,228,.66)}
.footer address b{font-weight:500;color:var(--cream)}
.footer__contact{display:flex;flex-direction:column;gap:.3rem;margin-top:1.1rem;font-size:.875rem;color:rgba(246,240,228,.6)}
.footer__contact b{font-weight:400;color:var(--brass-2)}
.footer__hours li{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;font-size:.845rem;border-bottom:1px solid rgba(246,240,228,.07)}
.footer__hours span{color:rgba(246,240,228,.6)}
.footer__hours b{font-weight:400;color:rgba(246,240,228,.88);text-align:right}
.footer__hours-alt{border-bottom:0!important;margin-top:.4rem;opacity:.8}
.footer__hours-alt b{color:var(--brass-2)!important}
.footer__zones{margin-top:1.1rem;font-size:.775rem;line-height:1.6;color:rgba(246,240,228,.42)}

.footer__bar{border-top:1px solid rgba(246,240,228,.11);padding-block:1.35rem}
.footer__bar-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem}
.footer__bar p{font-size:.775rem;color:rgba(246,240,228,.42)}
.footer__legal{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}
.footer__legal a{transition:color .3s var(--ease)}
.footer__legal a:hover{color:var(--brass-2)}
.footer__legal span{opacity:.35}

/* ============================================================
   17. RETOUR EN HAUT
   ============================================================ */
.to-top{
  position:fixed;right:clamp(1rem,2.2vw,1.9rem);bottom:clamp(1rem,2.2vw,1.9rem);z-index:90;
  display:grid;place-items:center;width:46px;height:46px;border-radius:50%;
  background:var(--brass);color:var(--ink);box-shadow:0 12px 26px -12px rgba(12,24,20,.7);
  opacity:0;visibility:hidden;transform:translateY(14px) scale(.9);
  transition:all .45s var(--ease);
}
.to-top svg{width:19px;height:19px}
.to-top.is-on{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--ink);color:var(--brass);transform:translateY(-3px)}

/* ============================================================
   18. RESPONSIVE
   ============================================================ */
@media (max-width:1180px){
  .nav__list{gap:.95rem}
  .nav__list a{font-size:.73rem;letter-spacing:.11em}
  .header__phone{display:none}
}

/* le formulaire passe pleine largeur avant que ses 3 colonnes ne serrent trop */
@media (max-width:1120px){
  .booking{grid-template-columns:1fr}
  .booking__intro{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:end}
  .booking__intro .eyebrow,.booking__intro .h2,.booking__intro .lead{grid-column:1/-1}
  .booking__intro .frame--sm{margin-top:0}
}
@media (max-width:680px){
  .booking__intro{grid-template-columns:1fr}
}

@media (max-width:1024px){
  .dishes{grid-template-columns:repeat(2,1fr)}
  .reviews{grid-template-columns:repeat(2,1fr)}
  .formules{grid-template-columns:1fr}
  .faq{grid-template-columns:1fr}
  .faq .section__head{position:static;margin-bottom:2rem}
  .stats{grid-template-columns:repeat(2,1fr);gap:2rem 1.5rem}
}

/* --- Navigation mobile --- */
@media (max-width:900px){
  .burger{display:block}
  .nav{
    position:fixed;inset:0 0 0 auto;z-index:99;width:min(86vw,370px);
    background:var(--ink);border-left:1px solid rgba(201,162,39,.24);
    padding:clamp(5.5rem,14vh,7rem) 2rem 2.4rem;
    display:flex;flex-direction:column;justify-content:space-between;
    transform:translateX(100%);transition:transform .5s var(--ease);
    box-shadow:-30px 0 60px -30px rgba(0,0,0,.7);overflow-y:auto;
  }
  .nav.is-open{transform:none}
  .nav__list{flex-direction:column;align-items:stretch;gap:0}
  .nav__list li{border-bottom:1px solid rgba(246,240,228,.09)}
  .nav__list a{
    padding:1.02rem 0;font-size:1.24rem;letter-spacing:.015em;text-transform:none;
    font-family:var(--serif);font-weight:500;color:var(--cream);
  }
  /* le bouton « Réserver » cède la place à la croix quand le panneau est ouvert */
  body.nav-open .header__actions .btn{opacity:0;pointer-events:none;transition:opacity .25s var(--ease)}
  .nav__list a::after{display:none}
  .nav__foot{display:block;margin-top:2.4rem;padding-top:1.6rem;border-top:1px solid rgba(201,162,39,.28)}
  .nav__addr{font-size:.85rem;line-height:1.6;color:rgba(246,240,228,.6)}
  .nav__tel{font-family:var(--serif);font-size:1.5rem;font-weight:600;color:var(--brass-2);margin-top:.5rem}
  body.nav-open{overflow:hidden}

  .maison,.cave__inner,.infos,.booking{grid-template-columns:1fr}
  .maison__media{order:-1;max-width:540px;margin-inline:auto;width:100%}
  .cave__media{max-width:460px;margin-inline:auto;width:100%}
  .gallery{grid-template-columns:repeat(2,1fr);grid-template-rows:none;grid-auto-rows:clamp(150px,26vw,210px)}
  .g--wide{grid-column:span 2}
  .footer__grid{grid-template-columns:1fr 1fr}
  .hero__scroll{display:none}
}

@media (max-width:680px){
  .dishes{grid-template-columns:1fr}
  .reviews{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr;gap:1.8rem 1.2rem}
  .grid-2,.grid-3{grid-template-columns:1fr}
  .cave__aoc{grid-template-columns:1fr}
  .hero{min-height:auto;padding-block:clamp(7rem,22vh,9rem) 3.2rem}
  .hero__facts{flex-direction:column;gap:.6rem}
  .hero__cta .btn{flex:1 1 100%}
  .frame--float{position:relative;right:auto;bottom:auto;width:72%;margin:-14% 0 0 auto;aspect-ratio:3/2}
  .frame__stamp{left:auto;right:6%;top:-1.8rem;z-index:3}
  .rating-row{gap:1.6rem}
  .footer__grid{grid-template-columns:1fr}
  .footer__bar-in{flex-direction:column;text-align:center}
  .contact li{grid-template-columns:1fr;gap:.15rem}
  .contact__k{padding-top:0}
  .menu__tabs{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}
  .menu__tab{text-align:center}
  .review::before{font-size:4rem}
  .hero__eyebrow-x{display:none}
  .hours{font-size:.8rem}
  .hours th,.hours td{padding:.62rem .38rem}
  .hours tr.is-today th::after{margin-left:.35rem;font-size:.55rem;letter-spacing:.1em}
}

/* En-tête : rien ne doit déborder sur les petits écrans */
@media (max-width:560px){
  .header__inner{gap:.7rem}
  .brand{gap:.6rem}
  .brand__mark svg{width:34px;height:34px}
  .brand__text strong{font-size:.98rem}
  .brand__text em{font-size:.55rem;letter-spacing:.17em}
  .btn--sm{padding:.6rem .98rem;font-size:.675rem;letter-spacing:.085em}
  .burger{width:38px;height:38px}
  .burger span{left:9px}
  .burger span:nth-child(1){top:13px}
  .burger span:nth-child(2){top:18.5px}
  .burger span:nth-child(3){top:24px}
}
/* sous 356 px, la pastille « Réserver » cède la place : le panneau et le héros la portent */
@media (max-width:355px){
  .header__actions .btn{display:none}
}

@media (max-width:420px){
  .brand__mark svg{width:32px;height:32px}
  .gallery{grid-template-columns:1fr;grid-template-rows:none;grid-auto-rows:200px}
  .g,.g--wide{grid-column:span 1}
  .carte li{flex-wrap:wrap;gap:.15rem .6rem}
  .carte__dots{display:none}
  .carte__price{width:100%}
}

/* ============================================================
   19. PRÉFÉRENCES & IMPRESSION
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  html:focus-within{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important;
  }
  .js .reveal{opacity:1;transform:none}
  .ticker__track{animation:none}
}

@media print{
  .header,.hero__scroll,.to-top,.scroll-progress,.ticker,.nav,.booking__form,.cta-final{display:none!important}
  body{background:#fff;color:#000}
  .section--dark,.cave,.footer{background:#fff!important;color:#000!important}
  .h2--light,.h3--light{color:#000!important}
  .dish,.qa{break-inside:avoid}
}
