/* Restaurant website identity and responsive page shell. */
.qm-top { background:#fffdf9; border-bottom:1px solid var(--qm-line); }
.qm-top-inner { max-width:1248px; min-height:84px; padding:16px 28px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.qm-top-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:12px; max-width:100%; }
.qm-public .qm-theme-toggle { min-height:40px; padding:8px 12px; gap:8px; font-size:11px; white-space:nowrap; }
.qm-theme-toggle svg { width:18px; height:18px; }
.qm-theme-light { display:none; }
[data-menu-theme=dark] .qm-theme-light { display:inline-flex; }
[data-menu-theme=dark] .qm-theme-dark { display:none; }
.qm-brand { display:flex; align-items:center; gap:12px; text-decoration:none; font-size:18px; font-weight:700; min-width:0; }
.qm-brand>span:last-child { overflow-wrap:anywhere; }
.qm-brand-logo { width:44px; height:44px; object-fit:contain; border-radius:12px; flex-shrink:0; }
.qm-brand-mark { display:grid; place-items:center; width:44px; height:44px; border-radius:14px; background:#fae9d8; color:#b75c28; flex-shrink:0; }
.site-languages { display:flex; align-items:center; gap:5px; flex-shrink:0; padding:4px; background:#f5f1e9; border-radius:11px; }
.site-languages a { padding:6px 12px; border-radius:8px; text-decoration:none; color:#8b8274; font-size:11px; border:1px solid transparent; }
.site-languages a:hover { color:var(--qm-accent-dark); }
.site-languages a[aria-current] { background:white; border-color:#e9ded0; color:#a55124; box-shadow:0 2px 4px #58473106; }
.qm-public .locale-switcher { flex-shrink:0; font-size:11px; gap:5px; }
.qm-public .locale-switcher select { min-height:40px; padding:7px 10px; background:#fff; color:var(--qm-ink); border-color:var(--qm-line); }
.qm-public .locale-switcher button { min-height:40px; padding:7px 12px; background:#f6eee4; color:#9f5628; border-color:#eee0ce; }
.qm-menu { max-width:1248px; padding:32px 28px 70px; margin:auto; min-height:75vh; }
.qm-hero { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:32px; min-height:360px; margin-bottom:52px; padding:38px 44px; border:1px solid #efe4d3; border-radius:28px; background:#f5ecdd; overflow:hidden; position:relative; }
.qm-hero::before { content:""; position:absolute; width:360px; height:360px; border-radius:50%; border:1px solid #e1c8a36b; inset-inline-end:-120px; top:-160px; pointer-events:none; }
.qm-hero-copy { position:relative; z-index:1; min-width:0; }
.qm-dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--qm-accent); }
.qm-hero h1 { font-size:clamp(30px,4.3vw,52px); line-height:1.4; letter-spacing:-.015em; margin:10px 0 12px; overflow-wrap:anywhere; }
.qm-hero-welcome { color:#83745f; font-size:15px; margin:0 0 26px; }
.qm-public .qm-explore { padding:13px 22px; border-radius:11px; font-size:13px; box-shadow:0 5px 12px #c05a2020; }
.qm-explore svg { width:18px; height:18px; }
.qm-waiter { display:flex; align-items:center; gap:9px; color:#8a7d69; font-size:10px; margin:24px 0 0; }
.qm-waiter svg { width:19px; height:19px; color:#b49872; }
.qm-hero-art { display:grid; place-items:center; height:280px; min-width:0; }
.qm-hero-logo, .qm-hero-placeholder { width:100%; height:100%; border-radius:24px; border:1px solid #e4d7c4; box-shadow:0 16px 30px #6c4b231b; }
.qm-hero-logo { display:block; object-fit:contain; padding:18px; background:#fff; }
.qm-hero-placeholder { display:grid; place-items:center; color:#b68d55; background:radial-gradient(circle,#fdf8ec 35%,#ecd8b9 36%,#f6e8ce 58%,#ead5b1 59%); }
.qm-hero-placeholder svg { width:90px; height:90px; stroke-width:1; }
.qm-public-footer { max-width:1192px; margin:auto; padding:26px 0 34px; border-top:1px solid var(--qm-line); display:flex; justify-content:space-between; align-items:center; gap:20px; color:#8c8375; font-size:11px; }
.qm-public-footer strong { color:#73644f; font-size:14px; }
@media(max-width:1000px) {
    .qm-hero { gap:20px; padding:30px; min-height:320px; }
    .qm-hero-art { height:250px; }
    .qm-public-footer { margin-inline:28px; }
}
@media(max-width:760px) {
    .qm-top-inner { min-height:72px; padding:14px 20px; gap:14px; flex-wrap:wrap; }
    .qm-brand { font-size:16px; }
    .qm-menu { padding:24px 20px 46px; }
    .qm-hero { padding:28px; gap:20px; margin-bottom:34px; min-height:290px; border-radius:22px; }
    .qm-hero-art { height:220px; }
    .qm-hero h1 { font-size:32px; }
    .qm-hero-welcome { font-size:13px; }
    .qm-public-footer { margin-inline:20px; }
}
@media(max-width:560px) {
    .qm-top-inner { justify-content:center; gap:12px; }
    .qm-brand { flex:1 0 100%; justify-content:center; }
    .qm-top-actions { width:100%; justify-content:center; }
    .site-languages a { padding:5px 8px; font-size:10px; }
    .qm-menu { padding:18px 14px 36px; }
    .qm-hero { grid-template-columns:1fr; padding:25px; gap:24px; }
    .qm-hero h1 { font-size:34px; }
    .qm-hero-copy { text-align:center; }
    .qm-hero .qm-eyebrow, .qm-waiter { justify-content:center; }
    .qm-hero-art { height:205px; width:100%; max-width:340px; margin:auto; }
    .qm-hero-welcome { margin-bottom:18px; }
    .qm-waiter { margin-top:18px; font-size:10px; }
    .qm-public-footer { flex-direction:column; align-items:center; text-align:center; gap:10px; margin-inline:14px; }
}

/* The menu theme is independent of the POS theme and stays active during AJAX browsing. */
html[data-menu-theme=light] { color-scheme:light; }
html[data-menu-theme=dark] { color-scheme:dark; }
html[data-menu-theme=dark] .qm-public {
    --qm-ink:#f3ede4; --qm-muted:#b8afa2; --qm-accent:#d95b28; --qm-accent-dark:#ffad82;
    --qm-line:#423c33; --qm-paper:#25231f; --qm-soft:#302c26; --qm-warm:#3d2b21;
    background:#181714;
}
html[data-menu-theme=dark] :is(.qm-top,.qm-search,.qm-category,.qm-dialog,.qm-empty) { background:var(--qm-paper); border-color:var(--qm-line); }
html[data-menu-theme=dark] .qm-brand-logo { background:#fff; padding:4px; }
html[data-menu-theme=dark] :is(.qm-brand-mark,.qm-dish-arrow,.qm-empty-icon) { background:#3b2e22; color:#edb280; }
html[data-menu-theme=dark] .site-languages { background:#302b24; }
html[data-menu-theme=dark] .site-languages a { color:#c2b4a2; }
html[data-menu-theme=dark] .site-languages a[aria-current] { background:#443125; border-color:#735238; color:#ffbf8e; }
html[data-menu-theme=dark] .qm-public .locale-switcher select { background:var(--qm-paper); color:var(--qm-ink); }
html[data-menu-theme=dark] .qm-public .locale-switcher button { background:#3b2e22; color:#edb280; border-color:var(--qm-line); }
html[data-menu-theme=dark] .qm-hero { background:#2c251d; border-color:#44382a; }
html[data-menu-theme=dark] .qm-hero::before { border-color:#72543366; }
html[data-menu-theme=dark] :is(.qm-hero-welcome,.qm-waiter,.qm-public-footer,.qm-public-footer strong) { color:#c9b79e; }
html[data-menu-theme=dark] .qm-hero-logo, html[data-menu-theme=dark] .qm-hero-placeholder { border-color:#4a3c2d; }
html[data-menu-theme=dark] .qm-hero-placeholder { background:radial-gradient(circle,#43372b 35%,#61482f 36%,#3a3025 58%,#715332 59%); color:#e9b57b; }
html[data-menu-theme=dark] .qm-public .qm-primary:hover { background:#b7481c; border-color:#b7481c; }
html[data-menu-theme=dark] :is(.qm-search-icon,.qm-price small) { color:#b9aa96; }
html[data-menu-theme=dark] .qm-search input::placeholder { color:#b9aa96; }
html[data-menu-theme=dark] .qm-categories { scrollbar-color:#635440 transparent; }
html[data-menu-theme=dark] .qm-category:hover { background:#342b23; border-color:#a47247; }
html[data-menu-theme=dark] .qm-category.selected { background:var(--qm-warm); border-color:#d17b46; color:#ffc39b; }
html[data-menu-theme=dark] :is(.qm-category-all,.qm-category-letter) { color:#d6b891; }
html[data-menu-theme=dark] .selected :is(.qm-category-all,.qm-category-letter) { background:#4c3524; color:#ffba88; }
html[data-menu-theme=dark] .qm-category-count { background:#37312a; color:#cabbab; }
html[data-menu-theme=dark] .selected .qm-category-count { background:#5a3925; color:#ffcfac; }
html[data-menu-theme=dark] .qm-feedback.is-error { color:#ffac98; }
html[data-menu-theme=dark] .qm-public .qm-dish { background:var(--qm-paper); }
html[data-menu-theme=dark] .qm-public .qm-dish:hover { background:#2b2721; border-color:#876745; box-shadow:0 14px 35px #0003; }
html[data-menu-theme=dark] :is(.qm-dish-media,.qm-detail-media) { background:#302920; }
html[data-menu-theme=dark] .qm-dish-placeholder { background:radial-gradient(circle at 30% 20%,#483c2b,transparent 70%),#302920; color:#c1a580; }
html[data-menu-theme=dark] .qm-featured { background:#3d2c1df5; color:#ffd4a7; }
html[data-menu-theme=dark] :is(.qm-image-hint,.qm-zoom-hint) { background:#30271ff2; color:#eed2ad; }
html[data-menu-theme=dark] .qm-public .qm-dialog-close button { background:#302a24; border-color:#665645; color:#f3e7d5; }
html[data-menu-theme=dark] .qm-public dialog::backdrop { background:#050403cb; }

/* Welcome screen: language first, then the menu. */
.qm-language-entry{min-height:100svh;display:grid;place-items:center;padding:40px 22px;background:radial-gradient(ellipse at 14% 10%,#79512b30,transparent 48%),radial-gradient(ellipse at 85% 85%,#34476730,transparent 48%),#111211;color:#f5efe6;position:relative;overflow:hidden}.qm-language-panel{position:relative;width:min(900px,100%);text-align:center;padding:52px 42px 30px;border:1px solid #b7966229;border-radius:32px;background:linear-gradient(145deg,#23241fe8,#171a18f5);box-shadow:0 35px 100px #0006}.qm-language-panel::before{content:"";position:absolute;width:180px;height:3px;top:-1px;left:calc(50% - 90px);background:linear-gradient(90deg,transparent,#d9b47f,transparent)}.qm-language-brand{display:flex;flex-direction:column;align-items:center;gap:16px}.qm-language-brand img{object-fit:contain;background:#fff;border-radius:25px;padding:9px;box-shadow:0 0 0 8px #c7a5750c,0 14px 35px #0003}.qm-language-brand p{margin:0;color:#e9d9bc;font-size:18px;font-weight:bold}.qm-language-emblem{display:grid;place-items:center;width:90px;height:90px;border:1px solid #b7966250;border-radius:25px;color:#dbb784;font-size:44px}.qm-language-welcome{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:20px;margin:30px 0 15px;color:#b99a70;font-size:12px}.qm-language-welcome span+span{border-inline-start:1px solid #b99a7040;padding-inline-start:20px}.qm-language-panel h1{font-size:clamp(25px,4vw,36px);line-height:1.6;margin:0 0 6px;color:#fff6e9}.qm-language-subtitle{font-size:14px;color:#b9b9aa;margin:0 0 32px}.qm-language-panel .site-languages.qm-language-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:0;background:none;border:0;border-radius:0}.qm-language-panel .qm-language-cards a{display:flex;align-items:center;gap:14px;text-align:start;text-decoration:none;border:1px solid #a98a5e3d;border-radius:18px;padding:22px 18px;background:linear-gradient(145deg,#33362e,#262922);color:#f7eddf;min-height:120px;box-shadow:0 7px 18px #0002;transition:transform .18s,border-color .18s,background .18s}.qm-language-panel .qm-language-cards a:hover,.qm-language-panel .qm-language-cards a:focus-visible{transform:translateY(-4px);border-color:#e4be85;background:#3c3b2e;outline:2px solid #c7a57570;outline-offset:4px}.qm-language-letter{display:grid;place-items:center;flex-shrink:0;width:43px;height:48px;border-radius:12px;background:#d6b17a18;color:#e1bd88;font-size:26px}.qm-language-cards strong{display:block;font-size:19px;line-height:1.6}.qm-language-cards small{display:block;font-size:10px;color:#bbbba9;margin-top:4px}.qm-language-cards svg{width:18px;height:18px;color:#d7b47d;margin-inline-start:auto}.qm-language-cards a[dir=rtl] svg{transform:rotate(180deg)}.qm-language-footer{color:#93998c;font-size:11px;margin:32px 0 0;padding-top:22px;border-top:1px solid #e1bd8815}@media(max-width:650px){.qm-language-entry{padding:22px 16px}.qm-language-panel{padding:32px 20px 22px;border-radius:24px}.qm-language-brand img{width:82px;height:82px}.qm-language-panel .site-languages.qm-language-cards{grid-template-columns:1fr;gap:12px}.qm-language-panel .qm-language-cards a{min-height:90px;padding:17px 20px}.qm-language-welcome{gap:12px;margin-top:25px}.qm-language-welcome span+span{padding-inline-start:12px}.qm-language-subtitle{margin-bottom:24px}.qm-language-cards small{font-size:12px}}
@media(prefers-reduced-motion:reduce){.qm-language-panel .qm-language-cards a{transition:none}.qm-language-panel .qm-language-cards a:hover,.qm-language-panel .qm-language-cards a:focus-visible{transform:none}}
