:root {
  --accent: #e4572e;
  --bg: #faf8f5;
  --card: #ffffff;
  --text: #1d1b19;
  --muted: #77706a;
  --line: #ece7e1;
}
@media (prefers-color-scheme: dark) {
  :root { --bg: #151413; --card: #1f1d1b; --text: #f3efea; --muted: #a59d95; --line: #2f2c29; }
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 64px; }
body { margin: 0; font-family: Inter, system-ui, -apple-system, sans-serif; background: var(--bg); color: var(--text); -webkit-font-smoothing: antialiased; }
a { color: var(--accent); }

.m-hero { height: 120px; background: linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 55%, #000)); }
.m-hero.has-cover { height: 200px; background-size: cover; background-position: center; }
.m-venue { max-width: 720px; margin: 0 auto; padding: 0 16px 8px; text-align: center; }
.m-logo { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; margin-top: -42px; border: 4px solid var(--bg); background: var(--card); }
.m-venue h1 { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; margin: 12px 0 4px; }
.m-tagline { color: var(--muted); margin: 0 0 12px; }
.m-info { display: inline-block; text-align: left; margin: 4px 0 8px; max-width: 100%; }
.m-info summary { cursor: pointer; list-style: none; display: inline-block; padding: 7px 14px; border-radius: 999px; background: var(--card); border: 1px solid var(--line); font-size: 14px; font-weight: 600; }
.m-info summary::-webkit-details-marker { display: none; }
.m-info dl { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 12px 16px; margin: 10px 0 0; }
.m-info dt { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; margin-top: 8px; }
.m-info dt:first-child { margin-top: 0; }
.m-info dd { margin: 2px 0 0; }
.m-info code { font-size: 15px; background: var(--bg); padding: 2px 6px; border-radius: 6px; }

.m-tabs { position: sticky; top: 0; z-index: 5; display: flex; gap: 6px; overflow-x: auto; padding: 10px 16px; background: color-mix(in srgb, var(--bg) 92%, transparent); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); scrollbar-width: none; }
.m-tabs::-webkit-scrollbar { display: none; }
.m-tabs a { flex: none; padding: 8px 14px; border-radius: 999px; text-decoration: none; color: var(--text); font-weight: 600; font-size: 14px; white-space: nowrap; }
.m-tabs a.on { background: var(--accent); color: #fff; }

.m-list { max-width: 720px; margin: 0 auto; padding: 0 16px 24px; }
.m-view[hidden] { display: none; }
.m-cards { display: grid; gap: 12px; padding-top: 16px; }
.m-card { position: relative; display: flex; flex-direction: column; justify-content: flex-end; gap: 2px; min-height: 120px; padding: 16px 18px; border-radius: 18px; text-decoration: none; color: #fff; overflow: hidden; background: linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 55%, #000)) center/cover no-repeat; transition: transform .1s; }
.m-card:active { transform: scale(.99); }
.m-card.has-img::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.72), rgba(0,0,0,.12) 70%); }
.m-card > span { position: relative; }
.m-card-name { font-size: 22px; font-weight: 800; letter-spacing: -0.01em; text-shadow: 0 1px 6px rgba(0,0,0,.25); }
.m-card-count { font-size: 13px; font-weight: 600; opacity: .9; }
.m-back { display: inline-block; margin-top: 16px; padding: 8px 14px; border-radius: 999px; background: var(--card); border: 1px solid var(--line); color: var(--text); text-decoration: none; font-weight: 600; font-size: 14px; }
.m-cat-view h2, .m-cat h2 { font-size: 24px; font-weight: 800; margin: 14px 0 12px; letter-spacing: -0.01em; }
.m-item { display: flex; gap: 14px; align-items: flex-start; background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 14px; margin-bottom: 10px; cursor: pointer; transition: transform .1s; }
.m-item:active { transform: scale(.99); }
.m-item:focus-visible { outline: 2px solid var(--accent); }
.m-text { flex: 1; min-width: 0; }
.m-item h3 { margin: 0 0 4px; font-size: 16px; font-weight: 700; }
.m-item p { margin: 0 0 8px; color: var(--muted); font-size: 14px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.m-item img { width: 104px; height: 104px; border-radius: 12px; object-fit: cover; flex: none; }
.m-price { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.m-price b { font-weight: 700; }
.m-price b.sale { color: var(--accent); }
.m-price s { color: var(--muted); font-size: 14px; }
.badge { font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 6px; background: var(--line); color: var(--muted); }
.m-price .from { color: var(--muted); font-size: 13px; }
.m-price .more { font-size: 12px; font-weight: 600; color: var(--muted); background: var(--bg); border: 1px solid var(--line); padding: 1px 8px; border-radius: 999px; }
.m-sheet-text .more { display: none; }
.m-sheet-text h4 { margin: 18px 0 6px; font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.m-opts { list-style: none; margin: 0; padding: 0; }
.m-opts li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line); }
.m-opts li:first-child { border-top: 0; }
.m-sheet { overflow-y: auto; }
.m-item.sold { opacity: .55; }
.m-item.sold img { filter: grayscale(1); }

.m-sheet { border: 0; padding: 0; width: 100%; max-width: 560px; max-height: 92vh; margin: auto auto 0; border-radius: 22px 22px 0 0; background: var(--card); color: var(--text); }
@media (min-width: 600px) { .m-sheet { margin: auto; border-radius: 22px; } }
.m-sheet::backdrop { background: rgba(0,0,0,.5); }
.m-sheet img { width: 100%; max-height: 55vh; object-fit: cover; display: block; }
.m-sheet-text { padding: 18px 20px 28px; }
.m-sheet-text h3 { font-size: 22px; margin: 0 0 8px; }
.m-sheet-text p { color: var(--muted); line-height: 1.5; margin: 0 0 14px; }
.m-sheet-text .m-price { font-size: 20px; }
.m-close { position: absolute; top: 12px; inset-inline-end: 12px; width: 36px; height: 36px; border-radius: 50%; border: 0; background: rgba(0,0,0,.55); color: #fff; font-size: 16px; cursor: pointer; }

.m-foot a { color: inherit; font-weight: 600; }
.m-empty, .m-foot { text-align: center; color: var(--muted); padding: 32px 16px; font-size: 13px; }
.paused { max-width: 420px; margin: 20vh auto; text-align: center; padding: 0 24px; }
.paused p { color: var(--muted); }

/* Language picker */
.m-hero { position: relative; }
.m-logo { position: relative; z-index: 1; }   /* the banner is positioned now, so lift the logo above it */
.m-lang { position: absolute; top: 12px; inset-inline-end: 12px; z-index: 6; }
.m-lang summary { list-style: none; cursor: pointer; padding: 7px 13px; border-radius: 999px; background: rgba(255,255,255,.92); color: #1d1b19; font-size: 14px; font-weight: 700; box-shadow: 0 2px 10px rgba(0,0,0,.18); user-select: none; }
.m-lang summary::-webkit-details-marker { display: none; }
.m-lang-list { position: absolute; top: calc(100% + 6px); inset-inline-end: 0; min-width: 160px; max-height: 70vh; overflow-y: auto; background: var(--card); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 12px 34px rgba(0,0,0,.22); padding: 6px; }
.m-lang-list a { display: block; padding: 10px 12px; border-radius: 9px; color: var(--text); text-decoration: none; font-weight: 600; font-size: 15px; }
.m-lang-list a:hover { background: var(--bg); }
.m-lang-list a[aria-current] { background: var(--accent); color: #fff; }

/* Right-to-left languages and their fonts */
:lang(ar) body { font-family: Inter, 'Noto Sans Arabic', system-ui, sans-serif; }
:lang(ur) body { font-family: Inter, 'Noto Nastaliq Urdu', 'Noto Sans Arabic', system-ui, sans-serif; line-height: 1.9; }
:lang(ur) h1, :lang(ur) h2, :lang(ur) h3, :lang(ur) .m-card-name { line-height: 1.7; }
[dir="rtl"] .m-card-name { letter-spacing: 0; }
[dir="rtl"] .m-info dl { text-align: right; }
[dir="rtl"] .m-opts li b { direction: ltr; }

/* On a computer screen the menu is shown inside a phone, the way guests see it after scanning the QR code. */
@media (min-width: 820px) and (min-height: 560px) {
  html { height: 100%; overflow: hidden; display: grid; place-items: center; background: radial-gradient(ellipse at 50% 35%, color-mix(in srgb, var(--accent) 16%, #f1ece6), #e4ded6 70%); }
  body { width: 410px; height: min(860px, calc(100vh - 40px)); overflow-y: auto; overscroll-behavior: contain; scroll-behavior: smooth; scroll-padding-top: 64px; scrollbar-width: none;
    border: 10px solid #191817; border-radius: 46px; box-shadow: 0 30px 80px rgba(0,0,0,.28), 0 0 0 1px rgba(255,255,255,.08) inset; background: var(--bg); }
  body::-webkit-scrollbar { display: none; }
  .m-sheet { max-width: 390px; max-height: min(780px, calc(100vh - 100px)); margin: auto; border-radius: 22px; }
}
@media (min-width: 820px) and (min-height: 560px) and (prefers-color-scheme: dark) {
  html { background: radial-gradient(ellipse at 50% 35%, color-mix(in srgb, var(--accent) 14%, #1a1817), #0c0b0b 70%); }
  body { border-color: #34312e; }
}

/* Example menu on a computer: "back" link top-left, and a short pitch beside the phone when there is room. */
.demo-back, .demo-pitch { display: none; }
@media (min-width: 820px) and (min-height: 560px) {
  .demo-back { display: inline-block; position: fixed; top: 22px; left: 26px; z-index: 20; padding: 9px 16px; border-radius: 999px; background: var(--card); color: var(--text); border: 1px solid var(--line); box-shadow: 0 4px 16px rgba(0,0,0,.08); font-size: 14px; font-weight: 700; text-decoration: none; }
  .demo-back:hover { border-color: var(--accent); }
}
@media (min-width: 1080px) and (min-height: 560px) {
  .demo-pitch { display: block; position: fixed; top: 50%; transform: translateY(-50%); right: calc(50% + 205px + 56px); width: min(360px, calc(50vw - 205px - 90px)); z-index: 20; color: var(--text); text-align: left; }
  .demo-kicker { margin: 0 0 10px; font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--accent); }
  .demo-pitch h2 { margin: 0 0 14px; font-size: 32px; line-height: 1.12; font-weight: 800; letter-spacing: -0.02em; }
  .demo-fact { margin: 0 0 22px; font-size: 16px; line-height: 1.5; color: var(--muted); }
  .demo-steps { list-style: none; counter-reset: s; margin: 0 0 24px; padding: 0; display: grid; gap: 14px; }
  .demo-steps li { counter-increment: s; position: relative; padding-left: 46px; min-height: 32px; }
  .demo-steps li::before { content: counter(s); position: absolute; left: 0; top: 0; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--accent); color: #fff; font-weight: 800; font-size: 15px; }
  .demo-steps b { display: block; font-size: 16px; }
  .demo-steps span { display: block; font-size: 14px; color: var(--muted); line-height: 1.4; }
  .demo-cta { display: inline-block; padding: 14px 24px; border-radius: 12px; background: var(--accent); color: #fff; font-weight: 800; font-size: 16px; text-decoration: none; box-shadow: 0 8px 22px color-mix(in srgb, var(--accent) 35%, transparent); }
  .demo-cta:hover { filter: brightness(1.06); }
  .demo-small { margin: 10px 0 0; font-size: 13px; color: var(--muted); }
}
