*,*::before,*::after{box-sizing:border-box}
/* Shared public design system */
:root{--ink:#252b23;--muted:#666b61;--cream:#faf8f2;--surface:#fffefa;--line:#e6e3d9;--brand:#294b35;--gold:#b48a3f;--radius:18px}
body{background:var(--cream);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.6}a{color:var(--brand)}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #b48a3f;outline-offset:3px}button:disabled{opacity:.55;cursor:not-allowed}[hidden]{display:none!important}
.topbar{min-height:80px;height:auto;gap:20px;padding:16px max(24px,4vw);border-bottom:1px solid var(--line);background:#faf8f2f5}.topbar nav{gap:20px}.topbar nav a{font-size:13px;color:#4d554b}.header-actions{gap:16px}.nav-action{font-size:13px}.company b{font-size:18px}.company small{font-size:10px}.order-now,.primary,.secondary,.hero-actions a,.visit-actions a{border-radius:10px;text-decoration:none;font-size:14px;font-weight:600;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.order-now,.primary{background:var(--brand);color:#fff}.hero-actions .gold-button,.visit-actions .gold-button{background:#d6ae5c;color:#24261e}.eyebrow{font-size:10px;letter-spacing:1.8px;line-height:1.6}.order-hero{height:620px;min-height:0;max-height:none;margin:20px auto;width:calc(100% - 64px);max-width:1440px;border-radius:22px}.order-hero .hero-copy{max-width:720px;padding:80px 64px}.order-hero .hero-copy h1{font-size:clamp(44px,5.1vw,72px);line-height:1.07;letter-spacing:-2px;max-width:620px}.order-hero .hero-copy p{font-size:16px;max-width:420px;line-height:1.75}.hero-actions{gap:12px;flex-wrap:wrap}.open-card{font-size:13px}.cafe-editorial{padding:64px 6%;gap:60px}.editorial-copy h2,.gallery-section h2,.menu-gateway h2,.tiffin-section h2,.moments h2,.visit-section h2{font-size:clamp(28px,3vw,42px);line-height:1.15;letter-spacing:-.7px}.editorial-copy p,.menu-gateway p,.tiffin-section p,.moments p{font-size:15px;color:var(--muted);line-height:1.75}.gallery-section{padding-bottom:56px}.gallery-grid img{object-fit:cover}.ambience-videos{padding-bottom:48px}.ambience-video-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1000px}.ambience-video-grid figure:nth-child(n+3){display:none}.ambience-video-grid video{height:250px}.moments{margin-bottom:48px}.visit-section{padding:48px 6%}footer{padding:24px 5%;font-size:12px;color:#596151;gap:18px;flex-wrap:wrap}footer a{text-decoration:none;font-weight:600}footer small{color:#596151}
.order-page-heading{padding:28px 4% 18px}.order-page-heading h1{font-size:32px;line-height:1.2;margin:10px 0}.order-page-heading p{font-size:14px}.ordering-layout{margin:0 auto 40px;width:calc(100% - 64px);max-width:1440px;padding:28px;gap:28px;border:1px solid var(--line);border-radius:22px;background:#f5f4ee}.menu-panel{padding:0}.menu-panel .section-title{margin:0 0 18px}.menu-panel h2{font-size:23px;line-height:1.25;letter-spacing:-.4px}.menu-toolbar{gap:12px}.menu-controls{padding:12px}.categories{margin:16px 0;gap:8px;scrollbar-width:none}.categories::-webkit-scrollbar{display:none}.categories button{min-height:40px;padding:9px 15px;font-size:12px}.menu-grid{gap:12px}.menu-grid .dish{min-height:116px;border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--surface);box-shadow:0 3px 12px #28322204;gap:14px}.dish h3{font-size:15px;line-height:1.4;margin:5px 0 8px}.dish-type-line small{font-size:11px;color:var(--muted)}.dish-footer b{font-size:15px}.dish-details{font-size:12px}.dish-details summary{color:#65705e}.dish-photo{border-radius:10px}.menu-grid .dish .dish-quantity{flex-shrink:0;min-width:104px;max-width:112px}.menu-grid .dish .dish-quantity button{flex:0 0 34px;min-width:34px}.dish .add{min-width:96px;height:42px;border-radius:9px;font-size:12px}.cart-panel{border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 24px #242b2007;padding:22px}.cart-panel h2{font-size:24px}.cart-row{padding:16px 0}.cart-row b{font-size:14px}.cart-row small{color:var(--muted);font-size:12px}.quantity{gap:10px}.quantity button{min-width:32px;min-height:32px}.empty-cart{padding:40px 10px}.empty-cart span{font-size:35px}.empty-cart p{font-size:13px}.cart-summary{font-size:14px}.fulfilment button{font-size:14px}.safety{font-size:12px;color:#676c61}.menu-empty{padding:30px;border:1px dashed var(--line);border-radius:14px;background:white}.menu-more{min-height:44px;border-radius:10px}
.modal{padding:20px}.modal-card{border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:0 24px 80px #17201428}.modal-card h2,#trackTitle,#checkoutTitle{font-family:Arial,Helvetica,sans-serif;font-size:28px;line-height:1.2;letter-spacing:-.6px;margin:12px 0 24px}.modal-card label{font-size:13px;font-weight:600;gap:7px}.modal-card input,.modal-card textarea{font-size:15px;min-height:46px;border:1px solid #dcded2;border-radius:9px;background:#fff;padding:11px 13px}.modal-card textarea{min-height:76px}.modal-card small{font-weight:400}.modal-card .close{box-shadow:none;border:1px solid var(--line);width:36px;height:36px;min-height:36px}.modal-card fieldset{border:0;padding:0;margin:20px 0}.modal-card legend{font-size:13px;font-weight:700;margin-bottom:10px}#paymentMethods label{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fff;margin:9px 0;min-height:52px;font-weight:500}#paymentMethods label:has(input:checked){border-color:var(--brand);background:#edf3ec}#paymentMethods input[type=radio]{width:18px;height:18px;min-height:18px;flex:0 0 18px;margin:0;accent-color:var(--brand)}.checkout-actions{position:sticky;bottom:-28px;background:var(--surface);padding:16px 0 4px}.primary.wide{width:100%;min-height:46px}.tracking-live h3{font-size:23px}.track-meta{gap:12px}.toast{bottom:90px;max-width:calc(100vw - 36px);right:22px}.customer-link{font-size:12px;text-decoration:none;font-weight:600;white-space:nowrap}
.content-shell,.customer-shell{width:calc(100% - 48px);max-width:1120px;margin:48px auto 64px}.content-shell>h1,.customer-shell h1{font:normal 42px/1.15 Georgia,serif;letter-spacing:-1px;margin:12px 0 18px}.content-shell p{line-height:1.85}.content-shell article{background:white;border:1px solid var(--line);padding:24px;border-radius:16px;margin:18px 0}.content-shell article h2{font-size:24px}.content-shell article a{text-decoration:none}.content-empty{padding:40px;border:1px solid var(--line);border-radius:18px;background:white}.content-empty h2{font-size:24px}.content-empty .primary{padding:12px 20px}.customer-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:28px;align-items:start}.customer-card{background:white;border:1px solid var(--line);border-radius:18px;padding:28px}.customer-card h2{font-size:22px;margin:0 0 14px}.customer-card label{display:grid;gap:8px;font-size:13px;font-weight:600;margin:18px 0}.customer-card input{width:100%;min-height:46px;border:1px solid #dcded2;border-radius:9px;padding:12px;box-sizing:border-box}.customer-card button{padding:12px 20px;border:0;cursor:pointer}.customer-card small,.customer-card p{color:var(--muted)}.receipt-lines{width:100%;border-collapse:collapse;margin:20px 0}.receipt-lines th,.receipt-lines td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--line);font-size:14px}.receipt-lines td:last-child,.receipt-lines th:last-child{text-align:right}.receipt-actions{display:flex;gap:12px;flex-wrap:wrap}.receipt-actions button,.receipt-actions a{border:1px solid var(--line);border-radius:10px;padding:12px 18px;background:white;color:var(--brand);font-size:14px;text-decoration:none}.receipt-totals{margin-left:auto;max-width:320px}.receipt-totals p{display:flex;justify-content:space-between;gap:20px}.receipt-status{padding:6px 12px;border-radius:30px;background:#edf3ec;color:var(--brand);display:inline-block;font-size:12px;font-weight:700}.portal-note{padding:16px;background:#f3f5ee;border-radius:10px;font-size:13px}
@media(min-width:981px){.order-page .ordering-layout .cart-panel{top:104px;max-height:calc(100dvh - 124px)}}
@media(max-width:1100px){.topbar nav{gap:12px}.topbar{gap:14px;padding-inline:22px}.company b{font-size:16px}.customer-link{font-size:11px}.ordering-layout{padding:20px;width:calc(100% - 32px);gap:20px}}
@media(max-width:980px){.customer-grid{grid-template-columns:1fr}.ordering-layout{padding:18px;display:block}.cart-panel{padding:22px}.order-page .cart-panel.is-open{max-height:88dvh}.mobile-cart-bar{background:var(--brand);border-radius:13px;margin:0 12px 12px;width:calc(100% - 24px);left:0;right:0;padding:14px 18px;box-shadow:0 8px 25px #1f342333}.mobile-cart-bar button{min-height:44px}.order-page-heading h1{font-size:28px}}
@media(max-width:800px){.topbar{padding:12px 16px;gap:12px}.topbar nav{padding:9px 0 2px;gap:20px}.topbar nav a{font-size:13px}.header-actions{gap:10px}.customer-link{display:none}.order-hero{width:calc(100% - 24px);height:520px;margin:12px}.order-hero .hero-copy{padding:46px 26px;max-width:100%}.order-hero .hero-copy h1{font-size:48px;letter-spacing:-1.4px}.order-hero .hero-copy p{font-size:14px;max-width:300px}.open-card{left:26px;bottom:20px;right:26px;width:auto}.cafe-editorial{padding:40px 24px;gap:26px}.editorial-copy h2,.gallery-section h2,.menu-gateway h2,.tiffin-section h2,.moments h2,.visit-section h2{font-size:30px}.ambience-video-grid{grid-template-columns:1fr 1fr;gap:12px}.ambience-video-grid video{height:180px}.tiffin-section,.moments{padding:26px 22px}.menu-grid .dish{padding:16px;min-height:104px}.menu-panel h2{font-size:21px}.categories{margin:14px 0}.modal{padding:12px}.modal-card{padding:24px 20px;width:100%;max-height:90dvh}.modal-card h2,#trackTitle,#checkoutTitle{font-size:25px;padding-right:28px}.checkout-actions{bottom:-24px}.content-shell,.customer-shell{margin:30px auto 40px}.content-shell>h1,.customer-shell h1{font-size:33px}.customer-card{padding:22px}.receipt-lines th,.receipt-lines td{font-size:12px;padding:10px 4px}.content-empty{padding:26px}.visit-section{padding:34px 24px}.visit-actions{gap:10px}footer{font-size:12px;align-items:flex-start}.toast{bottom:100px}}
@media(max-width:380px){.order-hero .hero-copy h1{font-size:40px}.topbar .company span{display:none}.header-actions{gap:8px}.menu-grid .dish .dish-quantity{min-width:96px}.dish .add{min-width:82px}.ambience-video-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media print{.topbar,footer,.receipt-actions,.no-print{display:none!important}.customer-shell{width:100%;margin:0}.customer-card{border:0;padding:0;box-shadow:none}body{background:white;color:black}.receipt-lines{page-break-inside:auto}}

.menu-heading{margin-bottom:18px}.portal-tools{padding:10px;gap:10px;border-radius:12px}.meal-availability-notice{font-size:12px;line-height:1.7;color:#6b592d;background:#faf3df;border:1px solid #e9ddba;border-radius:10px;padding:12px 15px;margin:12px 0 16px}.content-shell{min-height:55vh}.receipt-actions button{cursor:pointer}
body{margin:0}.primary{border:0;cursor:pointer}.customer-card .primary{color:#fff}.order-page .menu-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.portal-tabs{gap:6px}.portal-tabs a{text-decoration:none}.menu-search input{min-height:44px;font-size:14px}.receipt-totals strong{font-size:21px}.customer-card hr{border:0;border-top:1px solid var(--line);margin:24px 0}.meal-plans article{border:1px solid var(--line);border-radius:14px}.tiffin-enquiry-button{background:var(--brand);color:#fff;text-decoration:none}.hero-actions a,.visit-actions a{padding:12px 20px}.header-actions .nav-action{min-height:42px}.assistant-panel{border-radius:18px}.assistant-suggestions{scrollbar-width:none;overscroll-behavior-x:contain;scroll-snap-type:x proximity}.assistant-suggestions::-webkit-scrollbar{display:none}.assistant-suggestions button{scroll-snap-align:start}

/* Compact cards, predictable touch targets and safe narrow-screen wrapping. */
.dish-copy{min-width:0}.dish h3{overflow-wrap:anywhere}.payment-reference{overflow-wrap:anywhere;font-size:12px;line-height:1.6}
@media(max-width:600px){.order-page .ordering-layout{width:calc(100% - 20px);padding:12px;border-radius:16px}.order-page .menu-grid{grid-template-columns:minmax(0,1fr);gap:9px}.order-page .menu-grid .dish{min-height:0;padding:12px;align-items:center;gap:10px}.dish h3{margin:4px 0 6px;font-size:14px}.dish-type-line small{font-size:10px}.menu-grid .dish .dish-quantity button,.quantity button{min-width:36px;min-height:44px}.menu-grid .dish .dish-quantity{min-width:112px;max-width:120px}.order-page .menu-heading{align-items:flex-start;flex-wrap:wrap}.order-page .cart-panel.is-open{padding:18px 16px calc(16px + env(safe-area-inset-bottom));max-height:88dvh}.mobile-cart-bar{bottom:0;margin-bottom:calc(10px + env(safe-area-inset-bottom));padding:12px 16px}.order-page{padding-bottom:90px}.cart-summary .checkout{min-height:48px}.modal-card input,.modal-card textarea,.modal-card select{font-size:16px}}
