/* Uses the existing light/dark palette; absent media has no empty image box. */
:root { --product-option-radius:15px; }
.loyalty-debt-notice { padding:12px 16px; border:1px solid var(--line); border-radius:14px; background:var(--surface); color:var(--ink); font-size:.9rem; line-height:1.5; }
.loyalty-debt-notice[hidden] { display:none; }
.loyalty-debt-notice p { margin:6px 0; }
.loyalty-debt-event { padding-top:8px; border-top:1px solid var(--line); }
.dish-customer-info { color:var(--ink); }
.dish-customer-info:empty { display:none; }
.dish-facts-head { position:relative; min-height:36px; }
.dish-weight { display:inline-block; padding:7px 44px 7px 0; font-size:.95rem; }
.dish-weight small,.dish-facts-note { color:var(--muted); font-size:.875rem; line-height:1.45; }
.dish-facts-trigger { position:absolute; right:0; top:0; display:grid; place-items:center; width:34px; height:34px; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:var(--ink); cursor:pointer; font-weight:800; font-family:Georgia,serif; }
.dish-facts-dialog { width:min(520px,calc(100vw - 32px)); max-width:none; max-height:calc(100dvh - 32px); padding:0; border:1px solid var(--line); border-radius:22px; background:var(--paper); color:var(--ink); overflow:hidden; box-sizing:border-box; }
.dish-facts-dialog[open] { display:flex; flex-direction:column; }
.dish-facts-dialog::backdrop { background:rgba(0,0,0,.38); }
.dish-facts-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:20px; border-bottom:1px solid var(--line); flex-shrink:0; }
.dish-facts-dialog-head h2 { margin:0; font-size:1.2rem; line-height:1.35; }
.dish-facts-dialog-close { display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:var(--ink); font-size:1.6rem; cursor:pointer; }
.dish-facts-panel { min-height:0; margin:0; padding:20px; overflow:auto; overscroll-behavior:contain; background:var(--surface); }
.dish-facts-panel h3 { margin:0 0 12px; font-size:1rem; }
.dish-facts-panel h4 { margin:14px 0 6px; font-size:.9rem; }
.dish-facts-panel p { margin:6px 0; font-size:.875rem; line-height:1.45; }
.dish-facts-panel dl { margin:0; }
.dish-facts-panel dl>div { display:flex; justify-content:space-between; gap:12px; padding:5px 0; font-size:.875rem; }
.dish-facts-panel dd { margin:0; white-space:nowrap; font-variant-numeric:tabular-nums; }
.dish-extra-facts { padding-top:6px; border-top:1px solid var(--line); }
.dish-composition { margin:10px 0 14px; color:var(--muted); font-size:1rem; line-height:1.55; overflow-wrap:anywhere; }
.product-config-scroll { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
.product-config-scroll>#product-information { padding:12px 24px 0; }
.product-config-scroll>#product-information:empty { padding:0; }
.product-dialog-layout { min-height:0; height:min(720px,calc(100dvh - 40px)); grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); }
.product-dialog-config { min-width:0; }
.product-groups { max-height:none; overflow:visible; }
.product-groups:empty { display:none; }
.product-submit { flex-shrink:0; background:var(--paper); }
.product-groups fieldset { padding:0; border:0; }
.product-groups legend { padding:0; font-size:1rem; }
.product-groups fieldset.is-invalid { outline:0; }
.product-groups fieldset.is-invalid > .modifier-grid.modifier-segments { box-shadow:0px 0px 5px #ab0505; }
.product-groups fieldset>.product-error { margin:2px 0 0; color:var(--red); font-size:.8rem; line-height:1.4; }
.product-groups .modifier-grid,.promotion-required-options.modifier-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.modifier-option.modifier-card,.promotion-required-option.modifier-card { position:relative; min-width:0; min-height:116px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:12px 8px; border:1px solid var(--line); border-radius:var(--product-option-radius); text-align:center; background:var(--surface); color:var(--ink); }
.modifier-card .modifier-copy { justify-items:center; gap:8px; }
.modifier-card .modifier-copy b,.promotion-required-option.modifier-card strong { font-size:.9rem; font-weight:650; overflow-wrap:anywhere; }
.modifier-card .modifier-copy small,.promotion-required-option.modifier-card small { color:var(--ink); font-size:.875rem; }
.modifier-card .modifier-mark { position:absolute; top:6px; right:6px; width:24px; height:24px; flex-basis:24px; font-size:1rem; }
.modifier-card .modifier-photo { width:100%; height:82px; object-fit:contain; border-radius:10px; }
.modifier-card .modifier-weight { display:block; color:var(--muted); font-size:.875rem; }
.modifier-card:has(input:checked),.promotion-required-option.modifier-card.is-selected { border-color:var(--red); box-shadow:inset 0 0 0 1px var(--red); background:var(--surface); }
.modifier-option:has(input:focus-visible),.dish-facts-trigger:focus-visible,.dish-facts-dialog-close:focus-visible,.promotion-required-option:focus-visible { outline:2px solid var(--red); outline-offset:3px; }
.product-groups .modifier-grid.modifier-segments,.promotion-required-options.modifier-segments { display:flex; flex-wrap:wrap; gap:4px; padding:4px; border-radius:var(--product-option-radius); background:var(--cream); }
.modifier-segments .modifier-option,.modifier-segments .promotion-required-option { flex:1 1 100px; min-height:33px; justify-content:center; border:0; border-radius:var(--product-option-radius); padding:4px 12px; background:transparent; text-align:center; }
.modifier-segments .modifier-mark { display:none; }
.modifier-segments .modifier-option:has(input:checked),.modifier-segments .promotion-required-option.is-selected { background:var(--surface); color:var(--ink); box-shadow:0 2px 7px rgba(0,0,0,.1); }
.modifier-segments .modifier-copy b { font-size:.9rem; }
.promotion-required-options.modifier-segments { gap:8px; padding:0; background:transparent; }
.promotion-required-options.modifier-segments .promotion-required-option { border:1px solid var(--line); background:var(--cream); }
.promotion-required-options.modifier-segments .promotion-required-option.is-selected { border-color:var(--red); background:var(--soft-red); box-shadow:inset 0 0 0 1px var(--red); }
/* Compact selectors, without scaling text, images or the dialog itself. */
.product-options .size-options { padding-block:3.75px; }
.product-options .size-option { min-height:43.5px; padding-block:3px; gap:2px; }
.product-options .size-options,.product-options .size-option,.product-groups .modifier-option { border-radius:var(--product-option-radius); }
.product-groups .modifier-grid.modifier-segments,.promotion-required-options.modifier-segments { padding-block:3px; }
.modifier-segments .modifier-copy { gap:2px; }
.promotion-modifier-body>#promotion-product-information { max-width:900px; margin:0 auto 18px; }
.promotion-modifier-body>#promotion-product-information:empty { display:none; }
@media(max-width:760px) {
  .product-groups .modifier-grid.modifier-segments,.promotion-required-options.modifier-segments { flex-wrap:nowrap; }
  .modifier-segments .modifier-option,.modifier-segments .promotion-required-option { flex:1 1 0; min-width:0; padding-inline:4px; }
  .modifier-segments .modifier-copy,.modifier-segments .promotion-required-option strong { min-width:0; overflow-wrap:anywhere; }
  .product-dialog-layout { display:flex; flex-direction:column; height:auto; max-height:none; }
  .product-dialog-config { min-height:0; }
  .product-config-scroll { overflow:visible; }
  .product-dialog { overflow:auto; overscroll-behavior:contain; }
  .product-submit { position:sticky; bottom:0; z-index:2; padding-bottom:max(18px,env(safe-area-inset-bottom)); }
  .product-dialog-config>.cart-head { flex-shrink:0; }
}
@media(max-width:480px) {
  .product-config-scroll>#product-information { padding-inline:18px; }
  .modifier-option.modifier-card,.promotion-required-option.modifier-card { padding:10px 6px; }
  .modifier-card .modifier-photo { height:68px; }
  .product-groups .modifier-grid,.promotion-required-options.modifier-card-grid { gap:7px; }
}
@media(max-width:390px) {
  .product-groups .modifier-grid,
  .promotion-required-options.modifier-card-grid,
  .promotion-modifier-dialog:not(.is-required-choice) .promotion-required-options.modifier-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(prefers-reduced-motion:reduce) { .modifier-option { transition:none; } }
.dish-ingredient { border:0; padding:2px 0; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.dish-ingredient span { border-bottom:1px dotted currentColor; }
.dish-ingredient.is-excluded span { text-decoration:line-through; text-decoration-color:var(--red,#b42c22); text-decoration-thickness:2px; opacity:.65; }
.dish-ingredient b { font-weight:400; }
.dish-ingredient:focus-visible { outline:2px solid currentColor; outline-offset:3px; }

/* Dynamic/visual viewport keeps the mobile action above Safari's browser controls. */
@media(max-width:760px) {
 .product-dialog { position:fixed; inset:calc(var(--product-viewport-top,0px) + 8px) 0 auto; margin:0 auto; max-height:calc(100vh - 16px); max-height:calc(var(--product-viewport-height,100dvh) - 16px); box-sizing:border-box; }
 .product-submit { padding-bottom:max(18px,env(safe-area-inset-bottom,0px)); }
}
