:root {
  color-scheme: light;
  --night: #050807;
  --bottle: #122620;
  --bottle-soft: #234238;
  --ivory: #fffef9;
  --paper: #f4f0e6;
  --paper-deep: #e9e1d1;
  --gold: #a57905;
  --gold-bright: #d19b0e;
  --brown: #4c2d05;
  --ink: #122620;
  --muted: #626961;
  --line: rgba(18, 38, 32, .24);
  --display: "Avenir Next Condensed", "Arial Narrow", "Helvetica Neue", sans-serif;
  --body: "Avenir Next", Avenir, "Segoe UI", sans-serif;
  font-family: var(--body);
  background: var(--paper);
  color: var(--ink);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: linear-gradient(90deg, rgba(165,121,5,.04), transparent 30%, rgba(18,38,32,.035)), var(--paper); font-size: 1rem; line-height: 1.55; }
button, a { font: inherit; }
.visually-hidden { position: absolute; 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; left: 1rem; top: 1rem; z-index: 20; transform: translateY(-200%); padding: .75rem 1rem; background: var(--ivory); color: var(--night); }
.skip-link:focus { transform: none; }
:focus-visible { outline: 3px solid var(--gold-bright); outline-offset: 4px; }

.masthead { position: relative; min-height: min(47rem, 92svh); display: grid; place-items: center; overflow: hidden; padding: clamp(2rem, 6vw, 5rem); background: radial-gradient(circle at 50% 40%, #10201b 0, var(--night) 62%); color: var(--ivory); }
.masthead::before { content: ""; position: absolute; width: min(68vw, 52rem); aspect-ratio: 1; left: -18%; top: -54%; border: clamp(2px,.35vw,5px) solid transparent; border-right-color: var(--gold-bright); border-bottom-color: var(--brown); border-radius: 50%; transform: rotate(29deg); opacity: .9; }
.masthead::after { content: ""; position: absolute; width: 18rem; height: 2px; right: -3rem; bottom: 14%; background: linear-gradient(90deg, transparent, var(--gold-bright), var(--brown)); transform: rotate(-12deg); opacity: .7; }
.masthead__inner { position: relative; z-index: 1; width: min(74rem, 100%); display: grid; grid-template-columns: minmax(19rem, 32rem) minmax(17rem, 1fr); align-items: center; gap: clamp(1rem, 5vw, 5rem); }
.brand-logo { display: block; width: min(100%, 32rem); height: auto; filter: drop-shadow(0 1.4rem 2rem rgba(0,0,0,.4)); }
.brand-logo--print { display: none; }
.brand-copy { padding: clamp(1.5rem,4vw,3rem) 0 clamp(1.5rem,4vw,3rem) clamp(1.5rem,4vw,3.5rem); border-left: 1px solid rgba(255,254,249,.32); }
.eyebrow, .section-number, .allergen-alert__label { margin: 0 0 .7rem; font-family: var(--display); font-weight: 700; letter-spacing: .2em; text-transform: uppercase; font-size: .82rem; }
.masthead .eyebrow { color: var(--gold-bright); }
.intro { max-width: 29rem; margin-bottom: 2rem; color: rgba(255,254,249,.82); font-size: clamp(1.08rem, 2vw, 1.35rem); }
.masthead__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.button { display: inline-flex; align-items: center; min-height: 3rem; padding: .75rem 1.25rem; border: 1px solid var(--ivory); background: var(--ivory); color: var(--night); font-family: var(--display); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; transition: background-color .2s ease, color .2s ease, transform .2s ease; }
.button:hover { background: var(--gold-bright); color: var(--night); transform: translateY(-2px); }

.menu-shell { width: min(74rem, calc(100% - 2rem)); margin: 0 auto; padding: clamp(3rem, 7vw, 7rem) 0; }
.allergen-alert { display: grid; grid-template-columns: minmax(11rem,.55fr) 1.45fr; gap: 0 2rem; margin-bottom: clamp(4rem,8vw,7rem); padding: clamp(1.5rem,4vw,2.6rem); border-top: 4px solid var(--gold); background: var(--bottle); color: var(--ivory); box-shadow: .7rem .7rem 0 rgba(165,121,5,.14); }
.allergen-alert__label { grid-row: span 3; padding-top: .3rem; color: var(--gold-bright); }
.allergen-alert h2 { margin: 0 0 .85rem; font-family: var(--display); font-size: clamp(2rem,4vw,3.5rem); font-weight: 700; line-height: .95; letter-spacing: .025em; text-transform: uppercase; }
.allergen-alert p { margin-bottom: .65rem; }
.allergen-alert__trace { color: rgba(255,254,249,.72); font-size: .92rem; }

.menu-section, .legend { display: grid; grid-template-columns: minmax(7rem,.35fr) 1.65fr; gap: 0 clamp(1rem,4vw,4rem); padding: clamp(2.8rem,6vw,5.5rem) 0; border-top: 1px solid var(--line); }
.menu-section > .section-number, .legend > .section-number { grid-row: 1 / span 4; }
.section-number { color: var(--gold); }
.menu-section > h2, .legend > h2 { margin: 0 0 .8rem; font-family: var(--display); font-size: clamp(3rem,7vw,6.4rem); font-weight: 700; line-height: .86; letter-spacing: .015em; text-transform: uppercase; }
.section-description { color: var(--muted); font-weight: 700; }
.items { display: grid; gap: 0; margin-top: 1.2rem; }
.menu-item { display: grid; grid-template-columns: 1fr auto; gap: .35rem 1.5rem; padding: 1.25rem 0; border-top: 1px solid var(--line); }
.menu-item__name { margin: 0; font-weight: 750; }
.menu-item__price { margin: 0; white-space: nowrap; font-family: var(--display); font-size: 1.12rem; font-weight: 700; letter-spacing: .04em; color: var(--brown); }
.menu-item__description, .menu-item__allergens, .menu-item__note { grid-column: 1 / -1; margin: 0; }
.menu-item__description { color: var(--muted); }
.menu-item__allergens { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .3rem; }
.menu-item__note { color: var(--muted); font-size: .82rem; }
.allergen-chip { display: inline-flex; align-items: center; min-height: 1.8rem; padding: .2rem .6rem; border: 1px solid var(--bottle); background: var(--bottle); color: var(--ivory); font-family: var(--display); font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.subsection { margin-top: 3.5rem; }
.subsection h3, .extras h3 { margin: 0 0 .65rem; font-family: var(--display); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.subsection h3 { font-size: clamp(1.9rem,4vw,3rem); }
.section-note { margin-top: 2rem; padding: 1.25rem; border-left: 4px solid var(--gold); background: var(--ivory); }
.extras { margin-top: 2.5rem; padding: 1.5rem; border: 1px solid var(--line); background: var(--paper-deep); }
.extras h3 { font-size: 1.6rem; }
.legend__items { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1rem 0; }
.legend__note { color: var(--muted); }
footer { display: flex; justify-content: space-between; gap: 1rem; padding: 2rem max(1rem,calc((100% - 74rem) / 2)); border-top: 4px solid var(--gold); background: var(--night); color: var(--ivory); font-family: var(--display); letter-spacing: .08em; text-transform: uppercase; }
footer p { margin: 0; }

@media (max-width: 760px) {
  .masthead { min-height: 46rem; padding: 1.5rem 1.25rem 3rem; }
  .masthead::before { width: 34rem; left: -19rem; top: -16rem; }
  .masthead__inner { grid-template-columns: 1fr; justify-items: center; gap: 0; }
  .brand-logo { width: min(26rem, 92vw); margin: -2rem 0 -3rem; }
  .brand-copy { width: min(30rem,100%); padding: 1.5rem 0 0; border-top: 1px solid rgba(255,254,249,.32); border-left: 0; text-align: center; }
  .intro { margin-right: auto; margin-left: auto; }
  .masthead__actions { justify-content: center; }
  .menu-shell { width: min(100% - 2rem, 42rem); }
  .allergen-alert, .menu-section, .legend { grid-template-columns: 1fr; }
  .allergen-alert__label, .menu-section > .section-number, .legend > .section-number { grid-row: auto; }
  .menu-section > h2, .legend > h2 { font-size: clamp(3rem,15vw,5.2rem); }
  footer { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .button { transition: none; }
}

@page { size: A4 portrait; margin: 7mm; }

@media print {
  :root { --paper: #fff; --paper-deep: #f2ede2; }
  html, body { background: #fff; }
  body { font-size: 8pt; line-height: 1.18; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .skip-link, .masthead__actions, .masthead::before, .masthead::after { display: none; }
  .masthead { display: block; min-height: auto; overflow: visible; padding: 0 0 2mm; background: none; color: var(--ink); border-bottom: 1.5px solid var(--bottle); break-inside: avoid; }
  .masthead__inner { width: 100%; display: grid; grid-template-columns: 50mm 1fr; gap: 4mm; align-items: center; }
  .brand-logo--screen { display: none; }
  .brand-logo--print { display: block; width: 48mm; margin: -5mm 0; padding: 0; background: transparent; filter: none; }
  .brand-copy { padding: 0 0 0 4mm; border-top: 0; border-left: 1px solid var(--gold); text-align: left; }
  .masthead .eyebrow { margin-bottom: 1mm; color: var(--gold); font-size: 7pt; }
  .intro { max-width: none; margin: 0; color: var(--ink); font-size: 9pt; }
  .menu-shell { width: 100%; padding: 2.5mm 0 0; }
  .allergen-alert { display: grid; grid-template-columns: 32mm 1fr; gap: 0 3mm; margin: 0 0 2mm; padding: 2mm 0; border-top: 1.5px solid var(--gold); border-bottom: 1px solid var(--gold); background: none; color: var(--ink); box-shadow: none; }
  .allergen-alert__label { grid-row: 1 / span 3; margin: 0; padding: .5mm 0 0; color: var(--gold); font-size: 6.4pt; }
  .allergen-alert h2 { margin-bottom: .6mm; font-size: 10.5pt; }
  .allergen-alert p { margin-bottom: .4mm; }
  .allergen-alert__trace { color: var(--muted); font-size: 6.6pt; }
  [data-menu] { columns: 2; column-gap: 7mm; column-rule: 1px solid var(--line); }
  .menu-section { display: block; padding: 1.8mm 0; border-top: 1px solid var(--line); break-inside: auto; }
  .menu-section > h2 { margin-bottom: .6mm; font-size: 14.5pt; line-height: .9; }
  .section-number { float: right; margin: .7mm 0 0 1mm; color: var(--gold); font-size: 6.3pt; }
  .section-description { margin-bottom: .6mm; font-size: 7pt; }
  .items { display: block; margin-top: .6mm; }
  .menu-item { display: grid; grid-template-columns: 1fr auto; gap: .25mm 1.2mm; padding: .9mm 0; break-inside: avoid; }
  .menu-item__name { font-size: 7.8pt; }
  .menu-item__price { font-size: 8.2pt; color: var(--brown); }
  .menu-item__description { font-size: 6.8pt; }
  .menu-item__allergens { gap: .5mm; margin-top: .2mm; }
  .menu-item__note { font-size: 6.1pt; }
  .allergen-chip { min-height: auto; padding: .15mm .8mm; border-color: var(--bottle); background: none; color: var(--bottle); font-size: 5.8pt; }
  .subsection { margin-top: 1.4mm; break-inside: auto; }
  .subsection h3 { margin-bottom: .4mm; font-size: 10pt; }
  .extras { margin-top: 1.2mm; padding: 1.1mm; break-inside: avoid; }
  .extras h3 { margin-bottom: .3mm; font-size: 9pt; }
  .section-note { margin-top: 1.2mm; padding: 1.1mm; border-left-width: 2px; font-size: 6.5pt; break-inside: avoid; }
  .legend { display: grid; grid-template-columns: 32mm 1fr; gap: 0 3mm; padding: 1.5mm 0 0; border-top: 1px solid var(--bottle); break-inside: avoid; }
  .legend > .section-number { display: none; }
  .legend > h2 { grid-row: 1 / span 2; margin: .4mm 0 0; font-size: 9.5pt; }
  .legend__items { gap: .6mm; margin: 0 0 .5mm; }
  .legend__note { margin: 0; font-size: 6.3pt; }
  footer { flex-direction: row; justify-content: space-between; padding: 1.6mm 0 0; border-top: 1px solid var(--bottle); background: none; color: var(--ink); font-size: 6.8pt; }
}
