/* Outdoor menu presentation. PHP applies this class only to the /menu route. */
html.ek-menu-light {
    color-scheme: light;
    background: #fffdf9;
    --ek-brand-pattern: url('assets/eboshi-doodles-70979b7c.png');
    --ek-primary: #171717;
    --ek-secondary: #343434;
    --ek-text: #343434;
    --ek-orange: #d70916;
    --ek-red: #d70916;
    --ek-surface: #fff;
    --ek-border: #c9c9c9;
}
html.ek-menu-light body {
    --ek-background: none;
    isolation: isolate;
    background: #fffdf9;
    color: #171717;
    font-size: 20px;
    line-height: 1.5;
}
/* Original Eboshi line artwork, kept byte-for-byte; CSS gives it a light-paper treatment. */
html.ek-menu-light body::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: var(--ek-brand-pattern) center top / 760px auto repeat;
    filter: brightness(0);
    opacity: .5;
}

/* Rendered by PHP before JavaScript: only the menu route has this screen. */
html.ek-menu-light.ek-attract-active,
html.ek-menu-light.ek-attract-active body { height: 100%; overflow: hidden; overscroll-behavior: none; }
html.ek-menu-light.ek-attract-active body::before { display: none; }
html.ek-menu-light.ek-attract-active #ek-menu-screen,
.ek-menu-light #ek-menu-screen[hidden],
.ek-menu-light #ek-attract[hidden],
.ek-menu-light #ek-attract-status[hidden],
.ek-menu-light #ek-attract-poster[hidden] { display: none !important; }
.ek-menu-light .ek-attract {
    --ek-attract-padding: clamp(16px, 2.5vw, 40px);
    --ek-attract-gap: clamp(16px, 2.25vh, 32px);
    --ek-attract-title-size: clamp(40px, 7vw, 80px);
    --ek-attract-button-height: clamp(80px, 7.5vw, 104px);
    --ek-attract-viewport: 100vh;
    position: relative;
    display: grid;
    grid-template-areas: 'title' 'media' 'action';
    grid-template-rows: max-content minmax(0, max-content) max-content;
    align-content: center;
    justify-items: center;
    gap: var(--ek-attract-gap);
    width: 100%;
    height: var(--ek-attract-viewport);
    padding: calc(var(--ek-attract-padding) + env(safe-area-inset-top, 0px)) calc(var(--ek-attract-padding) + env(safe-area-inset-right, 0px)) calc(var(--ek-attract-padding) + env(safe-area-inset-bottom, 0px)) calc(var(--ek-attract-padding) + env(safe-area-inset-left, 0px));
    overflow: hidden;
    background: #fffdf9;
    color: #171717;
    text-align: center;
    touch-action: manipulation;
}
.ek-menu-light .ek-attract::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--ek-brand-pattern) center / 920px auto repeat;
    filter: brightness(0);
    opacity: .6;
    pointer-events: none;
}
.ek-menu-light .ek-attract > * { position: relative; z-index: 1; }
@supports (height: 100dvh) {
    .ek-menu-light .ek-attract { --ek-attract-viewport: 100dvh; --ek-attract-gap: clamp(16px, 2.25dvh, 32px); }
}
.ek-menu-light #ek-attract-title {
    grid-area: title;
    margin: 0;
    color: #171717;
    font-size: calc(var(--ek-attract-title-size) * .56);
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -.025em;
    text-transform: none;
}
.ek-menu-light #ek-attract-title span { display: block; color: #c40714; font-size: var(--ek-attract-title-size); font-weight: 800; line-height: 1.15; letter-spacing: -.04em; }
.ek-menu-light .ek-attract-frame {
    grid-area: media;
    position: relative;
    width: min(100%, calc(var(--ek-attract-viewport) - 2 * var(--ek-attract-padding) - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 1.8 * var(--ek-attract-title-size) - var(--ek-attract-button-height) - 2 * var(--ek-attract-gap)));
    min-width: 0;
    min-height: 0;
    aspect-ratio: 1;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: #fff;
}
.ek-menu-light #ek-attract-video,
.ek-menu-light #ek-attract-poster {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: contain;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: #fff;
}
.ek-menu-light #ek-attract-poster { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.ek-menu-light #ek-attract-enter {
    grid-area: action;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    width: min(720px, 100%);
    min-height: var(--ek-attract-button-height);
    padding: 18px 24px;
    border: 2px solid #d70916;
    border-radius: 18px;
    background: #d70916;
    color: #fff;
    font-size: clamp(24px, 3vw, 32px);
    font-weight: 700;
    line-height: 1.2;
    box-shadow: 0 6px 0 #940813;
}
.ek-menu-light #ek-attract-enter::after { content: ''; flex: none; width: 18px; height: 18px; border-top: 4px solid currentColor; border-right: 4px solid currentColor; transform: rotate(45deg); }
.ek-menu-light #ek-attract-enter:focus-visible { outline: 3px solid #940813; outline-offset: 4px; }
.ek-menu-light #ek-attract-enter:active { border-color: #b20813; background: #b20813; box-shadow: 0 2px 0 #940813; transform: translateY(4px); }
.ek-menu-light #ek-attract-enter[aria-busy=true] { background: #b20813; border-color: #b20813; color: #fff; cursor: progress; }
.ek-menu-light #ek-attract-status { grid-area: media; align-self: end; z-index: 3; width: min(600px, 100%); max-height: 100%; overflow: auto; margin: 0; padding: 18px 22px; border: 2px solid #d70916; border-radius: 12px; background: #fff; color: #171717; font-size: 20px; font-weight: 500; line-height: 1.4; }
/* Programmatic landmarks announce a screen change; keyboard buttons keep their focus rings. */
.ek-menu-light #ek-categories:focus,
.ek-menu-light #ek-loading:focus { outline: none; }
.ek-menu-light .ek-shell { padding: 16px; }
.ek-menu-light a { color: #b20813; text-decoration: underline; text-underline-offset: 3px; }
.ek-menu-light h1, .ek-menu-light h2, .ek-menu-light h3 { color: #171717; }
.ek-menu-light button:focus-visible,
.ek-menu-light a:focus-visible,
.ek-menu-light input:focus-visible,
.ek-menu-light textarea:focus-visible,
.ek-menu-light select:focus-visible,
.ek-menu-light summary:focus-visible {
    outline: 3px solid #171717;
    outline-offset: 4px;
}
.ek-menu-light .ek-button {
    min-height: 56px;
    padding: 14px 20px;
    border: 2px solid #d70916;
    border-radius: 10px;
    background: #d70916;
    color: #fff;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
}
.ek-menu-light .ek-button.secondary {
    border-color: #a7a7a7;
    background: #fff;
    color: #171717;
}
.ek-menu-light .ek-button:active { background: #b20813; border-color: #b20813; color: #fff; }
.ek-menu-light .ek-icon-button {
    min-width: 56px;
    min-height: 56px;
    border: 2px solid #a7a7a7;
    border-radius: 10px;
    background: #fff;
    color: #171717;
}
.ek-menu-light button:disabled {
    opacity: 1;
    border-color: #c9c9c9;
    background: #f1f1f1;
    color: #626262;
}

/* A compact white header keeps the original brand and device information. */
.ek-menu-light .ek-compact-header { background: #fff; border: 0; border-bottom: 4px solid #d70916; box-shadow: 0 4px 0 #f0e5da; }
.ek-menu-light .ek-compact-header .ek-header-inner { padding: 16px; gap: 16px; }
.ek-menu-light .ek-topline { font-size: 16px; line-height: 1.35; }
.ek-menu-light .ek-topline strong { color: #b20813; font-size: 24px; font-weight: 800; letter-spacing: -.025em; }
.ek-menu-light .ek-header-title { border-left: 5px solid #d70916; padding-left: 14px; }
.ek-menu-light .ek-header-meta { color: #343434; }
.ek-menu-light #ek-mode-label { color: #171717; font-size: 20px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.ek-menu-light .ek-brand { width: 80px; height: 80px; max-width: 80px; padding: 0; border: 0; background: #fff; box-shadow: none; }
.ek-menu-light .ek-brand img { border-radius: 50%; }
.ek-menu-light .ek-brand-text { color: #d70916; font-size: 18px; font-weight: 700; }

/* Source category order is unchanged; only the artwork and presentation differ. */
.ek-menu-light #ek-categories { --ek-nav-gap: 12px; gap: var(--ek-nav-gap); padding: 16px 0 24px; }
.ek-menu-light .ek-category { gap: 10px; padding: 8px 8px 12px; border: 2px solid #e4d9d0; border-radius: 20px; background: #fff; box-shadow: 0 4px 0 #eee5dc; color: #171717; font-size: 20px; font-weight: 700; line-height: 1.25; }
.ek-menu-light .ek-category-image { position: relative; border: 0; border-radius: 14px; background: transparent; }
.ek-menu-light .ek-category-image img { padding: 4px; border-radius: 0; object-fit: contain; filter: none; }
.ek-menu-light .ek-category-image .ek-category-layer { position: absolute; width: 110%; max-width: none; height: 88%; padding: 0; object-fit: contain; }
.ek-menu-light .ek-category-image .ek-category-layer-0 { left: -24%; top: 1%; z-index: 1; }
.ek-menu-light .ek-category-image .ek-category-layer-1 { right: -24%; top: 1%; z-index: 1; }
.ek-menu-light .ek-category-image .ek-category-layer-2 { left: -5%; top: 11%; z-index: 2; }
.ek-menu-light .ek-category-label { display: block; width: calc(100% + 8px); margin: 0 -4px; overflow-wrap: break-word; hyphens: auto; }
.ek-menu-light .ek-category[aria-current=true] { border-color: #d70916; background: #fff0f1; color: #9f0710; box-shadow: 0 4px 0 #edc3c6; }
.ek-menu-light .ek-category[aria-current=true] .ek-category-image { background: transparent; }
.ek-menu-light .ek-category:active,
.ek-menu-light .ek-category.ek-pressed { border-color: #d70916; outline: 2px solid #d70916; outline-offset: -2px; background: #fff0f1; }
.ek-menu-light .ek-category:active .ek-category-image,
.ek-menu-light .ek-category.ek-pressed .ek-category-image { outline: none; }
.ek-menu-light .ek-category[aria-current=true] .ek-category-image:after {
    content: '✓';
    position: absolute;
    right: 5px;
    bottom: 5px;
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #d70916;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    z-index: 3;
}
.ek-menu-light .ek-category-fallback { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; padding: 8px; color: #171717; overflow-wrap: break-word; hyphens: auto; }
.ek-menu-light .ek-category-text-only .ek-category-label { visibility: hidden; }
.ek-menu-light #ek-categories.ek-home-categories { flex-wrap: wrap; justify-content: center; }
.ek-menu-light #ek-categories.ek-home-categories > .ek-category,
.ek-menu-light #ek-categories.ek-home-categories > .ek-category:nth-child(n+4) { flex: 0 0 calc((100% - 2 * var(--ek-nav-gap)) / 3); }
@media (min-width:600px) {
    .ek-menu-light #ek-categories { flex-wrap: wrap; }
    .ek-menu-light #ek-categories:not(.ek-home-categories) > .ek-category { flex: 0 0 calc((100% - 4 * var(--ek-nav-gap)) / 5); }
    .ek-menu-light #ek-categories:not(.ek-home-categories) > .ek-category:nth-child(n+6) { flex-basis: calc((100% - 5 * var(--ek-nav-gap)) / 6); }
}

.ek-menu-light .ek-catalog-heading { gap: 16px; margin: 28px 0 24px; padding: 16px 18px; border-radius: 18px; border-left: 6px solid #d70916; background: #181a1c; }
.ek-menu-light .ek-catalog-heading h1 { color: #fff; font-size: 36px; font-weight: 700; line-height: 1.2; scroll-margin-top: 32px; }
.ek-menu-light .ek-catalog-heading .ek-back-home { min-height: 56px; padding: 12px 16px; border-color: #ff727e; background: #181a1c; color: #fff; font-size: 20px; }
.ek-menu-light .ek-catalog-heading .ek-back-home:focus-visible { outline-color: #fff; }
.ek-menu-light .ek-catalog-heading .ek-back-home:active,
.ek-menu-light .ek-catalog-heading .ek-back-home.ek-pressed { border-color: #000; background: #000; color: #fff; }
.ek-menu-light .ek-subcategories { gap: 12px; margin-bottom: 28px; }
.ek-menu-light .ek-subcategories .ek-button { min-height: 56px; padding: 12px 18px; font-size: 20px; }
.ek-menu-light .ek-subcategories .ek-button[aria-pressed=true] { border-color: #d70916; background: #d70916; color: #fff; box-shadow: none; }
.ek-menu-light .ek-subcategories .ek-button:before { content: '✓'; visibility: hidden; flex: none; font-size: 20px; font-weight: 700; }
.ek-menu-light .ek-subcategories .ek-button[aria-pressed=true]:before { visibility: visible; }

/* One outer grid retains the existing trailing viewport and section headings. */
.ek-menu-light .ek-grid.category-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.ek-menu-light .ek-section-title { margin: 8px 0 0; padding: 14px 18px; border-left: 5px solid #d70916; border-radius: 0 12px 12px 0; background: #181a1c; color: #fff; font-size: 28px; font-weight: 700; line-height: 1.3; text-align: left; }
.ek-menu-light .ek-card + .ek-section-title { margin-top: 24px; }
.ek-menu-light .ek-section-accent { color: #ff9299; }
.ek-menu-light .ek-card { gap: 16px; padding: 20px; border: 2px solid #e4d9d0; border-radius: 22px; background: #fff; box-shadow: 0 5px 0 #eee5dc; transition: none; }
.ek-menu-light .ek-card:before { display: none; }
.ek-menu-light .ek-card:hover { transform: none; box-shadow: 0 5px 0 #eee5dc; }
.ek-menu-light .ek-card:active,
.ek-menu-light .ek-card.ek-pressed { border-color: #d70916; outline: 2px solid #d70916; outline-offset: -2px; }
.ek-menu-light .ek-card-photo { width: 100%; max-width: 100%; aspect-ratio: 3/2; margin: 0; border-radius: 8px; filter: none; object-fit: contain; }
.ek-menu-light .ek-card-facts { gap: 8px 16px; margin: 0; color: #343434; font-size: 20px; font-weight: 500; line-height: 1.3; }
.ek-menu-light .ek-card-name { color: #171717; font-size: 24px; font-weight: 700; line-height: 1.25; }
.ek-menu-light .ek-card-subtitle { color: #343434; font-size: 20px; line-height: 1.4; }
.ek-menu-light .ek-card-bottom { flex-direction: column; align-items: stretch; gap: 16px; padding-top: 16px; border-top: 2px solid #f0e8e1; }
.ek-menu-light .ek-card-price { flex: none; color: #b20813; font-size: 32px; font-weight: 800; line-height: 1.2; }
.ek-menu-light .ek-card-price del { color: #505050; font-size: 20px; opacity: 1; margin-bottom: 6px; }
.ek-menu-light .ek-card-price ins { color: #b20813; }
.ek-menu-light .ek-card-add { width: 100%; min-height: 56px; padding: 14px 16px; border-radius: 12px; font-size: 20px; box-shadow: 0 3px 0 #940813; }
.ek-menu-light .ek-card-add:active { box-shadow: none; transform: translateY(2px); }
.ek-menu-light .ek-card-unavailable { max-width: none; color: #343434; font-size: 20px; line-height: 1.4; text-align: left; }
.ek-menu-light .ek-empty { padding: 40px 12px; color: #343434; font-size: 22px; }
.ek-menu-light .ek-footer { color: #343434; font-size: 18px; padding: 24px 16px; font-weight: 500; }

/* All dialogs, including nested sauce/combo details, share the bright palette. */
.ek-menu-light .ek-modal { padding: 16px; background: rgba(23,23,23,.3); }
.ek-menu-light .ek-dialog { width: min(1040px,100%); max-width: 1040px; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); padding: 24px; border: 2px solid #e4d9d0; border-top: 6px solid #d70916; border-radius: 22px; background: #fff; color: #171717; box-shadow: 0 12px 40px #1717171a; }
.ek-menu-light .ek-dialog-header { position: sticky; top: 0; z-index: 3; align-items: flex-start; gap: 16px; padding: 10px 0 18px; margin-bottom: 20px; border-bottom: 1px solid #c9c9c9; background: #fff; }
.ek-menu-light .ek-dialog-header h2 { color: #171717; font-size: 28px; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; }
.ek-menu-light .ek-dialog-close { min-width: 56px; min-height: 56px; border-color: #d70916; background: #fff; color: #b20813; font-size: 38px; font-weight: 700; }
.ek-menu-light .ek-detail-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
.ek-menu-light .ek-detail-photo { border-radius: 12px; background: #fff; }
.ek-menu-light .ek-detail-photo-static { cursor: default; }
.ek-menu-light .ek-detail-image { width: 100%; max-height: none; border-radius: 12px; filter: none; }
.ek-menu-light .ek-detail-copy { color: #171717; font-size: 20px; line-height: 1.5; }
.ek-menu-light .ek-composition-title { color: #171717; font-size: 24px; font-weight: 700; margin-bottom: 12px; }
.ek-menu-light .ek-detail-facts { flex-wrap: wrap; gap: 8px 20px; margin: 0 0 18px; color: #343434; font-size: 20px; font-weight: 500; }
.ek-menu-light .ek-detail-price { color: #b20813; font-size: 32px; font-weight: 700; line-height: 1.25; margin: 20px 0 0; }
.ek-menu-light .ek-detail-price del { color: #505050; font-size: 22px; }
.ek-menu-light .ek-full-description { margin-top: 20px; font-size: 20px; line-height: 1.5; }
.ek-menu-light .ek-full-description summary { min-height: 56px; padding: 14px 0; color: #b20813; font-size: 20px; font-weight: 700; }
.ek-menu-light .ek-choice-group { margin: 28px 0 0; min-width: 0; }
.ek-menu-light .ek-choice-group legend { color: #171717; font-size: 24px; font-weight: 700; line-height: 1.35; margin-bottom: 12px; }
.ek-menu-light .ek-choice-help { margin-bottom: 14px; color: #343434; font-size: 20px; }
.ek-menu-light .ek-sauce-info { margin-top: 28px; padding: 18px 20px; border-left: 4px solid #d70916; border-radius: 0 12px 12px 0; background: #fff6ef; color: #171717; font-size: 20px; line-height: 1.5; overflow-wrap: anywhere; }
.ek-menu-light .ek-sauce-label { margin-bottom: 12px; font-weight: 700; }
.ek-menu-light .ek-sauce-names { margin: 0; color: #343434; }
.ek-menu-light .ek-choice-row { gap: 12px; margin: 12px 0; }
.ek-menu-light .ek-choice { min-width: 0; min-height: 56px; padding: 14px 16px; border: 2px solid #a7a7a7; border-radius: 10px; background: #fff; color: #171717; font-size: 20px; font-weight: 500; line-height: 1.35; overflow-wrap: anywhere; }
.ek-menu-light .ek-choice[data-action=noop] { cursor: default; }
.ek-menu-light .ek-choice[aria-pressed=true] { border-color: #d70916; background: #fff0f1; color: #171717; }
.ek-menu-light .ek-choice-detail, .ek-menu-light .ek-choice-remove { flex: none; min-width: 56px; min-height: 56px; padding: 8px; border: 2px solid #d70916; border-radius: 10px; background: #fff; color: #b20813; font-size: 26px; font-weight: 700; }
.ek-menu-light .ek-actions { gap: 16px; margin-top: 24px; }
.ek-menu-light .ek-actions .ek-button { flex: 1 1 220px; }
.ek-menu-light .ek-inline-error { color: #b20813; font-size: 20px; font-weight: 500; line-height: 1.4; }
.ek-menu-light .ek-inline-error:empty { margin: 0; }

/* Notices and exceptional screens stay readable before or without the catalog. */
.ek-menu-light .ek-notice { padding: 16px 20px; border: 2px solid #a7a7a7; border-radius: 12px; background: #fff; color: #171717; font-size: 20px; line-height: 1.45; }
.ek-menu-light .ek-notice.error { border-color: #d70916; background: #fff0f1; }
.ek-menu-light .ek-network { border-radius: 0; border-width: 0 0 2px; }
.ek-menu-light .ek-status { padding: 56px 16px; color: #171717; font-size: 22px; }
.ek-menu-light .ek-spinner { width: 28px; height: 28px; border-color: #c9c9c9; border-top-color: #d70916; }
.ek-menu-light .ek-toast { padding: 16px 20px; border: 2px solid #d70916; border-radius: 12px; background: #fff; color: #171717; font-size: 20px; font-weight: 500; box-shadow: none; }
.ek-menu-light .ek-idle h2 { color: #171717; font-size: 28px; font-weight: 700; }
.ek-menu-light .ek-field { color: #171717; font-size: 20px; }
.ek-menu-light .ek-field input, .ek-menu-light .ek-field textarea, .ek-menu-light .ek-field select { min-height: 56px; padding: 14px; border: 2px solid #a7a7a7; border-radius: 10px; background: #fff; color: #171717; font-size: 20px; }
.ek-menu-light .ek-field input::placeholder, .ek-menu-light .ek-field textarea::placeholder { color: #626262; opacity: 1; }

/* Zoom keeps the existing photo and dialog state; only its presentation changes. */
.ek-menu-light .ek-photo-view { padding: 0; background: #fff; }
.ek-menu-light .ek-photo-view .ek-dialog { display: flex; flex-direction: column; width: 100%; height: 100%; max-width: none; max-height: none; padding: 0; border: 0; border-radius: 0; background: #fff; }
.ek-menu-light .ek-photo-view .ek-dialog-header { position: sticky; inset: auto; top: 0; flex: none; gap: 16px; margin: 0; padding: 16px; border-bottom: 1px solid #c9c9c9; background: #fff; pointer-events: none; }
.ek-menu-light .ek-photo-view .ek-dialog-header h2 { font-size: 24px; line-height: 1.3; }
.ek-menu-light .ek-photo-view .ek-dialog-close { pointer-events: auto; }
.ek-menu-light .ek-photo-view #ek-dialog-body { display: flex; flex: 1 0 auto; align-items: center; min-height: 0; width: 100%; }
.ek-menu-light .ek-photo-view .ek-detail-grid { display: block; width: 100%; }
.ek-menu-light .ek-photo-view .ek-detail-photo { width: 100%; border: 0; border-radius: 0; background: #fff; }
.ek-menu-light .ek-photo-view .ek-detail-image { width: 100%; height: auto; max-height: none; aspect-ratio: auto; border-radius: 0; }

@media (min-width:600px) and (max-width:820px) {
    .ek-menu-light .ek-category { font-size: 18px; }
    .ek-menu-light .ek-card { padding: 16px; }
    .ek-menu-light .ek-card-name { font-size: 22px; }
}
@media (max-width:1080px) {
    .ek-menu-light .ek-detail-grid { grid-template-columns: 1fr; gap: 24px; }
    .ek-menu-light .ek-detail-image { max-height: 460px; }
    .ek-menu-light .ek-photo-view .ek-detail-image { max-height: none; }
}
@media (max-width:767px) {
    .ek-menu-light .ek-detail-grid { grid-template-columns: 1fr; gap: 20px; }
    .ek-menu-light .ek-detail-image { max-height: 380px; }
    .ek-menu-light .ek-dialog { padding: 20px; }
    .ek-menu-light .ek-dialog-header h2 { font-size: 24px; }
    .ek-menu-light .ek-photo-view .ek-detail-image { max-height: none; }
}
@media (max-width:599px) {
    .ek-menu-light .ek-shell { padding: 12px; }
    .ek-menu-light .ek-compact-header .ek-header-inner { padding: 12px; gap: 10px; }
    .ek-menu-light .ek-brand { width: 64px; height: 64px; max-width: 64px; }
    .ek-menu-light .ek-topline { font-size: 14px; }
    .ek-menu-light .ek-topline strong { font-size: 18px; }
    .ek-menu-light #ek-mode-label { font-size: 18px; }
    .ek-menu-light #ek-categories { --ek-nav-gap: 10px; flex-wrap: wrap; padding-top: 12px; }
    .ek-menu-light .ek-category { gap: 8px; padding: 6px 4px 10px; border-radius: 14px; font-size: 18px; }
    .ek-menu-light #ek-categories:not(.ek-home-categories) > .ek-category { flex: 0 0 calc((100% - 2 * var(--ek-nav-gap)) / 3); }
    .ek-menu-light #ek-categories:not(.ek-home-categories) > .ek-category:nth-child(n+4) { flex-basis: calc((100% - 3 * var(--ek-nav-gap)) / 4); }
    .ek-menu-light .ek-category-image { border-radius: 10px; }
    .ek-menu-light .ek-category-image img { padding: 2px; }
    .ek-menu-light .ek-category-fallback { padding: 4px; }
    .ek-menu-light .ek-catalog-heading h1 { font-size: 30px; }
    .ek-menu-light .ek-catalog-heading { padding: 14px 12px; gap: 10px; }
    .ek-menu-light .ek-catalog-heading .ek-back-home { padding: 10px; font-size: 18px; }
    .ek-menu-light .ek-header-title { padding-left: 8px; border-left-width: 3px; }
    .ek-menu-light #ek-attract-enter { gap: 16px; padding-left: 16px; padding-right: 20px; }
    .ek-menu-light .ek-grid.category-grid { grid-template-columns: minmax(0,1fr); gap: 16px; }
    .ek-menu-light .ek-section-title { font-size: 26px; }
    .ek-menu-light .ek-card { padding: 18px; }
    .ek-menu-light .ek-card-name { font-size: 22px; }
    .ek-menu-light .ek-subcategories { gap: 10px; }
    .ek-menu-light .ek-subcategories .ek-button { padding-left: 14px; padding-right: 14px; }
    .ek-menu-light .ek-modal { padding: 8px; }
    .ek-menu-light .ek-dialog { padding: 16px; max-height: calc(100vh - 16px); max-height: calc(100dvh - 16px); }
    .ek-menu-light .ek-dialog-header { gap: 12px; }
    .ek-menu-light .ek-choice-row { gap: 8px; }
    .ek-menu-light .ek-choice { padding: 12px; }
    .ek-menu-light .ek-photo-view { padding: 0; }
    .ek-menu-light .ek-photo-view .ek-dialog { padding: 0; max-height: none; }
    .ek-menu-light .ek-photo-view .ek-dialog-header { padding: 12px; }
    .ek-menu-light .ek-photo-view .ek-dialog-header h2 { font-size: 22px; }
}

/* Home uses four equal-width category rows; category screens keep their own grid. */
@media (min-width:600px) and (orientation:portrait) {
    html.ek-menu-light.ek-home .ek-compact-header .ek-header-inner { padding-top: 10px; padding-bottom: 10px; }
    html.ek-menu-light.ek-home .ek-brand { width: 72px; height: 72px; max-width: 72px; }
    html.ek-menu-light.ek-home #ek-main { padding-top: 8px; padding-bottom: 8px; }
    html.ek-menu-light.ek-home #ek-categories { --ek-nav-gap: 10px; gap: 8px var(--ek-nav-gap); padding: 8px 0 12px; }
    html.ek-menu-light.ek-home .ek-category { gap: 6px; padding-bottom: 8px; font-size: 20px; }
    html.ek-menu-light.ek-home .ek-category-image { height: var(--ek-home-image-height, clamp(100px, 16vh, 280px)); height: var(--ek-home-image-height, clamp(100px, 16dvh, 280px)); aspect-ratio: auto; }
    html.ek-menu-light.ek-home .ek-category-label { min-height: 25px; line-height: 1.25; }
    html.ek-menu-light.ek-home .ek-footer { padding: 4px 16px; font-size: 16px; line-height: 1.25; }
}

/* A compact charcoal brand bar belongs only to the light tablet menu. */
html.ek-menu-light .ek-menu-header.ek-compact-header {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border: 0;
    border-bottom: 3px solid #d70916;
    background: #181a1c;
    color: #fff;
    box-shadow: 0 4px 0 #e9e2d9;
}
.ek-menu-light .ek-menu-header::before {
    content: none;
}
html.ek-menu-light .ek-menu-header.ek-compact-header .ek-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 90px;
    gap: 24px;
    padding: 12px 20px;
}
.ek-menu-light .ek-menu-header .ek-brand.ek-menu-brand {
    display: inline-flex;
    flex: 0 1 auto;
    align-items: center;
    gap: 14px;
    width: auto;
    max-width: none;
    height: auto;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #fff;
    text-align: left;
}
.ek-menu-light .ek-menu-header .ek-brand img { flex: none; display: block; width: 64px; height: 64px; max-height: 64px; object-fit: contain; outline: 1px solid #ffffff35; outline-offset: -1px; }
.ek-menu-light .ek-menu-wordmark { display: flex; flex-direction: column; gap: 5px; }
.ek-menu-light .ek-menu-wordmark strong { color: #fff; font-size: 28px; font-weight: 800; line-height: 1; letter-spacing: .01em; }
.ek-menu-light .ek-menu-wordmark > span { color: #ff9299; font-size: 14px; font-weight: 700; line-height: 1; letter-spacing: .3em; }
.ek-menu-light .ek-menu-location { display: flex; align-items: center; gap: 12px; margin-left: auto; text-align: right; }
.ek-menu-light .ek-menu-location > span { display: flex; flex-direction: column; gap: 3px; }
.ek-menu-light .ek-menu-location svg { flex: none; width: 24px; height: 28px; fill: none; stroke: #ff727e; stroke-width: 1.8; }
.ek-menu-light .ek-menu-location .ek-menu-city { color: #e5e1df; font-size: 16px; font-weight: 400; line-height: 1.2; }
.ek-menu-light .ek-menu-location strong { color: #fff; font-size: 22px; font-weight: 700; line-height: 1.2; }
.ek-menu-light .ek-menu-header .ek-brand:focus-visible { outline-color: #fff; outline-offset: 4px; }
.ek-menu-light .ek-menu-header .ek-brand:active { opacity: .8; }
@media (max-width:599px) {
    html.ek-menu-light .ek-menu-header.ek-compact-header .ek-header-inner { min-height: 80px; gap: 12px; padding: 12px; }
    .ek-menu-light .ek-menu-header .ek-brand.ek-menu-brand { gap: 10px; }
    .ek-menu-light .ek-menu-header .ek-brand img { width: 52px; height: 52px; max-height: 52px; }
    .ek-menu-light .ek-menu-wordmark strong { font-size: 23px; }
    .ek-menu-light .ek-menu-wordmark > span { font-size: 12px; }
    .ek-menu-light .ek-menu-location { gap: 6px; }
    .ek-menu-light .ek-menu-location svg { width: 20px; height: 24px; }
    .ek-menu-light .ek-menu-location .ek-menu-city { font-size: 14px; }
    .ek-menu-light .ek-menu-location strong { font-size: 19px; }
}

/* Category cards pair a bright food stage with the charcoal brand bar. */
html.ek-menu-light #ek-categories .ek-category {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    gap: 0;
    padding: 0;
    border: 2px solid #eaded1;
    border-radius: 22px;
    background: #fff9f0;
    box-shadow: 0 4px 0 #e4d9ce;
    color: #fff;
    transition: none;
}
html.ek-menu-light #ek-categories .ek-category-image {
    flex: none;
    border: 0;
    border-radius: 0;
    background: #fff9f0;
}
html.ek-menu-light #ek-categories .ek-category-image::before {
    content: '';
    position: absolute;
    inset: 12% 8% 8% 8%;
    border-radius: 50% 44% 48% 42%;
    background: #f8ddc1;
    transform: rotate(-12deg);
    pointer-events: none;
    z-index: 0;
}
html.ek-menu-light #ek-categories .ek-category-image > img:not(.ek-category-layer) {
    position: relative;
    z-index: 1;
    padding: 6px;
}
html.ek-menu-light #ek-categories .ek-category-label {
    display: flex;
    flex: 1 0 auto;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 50px;
    margin: 0;
    padding: 12px 8px;
    border-top: 3px solid #d70916;
    background: #181a1c;
    color: #fff;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -.015em;
    visibility: visible;
}
html.ek-menu-light #ek-categories.ek-home-categories .ek-category-label {
    justify-content: space-between;
    gap: 8px;
    min-height: 62px;
    padding: 12px 16px;
    font-size: clamp(22px, 2.8vw, 30px);
    text-align: left;
}
html.ek-menu-light #ek-categories.ek-home-categories .ek-category-label::after {
    content: '';
    display: block;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #d70916 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h13M13 6l6 6-6 6' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 21px 21px no-repeat;
}
html.ek-menu-light #ek-categories .ek-category[aria-current=true],
html.ek-menu-light #ek-categories .ek-category:active,
html.ek-menu-light #ek-categories .ek-category.ek-pressed {
    border-color: #d70916;
    outline: 2px solid #d70916;
    outline-offset: -2px;
    box-shadow: 0 4px 0 #ae0914;
}
html.ek-menu-light #ek-categories .ek-category[aria-current=true] .ek-category-label,
html.ek-menu-light #ek-categories .ek-category:active .ek-category-label,
html.ek-menu-light #ek-categories .ek-category.ek-pressed .ek-category-label { background-color: #b20813; }
html.ek-menu-light #ek-categories .ek-category:active .ek-category-label::after,
html.ek-menu-light #ek-categories .ek-category.ek-pressed .ek-category-label::after { background-color: #181a1c; }
html.ek-menu-light #ek-categories .ek-category:focus-visible { outline: 3px solid #171717; outline-offset: 3px; }
html.ek-menu-light #ek-categories .ek-category-text-only .ek-category-fallback { visibility: hidden; }
@media (max-width:820px) {
    html.ek-menu-light #ek-categories.ek-home-categories .ek-category-label { padding: 10px 12px; font-size: 22px; }
}
@media (max-width:599px) {
    html.ek-menu-light #ek-categories .ek-category { border-radius: 16px; }
    html.ek-menu-light #ek-categories .ek-category-label { min-height: 48px; padding: 10px 4px; font-size: 18px; }
    html.ek-menu-light #ek-categories.ek-home-categories .ek-category-label { justify-content: center; min-height: 50px; padding: 10px 4px; font-size: 18px; text-align: center; }
    html.ek-menu-light #ek-categories.ek-home-categories .ek-category-label::after { display: none; }
    html.ek-menu-light #ek-categories .ek-category-image > img:not(.ek-category-layer) { padding: 3px; }
    html.ek-menu-light.ek-home .ek-footer { padding: 4px 12px; font-size: 16px; line-height: 1.25; }
}

/* Compact navigation keeps complete category names on one line. */
html.ek-menu-light #ek-categories:not(.ek-home-categories) .ek-category-label {
    padding-left: 4px;
    padding-right: 4px;
    white-space: nowrap;
    hyphens: none;
    overflow-wrap: normal;
    word-break: normal;
}
@media (min-width:600px) and (max-width:820px) {
    html.ek-menu-light #ek-categories:not(.ek-home-categories) .ek-category-label {
        font-size: clamp(16px, 2.7vw, 18px);
    }
}
@media (max-width:599px) {
    html.ek-menu-light #ek-categories:not(.ek-home-categories) .ek-category-label {
        padding-left: 2px;
        padding-right: 2px;
        font-size: clamp(12px, 3.8vw, 18px);
    }
}
