#menu { padding: var(--space-xl) var(--gutter); max-width: 74rem; margin-inline: auto; }
.section-head { text-align: center; margin-bottom: var(--space-l); }
.section-head h2 { font-size: var(--step-2); }
.section-head h2 .script { color: var(--red); font-size: 1.2em; }
.section-sub { margin-top: var(--space-s); color: #4a463f; }

.tablist {
  display: flex; gap: 0.4rem; justify-content: center; flex-wrap: nowrap;
  overflow-x: auto; scroll-snap-type: x proximity;
  padding-bottom: var(--space-s); margin-bottom: var(--space-l);
  -webkit-overflow-scrolling: touch;
}
.tablist::-webkit-scrollbar { height: 3px; }
.tablist::-webkit-scrollbar-thumb { background: var(--green); }
[role="tab"] {
  scroll-snap-align: center; white-space: nowrap; cursor: pointer;
  font-family: var(--font-display); font-size: var(--step--1);
  text-transform: uppercase; letter-spacing: 0.04em;
  padding: 0.7rem 1.1rem; border: 2px solid var(--rind); border-radius: 999px;
  background: var(--white); color: var(--ink-on-white);
  min-height: 44px;
}
[role="tab"][aria-selected="true"] {
  background: var(--rind); color: var(--ink-on-rind); border-color: var(--rind);
}

.badge-filters {
  display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap;
  justify-content: center; margin-bottom: var(--space-l);
}
.badge-filters-label {
  width: 100%; text-align: center; font-family: var(--font-script);
  font-size: var(--step-1); color: var(--red); margin-bottom: 0.2rem;
}
[data-badge-filter] {
  cursor: pointer; font-size: var(--step--1); font-weight: 700;
  letter-spacing: 0.08em; padding: 0.45rem 0.9rem; border-radius: 999px;
  border: 2px solid var(--green); background: var(--white);
  color: var(--ink-on-white); min-height: 40px;
}
[data-badge-filter][aria-pressed="true"] {
  background: var(--red); color: var(--ink-on-red); border-color: var(--red);
}

.items { display: grid; gap: var(--space-m); grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); }
.items li {
  border-top: 3px solid var(--rind); padding-top: var(--space-s);
  display: grid; grid-template-columns: 1fr auto; gap: 0.1rem var(--space-s);
}
.items h3 { font-size: var(--step-0); grid-column: 1; }
.items .price {
  grid-column: 2; grid-row: 1; text-align: right; white-space: nowrap;
  font-family: var(--font-display); color: var(--red);
}
.items .desc { grid-column: 1 / -1; font-size: var(--step--1); color: #4a463f; }
.items .veg { grid-column: 1 / -1; font-size: var(--step--1); color: var(--rind); font-weight: 700; }
.items .veg abbr { text-decoration: none; }
.items .badges { grid-column: 1 / -1; display: flex; gap: 0.35rem; flex-wrap: wrap; margin-top: 0.3rem; }
.items .badges span {
  font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em;
  padding: 0.18rem 0.5rem; border-radius: 999px;
  background: var(--rind); color: var(--ink-on-rind);
}
