/* Base & globals */
:root{
  --bg:#f7f7fa;
  --card:#ffffff;
  --ink:#1f2937;
  --muted:#6b7280;
  --border:#e5e7eb;
  --radius:16px;
  --shadow:0 8px 24px rgba(17,24,39,0.08);

  /* Anchor offset so sticky nav never overlaps targets */
  --anchor-offset: 120px; /* tweak if you change .goto size */
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.6;
}

/* Layout */
.menu-wrapper{
  max-width: 1100px;
  margin: 24px auto 64px;
  padding: 0 16px;
}

/* Go To links */
.goto{
  position:sticky;
  top:0;
  z-index:10;
  background:linear-gradient(to bottom, rgba(247,247,250,0.98), rgba(247,247,250,0.9));
  backdrop-filter: blur(6px);
  border:1px solid var(--border);
  padding:10px 12px;
  border-radius: 999px;
  margin: 8px 0 24px;
  box-shadow: var(--shadow);
}
.goto-bottom{
  position:static;
  margin-top:32px;
  border-radius: 14px;
}

.goto ul{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  list-style:none;
  padding:0;
  margin:0;
}
.goto a{
  display:inline-block;
  padding:8px 12px;
  border:1px solid var(--border);
  border-radius:999px;
  background:#fff;
  text-decoration:none;
  color:var(--ink);
  font-weight:600;
  font-size:0.95rem;
}
.goto a:hover,
.goto a:focus{
  outline: none;
  border-color: #d97706;
  box-shadow: 0 0 0 3px rgba(217,119,6,0.15);
}

/* Category sections */
.category{
  background: var(--card);
  border:1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px 18px 20px;
  margin: 24px 0;
  box-shadow: var(--shadow);

  /* Fix sticky-nav overlap when jumping to anchors */
  scroll-margin-top: var(--anchor-offset);
}

/* Category BANNERS (different per section) */
.category-title{
  margin: 0 0 14px;
  font-size:1.5rem;
  line-height:1.2;
  border-radius: 12px;
  padding: 10px 12px;
  color: var(--banner-ink, #0f172a);
  background: var(--banner, #eef2ff);
  border: 1px solid var(--banner-border, rgba(0,0,0,0.06));
  box-shadow: inset 0 -10px 20px rgba(255,255,255,0.4);
}
.category-title span{ display:inline-block }

/* Assign a unique color to each category via CSS custom properties */
#breakfast{ --banner:#FFEEDB; --banner-ink:#7A2E0E; --banner-border:#ffd6b8; }
#lunch{ --banner:#E7F5FF; --banner-ink:#053C5E; --banner-border:#cdeafe; }
#seafood{ --banner:#E6FFFB; --banner-ink:#065F46; --banner-border:#c8fff5; }
#a-la-carte{ --banner:#F3E8FF; --banner-ink:#5B21B6; --banner-border:#e4d2ff; }
#kids-menu{ --banner:#FFF1F2; --banner-ink:#9F1239; --banner-border:#ffd9de; }
#sides{ --banner:#F0FDF4; --banner-ink:#065F46; --banner-border:#d8fbe2; }
#desserts{ --banner:#FFF7ED; --banner-ink:#7C2D12; --banner-border:#ffe8cc; }
#drinks{ --banner:#ECFEFF; --banner-ink:#0C4A6E; --banner-border:#d6fbfe; }

/* Items */
.items{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
@media (min-width:700px){
  .items{ grid-template-columns: 1fr 1fr; }
}
@media (min-width:1024px){
  .items{ grid-template-columns: 1fr 1fr; }
}

.item{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  border:1px dashed var(--border);
  border-radius:12px;
  padding:12px 14px;
  background:#F2EFE6;
}
.name{
  font-size:1.05rem;
  line-height:1.3;
  margin:0 0 4px;
}
.desc{
  margin:0;
  color:var(--muted);
  font-size:0.95rem;
}
.desc.light{ color:#8a8f98; }
.price{
  margin-left:12px;
  white-space:nowrap;
  font-weight:700;
}

/* Special VARIANTS block inside a menu item */
.item-variants{
  display:block;
}
.item-variants .price{ display:none; } /* parent item doesn't have a single price */

.variants{
  list-style:none;
  padding:8px 0 0;
  margin:8px 0 0;
  border-top:1px dashed var(--border);
}
.variants.compact{ padding-top:4px; margin-top:6px; }

.line{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  padding:8px 0;
  border-bottom:1px dotted var(--border);
}
.line:last-child{ border-bottom:none; }

.variant-name{
  font-weight:600;
}
.variant-price{
  font-weight:700;
  white-space:nowrap;
}

/* Subcategories in Drinks */
.subcategory{
  font-size:1.1rem;
  margin: 12px 0 8px;
  color:#0f172a;
  letter-spacing:0.2px;
}

/* Notes & helpers */
.note{
  margin: 0 0 10px;
  color: var(--muted);
  font-size:0.95rem;
}
.note-strong{
  margin: 6px 0 8px;
  font-size:0.95rem;
  color:#5b5b5b;
  font-weight:600;
}

/* Back to top link */
.backtotop{
  display:inline-block;
  margin-top:12px;
  text-decoration:none;
  font-weight:600;
  color:#d97706;
}
.backtotop:hover,
.backtotop:focus{
  text-decoration:underline;
}

/* High-contrast focus for accessibility */
a:focus-visible{
  outline:3px solid rgba(217,119,6,0.45);
  outline-offset:2px;
}
