/* ============ MENU HERO (compact) ============ */
.menu-hero{ background:var(--charcoal); color:var(--cream); padding:clamp(3rem,7vw,5rem) 0 clamp(2.5rem,5vw,3.5rem); }
.menu-hero-inner{ max-width:720px; }
.menu-hero h1{ font-size:clamp(2.3rem,1.6rem + 3.4vw,3.8rem); font-weight:500; }
.menu-hero p{ color:rgba(246,241,231,.82); margin-top:1.1rem; max-width:56ch; }

/* ============ CATEGORY TABS ============ */
.menu-tabs-wrap{ position:sticky; top:69px; z-index:40; background:var(--cream);
  border-bottom:1px solid var(--line); }
.site-header.solid + main .menu-tabs-wrap{ top:69px; }
.menu-tabs{ display:flex; flex-wrap:wrap; gap:.4rem; padding:.7rem 0; }
.menu-tab{
  font-family:var(--sans); font-weight:600; font-size:.9rem; letter-spacing:.01em;
  padding:.55em 1.1em; border:1px solid var(--line); background:var(--paper); color:var(--ink-soft);
  border-radius:100px; cursor:pointer; transition:all .25s var(--ease); white-space:nowrap;
}
.menu-tab:hover{ border-color:var(--gold); color:var(--charcoal); }
.menu-tab[aria-selected="true"]{ background:var(--charcoal); color:var(--cream); border-color:var(--charcoal); }
.menu-tab:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }

/* ============ PANELS ============ */
.menu-panels{ padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(3rem,7vw,5rem); }
.menu-panel[hidden]{ display:none; }
.menu-panel-head{ max-width:640px; margin-bottom:clamp(2rem,4vw,3rem); }
.menu-panel-head h2{ font-size:clamp(1.8rem,1.4rem + 2vw,2.6rem); }
.menu-panel-head p{ margin-top:.8rem; color:var(--ink-soft); }

.menu-cols{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.8rem,5vw,4rem); align-items:start; }
@media (max-width:760px){ .menu-cols{ grid-template-columns:1fr; gap:2.2rem; } }

.menu-group{ break-inside:avoid; margin-bottom:2.4rem; }
.menu-group:last-child{ margin-bottom:0; }
.menu-group-title{ font-family:var(--sans); font-weight:600; font-size:.78rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--turquoise); display:flex; align-items:center; gap:.7rem; margin-bottom:1.2rem; }
.menu-group-title::after{ content:""; flex:1; height:1px; background:var(--line); }
.menu-group-note{ font-size:.85rem; color:var(--ink-soft); font-style:italic; margin:-.6rem 0 1rem; }

.menu-item{ display:grid; grid-template-columns:1fr auto; gap:.3rem 1rem; align-items:baseline;
  padding:.55rem 0; border-bottom:1px dotted var(--line); }
.menu-item:last-child{ border-bottom:none; }
.mi-name{ font-family:var(--serif); font-size:1.12rem; font-weight:500; color:var(--ink); line-height:1.25; }
.mi-tag{ font-family:var(--sans); font-size:.62rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  color:var(--turquoise); border:1px solid var(--turquoise); border-radius:3px; padding:.05em .4em; margin-left:.5rem;
  vertical-align:middle; white-space:nowrap; }
.mi-tag.spicy{ color:var(--terracotta); border-color:var(--terracotta); }
.mi-price{ font-family:var(--sans); font-weight:600; font-size:1rem; color:var(--charcoal); white-space:nowrap;
  font-variant-numeric:tabular-nums; }
.mi-desc{ grid-column:1 / -1; font-size:.92rem; color:var(--ink-soft); line-height:1.5; margin-top:.1rem; }

/* two-price (mussels) */
.mi-prices{ display:flex; gap:1.2rem; }
.mi-prices span{ font-family:var(--sans); font-weight:600; font-size:.95rem; color:var(--charcoal); font-variant-numeric:tabular-nums; }
.mi-prices span small{ display:block; font-weight:500; font-size:.6rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink-soft); text-align:right; }
.price-head{ display:grid; grid-template-columns:1fr auto; gap:1rem; align-items:baseline; padding-bottom:.4rem; }
.price-head .mi-prices span small{ color:var(--turquoise); }

/* menu image + notes column layout for a couple of panels */
.menu-with-img{ display:grid; grid-template-columns:1.3fr .7fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
.menu-side-img{ position:sticky; top:150px; }
.menu-side-img figure{ margin:0; }
.menu-side-img img{ width:100%; border-radius:var(--radius); }
.menu-side-cap{ font-size:.85rem; color:var(--ink-soft); margin-top:.8rem; }
@media (max-width:900px){
  .menu-with-img{ grid-template-columns:1fr; }
  .menu-side-img{ position:static; order:-1; max-width:420px; }
}

/* disclaimer + booking */
.menu-foot{ background:var(--cream-2); }
.menu-disclaimer{ max-width:720px; }
.menu-disclaimer p{ font-size:.92rem; color:var(--ink-soft); }
.menu-book{ text-align:center; max-width:560px; margin-inline:auto; }
.menu-book h2{ font-size:clamp(1.7rem,1.3rem + 2vw,2.6rem); margin-bottom:1rem; }
