/* Physical-phone reflow also applies when a browser exposes a 980px viewport. */
html.mobile-device { --phone-unit:1; }

/* Phone type scale. Most copy is sized with inline desktop px; on a phone - including
   one that lays the page out 980px wide - each desktop size maps to a readable phone
   size in physical pixels. The targeted rules further down stay more specific and win. */
html.mobile-device :is([style*="font-size: 10.5px;"], [style*="font-size:10.5px;"], [style*="font-size: 9.5px;"], [style*="font-size:9.5px;"], [style*="font-size: 8.5px;"], [style*="font-size:8.5px;"], [style*="font-size: 10px;"], [style*="font-size:10px;"], [style*="font-size: 7.5px;"], [style*="font-size:7.5px;"]) { font-size:calc(12px * var(--phone-unit)) !important; }
html.mobile-device :is([style*="font-size: 11px;"], [style*="font-size:11px;"], [style*="font-size: 11.5px;"], [style*="font-size:11.5px;"]) { font-size:calc(12.5px * var(--phone-unit)) !important; }
html.mobile-device :is([style*="font-size: 12.5px;"], [style*="font-size:12.5px;"], [style*="font-size: 12px;"], [style*="font-size:12px;"]) { font-size:calc(13px * var(--phone-unit)) !important; }
html.mobile-device :is([style*="font-size: 13px;"], [style*="font-size:13px;"], [style*="font-size: 13.5px;"], [style*="font-size:13.5px;"]) { font-size:calc(14px * var(--phone-unit)) !important; }
html.mobile-device :is([style*="font-size: 14.5px;"], [style*="font-size:14.5px;"], [style*="font-size: 14px;"], [style*="font-size:14px;"]) { font-size:calc(15px * var(--phone-unit)) !important; }
html.mobile-device :is([style*="font-size: clamp(3.4rem, 6.6vw, 6.8rem);"], [style*="font-size:clamp(3.4rem,6.6vw,6.8rem);"], [style*="font-size: clamp(4.5rem, 11.8vw, 12rem);"], [style*="font-size:clamp(4.5rem,11.8vw,12rem);"], [style*="font-size: clamp(2.6rem, 4.7vw, 5rem);"], [style*="font-size:clamp(2.6rem,4.7vw,5rem);"], [style*="font-size: clamp(3rem, 10.5vw, 6.2rem);"], [style*="font-size:clamp(3rem,10.5vw,6.2rem);"], [style*="font-size: clamp(2.2rem, 6.4vw, 4.2rem);"], [style*="font-size:clamp(2.2rem,6.4vw,4.2rem);"], [style*="font-size: clamp(2.35rem, 10.4vw, 4.4rem);"], [style*="font-size:clamp(2.35rem,10.4vw,4.4rem);"], [style*="font-size: clamp(3.5rem, 17vw, 6.4rem);"], [style*="font-size:clamp(3.5rem,17vw,6.4rem);"], [style*="font-size: clamp(1.95rem, 8.2vw, 3.6rem);"], [style*="font-size:clamp(1.95rem,8.2vw,3.6rem);"], [style*="font-size: 15px;"], [style*="font-size:15px;"], [style*="font-size: clamp(15.5px, 1.25vw, 17px);"], [style*="font-size:clamp(15.5px,1.25vw,17px);"], [style*="font-size: clamp(16px, 1.35vw, 19px);"], [style*="font-size:clamp(16px,1.35vw,19px);"], [style*="font-size: 16px;"], [style*="font-size:16px;"], [style*="font-size: clamp(15px, 1.4vw, 18px);"], [style*="font-size:clamp(15px,1.4vw,18px);"], [style*="font-size: clamp(17px, 1.6vw, 21px);"], [style*="font-size:clamp(17px,1.6vw,21px);"], [style*="font-size: 15.5px;"], [style*="font-size:15.5px;"]) { font-size:calc(16px * var(--phone-unit)) !important; }
html.mobile-device :is([style*="font-size: 18px;"], [style*="font-size:18px;"], [style*="font-size: 17px;"], [style*="font-size:17px;"], [style*="font-size: 16.5px;"], [style*="font-size:16.5px;"]) { font-size:calc(17px * var(--phone-unit)) !important; }
html.mobile-device :is([style*="font-size: clamp(20px, 1.9vw, 27px);"], [style*="font-size:clamp(20px,1.9vw,27px);"], [style*="font-size: clamp(20px, 2.2vw, 26px);"], [style*="font-size:clamp(20px,2.2vw,26px);"], [style*="font-size: clamp(20px, 2vw, 26px);"], [style*="font-size:clamp(20px,2vw,26px);"], [style*="font-size: clamp(19px, 2vw, 24px);"], [style*="font-size:clamp(19px,2vw,24px);"], [style*="font-size: clamp(19px, 1.8vw, 23px);"], [style*="font-size:clamp(19px,1.8vw,23px);"], [style*="font-size: clamp(21px, 2.2vw, 27px);"], [style*="font-size:clamp(21px,2.2vw,27px);"]) { font-size:calc(18px * var(--phone-unit)) !important; }
html.mobile-device :is([style*="font-size: 21px;"], [style*="font-size:21px;"], [style*="font-size: 20px;"], [style*="font-size:20px;"], [style*="font-size: 18.5px;"], [style*="font-size:18.5px;"], [style*="font-size: 19px;"], [style*="font-size:19px;"]) { font-size:calc(19px * var(--phone-unit)) !important; }
html.mobile-device :is([style*="font-size: clamp(22px, 2.2vw, 28px);"], [style*="font-size:clamp(22px,2.2vw,28px);"], [style*="font-size: clamp(24px, 2.6vw, 34px);"], [style*="font-size:clamp(24px,2.6vw,34px);"]) { font-size:calc(20px * var(--phone-unit)) !important; }
html.mobile-device :is([style*="font-size: 23px;"], [style*="font-size:23px;"], [style*="font-size: 22px;"], [style*="font-size:22px;"], [style*="font-size: 24px;"], [style*="font-size:24px;"]) { font-size:calc(21px * var(--phone-unit)) !important; }
html.mobile-device :is([style*="font-size: clamp(26px, 2.6vw, 34px);"], [style*="font-size:clamp(26px,2.6vw,34px);"], [style*="font-size: clamp(28px, 3vw, 36px);"], [style*="font-size:clamp(28px,3vw,36px);"], [style*="font-size: clamp(26px, 3vw, 38px);"], [style*="font-size:clamp(26px,3vw,38px);"]) { font-size:calc(22px * var(--phone-unit)) !important; }
html.mobile-device :is([style*="font-size: 25px;"], [style*="font-size:25px;"], [style*="font-size: 26px;"], [style*="font-size:26px;"], [style*="font-size: 27px;"], [style*="font-size:27px;"], [style*="font-size: 28px;"], [style*="font-size:28px;"]) { font-size:calc(23px * var(--phone-unit)) !important; }
html.mobile-device :is([style*="font-size: 31px;"], [style*="font-size:31px;"], [style*="font-size: 30px;"], [style*="font-size:30px;"]) { font-size:calc(25px * var(--phone-unit)) !important; }
html.mobile-device :is([style*="font-size: clamp(30px, 3.8vw, 52px);"], [style*="font-size:clamp(30px,3.8vw,52px);"], [style*="font-size: clamp(30px, 4vw, 54px);"], [style*="font-size:clamp(30px,4vw,54px);"], [style*="font-size: clamp(30px, 3.8vw, 48px);"], [style*="font-size:clamp(30px,3.8vw,48px);"]) { font-size:calc(26px * var(--phone-unit)) !important; }
html.mobile-device :is([style*="font-size: clamp(34px, 3.6vw, 46px);"], [style*="font-size:clamp(34px,3.6vw,46px);"], [style*="font-size: clamp(36px, 4.6vw, 58px);"], [style*="font-size:clamp(36px,4.6vw,58px);"], [style*="font-size: clamp(34px, 4.4vw, 56px);"], [style*="font-size:clamp(34px,4.4vw,56px);"], [style*="font-size: clamp(36px, 4.6vw, 62px);"], [style*="font-size:clamp(36px,4.6vw,62px);"], [style*="font-size: clamp(34px, 4.8vw, 60px);"], [style*="font-size:clamp(34px,4.8vw,60px);"], [style*="font-size: clamp(36px, 5vw, 64px);"], [style*="font-size:clamp(36px,5vw,64px);"], [style*="font-size: clamp(34px, 10vw, 56px);"], [style*="font-size:clamp(34px,10vw,56px);"]) { font-size:calc(28px * var(--phone-unit)) !important; }
html.mobile-device :is([style*="font-size: clamp(46px, 8.4vw, 142px);"], [style*="font-size:clamp(46px,8.4vw,142px);"], [style*="font-size: clamp(46px, 4.6vw, 64px);"], [style*="font-size:clamp(46px,4.6vw,64px);"], [style*="font-size: clamp(44px, 4.6vw, 64px);"], [style*="font-size:clamp(44px,4.6vw,64px);"], [style*="font-size: clamp(40px, 5.4vw, 72px);"], [style*="font-size:clamp(40px,5.4vw,72px);"], [style*="font-size: clamp(46px, 7.4vw, 104px);"], [style*="font-size:clamp(46px,7.4vw,104px);"], [style*="font-size: clamp(42px, 5.6vw, 88px);"], [style*="font-size:clamp(42px,5.6vw,88px);"]) { font-size:calc(30px * var(--phone-unit)) !important; }
html.mobile-device :is([style*="font-size: clamp(64px, 7vw, 96px);"], [style*="font-size:clamp(64px,7vw,96px);"], [style*="font-size: clamp(72px, 13vw, 200px);"], [style*="font-size:clamp(72px,13vw,200px);"], [style*="font-size: clamp(48px, 7vw, 96px);"], [style*="font-size:clamp(48px,7vw,96px);"], [style*="font-size: clamp(52px, 6vw, 76px);"], [style*="font-size:clamp(52px,6vw,76px);"], [style*="font-size: clamp(54px, 7.4vw, 124px);"], [style*="font-size:clamp(54px,7.4vw,124px);"], [style*="font-size: clamp(52px, 10vw, 132px);"], [style*="font-size:clamp(52px,10vw,132px);"]) { font-size:calc(34px * var(--phone-unit)) !important; }
html.mobile-device [data-review-swiper] .swiper-slide { width:86vw !important; }
html.mobile-device [data-review-swiper] figure { padding:calc(24px * var(--phone-unit)) calc(22px * var(--phone-unit)) !important; border-radius:var(--m-radius, 16px) !important; }
html.mobile-device [data-review-swiper] figcaption > span:first-child { width:calc(40px * var(--phone-unit)) !important; height:calc(40px * var(--phone-unit)) !important; }
html.mobile-device [data-review-swiper] blockquote { line-height:1.7 !important; }
html.mobile-device header > div:first-child { height:calc(64px * var(--phone-unit)) !important; padding-inline:calc(16px * var(--phone-unit)) !important; gap:calc(12px * var(--phone-unit)) !important; }
html.mobile-device [data-mobile-nav] { top:calc(64px * var(--phone-unit)) !important; max-height:calc(100dvh - 64px * var(--phone-unit)); overflow-y:auto; box-sizing:border-box; }
html.mobile-device [data-mobile-nav] a { font-size:calc(20px * var(--phone-unit)) !important; min-height:calc(44px * var(--phone-unit)); box-sizing:border-box; }
html.mobile-device header img { width:calc(44px * var(--phone-unit)) !important; height:calc(44px * var(--phone-unit)) !important; }
html.mobile-device [data-hdr-name] { font-size:calc(18px * var(--phone-unit)) !important; white-space:nowrap; }
html.mobile-device :is([data-hdr-tagline], [data-hdr-acct]), html.mobile-device header a[href="#/signup"] { display:none !important; }
html.mobile-device header :is(button[aria-label="Toggle menu"], [data-cart-trigger]) { width:calc(44px * var(--phone-unit)) !important; height:calc(44px * var(--phone-unit)) !important; }
html.mobile-device header button svg { width:calc(20px * var(--phone-unit)); height:calc(20px * var(--phone-unit)); }
html.mobile-device :is(button,input,textarea,select) { font-size:calc(14px * var(--phone-unit)) !important; }
html.mobile-device button { min-height:calc(44px * var(--phone-unit)); }
html.mobile-device :is(input,textarea,select) { font-size:calc(16px * var(--phone-unit)) !important; }
html.mobile-device :is([data-screen-label="Menu"], [data-screen-label="Order"]) p { font-size:calc(15px * var(--phone-unit)) !important; line-height:1.65 !important; }
html.mobile-device :is([data-screen-label="Menu"], [data-screen-label="Order"]) h1 { font-size:calc(34px * var(--phone-unit)) !important; }
html.mobile-device [data-screen-label="Order"] h2 { font-size:calc(25px * var(--phone-unit)) !important; }
html.mobile-device :is([data-menu-layout], [data-order-layout], [data-menu-grid], [data-order-items]) { grid-template-columns:minmax(0,1fr) !important; min-width:0; }
html.mobile-device [data-menu-grid] { gap:calc(20px * var(--phone-unit)); }
html.mobile-device [data-mcard-title] { font-size:calc(22px * var(--phone-unit)) !important; }
html.mobile-device [data-mcard-body] { padding:calc(18px * var(--phone-unit)); }
html.mobile-device [data-mcard-price] strong { font-size:calc(17px * var(--phone-unit)); }
html.mobile-device [data-mcard-price] em { opacity:1; transform:none; font-size:calc(13px * var(--phone-unit)); }
html.mobile-device [data-order-card] { padding:calc(16px * var(--phone-unit)) !important; gap:calc(12px * var(--phone-unit)) !important; flex-wrap:wrap; }
html.mobile-device [data-order-card] h3 { font-size:calc(20px * var(--phone-unit)) !important; }
html.mobile-device [data-order-card] :is(span,strong) { font-size:calc(14px * var(--phone-unit)) !important; }
html.mobile-device [data-order-media] { width:calc(76px * var(--phone-unit)) !important; height:calc(76px * var(--phone-unit)) !important; }
html.mobile-device [data-order-layout] > aside { position:static !important; }
html.mobile-device [data-order-layout] > aside :is(span,strong,div) { font-size:calc(14px * var(--phone-unit)) !important; }
html.mobile-device :is([data-panel], [role="dialog"][aria-modal="true"]) { width:100% !important; max-width:100vw !important; box-sizing:border-box; }
html.mobile-device :is([data-cart-head], [data-cart-foot], [data-cart-list]) { padding-inline:calc(16px * var(--phone-unit)); }
html.mobile-device [data-cart-row] { grid-template-columns:calc(56px * var(--phone-unit)) minmax(0,1fr); gap:calc(12px * var(--phone-unit)); }
html.mobile-device [data-cart-thumb] { width:calc(56px * var(--phone-unit)); height:calc(56px * var(--phone-unit)); }
html.mobile-device [data-cart-total] { grid-column:2; }
html.mobile-device :is([data-cart-name], [data-cart-total]) { font-size:calc(16px * var(--phone-unit)); }
html.mobile-device :is([data-cart-meta], [data-cart-note], [data-cart-sub] span) { font-size:calc(12px * var(--phone-unit)); }
html.mobile-device [data-cart-head] h2 { font-size:calc(25px * var(--phone-unit)); }
html.mobile-device [data-cart-sub] strong { font-size:calc(23px * var(--phone-unit)); }
html.mobile-device [data-panel-step] button { width:calc(44px * var(--phone-unit)); height:calc(44px * var(--phone-unit)); }
html.mobile-device [data-panel-step] span { min-width:calc(26px * var(--phone-unit)); font-size:calc(16px * var(--phone-unit)); }
html.mobile-device [data-panel-body] :is(p,label,span), html.mobile-device [data-panel-price] { font-size:calc(15px * var(--phone-unit)) !important; }
html.mobile-device [data-panel-body] h2 { font-size:calc(25px * var(--phone-unit)) !important; }
html.mobile-device [data-cart-checkout] { font-size:calc(15px * var(--phone-unit)); padding:calc(16px * var(--phone-unit)); }
html.mobile-device [data-checkout] :is(label,p,span,[role="status"]) { font-size:calc(14px * var(--phone-unit)) !important; }
html.mobile-device [data-checkout] h2 { font-size:calc(26px * var(--phone-unit)) !important; }
html.mobile-device [data-checkout] input { min-height:calc(48px * var(--phone-unit)); }
html.mobile-device [data-checkout] button[aria-label="Close checkout"] { width:calc(44px * var(--phone-unit)) !important; height:calc(44px * var(--phone-unit)) !important; }
html.mobile-device [data-checkout] > div { min-height:0; }
html.mobile-device [data-hero-stage] { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(300px,52svh) auto; min-height:calc(100svh - 64px * var(--phone-unit)); }
html.mobile-device :is([data-hero-visual],[data-hero-type]) { position:relative; inset:auto; grid-row:1; grid-column:1; height:100%; min-height:0; }
html.mobile-device [data-hero-slide] { --dish:min(80vw, 52svh); }
html.mobile-device [data-hero-copy] { font-size:clamp(2rem,10vw,7rem) !important; }
html.mobile-device [data-hero-copy][data-size="hero"] { font-size:17vw !important; }
html.mobile-device [data-hero-foot] { position:relative; inset:auto; grid-row:2; flex-direction:column; align-items:stretch; gap:calc(18px * var(--phone-unit)); padding-bottom:calc(22px * var(--phone-unit)); }
html.mobile-device [data-hero-line] { font-size:calc(15px * var(--phone-unit)); line-height:1.65; }
html.mobile-device [data-hero-kicker] { font-size:calc(11px * var(--phone-unit)); }
html.mobile-device [data-hero-actions] { align-items:stretch; }
html.mobile-device [data-hero-blurb] { max-width:none; }
html.mobile-device [data-hero-nav] { justify-content:center; }
html.mobile-device [data-hero-order] { width:100%; box-sizing:border-box; justify-content:center; font-size:calc(15px * var(--phone-unit)); padding:calc(16px * var(--phone-unit)); }
html.mobile-device [data-hero-stat-v] { font-size:calc(20px * var(--phone-unit)); }
html.mobile-device [data-hero-stat-l] { font-size:calc(10px * var(--phone-unit)); }

/* Shared physical-phone rhythm, including a wide Android layout viewport. */
html.mobile-device { --m-gutter:calc(20px * var(--phone-unit)); --m-gap:calc(18px * var(--phone-unit)); --m-body:calc(15px * var(--phone-unit)); --m-meta:calc(12px * var(--phone-unit)); --m-touch:calc(44px * var(--phone-unit)); --m-radius:calc(16px * var(--phone-unit)); }
html.mobile-device [data-screen-label] > section { padding:calc(32px * var(--phone-unit)) var(--m-gutter) calc(64px * var(--phone-unit)) !important; }
html.mobile-device [data-screen-label] h1 { font-size:calc(34px * var(--phone-unit)) !important; line-height:1.12 !important; }
html.mobile-device [data-screen-label] p { font-size:var(--m-body) !important; line-height:1.65 !important; }
html.mobile-device [data-screen-label] :is(input,textarea,select) { min-height:var(--m-touch); box-sizing:border-box; font-size:calc(16px * var(--phone-unit)) !important; }
html.mobile-device [data-screen-label] label { font-size:var(--m-meta) !important; line-height:1.45; }
html.mobile-device [data-reveal] { opacity:1; transform:none; }
html.mobile-device [data-menu-card] { border-radius:var(--m-radius); }
html.mobile-device [data-mcard-media] { aspect-ratio:16/9; max-height:calc(210px * var(--phone-unit)); }
html.mobile-device [data-mcard-title] { font-size:calc(21px * var(--phone-unit)) !important; }
html.mobile-device [data-mcard-desc] { font-size:calc(14px * var(--phone-unit)); line-height:1.5; }
html.mobile-device [data-mcard-body]:not(:has([data-mcard-desc]))::before { height:0; margin:0; }
html.mobile-device [data-order-layout] { gap:calc(28px * var(--phone-unit)) !important; }
html.mobile-device [data-cart-checkout] { min-height:calc(50px * var(--phone-unit)); }
html.mobile-device [data-checkout] [style*="grid-template-columns"] { grid-template-columns:minmax(0,1fr) !important; }
html.mobile-device [data-screen-label="Reservations"] > section > div:nth-child(2) { grid-template-columns:minmax(0,1fr) !important; }
html.mobile-device [data-screen-label="Reservations"] [data-reveal][style*="border-radius:20px"] { padding:var(--m-gutter) !important; }
html.mobile-device [data-screen-label="Reservations"] input, html.mobile-device [data-screen-label="Reservations"] textarea, html.mobile-device [data-screen-label="Reservations"] [aria-haspopup="listbox"] { padding:calc(11px * var(--phone-unit)) calc(13px * var(--phone-unit)) !important; }
html.mobile-device [data-about] { padding:calc(36px * var(--phone-unit)) 0 calc(66px * var(--phone-unit)); }
html.mobile-device [data-about-wrap] { padding-inline:var(--m-gutter); }
html.mobile-device [data-about-head] { margin-top:calc(14px * var(--phone-unit)); font-size:calc(42px * var(--phone-unit)); }
html.mobile-device [data-about-grid] { margin-top:calc(24px * var(--phone-unit)); gap:calc(26px * var(--phone-unit)); }
html.mobile-device [data-about-body] > p { font-size:var(--m-body); line-height:1.7; }
html.mobile-device [data-screen-label="Blog"] [style*="grid-template-columns"] { grid-template-columns:minmax(0,1fr) !important; }
html.mobile-device [data-screen-label="Blog"] [data-blog-card] { padding-right:0 !important; border-right:0 !important; }
html.mobile-device [data-screen-label="Blog"] h2 { font-size:calc(28px * var(--phone-unit)) !important; }
html.mobile-device [data-screen-label="Blog"] h3 { font-size:calc(20px * var(--phone-unit)) !important; }
html.mobile-device [data-screen-label="Blog post"] p { font-size:calc(16px * var(--phone-unit)) !important; line-height:1.75 !important; }
html.mobile-device :is([data-screen-label="Log in"],[data-screen-label="Sign up"],[data-screen-label="Forgot password"]) > section { min-height:0 !important; }
html.mobile-device :is([data-screen-label="Log in"],[data-screen-label="Sign up"],[data-screen-label="Forgot password"]) [data-reveal] { max-width:none !important; padding:var(--m-gutter) !important; box-sizing:border-box; }
html.mobile-device [data-screen-label="Loyalty"] [role="status"] { display:flex; align-items:center; justify-content:center; gap:calc(12px * var(--phone-unit)); flex-wrap:wrap; padding:var(--m-gutter) !important; font-size:var(--m-body); }
html.mobile-device [data-screen-label="Loyalty"] [role="status"] button { margin:0 !important; padding:calc(10px * var(--phone-unit)) calc(15px * var(--phone-unit)) !important; border:1px solid rgba(255,255,255,.5); border-radius:999px; color:#fff; background:transparent; font-weight:700; }
html.mobile-device [data-screen-label="Loyalty"] [style*="grid-template-columns"] { grid-template-columns:minmax(0,1fr) !important; }
html.mobile-device footer > div:nth-child(2) { padding:calc(46px * var(--phone-unit)) var(--m-gutter) calc(28px * var(--phone-unit)) !important; }
html.mobile-device footer > div:nth-child(2) > div:nth-child(2) { grid-template-columns:minmax(0,1fr) !important; gap:calc(30px * var(--phone-unit)) !important; }
html.mobile-device footer a, html.mobile-device footer span { font-size:calc(14px * var(--phone-unit)) !important; line-height:1.55; }
html.mobile-device [data-hero-stage] { grid-template-rows:minmax(0,38svh) auto; }
html.mobile-device [data-hero-slide] { --dish:min(76vw, 36svh); }
html.mobile-device [data-hero-foot] { gap:calc(12px * var(--phone-unit)); padding:calc(14px * var(--phone-unit)) var(--m-gutter) calc(20px * var(--phone-unit)); }
html.mobile-device [data-hero-line] { line-height:1.45; margin-block:calc(8px * var(--phone-unit)); }
html.mobile-device [data-hero-stats] { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:calc(8px * var(--phone-unit)); }
html.mobile-device [data-hero-stat] { min-width:0; }
html.mobile-device [data-hero-stat-l] { overflow-wrap:anywhere; }
html.mobile-device [data-hero-order] { min-height:var(--m-touch); }

/* Controls that never set a font fall back to the browser's Arial - keep them in the house face. */
html.mobile-device :is(button, input, select, textarea) { font-family:'Plus Jakarta Sans', system-ui, sans-serif; }
html.mobile-device :is([data-mcard-badge], [data-mcard-hot]) { top:calc(12px * var(--phone-unit)); padding:calc(5px * var(--phone-unit)) calc(10px * var(--phone-unit)); font-size:calc(11px * var(--phone-unit)); letter-spacing:.14em; }
html.mobile-device [data-mcard-badge] { left:calc(12px * var(--phone-unit)); }
html.mobile-device [data-mcard-hot] { right:calc(12px * var(--phone-unit)); }
html.mobile-device [data-img-note] { font-size:calc(12px * var(--phone-unit)); margin-top:calc(10px * var(--phone-unit)); }
/* Loyalty status strip: the "Update rewards" control was a browser-default button */
html.mobile-device [data-screen-label="Loyalty"] [role="status"] button {
  min-height:var(--m-touch); padding:0 calc(20px * var(--phone-unit)) !important;
  font-size:calc(12px * var(--phone-unit)) !important; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  cursor:pointer; transition:background-color .25s ease, color .25s ease;
}
html.mobile-device [data-screen-label="Loyalty"] [role="status"] button:active { background:#fff; color:#000; }
/* Reservations party-size steppers */
html.mobile-device [data-screen-label="Reservations"] :is(button[aria-label="Fewer guests"], button[aria-label="More guests"]) { width:var(--m-touch) !important; height:var(--m-touch) !important; font-size:calc(18px * var(--phone-unit)) !important; }

/* ---- visual QA pass: route-level polish on phones ---- */
/* Home: the shared section padding was insetting the hero; the stage stays full-bleed */
html.mobile-device [data-screen-label] > section[data-hero-track] { padding:0 !important; }
/* Order cards: name > price > tag. The card-wide 14px span rule had made the tag and price outweigh the dish name */
html.mobile-device [data-order-card] div:has(+ h3) { font-size:calc(10.5px * var(--phone-unit)) !important; letter-spacing:.14em !important; padding:calc(4px * var(--phone-unit)) calc(9px * var(--phone-unit)) !important; margin-bottom:calc(8px * var(--phone-unit)) !important; }
html.mobile-device [data-order-card] div:has(> h3) + span { font-size:calc(17px * var(--phone-unit)) !important; }
/* Reservations: date/time and name/phone pairs stack instead of squeezing the time picker */
html.mobile-device [data-screen-label="Reservations"] [style*="grid-template-columns: 1fr 1fr"] { grid-template-columns:minmax(0,1fr) !important; }
/* Loyalty: compact hero, and earn/redeem rows read title-then-value instead of squeezing the title */
html.mobile-device [data-screen-label="Loyalty"] > section:first-of-type { min-height:0 !important; padding:calc(56px * var(--phone-unit)) var(--m-gutter) calc(44px * var(--phone-unit)) !important; }
html.mobile-device [data-screen-label="Loyalty"] div[style*="justify-content: space-between"][style*="padding: 12px 0"] { flex-direction:column; align-items:flex-start !important; gap:calc(4px * var(--phone-unit)) !important; }
html.mobile-device [data-screen-label="Loyalty"] div[style*="justify-content: space-between"][style*="padding: 12px 0"] > span[style*="text-align: right"] { text-align:left !important; }
/* About stays in the shared main wrapper; no route-specific spacer workaround. */
/* Sign up: the phone label matches its small-caps siblings */
html.mobile-device [data-screen-label="Sign up"] label > span[style*="color: rgb(171, 171, 171)"] { font-weight:600 !important; letter-spacing:.2em !important; text-transform:uppercase !important; color:var(--text-3, #8C8C8C) !important; }
html.mobile-device [data-screen-label="Sign up"] input[type="tel"] { margin-top:calc(9px * var(--phone-unit)); }
/* Catering: the illustrative-images note belongs to the gallery above, not the form heading below */
html.mobile-device [data-img-note="center"] { margin-bottom:calc(28px * var(--phone-unit)) !important; }
/* Blog: masthead meta and folio lines stack as centred single lines; long small-caps get calmer tracking */
html.mobile-device [data-screen-label="Blog"] div[style*="justify-content: space-between"][style*="text-transform: uppercase"] { flex-direction:column; justify-content:center !important; gap:calc(6px * var(--phone-unit)) !important; text-align:center; letter-spacing:.14em !important; }
html.mobile-device [data-screen-label="Blog"] span[style*="letter-spacing: 0.24em"] { letter-spacing:.14em !important; line-height:1.6; }

/* ---- stylesheet-sized pieces the phone unit had not reached (visible in a 980px layout) ---- */
html.mobile-device [data-about-kicker] { font-size:calc(12px * var(--phone-unit)); }
html.mobile-device [data-about-caption] { font-size:calc(11.5px * var(--phone-unit)); margin-top:calc(12px * var(--phone-unit)); }
html.mobile-device [data-about-quote] { font-size:calc(21px * var(--phone-unit)); line-height:1.45; }
html.mobile-device [data-about-index] li { gap:calc(14px * var(--phone-unit)); padding-block:calc(14px * var(--phone-unit)); }
html.mobile-device [data-about-index] li span:first-child { font-size:calc(12px * var(--phone-unit)); }
html.mobile-device [data-about-index] li span:last-child { font-size:calc(17px * var(--phone-unit)); }
html.mobile-device [data-panel-legend], html.mobile-device [data-panel-hint] { font-size:calc(12px * var(--phone-unit)); }
html.mobile-device [data-panel-opt] span:last-child { font-size:calc(14px * var(--phone-unit)); }
html.mobile-device [data-cart-empty-title] { font-size:calc(22px * var(--phone-unit)); }
html.mobile-device [data-cart-empty-sub] { font-size:calc(14px * var(--phone-unit)); }
html.mobile-device :is([data-cart-remove], [data-cart-close]) { font-size:calc(12.5px * var(--phone-unit)); min-height:calc(36px * var(--phone-unit)); }
/* hero slide selector and pause: finger-sized */
html.mobile-device [data-hero-dot] { width:calc(34px * var(--phone-unit)) !important; height:calc(40px * var(--phone-unit)) !important; }
html.mobile-device [data-hero-dot]::before { width:calc(18px * var(--phone-unit)); height:calc(2px * var(--phone-unit)); }
html.mobile-device [data-hero-dot][aria-current="true"]::before { width:calc(26px * var(--phone-unit)); }
html.mobile-device [data-hero-toggle] { font-size:calc(11px * var(--phone-unit)) !important; min-height:calc(40px * var(--phone-unit)); padding-inline:calc(8px * var(--phone-unit)) !important; }
/* order "Add" stays a pill rather than collapsing into a circle */
html.mobile-device [data-order-card] button { padding:calc(9px * var(--phone-unit)) calc(20px * var(--phone-unit)) !important; }
/* hours lists: the desktop 340/380px caps are a sliver of a 980px phone layout */
html.mobile-device footer :is(div[style*="max-width: 340px"], div[style*="max-width: 400px"]), html.mobile-device [data-screen-label="Reservations"] div[style*="max-width: 380px"] { max-width:none !important; }
html.mobile-device footer div[style*="max-width: 340px"] { gap:calc(10px * var(--phone-unit)) !important; }
/* list-row rhythm: row padding set in desktop px */
html.mobile-device [data-screen-label] :is([style*="padding: 11px 0px;"], [style*="padding: 11px 0;"]) { padding-block:calc(11px * var(--phone-unit)) !important; }
html.mobile-device [data-screen-label] :is([style*="padding: 12px 0px;"], [style*="padding: 12px 0;"]) { padding-block:calc(12px * var(--phone-unit)) !important; }
/* blog: the sidebar's "In this edition" label no longer butts against "Continue reading" */
html.mobile-device [data-screen-label="Blog"] div[style*="letter-spacing: 0.22em"][style*="padding-bottom: 12px"] { margin-top:calc(36px * var(--phone-unit)) !important; }
html.mobile-device footer div[style*="max-width: 400px"] { gap:calc(14px * var(--phone-unit)) calc(12px * var(--phone-unit)) !important; }
/* blog "In this edition" thumbnails keep a readable size in a wide layout */
html.mobile-device [data-screen-label="Blog"] div[style*="width: 86px; height: 86px"] { width:calc(76px * var(--phone-unit)) !important; height:calc(76px * var(--phone-unit)) !important; }

/* ---- Phones: "Your Order" is a full-screen sheet opened from the cart's Checkout, never inline ---- */
html.mobile-device [data-order-layout] > aside[data-order-sheet="closed"] { display:none !important; }
html.mobile-device [data-order-layout] > aside[data-order-sheet="open"] {
  position:fixed !important; inset:0 !important; z-index:205; width:auto; height:auto; margin:0;
  display:flex; flex-direction:column; overflow-x:hidden !important; overflow-y:auto !important; overscroll-behavior:contain;
  border:0 !important; border-radius:0 !important; box-shadow:none !important; background:#0A0A0A !important;
  animation:sj-order-sheet-in .3s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes sj-order-sheet-in { from { opacity:0; transform:translateY(calc(28px * var(--phone-unit))); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce) { html.mobile-device [data-order-sheet="open"] { animation:none; } }
html.mobile-device:has([data-order-sheet="open"]), html.mobile-device:has([data-order-sheet="open"]) body { overflow:hidden !important; }
html.mobile-device [data-order-sheet="open"] [data-order-sheet-top] { display:contents; }
/* header: back control, title, item count - pinned while the sheet scrolls */
html.mobile-device [data-order-sheet] [data-order-sheet-head] {
  position:sticky; top:0; z-index:2; flex:none; display:grid !important; grid-template-columns:auto minmax(0,1fr) auto; align-items:center;
  gap:calc(12px * var(--phone-unit)) !important; padding:calc(10px * var(--phone-unit)) calc(16px * var(--phone-unit));
  padding-top:calc(10px * var(--phone-unit) + env(safe-area-inset-top)); background:#0A0A0A; border-bottom:1px solid rgba(255,255,255,0.08);
}
html.mobile-device [data-order-sheet] [data-order-sheet-close] {
  display:grid !important; place-items:center; width:calc(44px * var(--phone-unit)); height:calc(44px * var(--phone-unit)); padding:0;
  border-radius:50%; border:1px solid rgba(255,255,255,0.16); background:transparent; color:#FFFFFF; cursor:pointer;
  font-family:'Plus Jakarta Sans',system-ui,sans-serif;
}
html.mobile-device [data-order-sheet] [data-order-sheet-close] span { font-size:calc(20px * var(--phone-unit)) !important; line-height:1; }
html.mobile-device [data-order-sheet] [data-order-sheet-head] h2 {
  font-size:calc(21px * var(--phone-unit)) !important; letter-spacing:.08em !important; text-transform:uppercase; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
html.mobile-device [data-order-sheet] [data-order-sheet-head] > span { font-size:calc(12px * var(--phone-unit)) !important; letter-spacing:.16em !important; color:#9E9E9E !important; }
/* delivery / pickup, asap / schedule */
html.mobile-device [data-order-sheet="open"] [data-order-sheet-top] > div:not([data-order-sheet-head]) { flex:none; margin-inline:calc(16px * var(--phone-unit)); }
html.mobile-device [data-order-sheet="open"] [data-order-sheet-top] > div:nth-child(2) { margin-top:calc(16px * var(--phone-unit)) !important; }
html.mobile-device [data-order-sheet] [data-order-sheet-top] button:not([data-order-sheet-close]) { min-height:calc(44px * var(--phone-unit)); font-size:calc(13px * var(--phone-unit)) !important; }
html.mobile-device [data-order-sheet] [data-order-sheet-top] > div:last-child { font-size:calc(13px * var(--phone-unit)) !important; line-height:1.6 !important; }
/* item rows: name + option full width, then stepper / remove / line total on one clean row */
html.mobile-device [data-order-sheet] [data-order-lines] {
  flex:none; max-height:none !important; overflow:visible !important; gap:0 !important; margin-top:calc(12px * var(--phone-unit)) !important; padding:0 calc(16px * var(--phone-unit)) !important;
}
html.mobile-device [data-order-sheet] [data-order-line] {
  display:grid !important; grid-template-columns:auto minmax(0,1fr) auto; grid-template-areas:"info info info" "step remove total";
  align-items:center; column-gap:calc(10px * var(--phone-unit)) !important; row-gap:calc(12px * var(--phone-unit)) !important;
  padding:calc(16px * var(--phone-unit)) 0 !important; border-bottom:1px solid rgba(255,255,255,0.08) !important;
}
html.mobile-device [data-order-sheet] [data-order-line-info] { grid-area:info; }
html.mobile-device [data-order-sheet] [data-order-line-info] > div:first-child {
  font-size:calc(16px * var(--phone-unit)) !important; line-height:1.3; white-space:normal !important; overflow:visible !important; overflow-wrap:anywhere;
}
html.mobile-device [data-order-sheet] [data-order-line-detail] { display:block !important; margin-top:calc(4px * var(--phone-unit)); font-size:calc(13px * var(--phone-unit)) !important; line-height:1.45; font-weight:600; color:#B5B5B5; }
html.mobile-device [data-order-sheet] [data-order-line-each] { margin-top:calc(4px * var(--phone-unit)) !important; font-size:calc(13px * var(--phone-unit)) !important; }
html.mobile-device [data-order-sheet] [data-order-line-step] {
  grid-area:step; gap:calc(2px * var(--phone-unit)) !important; padding:calc(2px * var(--phone-unit)) !important;
  border:1px solid rgba(255,255,255,0.12); background:rgba(255,255,255,0.04) !important;
}
html.mobile-device [data-order-sheet] [data-order-line-step] button {
  width:calc(44px * var(--phone-unit)) !important; height:calc(44px * var(--phone-unit)) !important; font-size:calc(21px * var(--phone-unit)) !important; color:#FFFFFF !important;
}
html.mobile-device [data-order-sheet] [data-order-line-step] span { min-width:calc(28px * var(--phone-unit)) !important; font-size:calc(16px * var(--phone-unit)) !important; }
html.mobile-device [data-order-sheet] [data-order-line-remove] {
  grid-area:remove; justify-self:start; display:inline-flex !important; align-items:center; min-height:calc(44px * var(--phone-unit)); padding:0 calc(12px * var(--phone-unit));
  border:0; background:transparent; color:#B5B5B5; cursor:pointer; text-decoration:underline; text-underline-offset:.25em;
  font-family:'Plus Jakarta Sans',system-ui,sans-serif; font-size:calc(13px * var(--phone-unit)); font-weight:700; letter-spacing:.06em;
}
html.mobile-device [data-order-sheet] [data-order-line-total] { grid-area:total; width:auto !important; white-space:nowrap; font-size:calc(18px * var(--phone-unit)) !important; }
html.mobile-device [data-order-sheet="open"] p { font-size:calc(15px * var(--phone-unit)) !important; }
/* summary + proceed pinned to the bottom of the sheet */
html.mobile-device [data-order-sheet="open"] [data-order-summary] {
  position:sticky; bottom:0; z-index:2; flex:none; margin-top:auto !important; background:#050505 !important; border-top:1px solid rgba(255,255,255,0.1) !important;
  padding:calc(14px * var(--phone-unit)) calc(16px * var(--phone-unit)) calc(14px * var(--phone-unit) + env(safe-area-inset-bottom)) !important;
}
html.mobile-device [data-order-sheet] [data-order-summary] > div:first-child { gap:calc(7px * var(--phone-unit)) !important; }
html.mobile-device [data-order-sheet] [data-order-summary] > div:first-child > div > span { font-size:calc(14.5px * var(--phone-unit)) !important; }
html.mobile-device [data-order-sheet] [data-order-summary] > div:first-child > div:last-child > span:first-child { font-size:calc(13px * var(--phone-unit)) !important; }
html.mobile-device [data-order-sheet] [data-order-summary] > div:first-child > div:last-child > span:last-child { font-size:calc(26px * var(--phone-unit)) !important; }
html.mobile-device [data-order-sheet] [data-order-proceed] {
  margin-top:calc(12px * var(--phone-unit)) !important; min-height:calc(52px * var(--phone-unit)); padding:calc(14px * var(--phone-unit)) !important;
  border-radius:calc(14px * var(--phone-unit)) !important; background:#FFFFFF !important; color:#000000 !important; font-size:calc(15px * var(--phone-unit)) !important;
}
html.mobile-device [data-order-sheet] [data-order-summary] > div:last-child { margin-top:calc(8px * var(--phone-unit)) !important; font-size:calc(12px * var(--phone-unit)) !important; }
/* template text holes render as .sc-interp spans: let them take the size of the element they sit in */
html.mobile-device [data-order-sheet] .sc-interp { font-size:inherit !important; }

/* Safe viewport bounds also follow the on-screen keyboard on mobile browsers. */
html.mobile-device :is([data-checkout],[data-cart-panel],[data-order-sheet="open"]) {
  top:var(--mobile-visible-top, 0px) !important;
  height:var(--mobile-visible-height, 100dvh) !important;
  bottom:auto !important;
  max-height:var(--mobile-visible-height, 100dvh);
  overscroll-behavior:contain;
}
html.mobile-device [data-checkout] { overflow-y:auto; }
html.mobile-device [data-checkout-head] { padding:calc(16px * var(--phone-unit)) var(--m-gutter) !important; }
html.mobile-device [data-checkout-body] { padding:var(--m-gutter) !important; min-height:calc(120px * var(--phone-unit)); }
html.mobile-device [data-checkout-foot] { padding:calc(16px * var(--phone-unit)) var(--m-gutter) calc(16px * var(--phone-unit) + env(safe-area-inset-bottom)) !important; }
html.mobile-device.mobile-editing [data-checkout-body] { flex:none !important; overflow:visible !important; }
html.mobile-device:has([data-checkout]), html.mobile-device:has([data-checkout]) body { overflow:hidden !important; }
html.mobile-device [data-order-schedule] { margin-top:calc(14px * var(--phone-unit)); gap:calc(12px * var(--phone-unit)); }
html.mobile-device [data-order-schedule] label { font-size:var(--m-meta) !important; }
html.mobile-device [data-order-schedule] input { width:100%; min-width:0; font-size:calc(16px * var(--phone-unit)) !important; min-height:var(--m-touch); }
html.mobile-device.mobile-compact [data-order-line] { grid-template-areas:"info info" "step total" "remove remove"; grid-template-columns:1fr auto; }
html.mobile-device [data-order-sheet-head] > span { letter-spacing:0 !important; }
html.mobile-device [data-screen-label="Events"] > section > div,
html.mobile-device [data-screen-label="About"] [data-about-wrap] { padding-inline:0 !important; }
html.mobile-device [data-cart-foot] { padding-bottom:calc(20px * var(--phone-unit) + env(safe-area-inset-bottom)); }
html.mobile-device [data-order-sheet="open"] { overflow:hidden !important; }
html.mobile-device [data-order-sheet="open"] [data-order-sheet-scroll] {
  display:block !important; flex:1 1 auto; min-height:0; overflow-y:auto; overflow-x:hidden;
  overscroll-behavior:contain; scroll-padding-top:calc(72px * var(--phone-unit));
}
html.mobile-device [data-order-sheet="open"] [data-order-summary] { position:relative; margin-top:0 !important; }
@media (max-height:600px) {
  html.mobile-device [data-order-summary] { padding-block:8px !important; }
  html.mobile-device [data-order-summary] > div:first-child { gap:3px !important; }
  html.mobile-device [data-order-summary] > div:last-child { display:none; }
}

/* Editorial mobile checkout: presentation only; retain scroll and touch geometry. */
html.mobile-device :is([data-order-sheet], [data-checkout]) :is(button, input, textarea, select, div, a) {
  border-radius:0 !important;
  box-shadow:none !important;
}
html.mobile-device :is([data-order-sheet], [data-checkout]) :is(input, textarea, select) {
  background:transparent !important;
  border:0 !important;
  border-bottom:1px solid #626262 !important;
  padding-inline:0 !important;
  color:#F2F2F2;
}
html.mobile-device :is([data-order-sheet], [data-checkout]) :is(input, textarea, select):focus {
  border-bottom-color:#FFFFFF !important;
  outline:1px solid transparent;
}
html.mobile-device :is([data-order-sheet], [data-checkout]) button:focus-visible {
  outline:2px solid #FFFFFF;
  outline-offset:3px;
}
html.mobile-device [data-checkout-body] > label {
  color:#B5B5B5 !important;
  letter-spacing:.16em !important;
  margin-top:calc(22px * var(--phone-unit)) !important;
}
html.mobile-device [data-checkout-body] > label:first-child { margin-top:0 !important; }
html.mobile-device [data-order-sheet] [data-order-line-step] { background:transparent !important; }
html.mobile-device [data-order-sheet] [data-order-line-step] button { background:transparent !important; }
html.mobile-device [data-order-sheet] [data-order-sheet-close] { border-color:transparent; }
html.mobile-device [data-order-sheet] [data-order-sheet-top] > div:has(> button) {
  background:transparent !important;
  padding:0 !important;
  gap:calc(8px * var(--phone-unit)) !important;
}
html.mobile-device [data-checkout-foot] > button,
html.mobile-device [data-order-sheet] [data-order-proceed] {
  border-radius:0 !important;
  letter-spacing:.12em !important;
}
