/* TillCraft routing/accessibility adaptations. Page styles above are transferred legacy CSS. */
:root{--primary:#54CAE7;--pink:#FF69B4;--green:#3CB271;--bg:#F5F7F8;--text:#1F2937;--muted:#6B7280;--border:#E5E7EB;--radius:14px;--shadow:0 6px 18px rgba(0,0,0,.06)}
[hidden],dialog.itemchoices:not([open]){display:none!important}*{box-sizing:border-box}body.orderscreen{margin:0;min-height:100vh;background:linear-gradient(180deg,#fff,var(--bg));color:var(--text);font-family:Arial,Helvetica,sans-serif}button,a,input,select,textarea{touch-action:manipulation}button:disabled{opacity:.5;cursor:not-allowed}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #1389a5;outline-offset:3px}
.nav_head{position:relative;height:auto;width:100%;padding:8px 8px 0;z-index:1}.navbar .container-fluid{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px}.navbar .container-fluid:before,.navbar .container-fluid:after{display:none}.navbar-brand.header{float:none;display:block;height:auto;max-width:50%;white-space:normal;font-size:16px}.navbar-brand img{max-width:100%;max-height:44px;object-fit:contain}.order-nav{display:flex;align-items:center;gap:18px;font-size:13px;font-weight:700}.order-nav a{color:var(--text)}.badge{background:var(--pink)}
body.orderscreen > main.main{padding-top:8px;min-height:70vh}.ordering-notice,#message{margin:10px 15px}.ordering-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;padding:24px 16px;font-size:12px;color:var(--muted);clear:both}.order-container{max-width:780px;margin:0 auto;padding:12px}.linkdiv{position:static;max-width:460px;width:auto;height:auto;margin:16px auto;padding:22px 18px 26px;background:white;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}
.capacity-banner{margin:10px 15px 16px;padding:14px 16px;display:grid;grid-template-columns:minmax(180px,.75fr) minmax(0,1.8fr);gap:14px;align-items:center;background:#f4fbfd;border:1px solid #b8e5ef;border-left:5px solid var(--primary);border-radius:var(--radius);box-shadow:var(--shadow)}.capacity-banner[hidden]{display:none}.capacity-banner.is-busy{background:#fff8e7;border-color:#efd69b;border-left-color:#c78012}.capacity-banner.is-paused{background:#fff1f1;border-color:#efb8b8;border-left-color:#b43b3b}.capacity-banner-copy{display:grid;gap:3px}.capacity-banner-copy strong{font-size:16px;line-height:1.25;color:var(--text)}.capacity-banner-copy span{font-size:12.5px;line-height:1.4;color:var(--muted)}.capacity-banner-areas{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.capacity-banner-area{min-width:125px;display:grid;grid-template-columns:auto auto;gap:2px 10px;align-items:baseline;padding:8px 10px;background:#fff;border:1px solid var(--border);border-radius:10px}.capacity-banner-area.is-busy{border-color:#e4bd69}.capacity-banner-area.is-paused{border-color:#dc8f8f}.capacity-banner-area-name{font-size:12px;font-weight:700;color:var(--text)}.capacity-banner-area-wait{font-size:12px;text-align:right;white-space:nowrap;color:#15788f}.capacity-banner-area.is-busy .capacity-banner-area-wait{color:#9a5b00}.capacity-banner-area.is-paused .capacity-banner-area-wait{color:#a52d2d}.capacity-banner-area small{grid-column:1/-1;font-size:11px;line-height:1.3;color:var(--muted)}
@media(max-width:700px){.capacity-banner{grid-template-columns:1fr;margin:8px 12px 12px;padding:13px}.capacity-banner-areas{justify-content:stretch}.capacity-banner-area{flex:1 1 140px}}
.menu-layout{display:grid;grid-template-columns:minmax(170px,24%) 1fr;gap:16px;padding:0 15px}.nav_side{min-width:0}.nav_side ul{position:sticky;top:12px;width:100%;max-width:none;height:auto;max-height:80vh;overflow:auto}.nav_side li a{line-height:1.4;padding:12px}.nav_side a[aria-current=true]{background:rgba(84,202,231,.15);border-radius:10px;color:#1389a5}.productMain{width:auto;margin:0;padding:0;float:none;position:static;height:auto;overflow:visible;min-width:0}.productMain .subCategory{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;padding:8px 0 24px}.productMain .product{text-align:left;font-family:inherit;float:none;margin:0;width:100%;height:auto;min-height:94px}.productMain .product .info{position:static;padding:0}.productMain h2{margin:8px 0 12px;font-size:22px}.productMain .productThumbFallback{font-size:11px}.dietary-label{display:block;color:var(--green);font-size:11px}
dialog.itemchoices[open]{position:fixed;inset:0;margin:auto;width:min(560px,calc(100vw - 24px));height:auto;max-height:85vh;max-height:85dvh;display:flex;z-index:10;transform:none;float:none}dialog::backdrop{background:rgba(0,0,0,.55)}body.modal-open{overflow:hidden}.itemchoices .sizeOptions{grid-template-columns:1fr}.itemchoices label.container.is-selected{background:rgba(84,202,231,.14);border:2px solid var(--primary)}.itemchoices label.container input{opacity:1!important}.itemchoices .choice-form{width:100%;margin:0}.itemchoices textarea.form-control{width:100%;height:auto}.itemchoices .multichoice summary{padding:10px 12px;font-weight:700;cursor:pointer}.itemchoices .priceX{position:static;float:none;display:block}.itemchoices .optional{padding:0 10px}#choice-message{color:#a12252}
.table-responsive{border:0}.table{font-size:14px}.table input[type=number]{width:65px;min-height:42px}.table td p{margin:3px 0;font-size:12px}.table h3{font-size:15px;margin:0 0 5px}.table tfoot td{text-align:right}.table tfoot th{text-align:right}.order-container fieldset{padding:18px;border:1px solid var(--border);border-radius:14px;background:white;margin:16px 0}.order-container legend{width:auto;border:0;padding:0 8px;font-size:18px}.order-container label{display:block;margin-top:10px}.order-container .form-control{width:100%;height:auto;min-height:44px;margin-bottom:10px}.order-container .table .form-control{width:65px}.status-card{text-align:center}.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}#quote p{margin:6px 0}
.review-page{max-width:960px;margin:0 auto;padding:22px 18px 44px}.review-step{margin:0 0 5px;color:#15788f;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.review-page h1{margin:0 0 8px;font-size:30px;font-weight:800}.review-intro{max-width:700px;margin:0 0 24px;color:var(--muted);line-height:1.5}.review-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,1fr);gap:16px;align-items:start}.review-side{display:grid;gap:16px}.review-card{min-width:0;padding:22px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.review-card-heading{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:14px}.review-card h2{margin:0;font-size:19px;font-weight:800}.review-card-heading a{font-size:13px;font-weight:700;white-space:nowrap}.review-items{list-style:none;margin:0;padding:0}.review-items li{padding:13px 0;border-bottom:1px solid var(--border)}.review-items li:first-child{padding-top:0}.review-item-main,.review-total{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.review-item-main span{min-width:0;font-weight:700;overflow-wrap:anywhere}.review-item-main strong{white-space:nowrap}.review-items p{margin:5px 0 0 24px;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.review-total{margin:18px 0 0;font-size:18px;font-weight:800}.review-total strong{font-size:22px;white-space:nowrap}.review-details{display:grid;grid-template-columns:100px minmax(0,1fr);gap:10px 14px;margin:0;font-size:14px}.review-details dt{color:var(--muted);font-weight:500}.review-details dd{margin:0;overflow-wrap:anywhere}.review-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:22px}.review-actions .btn{min-height:46px;min-width:190px;padding:12px 18px;border-radius:10px;font-weight:700}.review-note{text-align:right;margin:10px 0 0;color:var(--muted);font-size:13px}
@media(max-width:700px){.review-page{padding:18px 12px 32px}.review-page h1{font-size:25px}.review-grid{grid-template-columns:1fr}.review-card{padding:18px}.review-actions .btn{flex:1 1 100%}.review-note{text-align:center}}
@media(max-width:600px){.order-nav{gap:10px;font-size:12px}.order-nav a:first-child{display:none}.menu-layout{grid-template-columns:1fr;padding:0 12px;gap:8px}.nav_side ul{display:flex;position:static;max-height:none;overflow-x:auto;gap:5px;padding:5px}.nav_side li{flex-shrink:0;margin:0}.nav_side li a{font-size:13px;padding:8px 10px}.productMain .subCategory{grid-template-columns:1fr;gap:8px}.linkdiv{margin:12px}.table{font-size:12px}.table>tbody>tr>td{padding:6px}.table .btn-danger.btn-sm{font-size:11px;padding:8px 5px}.table input[type=number]{width:55px}.order-container{padding:8px}.ordering-footer{flex-direction:column;align-items:center}}

.subcategory-links{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.subcategory-links a{background:white;border:1px solid var(--border);border-radius:10px;padding:8px 12px;font-size:13px}

/* Replace the old fixed-position wrapper with a native, keyboard-accessible dialog. */
body.orderscreen > main.main{position:static;inset:auto;width:100%;height:auto;overflow:visible}
.productMain .product .info{width:100%;min-width:0}.productMain .description{height:auto}
dialog.itemchoices[open]{top:3vh!important;bottom:3vh!important;left:0!important;right:0!important;width:min(92vw,720px)!important;height:auto!important;max-height:90vh!important;margin:auto!important;transform:none!important;overflow:hidden!important}
.itemchoices .choice-form{min-height:0;padding-bottom:0;overflow-y:auto}.itemchoices .productHead{position:static;padding:0}.itemchoices .sizeOptions{width:100%}.itemchoices .container .size{text-align:left}.itemchoices .addToOrder{position:static;width:100%;padding:10px 0 0}.itemchoices .popupTop{width:100%}
@media(max-width:600px){dialog.itemchoices[open]{width:calc(100vw - 16px)!important;height:auto!important;max-height:90dvh!important}.itemchoices .addToOrder{width:100%}.itemchoices .choice-form{padding-bottom:0}}
.itemchoices fieldset{height:auto;min-width:0;overflow:visible}.itemchoices .choice-form{overflow-x:hidden}
.itemchoices .addToOrder{transform:none;left:auto;right:auto;bottom:auto}dialog.itemchoices[open]{height:fit-content!important}

.itemchoices label.container{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.itemchoices .priceX{white-space:nowrap;text-align:right}.itemchoices label.container .size{display:block;overflow:visible}.order-container legend{margin-bottom:0}.order-container h2.page-header{font-size:18px}
.itemchoices label.container::before,.itemchoices label.container::after{display:none}.itemchoices label.container .size{grid-column:1;grid-row:1}.itemchoices label.container .priceX{grid-column:2;grid-row:1}

.service-help{margin:8px 2px 0;font-size:13px;line-height:1.4;color:var(--muted)}
.choice-product{display:flex;align-items:center;gap:16px;padding:4px 0 16px}.choice-product img{width:130px;height:130px;object-fit:cover;background:#f5f7f8;border-radius:12px;flex-shrink:0}.choice-product p{margin:0;white-space:pre-line;font-size:14px;line-height:1.5;color:var(--text)}.choice-product:has(img[hidden]):has(p[hidden]){display:none}
.subcategory-links a[aria-current=page]{background:var(--primary);border-color:var(--primary);color:#12333b;font-weight:700}.category-help{padding:12px 0;color:var(--muted)}
.added-notice{position:fixed;bottom:24px;right:24px;z-index:30;max-width:calc(100vw - 32px);padding:16px 22px;border-radius:14px;background:#17683c;color:white;box-shadow:0 8px 28px rgba(0,0,0,.22);font-size:15px;animation:order-notice-in .25s ease-out}.order-flight{position:fixed;z-index:31;pointer-events:none;border-radius:50%;background:var(--pink);color:white;font-weight:700;padding:10px;box-shadow:var(--shadow)}
@keyframes order-notice-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.choice-product img{width:96px;height:96px}.choice-product{gap:12px}.added-notice{bottom:16px;right:16px}}
@media(prefers-reduced-motion:reduce){.added-notice{animation:none}}
.itemchoices button.popupClose{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;min-width:44px;flex-shrink:0;padding:0;line-height:1;border:0;appearance:none;-webkit-appearance:none}.itemchoices .popupClose svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.menu-availability-help{margin:8px 16px 16px;color:var(--muted);font-size:13px}.availability-label{display:block;color:#904b0b;font-size:12px;font-weight:700;line-height:1.4;margin-top:6px}.productMain .product:disabled{opacity:.65;background:#f2f3f4;cursor:not-allowed}.nav_side a[aria-disabled=true],.subcategory-links a[aria-disabled=true]{opacity:.55;cursor:not-allowed;background:#f2f3f4;color:#555}.table>tbody>tr.unavailable-line>td{background:#fff3df}.itemchoices label.container .availability-label{grid-column:1 / -1}
/* Category images from the back office sit above the category name, whole and at their own shape.
   The side nav matches the kiosk category nav (4.5rem tall); tabs and phone pills use smaller copies. */
.nav_side a.has-thumb{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.nav_side .category-thumb{display:block;height:72px;max-width:100%;object-fit:contain}
.subcategory-links a.has-thumb{display:inline-flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.subcategory-links .category-thumb{display:block;height:44px;max-width:120px;object-fit:contain}
.nav_side a[aria-disabled=true] .category-thumb,.subcategory-links a[aria-disabled=true] .category-thumb{filter:grayscale(1)}
@media(max-width:600px){.nav_side a.has-thumb{gap:3px}.nav_side .category-thumb{height:40px;max-width:96px}.subcategory-links .category-thumb{height:36px;max-width:90px}.nav_side ul:has(.has-thumb) li{display:flex}.nav_side ul:has(.has-thumb) li a{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}}
/* Payment status: the spinner only turns while the outcome is still open; actions wrap on narrow screens. */
.status-actions,.pending-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px}.pending-actions{justify-content:flex-start}.payment-pending p{margin:0}.status-note{color:var(--muted);font-size:14px;max-width:520px;margin:0 auto 10px}.status-spinner{display:none;width:34px;height:34px;margin:18px auto 0;border:3px solid var(--border);border-top-color:currentColor;border-radius:50%;animation:status-spin .9s linear infinite}.status-card[data-outcome=processing] .status-spinner{display:block}@keyframes status-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.status-spinner{animation-duration:3s}}
.test-mode-banner{margin:0;padding:8px 16px;background:#7c2d12;color:#fff;font-size:13px;text-align:center}.test-mode-banner strong{letter-spacing:.08em;margin-right:6px}
/* A separate TillCraft payment page keeps the venue identity around DNA's hosted iframe. */
.page-payment > main.main{display:grid;place-items:center;background:var(--bg);padding:24px 16px 36px}
.page-payment .order-nav{display:none}
.payment-page{width:min(100%,600px)}
.payment-page-card{background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:0 16px 42px rgba(31,41,55,.09);padding:36px;text-align:center}
.payment-page-icon{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 14px;border-radius:50%;background:#e8f8fc;font-size:25px}
.payment-page-kicker{margin:0;color:#15788f;font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.payment-page h1{margin:9px 0 4px;font-size:28px;font-weight:800;line-height:1.2}
.payment-page-merchant{margin:0;color:var(--muted)}
.payment-page-amount{margin:20px 0;font-size:36px;font-weight:800;line-height:1.1}
.payment-page-guidance{max-width:440px;margin:0 auto 22px;line-height:1.5}
.payment-page-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}
.payment-page-actions .btn{min-width:170px;border-radius:10px}
.payment-page-note{max-width:450px;margin:22px auto 0;color:var(--muted);font-size:13px;line-height:1.45}
@media(max-width:600px){.page-payment > main.main{padding:12px 12px 24px}.payment-page-card{padding:26px 18px}.payment-page h1{font-size:24px}.payment-page-amount{font-size:32px}.payment-page-actions .btn{width:100%}}
/* Order page: a phone-first stack of cards. The hero icon follows the payment outcome. */
.page-tracking .order-nav{display:none}.page-tracking > main.main{background:var(--bg)}
.track{max-width:560px;margin:0 auto;padding:16px 16px 32px;display:flex;flex-direction:column;gap:12px}
.track-hero,.track-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}
.track-hero{text-align:center;padding:26px 20px 22px}.track-hero h1{font-size:24px;line-height:1.25;margin:6px 0 8px;font-weight:800;color:var(--text)}
.track-number{margin:12px 0 0;color:var(--muted);font-size:13px;letter-spacing:.02em}.track-message{margin:0 auto;max-width:440px;color:var(--text);font-size:15px;line-height:1.5}
.track-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin:0 auto;border-radius:50%;background:#eef6fb;color:var(--text);font-size:32px;font-weight:700;line-height:1}
.track .status-spinner{display:none;margin:0}.track[data-outcome=processing] .status-spinner{display:block}
.track[data-outcome=success] .track-icon{background:#dcfce7;color:#15803d}.track[data-outcome=success] .track-icon::after{content:"\2713"}
.track[data-outcome=unpaid] .track-icon{background:#dbeafe;color:#1d4ed8}.track[data-outcome=unpaid] .track-icon::after{content:"\2713"}
.track[data-outcome=failed] .track-icon{background:#f3f4f6;color:#4b5563}.track[data-outcome=failed] .track-icon::after{content:"\00d7"}
.track[data-outcome=unconfirmed] .track-icon{background:#fef3c7;color:#b45309}.track[data-outcome=unconfirmed] .track-icon::after{content:"!"}
.track-steps{list-style:none;margin:0;padding:16px 20px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;gap:6px}
.track-step{flex:1;position:relative;padding-top:30px;text-align:center;font-size:12px;line-height:1.3;color:var(--muted)}
.track-step::before{content:"";position:absolute;top:0;left:50%;width:22px;height:22px;margin-left:-11px;border-radius:50%;border:2px solid var(--border);background:#fff;box-sizing:border-box}
.track-step::after{content:"";position:absolute;top:10px;left:calc(50% + 14px);right:calc(-50% + 14px);height:2px;background:var(--border)}.track-step:last-child::after{display:none}
.track-step.is-done{color:var(--text)}.track-step.is-done::before{content:"\2713";background:var(--green);border-color:var(--green);color:#fff;font-size:12px;line-height:18px;font-weight:700}.track-step.is-done::after{background:var(--green)}
.track-step.is-current{color:var(--text);font-weight:700}.track-step.is-current::before{border-color:var(--primary);box-shadow:0 0 0 4px rgba(84,202,231,.25)}
.track-card h2{margin:0 0 10px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.track-when{margin:0;font-size:18px;font-weight:700;color:var(--text)}.track-where{margin:4px 0 0;color:var(--muted);font-size:14px}.track-where:empty{display:none}
.track-link{display:inline-block;margin-top:10px;font-weight:600}
.track-items{list-style:none;margin:0;padding:0}.track-item{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 12px;padding:10px 0;border-bottom:1px solid var(--border)}
.track-item-name{flex:1;min-width:0;font-weight:600;color:var(--text)}.track-qty{display:inline-block;min-width:28px;color:var(--muted);font-weight:500}.track-price{white-space:nowrap;color:var(--text)}
.track-mod{flex-basis:100%;padding-left:28px;color:var(--muted);font-size:13px}
.track-total{display:flex;justify-content:space-between;margin:12px 0 0;font-size:16px}.track-total strong{font-size:18px}
.track-help p{margin:0 0 12px;color:var(--text)}.track .status-actions .btn,.track-help .btn{border-radius:999px;padding:10px 18px}
.track-held-badge{display:inline-block;margin:12px 0 0;padding:5px 11px;border-radius:999px;background:#fff3d6;color:#925600;font-size:12px;font-weight:800;letter-spacing:.02em}
.payment-countdown{margin:14px auto 0;font-size:13px;font-weight:700;color:#8a5200}
.cancel-payment-dialog{position:fixed;inset:0;width:min(440px,calc(100vw - 28px));max-width:none;max-height:calc(100dvh - 28px);margin:auto;padding:26px;border:1px solid var(--border);border-radius:18px;box-shadow:0 22px 70px rgba(0,0,0,.25);color:var(--text);background:#fff}
.cancel-payment-dialog::backdrop{background:rgba(17,24,39,.58)}
.cancel-payment-dialog h2{margin:0 0 10px;font-size:22px;font-weight:800}.cancel-payment-dialog p{margin:0;line-height:1.5}.cancel-payment-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:22px}.cancel-payment-actions .btn{border-radius:10px;padding:10px 14px}
@media(max-width:600px){.cancel-payment-dialog{padding:22px 18px}.cancel-payment-actions .btn{flex:1 1 100%}}
@media(max-width:600px){.track{padding:12px 12px 24px}.track-hero h1{font-size:21px}.track-step{font-size:11px}}
/* Kitchen progress: one row per order screen, coloured by state. */
.track-areas{list-style:none;margin:0;padding:0}.track-area{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.track-area:last-child{border-bottom:0}.track-area-name{font-weight:700;color:var(--text)}.track-area-state{font-size:14px;color:var(--muted);text-align:right}.track-area.is-preparing .track-area-state{color:#b45309;font-weight:600}.track-area.is-ready .track-area-state{color:#15803d;font-weight:700}
/* The legacy phone rule fixes the category bar at 47px, so tiles with images spilled over the
   subcategory row below. Let the bar grow with its tiles, and keep image tiles to normal line height. */
.nav_side a.has-thumb{line-height:1.3;padding:10px 12px}
@media(max-width:600px){.nav_side{height:auto}.nav_side ul{overflow-x:auto;overflow-y:hidden}.nav_side a.has-thumb{padding:6px 10px}}
/* Menu display: a venue can turn product tile images off, leaving text-only cards. */
.productMain .product.no-thumb{grid-template-columns:1fr}
/* Venue-edited menu text keeps its line breaks. */
.menu-text{white-space:pre-line}
/* Outside-hours "hide" can leave no categories at all: drop the empty bar and its column. */
.nav_side ul:empty{display:none}.menu-layout:has(#categories:empty){grid-template-columns:1fr}
/* Order ahead: the time is chosen before items are added. Closed venues get the stronger colouring. */
.order-time{margin:0 15px 16px;padding:16px 18px;background:#fff;border:1px solid var(--border);border-left:5px solid var(--primary);border-radius:var(--radius);box-shadow:var(--shadow)}.order-time.is-closed:not(.is-set){border-left-color:var(--pink);background:#fff7fb}.order-time h2{margin:0 0 6px;font-size:18px;font-weight:700;color:var(--text)}.order-time p{margin:0 0 10px;color:var(--text);font-size:14px;line-height:1.45}
.order-time-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.order-time-field{display:flex;flex-direction:column;gap:4px;min-width:150px;flex:1 1 150px}.order-time-field label{margin:0;font-size:13px;color:var(--muted)}.order-time-field .form-control{min-height:44px}.order-time-form .btn,.order-time-actions .btn{min-height:44px;border-radius:999px;padding:10px 18px}.order-time-actions{display:flex;flex-wrap:wrap;gap:8px}.order-time-note{margin:8px 0 0;color:#904b0b;font-size:13px}.order-time-note:empty{display:none}
.shop-closed{text-align:center}.shop-closed h1{font-size:24px;margin:4px 0 12px}.shop-closed-next{font-size:17px}
@media(max-width:600px){.order-time{margin:0 12px 12px;padding:14px}.order-time-form .btn{flex:1 1 100%}}
/* Product images are square; cut-outs (transparent background) show whole on the tile colour. */
.productMain .productThumb.is-cutout,.choice-product img.is-cutout{object-fit:contain}
