:root {
  --espresso: #251e1a;
  --walnut: #49362b;
  --cocoa: #3b2b23;
  --stone: #ded1bf;
  --ivory: #f5ebdd;
  --oak: #c7a381;
  --muted: #d0bca8;
  --rule: rgba(220, 194, 167, .28);
}
* { box-sizing: border-box; }
html { scroll-padding-top: 132px; background: var(--espresso); color: var(--ivory); overflow-anchor: none; }
body { margin: 0; font-family: Arial, Helvetica, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; }
.menu-toolbar { position: sticky; top: 0; z-index: 10; background: var(--stone); color: var(--espresso); }
.toolbar-inner { max-width: 828px; margin: auto; padding: 8px 24px; display: flex; align-items: center; min-height: 72px; }
.toolbar-brand { display: flex; flex-direction: column; font: 26px/1 Georgia, 'Times New Roman', serif; letter-spacing: .08em; text-decoration: none; }
.toolbar-brand span { margin-top: 5px; font: 8px/1 Arial, sans-serif; letter-spacing: .4em; }
.page-position { margin-left: auto; margin-right: 32px; font: 11px/1 Arial, sans-serif; letter-spacing: .12em; font-variant-numeric: tabular-nums; }
.page-separator { margin: 0 7px; opacity: .4; }
.language-bar { display: flex; gap: 2px; }
.language-choice { display: inline-flex; justify-content: center; align-items: center; width: 44px; height: 44px; border: 0; outline: none; text-decoration: none; }
.language-choice svg { display: block; width: 24px; height: 16px; }
.language-choice[aria-current="true"] svg { filter: drop-shadow(0 5px 3px rgb(37 33 28 / 60%)); }
.language-choice:hover svg { opacity: .8; }
.language-choice:focus-visible svg { transform: translateY(-3px); }
.category-nav { max-width: 828px; margin: auto; display: flex; gap: 26px; padding: 0 24px; overflow-x: auto; scrollbar-width: none; }
.category-nav::-webkit-scrollbar { display: none; }
.category-nav a { display: flex; flex: none; align-items: center; min-height: 44px; text-decoration: none; color: #645144; font-size: 11px; letter-spacing: .02em; border-bottom: 2px solid transparent; }
.category-nav a[aria-current="page"] { color: var(--espresso); border-color: #856349; }
.category-nav a:hover { color: var(--espresso); }
.category-nav a:focus-visible, .toolbar-brand:focus-visible, .cover-scroll:focus-visible { outline: 2px solid var(--oak); outline-offset: 4px; }
#menu-pages { max-width: 780px; margin: 24px auto 40px; display: grid; gap: 16px; outline: none; }
.menu-page { position: relative; background: var(--walnut); min-height: 1000px; padding: 56px 68px 36px; display: flex; flex-direction: column; }
.menu-page:nth-child(even) { background: #443127; }
.page-topline { display: flex; justify-content: space-between; align-items: center; padding-bottom: 22px; margin-bottom: 40px; border-bottom: 1px solid var(--rule); color: var(--muted); font-size: 9px; letter-spacing: .19em; text-transform: uppercase; }
.page-number { font-variant-numeric: tabular-nums; letter-spacing: .08em; }
.menu-page h2 { font: italic 44px/1.12 Georgia, 'Times New Roman', serif; letter-spacing: -.025em; margin: 0 0 38px; color: var(--ivory); font-weight: 400; }
.page-groups { display: grid; gap: 36px; }
.menu-group h3 { font: italic 27px/1.2 Georgia, 'Times New Roman', serif; margin: 0 0 20px; font-weight: 400; }
.menu-items { list-style: none; padding: 0; margin: 0; }
.menu-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; column-gap: 24px; padding: 9px 0; font-size: 17px; line-height: 1.35; }
.item-name { min-width: 0; }
.item-details { display: flex; align-items: baseline; gap: 24px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.item-volume { color: var(--muted); font-size: 12px; min-width: 40px; text-align: right; }
.item-price { min-width: 54px; text-align: right; font-size: 15px; }
.menu-note { margin: 24px 0 0; max-width: 95%; color: var(--muted); font: italic 16px/1.5 Georgia, serif; }
.page-footer { margin-top: auto; padding-top: 54px; display: flex; align-items: end; justify-content: space-between; color: var(--muted); }
.footer-brand { font: 19px/1 Georgia, 'Times New Roman', serif; letter-spacing: .09em; }
.footer-label { font-size: 8px; letter-spacing: .18em; }
.cover { background: var(--cocoa); min-height: 1000px; padding-top: 44px; }
.cover .page-topline { border: 0; margin-bottom: 0; }
.cover-content { margin: auto 0; text-align: center; padding: 80px 0 100px; }
.cover-rule { display: block; height: 80px; width: 1px; background: var(--oak); margin: 0 auto 54px; }
.cover h1 { font: 96px/.95 'Times New Roman', Georgia, serif; letter-spacing: .06em; margin: 0; font-weight: 400; }
.cover-lounge { font: 64px/1 Georgia, 'Times New Roman', serif; letter-spacing: .14em; margin: 8px 0 24px; }
.cover-subtitle { color: var(--muted); font-size: 10px; letter-spacing: .46em; padding-left: .46em; }
.cover-menu-label { font: italic 25px/1.3 Georgia, serif; margin-top: 64px; color: var(--oak); }
.cover-scroll { display: inline-flex; flex-direction: column; gap: 15px; align-items: center; align-self: center; padding: 16px; font-size: 9px; letter-spacing: .18em; text-transform: uppercase; text-decoration: none; color: var(--muted); }
.cover-scroll svg { width: 16px; height: 16px; }
.cover .page-footer { margin-top: 24px; padding-top: 0; }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 20; background: var(--stone); color: var(--espresso); padding: 12px; }
.skip-link:focus { top: 12px; }
.language-announcement { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.fallback { padding: 32px; line-height: 2; }
@media (max-width: 600px) {
  html { scroll-padding-top: 122px; }
  .toolbar-inner { min-height: 64px; padding: 6px 16px; }
  .toolbar-brand { font-size: 22px; }
  .toolbar-brand span { font-size: 7px; }
  .page-position { margin-right: 16px; font-size: 10px; }
  .category-nav { padding: 0 16px; gap: 22px; }
  .category-nav a { min-height: 44px; font-size: 11px; }
  #menu-pages { margin: 12px 10px 20px; gap: 12px; }
  .menu-page { min-height: 680px; padding: 30px 24px 26px; }
  .page-topline { padding-bottom: 18px; margin-bottom: 28px; font-size: 8px; letter-spacing: .14em; }
  .menu-page h2 { font-size: 34px; margin-bottom: 26px; }
  .page-groups { gap: 28px; }
  .menu-group h3 { font-size: 25px; margin-bottom: 15px; }
  .menu-row { font-size: 15px; column-gap: 12px; padding: 8px 0; }
  .item-details { gap: 12px; }
  .item-volume { min-width: 31px; font-size: 10px; }
  .item-price { min-width: 44px; font-size: 13px; }
  .menu-note { font-size: 14px; margin-top: 20px; }
  .page-footer { padding-top: 36px; }
  .footer-brand { font-size: 16px; }
  .footer-label { font-size: 7px; }
  .cover { min-height: clamp(560px, calc(100svh - 128px), 740px); }
  .cover-content { padding: 45px 0 40px; }
  .cover-rule { height: 46px; margin-bottom: 38px; }
  .cover h1 { font-size: clamp(46px, 14vw, 72px); }
  .cover-lounge { font-size: clamp(33px, 9vw, 46px); margin: 9px 0 21px; }
  .cover-subtitle { font-size: 8px; }
  .cover-menu-label { font-size: 21px; margin-top: 42px; }
  .cover-scroll { font-size: 8px; gap: 12px; }
}
@media (max-width: 360px) {
  .menu-page { padding-right: 20px; padding-left: 20px; }
  .menu-row { font-size: 14px; }
  .item-details { gap: 8px; }
  .item-price { font-size: 12px; min-width: 41px; }
}
@media print {
  .menu-toolbar, .skip-link, .cover-scroll, .language-announcement { display: none; }
  html, body { background: var(--espresso); print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  #menu-pages { display: block; max-width: none; margin: 0; }
  .menu-page { break-after: page; break-inside: avoid; min-height: 260mm; margin: 0; }
}
