/**
 * ROU order page — full viewport width; menu grows with the screen.
 * ROU brand chrome on the transactional spine — ROU crimson is the action color.
 */
:root{
  --c-bg:var(--rou-cream,#FFF7ED);
  --c-surface:var(--rou-surface,#FFFFFF);
  --c-text:var(--rou-text,#3F3F46);
  --c-muted:var(--rou-text-light,#71717A);
  --c-border:color-mix(in srgb, var(--c-text) 12%, transparent);
  --c-accent:var(--rou-primary,#D90F32);
  --c-on-accent:#FFFFFF;
  --c-accent-light:color-mix(in srgb, var(--c-accent) 12%, var(--c-surface));
  --c-accent-hover:var(--rou-primary-dark,#B00D29);
  --c-dark:var(--rou-text-strong,#1E1E1E);
  --c-dark-mid:#3a3a3c;
  --c-success:var(--rou-success,#16a34a);
  --c-danger:var(--rou-danger,#dc2626);
  --c-qty-bg:color-mix(in srgb, var(--c-text) 6%, transparent);
  --c-warm:var(--rou-cream-soft,#FFFCF5);
  --font-body:var(--rou-font-body,'Poppins',system-ui,-apple-system,sans-serif);
  --font-display:var(--rou-font-display,'Poppins',system-ui,-apple-system,sans-serif);
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;
  --content-max:100%;
  --radius:999px;
  --radius-card:1.25rem;
  --radius-input:999px;
  --shadow:0 1px 4px rgba(26,26,26,0.05);
  --shadow-lg:0 16px 40px rgba(26,26,26,0.12);
  --rou-ui-radius-sm:1.25rem;
  --rou-header-sticky-offset:7.25rem;
  --rou-browse-search-h:0px;
  --rou-scroll-anchor-pad:calc(env(safe-area-inset-top,0px) + var(--rou-header-sticky-offset) + var(--rou-browse-search-h));
  --rou-text-body:15px;--rou-text-sm:14px;--rou-text-caption:12px;--rou-text-micro:11px;--rou-text-title:18px;--rou-text-figure:1.05rem;
  --rou-leading-tight:1.25;--rou-leading-snug:1.4;--rou-leading-body:1.5;
  --rou-touch:44px;--rou-gap-tight:var(--sp-2);--rou-gap:var(--sp-3);--rou-gap-block:var(--sp-4);--rou-gap-section:var(--sp-6);
  --rou-page-inline:max(1rem,env(safe-area-inset-left,0px));
  --rou-page-inline-right:max(1rem,env(safe-area-inset-right,0px));
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:var(--rou-scroll-anchor-pad)}
body.rou-order-shell{
  --c-bg:var(--rou-cream,#FFF7ED);
  --c-surface:var(--rou-surface,#FFFFFF);
  --c-text:var(--rou-text,#3F3F46);
  --c-muted:var(--rou-text-light,#71717A);
  --c-border:color-mix(in srgb, var(--c-text) 12%, transparent);
  --c-accent:var(--rou-primary,#D90F32);
  --c-on-accent:#FFFFFF;
  --c-accent-light:color-mix(in srgb, var(--c-accent) 12%, var(--c-surface));
  --c-accent-hover:var(--rou-primary-dark,#B00D29);
  --c-dark:var(--rou-text-strong,#1E1E1E);
  font-family:var(--font-body);background:var(--c-bg);color:var(--c-text);font-size:var(--rou-text-body);line-height:var(--rou-leading-body);padding-bottom:calc(7.5rem + env(safe-area-inset-bottom,0px));touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;overflow-x:hidden
}
.rou-order-frame{width:100%;max-width:none;margin:0;min-height:100svh;background:var(--c-surface)}

/* Header — mark, name, language, then the table chip */
.rou-header{position:sticky;top:0;z-index:40;border-bottom:1px solid color-mix(in srgb, var(--c-border) 70%, transparent);background:color-mix(in srgb, var(--c-surface) 95%, transparent);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);color:var(--c-text);padding:max(1rem,env(safe-area-inset-top,0px)) var(--rou-page-inline-right) 0 var(--rou-page-inline)}
.rou-header-inner{display:flex;flex-direction:column;gap:0}
.rou-header-top{display:flex;align-items:center;gap:0.75rem;min-width:0;padding-bottom:0.75rem}
.rou-order-mark{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;flex:0 0 auto;border-radius:50%;border:1px solid var(--c-border);background:color-mix(in srgb, var(--c-surface) 90%, transparent);color:var(--c-accent);font-family:var(--font-display);font-size:0.78rem;font-weight:600;letter-spacing:0.04em}
.rou-order-mark--logo{object-fit:cover;padding:0}
.rou-brand{min-width:0;flex:1}
.rou-site-name{font-family:var(--font-display);font-size:1rem;font-weight:600;letter-spacing:-0.01em;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rou-site-tag{margin:0.15rem 0 0;font-size:0.75rem;line-height:1.3;color:var(--c-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rou-header-context{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem;padding-bottom:0.75rem}
.rou-table-badge{display:inline-flex;align-items:center;gap:0.375rem;padding:0.375rem 0.75rem;border-radius:999px;background:var(--c-dark);color:var(--c-on-accent);font-size:0.75rem;font-weight:600;line-height:1.25}
.rou-table-badge--diner{background:transparent;color:var(--c-text);border:1px solid var(--c-border)}
.rou-table-badge--delivery{background:var(--c-dark);color:var(--c-on-accent)}

/* Header right group */
.rou-header-top .rou-lang-switch{margin-left:auto;flex:0 0 auto}

/* Language switcher */
.rou-lang-switch{position:relative}
.rou-lang-btn{display:inline-flex;align-items:center;gap:var(--rou-gap-tight);background:var(--c-qty-bg);border:none;border-radius:999px;padding:var(--rou-gap-tight) var(--rou-gap);cursor:pointer;color:var(--c-muted);font-size:var(--rou-text-caption);font-weight:500;line-height:var(--rou-leading-tight);font-family:var(--font-body);transition:background .2s,color .2s;-webkit-tap-highlight-color:transparent}
.rou-lang-btn:hover{color:var(--c-text);background:rgba(60,60,67,0.1)}
.rou-lang-btn svg{flex-shrink:0;width:14px;height:14px;display:block;opacity:.75}
.rou-lang-code{letter-spacing:.03em}
.rou-lang-dropdown{position:absolute;top:calc(100% + var(--rou-gap-tight));right:0;min-width:220px;max-height:min(70vh,420px);overflow:auto;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-card);box-shadow:var(--shadow-lg);padding:var(--rou-gap-tight);z-index:9999;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .18s,visibility .18s,transform .18s ease;pointer-events:none}
.rou-lang-filter{width:100%;box-sizing:border-box;margin:0 0 6px;padding:8px 10px;border:1px solid var(--c-border);border-radius:8px;font:inherit;font-size:13px;background:var(--c-warm,#f8f8f7)}
.rou-lang-switch.open .rou-lang-dropdown{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
.rou-lang-option{display:flex;align-items:center;gap:var(--rou-gap-tight);padding:var(--rou-gap-tight) var(--rou-gap);border-radius:var(--radius-input);text-decoration:none;font-size:var(--rou-text-sm);line-height:var(--rou-leading-snug);color:var(--c-text);transition:background .15s;white-space:nowrap}
.rou-lang-option:hover{background:var(--c-qty-bg)}
.rou-lang-option.rou-lang-active{font-weight:600;color:var(--c-text)}
.rou-lang-option svg{margin-left:auto;color:var(--c-accent)}
.rou-lang-flag{display:inline-flex;align-items:center;justify-content:center;width:26px;height:18px;border-radius:3px;background:var(--c-warm);font-size:10px;font-weight:700;color:var(--c-muted);letter-spacing:.5px;flex-shrink:0}

/* Main layout */
.rou-main{padding:0 0 1.5rem}

/* Order page panels (from PHP classes) */
.rou-active-orders{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-card);padding:var(--rou-gap);margin:var(--rou-gap-block) 0;font-size:var(--rou-text-sm);line-height:var(--rou-leading-snug);box-shadow:var(--shadow)}
.rou-active-orders__head{display:flex;align-items:center;gap:var(--rou-gap-tight);font-weight:600;font-size:var(--rou-text-caption);line-height:var(--rou-leading-tight);color:var(--c-muted);padding-bottom:var(--rou-gap-tight);margin-bottom:var(--sp-1);border-bottom:1px solid var(--c-border)}
.rou-active-orders__head svg{opacity:.55}
.rou-active-orders__row{display:flex;justify-content:space-between;align-items:center;padding:var(--rou-gap-tight) 0;text-decoration:none;color:inherit;border-bottom:1px solid var(--c-border);transition:opacity .15s}
.rou-active-orders__row:hover{opacity:.75}
.rou-active-orders__row:last-of-type{border-bottom:none}
.rou-active-orders__status{font-size:var(--rou-text-caption);font-weight:500;line-height:var(--rou-leading-tight);color:var(--c-muted);background:var(--c-qty-bg);padding:var(--sp-1) var(--rou-gap-tight);border-radius:999px}
.rou-wallet-panel{margin:var(--rou-gap) 0;padding:var(--rou-gap);background:var(--c-qty-bg);border:none;border-radius:1.25rem}
.rou-wallet-panel__head{display:flex;align-items:center;gap:var(--rou-gap-tight);margin-bottom:var(--rou-gap-tight)}
.rou-wallet-panel__icon{font-size:1.125rem;line-height:1;opacity:.85}
.rou-wallet-panel__head strong{color:var(--c-text);font-size:var(--rou-text-sm);font-weight:600;line-height:var(--rou-leading-snug)}
.rou-wallet-panel__check{display:flex;align-items:center;gap:var(--rou-gap-tight);font-size:var(--rou-text-sm);line-height:var(--rou-leading-snug);cursor:pointer;color:var(--c-text)}
.rou-wallet-panel__check input[type=checkbox]{width:18px;height:18px;flex-shrink:0;margin:0;accent-color:var(--c-accent)}
.rou-wallet-panel__amount-row{display:none;margin-top:var(--rou-gap-tight)}
.rou-wallet-panel__amount-row label{font-size:var(--rou-text-caption);font-weight:600;color:var(--c-muted)}
.rou-wallet-panel__amount-row input[type=number]{width:120px;padding:var(--rou-gap-tight);border:1px solid var(--c-border);border-radius:var(--radius-input);font-size:var(--rou-text-body);margin-top:var(--sp-1);background:var(--c-surface)}
.rou-wallet-panel__currency{font-size:var(--rou-text-caption);color:var(--c-muted);margin-left:var(--sp-1)}
.rou-wallet-panel__preview{margin:var(--sp-2) 0 0;font-size:var(--rou-text-sm);font-weight:600;color:var(--c-accent);line-height:var(--rou-leading-snug)}
.rou-wallet-panel__rate-note{margin:var(--sp-1) 0 0;font-size:var(--rou-text-caption);line-height:var(--rou-leading-snug);color:var(--c-muted)}
.rou-wallet-login-hint{text-align:center;padding:var(--rou-gap-tight) var(--rou-gap);font-size:var(--rou-text-caption);line-height:var(--rou-leading-snug);color:var(--c-muted)}
.rou-wallet-login-hint a{color:var(--c-accent);text-decoration:underline;font-weight:600}

/* Browse: search strip sticks below header (category rail lives in .rou-menu-split) */
.rou-browse-sticky{position:sticky;top:var(--rou-header-sticky-offset);z-index:25;margin:0 0 var(--rou-gap-tight);padding:0.65rem 1rem;background:var(--c-surface);border-bottom:none}
.rou-browse-sticky .rou-search-wrap{margin-top:0;margin-bottom:0}
.rou-menu-split{margin:0 0 var(--rou-gap-block)}
.rou-menu-split-inner{display:flex;align-items:flex-start;gap:var(--rou-gap);min-width:0}
.rou-cat-rail{flex:0 0 clamp(72px,26vw,108px);min-width:0;position:sticky;top:calc(var(--rou-header-sticky-offset) + var(--rou-browse-search-h));align-self:flex-start;max-height:calc(100dvh - var(--rou-header-sticky-offset) - var(--rou-browse-search-h) - var(--rou-gap-block));overflow-y:auto;-webkit-overflow-scrolling:touch;border-right:none;background:transparent;z-index:26;padding:0 var(--sp-1) var(--rou-gap) 0;scrollbar-width:thin}
.rou-items-scroller{flex:1;min-width:0;padding-right:var(--sp-1)}

/* Search */
.rou-search-wrap{position:relative;margin:0 0 var(--rou-gap-tight)}
.rou-search-wrap svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--c-muted);pointer-events:none;opacity:.65}
.rou-search-wrap input{width:100%;padding:7px var(--rou-gap-block) 7px 34px;border:none;border-radius:var(--radius-input);background:var(--c-surface);font-size:16px;font-family:var(--font-body);line-height:var(--rou-leading-snug);color:var(--c-text);outline:none;transition:box-shadow .2s;min-height:40px;box-shadow:inset 0 0 0 1px var(--c-border)}
.rou-search-wrap input:focus{box-shadow:inset 0 0 0 1px rgba(60,60,67,0.28),0 0 0 3px rgba(60,60,67,0.08)}
.rou-search-wrap input::placeholder{color:var(--c-muted)}
.rou-search-empty{display:none;margin:var(--sp-1) 0 0;padding:var(--rou-gap-tight) var(--rou-gap);font-size:var(--rou-text-caption);line-height:var(--rou-leading-snug);color:var(--c-muted);text-align:center;background:var(--c-surface);border:none;border-radius:var(--radius-input)}
.rou-search-empty.is-visible{display:block}

/* Category navigation */
.rou-cat-nav{display:flex;flex-direction:column;flex-wrap:nowrap;gap:var(--sp-1);padding:var(--rou-gap-tight) 0;scrollbar-width:thin}
.rou-cat-nav::-webkit-scrollbar{width:4px}
.rou-cat-nav::-webkit-scrollbar-thumb{background:var(--c-border);border-radius:4px}
.rou-cat-nav a{flex-shrink:0;width:100%;padding:var(--rou-gap-tight);border-radius:0.65rem;font-size:var(--rou-text-caption);font-weight:500;text-decoration:none;color:var(--c-muted);background:transparent;border:none;transition:background .15s,color .15s;text-transform:none;letter-spacing:0;min-height:36px;display:inline-flex;align-items:center;justify-content:flex-start;text-align:left;line-height:var(--rou-leading-snug);overflow-wrap:anywhere;hyphens:auto;-webkit-tap-highlight-color:transparent}
.rou-cat-nav a:hover{color:var(--c-text);background:var(--c-qty-bg)}
.rou-cat-nav a.cat-active{background:var(--c-surface);color:var(--c-text);font-weight:700;box-shadow:inset 3px 0 0 var(--c-accent)}

/* Section headers — sticky index while the list scrolls (Chinese-menu pattern) */
.rou-section{margin-bottom:var(--rou-gap-section);text-align:left}
.rou-section .rou-item{text-align:left}
.rou-items-scroller > .rou-section:first-child .rou-section-title{margin-top:0}
.rou-section-title{font-family:var(--font-display);font-size:var(--rou-text-caption);font-weight:600;padding:8px 0 6px;color:var(--c-muted);border:none;border-radius:0;margin:0 0 var(--rou-gap);display:block;letter-spacing:0.04em;text-transform:uppercase;line-height:var(--rou-leading-tight);scroll-margin-top:var(--rou-scroll-anchor-pad);position:sticky;top:calc(var(--rou-header-sticky-offset) + var(--rou-browse-search-h) - 1px);z-index:8;background:linear-gradient(var(--c-surface) 70%,transparent)}

/* Item rows — flat grouped list, accent only on qty + price */
.rou-item{background:transparent;border:none;border-bottom:1px solid color-mix(in srgb, var(--c-text) 10%, transparent);border-radius:0;padding:0.9rem 1rem;margin:0;box-shadow:none;transition:background .15s}
.rou-item:hover{box-shadow:none;background:color-mix(in srgb, var(--c-text) 3%, transparent)}
.rou-item.has-qty{background:var(--c-accent-light);box-shadow:none}
.rou-item-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--rou-gap)}
.rou-item-info{flex:1;min-width:0}
.rou-item-name{font-weight:600;font-size:var(--rou-text-body);line-height:var(--rou-leading-snug);letter-spacing:-.01em;color:var(--c-text);overflow-wrap:anywhere}
.rou-item-original-name{font-size:var(--rou-text-caption,12px);line-height:1.3;color:var(--c-muted,rgba(0,0,0,.55));margin:.15rem 0 .25rem;overflow-wrap:anywhere}
.rou-item-name-line{display:flex;align-items:center;gap:var(--rou-gap-tight);flex-wrap:wrap}
.rou-item-blurb{margin:var(--sp-1) 0 0;font-size:var(--rou-text-sm);line-height:var(--rou-leading-snug);color:var(--c-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rou-item-media{position:relative;flex:0 0 5.25rem;width:5.25rem}
.rou-item-photo{display:block;width:5.25rem;height:5.25rem;padding:0;border:0;background:var(--c-warm);border-radius:1rem;overflow:hidden;cursor:zoom-in;-webkit-tap-highlight-color:transparent}
.rou-item-photo img{display:block;width:5.25rem;height:5.25rem;object-fit:cover}
.rou-item.has-photo .rou-item-media .rou-stepper{position:absolute;right:4px;bottom:4px;z-index:2;background:rgba(255,255,255,.96);box-shadow:0 1px 4px rgba(0,0,0,.14)}
.rou-item.has-photo .rou-stepper:not(.active){background:var(--c-accent);border-radius:999px;overflow:hidden}
.rou-item.has-photo .rou-stepper:not(.active) .rou-plus{color:var(--c-on-accent);width:36px;height:36px}
.rou-item.has-photo .rou-stepper:not(.active) button:hover{background:rgba(0,0,0,.12);color:#fff}
.rou-item.has-photo .rou-stepper:not(.active) .rou-minus,
.rou-item.has-photo .rou-stepper:not(.active) .rou-qty{display:none}
.rou-item.has-photo .rou-stepper.active .rou-qty{width:28px;font-size:var(--rou-text-sm)}
.rou-item.has-photo .rou-stepper.active button{width:32px;height:32px}
.rou-item.has-photo .rou-allergen{width:22px;height:22px;font-size:10px}
.rou-shared-count{display:none;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 var(--sp-1);border-radius:999px;background:var(--c-qty-bg);color:var(--c-muted);font-size:11px;font-weight:600;line-height:1}
.rou-shared-count.visible{display:inline-flex;color:var(--c-accent);background:var(--c-accent-light)}
.rou-allergens{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-top:var(--sp-2)}
.rou-allergen{display:inline-flex;align-items:center;justify-content:center;font-size:var(--rou-text-sm);width:26px;height:26px;border-radius:6px;background:var(--c-qty-bg);cursor:default}
.rou-allergen-legend{background:transparent;border:none;border-radius:0;margin:var(--rou-gap) 0 0;font-size:var(--rou-text-sm);line-height:var(--rou-leading-snug)}
.rou-allergen-legend summary{padding:var(--rou-gap-tight) 0;cursor:pointer;font-weight:500;font-size:var(--rou-text-caption);line-height:var(--rou-leading-snug);color:var(--c-muted);list-style:none;display:flex;align-items:center;gap:var(--rou-gap-tight)}
.rou-allergen-legend summary::before{content:none}
.rou-allergen-legend summary::after{content:'▸';margin-left:auto;font-size:10px;opacity:.55;transition:transform .15s}
.rou-allergen-legend[open] summary::after{transform:rotate(90deg)}
.rou-allergen-legend[open] summary{color:var(--c-text)}
.rou-allergen-grid{display:flex;flex-wrap:wrap;gap:var(--rou-gap-tight) var(--rou-gap);padding:var(--rou-gap-tight) 0 var(--rou-gap)}
.rou-legend-item{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--rou-text-caption);line-height:var(--rou-leading-snug);color:var(--c-muted);white-space:nowrap}
.rou-item-price{font-family:var(--font-display);font-size:var(--rou-text-body);font-weight:600;line-height:var(--rou-leading-tight);color:var(--c-text);margin-top:var(--sp-2);white-space:nowrap}
.rou-item-desc-btn{background:none;border:none;color:var(--c-muted);cursor:pointer;font-size:var(--rou-text-caption);padding:var(--sp-1) 0;border-radius:0;transition:color .15s;display:inline-flex;align-items:center;gap:var(--sp-1);margin-top:var(--sp-2);font-family:var(--font-body);min-height:auto}
.rou-item-desc-btn:hover{color:var(--c-text);background:none}
.rou-item-desc{display:none;font-size:var(--rou-text-sm);color:var(--c-muted);padding:var(--rou-gap-tight) 0 0;margin-top:var(--sp-2);background:transparent;border-radius:0;line-height:var(--rou-leading-body);border-left:none;border-top:1px solid var(--c-border);overflow-wrap:anywhere}
.rou-item-desc.open{display:block}

/* Quantity stepper */
.rou-stepper{display:flex;align-items:center;gap:0;flex-shrink:0;border:none;border-radius:999px;overflow:hidden;background:var(--c-accent)}
.rou-stepper:not(.active) .rou-minus,
.rou-stepper:not(.active) .rou-qty{display:none}
.rou-stepper:not(.active) .rou-plus{color:var(--c-on-accent);width:2.25rem;height:2.25rem}
.rou-stepper button{width:var(--rou-touch);height:var(--rou-touch);border:none;background:transparent;cursor:pointer;font-size:18px;font-weight:500;line-height:1;color:var(--c-muted);display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;font-family:var(--font-body);-webkit-tap-highlight-color:transparent}
.rou-stepper button:hover{background:rgba(60,60,67,0.08);color:var(--c-text)}
.rou-stepper button:active{transform:none}
.rou-stepper .rou-qty{width:48px;text-align:center;border:none;background:transparent;font-size:var(--rou-text-body);font-weight:600;line-height:var(--rou-leading-tight);color:var(--c-text);font-family:var(--font-body);-moz-appearance:textfield;padding:0}
.rou-stepper .rou-qty::-webkit-outer-spin-button,.rou-stepper .rou-qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.rou-stepper.active{background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-border)}
.rou-stepper.active .rou-qty{color:var(--c-text)}
.rou-stepper.active .rou-plus,.rou-stepper.active .rou-minus{color:var(--c-text)}

/* Pre-submit group — flat continuation, no nested card */
.rou-pre-submit{background:transparent;border:none;border-radius:0;padding:0;margin:var(--rou-gap-section) 1rem;box-shadow:none}
.rou-pre-submit > .rou-form-section.rou-notes-panel{margin:0 0 var(--rou-gap);padding:var(--rou-gap);border:none;border-radius:var(--radius-card);background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-border)}
.rou-pre-submit > .rou-wallet-panel:first-child{margin-top:0}
.rou-pre-submit .rou-wallet-panel{margin-bottom:0}
.rou-pre-submit .rou-wallet-login-hint{margin-top:0;text-align:left}
.rou-pre-submit .rou-allergen-legend{margin:var(--rou-gap) 0 0}

/* Customer form */
.rou-form-section{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-card);padding:var(--rou-gap-section);margin:var(--rou-gap-section) 0}
.rou-form-section legend{font-family:var(--font-display);font-size:var(--rou-text-title);line-height:var(--rou-leading-tight);padding:0 var(--sp-1);color:var(--c-text)}
.rou-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--rou-gap);margin-top:var(--rou-gap)}
@media(max-width:500px){.rou-form-grid{grid-template-columns:1fr}}
.rou-field{display:flex;flex-direction:column;gap:var(--sp-1)}
.rou-field.full{grid-column:1/-1}
.rou-field label{font-size:var(--rou-text-caption);font-weight:500;line-height:var(--rou-leading-tight);text-transform:none;letter-spacing:0;color:var(--c-muted)}
.rou-field input,.rou-field textarea{padding:var(--rou-gap-tight) var(--rou-gap);border:none;border-radius:var(--radius-input);font-size:16px;font-family:var(--font-body);line-height:var(--rou-leading-snug);color:var(--c-text);background:var(--c-qty-bg);outline:none;transition:box-shadow .2s;box-shadow:inset 0 0 0 1px var(--c-border)}
.rou-field input{min-height:var(--rou-touch)}
.rou-field input:focus,.rou-field textarea:focus{box-shadow:inset 0 0 0 1px rgba(60,60,67,0.28),0 0 0 3px rgba(60,60,67,0.08)}
.rou-field input::placeholder,.rou-field textarea::placeholder{color:#bbb}
.rou-field textarea{resize:vertical;min-height:60px;padding-block:var(--rou-gap);border-radius:1rem}
.rou-form-section.rou-notes-panel{margin:var(--rou-gap-section) 0;padding:var(--rou-gap-block)}

/* Reviews section */
.rou-reviews{margin:var(--rou-gap-section) 0;padding:var(--rou-gap-section);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-card);font-size:var(--rou-text-sm);line-height:var(--rou-leading-body);color:var(--c-text)}

/* Floating order pill. Hidden until the cart has a dish. */
.rou-cart-float{position:fixed;z-index:50;left:50%;bottom:max(0.75rem,env(safe-area-inset-bottom,0px));width:min(26.5rem,calc(100% - 1.5rem));padding:0;background:transparent;border:0;box-shadow:none;transform:translate(-50%,140%);transition:transform .25s ease}
.rou-cart-float.visible{transform:translate(-50%,0)}
.rou-cart-bar{display:flex;align-items:center;gap:0.75rem;padding:0.45rem 0.45rem 0.45rem 0.55rem;cursor:pointer;-webkit-tap-highlight-color:transparent;border:1px solid var(--c-border);border-radius:999px;background:color-mix(in srgb, var(--c-surface) 94%, transparent);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:var(--shadow-lg)}
.rou-cart-bar-summary{display:flex;align-items:center;gap:0.7rem;min-width:0;flex:1}
.rou-cart-bag{position:relative;display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;flex:0 0 auto;border-radius:50%;background:var(--c-dark);color:var(--c-on-accent)}
.rou-cart-count{position:absolute;top:-0.15rem;right:-0.15rem;background:var(--c-accent);color:var(--c-on-accent);font-size:0.65rem;font-weight:700;line-height:1;min-width:1.15rem;height:1.15rem;border-radius:999px;display:flex;align-items:center;justify-content:center;padding:0 0.2rem}
.rou-cart-total{font-family:var(--font-display);font-size:1rem;font-weight:600;line-height:1.2;letter-spacing:-0.01em;color:var(--c-text)}
.rou-cart-submit{background:var(--c-accent);color:var(--c-on-accent);border:none;padding:0.75rem 1.15rem;border-radius:999px;font-size:0.92rem;font-weight:600;line-height:1.2;cursor:pointer;font-family:var(--font-body);transition:opacity .2s;-webkit-tap-highlight-color:transparent;min-height:2.75rem}
.rou-cart-submit:hover:not(:disabled){background:var(--c-accent-hover)}
.rou-cart-submit:active:not(:disabled){transform:none}
.rou-cart-submit:disabled,.rou-sidebar-btn:disabled{opacity:.4;cursor:not-allowed}
.rou-cart-items li.rou-cart-wallet-line{color:var(--c-accent)}
.rou-sidebar-items li.rou-cart-wallet-line{color:var(--c-accent);font-weight:600}
.rou-cart-detail{max-height:0;overflow:hidden;transition:max-height .25s ease;background:transparent;border:0}
.rou-cart-float.expanded .rou-cart-detail{max-height:50vh;overflow-y:auto;margin-bottom:0.45rem;border:1px solid var(--c-border);border-radius:1.25rem;background:color-mix(in srgb, var(--c-surface) 94%, transparent);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
.rou-cart-items{padding:0 var(--rou-page-inline-right) var(--rou-gap-block) var(--rou-page-inline);max-width:var(--content-max);margin:0 auto}
.rou-cart-items ul{list-style:none;padding:0}
.rou-cart-items li{display:flex;justify-content:space-between;align-items:baseline;gap:var(--rou-gap);padding:var(--rou-gap-tight) 0;border-bottom:1px solid var(--c-border);font-size:var(--rou-text-sm);line-height:var(--rou-leading-snug);color:var(--c-text)}
.rou-cart-items li:last-child{border:none}
.rou-cart-empty{padding:var(--rou-gap-block) var(--rou-gap-section);text-align:center;color:var(--c-muted);font-size:var(--rou-text-sm);line-height:var(--rou-leading-snug)}

/* One sheet at every width. The sidebar stays in the document for the cart script. */
.rou-sidebar{display:none}
.rou-order-colophon{margin:0;padding:2rem 1rem;text-align:center}
.rou-order-colophon .rou-rhome-powered{color:var(--c-muted);font-size:0.75rem;text-decoration:none}
.rou-back{display:inline-flex;align-items:center;gap:var(--rou-gap-tight);margin:1.5rem 1rem 0.25rem;font-size:var(--rou-text-sm);line-height:var(--rou-leading-snug);color:var(--c-muted);text-decoration:none;transition:color .2s;min-height:var(--rou-touch)}
.rou-back:hover{color:var(--c-text)}
.rou-footer-line{font-size:var(--rou-text-caption);line-height:var(--rou-leading-snug);color:var(--c-muted);margin:var(--rou-gap-tight) 0 var(--rou-gap-section);padding-top:var(--rou-gap-block);border-top:1px solid var(--c-border);opacity:.75}
.rou-empty-state{text-align:center;padding:var(--sp-7) var(--rou-gap-section);color:var(--c-muted)}
.rou-empty-state p{font-size:var(--rou-text-title);line-height:var(--rou-leading-snug);font-weight:500}
.rou-empty-state--soft{padding:var(--rou-gap-section) 0}

@media (prefers-reduced-motion: reduce){
  body.rou-order-shell *{transition-duration:0.01ms !important;animation-duration:0.01ms !important}
}

/* ----- Mobile spacing & touch layout ----- */
@media (max-width:899px){
  :root{
    --rou-gap-block:var(--sp-4);
  }
  .rou-brand{flex:1 1 auto;min-width:0;max-width:none}
  .rou-table-badge{max-width:100%}
  .rou-menu-split{margin:0 0 var(--rou-gap-block)}
  .rou-menu-split-inner{gap:var(--sp-2)}
  .rou-cat-rail{flex-basis:clamp(68px,24vw,96px);padding-right:var(--sp-1)}
  .rou-items-scroller{padding-right:0}
  .rou-footer-line{padding-bottom:max(var(--rou-gap-block),env(safe-area-inset-bottom,0px))}
}

@media (max-width:480px){
  .rou-header-inner{gap:var(--sp-2)}
  .rou-cart-bar{flex-wrap:nowrap}
  .rou-cart-bar-summary{flex:1 1 auto;min-width:0}
  .rou-cart-total{font-size:0.95rem}
  .rou-cart-submit{flex:0 0 auto;padding-inline:0.9rem;white-space:nowrap}
  .rou-cat-nav a{font-size:11px;padding:var(--sp-2) var(--sp-1)}
  .rou-item-media,.rou-item.has-photo .rou-item-media{flex-basis:96px;width:96px}
  .rou-item-photo,.rou-item-photo img{width:96px;height:96px}
}

@media (max-width:360px){
  .rou-cat-rail{flex-basis:60px}
}

.rou-form-section-title { font-size: 15px; font-weight: 700; margin: 0 0 10px; }
.rou-delivery-panel{margin:1rem 1rem 0;padding:var(--rou-gap-section);border-radius:var(--radius-card);background:var(--c-warm);box-shadow:inset 0 0 0 1px var(--c-border)}
.rou-delivery-panel .rou-form-section-title{margin-bottom:12px}
.rou-delivery-panel .rou-field{margin-bottom:10px}
.rou-delivery-panel .rou-field:last-child{margin-bottom:0}
@media(min-width:900px){
  .rou-delivery-panel{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
  .rou-delivery-panel .rou-form-section-title{grid-column:1/-1;margin-bottom:0}
  .rou-delivery-panel .rou-field:last-child{grid-column:1/-1}
}

.rou-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:0.75rem}
.rou-section-count{font-weight:500;color:var(--c-muted)}
.rou-item-top > .rou-item-photo{flex:0 0 5.25rem;width:5.25rem;height:5.25rem}
.rou-item-open{display:block;width:100%;margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.rou-item-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:0.6rem;margin-top:0.55rem}
.rou-choose-hint{margin:0.15rem 0 0;font-size:0.66rem;line-height:1.3;color:var(--c-muted)}
.rou-highlight-pill{display:inline-flex;align-items:center;border-radius:999px;padding:0.12rem 0.45rem;background:var(--c-accent-light);color:var(--c-accent);font-size:0.62rem;font-weight:700;line-height:1.3}
.rou-allergen-chip{display:inline-flex;align-items:center;gap:0.25rem;border-radius:999px;padding:0.12rem 0.45rem;border:1px solid var(--c-border);background:color-mix(in srgb, var(--c-bg) 72%, var(--c-surface));color:var(--c-muted);font-size:0.65rem;font-weight:600;line-height:1.2}
.rou-allergen-chip svg{width:0.8rem;height:0.8rem;flex:0 0 auto}
.rou-allergens{display:flex;flex-wrap:wrap;gap:0.3rem;margin-top:0.45rem}
.rou-cat-nav a{position:relative;padding-right:1.1rem}
.rou-cat-qty{position:absolute;top:0.15rem;right:0.1rem;min-width:1rem;height:1rem;padding:0 0.2rem;border-radius:999px;background:var(--c-accent);color:var(--c-on-accent);font-size:0.6rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.rou-cat-qty[hidden],.rou-love__count[hidden]{display:none !important}
.rou-love{padding:0.85rem 0 0.4rem;border-bottom:1px solid var(--c-border)}
.rou-love__head{display:flex;align-items:center;gap:0.4rem;padding:0 1rem 0.55rem;color:var(--c-accent)}
.rou-love__head h2{margin:0;font-family:var(--font-display);font-size:0.92rem;font-weight:650;color:var(--c-text)}
.rou-love__row{display:flex;gap:0.75rem;overflow-x:auto;padding:0 1rem 0.65rem;scroll-snap-type:x mandatory;list-style:none;scrollbar-width:none}
.rou-love__row::-webkit-scrollbar{display:none}
.rou-love__card{width:9.5rem;flex:0 0 auto;scroll-snap-align:start}
.rou-love-open{display:block;width:100%;padding:0;border:0;background:transparent;text-align:left;color:inherit;font:inherit;cursor:pointer}
.rou-love__photo{position:relative;display:block;height:6.5rem;border-radius:1.4rem;overflow:hidden;background:var(--c-warm);border:1px solid var(--c-border)}
.rou-love__photo img{width:100%;height:100%;object-fit:cover;display:block}
.rou-love__badge{position:absolute;left:0.45rem;top:0.45rem;border-radius:999px;padding:0.15rem 0.45rem;background:color-mix(in srgb, var(--c-surface) 90%, transparent);color:var(--c-text);font-size:0.62rem;font-weight:700}
.rou-love__count{position:absolute;right:0.45rem;top:0.45rem;min-width:1.15rem;height:1.15rem;border-radius:999px;background:var(--c-accent);color:var(--c-on-accent);font-size:0.62rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.rou-love__name{display:block;margin-top:0.45rem;font-size:0.82rem;font-weight:650;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rou-love__meta{display:flex;align-items:center;justify-content:space-between;gap:0.4rem;margin-top:0.2rem}
.rou-love__price{font-family:var(--font-display);font-size:0.9rem;font-weight:650}
.rou-love-plus{width:1.75rem;height:1.75rem;border:0;border-radius:999px;background:var(--c-accent);color:var(--c-on-accent);font-size:1rem;line-height:1;cursor:pointer}
.rou-dish-sheet{position:fixed;inset:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;background:transparent;box-shadow:none;color:var(--c-text)}
.rou-dish-sheet:not([open]){display:none}
.rou-dish-sheet[open]{display:flex;align-items:flex-end;justify-content:center}
.rou-dish-sheet::backdrop{background:rgba(26,26,26,.45)}
.rou-dish-sheet__panel{position:relative;display:flex;flex-direction:column;width:min(28rem,100%);max-height:92vh;overflow:hidden;border-radius:2rem 2rem 0 0;background:var(--c-surface);box-shadow:var(--shadow-lg)}
.rou-dish-sheet__hero{flex:0 0 auto}
.rou-dish-sheet__img{display:block;width:100%;height:11rem;object-fit:cover;background:var(--c-warm)}
.rou-dish-sheet__close{position:absolute;top:0.7rem;right:0.7rem;z-index:2;width:2.25rem;height:2.25rem;border:1px solid var(--c-border);border-radius:999px;background:color-mix(in srgb, var(--c-surface) 90%, transparent);color:var(--c-text);font-size:1.25rem;line-height:1;cursor:pointer}
.rou-dish-sheet__body{min-height:0;overflow:auto;padding:1.1rem 1.25rem 1rem}
.rou-dish-sheet__hero[hidden] ~ .rou-dish-sheet__body .rou-dish-sheet__head{padding-right:2rem}
.rou-dish-sheet__head{display:flex;align-items:flex-start;justify-content:space-between;gap:0.75rem}
.rou-dish-sheet__title{margin:0;font-family:var(--font-display);font-size:1.25rem;font-weight:650;line-height:1.2}
.rou-dish-sheet__price{margin:0;flex:0 0 auto;font-family:var(--font-display);font-size:1.05rem;font-weight:650}
.rou-dish-sheet__desc{margin:0.4rem 0 0;font-size:0.92rem;line-height:1.5;color:var(--c-muted)}
.rou-dish-sheet__body .rou-highlight-pill{margin-top:0.75rem}
.rou-choice-group{margin:1.15rem 0 0;padding:0;border:0}
.rou-choice-group legend{display:flex;align-items:baseline;gap:0.45rem;font-size:0.92rem;font-weight:650}
.rou-choice-group legend em{font-style:normal;font-size:0.72rem;font-weight:500;color:var(--c-muted)}
.rou-choice-row{display:flex;flex-wrap:wrap;gap:0.45rem;margin-top:0.55rem}
.rou-choice{border:1px solid var(--c-border);background:var(--c-bg);color:var(--c-text);border-radius:999px;padding:0.5rem 0.9rem;font:inherit;font-size:0.9rem;cursor:pointer}
.rou-choice.is-on{background:var(--c-dark);color:var(--c-on-accent);border-color:var(--c-dark);font-weight:650}
.rou-choice__delta{margin-left:0.35rem;font-size:0.72rem;opacity:.8}
.rou-dish-allergens{margin-top:1.35rem}
.rou-dish-allergens h3{margin:0;font-size:0.92rem}
.rou-dish-allergens p{margin:0.3rem 0 0;font-size:0.75rem;line-height:1.45;color:var(--c-muted)}
.rou-dish-allergen-chips{display:flex;flex-wrap:wrap;gap:0.4rem;margin-top:0.55rem}
.rou-dish-sheet__bar{display:flex;align-items:center;gap:0.7rem;flex:0 0 auto;padding:0.75rem 1.1rem max(1rem,env(safe-area-inset-bottom));border-top:1px solid var(--c-border);background:var(--c-surface)}
.rou-dish-qty{display:flex;align-items:center;gap:0.25rem;border:1px solid var(--c-border);border-radius:999px;padding:0.2rem}
.rou-dish-qty button{width:2.25rem;height:2.25rem;border:0;border-radius:999px;background:transparent;color:var(--c-text);font-size:1.1rem;cursor:pointer}
.rou-dish-qty span{min-width:1.4rem;text-align:center;font-weight:650}
.rou-dish-add{flex:1;border:0;border-radius:999px;background:var(--c-accent);color:var(--c-on-accent);min-height:2.9rem;padding:0.75rem 1rem;font:inherit;font-size:0.95rem;font-weight:650;cursor:pointer}
.rou-dish-add:disabled{opacity:.4;cursor:not-allowed}
@keyframes rou-sheet-up{from{transform:translateY(18px);opacity:.6}to{transform:none;opacity:1}}
@keyframes rou-review-up{from{transform:translate(-50%,18px);opacity:.6}to{transform:translateX(-50%);opacity:1}}
.rou-dish-sheet__panel{animation:rou-sheet-up .32s cubic-bezier(.22,1,.36,1)}

/* Template match: focus ring, press, round controls, review sheet. */
@keyframes rou-count-pop{0%{transform:scale(.7)}60%{transform:scale(1.12)}100%{transform:scale(1)}}
@keyframes rou-stepper-in{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}
body.rou-order-shell button,
body.rou-order-shell a,
body.rou-order-shell summary,
body.rou-order-shell input,
body.rou-order-shell textarea{
  transition:transform 160ms ease-out,background-color 160ms ease-out,color 160ms ease-out,border-color 160ms ease-out,opacity 160ms ease-out,box-shadow 160ms ease-out;
}
body.rou-order-shell button:focus-visible,
body.rou-order-shell a:focus-visible,
body.rou-order-shell summary:focus-visible,
body.rou-order-shell input:focus-visible,
body.rou-order-shell textarea:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--c-accent) 30%, transparent);
}
body.rou-order-shell button:active:not(:disabled){transform:scale(.94)}
body.rou-order-shell .rou-order-mark{
  background:radial-gradient(circle at 30% 22%, color-mix(in srgb, var(--c-accent) 14%, transparent), transparent 34%), var(--c-surface);
  color:var(--c-text);
  font-size:.75rem;
  letter-spacing:.04em;
}
body.rou-order-shell .rou-header-pill{
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  gap:.375rem;
  margin:0;
  border:1px solid var(--c-border);
  background:var(--c-surface);
  padding:.375rem .75rem;
  border-radius:999px;
  font-family:inherit;
  font-size:.75rem;
  font-weight:600;
  line-height:1.25;
  color:var(--c-text);
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  white-space:nowrap;
}
body.rou-order-shell .rou-header-pill:hover{background:color-mix(in srgb, var(--c-text) 4%, var(--c-surface));color:var(--c-text)}
body.rou-order-shell .rou-header-pill svg{width:.875rem;height:.875rem;flex:0 0 auto;opacity:1}
body.rou-order-shell .rou-lang-switch{flex:0 0 auto;margin-left:auto}
body.rou-order-shell .rou-lang-code{max-width:9rem;overflow:hidden;text-overflow:ellipsis}
body.rou-order-shell .rou-lang-dropdown{
  right:0;
  left:auto;
  top:calc(100% + .5rem);
  width:10rem;
  min-width:10rem;
  max-width:min(16rem,calc(100vw - var(--rou-page-inline) - var(--rou-page-inline-right)));
  max-height:min(15rem,60vh);
  border-radius:1.5rem;
  padding:.5rem;
  box-shadow:var(--shadow-lg);
}
body.rou-order-shell .rou-lang-option{
  justify-content:space-between;
  gap:.5rem;
  border-radius:999px;
  padding:.5rem .75rem;
  font-size:.875rem;
  line-height:1.25;
}
body.rou-order-shell .rou-lang-flag{display:none}
body.rou-order-shell .rou-lang-option.rou-lang-active{background:var(--c-dark);color:var(--c-on-accent);font-weight:600}
body.rou-order-shell .rou-lang-option.rou-lang-active svg{flex:0 0 auto;color:inherit}
body.rou-order-shell .rou-lang-option svg{width:.875rem;height:.875rem}
body.rou-order-shell .rou-table-badge svg{width:.875rem;height:.875rem;flex:0 0 auto}
body.rou-order-shell .rou-search-wrap input,
body.rou-order-shell .rou-field input{
  border:1px solid var(--c-border);
  background:var(--c-surface);
  box-shadow:none;
}
body.rou-order-shell .rou-search-wrap input:focus,
body.rou-order-shell .rou-field input:focus,
body.rou-order-shell .rou-field textarea:focus{
  box-shadow:0 0 0 3px color-mix(in srgb, var(--c-accent) 30%, transparent);
}
body.rou-order-shell .rou-cat-rail{
  flex:0 0 5.5rem;
  width:5.5rem;
  padding:0;
  top:var(--rou-header-sticky-offset);
  max-height:calc(100dvh - var(--rou-header-sticky-offset));
  background:color-mix(in srgb, var(--c-text) 4%, var(--c-surface));
  border-right:1px solid color-mix(in srgb, var(--c-text) 12%, transparent);
}
body.rou-order-shell .rou-cat-nav{gap:0;padding:.5rem 0}
body.rou-order-shell .rou-cat-nav a{
  min-height:0;
  border-radius:0;
  padding:1rem .5rem;
  font-size:.72rem;
  font-weight:600;
  background:transparent;
}
body.rou-order-shell .rou-cat-nav a:hover{background:var(--c-qty-bg);color:var(--c-text)}
body.rou-order-shell .rou-cat-nav a:focus-visible{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--c-accent) 40%, transparent);outline:none}
body.rou-order-shell .rou-cat-nav a.cat-active{background:var(--c-surface);box-shadow:none;font-weight:700;color:var(--c-text)}
body.rou-order-shell .rou-cat-nav a.cat-active::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:3px;
  height:1.75rem;
  transform:translateY(-50%);
  border-radius:0 999px 999px 0;
  background:var(--c-accent);
}
body.rou-order-shell .rou-cat-qty{top:.55rem;right:.3rem;width:1rem;height:1rem;min-width:1rem}
body.rou-order-shell .rou-section-title{
  margin:0;
  top:calc(var(--rou-header-sticky-offset) - 1px);
  scroll-margin-top:calc(env(safe-area-inset-top, 0px) + var(--rou-header-sticky-offset));
  padding:.625rem 1rem;
  color:var(--c-text);
  font-size:.875rem;
  font-weight:600;
  letter-spacing:0;
  text-transform:none;
  background:color-mix(in srgb, var(--c-surface) 95%, transparent);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
body.rou-order-shell .rou-section-count{font-size:.7rem;font-weight:400}
body.rou-order-shell .rou-item{padding:.875rem 1rem}
body.rou-order-shell .rou-item.has-qty{background:transparent}
body.rou-order-shell .rou-item-name{font-family:var(--font-display);font-size:.875rem;font-weight:600}
body.rou-order-shell .rou-item-blurb{font-size:.75rem;line-height:1.625}
body.rou-order-shell .rou-item-price{font-size:1rem;margin-top:0}
body.rou-order-shell .rou-item-media,
body.rou-order-shell .rou-item-photo,
body.rou-order-shell .rou-item-photo img,
body.rou-order-shell .rou-item-top > .rou-item-photo{width:5.25rem;height:5.25rem;flex-basis:5.25rem}
body.rou-order-shell .rou-item-photo{border-radius:1rem}
body.rou-order-shell .rou-item-photo:empty,
body.rou-order-shell .rou-love__photo:not(:has(img)){
  display:flex;
  align-items:center;
  justify-content:center;
}
body.rou-order-shell .rou-item-photo:empty::after,
body.rou-order-shell .rou-love__photo:not(:has(img))::after{
  content:"";
  width:1.25rem;
  height:1.25rem;
  background:var(--c-muted);
  opacity:.55;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l1.5 4.5L18 9l-4.5 1.5L12 15l-1.5-4.5L6 9l4.5-1.5L12 3z'/%3E%3Cpath d='M5 16l.8 2.2L8 19l-2.2.8L5 22l-.8-2.2L2 19l2.2-.8L5 16z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l1.5 4.5L18 9l-4.5 1.5L12 15l-1.5-4.5L6 9l4.5-1.5L12 3z'/%3E%3Cpath d='M5 16l.8 2.2L8 19l-2.2.8L5 22l-.8-2.2L2 19l2.2-.8L5 16z'/%3E%3C/svg%3E") center / contain no-repeat;
}
body.rou-order-shell .rou-item-photo img{transition:transform .3s ease}
body.rou-order-shell .rou-item-photo:hover img{transform:scale(1.03)}
body.rou-order-shell .rou-highlight-pill{gap:.25rem;padding:.125rem .4rem;font-size:.58rem;font-weight:600}
body.rou-order-shell .rou-highlight-pill[data-flag]::before{
  content:"";
  width:.65rem;
  height:.65rem;
  flex:0 0 auto;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z'/%3E%3C/svg%3E") center / contain no-repeat;
}
body.rou-order-shell .rou-highlight-pill[data-flag="chefs-pick"]::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l1.5 4.5L18 9l-4.5 1.5L12 15l-1.5-4.5L6 9l4.5-1.5L12 3z'/%3E%3Cpath d='M5 16l.8 2.2L8 19l-2.2.8L5 22l-.8-2.2L2 19l2.2-.8L5 16z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l1.5 4.5L18 9l-4.5 1.5L12 15l-1.5-4.5L6 9l4.5-1.5L12 3z'/%3E%3Cpath d='M5 16l.8 2.2L8 19l-2.2.8L5 22l-.8-2.2L2 19l2.2-.8L5 16z'/%3E%3C/svg%3E");
}
body.rou-order-shell .rou-stepper{
  gap:.25rem;
  overflow:visible;
  background:transparent;
  border-radius:0;
}
body.rou-order-shell .rou-stepper button{
  width:2rem;
  height:2rem;
  padding:0;
  border-radius:999px;
  background:transparent;
}
body.rou-order-shell .rou-stepper button svg{width:1rem;height:1rem;display:block}
body.rou-order-shell .rou-stepper .rou-plus,
body.rou-order-shell .rou-stepper:not(.active) .rou-plus,
body.rou-order-shell .rou-item.has-photo .rou-stepper:not(.active) .rou-plus{
  width:2rem;
  height:2rem;
  background:var(--c-accent);
  color:var(--c-on-accent);
}
body.rou-order-shell .rou-stepper .rou-plus:hover{background:var(--c-accent-hover);color:var(--c-on-accent)}
body.rou-order-shell .rou-stepper .rou-minus{
  border:1px solid var(--c-border);
  color:var(--c-text);
  background:transparent;
  animation:rou-stepper-in .2s cubic-bezier(.22,1,.36,1) both;
}
body.rou-order-shell .rou-stepper .rou-minus:hover{background:color-mix(in srgb, var(--c-text) 5%, transparent);color:var(--c-text)}
body.rou-order-shell .rou-stepper .rou-qty{
  width:1.5rem;
  font-size:.875rem;
  font-weight:600;
}
body.rou-order-shell .rou-stepper.active .rou-qty{animation:rou-count-pop .26s cubic-bezier(.34,1.56,.64,1) both}
body.rou-order-shell .count-pop{animation:rou-count-pop .26s cubic-bezier(.34,1.56,.64,1) both}
body.rou-order-shell .rou-love__head h2{font-size:.875rem;font-weight:600}
body.rou-order-shell .rou-love__name{font-weight:600}
body.rou-order-shell .rou-love__price{font-size:.875rem;font-weight:600}
body.rou-order-shell .rou-love-plus{display:inline-flex;align-items:center;justify-content:center;padding:0}
body.rou-order-shell .rou-love-plus svg{width:.875rem;height:.875rem}
body.rou-order-shell .rou-love-plus:hover{background:var(--c-accent-hover)}
body.rou-order-shell .rou-choice{padding:.5rem .875rem;font-size:.875rem}
body.rou-order-shell .rou-choice:hover{border-color:color-mix(in srgb, var(--c-text) 28%, var(--c-border))}
body.rou-order-shell .rou-choice:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb, var(--c-accent) 30%, transparent)}
body.rou-order-shell .rou-choice:active:not(.is-on){transform:scale(.96);background:var(--c-qty-bg)}
body.rou-order-shell .rou-dish-sheet__title{font-size:1.25rem;font-weight:600}
body.rou-order-shell .rou-dish-sheet__price{font-size:1.125rem;font-weight:600}
body.rou-order-shell .rou-dish-sheet__desc{font-size:.875rem}
body.rou-order-shell .rou-dish-sheet__close,
body.rou-order-shell .rou-review-close{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2.25rem;
  height:2.25rem;
  padding:0;
}
body.rou-order-shell .rou-dish-sheet__close svg,
body.rou-order-shell .rou-review-close svg{width:1rem;height:1rem}
body.rou-order-shell .rou-dish-qty{gap:.375rem;padding:.25rem}
body.rou-order-shell .rou-dish-qty button{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0}
body.rou-order-shell .rou-dish-qty button svg{width:1rem;height:1rem}
body.rou-order-shell .rou-dish-qty span{font-size:.875rem;font-weight:600}
body.rou-order-shell .rou-dish-add{font-size:.875rem;font-weight:600;min-height:0;padding:.875rem 1.25rem}
body.rou-order-shell .rou-dish-add:disabled{opacity:.4}
body.rou-order-shell .rou-cart-float{
  bottom:max(.75rem, env(safe-area-inset-bottom, 0px));
  width:min(28rem, 100%);
  padding:0 .75rem;
  transform:translateX(-50%);
  pointer-events:none;
}
body.rou-order-shell .rou-cart-float.visible{transform:translateX(-50%)}
body.rou-order-shell .rou-cart-bar{
  pointer-events:auto;
  gap:.75rem;
  padding:.5rem;
}
body.rou-order-shell .rou-cart-bag{
  width:3rem;
  height:3rem;
  border:0;
  padding:0;
  cursor:pointer;
  font:inherit;
}
body.rou-order-shell .rou-cart-bag svg{width:1.25rem;height:1.25rem}
body.rou-order-shell .rou-cart-count{min-width:1.25rem;height:1.25rem;font-size:.65rem}
body.rou-order-shell .rou-cart-count[hidden],
body.rou-order-shell .rou-cart-total[hidden]{display:none !important}
body.rou-order-shell .rou-cart-bar-summary{flex-direction:column;align-items:flex-start;gap:0}
body.rou-order-shell .rou-cart-total{font-size:1rem}
body.rou-order-shell .rou-cart-hint{display:block;max-width:100%;font-size:.75rem;line-height:1.35;color:var(--c-muted)}
body.rou-order-shell .rou-cart-float.visible .rou-cart-hint{font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.rou-order-shell .rou-cart-submit{
  display:inline-flex;
  align-items:center;
  gap:.25rem;
  min-height:0;
  padding:.75rem 1.25rem;
  font-size:.875rem;
  font-weight:600;
}
body.rou-order-shell .rou-cart-submit svg{width:1rem;height:1rem}
body.rou-order-shell .rou-cart-submit:disabled{opacity:.35}
body.rou-order-shell .rou-cart-submit:hover:not(:disabled){background:var(--c-accent-hover)}
body.rou-order-shell .rou-cart-submit:active:not(:disabled){transform:scale(.94)}
body.rou-order-shell .rou-review-backdrop{display:none}
body.rou-order-shell .rou-cart-float.expanded .rou-review-backdrop{
  display:block;
  position:fixed;
  inset:0;
  z-index:55;
  border:0;
  padding:0;
  background:rgba(26,26,26,.45);
  cursor:pointer;
  pointer-events:auto;
}
body.rou-order-shell .rou-cart-detail{max-height:none;overflow:visible;pointer-events:none}
body.rou-order-shell .rou-cart-float.expanded .rou-cart-detail{
  display:block;
  position:fixed;
  z-index:60;
  left:50%;
  bottom:0;
  width:min(28rem, 100%);
  max-height:92vh;
  overflow:auto;
  margin:0;
  padding:1.25rem 1.25rem max(1.25rem, env(safe-area-inset-bottom, 0px));
  transform:translateX(-50%);
  border:1px solid var(--c-border);
  border-radius:2rem 2rem 0 0;
  background:var(--c-surface);
  box-shadow:var(--shadow-lg);
  pointer-events:auto;
  animation:rou-review-up .32s cubic-bezier(.22,1,.36,1) both;
}
body.rou-order-shell .rou-cart-float:not(.expanded) .rou-cart-detail{display:none}
body.rou-order-shell .rou-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}
body.rou-order-shell .rou-review-title{margin:0;font-family:var(--font-display);font-size:1.125rem;font-weight:600;line-height:1.2}
body.rou-order-shell .rou-review-sub{margin:.15rem 0 0;font-size:.75rem;color:var(--c-muted)}
body.rou-order-shell .rou-review-close{border:1px solid var(--c-border);border-radius:999px;background:transparent;color:var(--c-text);cursor:pointer}
body.rou-order-shell .rou-review-lines{list-style:none;margin:1rem 0 0;padding:0;max-height:42vh;overflow:auto}
body.rou-order-shell .rou-review-line{display:flex;align-items:center;gap:.75rem;padding:.35rem 0}
body.rou-order-shell .rou-review-line__copy{min-width:0;flex:1}
body.rou-order-shell .rou-review-line__copy p{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.rou-order-shell .rou-review-line__copy p:first-child{font-size:.875rem;font-weight:600}
body.rou-order-shell .rou-review-line__copy p:last-child{font-size:.75rem;color:var(--c-muted)}
body.rou-order-shell .rou-review-step{display:flex;align-items:center;gap:.25rem}
body.rou-order-shell .rou-review-step button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2rem;
  height:2rem;
  padding:0;
  border-radius:999px;
  cursor:pointer;
}
body.rou-order-shell .rou-review-step svg{width:1rem;height:1rem}
body.rou-order-shell .rou-review-less{border:1px solid var(--c-border);background:transparent;color:var(--c-text)}
body.rou-order-shell .rou-review-more{border:0;background:var(--c-accent);color:var(--c-on-accent)}
body.rou-order-shell .rou-review-step span{min-width:1.5rem;text-align:center;font-size:.875rem;font-weight:600}
body.rou-order-shell .rou-review-line__sum{width:4rem;text-align:right;font-size:.875rem;font-weight:600}
body.rou-order-shell .rou-review-totals{margin:1rem 0 0;padding:0;border-top:1px solid var(--c-border)}
body.rou-order-shell .rou-review-totals div{display:flex;align-items:center;justify-content:space-between;padding-top:.7rem}
body.rou-order-shell .rou-review-totals dt{font-size:.875rem;font-weight:600}
body.rou-order-shell .rou-review-totals dd{margin:0;font-family:var(--font-display);font-size:1.125rem;font-weight:600}
body.rou-order-shell .rou-cart-items{max-width:none;margin:0;padding:0}
body.rou-order-shell .rou-review-send{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  width:100%;
  margin-top:1rem;
  padding:1rem 1.5rem;
  border:0;
  border-radius:999px;
  background:var(--c-accent);
  color:var(--c-on-accent);
  font:inherit;
  font-size:1rem;
  font-weight:600;
  cursor:pointer;
}
body.rou-order-shell .rou-review-send svg{width:1rem;height:1rem}
body.rou-order-shell .rou-review-send:disabled{opacity:.4;cursor:not-allowed}
body.rou-order-shell .rou-review-send:hover:not(:disabled){background:var(--c-accent-hover)}
body.rou-order-shell .rou-review-clear{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.375rem;
  width:100%;
  margin-top:.5rem;
  padding:.625rem 1rem;
  border:0;
  border-radius:999px;
  background:transparent;
  color:var(--c-muted);
  font:inherit;
  font-size:.75rem;
  font-weight:500;
  cursor:pointer;
}
body.rou-order-shell .rou-review-clear svg{width:.875rem;height:.875rem}
body.rou-order-shell .rou-review-clear:hover{color:var(--c-text)}

/* Header + service — template-aligned pills and gutters */
body.rou-order-shell .rou-header-inner{align-items:stretch;width:100%;min-width:0}
body.rou-order-shell .rou-header-top{width:100%;min-width:0}
body.rou-order-shell .rou-header-context{width:100%;min-width:0}
body.rou-order-shell .rou-site-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.rou-order-shell .rou-site-tag{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.rou-order-shell .rou-service-btn{margin-left:auto}
body.rou-order-shell .rou-active-orders{
  margin-left:var(--rou-page-inline);
  margin-right:var(--rou-page-inline-right);
}
body.rou-order-shell .rou-love__head,
body.rou-order-shell .rou-love__row{
  padding-left:var(--rou-page-inline);
  padding-right:var(--rou-page-inline-right);
}
body.rou-order-shell .rou-section-title{
  padding-left:var(--rou-page-inline);
  padding-right:var(--rou-page-inline-right);
}
body.rou-order-shell .rou-item{
  padding:.9rem var(--rou-page-inline-right) .9rem var(--rou-page-inline);
}
body.rou-order-shell .rou-delivery-panel{
  margin:1rem var(--rou-page-inline-right) 0 var(--rou-page-inline);
}
body.rou-order-shell .rou-pre-submit{
  margin:var(--rou-gap-section) var(--rou-page-inline-right) var(--rou-gap-section) var(--rou-page-inline);
}
body.rou-order-shell .rou-pre-submit > .rou-form-section.rou-notes-panel{margin-left:0;margin-right:0}
body.rou-order-shell .rou-order-google-error{
  margin:0 1rem 1rem;padding:.75rem 1rem;border-radius:.75rem;
  background:color-mix(in srgb, #dc2626 8%, var(--c-surface));
  border:1px solid color-mix(in srgb, #dc2626 22%, var(--c-border));
  color:color-mix(in srgb, #991b1b 90%, var(--c-text));
  font-size:.875rem;line-height:1.45;text-align:center;
}
body.rou-order-shell .rou-wallet-login-hint{
  margin-left:var(--rou-page-inline);
  margin-right:var(--rou-page-inline-right);
}
body.rou-order-shell .rou-order-colophon{
  padding-left:var(--rou-page-inline);
  padding-right:var(--rou-page-inline-right);
}
.rou-service-sheet{position:fixed;inset:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;background:transparent;box-shadow:none;color:var(--c-text)}
.rou-service-sheet:not([open]){display:none}
.rou-service-sheet[open]{display:flex;align-items:flex-end;justify-content:center}
.rou-service-sheet::backdrop{background:rgba(26,26,26,.45)}
.rou-service-sheet__panel{
  position:relative;
  width:min(28rem,100%);
  max-height:min(92dvh,100%);
  overflow:auto;
  border-radius:2rem 2rem 0 0;
  background:var(--c-surface);
  box-shadow:var(--shadow-lg);
  padding:1.25rem 1.25rem max(1.25rem,env(safe-area-inset-bottom));
  animation:rou-sheet-up .32s cubic-bezier(.22,1,.36,1);
}
.rou-service-sheet__close{
  position:absolute;
  top:.7rem;
  right:.7rem;
  z-index:2;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2.25rem;
  height:2.25rem;
  padding:0;
  border:1px solid var(--c-border);
  border-radius:999px;
  background:color-mix(in srgb, var(--c-surface) 90%, transparent);
  color:var(--c-text);
  cursor:pointer;
}
.rou-service-sheet__close svg{width:1rem;height:1rem}
.rou-service-sheet__title{margin:0 2rem 0 0;font-family:var(--font-display);font-size:1.25rem;font-weight:600;line-height:1.2}
.rou-service-sheet__lead{margin:.4rem 0 0;font-size:.875rem;line-height:1.45;color:var(--c-muted)}
.rou-service-list{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}
.rou-service-ask{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.15rem;
  width:100%;
  min-height:2.75rem;
  padding:.75rem .9rem;
  border:1px solid var(--c-border);
  border-radius:1rem;
  background:var(--c-surface);
  color:var(--c-text);
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.rou-service-ask strong{font-size:.9rem;font-weight:600}
.rou-service-ask span{font-size:.75rem;line-height:1.35;color:var(--c-muted)}
.rou-service-ask:hover{border-color:color-mix(in srgb, var(--c-text) 28%, var(--c-border));background:var(--c-qty-bg)}
.rou-service-ask:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb, var(--c-accent) 30%, transparent)}
.rou-service-ask:active{transform:scale(.97)}
.rou-service-error{margin:.75rem 0 0;font-size:.8rem;color:var(--c-accent)}
.rou-service-again{
  display:inline-flex;
  margin-top:1rem;
  padding:.7rem 1rem;
  border:1px solid var(--c-border);
  border-radius:999px;
  background:transparent;
  color:var(--c-text);
  font:inherit;
  font-size:.8rem;
  font-weight:600;
  cursor:pointer;
}
body.rou-order-shell .rou-dish-sheet__panel{max-height:min(92dvh,100%)}

@media (max-width:380px){
  body.rou-order-shell .rou-cat-rail{flex-basis:4.5rem;width:4.5rem}
  body.rou-order-shell .rou-cat-nav a{padding:.7rem .3rem;font-size:.65rem}
  body.rou-order-shell .rou-item-top > .rou-item-photo,
  body.rou-order-shell .rou-item-photo,
  body.rou-order-shell .rou-item-photo img{width:4rem;height:4rem}
  body.rou-order-shell .rou-item-top > .rou-item-photo{flex-basis:4rem}
  body.rou-order-shell .rou-cart-submit{padding:.65rem .7rem;font-size:.8rem}
  body.rou-order-shell .rou-service-btn{padding:.35rem .6rem}
  body.rou-order-shell .rou-site-name{font-size:.95rem}
}
@media (max-height:480px) and (orientation:landscape){
  body.rou-order-shell{padding-bottom:calc(5.75rem + env(safe-area-inset-bottom,0px))}
  body.rou-order-shell .rou-service-sheet__panel,
  body.rou-order-shell .rou-dish-sheet__panel{max-height:100dvh;border-radius:1.25rem 1.25rem 0 0}
}
@media (min-width:900px){
  :root{
    --rou-page-inline:clamp(1.25rem,3vw,2.5rem);
    --rou-page-inline-right:clamp(1.25rem,3vw,2.5rem);
  }
  .rou-order-frame{
    max-width:64rem;
    margin-inline:auto;
    min-height:calc(100svh - 2.5rem);
    border-radius:2rem;
    box-shadow:0 18px 50px rgba(26,26,26,0.08);
  }
  body.rou-order-shell{padding-top:1rem;padding-bottom:calc(8rem + env(safe-area-inset-bottom,0px))}
  .rou-cat-rail{flex:0 0 7.5rem;width:7.5rem}
  .rou-cat-nav a{font-size:.82rem;padding:1rem .75rem}
  .rou-pre-submit{display:grid;grid-template-columns:1fr 1fr;gap:0 1.25rem}
  .rou-pre-submit > *{grid-column:auto}
  .rou-pre-submit > .rou-form-section.rou-notes-panel{margin:0 0 var(--rou-gap) 0}
}
@media (min-width:1200px){
  .rou-order-frame{max-width:80rem}
  .rou-cat-rail{flex:0 0 9rem;width:9rem}
  .rou-cat-nav a{font-size:.85rem;padding:1.1rem .85rem}
}

/* "Switch seat" link — an anchor wearing the header pill. The join screen is an
   explicit opt-in now (QR lands on the menu), never a forced step. */
a.rou-switch-seat{text-decoration:none;color:inherit;cursor:pointer}
a.rou-switch-seat:hover,a.rou-switch-seat:focus{text-decoration:none}
