.menu-page,.minby-menu { --menu-bg:#fff; --menu-surface:#fff; --menu-text:#1e1f23; --menu-secondary:#656773; --menu-line:#e7e7ec; --menu-accent:#1e1f23; --menu-selected:#f2f3f5; color-scheme:light dark; }
@media(prefers-color-scheme:dark) { html:not([data-theme=light]) .menu-page,html:not([data-theme=light]) .minby-menu { --menu-bg:#0f1013; --menu-surface:#191a1f; --menu-text:#f2f3f5; --menu-secondary:#9b9da9; --menu-line:#2b2c34; --menu-accent:#f2f3f5; --menu-selected:#2b2c34; } }
html[data-theme=dark] .menu-page,html[data-theme=dark] .minby-menu { --menu-bg:#0f1013; --menu-surface:#191a1f; --menu-text:#f2f3f5; --menu-secondary:#9b9da9; --menu-line:#2b2c34; --menu-accent:#f2f3f5; --menu-selected:#2b2c34; }
.menu-page { margin:0; background:var(--menu-bg); color:var(--menu-text); font:15px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; -webkit-font-smoothing:antialiased; }
.menu-page *, .minby-menu * { box-sizing:border-box; }
.menu-page a:focus-visible,.minby-menu a:focus-visible,.minby-menu button:focus-visible { outline:3px solid var(--menu-accent); outline-offset:3px; border-radius:6px; }
.menu-skip { position:absolute; top:-100px; left:16px; } .menu-skip:focus { top:16px; background:var(--menu-surface); padding:16px; z-index:5; }
.menu-brand { max-width:800px; margin:auto; display:flex; justify-content:space-between; align-items:center; padding:8px 28px; gap:16px; }
.menu-brand>a { min-height:44px; display:flex; align-items:center; text-decoration:none; color:inherit; }
.menu-brand>a:first-child { font-size:23px; font-weight:750; letter-spacing:-1px; } .menu-brand span { color:var(--menu-accent); } .menu-brand>a:last-child { font-size:13px; color:var(--menu-secondary); }
.menu-page main,.menu-page footer { max-width:760px; margin:auto; padding:8px 28px; }
.minby-menu { font:15px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--menu-text); background:var(--menu-bg); overflow-wrap:anywhere; }
.minby-menu .menu-venue { padding:0 0 12px; }
.minby-menu .menu-eyebrow { color:var(--menu-secondary); margin:0 0 8px; font-size:12px; font-weight:600; letter-spacing:.07em; text-transform:uppercase; }
.minby-menu h1 { margin:0; font-size:clamp(27px,3vw,36px); font-weight:700; letter-spacing:-1px; line-height:1.17; }
.minby-menu .menu-description { color:var(--menu-secondary); font-size:15px; margin:12px 0 0; max-width:560px; }
.minby-menu .menu-address { color:var(--menu-secondary); font-size:12px; margin:8px 0 0; }
.minby-menu .menu-language { display:flex; align-items:center; gap:4px; margin:0 0 12px; color:var(--menu-secondary); font-size:12px; }
.minby-menu .menu-language a,.minby-menu .menu-language button { display:flex; align-items:center; justify-content:center; padding:7px 10px; min-height:44px; border:0; border-radius:4px; text-decoration:none; font-family:inherit; font-size:13px; font-weight:600; color:var(--menu-secondary); background:transparent; cursor:pointer; }
.minby-menu .menu-language a[aria-current],.minby-menu .menu-language button[aria-pressed=true] { background:var(--menu-selected); color:var(--menu-accent); text-decoration:underline; text-underline-offset:4px; }
.minby-menu .menu-categories { position:sticky; top:0; background:var(--menu-bg); display:flex; gap:8px; padding:10px 0 14px; margin:0 0 8px; z-index:2; overflow-x:auto; overscroll-behavior-x:contain; }
.minby-menu .menu-categories a,.minby-menu .menu-categories button { flex-shrink:0; min-height:44px; display:flex; align-items:center; padding:9px 12px; border:1px solid var(--menu-line); background:var(--menu-surface); color:var(--menu-text); border-radius:6px; text-decoration:none; font-size:13px; font-family:inherit; font-weight:600; cursor:pointer; }
.minby-menu section { scroll-margin-top:70px; } .minby-menu h2 { margin:28px 2px 12px; font-size:19px; font-weight:700; letter-spacing:-.4px; }
.minby-menu .menu-items { border-top:1px solid var(--menu-line); }
.minby-menu .menu-item { display:flex; gap:16px; padding:16px 0; } .minby-menu .menu-item+.menu-item { border-top:1px solid var(--menu-line); }
.minby-menu .menu-item>div { flex:1; min-width:0; } .minby-menu .menu-item img { width:76px; height:76px; object-fit:cover; border-radius:6px; order:1; flex-shrink:0; }
.minby-menu .menu-item-title { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.minby-menu h3 { margin:0; font-size:16px; line-height:1.4; font-weight:650; letter-spacing:-.15px; } .minby-menu .menu-price { white-space:nowrap; font-size:14px; font-weight:650; font-variant-numeric:tabular-nums; }
.minby-menu .menu-item p { margin:7px 0 0; font-size:13px; line-height:1.6; color:var(--menu-secondary); } .minby-menu .menu-item .menu-item-description { font-size:12px; }
.minby-menu .menu-allergens { font-size:12px; } .minby-menu .menu-allergens strong { font-weight:600; } .minby-menu .menu-dietary { font-size:12px; color:var(--menu-accent); }
.minby-menu .menu-guidance { color:var(--menu-secondary); font-size:12px; margin:28px 2px 8px; max-width:620px; }
.menu-page footer { padding-top:0; padding-bottom:max(24px,env(safe-area-inset-bottom)); color:var(--menu-secondary); font-size:11px; } .menu-page footer a { display:inline-flex; align-items:center; min-height:44px; color:inherit; }
.restaurant-menu-sheet { position:absolute; z-index:50; right:var(--gap,16px); top:calc(var(--gap,16px) + 64px); width:min(500px,calc(100% - 2 * var(--gap,16px))); max-height:calc(100dvh - 110px); display:flex; flex-direction:column; background:var(--bg,#f2f3f5); border:1px solid var(--line,#ddd); border-radius:22px; overflow:hidden; }
.restaurant-menu-sheet[hidden] { display:none; }
.restaurant-menu-sheet .menu-sheet-handle { padding:9px 0 3px; touch-action:none; cursor:grab; }
.restaurant-menu-sheet .menu-sheet-handle::after { content:""; display:block; width:36px; height:4px; border-radius:4px; background:var(--text-3,#999); margin:auto; }
.menu-sheet-bar { display:flex; gap:8px; align-items:center; padding:4px 12px 10px 20px; border-bottom:1px solid var(--line,#ddd); }
.menu-sheet-title { flex:1; margin:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:13px; font-weight:600; }
.menu-sheet-bar button { border:0; border-radius:12px; background:var(--card-2,transparent); color:var(--text,inherit); min-width:44px; min-height:44px; padding:8px; cursor:pointer; font-family:inherit; }
.menu-sheet-body { overflow:auto; overscroll-behavior:contain; padding:0 20px max(16px,env(safe-area-inset-bottom)); min-height:0; }
.menu-sheet-stale { margin:0 -4px 10px; padding:10px 12px; border:1px solid var(--line,#ddd); border-radius:12px; background:var(--card-2,#fff); font-size:13px; }
@media(min-width:700px) { .restaurant-menu-sheet[data-mode=full] { top:var(--gap,16px); bottom:var(--gap,16px); width:min(620px,calc(100% - 2 * var(--gap,16px))); max-height:none; } }
.restaurant-menu-sheet[data-mode=minimized] { width:min(330px,calc(100% - 2 * var(--gap,16px))); }
.restaurant-menu-sheet[data-mode=minimized] .menu-sheet-handle,.restaurant-menu-sheet[data-mode=minimized] .menu-sheet-body { display:none; }
.restaurant-menu-sheet[data-mode=minimized] .menu-sheet-bar { border:0; padding:6px 8px 6px 16px; }
@media(max-width:699px) { .restaurant-menu-sheet { top:auto; bottom:0; right:0; width:100%; height:80dvh; max-height:calc(100dvh - 72px); border-radius:24px 24px 0 0; } .restaurant-menu-sheet[data-mode=full] { height:calc(100dvh - 72px); } .restaurant-menu-sheet[data-mode=minimized] { height:auto; top:calc(var(--gap,12px) + 64px); bottom:auto; right:var(--gap,12px); border-radius:18px; } .menu-sheet-body { padding-left:16px; padding-right:16px; } }
@media(max-width:520px) { .menu-brand { padding:4px 20px; } .menu-page main,.menu-page footer { padding-left:20px; padding-right:20px; } .menu-page main { padding-top:4px; } .minby-menu .menu-venue { padding-top:0; } .minby-menu .menu-item { padding:14px 0; gap:12px; } .minby-menu .menu-item img { width:62px; height:62px; border-radius:6px; } .minby-menu .menu-item-title { gap:8px; } .minby-menu h3 { font-size:15px; } .minby-menu .menu-price { font-size:13px; } }
@media(max-width:360px) { .menu-page main,.menu-page footer { padding-left:14px; padding-right:14px; } .minby-menu .menu-item img { width:50px; height:58px; } .minby-menu .menu-item-title { flex-wrap:wrap; gap:2px 8px; } }
@media print { .menu-brand,.minby-menu nav,.menu-page footer { display:none; } .minby-menu .menu-item { break-inside:avoid; } .minby-menu .menu-categories { position:static; } }
