/* =====================================================================
   ZENTRAL — Digitale Speisekarte (durchklickbar)
   Erbt die ZENTRAL-CI aus styles-wow.css (Amber-Gold #fcbd1b, Saira
   Condensed, Schwarz auf Warm-Weiß). Klassisches Karten-Gefühl mit
   gepunkteter Preis-Führungslinie, digital: Sticky-Chip-Navigation mit
   Scroll-Spy, Sprung-Links und Diät-Filter. Light-Editorial, kein Gimmick.
   ===================================================================== */

/* ---- Intro unter dem Page-Hero ---- */
.menu-intro{ padding:clamp(1.6rem,4vh,2.6rem) 0 0; }
.menu-intro .wrap{ display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.4rem; justify-content:space-between; }
.menu-intro p{ margin:0; color:var(--ink-2); max-width:52ch; }
.menu-pdf{ display:inline-flex; align-items:center; gap:.5rem; font-family:var(--display); font-weight:700;
  text-transform:uppercase; letter-spacing:.08em; font-size:.8rem; color:var(--ink); text-decoration:none;
  padding:.6rem 1rem; border:1.5px solid var(--line); border-radius:999px; white-space:nowrap; transition:.25s var(--ease); }
.menu-pdf:hover{ border-color:var(--amber); color:var(--amber-deep); transform:translateY(-2px); }

/* ---- Sticky Toolbar: Chip-Navigation + Filter ---- */
.menu-toolbar{ position:sticky; top:var(--head-h); z-index:40; margin-top:clamp(1.4rem,4vh,2.4rem);
  background:rgba(250,246,238,.92); backdrop-filter:blur(9px);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  transition:top .4s var(--ease); }
/* Header versteckt sich beim Runterscrollen → Toolbar rückt bündig nach oben */
body:has(.site-head.is-hidden) .menu-toolbar{ top:0; }
.menu-nav li.is-hidden{ display:none; }
.menu-cat{ scroll-margin-top:130px; }
/* Sub-Gruppen-Überschrift innerhalb einer Kategorie (z. B. Whisky → Classic Malts) */
.menu-grp{ font-family:var(--display); font-weight:800; text-transform:uppercase; letter-spacing:.14em;
  font-size:.9rem; color:var(--ink-2); margin:1.8rem 0 1rem; padding-bottom:.4rem; border-bottom:1px solid var(--line); }
.menu-grp:first-child{ margin-top:.2rem; }
.menu-grp .g-note{ display:block; font-weight:600; letter-spacing:.02em; text-transform:none;
  font-size:.78rem; color:var(--muted); margin-top:.25rem; }
.menu-toolbar-in{ width:min(100% - 2*var(--pad-x), var(--maxw)); margin-inline:auto;
  display:flex; flex-direction:column; gap:.5rem; padding:.5rem 0; }

/* Primär-Umschalter Speisen / Getränke (die Haupt-Unterscheidung) */
.menu-toprow{ display:flex; align-items:center; justify-content:space-between; gap:1rem .8rem; flex-wrap:wrap; }
.menu-groups{ display:flex; gap:0; }
.menu-groups .mgroup{ font-family:var(--display); font-weight:800; text-transform:uppercase; letter-spacing:.05em;
  font-size:clamp(1rem,3.4vw,1.15rem); color:var(--muted); background:transparent; border:0; cursor:pointer;
  padding:.3rem .1rem; margin-right:1.3rem; display:inline-flex; align-items:baseline; gap:.4rem;
  border-bottom:3px solid transparent; transition:color .2s, border-color .2s; }
.menu-groups .mgroup:last-child{ margin-right:0; }
.menu-groups .mgroup:hover{ color:var(--ink); }
.menu-groups .mgroup.is-on{ color:var(--ink); border-bottom-color:var(--amber); }
.menu-groups .mgroup span{ font-family:var(--body); font-weight:700; font-size:.68rem; letter-spacing:0;
  color:var(--muted); background:var(--paper-tan); border-radius:999px; padding:.08rem .42rem; }
.menu-groups .mgroup.is-on span{ background:var(--amber); color:#1a1407; }

/* Gruppen-Umschaltung: nur die aktive Gruppe (Chips + Sektionen) zeigen */
body.grp-speisen .menu-nav li[data-group="getraenke"],
body.grp-speisen .menu-body [data-group="getraenke"]{ display:none; }
body.grp-getraenke .menu-nav li[data-group="speisen"],
body.grp-getraenke .menu-body [data-group="speisen"]{ display:none; }

/* Chip-Leiste — horizontal scrollbar mit weichen Kanten */
.menu-nav{ position:relative; flex:1 1 auto; min-width:0; }
.menu-nav ul{ list-style:none; margin:0; padding:.2rem .2rem; display:flex; gap:.5rem; overflow-x:auto;
  scrollbar-width:none; scroll-behavior:smooth; -webkit-overflow-scrolling:touch; }
.menu-nav ul::-webkit-scrollbar{ display:none; }
.mchip{ flex:0 0 auto; display:inline-flex; align-items:center; gap:.4rem; white-space:nowrap; cursor:pointer;
  font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:.07em; font-size:.78rem;
  color:var(--ink-2); text-decoration:none; padding:.5rem .95rem; border:1.5px solid var(--line);
  border-radius:999px; background:var(--paper); transition:color .2s, border-color .2s, background .2s, transform .2s; }
.mchip:hover{ border-color:var(--amber); color:var(--ink); transform:translateY(-1px); }
.mchip.is-active{ background:var(--ink); border-color:var(--ink); color:#fff; }
.mchip .mchip-ico{ font-size:.9em; line-height:1; }

/* Filter (Alles / Vegetarisch / Vegan) */
.menu-filter{ flex:0 0 auto; display:flex; gap:.3rem; padding:.25rem; background:var(--paper-tan);
  border-radius:999px; border:1px solid var(--line); }
.menu-filter button{ font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:.06em;
  font-size:.72rem; color:var(--ink-2); background:transparent; border:0; cursor:pointer; border-radius:999px;
  padding:.42rem .8rem; transition:color .2s, background .2s; }
.menu-filter button:hover{ color:var(--ink); }
.menu-filter button.is-on{ background:var(--amber); color:#1a1407; }

/* ---- Kategorie-Sektionen ---- */
.menu-body{ padding:clamp(1.8rem,5vh,3rem) 0 clamp(3rem,8vh,5rem); }
.menu-cat{ width:min(100% - 2*var(--pad-x), var(--maxw)); margin-inline:auto; padding-block:clamp(1.4rem,3.5vh,2.4rem);
  border-top:1px solid var(--line); }
.menu-cat:first-child{ border-top:0; }
.menu-cat-head{ display:flex; align-items:baseline; gap:.9rem; flex-wrap:wrap; margin-bottom:1.3rem; }
.menu-cat-head .num{ font-family:var(--display); font-weight:800; color:var(--amber-deep); font-size:1rem;
  letter-spacing:.05em; }
.menu-cat h2{ font-size:clamp(1.7rem,4.2vw,2.6rem); letter-spacing:.01em; }
.menu-cat .cat-note{ flex-basis:100%; color:var(--muted); font-size:.92rem; margin:.1rem 0 0; }

/* Gruppen-Trenner Essen / Getränke */
.menu-band{ width:min(100% - 2*var(--pad-x), var(--maxw)); margin:clamp(1.6rem,4vh,2.6rem) auto 0;
  display:flex; align-items:center; gap:1rem; }
.menu-band span{ font-family:var(--display); font-weight:800; text-transform:uppercase; letter-spacing:.22em;
  font-size:.82rem; color:var(--amber-deep); white-space:nowrap; }
.menu-band::before,.menu-band::after{ content:""; height:2px; background:var(--line); flex:1 1 auto; }
.menu-band::before{ flex:0 0 0; }

/* ---- Items: klassische Karten-Zeile mit Punkt-Führungslinie ---- */
.menu-list{ display:grid; gap:1.15rem; }
.mitem{ min-width:0; }
.mitem-line{ display:flex; align-items:baseline; gap:.55rem; }
.m-name{ font-family:var(--display); font-weight:700; font-size:1.12rem; color:var(--ink); letter-spacing:.005em;
  overflow-wrap:anywhere; }
.m-dots{ flex:1 1 auto; align-self:center; min-width:1.2rem;
  border-bottom:2px dotted #d9cfb8; transform:translateY(1px); opacity:.9; }
.m-price{ flex:0 0 auto; font-family:var(--display); font-weight:800; font-size:1.1rem; color:var(--ink);
  font-variant-numeric:tabular-nums; letter-spacing:.01em; }
.m-price .cur{ color:var(--amber-deep); margin-left:.12em; font-size:.86em; }
.m-desc{ margin:.32rem 0 0; color:var(--muted); font-size:.92rem; line-height:1.5; max-width:60ch; overflow-wrap:anywhere; }

/* Größen-Varianten (0,2 l / 0,75 l …) */
.m-variants{ display:flex; flex-wrap:wrap; gap:.35rem .8rem; margin:.4rem 0 0; }
.m-var{ display:inline-flex; align-items:baseline; gap:.4rem; font-family:var(--display); font-weight:700;
  font-size:.9rem; color:var(--ink-2); background:var(--paper); border:1px solid var(--line);
  border-radius:999px; padding:.2rem .6rem; }
.m-var .v-size{ color:var(--muted); font-size:.82em; text-transform:uppercase; letter-spacing:.04em; }
.m-var .v-price{ font-weight:800; color:var(--ink); font-variant-numeric:tabular-nums; }

/* Tags: neu / vegetarisch / vegan / alkoholfrei */
.m-tags{ display:inline-flex; gap:.35rem; margin-left:.5rem; vertical-align:middle; }
.m-tag{ font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:.06em;
  font-size:.6rem; padding:.16rem .42rem; border-radius:.35rem; line-height:1; white-space:nowrap; }
.m-tag.t-neu{ background:var(--amber); color:#1a1407; }
.m-tag.t-veg{ background:#e6f0dd; color:#3f6a2a; }
.m-tag.t-vegan{ background:#dcefe4; color:#1f6b46; }
.m-tag.t-af{ background:var(--paper-tan); color:var(--ink-2); }

/* zurück-nach-oben, dezent */
.menu-top{ position:fixed; right:clamp(14px,3vw,26px); bottom:clamp(14px,3vw,26px); z-index:50;
  width:46px; height:46px; border-radius:999px; border:1px solid var(--line); background:var(--paper);
  color:var(--ink); display:grid; place-items:center; cursor:pointer; text-decoration:none;
  box-shadow:0 14px 30px -16px rgba(0,0,0,.4); opacity:0; transform:translateY(14px); pointer-events:none;
  transition:opacity .35s var(--ease), transform .35s var(--ease), background .2s, color .2s; }
.menu-top.show{ opacity:1; transform:none; pointer-events:auto; }
.menu-top:hover{ background:var(--amber); color:#1a1407; border-color:var(--amber); }

/* Fuß-Hinweise (Allergene / MwSt / Trinkgeld) */
.menu-legal{ width:min(100% - 2*var(--pad-x), var(--maxw)); margin:0 auto; padding-top:1.6rem;
  border-top:1px solid var(--line); color:var(--muted); font-size:.84rem; line-height:1.6; }
.menu-legal strong{ color:var(--ink-2); }

/* Filter-Zustände */
body.filter-veg .mitem:not(.is-veg):not(.is-vegan){ display:none; }
body.filter-vegan .mitem:not(.is-vegan){ display:none; }
body.filter-veg .menu-cat.is-empty, body.filter-vegan .menu-cat.is-empty{ display:none; }

/* Reveal-Feinschliff (nutzt vorhandene .reveal/is-in aus app.js) */
.menu-cat .mitem{ opacity:1; }

@media (max-width:720px){
  .menu-toolbar-in{ flex-direction:column; align-items:stretch; gap:.5rem; padding-bottom:.6rem; }
  .menu-filter{ align-self:flex-end; }
  .m-desc{ font-size:.88rem; }
}
@media (prefers-reduced-motion:reduce){
  .menu-nav ul{ scroll-behavior:auto; }
  .menu-top{ transition:opacity .2s; }
}
