@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/menu-assets/fonts/outfit-400.ttf) format('truetype');
}
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/menu-assets/fonts/outfit-500.ttf) format('truetype');
}
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/menu-assets/fonts/outfit-600.ttf) format('truetype');
}
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/menu-assets/fonts/outfit-700.ttf) format('truetype');
}

:root{--ink:#222;--muted:#888;--paper:#fafafa;--line:#ededed;--ease:cubic-bezier(.22,.8,.3,1);font-family:'Outfit',sans-serif;color:var(--ink);font-synthesis:none;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}html,body{margin:0;height:100%;background:#ececec}body{overflow:hidden}button,input,a{-webkit-tap-highlight-color:transparent}button{border:0;padding:0;background:none;font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.3;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid #222;outline-offset:4px}button{transition:transform .22s var(--ease),background .22s}button:active{transform:scale(.96)}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}[hidden]{display:none!important}img{width:100%;height:100%;display:block;object-fit:cover}a{color:inherit}.app-shell{width:100%;max-width:480px;height:100vh;height:100dvh;margin:auto;background:var(--paper);position:relative;overflow:hidden}.welcome{display:none}.menu-screen{height:100%;position:relative}.panel{height:100%;overflow:auto;overscroll-behavior:contain;scrollbar-width:none;padding:calc(27px + env(safe-area-inset-top)) 24px calc(116px + env(safe-area-inset-bottom))}.panel::-webkit-scrollbar{display:none}.cafe-header{display:flex;align-items:center;gap:12px}.brand-mark{width:46px;height:46px;flex-shrink:0;display:flex;justify-content:center;align-items:center;border-radius:50%;background:#e8e8e8;font-size:40px;letter-spacing:-5px;font-weight:500;line-height:1;padding:0 5px 6px 0}.brand-mark span{font-size:21px;margin:10px 0 0 3px}.greeting{min-width:0;flex:1}.greeting>span{font-size:19px;font-weight:500;letter-spacing:-.6px}.greeting small{display:flex;align-items:center;gap:5px;margin-top:4px;font-size:11px;color:#858585}.status-dot{width:5px;height:5px;flex:none;background:#787878;border-radius:50%}.cart-fab{position:relative;width:44px;height:44px;border-radius:50%;background:#fff;display:grid;place-items:center}#cart-count{position:absolute;right:-3px;top:-3px;min-width:19px;height:19px;padding:0 4px;background:#222;color:#fff;font-size:10px;border-radius:50%;display:grid;place-items:center;border:2px solid #fafafa}.menu-headline{font-size:34px;letter-spacing:-1.4px;font-weight:500;line-height:1.2;margin:31px 0 23px;white-space:nowrap}.menu-headline span{color:#929292;font-weight:400}.search-row{display:flex;gap:10px}.menu-search{height:51px;min-width:0;flex:1;display:flex;align-items:center;gap:10px;padding:0 17px;border-radius:30px;background:#fff;color:#929292}.menu-search svg{width:20px;height:20px}.menu-search input{width:100%;min-width:0;flex:1;border:0;outline:0;background:transparent;font:inherit;font-size:13px;color:#222}.menu-search:focus-within{box-shadow:0 0 0 1px #aaa}.menu-search input::placeholder{color:#939393}.menu-search input::-webkit-search-cancel-button{-webkit-appearance:none}.menu-search button{display:grid;place-items:center;width:28px;height:40px}.filter-button{width:51px;height:51px;display:grid;place-items:center;background:#222;color:#fff;border-radius:50%}.filter-button[aria-expanded=true]{background:#555}.category-band{position:relative;margin:26px -24px 0;padding:13px 0 11px;isolation:isolate}.category-band:before{content:'';position:absolute;z-index:-1;left:-30%;width:160%;top:0;height:135px;background:#f0f0f0;border-radius:50% 50% 44% 44%}.rail-nav{display:flex;gap:17px;overflow:auto;scrollbar-width:none;padding:5px 24px 10px;position:relative}.rail-item{display:flex;align-items:center;flex-direction:column;flex-shrink:0;width:66px;gap:9px;position:relative;padding-bottom:14px;font-size:12px;white-space:nowrap;color:#747474}.category-photo{display:block;width:58px;height:58px;border-radius:50%;padding:5px;background:#fff;transition:transform .35s var(--ease),box-shadow .3s}.category-photo img{border-radius:50%}.rail-item.active{color:#222}.rail-item.active .category-photo{transform:translateY(-3px);box-shadow:0 5px 10px #0000000a}.rail-item:after{content:'';position:absolute;bottom:1px;left:20px;width:26px;height:5px;border-top:2px solid #222;border-radius:50%;opacity:0;transform:scaleX(.4);transition:.3s var(--ease)}.rail-item.active:after{opacity:1;transform:scaleX(1)}.category-band.expanded .rail-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:16px 4px}.category-band.expanded .rail-item{width:100%}.category-band.expanded:before{height:100%;border-radius:35px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:20px 0 18px}.panel-heading h2{font-size:19px;font-weight:500;letter-spacing:-.5px;margin:0 0 3px}.panel-heading #panel-count{font-size:11px;color:#999}#panel-title:focus{outline:0}.menu-label{font-size:9px;letter-spacing:1.3px;color:#999;display:flex;align-items:center;gap:8px}.menu-label svg{width:18px}.search-hint{font-size:12px;color:#666;margin:0 0 16px}.menu-content-current{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.menu-item{min-width:0;border-radius:27px;background:#fff;padding:10px 10px 12px;box-shadow:0 5px 20px #00000002;overflow:hidden}.item-open{width:100%;display:flex;flex-direction:column;align-items:flex-start;text-align:left}.item-photo{display:block;width:100%;aspect-ratio:1;border-radius:20px;overflow:hidden;background:#f4f4f4}.item-photo img{transition:transform .6s var(--ease)}.item-name{font-size:15px;font-weight:500;line-height:1.25;margin:13px 3px 3px;letter-spacing:-.2px}.item-category{font-size:11px;color:#999;margin:0 3px}.item-bottom{display:flex;align-items:center;justify-content:space-between;gap:3px;margin:9px 0 0 3px}.item-price{font-size:21px;font-weight:500;letter-spacing:-.8px;white-space:nowrap}.item-price small{font-size:9px;font-weight:400;color:#999;letter-spacing:0}.quick-add{flex-shrink:0;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#f7f7f7}.quick-add svg{width:17px;height:17px}.quick-add.in-cart{background:#222;color:#fff}.quick-add.in-cart span{display:none}.panel-note{text-align:center;line-height:1.8;margin:28px 0 0;font-size:13px;color:#777}.panel-note span{font-size:10px;color:#aaa}.bottom-nav{position:absolute;z-index:5;bottom:calc(18px + env(safe-area-inset-bottom));left:24px;right:24px;padding:6px;display:flex;align-items:center;gap:4px;border-radius:42px;background:#242424;box-shadow:0 10px 35px #0002}.bottom-nav button{position:relative;display:flex;align-items:center;justify-content:center;gap:9px;flex:1;min-width:0;height:55px;color:#9a9a9a;border-radius:32px;background:#2b2b2b;transition:flex .35s var(--ease),background .3s,color .3s}.bottom-nav button span{display:none;font-size:14px;font-weight:500}.bottom-nav button.active{flex:1.65;color:#222;background:white}.bottom-nav button.active span{display:block}.bottom-nav button.active svg{fill:#222;color:#222;width:19px}.bottom-nav button.active[data-nav=favorites] svg{fill:none}.bottom-nav i{position:absolute;right:10px;top:4px;min-width:15px;height:15px;border-radius:10px;background:#fff;color:#222;font-style:normal;font-size:9px;display:grid;place-items:center}.empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:45px 15px;color:#888;font-size:14px;line-height:1.6}.empty strong{font-size:20px;color:#222;font-weight:500}.empty svg{width:35px;height:35px}
/* Full-height browser sheets share the menu's restrained palette. */
dialog{padding:0;border:0;margin:auto;width:min(100%,480px);max-width:480px;max-height:100dvh;background:#fafafa;color:#222;overflow-x:hidden}dialog::backdrop{background:#0005;backdrop-filter:blur(5px)}body:has(dialog[open]) .app-shell{pointer-events:none}dialog[open]{animation:sheet-in .36s var(--ease) both}dialog.closing{animation:sheet-out .2s ease both}.product-dialog,.cart-dialog,.more-dialog{height:100dvh;max-height:100dvh;overscroll-behavior:contain}.round-button,.pill-button{display:inline-flex;justify-content:center;align-items:center;gap:6px;min-width:44px;height:44px;border-radius:25px;background:#fff}.pill-button{padding:0 14px;font-size:12px}.round-button svg{width:20px;height:20px}.detail-stage{position:relative;padding:88px 0 22px;overflow:hidden;background:#f5f5f5}.product-top{position:absolute;left:20px;right:20px;top:calc(22px + env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;gap:12px}.product-top>span{font-size:18px;font-weight:500;text-align:center;letter-spacing:-.4px}.product-top .round-button{flex-shrink:0}.detail-image{width:65%;max-width:290px;aspect-ratio:1;margin:4px auto 0;border-radius:50%;overflow:hidden;box-shadow:0 20px 24px -18px #0005}.product-dialog[open] .detail-image{animation:photo-settle .65s var(--ease) both}.hero-quantity{position:relative;display:flex;align-items:center;justify-content:space-between;margin:20px 0 2px}.hero-quantity>button{width:77px;height:95px;display:grid;place-items:center;background:#eaeaea;border-radius:0 65% 65% 0}.hero-quantity>button:last-child{border-radius:65% 0 0 65%}.hero-quantity>button svg{width:25px;height:25px}.hero-quantity>div{display:flex;flex-direction:column;align-items:center;gap:8px}#quantity{font-size:50px;line-height:1.05;font-weight:600;letter-spacing:-2px;font-variant-numeric:tabular-nums}#detail-price{min-width:120px;text-align:center;display:block;padding:12px 26px;border-radius:40px;background:#222;color:#fff;font-size:25px;font-weight:500;letter-spacing:-.7px}.detail-sheet{position:relative;z-index:1;margin-top:-1px;padding:21px 25px calc(24px + env(safe-area-inset-bottom));background:#fff;border-radius:40px 40px 0 0}.sheet-handle{display:block;width:44px;height:4px;background:#e9e9e9;border-radius:5px;margin:0 auto 22px}.detail-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.detail-category{color:#999;font-size:11px;margin:0 0 5px}.detail-title h2{font-size:28px;font-weight:500;letter-spacing:-.9px;margin:0;line-height:1.15}.favorite-button{background:#f7f7f7;flex-shrink:0;color:#888}.favorite-button.saved{color:#222}.favorite-button.saved svg{fill:#222}.detail-description{font-size:14px;line-height:1.6;color:#909090;margin:15px 0 20px}.primary-button{width:100%;min-height:60px;padding:16px 22px;background:#222;color:#fff;border-radius:36px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:16px;font-weight:500}.product-add{padding:6px 6px 6px 25px;justify-content:space-between;text-align:left;min-height:72px}.product-add>span:first-child{display:flex;flex-direction:column;gap:4px}.product-add small{font-size:11px;font-weight:400;color:#bdbdbd}.button-icon{width:72px;align-self:stretch;background:#fff;color:#222;border-radius:35px;display:grid;place-items:center}.button-icon svg{width:26px;height:26px}.primary-button.added{opacity:1}.sizes{display:grid;grid-template-columns:1fr 1fr;border:0;padding:0;gap:10px;margin:0 0 20px}.sizes legend{font-size:13px;margin-bottom:10px}.size-option{cursor:pointer;display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:12px;border:1px solid #eaeaea;border-radius:17px;font-size:12px}.size-option:has(input:checked){border-color:#222;background:#f8f8f8}.size-option input{accent-color:#222;margin:0}.size-option strong{font-size:12px;font-weight:500;margin-left:auto}.detail-allergy{font-size:11px;line-height:1.5;color:#999;margin:20px 0 16px}.food-info{border-top:1px solid var(--line)}.food-info summary{padding:18px 22px 18px 0;position:relative;cursor:pointer;list-style:none}.food-info summary::-webkit-details-marker{display:none}.food-info summary span{display:block;font-size:14px}.food-info summary small{display:block;color:#999;font-size:11px;margin-top:4px}.food-info summary:after{content:'+';position:absolute;right:4px;top:20px;font-size:22px}.food-info[open] summary:after{content:'−'}.food-info-body{padding-bottom:16px}.food-intro,.food-context,.food-section p{font-size:12px;line-height:1.65;color:#888}.food-section{padding:14px 0;border-top:1px solid var(--line)}.food-section h3{font-size:14px;font-weight:500;margin:0 0 8px}.food-values{display:grid;grid-template-columns:1fr 1fr;gap:10px 15px}.food-values>div{display:flex;justify-content:space-between;gap:5px;border-bottom:1px solid var(--line);padding-bottom:8px;font-size:11px}.food-values dt{color:#888}.food-values dd{margin:0}.food-source-list{display:grid;gap:8px;font-size:12px}.diet-label{display:inline-flex;margin-top:10px;font-size:11px;gap:5px;align-items:center}.diet-dot{width:8px;height:8px;background:#555;border-radius:50%}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
/* Cart, café information, and saved items. */
.cart-dialog[open]{display:flex;flex-direction:column}.cart-top{display:flex;align-items:center;gap:12px;padding:calc(23px + env(safe-area-inset-top)) 20px 24px;background:#fafafa}.cart-top h2{font-weight:500;font-size:23px;margin:0;letter-spacing:-.5px}.cart-top .pill-button{padding:0;width:44px;font-size:0}.cart-table{margin-left:auto;font-size:11px;color:#888}.cart-body{min-height:0;overflow:auto;display:flex;flex:1;flex-direction:column;background:#fff;border-radius:32px 32px 0 0;padding:14px 23px calc(28px + env(safe-area-inset-bottom))}.cart-row{display:grid;grid-template-columns:68px 1fr auto;gap:12px;padding:20px 0;border-bottom:1px solid var(--line);align-items:center}.cart-photo{width:68px;height:78px;border-radius:18px;overflow:hidden}.cart-copy h3{font-size:15px;font-weight:500;margin:0 0 5px}.cart-copy p{font-size:11px;color:#999;margin:0 0 8px}.cart-copy strong{font-size:17px;font-weight:500}.stepper{display:flex;align-items:center;gap:3px}.stepper button{width:34px;height:44px;display:grid;place-items:center;border-radius:20px;background:#f8f8f8}.stepper svg{width:14px;height:14px}.stepper>span{min-width:15px;text-align:center;font-size:13px}#cart-footer{margin-top:auto;padding-top:30px}.order-context{display:flex;align-items:center;gap:7px;color:#888;font-size:12px;margin-bottom:20px}.order-context svg{width:15px;height:15px}.total-line{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.total-line strong{font-size:28px;font-weight:500;letter-spacing:-1px}.cart-note{font-size:12px;text-align:center;color:#999;margin:18px 0 0}.more-dialog{padding:calc(25px + env(safe-area-inset-top)) 24px 30px}.more-top{display:flex;align-items:center;justify-content:space-between}.more-brand{font-size:16px;font-weight:500;letter-spacing:2px}.more-brand small{display:block;font-size:11px;font-weight:400;letter-spacing:0;color:#888;margin-top:4px}.more-close{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:white}.more-intro{margin:40px 0 28px}.more-intro>p{font-size:10px;letter-spacing:2px;color:#999}.more-intro h2{font-size:39px;line-height:1.12;font-weight:400;letter-spacing:-1.7px;margin:13px 0}.more-intro h2 span{color:#aaa}.more-intro>small{display:block;max-width:280px;font-size:13px;line-height:1.6;color:#999}.more-nav{display:flex;flex-direction:column;gap:9px}.more-nav button{width:100%;display:flex;align-items:center;gap:14px;padding:14px;border-radius:22px;text-align:left;background:white}.more-nav-icon{width:43px;height:43px;border-radius:50%;background:#f5f5f5;display:grid;place-items:center}.more-nav-copy{flex:1}.more-nav-copy strong{display:block;font-size:15px;font-weight:500}.more-nav-copy small{display:block;font-size:11px;color:#999;margin-top:5px}.more-nav-arrow{width:18px;color:#888}.contact{margin-top:32px}.contact>p{font-size:10px;letter-spacing:1.5px;color:#999;margin-bottom:18px}.contact-links{display:flex;gap:10px}.contact-link{flex:1;display:flex;flex-direction:column;align-items:center;gap:10px;padding:15px 8px;background:#fff;border-radius:20px;text-decoration:none;font-size:10px}.contact-address{font-size:12px;color:#888;display:block;margin-top:16px}.info-dialog{width:calc(100% - 40px);max-width:400px;border-radius:30px;padding:72px 28px 28px}.close-info{position:absolute;left:20px;top:18px}.info-dialog h2{font-size:28px;letter-spacing:-1px;font-weight:500;margin:14px 0}.info-dialog p{font-size:14px;line-height:1.65;color:#888}.info-table{padding:20px;background:#eee;border-radius:20px;font-size:13px}.info-table strong{display:block;margin-top:6px;font-size:20px;font-weight:500}.info-dialog .subtle{font-size:12px}.toast{position:fixed;z-index:50;inset:auto;margin:0;border:0;overflow:visible;left:50%;bottom:calc(106px + env(safe-area-inset-bottom));transform:translate(-50%,12px);max-width:calc(100% - 40px);width:max-content;padding:13px 20px;border-radius:25px;background:#222;color:#fff;font-size:12px;box-shadow:0 8px 25px #0002;opacity:0;visibility:hidden;pointer-events:none;transition:.25s var(--ease)}.toast.visible{opacity:1;visibility:visible;transform:translate(-50%,0)}
@keyframes sheet-in{from{opacity:0;transform:translateY(35px)}to{opacity:1;transform:none}}@keyframes sheet-out{to{opacity:0;transform:translateY(25px)}}@keyframes photo-settle{from{opacity:.4;transform:translateY(18px) scale(.94)}to{opacity:1;transform:none}}
/* Wide browsers preview the same 390 × 844 layout as a phone. Phones in landscape (short viewports) keep the full-size layout. */
@media(min-width:600px) and (min-height:600px){
 body{background:#e9e9e9}
 .app-shell{position:fixed;left:50%;top:50%;width:390px;max-width:390px;height:844px;margin:0;translate:-50% -50%;scale:var(--phone-scale,1);border-radius:32px;box-shadow:0 18px 60px #00000012;outline:1px solid #00000006}
 dialog.product-dialog,dialog.cart-dialog,dialog.more-dialog{width:390px;max-width:390px;height:844px;max-height:844px;border-radius:32px;scale:var(--phone-scale,1)}
 .info-dialog{width:350px;scale:var(--phone-scale,1)}
 .toast{bottom:calc(50% - 422px * var(--phone-scale,1) + 108px * var(--phone-scale,1));scale:var(--phone-scale,1)}
}
@media(max-width:374px){.panel{padding-left:18px;padding-right:18px}.menu-headline{font-size:29px;letter-spacing:-1.2px}.greeting>span{font-size:17px}.greeting small{font-size:10px}.category-band{margin-left:-18px;margin-right:-18px}.rail-nav{padding-left:18px;padding-right:18px}.menu-content-current{gap:10px}.menu-item{padding:8px 8px 10px;border-radius:22px}.item-name{font-size:14px}.item-price{font-size:19px}.item-price small{font-size:8px}.bottom-nav{left:18px;right:18px}.cart-row{grid-template-columns:55px 1fr;gap:10px}.cart-photo{width:55px;height:65px;grid-row:span 2}.cart-row .stepper{grid-column:2;justify-self:start}.detail-sheet{padding-left:20px;padding-right:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after,dialog::backdrop{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Clip the decorative arc without widening the page on narrow phones. */
.category-band{overflow:clip}.greeting small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.greeting .table-name{max-width:110px;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}
/* Circular category wheel: a gray annulus, with upright items orbiting its center. */
.cafe-header{gap:10px}.brand-mark{width:44px;height:44px;font-size:36px}.greeting>span{font-size:21px;font-weight:400;letter-spacing:-.5px}.greeting small{font-size:12px;gap:4px;margin-top:4px}.header-info,.cart-fab{width:40px;height:44px;flex-shrink:0;display:grid;place-items:center;background:transparent}.header-info svg,.cart-fab svg{width:20px;height:20px}.menu-headline{font-size:32px;letter-spacing:-1px;margin:25px 0 24px}.menu-search{height:49px}.filter-button{height:49px;width:49px}.category-band{--wheel-radius:273px;position:relative;height:205px;margin:28px -24px 0;padding:0;overflow:clip;isolation:isolate}.category-band:before{content:'';position:absolute;left:50%;top:0;translate:-50% 0;width:calc(var(--wheel-radius)*2 + 88px);height:calc(var(--wheel-radius)*2 + 88px);border:112px solid #f1f1f1;border-radius:50%;background:transparent;z-index:-1;pointer-events:none}.rail-nav{display:block;position:relative;width:100%;height:100%;padding:0;overflow:visible;touch-action:pan-y;user-select:none;cursor:grab}.rail-item{position:absolute;left:50%;top:18px;margin:0 0 0 -43px;display:flex;flex-direction:column;align-items:center;gap:9px;width:86px;height:105px;padding:0 0 18px;transform:translate3d(var(--wheel-x,0),var(--wheel-y,0),0);opacity:var(--wheel-opacity,1);font-size:13px;color:#333;transition:color .2s;will-change:transform}.rail-item:active{transform:translate3d(var(--wheel-x,0),var(--wheel-y,0),0)}.category-photo{width:59px;height:59px;background:#fff;border-radius:50%;padding:0;display:grid;place-items:center;box-shadow:none;transition:none}.rail-item.active .category-photo{transform:none;box-shadow:none}.category-symbol{font-family:'Apple Color Emoji','Segoe UI Emoji',sans-serif;font-size:33px;line-height:1;display:block}.category-feast{position:relative;display:block;width:48px;height:43px}.category-feast i{position:absolute;font-style:normal;font-size:26px;line-height:1}.category-feast i:nth-child(1){left:1px;top:0;rotate:-15deg;font-size:22px}.category-feast i:nth-child(2){left:6px;top:15px;z-index:1}.category-feast i:nth-child(3){right:-1px;top:4px;font-size:22px;rotate:15deg}.rail-item:after{left:26px;bottom:1px;width:34px;height:7px;border-top:2px solid #222}.rail-item.active{font-weight:500}.rail-item .category-name{white-space:nowrap}.category-band.dragging .rail-nav,.category-band.dragging .rail-item{cursor:grabbing}.category-band.expanded{height:auto;min-height:230px;padding:16px 12px;margin-bottom:20px}.category-band.expanded:before{width:100%;height:100%;border:0;background:#f1f1f1;border-radius:28px}.category-band.expanded .rail-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 0;cursor:auto}.category-band.expanded .rail-item{position:relative;left:auto;top:auto;margin:0;width:100%;height:100px;transform:none!important;opacity:1;will-change:auto;font-size:11px}.category-band.expanded .rail-item:after{left:calc(50% - 17px)}.category-band.expanded .category-photo{width:53px;height:53px}.panel-heading{position:relative;z-index:1;margin:-15px 0 18px}.menu-screen[data-category=all] .panel-heading{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0}.menu-label{display:none}#menu-list{position:relative;z-index:1;margin-top:-12px}.menu-screen[data-category=all] #menu-list{margin-top:-27px}.search-hint{position:relative;z-index:1}.menu-item{border-radius:27px}
@media(max-width:374px){.category-band{margin-left:-18px;margin-right:-18px;height:193px}.menu-headline{font-size:28px;letter-spacing:-1px}.greeting>span{font-size:19px}.greeting small{font-size:10px}.cafe-header{gap:8px}.header-info,.cart-fab{width:34px}.rail-item{font-size:11px}.category-photo{width:53px;height:53px}.category-symbol{font-size:29px}}
@media(prefers-reduced-motion:reduce){.rail-item{will-change:auto}}

/* Keep the menu genuinely edge-to-edge on phones, with compact short-screen spacing. */
.app-shell{container-type:size}
@media(max-width:599px){
 .app-shell{max-width:100%;height:100dvh;border-radius:0}
 .product-dialog,.cart-dialog,.more-dialog{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0}
}
.panel{padding-top:calc(23px + env(safe-area-inset-top))}
.menu-headline{margin-top:22px;margin-bottom:20px}
.category-band{margin-top:22px}
.rail-item:after{border:0;border-top:2px solid #222;background:transparent}
@container (max-height:740px){
 .panel{padding-top:calc(16px + env(safe-area-inset-top))}
 .menu-headline{margin-top:17px;margin-bottom:16px;font-size:29px}
 .menu-search,.filter-button{height:44px}.filter-button{width:44px}
 .category-band{margin-top:16px;height:181px}
 .category-photo{width:50px;height:50px}.category-symbol{font-size:28px}
 .category-feast{scale:.85}.rail-item{gap:7px;height:94px;font-size:11px}
 .menu-content-current{gap:12px}.menu-item{padding:8px 9px 10px;border-radius:23px}
 .item-photo{aspect-ratio:1.22}.item-name{margin-top:10px;font-size:14px}
 .item-bottom{margin-top:5px}.quick-add{width:34px;height:34px}
 .bottom-nav{bottom:calc(12px + env(safe-area-inset-bottom));padding:5px}
 .bottom-nav button{height:49px}
}
@container (max-height:600px){
 .panel{padding-top:12px}.menu-headline{font-size:27px;margin:12px 0}
 .category-band{height:166px;margin-top:12px}
 .category-photo{width:44px;height:44px}.category-symbol{font-size:25px}
 .rail-item{gap:6px;height:85px;font-size:10px}.category-feast{scale:.75}
 .item-photo{aspect-ratio:1.5}.item-name{font-size:13px}.item-price{font-size:18px}
}
/* Isolated stock food on white, matching the reference's clean product presentation. */
.item-photo{background:transparent;border-radius:0;overflow:visible;padding:10px 3px}
.item-photo img{object-fit:contain;filter:drop-shadow(0 9px 7px #00000024) drop-shadow(0 2px 2px #0000000d)}
@media(hover:hover){.item-open:hover img{transform:scale(1.04)}}
.detail-image{background:transparent;border-radius:0;box-shadow:none;overflow:visible;width:76%;max-width:305px}
.detail-image img{object-fit:contain;filter:drop-shadow(0 18px 12px #00000026) drop-shadow(0 3px 3px #00000010)}
.cart-photo{background:#fff}.cart-photo img{object-fit:contain;padding:3px}
.category-photo>img{object-fit:contain;border-radius:0;padding:9px;pointer-events:none}
.category-feast img{position:absolute;object-fit:contain;pointer-events:none}
.category-feast img:nth-child(1){width:28px;height:29px;left:0;top:0;rotate:-12deg}
.category-feast img:nth-child(2){width:37px;height:26px;left:1px;top:16px;z-index:1}
.category-feast img:nth-child(3){width:17px;height:35px;right:0;top:1px;rotate:12deg}
.category-photo{position:relative;flex-shrink:0}
.category-photo>img{position:absolute;inset:0;width:100%;height:100%;min-height:0}
.item-photo{position:relative;flex-shrink:0}
.item-photo>img{position:absolute;inset:10px 3px;width:calc(100% - 6px);height:calc(100% - 20px);min-height:0}
.detail-image{position:relative}.detail-image>img{position:absolute;inset:0;width:100%;height:100%;min-height:0}
/* Frosted glass navigation, with readable controls over scrolling food photos. */
.bottom-nav{
 background:linear-gradient(145deg,#ffffff85,#ffffff38);
 -webkit-backdrop-filter:blur(22px) saturate(160%);
 backdrop-filter:blur(22px) saturate(160%);
 box-shadow:inset 0 0 0 1px #ffffffb3,inset 0 2px 1px #ffffffcc,0 8px 28px #2020201a,0 1px 4px #2020200d;
}
.bottom-nav button{color:#595959;background:#ffffff1f}
.bottom-nav button.active{color:#222;background:#ffffffe0;box-shadow:inset 0 0 0 1px #ffffffd9,0 3px 10px #0000000a}
.bottom-nav button:focus-visible{outline-color:#444;outline-offset:0}
.bottom-nav i{background:#303030;color:#fff;box-shadow:0 0 0 2px #ffffffb3}
@media(hover:hover){.bottom-nav button:not(.active):hover{background:#ffffff7a;color:#222}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.bottom-nav{background:#f2f2f2f5}}
@media(prefers-reduced-transparency:reduce){.bottom-nav{background:#f2f2f2;-webkit-backdrop-filter:none;backdrop-filter:none}}

/* Keep the ring's border inside its measured diameter, matching the item orbit. */
.category-band::before{box-sizing:border-box}
.category-photo{overflow:hidden;isolation:isolate;contain:paint}
.rail-item .category-name{max-width:100%;text-align:center}

/* A shallow circular ribbon with space for all five categories and their labels. */
.category-band{--wheel-thickness:114;--wheel-item-top:13px;--wheel-item-width:78px;height:187px;height:calc(132px + 14cqw);margin-top:24px;margin-bottom:6px}
.category-band::before{display:none}
.wheel-ribbon{position:absolute;inset:0;width:100%;height:100%;fill:#f0f0f0;stroke:none;pointer-events:none;z-index:-1;overflow:hidden}
.rail-item{width:var(--wheel-item-width);margin-left:calc(var(--wheel-item-width) / -2);top:var(--wheel-item-top);height:101px;font-size:13px;gap:6px;padding-bottom:14px}
.rail-item::after{left:calc(50% - 17px)}
.rail-item .category-name{line-height:18px;font-weight:400}
.category-photo{width:64px;height:64px}
.category-feast{scale:1.1}
.rail-item.active .category-name{font-weight:500}
.rail-item:focus-visible{outline-offset:-2px;border-radius:20px}
.panel-heading{margin:0 0 14px}
#menu-list,.menu-screen[data-category=all] #menu-list{margin-top:0}
.category-band.expanded{min-height:0;margin-bottom:20px;border-radius:26px;background:#f0f0f0}
.category-band.expanded .wheel-ribbon{display:none}
.category-band.expanded .rail-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.category-band.expanded .rail-item{height:96px;font-size:12px}
@container (max-height:740px){
 .category-band{--wheel-thickness:100;--wheel-item-top:9px;height:168px;height:calc(113px + 14cqw);margin-top:18px;margin-bottom:6px}
 .rail-item{height:91px;font-size:12px;gap:5px}
 .rail-item .category-name{line-height:16px}
 .category-photo{width:56px;height:56px}.category-feast{scale:.96}
}
@container (max-height:600px){
 .category-band{--wheel-thickness:94;--wheel-item-top:9px;height:calc(106px + 14cqw);margin-top:14px;margin-bottom:4px}
 .rail-item{height:84px;font-size:11px;gap:4px}
 .category-photo{width:50px;height:50px}.category-feast{scale:.86}
}

/* Keep food photography readable on short screens. */
@container (max-height:740px){.item-photo{aspect-ratio:1.3}}
@container (max-height:600px){.item-photo{aspect-ratio:1.8}}

/* Mobile audit fixes. */
/* 16px text stops iOS Safari zooming the page on focus; the input fills the pill so any tap focuses it. */
.menu-search input{align-self:stretch;font-size:16px}
.menu-search input::placeholder{font-size:13px}
/* 44px touch targets without changing the visible controls. */
.quick-add,.stepper button{position:relative}
.quick-add::before,.stepper button::before{content:'';position:absolute;inset:-5px}
/* The expanded category grid aligns with the content instead of bleeding past the screen edges. */
.category-band.expanded{margin-left:0;margin-right:0}
@container (max-height:600px){.panel{padding-top:calc(12px + env(safe-area-inset-top))}}
/* Very narrow screens, such as folding-phone cover displays. */
@media(max-width:319px){.menu-headline{font-size:25px;letter-spacing:-.8px}.rail-item{font-size:10px}}

/* Let the curved background continue behind the card corners; only the rotating track clips horizontally. */
.category-band{overflow:visible}
.wheel-ribbon{overflow:visible}
.rail-nav{overflow:clip}
.category-band.expanded .rail-nav{overflow:visible}

/* Gentle depth follows the food cutouts, rather than a rectangular image box. */
.category-photo>img,.category-feast img{filter:drop-shadow(0 3px 2px #00000016)}
.category-band.expanded .category-photo{width:59px;height:59px}
.category-band.expanded .rail-item{height:104px}

/* Product detail composition follows the supplied image: open hero, sculpted sides,
   large quantity and price, then a white information sheet and bottom action. */
.product-dialog{container-type:size;background:#fafafa;scrollbar-width:none}
.product-dialog::-webkit-scrollbar{display:none}
#product-content{min-height:100%;display:flex;flex-direction:column;background:#fafafa}
.detail-stage{height:62vh;height:62cqh;min-height:350px;max-height:600px;flex-shrink:0;display:flex;flex-direction:column;padding:calc(22px + env(safe-area-inset-top)) 0 36px;background:#fafafa;isolation:isolate}
.product-top{position:relative;inset:auto;flex-shrink:0;height:44px;margin:0 22px;gap:10px}
.product-heading{flex:1;color:#8b8b8b;font-size:19px!important;font-weight:400!important;text-align:left!important}
.product-heading strong{font-weight:500;color:#222}
.product-top .round-button{width:44px;background:#fff}
#product-info{background:transparent;color:#858585}
.detail-landscape{position:absolute;inset:auto 0 0;width:100%;height:230px;z-index:-1;fill:#f0f0f0;stroke:none}
.detail-image{flex:1;min-height:0;width:82%;max-width:330px;aspect-ratio:auto;margin:10px auto 0}
.detail-image>img{object-fit:contain;filter:drop-shadow(0 15px 10px #00000022) drop-shadow(0 3px 2px #0000000d)}
.hero-quantity{position:relative;flex:0 0 135px;height:135px;margin:0;align-items:center}
.hero-quantity>button{width:70px;height:120px;background:#ececec;border-radius:0 65% 65% 0 / 0 48% 52% 0}
.hero-quantity>button:last-child{border-radius:65% 0 0 65% / 48% 0 0 52%}
.hero-quantity>button:disabled{opacity:1;color:#bcbcbc}
.hero-quantity>div{gap:10px}
#quantity{font-size:56px;font-weight:600;line-height:1;letter-spacing:-2px}
#detail-price{min-width:132px;padding:13px 26px;font-size:26px;font-weight:600;line-height:1.2;background:#222;border-radius:40px}
.detail-sheet{flex:1;z-index:1;margin-top:-20px;padding:16px 24px 8px;border-radius:38px 38px 0 0;background:#fff}
.sheet-handle{width:42px;height:3px;background:#dedede;margin:0 auto 19px}
.detail-title{gap:12px;min-height:44px}
.detail-title h2{font-size:25px;font-weight:500;letter-spacing:-.7px;line-height:1.2;margin:0}
.favorite-button{width:44px;height:44px;background:#f7f7f7;color:#939393}
.detail-description-row{margin:11px 0 10px;color:#909090;font-size:14px;line-height:1.55}
.detail-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;line-height:1.55;margin:0}
.detail-description.expanded{display:block}
#detail-read-more{font-size:14px;line-height:1.55;color:#333;min-height:30px;text-align:left}
.detail-sheet .sizes{margin:12px 0 8px;gap:8px}
.detail-sheet .sizes legend{font-size:12px;margin-bottom:7px;color:#777}
.detail-sheet .size-option{padding:10px;border-radius:15px}
.detail-footer{position:static;flex-shrink:0;padding:14px 24px calc(24px + env(safe-area-inset-bottom));background:#fff}
.product-add{height:78px;min-height:78px;padding:5px 5px 5px 25px;border-radius:44px;font-size:18px;font-weight:500;background:#222}
.product-add .button-icon{width:88px;border-radius:38px;background:#fff}
.product-add .button-icon svg{width:28px;height:28px}
.product-add small{font-size:11px;color:#b9b9b9}
.product-dialog.has-variants .detail-stage{height:55cqh;min-height:310px}
@container (max-height:700px){
 .detail-stage{height:57cqh;min-height:300px;padding-top:calc(14px + env(safe-area-inset-top));padding-bottom:28px}
 .product-dialog.has-variants .detail-stage{height:50cqh;min-height:270px}
 .product-top{margin:0 18px}.product-heading{font-size:17px!important}
 .hero-quantity{height:110px;flex-basis:110px}.hero-quantity>button{width:60px;height:100px}
 #quantity{font-size:46px}#detail-price{font-size:23px;min-width:118px;padding:10px 22px}
 .hero-quantity>div{gap:7px}.detail-landscape{height:190px}
 .detail-sheet{padding:12px 20px 4px;border-radius:30px 30px 0 0}
 .sheet-handle{margin-bottom:11px}.detail-title h2{font-size:23px}
 .detail-description-row{margin:7px 0}.detail-description{-webkit-line-clamp:2;font-size:13px}
 .detail-footer{padding:10px 20px calc(15px + env(safe-area-inset-bottom))}
 .product-add{height:66px;min-height:66px;font-size:16px}.product-add .button-icon{width:76px}
}
/* The background supplies the side contours without overlapping button shapes. */
.hero-quantity>button{background:transparent}
@container (min-height:701px){
 .detail-stage{height:66cqh}
 .product-dialog.has-variants .detail-stage{height:58cqh}
}
.detail-description:not(.expanded){display:inline}
#detail-read-more{display:inline;margin-left:3px}

/* More is a contextual café sheet, using the menu's circles, type and pill action. */
.more-dialog{padding:0;background:transparent;overflow:hidden;container-type:size;box-shadow:none}
.more-dialog[open]{display:flex;flex-direction:column;justify-content:flex-end}
.more-sheet{flex-shrink:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:13px 24px calc(24px + env(safe-area-inset-bottom));background:#fafafa;border-radius:34px 34px 0 0;box-shadow:0 -12px 40px #00000006;scrollbar-width:none}
.more-handle{display:block;width:38px;height:3px;border-radius:5px;background:#dedede;margin:0 auto 22px}
.more-top{display:flex;align-items:center;gap:12px}
.more-identity{flex:1;min-width:0}
.more-identity h2{font-size:22px;line-height:1.15;letter-spacing:-.6px;font-weight:500;margin:0 0 5px}
.more-identity .table-name{font-size:12px;color:#888}
.more-close{flex-shrink:0;width:40px;height:40px;background:white;color:#666}
.more-close svg{width:20px;height:20px}
.more-nav{display:flex;flex-direction:column;gap:0;margin-top:23px}
.more-nav button{min-height:80px;padding:16px 0;gap:14px;border-radius:0;background:transparent;border-top:1px solid #e9e9e9}
.more-nav-icon{width:44px;height:44px;background:#f0f0f0}
.more-nav-icon svg{width:23px;height:23px;stroke-width:1.5}
.more-nav-copy strong{font-size:17px;font-weight:400;letter-spacing:-.2px}
.more-nav-copy small{font-size:12px;margin-top:4px;color:#909090}
.more-nav-arrow{width:18px;margin-right:4px;color:#888}
.more-nav button:hover .more-nav-icon{background:#e9e9e9}
.more-return{width:100%;height:68px;margin-top:18px;padding:5px 5px 5px 24px;border-radius:38px;background:#222;color:white;display:flex;align-items:center;justify-content:space-between;font-size:16px;font-weight:500}
.more-return-icon{width:76px;align-self:stretch;border-radius:33px;background:#fff;color:#222;display:grid;place-items:center}
.more-return-icon svg{width:25px;height:25px}
.more-sheet .contact{margin:10px 0 0;padding:16px 0 0;border-top:1px solid #e9e9e9}
.more-sheet .contact-links{gap:0}
.more-sheet .contact-link{background:transparent;border-radius:0;padding:10px 4px;font-size:11px}
.more-sheet .contact-address{margin-top:10px}
@container (max-height:620px){
 .more-sheet{padding:11px 20px calc(18px + env(safe-area-inset-bottom))}
 .more-handle{margin-bottom:18px}.more-nav{margin-top:18px}
 .more-nav button{min-height:72px;padding:12px 0}
 .more-return{height:62px;margin-top:14px}
}

/* Fade the sheet as one surface; keep its action bar stationary in document flow. */
.product-dialog[open]{animation:product-reveal .38s ease both}
.product-dialog[open] .detail-image{animation:food-reveal .6s var(--ease) both}
.product-dialog.closing{animation:fade-out .24s ease both}
@keyframes product-reveal{from{opacity:0}to{opacity:1}}
@keyframes fade-out{to{opacity:0}}

/* Pointer/touch users do not need the keyboard ring on an auto-focused dialog button. */
html[data-input-mode="pointer"] :is(button,a,summary):focus{outline:none}

/* Device compatibility. Older Android WebViews (often used by QR scanner apps) and iOS before 15.4
   lack dynamic viewport units; without a height the menu could not scroll at all. */
@supports not (height:100dvh){
 @media(max-width:599px),(max-height:599px){
  .app-shell{height:100vh}
  dialog{max-height:100vh}
  .product-dialog,.cart-dialog,.more-dialog{height:100vh;max-height:100vh}
 }
}
/* iOS 15 lacks overflow:clip; hidden keeps rotating categories from widening the page. */
@supports not (overflow:clip){.rail-nav{overflow:hidden}}
/* No automatic text inflation in landscape; no text selection or callout while swiping the wheel. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.rail-nav{-webkit-user-select:none;-webkit-touch-callout:none}
dialog::backdrop{-webkit-backdrop-filter:blur(5px)}

/* Small, deliberate motion that does not shift the detail controls. */
dialog[open]::backdrop{animation:backdrop-reveal .38s ease both}
dialog.closing::backdrop{animation:fade-out .24s ease both}
.product-dialog[open] .detail-title,.product-dialog[open] .detail-description-row{animation:product-reveal .45s .08s ease both}
.product-add.added .button-icon{animation:cart-confirm .5s var(--ease) both}
.product-add.added .button-icon path{stroke-dasharray:24;animation:check-draw .36s .1s ease both}
.product-add.added>span:first-child{animation:product-reveal .22s ease both}
@keyframes food-reveal{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}
@keyframes backdrop-reveal{from{opacity:0}to{opacity:1}}
@keyframes cart-confirm{0%{transform:scale(.86)}55%{transform:scale(1.06)}100%{transform:scale(1)}}
@keyframes check-draw{from{stroke-dashoffset:24}to{stroke-dashoffset:0}}

/* Own touches inside the wheel: browser scrolling must not cancel curved thumb drags.
   Page scrolling remains native outside this dedicated control. */
.category-band:not(.expanded) .rail-nav,
.category-band:not(.expanded) .rail-item{touch-action:none}
.rail-item{will-change:transform,opacity;backface-visibility:hidden}
.category-band.expanded .rail-item{opacity:1!important;will-change:auto}
.rail-item img{-webkit-user-drag:none;pointer-events:none}

/* Keep browsing available before JavaScript loads or when a request fails. */
.menu-load-notice{margin:0 0 16px;padding:14px;border-radius:16px;background:#eee;font-size:14px;line-height:1.5}
.menu-load-notice button{display:block;min-height:44px;margin-top:8px;text-decoration:underline;font-weight:500}
html:not([data-menu-ready="true"]) :is(.item-open,.quick-add,.bottom-nav button,.cafe-header button,.filter-button){pointer-events:none}
/* A 16px input avoids Safari zooming and displacing the menu when search receives focus. */
.menu-search input{font-size:16px}
/* Landscape phones fill the viewport and keep the action available while details scroll. */
@media(max-height:599px){
 .app-shell{width:100%;max-width:100%;height:100vh;height:100dvh;border-radius:0}
 .product-dialog,.cart-dialog,.more-dialog{width:100%;max-width:100%;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;border-radius:0}
 .product-dialog .detail-footer{position:sticky;bottom:0;z-index:3}
 .product-dialog .detail-stage,.product-dialog.has-variants .detail-stage{height:240px;min-height:240px;padding-top:12px;padding-bottom:12px}
 .product-dialog .hero-quantity{height:90px;flex-basis:90px}
 .product-dialog .hero-quantity>button{height:80px}
 .product-dialog #quantity{font-size:36px}
 .product-dialog .detail-image{max-width:180px;margin-top:4px}
}
/* Browsers without container queries still get usable short-screen spacing. */
@supports not (container-type:size){
 @media(max-width:599px) and (max-height:740px){
  .panel{padding-top:calc(16px + env(safe-area-inset-top))}
  .menu-headline{font-size:28px;margin:16px 0}
  .category-band{height:168px;margin-top:16px}
  .item-photo{aspect-ratio:1.22}
  .detail-stage,.product-dialog.has-variants .detail-stage{height:50vh;min-height:270px}
  .detail-footer{position:sticky;bottom:0;z-index:3}
 }
}
/* Older scanner browsers do not supply native dialog styling. */
@supports not (selector(dialog:modal)){
 dialog[open]{position:fixed;inset:0;z-index:20}
}

/* Saanjh integration: live table ordering and the complete restaurant catalogue. */
.brand-mark{flex-shrink:0;width:45px;height:45px;border-radius:50%;display:grid;place-items:center;background:#eee}
.brand-mark .brand-logo{width:39px;font-size:13px}
.greeting .greeting-logo{width:59px;vertical-align:-1px;flex-shrink:0}
.greeting small{display:flex;align-items:center;gap:5px}
.table-notice{padding:13px 15px;border-radius:17px;background:#eee;font-size:12px;line-height:1.55;margin-top:18px}
.order-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:14px 16px;margin:17px 0 0;border-radius:19px;background:#e8eee7;text-align:left;font-size:12px;line-height:1.5}
.order-banner svg{width:18px;height:18px;flex-shrink:0}.order-banner.cancelled{background:#fbece8;color:#862e22}
[hidden]{display:none!important}
.food-placeholder{position:absolute;inset:0;display:grid;place-items:center;font-family:'Apple Color Emoji','Segoe UI Emoji',sans-serif;font-size:68px;line-height:1;background:radial-gradient(ellipse at 50% 60%,#eee9 0,transparent 65%);pointer-events:none}
.item-photo:has(img:not([hidden])) .food-placeholder,.detail-image:has(img:not([hidden])) .food-placeholder,.cart-photo:has(img:not([hidden])) .food-placeholder{visibility:hidden}
.detail-image .food-placeholder{font-size:150px}.cart-photo{position:relative}.cart-photo .food-placeholder{font-size:36px}
.item-name{overflow-wrap:anywhere;line-height:1.22;min-height:2.44em}.item-category{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;display:block}
.item-bottom{gap:4px}.item-price{font-size:22px;white-space:nowrap}.quick-add.in-cart{max-width:87px;font-size:10px}.sold-out{font-size:11px;color:#888}.unavailable .item-photo{opacity:.45}
.rail-item .category-name{white-space:normal;font-size:11px;line-height:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:28px;width:100%}
.category-band.expanded{max-height:50dvh;overflow:auto;overscroll-behavior:contain}
.category-band.expanded .rail-nav{height:auto;overflow:visible}.category-band.expanded .rail-item{font-size:11px}
.category-photo .category-symbol{font-size:32px}
.dish-request,.kitchen-notes{display:block;font-size:13px;color:#777;line-height:1.5;margin:18px 0}
.dish-request textarea,.kitchen-notes textarea{display:block;resize:vertical;min-height:68px;width:100%;margin-top:8px;padding:13px 15px;border:0;border-radius:17px;background:#f5f5f5;font:inherit;font-size:16px;color:#222;outline-offset:3px}
.dish-request textarea::placeholder,.kitchen-notes textarea::placeholder{font-size:12px}
.food-facts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}.food-facts-grid>div{padding:13px;border-radius:15px;background:#f5f5f5}.food-facts-grid span{display:block;font-size:11px;color:#777}.food-facts-grid strong{display:block;margin-top:4px;font-size:14px;font-weight:500}
#detail-diet{font-size:12px;font-weight:500;color:#416443}.detail-allergy{font-size:12px;color:#777;line-height:1.6}
.send-status{font-size:13px;line-height:1.6;color:#754a22;margin:12px 0}
.receipt{padding:21px 0;border-bottom:1px solid #eee}.receipt header{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:22px}.receipt h3{font-size:21px;font-weight:500;margin:0 0 5px}.receipt small{font-size:11px;color:#888}.order-status{font-size:10px;max-width:125px;line-height:1.6;background:#edf2ea;color:#3c5d36;padding:7px 10px;border-radius:12px}.receipt.cancelled .order-status{background:#fbece8;color:#862e22}.cancellation-message{padding:13px;border-radius:15px;background:#fbece8;color:#862e22;font-size:13px;line-height:1.6}.receipt-line{display:flex;align-items:start;justify-content:space-between;gap:18px;margin:14px 0;font-size:13px;line-height:1.5}.receipt-line strong{white-space:nowrap;font-weight:500}.receipt-total{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:22px;font-size:14px}.receipt-total strong{font-size:24px;font-weight:500}.receipt-note,.receipt-notes,.orders-sync{font-size:12px;line-height:1.6;color:#777}.receipt-notes{white-space:pre-line}.orders-sync{margin:8px 0}
.more-nav{gap:7px}.more-nav button{padding:10px 12px}.more-nav-copy small{line-height:1.5}.more-nav-icon{width:36px;height:36px;flex-shrink:0}.more-nav-copy strong{font-size:14px}
.initial-menu section{padding:14px 0;border-bottom:1px solid #eee}.initial-menu h2{font-size:19px;font-weight:500}.fallback-line{display:flex;justify-content:space-between;gap:16px;padding:8px 0;font-size:13px}.fallback-line strong{white-space:nowrap;font-weight:500}.fallback-intro{font-size:13px;color:#777}.initial-menu{padding-bottom:25px}
#orders-dialog .cart-body{scrollbar-width:thin}.panel,.cart-body{scrollbar-width:thin}
@container(max-height:740px){.item-price{font-size:20px}.item-name{font-size:14px}.detail-image .food-placeholder{font-size:115px}.more-nav button{padding:8px 10px}.more-nav-copy small{font-size:10px}}
@media(max-width:374px){.greeting small{font-size:10px}.greeting .greeting-logo{width:47px}.item-price{font-size:19px}.item-photo .food-placeholder{font-size:56px}.rail-item .category-name{font-size:10px}.more-nav-copy strong{font-size:13px}}

/* Billing contact is collected only when the guest confirms their order. */
.billing-dialog{width:calc(100% - 32px);max-width:410px;max-height:calc(100dvh - 32px);border-radius:30px;padding:24px;background:#fff;overscroll-behavior:contain}
.billing-dialog form{display:flex;flex-direction:column;align-items:stretch}
.billing-dialog .pill-button{align-self:flex-start;background:#f5f5f5}
.billing-dialog .pill-button svg{width:18px;height:18px}
.billing-icon{display:grid;place-items:center;width:54px;height:54px;margin:24px 0 16px;border-radius:18px;background:#f5f5f5}
.billing-icon svg{width:25px;height:25px}
.billing-dialog h2{margin:0 0 24px;font-size:28px;line-height:1.18;font-weight:500;letter-spacing:-.7px}
.billing-dialog label{font-size:13px;margin-bottom:9px}
.billing-dialog input{box-sizing:border-box;width:100%;min-height:56px;padding:14px 16px;border:1px solid #ccc;border-radius:15px;background:#fff;color:#222;font:inherit;font-size:18px}
.billing-dialog input:focus{outline:2px solid #222;outline-offset:2px}
.billing-dialog input[aria-invalid="true"]{border-color:#b33226}
.billing-dialog p{margin:12px 0 24px;font-size:13px;line-height:1.6;color:#666}
.billing-dialog .billing-error{margin:-12px 0 20px;color:#b33226}
.billing-dialog .billing-error[hidden]{display:none}
.billing-dialog .primary-button{min-height:56px;font-size:15px}
.serving-suggestion{position:absolute;right:24px;top:75px;color:#888;font-size:10px}
.more-top .brand-mark{background:#eee}
.receipt-discount{color:#3c5d36}

/* Waiter identity stays visible while browsing a customer's table. */
.waiter-context{position:sticky;top:0;z-index:8;margin:18px -8px 12px;padding:14px;border:1px solid #dedbd3;border-radius:18px;background:#faf8f1;box-shadow:0 4px 14px #00000008;font-size:13px;overflow-wrap:anywhere}
.waiter-context>strong{display:block;font-weight:600;line-height:1.5}.waiter-context p{line-height:1.5}.waiter-table-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.waiter-table-controls label{font-size:12px}.waiter-table-controls select{min-height:42px;max-width:100%;padding:7px 9px;border:1px solid #ccc;border-radius:10px;background:white;font:inherit;color:#222;flex:1}.waiter-table-controls button,.waiter-context>button{min-height:42px;padding:8px 10px;border-radius:10px;background:#222;color:white;font-size:12px}.waiter-billing-context{font-size:13px;line-height:1.5;overflow-wrap:anywhere}.greeting .table-name{overflow-wrap:anywhere}.cart-top .table-name{max-width:45%;white-space:normal;overflow-wrap:anywhere}#waiter-next-receipt{flex:none;width:calc(100% - 40px);margin:8px 20px 20px;min-height:48px}

/* Structural wrappers have no layout box outside tablet mode. */
.menu-discovery,.detail-content{display:contents}

.billing-dialog .whatsapp-opt-in{display:flex;align-items:center;gap:10px;margin:14px 0;font-size:14px;line-height:1.5}.billing-dialog .whatsapp-opt-in input{width:18px;height:18px;min-height:18px;max-height:18px;padding:0;flex:0 0 18px;margin:0;accent-color:#222}

html[data-layout=tablet] .app-shell {
  height: var(--visible-height,100dvh);
}
html[data-layout=tablet] dialog {
  inset: var(--visible-top,0px) 0 auto;
  max-height: var(--visible-height,100dvh);
}
html[data-layout=tablet] .product-dialog,
html[data-layout=tablet] .cart-dialog,
html[data-layout=tablet] .more-dialog {
  height: auto;
  max-height: var(--visible-height,100dvh);
}
html[data-layout=tablet] .billing-dialog,
html[data-layout=tablet] .info-dialog {
  margin: 16px auto;
  max-height: calc(var(--visible-height,100dvh) - 32px);
  overflow-y: auto;
  scroll-padding-block: 24px;
}
html[data-layout=tablet] dialog :is(input, textarea, select) {
  scroll-margin-block: 24px;
}
html[data-layout=tablet] .cart-body {
  flex: 0 1 auto;
}
html[data-layout=tablet] .cart-body .empty {
  padding: 24px 8px;
  gap: 12px;
}
html[data-layout=tablet] .cart-copy {
  min-width: 0;
  overflow-wrap: anywhere;
}
html[data-layout=tablet] #cart-footer {
  margin-top: 0;
  padding-top: 16px;
}
html[data-layout=tablet] .cart-row {
  padding-block: 14px;
}
html[data-layout=tablet] .cart-body .kitchen-notes {
  margin: 0 0 14px;
}
html[data-layout=tablet] .kitchen-notes textarea {
  min-height: 60px;
}
html[data-layout=tablet] .cart-body .order-context {
  margin-bottom: 12px;
}
html[data-layout=tablet] .cart-body .total-line {
  margin-bottom: 12px;
  gap: 12px;
}
html[data-layout=tablet] .cart-body .cart-note {
  margin: 8px 0;
  line-height: 1.5;
}
html[data-layout=tablet] .cart-body .cart-note:last-child {
  margin: 12px 0 0;
}
html[data-layout=tablet] #send-status:empty {
  display: none;
}
html[data-layout=tablet] .product-dialog,
html[data-layout=tablet] .more-dialog {
  container-type: normal;
}
html[data-layout=tablet] #product-content {
  min-height: 0;
}
html[data-layout=tablet] .detail-content {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  width: 100%;
  min-width: 0;
  min-height: 0;
  background: #fff;
}
html[data-layout=tablet] .product-dialog .detail-stage,
html[data-layout=tablet] .product-dialog.has-variants .detail-stage {
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 16px 0;
}
html[data-layout=tablet] .product-dialog .detail-image {
  flex: none;
  width: 70%;
  max-width: 264px;
  min-height: 0;
  height: clamp(96px, calc(var(--visible-height,100dvh) * .22), 198px);
  margin-top: 8px;
}
html[data-layout=tablet] .product-dialog .hero-quantity {
  height: 104px;
  flex-basis: 104px;
}
html[data-layout=tablet] .product-dialog .hero-quantity > button {
  width: 60px;
  height: 80px;
}
html[data-layout=tablet] .product-dialog #quantity {
  font-size: 40px;
}
html[data-layout=tablet] .product-dialog #detail-price {
  font-size: 24px;
  padding: 10px 22px;
}
html[data-layout=tablet] .product-dialog .detail-sheet {
  flex: none;
  margin-top: 0;
  padding: 16px 20px 8px;
}
html[data-layout=tablet] .product-dialog .sheet-handle {
  display: none;
}
html[data-layout=tablet] .product-dialog .detail-description-row {
  margin-block: 10px;
}
html[data-layout=tablet] .product-dialog .dish-request {
  margin-block: 12px;
}
html[data-layout=tablet] .product-dialog .detail-footer {
  padding: 12px 20px calc(16px + env(safe-area-inset-bottom));
}
html[data-layout=tablet] .product-dialog .product-add {
  height: auto;
  min-height: 64px;
}
html[data-layout=tablet] .product-dialog .product-add .button-icon {
  min-height: 52px;
}
@media (min-width: 600px) {
  html[data-layout=tablet] {
    --menu-padding:clamp(16px,2.5vw,24px);
    --menu-gap:12px;
  }
  html[data-layout=tablet],
  html[data-layout=tablet] body {
    background: var(--paper);
  }
  html[data-layout=tablet] .app-shell {
    position: relative;
    inset: auto;
    translate: none;
    scale: 1;
    outline: 0;
    width: 100%;
    max-width: 1440px;
    margin-inline: auto;
    border-radius: 0;
    box-shadow: none;
  }
  html[data-layout=tablet] .panel {
    padding: calc(24px + env(safe-area-inset-top)) var(--menu-padding) calc(116px + env(safe-area-inset-bottom));
    scrollbar-width: thin;
    scroll-padding-block: 24px 112px;
  }
  html[data-layout=tablet] .cafe-header {
    gap: 16px;
    flex-wrap: wrap;
  }
  html[data-layout=tablet] .greeting {
    flex-basis: 180px;
  }
  html[data-layout=tablet] .greeting > span {
    font-size: 22px;
  }
  html[data-layout=tablet] .greeting small {
    font-size: 13px;
    white-space: normal;
    overflow: visible;
  }
  html[data-layout=tablet] .greeting .table-name {
    max-width: none;
    white-space: normal;
    overflow: visible;
  }
  html[data-layout=tablet] .menu-headline {
    font-size: clamp(30px, 3.5vw, 42px);
    line-height: 1.2;
    white-space: normal;
    margin: 20px 0 16px;
  }
  html[data-layout=tablet] .search-row {
    gap: 12px;
  }
  html[data-layout=tablet] .menu-search {
    height: 56px;
    max-width: none;
  }
  html[data-layout=tablet] .menu-search button {
    width: 48px;
    height: 48px;
    flex: none;
  }
  html[data-layout=tablet] .filter-button {
    width: 56px;
    height: 56px;
    flex: none;
  }
  html[data-layout=tablet] .cart-fab,
  html[data-layout=tablet] .header-info,
  html[data-layout=tablet] .brand-mark {
    width: 48px;
    height: 48px;
    min-width: 48px;
  }
  html[data-layout=tablet] .category-band {
    height: auto;
    margin: 16px 0 0;
    padding: 0;
    overflow: visible;
    max-height: none;
  }
  html[data-layout=tablet] .category-band::before,
  html[data-layout=tablet] .category-band::after,
  html[data-layout=tablet] .wheel-ribbon {
    display: none;
  }
  html[data-layout=tablet] .category-band .rail-nav {
    position: relative;
    inset: auto;
    display: flex;
    width: 100%;
    height: auto;
    gap: 12px;
    padding: 4px 2px 12px;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y pinch-zoom;
  }
  html[data-layout=tablet] .category-band .rail-item {
    position: relative;
    inset: auto;
    display: flex;
    flex: 0 0 auto;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    width: auto;
    max-width: 240px;
    height: auto;
    min-height: 56px;
    margin: 0;
    padding: 8px 16px 8px 8px;
    border-radius: 32px;
    transform: none !important;
    opacity: 1 !important;
    background: #efefef;
    color: #666;
    will-change: auto;
    touch-action: pan-x pan-y pinch-zoom;
  }
  html[data-layout=tablet] .category-band .rail-item.active {
    background: #222;
    color: #fff;
  }
  html[data-layout=tablet] .category-band .rail-item::after {
    display: none;
  }
  html[data-layout=tablet] .category-band .category-photo {
    width: 40px;
    height: 40px;
    padding: 4px;
    flex: none;
    transform: none;
    box-shadow: none;
    background: #fff;
  }
  html[data-layout=tablet] .category-band .category-symbol {
    font-size: 25px;
  }
  html[data-layout=tablet] .category-band .rail-item .category-name {
    display: block;
    width: auto;
    max-height: none;
    font-size: 14px;
    line-height: 1.35;
    white-space: normal;
    overflow: visible;
    text-align: left;
  }
  html[data-layout=tablet] .category-band.expanded {
    max-height: 45dvh;
    max-height: calc(var(--visible-height,100dvh) * .45);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  html[data-layout=tablet] .category-band.expanded .rail-nav {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
    overflow: visible;
    gap: 12px;
  }
  html[data-layout=tablet] .category-band.expanded .rail-item {
    width: 100%;
    max-width: none;
    height: auto;
    min-height: 64px;
    border-radius: 18px;
  }
  html[data-layout=tablet] .panel-heading {
    display: flex;
    margin: 16px 0 12px;
  }
  html[data-layout=tablet] .panel-heading h2 {
    font-size: 24px;
  }
  html[data-layout=tablet] .panel-heading #panel-count {
    font-size: 13px;
  }
  html[data-layout=tablet] .menu-content-current {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
    gap: var(--menu-gap);
    align-items: stretch;
  }
  html[data-layout=tablet] .menu-item {
    padding: 12px;
    border-radius: 24px;
    display: flex;
    flex-direction: column;
    min-width: 0;
  }
  html[data-layout=tablet] .item-open {
    flex: 1;
    min-width: 0;
  }
  html[data-layout=tablet] .item-photo {
    aspect-ratio: 1.4;
    flex: none;
    border-radius: 18px;
  }
  html[data-layout=tablet] .item-name {
    font-size: 18px;
    line-height: 1.35;
    margin: 10px 2px 4px;
    min-height: 0;
  }
  html[data-layout=tablet] .item-category {
    font-size: 13px;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  html[data-layout=tablet] .item-bottom {
    margin: 12px 0 0;
    gap: 12px;
    flex-wrap: wrap;
  }
  html[data-layout=tablet] .item-price {
    font-size: 24px;
    letter-spacing: -.5px;
  }
  html[data-layout=tablet] .quick-add {
    width: 48px;
    height: 48px;
    min-width: 48px;
  }
  html[data-layout=tablet] .quick-add.in-cart {
    width: auto;
    max-width: none;
    min-width: 48px;
    padding: 0 14px;
    font-size: 12px;
    gap: 6px;
  }
  html[data-layout=tablet] .quick-add.in-cart span {
    display: inline;
  }
  html[data-layout=tablet] .sold-out {
    font-size: 13px;
    min-height: 48px;
    display: flex;
    align-items: center;
  }
  html[data-layout=tablet] .bottom-nav {
    left: 50%;
    right: auto;
    bottom: calc(16px + env(safe-area-inset-bottom));
    width: min(440px, calc(100% - 32px));
    transform: translateX(-50%);
    background: #eeeeeef5;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  html[data-layout=tablet] .bottom-nav button {
    height: 56px;
    min-width: 48px;
  }
  html[data-layout=tablet] .toast {
    scale: 1;
    bottom: calc(104px + env(safe-area-inset-bottom));
    font-size: 14px;
  }
  html[data-layout=tablet] .waiter-context {
    margin-inline: 0;
  }
  html[data-layout=tablet] .waiter-table-controls :is(select, button),
  html[data-layout=tablet] .waiter-context > button {
    min-height: 48px;
    font-size: 14px;
  }
  html[data-layout=tablet] dialog {
    scale: 1;
    width: calc(100% - 32px);
    max-width: 640px;
    margin: 16px auto;
    border-radius: 24px;
    max-height: calc(var(--visible-height,100dvh) - 32px);
  }
  html[data-layout=tablet] .product-dialog,
  html[data-layout=tablet] .cart-dialog,
  html[data-layout=tablet] .more-dialog {
    max-height: calc(var(--visible-height,100dvh) - 32px);
  }
  html[data-layout=tablet] dialog::backdrop {
    background: #0006;
    backdrop-filter: none;
  }
  html[data-layout=tablet] .cart-dialog {
    max-width: 520px;
  }
  html[data-layout=tablet] .cart-body {
    padding: 12px 20px 20px;
    scroll-padding-block: 20px;
  }
  html[data-layout=tablet] .cart-top {
    padding: 16px 20px;
    gap: 12px;
    flex-wrap: wrap;
    flex: none;
  }
  html[data-layout=tablet] .cart-top .table-name {
    font-size: 13px;
    max-width: 100%;
    margin-left: auto;
  }
  html[data-layout=tablet] .cart-row {
    grid-template-columns: 64px minmax(0, 1fr) auto;
    gap: 12px;
  }
  html[data-layout=tablet] .cart-copy h3 {
    font-size: 17px;
    overflow-wrap: anywhere;
  }
  html[data-layout=tablet] .cart-copy p {
    font-size: 13px;
    overflow-wrap: anywhere;
  }
  html[data-layout=tablet] .stepper button {
    width: 48px;
    height: 48px;
    min-width: 48px;
  }
  html[data-layout=tablet] .stepper > span {
    min-width: 24px;
    font-size: 16px;
  }
  html[data-layout=tablet] .cart-note {
    font-size: 13px;
  }
  html[data-layout=tablet] .total-line {
    gap: 16px;
    flex-wrap: wrap;
  }
  html[data-layout=tablet] .total-line strong {
    font-size: 24px;
  }
  html[data-layout=tablet] .product-dialog {
    max-width: 640px;
    container-type: normal;
    overflow-y: auto;
    scroll-padding-block: 24px 100px;
  }
  html[data-layout=tablet] .product-top {
    height: auto;
    min-height: 48px;
    margin-inline: 24px;
    gap: 12px;
  }
  html[data-layout=tablet] .product-top .round-button,
  html[data-layout=tablet] .favorite-button {
    width: 48px;
    height: 48px;
    flex: none;
  }
  html[data-layout=tablet] .product-heading {
    font-size: 20px !important;
    line-height: 1.35;
    overflow-wrap: anywhere;
  }
  html[data-layout=tablet] .detail-image .food-placeholder {
    font-size: 100px;
  }
  html[data-layout=tablet] .product-dialog .hero-quantity {
    height: 104px;
    flex-basis: 104px;
  }
  html[data-layout=tablet] .product-dialog .hero-quantity > button {
    width: 64px;
    height: 88px;
  }
  html[data-layout=tablet] .product-dialog #quantity {
    font-size: 42px;
  }
  html[data-layout=tablet] .product-dialog #detail-price {
    font-size: 24px;
    padding: 12px 24px;
  }
  html[data-layout=tablet] .detail-title h2 {
    font-size: 26px;
    overflow-wrap: anywhere;
  }
  html[data-layout=tablet] .detail-description {
    font-size: 16px;
    line-height: 1.6;
  }
  html[data-layout=tablet] .detail-footer {
    position: sticky;
    bottom: 0;
    padding: 16px 24px calc(16px + env(safe-area-inset-bottom));
    z-index: 3;
    flex: none;
  }
  html[data-layout=tablet] .product-add {
    height: auto;
    min-height: 64px;
    font-size: 17px;
  }
  html[data-layout=tablet] .product-add .button-icon {
    width: 64px;
    min-height: 52px;
    flex: none;
  }
  html[data-layout=tablet] .product-add > span:first-child {
    min-width: 0;
    padding-block: 8px;
  }
  html[data-layout=tablet] #detail-read-more {
    min-height: 48px;
    font-size: 15px;
  }
  html[data-layout=tablet] .dish-request,
  html[data-layout=tablet] .kitchen-notes {
    font-size: 15px;
  }
  html[data-layout=tablet] .more-dialog {
    height: auto;
    container-type: normal;
  }
  html[data-layout=tablet] .more-sheet {
    max-height: calc(var(--visible-height,100dvh) - 32px);
    border-radius: 24px;
    padding: 24px;
  }
  html[data-layout=tablet] .more-close,
  html[data-layout=tablet] .pill-button,
  html[data-layout=tablet] .round-button {
    min-width: 48px;
    min-height: 48px;
  }
  html[data-layout=tablet] .more-nav button {
    min-height: 80px;
  }
  html[data-layout=tablet] .info-dialog,
  html[data-layout=tablet] .billing-dialog {
    max-width: 480px;
    padding: 24px;
  }
  html[data-layout=tablet] .info-dialog {
    padding-top: 72px;
  }
  html[data-layout=tablet] .billing-dialog .primary-button {
    min-height: 56px;
  }
  html[data-layout=tablet] dialog[open],
  html[data-layout=tablet] .product-dialog[open] :is(.detail-image, .detail-title, .detail-description-row) {
    animation-duration: 160ms;
    animation-delay: 0ms;
  }
  html[data-layout=tablet] .product-dialog.closing {
    animation-duration: 160ms;
  }
  html[data-layout=tablet] button {
    transition-duration: 150ms;
  }
  html[data-layout=tablet] button:active {
    transform: none;
  }
}
@media (min-width: 900px) {
  html[data-layout=tablet] .product-dialog {
    max-width: 960px;
    overflow-y: auto;
  }
  html[data-layout=tablet] #product-content {
    height: auto;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
  }
  html[data-layout=tablet] .product-dialog .detail-stage,
  html[data-layout=tablet] .product-dialog.has-variants .detail-stage {
    grid-column: 1;
    grid-row: 1;
    height: auto;
    min-height: 0;
    max-height: none;
    padding-block: 16px;
  }
  html[data-layout=tablet] .product-dialog .detail-content {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
  }
  html[data-layout=tablet] .product-dialog .detail-sheet {
    border-radius: 0;
  }
  html[data-layout=tablet] .product-dialog .detail-footer {
    position: static;
  }
}
@media (min-width: 600px) and (max-height: 500px) {
  html[data-layout=tablet] .panel {
    padding-top: 16px;
  }
  html[data-layout=tablet] .menu-headline {
    margin-block: 16px;
  }
  html[data-layout=tablet] .category-band {
    margin-top: 16px;
  }
  html[data-layout=tablet] .cart-top {
    padding-block: 12px;
  }
  html[data-layout=tablet] .product-dialog .detail-stage,
  html[data-layout=tablet] .product-dialog.has-variants .detail-stage {
    min-height: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  html[data-layout=tablet] .category-band .rail-item {
    will-change: auto;
  }
}
@media (min-width: 900px) and (max-height: 900px) {
  html[data-layout=tablet] .panel {
    padding-top: 20px;
  }
  html[data-layout=tablet] .menu-discovery {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 1.2fr);
    align-items: center;
    gap: 24px;
    margin-top: 20px;
  }
  html[data-layout=tablet] .menu-discovery .menu-headline {
    margin: 0;
    font-size: 32px;
  }
  html[data-layout=tablet] .menu-search {
    height: 48px;
  }
  html[data-layout=tablet] .filter-button {
    width: 48px;
    height: 48px;
  }
  html[data-layout=tablet] .category-band {
    margin-top: 16px;
  }
  html[data-layout=tablet] .panel-heading {
    margin-block: 16px;
  }
  html[data-layout=tablet] .item-photo {
    aspect-ratio: 1.5;
  }
  html[data-layout=tablet] .item-name {
    margin-top: 12px;
  }
}
