
/* =========================================================================
   SHARWAN HOME FOODS — Zomato-inspired single-file edition (UI/UX redesign)
   All core logic + IDs preserved. Theme: clean white sheet,
   restaurant-green accents, dark floating Menu pill, hero carousel.
   ========================================================================= */
:root{
  --ink:#1A1A1A; --ink-soft:#3B3B3B; --mute:#6B7280; --mute-2:#9CA3AF;
  --line:#E5E7EB; --line-2:#F1F2F4;
  --bg:#FFFFFF; --paper:#FFFFFF; --soft:#F9FAFB; --chip:#F3F4F6;
  --green:#1BA672; --green-dark:#10864F; --green-soft:#E8F7F0; --green-soft-2:#C8EEDB;
  --warn:#DC2626; --warn-soft:#FEE2E2;
  --brand:#E85A24; --brand-soft:#FFEDE3; --brand-soft-2:#FFD6BD;
  --ok:#0F8A5F; --ok-soft:#E8F7EF;
  --veg:#0F8A5F; --nonveg:#B91C1C;
  --radius:14px; --radius-lg:20px; --radius-xl:26px;
  --shadow-sm:0 1px 2px rgba(15,23,42,.04),0 1px 1px rgba(15,23,42,.04);
  --shadow:0 10px 28px -10px rgba(15,23,42,.18),0 4px 12px -6px rgba(15,23,42,.08);
  --shadow-lg:0 24px 60px -12px rgba(15,23,42,.28),0 8px 24px -8px rgba(15,23,42,.14);
}

/* ============================================================ */
/* DARK MODE — variable overrides + targeted inline-color fixes  */
/* Applied via [data-theme="dark"] on <html>. Default light.     */
/* ============================================================ */
html[data-theme="dark"]{
  --ink:#F1F2F4; --ink-soft:#C7CBD3; --mute:#8B91A1; --mute-2:#5C6270;
  --line:#262932; --line-2:#1B1D24;
  --bg:#0F1115; --paper:#181A20; --soft:#1B1D24; --chip:#23262F;
  --green:#22C283; --green-dark:#1BA672; --green-soft:rgba(27,166,114,.18); --green-soft-2:rgba(27,166,114,.30);
  --warn:#F87171; --warn-soft:rgba(220,38,38,.22);
  --brand:#FF6B36; --brand-soft:rgba(232,90,36,.18); --brand-soft-2:rgba(232,90,36,.32);
  --ok:#34D399; --ok-soft:rgba(15,138,95,.22);
  --veg:#34D399; --nonveg:#F87171;
  --shadow-sm:0 1px 2px rgba(0,0,0,.5),0 1px 1px rgba(0,0,0,.4);
  --shadow:0 10px 28px -10px rgba(0,0,0,.6),0 4px 12px -6px rgba(0,0,0,.4);
  --shadow-lg:0 24px 60px -12px rgba(0,0,0,.7),0 8px 24px -8px rgba(0,0,0,.5);
  color-scheme: dark;
}
html[data-theme="dark"] body{background:var(--bg);color:var(--ink)}
/* Inline-styled cards that hard-code white backgrounds — flip to surface color */
html[data-theme="dark"] [style*="background:#fff"],
html[data-theme="dark"] [style*="background: #fff"],
html[data-theme="dark"] [style*="background:#FFFFFF"],
html[data-theme="dark"] [style*="background: #FFFFFF"]{background:var(--paper) !important}
html[data-theme="dark"] [style*="background:#FDFBF7"],
html[data-theme="dark"] [style*="background:#FFF7EF"],
html[data-theme="dark"] [style*="background:#FFF8E1"],
html[data-theme="dark"] [style*="background:#FAFAF7"]{background:var(--soft) !important}
html[data-theme="dark"] [style*="color:#1A1A1A"],
html[data-theme="dark"] [style*="color:#2B1A1A"],
html[data-theme="dark"] [style*="color:#1F1611"]{color:var(--ink) !important}
html[data-theme="dark"] [style*="color:#3B3B3B"],
html[data-theme="dark"] [style*="color:#5C4636"]{color:var(--ink-soft) !important}
html[data-theme="dark"] [style*="border:1px solid #EBE5D9"],
html[data-theme="dark"] [style*="border:1.5px solid #EBE5D9"]{border-color:var(--line) !important}
html[data-theme="dark"] .botnav{background:var(--paper);border-top-color:var(--line)}
html[data-theme="dark"] .field input,
html[data-theme="dark"] .field textarea,
html[data-theme="dark"] .field select{background:var(--soft);color:var(--ink);border-color:var(--line)}
html[data-theme="dark"] input,
html[data-theme="dark"] textarea,
html[data-theme="dark"] select{color-scheme:dark}
html[data-theme="dark"] img[src*=".png"]{filter:brightness(.95)}
html[data-theme="dark"] .he-info,
html[data-theme="dark"] #authModal .auth-card,
html[data-theme="dark"] .drawer{background:var(--paper);color:var(--ink)}
/* ---- Login / Auth modal (dark) — full panel + all internals (fix) ---- */
html[data-theme="dark"] .auth-modal{background:rgba(0,0,0,.72)}
html[data-theme="dark"] .auth-modal .panel{background:var(--paper) !important;color:var(--ink);border:1px solid var(--line);box-shadow:0 24px 60px -12px rgba(0,0,0,.7),0 8px 24px -8px rgba(0,0,0,.5)}
html[data-theme="dark"] .auth-modal h2{color:var(--ink)}
html[data-theme="dark"] .auth-modal .sub,
html[data-theme="dark"] .auth-modal .sub b{color:var(--mute)}
html[data-theme="dark"] .auth-modal .panel-close{background:var(--chip);color:var(--ink);border:1px solid var(--line)}
html[data-theme="dark"] .auth-modal .panel-close:hover,
html[data-theme="dark"] .auth-modal .panel-close:active{background:var(--soft)}
html[data-theme="dark"] .auth-modal .field label{color:var(--ink-soft) !important}
html[data-theme="dark"] .auth-modal .field input,
html[data-theme="dark"] .auth-modal .field textarea,
html[data-theme="dark"] .auth-modal .field select{background:var(--soft) !important;color:var(--ink) !important;border:1.5px solid var(--line) !important}
html[data-theme="dark"] .auth-modal .field input::placeholder,
html[data-theme="dark"] .auth-modal .field textarea::placeholder{color:var(--mute-2) !important}
html[data-theme="dark"] .auth-modal .field input:focus,
html[data-theme="dark"] .auth-modal .field textarea:focus,
html[data-theme="dark"] .auth-modal .field select:focus{border-color:var(--green) !important;box-shadow:0 0 0 3px rgba(34,194,131,.22) !important}
html[data-theme="dark"] .auth-modal .btn.primary{background:var(--green);color:#fff;box-shadow:0 8px 18px -6px rgba(34,194,131,.45)}
html[data-theme="dark"] .auth-modal .btn.primary[disabled]{background:rgba(34,194,131,.30);color:#A7F3D0;opacity:1}
html[data-theme="dark"] .auth-modal .switch{color:var(--mute)}
html[data-theme="dark"] .auth-modal .switch button{color:var(--green) !important}
html[data-theme="dark"] .auth-modal #liGreetName{color:var(--green) !important}
html[data-theme="dark"] .auth-modal #liBack,
html[data-theme="dark"] .auth-modal #suBack{color:var(--green) !important}
html[data-theme="dark"] .auth-modal #liForgot{color:var(--mute) !important}
html[data-theme="dark"] .auth-modal .student-login-btn{box-shadow:0 8px 22px -6px rgba(232,90,36,.55),0 0 0 1px rgba(255,255,255,.04) inset}
/* Component-level dark overrides — same colors that were #fff become surface tones */
html[data-theme="dark"] .top-bar{background:var(--paper);border-bottom-color:var(--line)}
html[data-theme="dark"] .tb-logo{background:var(--paper);border-color:var(--line)}
html[data-theme="dark"] .tb-search:focus-within{background:var(--paper)}
html[data-theme="dark"] .search-results{background:var(--paper);border-bottom-color:var(--line)}
html[data-theme="dark"] .search-results .pill{background:var(--soft);border-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .info-sheet{background:var(--paper);box-shadow:0 -8px 24px -10px rgba(0,0,0,.6)}
html[data-theme="dark"] .filter-strip{background:var(--paper);border-bottom-color:var(--line)}
html[data-theme="dark"] .chip-filter{background:var(--soft);border-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .chip-filter.refresh{background:var(--soft);border-color:var(--soft);color:var(--green);box-shadow:0 0 0 1px var(--line)}
html[data-theme="dark"] .mo-card{background:var(--paper);border-color:var(--line)}
html[data-theme="dark"] .mi-add{background:var(--paper);border-color:var(--line);color:var(--green)}
html[data-theme="dark"] .item-sheet .panel,
html[data-theme="dark"] .hero-pop{background:var(--paper)}
html[data-theme="dark"] .hero-pop .footer .btn-secondary,
html[data-theme="dark"] .he-info-actions .btn-secondary{background:var(--soft);color:var(--ink);border-color:var(--line)}
html[data-theme="dark"] .is-head .thumb::before{background:var(--paper)}
html[data-theme="dark"] .menu-item{border-bottom-color:var(--line)}
html[data-theme="dark"] .cart-line,
html[data-theme="dark"] .qty-row,
html[data-theme="dark"] .total-row{border-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .btn-secondary{background:var(--soft);color:var(--ink);border-color:var(--line)}
html[data-theme="dark"] .btn.primary{color:#fff}
html[data-theme="dark"] code{background:var(--chip);color:var(--ink)}
html[data-theme="dark"] .back-link{color:var(--ink-soft)}
html[data-theme="dark"] .contact-card,
html[data-theme="dark"] .review-card{background:var(--paper);border-color:var(--line);color:var(--ink)}
/* ---- Item sheet (dark) — unified surface, no awkward color jumps ---- */
html[data-theme="dark"] .item-sheet .panel{background:var(--paper) !important;color:var(--ink) !important}
html[data-theme="dark"] .is-section{background:transparent !important;border:1px solid var(--line) !important;margin:10px 12px}
html[data-theme="dark"] .is-section .h .ttl{color:var(--ink) !important}
html[data-theme="dark"] .is-section .h .req{color:var(--mute) !important}
html[data-theme="dark"] .is-section .h .req .r{color:var(--ink) !important}
html[data-theme="dark"] .is-option{border-top-color:var(--line) !important;background:transparent !important}
html[data-theme="dark"] .is-option:hover,
html[data-theme="dark"] .is-option:active{background:rgba(255,255,255,.025) !important}
html[data-theme="dark"] .is-option .l,
html[data-theme="dark"] .is-option .r{color:var(--ink) !important}
html[data-theme="dark"] .is-head{border-bottom-color:var(--line) !important;background:var(--paper) !important}
html[data-theme="dark"] .is-head .nm{color:var(--ink) !important}
html[data-theme="dark"] .is-head .thumb{background:linear-gradient(135deg,#2A2018,#3A2B1F) !important}
html[data-theme="dark"] .is-head .thumb::before{background:var(--paper) !important;border-color:var(--veg)}
html[data-theme="dark"] .is-head .actions button{background:var(--soft) !important;color:var(--ink) !important;border-color:var(--line) !important}
/* Inline-styled cards inside the body ("What's inside" footer banner) */
html[data-theme="dark"] .item-sheet .panel > div[style*="background:#fff"],
html[data-theme="dark"] .is-body > div[style*="background:#fff"]{background:transparent !important}
html[data-theme="dark"] .item-sheet .panel [style*="background:#FFF7EF"],
html[data-theme="dark"] .item-sheet .panel [style*="background:#FFFAF5"],
html[data-theme="dark"] .item-sheet .panel [style*="background:#FFF7F0"]{background:rgba(232,90,36,.10) !important;border-color:rgba(232,90,36,.30) !important;color:var(--ink) !important}
html[data-theme="dark"] .item-sheet .panel [style*="color:#1A0F0A"],
html[data-theme="dark"] .item-sheet .panel [style*="color:#1A1A1A"]{color:var(--ink) !important}
html[data-theme="dark"] .item-sheet .panel [style*="color:#7A5A40"],
html[data-theme="dark"] .item-sheet .panel [style*="color:#5C4636"]{color:var(--ink-soft) !important}
/* Item-sheet footer (sticky CTA bar) — was hard-coded #fff */
html[data-theme="dark"] .is-foot{background:var(--paper) !important;border-top-color:var(--line) !important;box-shadow:0 -6px 18px -8px rgba(0,0,0,.6)}
html[data-theme="dark"] .is-qty{background:rgba(27,166,114,.14) !important;border-color:rgba(27,166,114,.55) !important}
html[data-theme="dark"] .is-qty button{color:#34D399 !important}
html[data-theme="dark"] .is-qty .v{color:#34D399 !important}
html[data-theme="dark"] .is-add[disabled]{background:rgba(27,166,114,.30) !important;color:#34D399 !important;box-shadow:none !important;opacity:1 !important}
html[data-theme="dark"] .is-add{box-shadow:0 8px 18px -6px rgba(34,194,131,.45) !important}
/* Scrollbar inside the item-sheet body */
html[data-theme="dark"] .is-body{scrollbar-color:var(--line) transparent;scrollbar-width:thin;background:var(--paper)}
html[data-theme="dark"] .is-body::-webkit-scrollbar{width:6px;background:transparent}
html[data-theme="dark"] .is-body::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px}
html[data-theme="dark"] .is-body::-webkit-scrollbar-track{background:transparent}
/* Close-circle (✕ above the sheet) */
html[data-theme="dark"] .is-close-circle{background:var(--paper) !important;color:var(--ink) !important;border:1px solid var(--line) !important;box-shadow:0 4px 10px -4px rgba(0,0,0,.6) !important}
/* "What's inside" + breakdown card */
html[data-theme="dark"] .item-sheet .panel [style*="background:#FFF7EF"],
html[data-theme="dark"] .item-sheet .panel [style*="background:#FFFAF5"]{background:var(--soft) !important;border-color:var(--line) !important;color:var(--ink) !important}
html[data-theme="dark"] .item-sheet .panel [style*="color:#1A0F0A"],
html[data-theme="dark"] .item-sheet .panel [style*="color:#1A1A1A"]{color:var(--ink) !important}
html[data-theme="dark"] .item-sheet .panel [style*="color:#7A5A40"],
html[data-theme="dark"] .item-sheet .panel [style*="color:#5C4636"]{color:var(--ink-soft) !important}
/* ---- Cart (drawer) dark ---- */
html[data-theme="dark"] .cart-item{color:var(--ink) !important}
html[data-theme="dark"] .cart-item .nm,
html[data-theme="dark"] .cart-item .price{color:var(--ink) !important}
html[data-theme="dark"] .cart-item .meta,
html[data-theme="dark"] .cart-item .sabzis{color:var(--mute) !important}
html[data-theme="dark"] .qtybar{background:var(--chip) !important}
html[data-theme="dark"] .qtybar button{color:var(--ink) !important;background:transparent !important}
html[data-theme="dark"] .qtybar .v{color:var(--ink) !important}
html[data-theme="dark"] #cartItems.empty{color:var(--mute) !important}
html[data-theme="dark"] .field label{color:var(--ink-soft) !important}
html[data-theme="dark"] .breakdown{background:var(--soft) !important;border-color:var(--line) !important}
html[data-theme="dark"] .breakdown .row,
html[data-theme="dark"] .breakdown .row.total{color:var(--ink) !important}
html[data-theme="dark"] .drawer .head{border-bottom-color:var(--line) !important}
html[data-theme="dark"] .drawer h2{color:var(--ink) !important}
html[data-theme="dark"] .drawer .close{color:var(--ink) !important}
/* ---- Cart drawer: form fields + every inline-styled banner ---- */
html[data-theme="dark"] .field input,
html[data-theme="dark"] .field textarea{background:var(--soft) !important;color:var(--ink) !important;border:1px solid var(--line) !important}
html[data-theme="dark"] .field input::placeholder,
html[data-theme="dark"] .field textarea::placeholder{color:var(--mute-2) !important}
html[data-theme="dark"] .field label{color:var(--ink-soft) !important}
/* Pay online · Secure checkout pill (green-soft bg with dark-green text) */
html[data-theme="dark"] .pay-info{background:rgba(27,166,114,.14) !important;border-color:rgba(27,166,114,.35) !important}
html[data-theme="dark"] .pay-info [style*="color:#065F46"]{color:#A7F3D0 !important}
/* Fast-delivery + bulk + takeaway inline rows */
html[data-theme="dark"] #cartFastDelRow{background:rgba(27,166,114,.14) !important;border-color:rgba(27,166,114,.35) !important}
html[data-theme="dark"] #cartFastDelRow label[style*="color:#065F46"]{color:#A7F3D0 !important}
html[data-theme="dark"] #cartBreakdown [style*="color:#065F46"]{color:#A7F3D0 !important}
html[data-theme="dark"] #cartBreakdown label[for="takeawayInline"]{
  background:rgba(27,166,114,.10) !important;
  border-color:rgba(27,166,114,.45) !important;
}
html[data-theme="dark"] #cartBreakdown label[for="takeawayInline"][style*="background:#E8F7EF"]{
  background:rgba(27,166,114,.18) !important;
}
/* ETA promise banner (cream → dark warm) */
html[data-theme="dark"] .he-eta-promise{background:rgba(232,90,36,.10) !important;border-color:rgba(232,90,36,.35) !important;color:#FFDDC5 !important}
html[data-theme="dark"] .he-eta-promise [style*="color:#7A2E0E"]{color:#FFDDC5 !important}
html[data-theme="dark"] .he-eta-promise [style*="color:#8C5A36"]{color:#E0B89A !important}
html[data-theme="dark"] .he-eta-promise [style*="color:#E85A24"]{color:#FF9466 !important}
/* Bulk alert (yellow → dark amber) */
html[data-theme="dark"] #cartBreakdown .alert[style*="#FFFBEB"]{background:rgba(245,158,11,.14) !important;color:#FCD34D !important;border-color:rgba(245,158,11,.40) !important}
/* Min-order alert (peach → dark warm) */
html[data-theme="dark"] #cartBreakdown .alert[style*="#FFF7ED"]{background:rgba(232,90,36,.12) !important;color:#FFDDC5 !important;border-color:rgba(232,90,36,.40) !important}
html[data-theme="dark"] #cartBreakdown .alert[style*="#FFF7ED"] b{color:#FFE9DA !important}
/* "Delivering to X" info row at the bottom */
html[data-theme="dark"] #cartBreakdown .info{background:rgba(27,166,114,.10) !important;color:#A7F3D0 !important;border-color:rgba(27,166,114,.30) !important}
/* You pay total row */
html[data-theme="dark"] #cartBreakdown .row-between[style*="border-top:1px solid"]{border-top-color:var(--line) !important}
html[data-theme="dark"] .bigprice{color:var(--ink) !important}
/* Cart-item remove button — kept high-contrast red */
html[data-theme="dark"] .cart-item .btn.danger{background:rgba(220,38,38,.16) !important;color:#FCA5A5 !important;border:1px solid rgba(220,38,38,.40) !important}
/* T&Cs label */
html[data-theme="dark"] #tcChk + span{color:var(--ink-soft) !important}
/* Address-zone chip strip when shown */
html[data-theme="dark"] #cartZones .chip{background:var(--soft) !important;border-color:var(--line) !important;color:var(--ink) !important}
html[data-theme="dark"] .drawer .foot{background:var(--paper) !important;border-top-color:var(--line) !important}
html[data-theme="dark"] .drawer .body{background:var(--bg) !important}
html[data-theme="dark"] .drawer header{background:var(--paper) !important}
/* ---- Empty-address highlight (light + dark) ---- */
@keyframes addrPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(232,90,36,0)}
  50%{box-shadow:0 0 0 4px rgba(232,90,36,.20)}
}
#cartAddr.empty-warn{border:1.5px solid #E85A24 !important;background:rgba(232,90,36,.06);animation:addrPulse 1.8s ease-in-out infinite}
html[data-theme="dark"] #cartAddr.empty-warn{background:rgba(232,90,36,.10);border-color:#FF8A55 !important}
#cartAddrHint{display:none;margin-top:4px;font-size:11.5px;color:#E85A24;font-weight:700}
#cartAddr.empty-warn ~ #cartAddrHint,
.field.has-addr-warn #cartAddrHint{display:flex;align-items:center;gap:4px}
/* Collapsible details block: hide native disclosure marker */
#cartDetailsBlock summary::-webkit-details-marker{display:none}
#cartDetailsBlock[open] #cartDetailsSummary > span:last-child::before{content:"";}
#cartDetailsBlock[open] #cartDetailsSummary > span:last-child{content:"";}
/* Hero menu cards (over the orange hero) keep their light surface — lock the
   text to a dark ink so dish names stay readable in dark mode. */
html[data-theme="dark"] .hero-slide.menu .item{color:#1A0F0A}
html[data-theme="dark"] .hero-slide.menu .item .name{color:#1A0F0A}
html[data-theme="dark"] .hero-slide.menu .item .cat{color:#E85A24}
html[data-theme="dark"] .hero-pop .pop-menu-grid .pmi{background:#FFFAF5;border-color:#EDD9C0}
html[data-theme="dark"] .hero-pop .pop-menu-grid .pmi .name{color:#1A0F0A}
html[data-theme="dark"] .hero-pop .pop-menu-grid .pmi .cat{color:#E85A24}
html[data-theme="dark"] .hero-pop .pop-menu-grid .pmi.empty{background:#FFF7EF;color:#7A5A40}
/* Google reviews card stays readable in dark mode */
html[data-theme="dark"] #googleReviewCard{background:linear-gradient(135deg,#1F2330 0%,#252B3A 100%) !important;border-color:#2F3647 !important;box-shadow:0 4px 14px -6px rgba(0,0,0,.5) !important}
html[data-theme="dark"] #googleReviewCard > div:nth-child(2) > div:first-child > span:first-child{color:var(--ink) !important}
html[data-theme="dark"] #googleReviewCard > div:nth-child(2) > div:last-child{color:var(--ink-soft) !important}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:'Plus Jakarta Sans','Outfit',-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;padding:0}
input,select,textarea{font-family:inherit;font-size:16px}
img{display:block;max-width:100%}
h1,h2,h3,h4{font-family:'Outfit',sans-serif;margin:0;letter-spacing:-.015em;color:var(--ink)}
.hidden{display:none !important}
.muted{color:var(--mute)}
.row-between{display:flex;align-items:center;justify-content:space-between}
.cap{text-transform:capitalize}

/* ---- TOP STICKY HEADER (search + actions) ---- */
.top-bar{position:sticky;top:0;left:0;right:0;z-index:60;background:#fff;border-bottom:1px solid var(--line-2);display:flex;align-items:center;gap:8px;padding:10px 12px}
.tb-btn{width:42px;height:42px;border-radius:50%;background:var(--chip);display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--ink);flex-shrink:0;border:1px solid transparent;transition:.15s}
.tb-btn:active{transform:scale(.95)}
.tb-btn.dark{background:#1E1E1E;color:#fff}
.tb-logo{width:52px;height:52px;border-radius:50%;background:#fff;border:1.5px solid var(--line-2);overflow:hidden;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;flex-shrink:0;transition:.15s;box-shadow:0 2px 8px -2px rgba(0,0,0,.12)}
.tb-logo img{width:100%;height:100%;object-fit:contain;display:block}
.tb-logo:active{transform:scale(.95)}
.tb-search{flex:1;display:flex;align-items:center;gap:8px;background:var(--chip);border-radius:999px;padding:10px 14px 10px 16px;cursor:text;border:1px solid transparent;transition:.15s;min-width:0;position:relative}
.tb-search:focus-within{border-color:var(--green);background:#fff}
.tb-search .ic{color:var(--green);font-size:16px;flex-shrink:0}
.tb-search input{border:0;background:transparent;outline:0;width:100%;font-size:14px;color:var(--ink)}
.tb-search input::placeholder{color:var(--mute-2);font-weight:500}
.tb-search .clear-x{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--mute-2);color:#fff;display:none;align-items:center;justify-content:center;font-size:12px;border:0;cursor:pointer;font-weight:800;line-height:1}
.tb-search.has-text .clear-x{display:flex}
.tb-search.has-text input{padding-right:4px}

/* ---- SEARCH RESULTS HORIZONTAL SCROLL (below top bar) ---- */
.search-results{position:sticky;top:62px;z-index:58;background:#fff;border-bottom:1px solid var(--line-2);padding:10px 0 12px;display:none;animation:fade .2s ease}
.search-results.on{display:block}
.search-results .hdr{display:flex;align-items:center;justify-content:space-between;padding:0 14px 6px;font-size:11px;font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.08em}
.search-results .hdr .count{color:var(--green);font-weight:800}
.search-results .row{display:flex;gap:10px;overflow-x:auto;padding:0 14px;scrollbar-width:none;scroll-snap-type:x mandatory}
.search-results .row::-webkit-scrollbar{display:none}
.search-results .pill{flex:0 0 auto;display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--green-soft-2);border-radius:14px;padding:8px 14px 8px 8px;cursor:pointer;scroll-snap-align:start;transition:.15s;box-shadow:0 2px 6px -2px rgba(15,23,42,.06)}
.search-results .pill:hover{border-color:var(--green);background:var(--green-soft)}
.search-results .pill .ic{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#FFF7F0,#FFEDE3);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;overflow:hidden}
.search-results .pill .ic img{width:100%;height:100%;object-fit:cover}
.search-results .pill .meta{display:flex;flex-direction:column;gap:1px;min-width:0}
.search-results .pill .nm{font-size:13px;font-weight:700;color:var(--ink);text-transform:capitalize;line-height:1.2;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.search-results .pill .pr{font-size:11.5px;font-weight:700;color:var(--green);font-family:'Outfit',sans-serif}
.search-results .empty{padding:18px 14px;text-align:center;color:var(--mute);font-size:12.5px;font-weight:600}
.tb-cart{position:relative}
.tb-cart .badge{position:absolute;top:-2px;right:-2px;min-width:18px;height:18px;border-radius:999px;background:var(--green);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 5px;border:2px solid #fff}

/* ---- HERO CAROUSEL ---- */
.hero{position:relative;width:100%;overflow:hidden;background:#111;height:380px}
.hero-track{display:flex;transition:transform .45s cubic-bezier(.4,0,.2,1);will-change:transform;height:100%}
.hero-slide{flex:0 0 100%;position:relative;overflow:hidden;display:flex;flex-direction:column;height:100%}
.hero-slide img{width:100%;height:100%;object-fit:cover;display:block}
.hero-slide.menu{display:flex;flex-direction:column;justify-content:flex-start;padding:14px 18px 48px;background:linear-gradient(135deg,#FF8554 0%,#E85A24 55%,#C8421E 100%);color:#fff;position:relative;overflow-y:auto;-webkit-overflow-scrolling:touch}
.hero-slide.menu::after{content:"";position:absolute;right:-60px;top:-60px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.08);pointer-events:none;z-index:1}
.hero-slide.menu .stamp{font-size:10px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;opacity:.9;margin-bottom:3px;position:relative;z-index:2;flex-shrink:0}
.hero-slide.menu h2{font-size:17px;font-weight:800;color:#fff;letter-spacing:-.015em;margin-bottom:2px;position:relative;z-index:2;line-height:1.1;flex-shrink:0}
.hero-slide.menu .date{font-size:10px;letter-spacing:.16em;font-weight:700;text-transform:uppercase;opacity:.85;margin-bottom:8px;position:relative;z-index:2;flex-shrink:0}
.hero-slide.menu .grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;position:relative;z-index:2;list-style:none;padding:0;margin:0}
.hero-slide.menu .item{background:rgba(255,255,255,.97);color:#1A0F0A;border-radius:11px;padding:9px 12px;display:flex;flex-direction:column;gap:2px;box-shadow:0 3px 8px -3px rgba(0,0,0,.15);min-width:0}
.hero-slide.menu .item .cat{font-size:9.5px;letter-spacing:.11em;color:var(--brand);text-transform:uppercase;font-weight:800;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hero-slide.menu .item .name{font-size:14px;color:var(--ink);font-weight:800;text-transform:capitalize;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:'Outfit',sans-serif;letter-spacing:-.005em}
.hero-cap{position:absolute;left:0;right:0;bottom:38px;text-align:center;color:#fff;font-family:'Outfit',sans-serif;font-weight:800;font-size:16px;letter-spacing:-.01em;text-shadow:0 2px 8px rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;gap:6px;pointer-events:none;z-index:3;padding:0 18px}
.hero-cap .arr{font-weight:400;opacity:.7;font-size:14px}
.hero-dots{position:absolute;left:0;right:0;bottom:14px;display:flex;justify-content:center;gap:5px;z-index:4}
.hero-dots span{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.45);transition:.2s;cursor:pointer}
.hero-dots span.on{background:#fff;width:20px;border-radius:6px}
.hero-slide{cursor:pointer}
.hero-slide:active{filter:brightness(.95)}

/* ── Menu-gate (pass v1): locked-card + missing-menu styling ──── */
.menu-item.he-locked{background:#F3F4F6 !important;border-color:#E5E7EB !important;position:relative}
.menu-item.he-locked .mi-name,
.menu-item.he-locked .mi-desc,
.menu-item.he-locked .mi-price,
.menu-item.he-locked .mi-reorder{opacity:.55 !important;color:#6B7280 !important}
.menu-item.he-locked .mi-img{filter:grayscale(1) opacity(.55) !important}
.menu-item.he-locked .mi-add{background:#E5E7EB !important;color:#9CA3AF !important;border-color:#D1D5DB !important;cursor:not-allowed !important;box-shadow:none !important;font-weight:800;font-size:11px;letter-spacing:.4px}
.menu-item.he-locked .mi-add .plus{display:none !important}
.menu-item.he-locked .mi-qty{opacity:.6 !important;pointer-events:none !important}
.menu-item.he-locked [data-open-item]{pointer-events:none !important;cursor:not-allowed !important}
.he-locked-pill{position:absolute;top:8px;left:8px;background:#FEF3C7;border:1px solid #FDE68A;color:#92400E;font-size:9.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:3px 7px;border-radius:6px;line-height:1.2;z-index:2;font-family:inherit}
.he-menu-missing{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:18px 16px;text-align:center;background:linear-gradient(135deg,#FEF3C7 0%,#FDE68A 100%);border:1.5px dashed #F59E0B;border-radius:14px;margin:6px 4px 4px;color:#92400E}
.he-menu-missing .ic{font-size:26px;line-height:1}
.he-menu-missing .ttl{font-size:14px;font-weight:900;color:#92400E;letter-spacing:.3px;font-family:'Outfit',sans-serif}
.he-menu-missing .sub{font-size:11.5px;font-weight:600;color:#B45309;max-width:280px;line-height:1.35}

/* ---- HERO POPUP (carousel detail modal) ---- */
.hero-pop-scrim{position:fixed;inset:0;background:rgba(20,11,5,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease}
.hero-pop-scrim.on{opacity:1;pointer-events:auto}
.hero-pop{background:#fff;width:100%;max-width:560px;border-radius:22px 22px 0 0;overflow:hidden;transform:translateY(20px);transition:transform .25s cubic-bezier(.34,1.32,.64,1);max-height:88vh;display:flex;flex-direction:column;box-shadow:0 -10px 40px -10px rgba(0,0,0,.35);position:relative}
.hero-pop-scrim.on .hero-pop{transform:translateY(0)}
.hero-pop .grip{position:absolute;top:8px;left:50%;transform:translateX(-50%);width:42px;height:4px;border-radius:999px;background:#E5D6CB;z-index:3}
.hero-pop .close{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92);border:0;display:inline-flex;align-items:center;justify-content:center;font-size:18px;color:var(--ink);cursor:pointer;z-index:3;box-shadow:0 4px 12px -2px rgba(0,0,0,.18);font-family:inherit}
.hero-pop .hero-img{width:100%;height:240px;object-fit:cover;display:block;background:#F3F4F6;flex-shrink:0}
.hero-pop .menu-cover{width:100%;height:180px;background:linear-gradient(135deg,#FF8554 0%,#E85A24 55%,#C8421E 100%);color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:18px;position:relative;flex-shrink:0;overflow:hidden}
.hero-pop .menu-cover::after{content:"";position:absolute;right:-50px;top:-50px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.1)}
.hero-pop .menu-cover .stamp{font-size:10px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;opacity:.92;margin-bottom:6px;position:relative;z-index:1}
.hero-pop .menu-cover h3{font-size:22px;font-weight:800;letter-spacing:-.01em;margin:0;position:relative;z-index:1;text-align:center;font-family:'Outfit',sans-serif}
.hero-pop .menu-cover .date{font-size:10px;letter-spacing:.16em;font-weight:700;text-transform:uppercase;opacity:.85;margin-top:6px;position:relative;z-index:1}
.hero-pop .body{padding:16px 18px 14px;overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1;min-height:0}
.hero-pop .body h3{font-size:18px;font-weight:800;color:var(--ink);letter-spacing:-.01em;margin:0 0 6px;line-height:1.25;font-family:'Outfit',sans-serif}
.hero-pop .body .desc{font-size:13.5px;color:var(--ink-soft);line-height:1.55;font-weight:500;margin-bottom:12px}
.hero-pop .pop-menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:2px 0 8px}
.hero-pop .pop-menu-grid .pmi{background:#FFFAF5;border:1px solid var(--line);border-radius:11px;padding:9px 11px;display:flex;flex-direction:column;gap:2px;min-width:0}
.hero-pop .pop-menu-grid .pmi .cat{font-size:9.5px;letter-spacing:.11em;color:var(--brand);text-transform:uppercase;font-weight:800;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hero-pop .pop-menu-grid .pmi .name{font-size:13px;color:var(--ink);font-weight:800;text-transform:capitalize;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:'Outfit',sans-serif}
.hero-pop .pop-menu-grid .pmi.empty{grid-column:1/-1;text-align:center;color:var(--mute);font-weight:600;background:#FFF7EF;border-style:dashed;padding:18px}
/* Serving-hours badges inside the popup */
.hero-pop .hp-hours-head{font-size:11px;font-weight:800;color:var(--mute);text-transform:uppercase;letter-spacing:.08em;margin:4px 0 6px;display:flex;align-items:center;gap:4px}
.hero-pop .hp-hours{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.hero-pop .hp-hour{display:flex;align-items:center;gap:8px;background:#FFFAF5;border:1px solid var(--line);border-radius:10px;padding:8px 11px;font-size:12.5px;color:var(--ink-soft);font-weight:600}
.hero-pop .hp-hour.on{background:#E8F7EF;border-color:#A7F3D0;color:#065F46}
.hero-pop .hp-hour .dot{width:8px;height:8px;border-radius:50%;background:#D4C5B7;flex-shrink:0}
.hero-pop .hp-hour.on .dot{background:#10B981;box-shadow:0 0 0 3px rgba(16,185,129,.22)}
.hero-pop .hp-hour .lbl{font-weight:800;color:var(--ink);min-width:78px}
.hero-pop .hp-hour.on .lbl{color:#065F46}
.hero-pop .hp-hour .tm{flex:1;text-align:right;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.hero-pop .hp-hour .now{font-size:9.5px;font-weight:800;color:#fff;background:#10B981;padding:2px 7px;border-radius:999px;letter-spacing:.04em;text-transform:uppercase;margin-left:6px;flex-shrink:0}
.hero-pop .footer{padding:12px 18px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#FFFAF5;display:flex;gap:8px;flex-shrink:0}
.hero-pop .footer .btn-primary{flex:2;background:linear-gradient(135deg,#FF7A47,#E85A24);color:#fff;border:0;padding:12px;border-radius:12px;font-weight:800;font-size:14px;cursor:pointer;font-family:inherit;letter-spacing:.2px;box-shadow:0 8px 18px -8px rgba(232,90,36,.5);display:inline-flex;align-items:center;justify-content:center;gap:6px}
.hero-pop .footer .btn-primary:hover,.hero-pop .footer .btn-primary:active{transform:translateY(-1px)}
.hero-pop .footer .btn-secondary{flex:1;background:#fff;color:var(--ink);border:1.5px solid var(--line);padding:12px;border-radius:12px;font-weight:800;font-size:13px;cursor:pointer;font-family:inherit}
@media (min-width:560px){
  .hero-pop{border-radius:22px;margin-bottom:5vh}
  .hero-pop-scrim{align-items:center}
}

/* ---- INFO / WARNING MODAL (reusable for min-order rule, alerts, etc.) ---- */
.he-info-scrim{position:fixed;inset:0;background:rgba(20,11,5,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:300;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .18s ease;padding:20px}
.he-info-scrim.on{opacity:1;pointer-events:auto}
.he-info{background:#fff;width:100%;max-width:420px;border-radius:18px;padding:24px 22px 18px;text-align:center;box-shadow:0 24px 48px -16px rgba(122,46,14,.35);transform:translateY(8px) scale(.98);transition:transform .22s cubic-bezier(.34,1.32,.64,1)}
.he-info-scrim.on .he-info{transform:translateY(0) scale(1)}
.he-info .he-info-ic{font-size:38px;line-height:1;margin-bottom:10px;display:inline-block}
.he-info h3{font-family:'Outfit','Plus Jakarta Sans',sans-serif;font-size:18px;font-weight:800;color:var(--ink);margin:0 0 8px;letter-spacing:-.01em}
.he-info-actions{display:flex;gap:8px;justify-content:center}
.he-info-actions .btn-primary{background:linear-gradient(135deg,#FF7A47,#E85A24);color:#fff;border:0;padding:11px 22px;border-radius:12px;font-weight:800;font-size:14px;cursor:pointer;font-family:inherit;flex:1;max-width:200px;box-shadow:0 8px 18px -8px rgba(232,90,36,.5);letter-spacing:.2px;transition:transform .15s}
.he-info-actions .btn-primary:hover,.he-info-actions .btn-primary:active{transform:translateY(-1px)}
.he-info-actions .btn-secondary{background:#fff;color:var(--ink);border:1.5px solid var(--line);padding:11px 18px;border-radius:12px;font-weight:800;font-size:13px;cursor:pointer;font-family:inherit;flex:1;max-width:140px}

/* ---- WHITE INFO SHEET (overlaps hero) ---- */
.info-sheet{background:#fff;border-radius:22px 22px 0 0;margin-top:-18px;position:relative;z-index:5;padding:14px 16px 6px;box-shadow:0 -8px 24px -10px rgba(0,0,0,.12)}
.info-sheet::before{content:"";display:block;width:42px;height:4px;border-radius:999px;background:#E5DCC9;margin:0 auto 12px}
.info-sheet h1{font-size:20px;font-weight:800;color:var(--ink);letter-spacing:.005em;line-height:1.1;display:flex;align-items:center;gap:6px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;padding-right:74px}
.info-sheet h1 .i{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--mute-2);color:var(--mute);font-size:11px;font-weight:800;font-style:italic;margin-left:4px;font-family:Georgia,serif;background:transparent;cursor:pointer;padding:0;transition:.15s;flex-shrink:0}
.info-sheet h1 .i:active{transform:scale(.9)}
.info-sheet h1 .i:hover{background:var(--mute-2);color:#fff}
/* Cuisine subtitle under restaurant name — Zomato-style muted text. */
.info-sheet .cuisine-line{font-size:12.5px;font-weight:600;color:var(--mute);margin:6px 0 0;letter-spacing:.01em;padding-right:74px}
.info-sheet .cuisine-line .dot{margin:0 6px;color:var(--mute-2);font-weight:800}
.info-sheet .rating-pill{position:absolute;top:22px;right:14px;background:var(--green);color:#fff;padding:7px 12px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:0;font-family:'Outfit',sans-serif;box-shadow:0 6px 14px -4px rgba(27,166,114,.4);border:0;cursor:pointer;transition:.15s}
.info-sheet .rating-pill:active{transform:scale(.96)}
.info-sheet .rating-pill .num{font-size:22px;font-weight:800;display:inline-flex;align-items:center;gap:5px;line-height:1;letter-spacing:.01em}
.info-sheet .rating-pill .num::after{content:"★";font-size:18px;line-height:1}
@media (max-width:360px){
  .info-sheet h1{font-size:17px;padding-right:64px}
  .info-sheet .rating-pill{padding:6px 10px}
  .info-sheet .rating-pill .num{font-size:18px}
  .info-sheet .rating-pill .num::after{font-size:14px}
}
.info-meta{display:flex;flex-direction:column;gap:6px;margin-top:8px;color:var(--ink)}
.info-meta .row{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}
.info-meta .row .ic{width:18px;height:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--mute)}
.info-meta .row.eta{color:var(--green);font-weight:700}
.info-meta .row.eta .ic{color:var(--green)}
.info-meta .row .chev{margin-left:auto;color:var(--mute);font-size:14px}
/* Clickable location row in the info sheet — reset button styles + give it a
   subtle hover so users know it opens "About Us → Visit our shop". */
.info-meta .info-loc{all:unset;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;font-family:inherit;padding:2px 0;width:100%;box-sizing:border-box;transition:opacity .15s}
.info-meta .info-loc:hover,.info-meta .info-loc:active{opacity:.7}
.info-meta .info-loc .ic{width:14px;height:14px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:var(--ink)}
.info-meta .info-loc .ic svg{display:block}
.trust-row{display:flex;gap:8px;margin:12px 0 6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.trust-row::-webkit-scrollbar{display:none}
.trust{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;background:var(--soft);border:1px solid var(--line);padding:8px 12px;border-radius:999px;font-size:12.5px;font-weight:600;color:var(--ink)}
.trust .check{color:var(--green);font-weight:900}
/* Branches row — same look-and-feel as the trust badge row. Each pill is a
   simple single-line text chip with a 📍 marker, address, and distance. */
.branches-row{display:flex;gap:8px;margin:4px 0 6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;-webkit-overflow-scrolling:touch}
.branches-row::-webkit-scrollbar{display:none}
.branch-pill{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;background:var(--soft);border:1px solid var(--line);padding:8px 12px;border-radius:999px;font-size:12.5px;font-weight:600;color:var(--ink);text-decoration:none;font-family:inherit;white-space:nowrap}
.branch-pill .pin{color:#E85A24;font-weight:900}
.branch-pill .dist{color:var(--green);font-weight:800;margin-left:2px}
.offer-strip{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-top:1px solid var(--line-2);margin-top:6px;font-size:13px}
.offer-strip .l{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--ink);min-width:0;flex:1}
.offer-strip .l .badge{width:18px;height:18px;border-radius:50%;background:#3B82F6;display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px;flex-shrink:0}
.offer-strip .r{display:flex;align-items:center;gap:4px;color:var(--mute);font-weight:600;flex-shrink:0}
.offer-strip .r .chev{font-size:11px}

/* ---- STICKY FILTER STRIP — sits BEHIND the floating Menu/View-Cart pills ---- */
.filter-strip{position:sticky;top:62px;z-index:30;background:#fff;padding:12px 12px 10px;border-bottom:1px solid var(--line-2);display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;align-items:center}
.filter-strip::-webkit-scrollbar{display:none}
.chip-filter{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;background:#fff;border:1.5px solid var(--green-soft-2);padding:8px 14px;border-radius:999px;font-size:13px;font-weight:600;color:var(--ink);transition:.15s;cursor:pointer;white-space:nowrap}
.chip-filter.refresh{color:var(--green);border-color:#fff;background:#fff;box-shadow:0 0 0 1px var(--line)}
.chip-filter.active-cat{background:var(--green);border-color:var(--green);color:#fff;font-weight:800;box-shadow:0 4px 12px -2px rgba(27,166,114,.35)}
.chip-filter.active-cat .ic{color:#fff}
.chip-filter .ic{color:var(--green);font-size:14px}
.chip-filter .x{color:var(--ink);opacity:.5;font-size:14px}

/* ---- SECTIONS ---- */
.section{padding:20px 14px 4px}
.section h2{font-size:22px;font-weight:800;color:var(--ink);letter-spacing:-.02em;display:flex;align-items:center;justify-content:space-between;gap:8px}
.section h2 .chev{color:var(--ink);font-size:14px;opacity:.6}
.section .sub{font-size:12px;color:var(--mute);margin-top:2px;font-weight:500}

/* ---- "MOST ORDERED TOGETHER" (Quick Picks) ---- */
.mo-row{display:flex;gap:12px;overflow-x:auto;padding:14px 14px 4px;scrollbar-width:none;scroll-snap-type:x mandatory}
.mo-row::-webkit-scrollbar{display:none}
.mo-card{flex:0 0 78%;max-width:300px;background:#fff;border:1.5px solid var(--green-soft-2);border-radius:14px;padding:0;overflow:hidden;scroll-snap-align:start;box-shadow:var(--shadow-sm)}
.mo-card.mo-closed{opacity:.6;filter:saturate(.7)}
.mo-card.mo-closed .mi-add{background:#F3F4F6 !important;border-color:#E5E7EB !important;color:var(--mute) !important;box-shadow:none !important}
.mo-card .imgs{display:flex;height:130px;position:relative;background:#FAFAF7}
.mo-card .imgs > div{flex:1;min-width:0;background:#FAFAF7 center/cover no-repeat;position:relative}
.mo-card .imgs .plus{display:none}
.mo-card .body{padding:10px 12px 12px}
.mo-card .tag{display:inline-flex;align-items:center;gap:5px;background:#FFF6CC;color:#5C4400;font-size:10px;font-weight:700;padding:3px 8px;border-radius:999px;margin-bottom:6px}
.mo-card .tag::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green);border:2px solid #fff;outline:1px solid var(--green)}
.mo-card .nm{font-size:13px;color:var(--ink);font-weight:700;text-transform:capitalize;line-height:1.3;margin-bottom:8px;min-height:34px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mo-card .ft{display:flex;justify-content:space-between;align-items:center}
.mo-card .pr{font-size:14px;font-weight:800;color:var(--ink);font-family:'Outfit',sans-serif}
.mo-card .see{display:inline-flex;align-items:center;gap:4px;background:var(--green-soft);color:var(--green);font-size:12.5px;font-weight:800;padding:7px 12px;border-radius:8px;border:1px solid var(--green-soft-2)}
/* Quick-pick card ADD button — uses same look as the main menu's mi-add */
.mo-card .ft .mi-add{position:static !important;transform:none !important;left:auto !important;bottom:auto !important;min-height:36px;min-width:auto;padding:7px 14px;font-size:12.5px}
.mo-card .ft .mi-add:active{transform:scale(.96) !important}

/* ---- VEG / NON-VEG DOT ---- */
.vdot{width:16px;height:16px;border:1.5px solid var(--veg);border-radius:3px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.vdot::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--veg)}

/* ---- MENU ITEM CARDS (Recommended for you) ---- */
.cat-section{padding:8px 14px 22px;scroll-margin-top:110px}
.cat-section .cat-title{font-size:22px;font-weight:800;color:var(--ink);letter-spacing:-.02em;margin:14px 0 14px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.cat-section .cat-title .chev{font-size:12px;color:var(--ink);opacity:.6;transform:rotate(180deg)}
/* Per-category serving-window badges */
.cat-badge-open,.cat-badge-closed{font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;letter-spacing:.01em;display:inline-flex;align-items:center;gap:4px;line-height:1.2}
.cat-badge-open{background:var(--green-soft);color:var(--green);border:1px solid var(--green-soft-2)}
.cat-badge-closed{background:#FEF3C7;color:#92400E;border:1px solid #FDE68A}
/* Out-of-window category — dim items + slightly faded section header */
.cat-section.cat-closed-now .cat-title{color:var(--mute)}
.cat-section.cat-closed-now .menu-item{opacity:.55;filter:saturate(.7)}
.cat-section.cat-closed-now .menu-item .mi-add{background:#F3F4F6 !important;border-color:#E5E7EB !important;color:var(--mute) !important;box-shadow:none !important}
.menu-item{display:flex;gap:14px;padding:16px 0;border-bottom:1px dashed var(--line);align-items:flex-start}
.menu-item:last-child{border-bottom:0}
.mi-info{flex:1;min-width:0;padding-top:2px}
.mi-flags{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.mi-flags .chili{color:#DC2626;font-size:13px}
.mi-name{font-size:17px;font-weight:800;color:var(--ink);letter-spacing:-.012em;line-height:1.25;margin-bottom:6px;text-transform:capitalize;word-break:break-word}
.mi-reorder{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--mute);font-weight:600;margin-bottom:6px}
.mi-reorder .bar{width:54px;height:5px;border-radius:999px;background:var(--line);overflow:hidden;position:relative}
.mi-reorder .bar::after{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--bar-w, 0%);background:var(--bar-c, var(--green));transition:width .5s cubic-bezier(.4,0,.2,1)}
.mi-price{font-size:15px;font-weight:800;color:var(--ink);font-family:'Outfit',sans-serif;margin-bottom:6px;display:flex;align-items:center;gap:8px}
.mi-price .strike{color:var(--mute-2);font-weight:600;text-decoration:line-through;font-size:13px}
.mi-price .off{color:#3B82F6;font-size:11px;font-weight:800;letter-spacing:.04em}
.mi-desc{font-size:12.5px;color:var(--mute);line-height:1.5;font-weight:500;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.mi-desc .more{color:var(--ink);font-weight:700}
.mi-actions{display:flex;gap:12px;margin-top:10px}
.mi-actions .act{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--mute);font-size:13px}
.mi-right{position:relative;flex-shrink:0;width:132px}
.mi-img{width:132px;height:128px;border-radius:14px;overflow:hidden;background:linear-gradient(135deg,#FFF7F0,#FFEDE3);display:flex;align-items:center;justify-content:center;font-size:48px;box-shadow:var(--shadow-sm)}
.mi-img img{width:100%;height:100%;object-fit:cover}
.mi-add{position:absolute;left:50%;transform:translateX(-50%);bottom:-14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#fff;border:1.5px solid var(--green-soft-2);color:var(--green);padding:11px 26px;border-radius:10px;font-weight:800;font-size:14px;letter-spacing:.04em;box-shadow:0 4px 12px -2px rgba(27,166,114,.18);text-transform:uppercase;transition:.15s;min-width:96px;min-height:44px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;z-index:3}
.mi-add:active{transform:translateX(-50%) scale(.97)}
.mi-add .plus{font-weight:600}
.mi-add[disabled]{opacity:.5;color:var(--mute);pointer-events:none}
/* ---- Zomato-style quantity stepper that REPLACES .mi-add once item is in cart ---- */
.mi-qty{position:absolute;left:50%;transform:translateX(-50%);bottom:-14px;display:inline-flex;align-items:stretch;background:var(--green);border:1.5px solid var(--green);color:#fff;border-radius:10px;font-weight:800;font-size:14px;box-shadow:0 6px 16px -3px rgba(27,166,114,.42);min-width:112px;min-height:44px;overflow:hidden;z-index:3;touch-action:manipulation;-webkit-tap-highlight-color:transparent;font-family:'Outfit',sans-serif}
.mi-qty button{background:transparent;border:0;color:#fff;font-weight:800;font-size:22px;line-height:1;padding:0 14px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:inherit;min-width:38px;transition:background .12s}
.mi-qty button:active{background:rgba(255,255,255,.16);transform:scale(.94)}
.mi-qty button:disabled{opacity:.55;pointer-events:none}
.mi-qty .v{display:flex;align-items:center;justify-content:center;min-width:24px;font-size:16px;font-weight:800;font-family:inherit;font-variant-numeric:tabular-nums;padding:0 4px}
.mi-custom{position:absolute;left:50%;transform:translateX(-50%);bottom:-32px;font-size:10.5px;color:var(--mute);font-weight:600;white-space:nowrap}
/* Quick-pick (mo-card) variant — static so it sits in the .ft row, not overlapping the image */
.mo-card .ft .mi-qty{position:static;transform:none;min-height:36px;min-width:auto;box-shadow:none;border-radius:8px}
.mo-card .ft .mi-qty button{padding:0 12px;font-size:18px;min-width:32px}
.mo-card .ft .mi-qty .v{font-size:14px;min-width:18px}
html[data-theme="dark"] .mi-qty{box-shadow:0 6px 18px -3px rgba(0,0,0,.55)}

/* ---- FLOATING "MENU" PILL — bottom-right, just above the bottom nav ---- */
.float-menu{position:fixed;right:14px;bottom:104px;z-index:80;background:#1E1E1E;color:#fff;padding:12px 18px;border-radius:14px;display:flex;align-items:center;gap:8px;font-weight:800;font-size:15px;font-family:'Outfit',sans-serif;box-shadow:0 14px 30px -8px rgba(0,0,0,.45),0 4px 12px -2px rgba(0,0,0,.22);transition:.2s;border:0;letter-spacing:.01em}
.float-menu:active{transform:scale(.96)}
.float-menu .ic{font-size:16px}

/* ---- BOTTOM SHEET: CATEGORY LIST ---- */
.cat-sheet{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.55);display:none;align-items:flex-end;justify-content:center;backdrop-filter:blur(2px);pointer-events:none}
.cat-sheet.on{pointer-events:auto}
.cat-sheet.on{display:flex;animation:fade .25s ease}
.cat-sheet .panel{background:#1E1E1E;color:#fff;border-radius:24px 24px 0 0;width:100%;max-width:520px;padding:20px 18px 28px;max-height:80vh;overflow-y:auto;animation:slideup .3s cubic-bezier(.4,0,.2,1);position:relative}
.cat-sheet .panel::before{content:"";display:block;width:44px;height:4px;border-radius:999px;background:#3C3C3C;margin:0 auto 16px}
.cat-sheet .panel h3{font-size:18px;font-weight:800;color:#fff;margin-bottom:14px}
.cat-sheet .panel .item{display:flex;justify-content:space-between;align-items:center;padding:14px 4px;border-bottom:1px solid rgba(255,255,255,.08);font-size:15px;font-weight:600;color:#fff;cursor:pointer}
.cat-sheet .panel .item:last-child{border-bottom:0}
.cat-sheet .panel .item .ct{color:#9CA3AF;font-size:13px;font-weight:600}
.cat-sheet .panel .close-x{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;background:#3C3C3C;color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;border:0}

/* ---- BOTTOM SHEET: ITEM DETAIL ---- */
.item-sheet{position:fixed;inset:0;z-index:210;background:rgba(0,0,0,.55);display:none;align-items:flex-end;justify-content:center;backdrop-filter:blur(2px);pointer-events:none}
.item-sheet.on{pointer-events:auto}
.item-sheet.on{display:flex;animation:fade .25s ease}
.item-sheet .panel{background:#fff;width:100%;max-width:520px;border-radius:24px 24px 0 0;max-height:92vh;overflow:hidden;display:flex;flex-direction:column;animation:slideup .3s cubic-bezier(.4,0,.2,1);position:relative}
.is-close-circle{position:absolute;top:-46px;left:50%;transform:translateX(-50%);width:36px;height:36px;border-radius:50%;background:#1E1E1E;color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;border:0;font-weight:600;z-index:5}
.is-head{padding:16px 18px 12px;display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line-2)}
.is-head .thumb{width:48px;height:48px;border-radius:10px;background:linear-gradient(135deg,#FFF7F0,#FFEDE3);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;position:relative;overflow:hidden}
.is-head .thumb img{width:100%;height:100%;object-fit:cover}
.is-head .thumb::before{content:"";position:absolute;left:4px;top:4px;width:14px;height:14px;border:1.5px solid var(--veg);border-radius:2px;background:#fff;display:flex;align-items:center;justify-content:center}
.is-head .thumb::after{content:"";position:absolute;left:8px;top:8px;width:6px;height:6px;border-radius:50%;background:var(--veg);z-index:2}
.is-head .nm{flex:1;font-size:17px;font-weight:800;color:var(--ink);letter-spacing:-.012em;line-height:1.25;text-transform:capitalize}
.is-head .actions{display:flex;gap:8px}
.is-head .actions button{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--mute);display:flex;align-items:center;justify-content:center;font-size:14px}
.is-body{flex:1;overflow-y:auto;padding:0 0 16px;background:#F7F7F8}
.is-section{background:#fff;margin:10px 12px;border-radius:14px;overflow:hidden}
.is-section .h{padding:14px 16px 8px}
.is-section .h .ttl{font-size:18px;font-weight:800;color:var(--ink);letter-spacing:-.015em}
.is-section .h .req{font-size:11.5px;color:var(--mute);font-weight:600;margin-top:2px}
.is-section .h .req .r{color:var(--ink);font-weight:700}
.is-option{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;gap:14px;border-top:1px solid var(--line-2);cursor:pointer;width:100%;text-align:left}
.is-option .l{display:flex;align-items:center;gap:12px;font-size:14.5px;font-weight:700;color:var(--ink);flex:1;min-width:0}
.is-option .l > span:not(.vdot-sm){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.is-option .l .vdot-sm{width:14px;height:14px;border:1.4px solid var(--veg);border-radius:2px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.is-option .l .vdot-sm::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--veg)}
.is-option .r{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700;color:var(--ink);font-family:'Outfit',sans-serif}
.is-option .rad{width:20px;height:20px;border-radius:50%;border:2px solid var(--green);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.is-option .rad::after{content:"";width:10px;height:10px;border-radius:50%;background:transparent;transition:.15s}
.is-option.on .rad::after{background:var(--green)}
.is-option .chk{width:20px;height:20px;border-radius:5px;border:2px solid var(--green);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}
.is-option.on .chk{background:var(--green)}
.is-option.on .chk::after{content:"✓";color:#fff;font-size:13px;font-weight:900}
.is-foot{background:#fff;border-top:1px solid var(--line);padding:14px 14px calc(14px + env(safe-area-inset-bottom));display:flex;gap:12px;align-items:center}
.is-qty{display:flex;align-items:center;background:var(--green-soft);border:1.5px solid var(--green);border-radius:10px;padding:6px 8px}
.is-qty button{width:28px;height:28px;border-radius:6px;color:var(--green);font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center}
.is-qty .v{min-width:24px;text-align:center;font-weight:800;color:var(--green);font-size:15px;font-family:'Outfit',sans-serif}
.is-add{flex:1;background:var(--green);color:#fff;padding:14px;border-radius:10px;font-size:15.5px;font-weight:800;text-align:center;letter-spacing:.01em;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 8px 18px -6px rgba(27,166,114,.45);transition:.15s;border:0}
.is-add:active{transform:scale(.98)}
.is-add[disabled]{opacity:.6}

/* ---- DRAWER (Cart & Orders) ---- */
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:100;opacity:0;pointer-events:none;transition:opacity .25s ease;backdrop-filter:blur(2px)}
.scrim.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;right:0;top:0;bottom:0;width:100%;max-width:440px;background:#fff;z-index:110;transform:translateX(100%);transition:.3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;box-shadow:-8px 0 32px -8px rgba(0,0,0,.25)}
.drawer.on{transform:translateX(0)}
.drawer header{padding:16px 18px 12px;border-bottom:1px solid var(--line);position:relative;flex-shrink:0}
.drawer header h2{font-size:18px;font-weight:800;color:var(--ink)}
.drawer header .close-x{position:absolute;top:12px;right:14px;width:34px;height:34px;border-radius:50%;background:var(--chip);color:var(--ink);font-size:18px;border:0;display:flex;align-items:center;justify-content:center}
.drawer .body{flex:1;overflow-y:auto;padding:14px 16px}
.drawer .foot{padding:14px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff;flex-shrink:0}
/* ---- NEW cart-item layout (industry-standard, clean rows) ---- */
.cart-item{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:14px 0;margin-bottom:0;display:grid;grid-template-columns:18px 1fr auto;gap:12px;align-items:center}
.cart-item:last-child{border-bottom:0}
.cart-item .veg{width:14px;height:14px;border-radius:3px;border:1.5px solid var(--green);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;align-self:flex-start;margin-top:7px}
.cart-item .veg::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--green)}
.cart-item .veg.nv{border-color:var(--brand)}
.cart-item .veg.nv::after{background:var(--brand)}
.cart-item .info{min-width:0;background:transparent !important;border:0 !important;padding:0 !important}
.cart-item .nm{font-weight:700;font-size:15px;color:var(--ink);font-family:'Outfit',sans-serif;line-height:1.25;letter-spacing:-.005em;text-transform:capitalize}
.cart-item .subline{margin-top:3px;font-size:12px;color:var(--mute);font-weight:500;line-height:1.4;text-transform:capitalize;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.cart-item .right{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}
.cart-item .qtybar{display:flex;align-items:center;gap:0;background:var(--green-soft);border:1.5px solid var(--green);border-radius:8px;padding:0;height:28px;min-width:84px}
.cart-item .qtybar button{width:28px;height:100%;border-radius:0;background:transparent;color:var(--green);font-weight:800;font-size:16px;display:flex;align-items:center;justify-content:center;line-height:1;padding:0}
.cart-item .qtybar button:first-child{border-radius:6px 0 0 6px}
.cart-item .qtybar button:last-child{border-radius:0 6px 6px 0}
.cart-item .qtybar .v{min-width:28px;text-align:center;font-weight:800;font-size:14px;color:var(--green);font-family:'Outfit',sans-serif}
.cart-item .price{color:var(--ink);font-weight:800;font-family:'Outfit',sans-serif;font-size:15px;white-space:nowrap;font-variant-numeric:tabular-nums}
/* "+ Add more items" link */
.cart-add-more{display:flex;align-items:center;gap:8px;padding:14px 0 4px;margin-top:6px;background:transparent;border:0;color:var(--green);font-size:14.5px;font-weight:800;font-family:'Outfit',sans-serif;cursor:pointer;letter-spacing:-.005em;width:100%;text-align:left;-webkit-tap-highlight-color:transparent}
.cart-add-more svg{flex-shrink:0}
.cart-add-more:active{opacity:.7}
/* Dessert upsell strip */
.cart-upsell{margin-top:14px;background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:12px}
.cart-upsell .head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.cart-upsell .head .ttl{font-family:'Outfit',sans-serif;font-weight:800;font-size:13.5px;color:var(--ink);letter-spacing:-.005em;display:flex;align-items:center;gap:6px}
.cart-upsell .head .tag{margin-left:auto;background:var(--brand-soft);color:var(--brand);font-size:9.5px;letter-spacing:.06em;font-weight:800;padding:2px 7px;border-radius:999px;text-transform:uppercase;white-space:nowrap}
.cart-upsell .row{display:flex;gap:9px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.cart-upsell .row::-webkit-scrollbar{display:none}
.cart-upsell .card{flex:0 0 130px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:6px;text-align:left}
.cart-upsell .card .thumb{width:100%;height:78px;border-radius:8px;background:var(--chip) center/cover no-repeat}
.cart-upsell .card .nm{font-weight:700;font-size:12px;color:var(--ink);line-height:1.25;font-family:'Outfit',sans-serif;text-transform:capitalize;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:30px}
.cart-upsell .card .foot{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:auto}
.cart-upsell .card .pr{font-weight:800;font-size:12.5px;color:var(--ink);font-family:'Outfit',sans-serif;font-variant-numeric:tabular-nums}
.cart-upsell .card .pr.muted{color:var(--mute);font-weight:600;font-size:11px}
.cart-upsell .card .add{background:transparent;border:1.5px solid var(--green);color:var(--green);font-size:11px;font-weight:800;padding:3px 9px;border-radius:6px;cursor:pointer;font-family:inherit;letter-spacing:.02em;text-transform:uppercase;-webkit-tap-highlight-color:transparent}
.cart-upsell .card .add:active{transform:scale(.94)}
.cart-upsell .card .add.added{background:var(--green);color:#fff}
html[data-theme="dark"] .cart-item .qtybar{background:rgba(27,166,114,.14) !important;border-color:rgba(27,166,114,.55) !important}
html[data-theme="dark"] .cart-item .qtybar button,
html[data-theme="dark"] .cart-item .qtybar .v{color:#34D399 !important}
html[data-theme="dark"] .cart-item .nm,
html[data-theme="dark"] .cart-item .price{color:var(--ink) !important}
html[data-theme="dark"] .cart-item .subline{color:var(--mute) !important}
html[data-theme="dark"] .cart-item{border-bottom-color:var(--line) !important;background:transparent !important}
html[data-theme="dark"] .cart-upsell{background:var(--soft) !important;border-color:var(--line) !important}
html[data-theme="dark"] .cart-upsell .card{background:var(--paper) !important;border-color:var(--line) !important}
.empty{text-align:center;color:var(--mute);font-size:13px;padding:30px 0;font-weight:500}
/* Bigger empty-state in My Orders + cart drawer + cart list */
.policy .empty,#cartItems.empty,#ordersListInline .empty,#ordersList .empty{font-size:14px;padding:64px 24px;line-height:1.6}
.policy .empty::before,#cartItems.empty::before,#ordersListInline .empty::before,#ordersList .empty::before{content:"📭";display:block;font-size:42px;margin-bottom:12px;opacity:.6}
#cartItems.empty::before{content:"🛒"}
.bigprice{color:var(--ink);font-size:20px;font-weight:800;font-family:'Outfit',sans-serif}
.alert{background:var(--warn-soft);border:1px solid #FECACA;color:var(--warn);padding:10px 12px;border-radius:10px;font-size:13px;font-weight:600;display:flex;gap:8px;align-items:flex-start}
.info{background:var(--green-soft);border:1px solid var(--green-soft-2);color:#065F46;padding:10px 12px;border-radius:10px;font-size:13px;font-weight:600;margin-top:8px}

/* form fields */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.field label{font-size:11.5px;font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.08em}
.field input,.field textarea,.field select{padding:11px 13px;border-radius:10px;border:1.5px solid var(--line);background:#fff;outline:none;width:100%;transition:.15s;color:var(--ink)}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(27,166,114,.12)}
.field textarea{resize:none;min-height:60px}

/* generic button */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 18px;border-radius:12px;font-weight:800;font-size:14px;width:100%;transition:.15s;border:0;font-family:inherit}
.btn.primary{background:var(--green);color:#fff;box-shadow:0 6px 14px -4px rgba(27,166,114,.35)}
/* ---- Cart footer: tall split-style Place Order button (Zomato/Swiggy style) ---- */
.drawer .foot .btn.place-order{
  padding:0;height:64px;border-radius:14px;font-size:16px;width:100%;
  display:grid;grid-template-columns:auto 1fr;align-items:center;
  gap:0;text-align:left;letter-spacing:.005em;
  box-shadow:0 10px 22px -8px rgba(27,166,114,.50);
  position:relative;overflow:hidden;
}
.drawer .foot .btn.place-order .po-amt{
  padding:0 18px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  line-height:1;border-right:1px solid rgba(255,255,255,.22);height:44px;
}
.drawer .foot .btn.place-order .po-amt .v{
  font-size:20px;font-weight:800;font-family:'Outfit',sans-serif;letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;
}
.drawer .foot .btn.place-order .po-amt .l{
  font-size:9.5px;letter-spacing:.16em;font-weight:800;opacity:.85;margin-top:4px;text-transform:uppercase;
}
.drawer .foot .btn.place-order .po-cta{
  padding:0 18px;display:flex;align-items:center;justify-content:center;gap:8px;
  font-size:16px;font-weight:800;font-family:'Outfit',sans-serif;
}
.drawer .foot .btn.place-order .po-cta svg{flex-shrink:0}
.drawer .foot .btn.place-order:active{transform:scale(.985)}
.drawer .foot .btn.place-order[disabled],
.drawer .foot .btn.place-order.is-disabled{
  display:flex;align-items:center;justify-content:center;
  grid-template-columns:none;font-size:14.5px;
  background:#9CA3AF !important;color:#fff;opacity:1;
  box-shadow:0 2px 6px -2px rgba(0,0,0,.18) !important;
  padding:0 18px;
  cursor:pointer; /* stays clickable so we can route taps to a helpful popup */
}
.drawer .foot .btn.place-order[disabled] .po-amt,
.drawer .foot .btn.place-order[disabled] .po-cta,
.drawer .foot .btn.place-order.is-disabled .po-amt,
.drawer .foot .btn.place-order.is-disabled .po-cta{display:none}
.drawer .foot{padding:14px 16px calc(14px + env(safe-area-inset-bottom)) !important}
html[data-theme="dark"] .drawer .foot .btn.place-order[disabled],
html[data-theme="dark"] .drawer .foot .btn.place-order.is-disabled{background:#374151 !important}
.btn.primary:active{transform:scale(.98)}
.btn.primary[disabled]{opacity:.55;box-shadow:none}
.btn.ghost{background:transparent;border:1.5px solid var(--green);color:var(--green)}
.btn.danger{background:transparent;border:1.5px solid #FECACA;color:var(--warn)}

.chip{display:inline-flex;align-items:center;gap:6px;background:var(--green-soft);border:1px solid var(--green-soft-2);color:#065F46;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:600;cursor:pointer}

/* payment toggle */
.pay-toggle{display:flex;gap:0;border:1.5px solid var(--line);border-radius:12px;overflow:hidden;margin:8px 0 10px}
.pay-toggle button{flex:1;padding:10px 8px;font-size:12.5px;font-weight:700;background:#fff;color:var(--mute);border:0;display:flex;align-items:center;justify-content:center;gap:6px}
.pay-toggle button.active{background:var(--green-soft);color:var(--green);font-weight:800}

/* floating cart pill — in FRONT (z-index 80) so it stays above the category strip when scrolling */
.float-cart{position:fixed;left:50%;transform:translate(-50%,20px);z-index:80;opacity:0;pointer-events:none;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--green);color:#fff;padding:10px 18px 10px 10px;border-radius:18px;font-family:'Outfit',sans-serif;font-weight:700;font-size:14px;box-shadow:0 14px 28px -6px rgba(27,166,114,.5),0 4px 12px -2px rgba(27,166,114,.3);bottom:calc(80px + env(safe-area-inset-bottom));border:0;transition:opacity .25s ease,transform .25s cubic-bezier(.34,1.32,.64,1);will-change:transform,opacity;letter-spacing:.01em;width:calc(100vw - 28px);max-width:480px;-webkit-tap-highlight-color:transparent;text-align:left}
.float-cart.on{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.float-cart:active{transform:translate(-50%,1px) scale(.99)}
.float-cart.is-empty{padding:13px 18px}
.float-cart .fc-stack{display:flex;align-items:center;flex-shrink:0;min-width:36px;height:42px}
.float-cart.is-empty .fc-stack{display:none}
.float-cart .fc-stack .fc-thumb{width:42px;height:42px;border-radius:50%;border:2px solid #fff;background:#fff;overflow:hidden;display:block;box-shadow:0 2px 6px -1px rgba(0,0,0,.25)}
.float-cart .fc-stack .fc-thumb + .fc-thumb{margin-left:-14px}
.float-cart .fc-stack .fc-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.float-cart .fc-mid{flex:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-width:0;line-height:1.15}
.float-cart .fc-line1{font-size:14.5px;font-weight:800;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.float-cart .fc-items-lbl{font-weight:600;opacity:.9}
.float-cart .fc-line2{font-size:13px;font-weight:800;opacity:.95}
.float-cart .fc-cta{display:inline-flex;align-items:center;gap:4px;font-size:15px;font-weight:800;flex-shrink:0;letter-spacing:.01em}
.float-cart .fc-arrow{font-size:18px;opacity:.95;line-height:1}
@media (max-width:360px){
  .float-cart{padding:8px 14px 8px 8px;gap:8px}
  .float-cart .fc-stack .fc-thumb{width:36px;height:36px}
  .float-cart .fc-stack{height:36px;min-width:32px}
  .float-cart .fc-line1{font-size:13.5px}
  .float-cart .fc-line2{font-size:12px}
  .float-cart .fc-cta{font-size:14px}
}

/* bottom nav */
.botnav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);z-index:90;display:grid;grid-template-columns:repeat(5,1fr);padding:6px 0 calc(6px + env(safe-area-inset-bottom))}
.botnav.guest-hidden{display:none}
.botnav button{padding:6px 4px;min-height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10.5px;color:var(--mute-2);font-weight:700;position:relative;background:transparent;border:0;cursor:pointer;transition:color .15s;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
.botnav button .ic{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center}
.botnav button .ic svg{width:22px;height:22px;display:block;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:stroke-width .15s}
.botnav button.on .ic svg{stroke-width:2.1}
.botnav button.on{color:var(--green)}
.botnav button.on::before{content:"";position:absolute;top:-6px;left:50%;transform:translateX(-50%);width:36px;height:3px;border-radius:0 0 6px 6px;background:var(--green)}
.botnav .cart-badge{position:absolute;top:0;right:24%;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--green);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center}


/* MOBILE NAV TAP RELIABILITY — enlarge My Orders/Account hit areas and keep the
   raised Refresh Menu artwork from intercepting neighbouring taps. */
#botnav button[data-view="orders"],#botnav button[data-view="account"]{
  z-index:4;min-width:0;width:100%;min-height:58px;touch-action:manipulation;pointer-events:auto;
}
#botnav button[data-view="orders"]::after,#botnav button[data-view="account"]::after{
  content:"";position:absolute;inset:-4px -2px;z-index:-1;
}
#refreshMenuNav{z-index:2;pointer-events:auto}
#refreshMenuNav .menu-refresh-circle,#refreshMenuNav .menu-refresh-circle *{pointer-events:none}
@media (pointer:coarse){
  .botnav{padding-top:4px}
  .botnav button{min-height:58px}
  #botnav button[data-view="orders"],#botnav button[data-view="account"]{padding-left:2px;padding-right:2px}
}

/* Refresh Menu — central action between My Orders and Account */
.botnav .menu-refresh-nav{overflow:visible;color:var(--green);padding-top:2px}
.botnav .menu-refresh-nav::before{display:none!important}
.botnav .menu-refresh-circle{width:48px;height:48px;margin-top:-23px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,var(--green),var(--green-dark));color:#fff;border:3px solid var(--paper,#fff);box-shadow:none!important;filter:none!important;text-shadow:none!important;position:relative;transition:transform .18s ease}
.botnav .menu-refresh-nav:active .menu-refresh-circle{transform:scale(.92)}
.botnav .menu-refresh-circle svg{width:25px!important;height:25px!important;stroke:#fff!important;fill:none!important;stroke-width:2.15!important;stroke-linecap:round!important;stroke-linejoin:round!important;filter:none!important;box-shadow:none!important;text-shadow:none!important}
.botnav .menu-refresh-circle svg path{fill:none!important;stroke:#fff!important;filter:none!important;box-shadow:none!important;text-shadow:none!important}
.botnav .menu-refresh-nav.refreshing .menu-refresh-circle{animation:none!important;box-shadow:none!important;filter:none!important}
.botnav .menu-refresh-nav.refreshing .menu-refresh-circle svg{animation:heRefreshSpin .62s linear infinite;transform-origin:50% 50%}
.botnav .menu-refresh-nav.refreshing .menu-refresh-circle::after{content:"";position:absolute;width:52px;height:52px;border-radius:50%;border:2px solid rgba(27,166,114,.35);animation:heRefreshRing 1s ease-out infinite;pointer-events:none}
.botnav .menu-refresh-label{font-size:9.5px;font-weight:800;margin-top:-1px;white-space:nowrap;color:var(--green-dark)}
@keyframes heRefreshSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes heRefreshButtonPulse{0%,100%{box-shadow:none}50%{box-shadow:none}}
@keyframes heRefreshRing{0%{transform:scale(.78);opacity:.8}100%{transform:scale(1.35);opacity:0}}
.he-refresh-scrim{position:fixed;inset:0;z-index:9999;background:rgba(13,27,24,.48);backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center;padding:24px}
.he-refresh-scrim.on{display:flex;animation:heRefreshFade .18s ease both}
.he-refresh-card{width:min(330px,90vw);background:var(--paper,#fff);border-radius:24px;padding:28px 24px;text-align:center;box-shadow:0 22px 60px rgba(0,0,0,.25);animation:heRefreshPop .28s cubic-bezier(.2,.9,.25,1.15) both}
.he-refresh-icon{width:68px;height:68px;margin:0 auto 15px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(27,166,114,.12);color:var(--green)}
.he-refresh-icon svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;animation:heRefreshSpin .72s linear infinite}
.he-refresh-scrim.done .he-refresh-icon svg{animation:none}
.he-refresh-scrim.done .he-refresh-icon{background:rgba(27,166,114,.14)}
.he-refresh-title{font-size:19px;font-weight:800;color:var(--ink);margin-bottom:6px}
.he-refresh-sub{font-size:13px;font-weight:600;color:var(--mute);line-height:1.45}
@keyframes heRefreshFade{from{opacity:0}to{opacity:1}}
@keyframes heRefreshPop{from{opacity:0;transform:scale(.88) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}
@media(max-width:370px){.botnav .menu-refresh-circle{width:42px;height:42px}.botnav button{font-size:9.5px}}
/* Refresh Menu: intentionally shadow-free */
#refreshMenuNav,#refreshMenuNav .menu-refresh-circle,#refreshMenuNav .menu-refresh-circle svg,#refreshMenuNav .menu-refresh-circle path{box-shadow:none!important;text-shadow:none!important;filter:none!important;-webkit-filter:none!important;}


/* INSTANT MOBILE TAB TRANSITIONS — destination paints first, backend work follows. */
.he-tab-loading{position:fixed;left:50%;bottom:calc(76px + env(safe-area-inset-bottom));transform:translateX(-50%) translateY(8px);z-index:89;display:flex;align-items:center;gap:9px;padding:9px 14px;border-radius:999px;background:rgba(255,255,255,.97);border:1px solid rgba(15,23,42,.08);box-shadow:0 8px 24px rgba(15,23,42,.12);font-size:12px;font-weight:800;color:var(--ink);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .14s ease,transform .14s ease,visibility .14s}
.he-tab-loading.on{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.he-tab-loading .spin{width:17px;height:17px;border-radius:50%;border:2px solid rgba(27,166,114,.2);border-top-color:var(--green);animation:heTabSpin .62s linear infinite;flex:0 0 auto}
@keyframes heTabSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.he-tab-loading .spin{animation-duration:1.2s}.he-tab-loading{transition:none}}


/* NAV HIT-ZONE ROOT FIX — each of the five grid cells owns only its own touch area. */
#botnav{isolation:isolate;contain:layout style;touch-action:manipulation;}
#botnav>button{position:relative!important;z-index:1!important;width:100%!important;min-width:0!important;pointer-events:auto!important;touch-action:manipulation!important;}
#botnav>button::after{display:none!important;}
#botnav>#refreshMenuNav{z-index:1!important;}
#botnav>#refreshMenuNav .menu-refresh-circle{pointer-events:none!important;}
/* NAV v4 — native mobile taps + cheaper page layout. */
#botnav>button{min-height:58px!important;overflow:visible;transform:translateZ(0);}
#botnav>button[data-view]{-webkit-tap-highlight-color:transparent;touch-action:manipulation;}
main>.view:not(.hidden){contain:layout paint style;}
@media (pointer:coarse){#botnav>button{min-height:62px!important;padding-top:7px!important;padding-bottom:7px!important;}}

/* GUEST CTA — big animated "Login Now" button shown when state.loggedIn is false.
   Replaces the bottom nav for unauthenticated visitors. */
.guest-cta{position:fixed;left:0;right:0;bottom:0;z-index:50;background:linear-gradient(180deg,rgba(255,255,255,0) 0%,#fff 26%);padding:18px 14px calc(14px + env(safe-area-inset-bottom));display:none;pointer-events:none}
.guest-cta.on{display:block;animation:guestSlideUp .55s cubic-bezier(.34,1.56,.64,1) both;pointer-events:auto}
.guest-cta-btn{position:relative;width:100%;background:linear-gradient(135deg,var(--green) 0%,var(--green-dark) 100%);color:#fff;font-family:'Outfit',sans-serif;font-weight:800;font-size:17px;padding:18px 22px;border-radius:18px;border:0;display:flex;align-items:center;justify-content:center;gap:12px;letter-spacing:.01em;cursor:pointer;overflow:hidden;box-shadow:0 14px 40px -10px rgba(27,166,114,.55),0 4px 12px -2px rgba(27,166,114,.35);transition:transform .15s cubic-bezier(.34,1.56,.64,1)}
.guest-cta-btn:active{transform:scale(.97)}
.guest-cta-btn::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0%, rgba(255,255,255,.4) 0%, transparent 60%);pointer-events:none;animation:guestPulse 2.4s ease-in-out infinite}
.guest-cta-btn::after{content:"";position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.55) 50%,transparent 100%);transform:skewX(-22deg);animation:guestShimmer 2.8s ease-in-out infinite;pointer-events:none}
.guest-cta-btn .lock{position:relative;z-index:2;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-size:16px;animation:guestBob 1.6s ease-in-out infinite;flex-shrink:0}
.guest-cta-btn .label{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;line-height:1.15;text-align:left}
.guest-cta-btn .label .t1{font-size:17px;font-weight:800;letter-spacing:.01em}
.guest-cta-btn .label .t2{font-size:11px;font-weight:600;opacity:.85;letter-spacing:.04em;text-transform:uppercase;margin-top:2px}
.guest-cta-btn .arrow{position:relative;z-index:2;margin-left:auto;font-size:22px;animation:guestArrow 1.2s ease-in-out infinite}
.guest-cta-hint{position:relative;z-index:1;text-align:center;margin-top:10px;font-size:11.5px;color:var(--mute);font-weight:600}
.guest-cta-hint .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin:0 6px 1px;vertical-align:middle;animation:guestDot 1.6s ease-in-out infinite}

@keyframes guestSlideUp{
  0%{transform:translateY(100%);opacity:0}
  100%{transform:translateY(0);opacity:1}
}
@keyframes guestPulse{
  0%,100%{opacity:.55}
  50%{opacity:1}
}
@keyframes guestShimmer{
  0%{left:-100%}
  60%{left:120%}
  100%{left:120%}
}
@keyframes guestBob{
  0%,100%{transform:translateY(0) rotate(-4deg)}
  50%{transform:translateY(-3px) rotate(4deg)}
}
@keyframes guestArrow{
  0%,100%{transform:translateX(0)}
  50%{transform:translateX(4px)}
}
@keyframes guestDot{
  0%,100%{transform:scale(1);opacity:1}
  50%{transform:scale(1.6);opacity:.4}
}

/* welcome (logged-out) hero — reuses the same restaurant page but blocks cart */
.welcome-cta{padding:14px;display:flex;flex-direction:column;align-items:center;gap:8px}
.welcome-cta .order-now{width:100%;background:linear-gradient(135deg,#FF8554 0%,var(--brand) 60%,#C8421E 100%);color:#fff;font-family:'Outfit',sans-serif;font-weight:800;font-size:16px;padding:18px;border-radius:16px;border:0;display:flex;align-items:center;justify-content:center;gap:10px;letter-spacing:.01em;box-shadow:0 12px 28px -8px rgba(232,90,36,.5);position:relative;overflow:hidden}
.welcome-cta .hint{font-size:11.5px;color:var(--mute);font-weight:600;text-align:center}

/* auth modal */
.auth-modal{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:14px;pointer-events:none}
.auth-modal.on{pointer-events:auto}
.auth-modal.on{display:flex}
.auth-modal .panel{background:#fff;border-radius:24px;max-width:440px;width:100%;max-height:92vh;overflow-y:auto;padding:24px;position:relative;box-shadow:var(--shadow-lg)}
.auth-modal .panel-close{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;background:var(--chip);color:var(--ink);font-size:18px;border:0;display:flex;align-items:center;justify-content:center}
.auth-modal h2{font-size:24px;font-weight:800;color:var(--ink);letter-spacing:-.02em;margin-bottom:4px}
.auth-modal .sub{font-size:13px;color:var(--mute);margin-bottom:18px}
.auth-modal .switch{margin-top:14px;text-align:center;font-size:13px;color:var(--mute)}
.auth-modal .switch button{color:var(--green);font-weight:800;padding:4px 6px}
/* Student Login (DigiKhata) link — orange-themed gradient button under the
   primary green "Continue" CTA on the phone-entry step. */
.auth-modal .student-login-btn{display:flex;align-items:center;gap:11px;width:100%;margin-top:10px;padding:11px 14px;border-radius:14px;text-decoration:none;background:linear-gradient(135deg,#FF7A47 0%,#E85A24 100%);color:#fff;box-shadow:0 8px 18px -8px rgba(232,90,36,.55);transition:transform .15s,box-shadow .15s;font-family:inherit;letter-spacing:.01em;border:0;cursor:pointer}
.auth-modal .student-login-btn:hover,.auth-modal .student-login-btn:active{transform:translateY(-1px);box-shadow:0 12px 24px -8px rgba(232,90,36,.62)}
.auth-modal .student-login-btn .dk-logo{width:34px;height:34px;border-radius:9px;background:rgba(255,255,255,.18);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}
.auth-modal .student-login-btn .dk-col{display:flex;flex-direction:column;min-width:0;flex:1;text-align:left;line-height:1.2}
.auth-modal .student-login-btn .dk-title{font-size:14px;font-weight:800;color:#fff;letter-spacing:.005em}
.auth-modal .student-login-btn .dk-sub{font-size:10.5px;font-weight:700;color:rgba(255,255,255,.88);margin-top:2px;letter-spacing:.06em;text-transform:uppercase}
.auth-modal .student-login-btn .dk-arr{font-size:18px;font-weight:800;color:#fff;opacity:.95;margin-left:4px}

/* toast */
.toast{position:fixed;left:50%;transform:translate(-50%,150%);bottom:calc(96px + env(safe-area-inset-bottom));z-index:400;background:#1E1E1E;color:#fff;padding:11px 18px;border-radius:999px;font-size:13px;font-weight:700;box-shadow:var(--shadow-lg);opacity:0;transition:.3s;max-width:90vw;text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}
.toast.err{background:#B91C1C}
.toast.ok{background:var(--green)}

/* status banner */
.status-banner{position:fixed;top:14px;left:50%;transform:translate(-50%,-150%);z-index:250;background:var(--green);color:#fff;padding:14px 18px;border-radius:16px;font-weight:700;font-size:14px;box-shadow:0 16px 36px -8px rgba(0,0,0,.4);display:flex;align-items:center;gap:12px;max-width:92vw;width:380px;opacity:0;pointer-events:none;transition:.35s cubic-bezier(.4,0,.2,1)}
.status-banner.on{opacity:1;pointer-events:auto;transform:translate(-50%,0);width:fit-content;max-width:92vw}
.status-banner.warn{background:#B91C1C}
.status-banner.brand{background:linear-gradient(135deg,#1BA672,#10864F)}
.status-banner .sb-ic{font-size:26px;line-height:1;flex-shrink:0}
.status-banner .sb-txt{flex:1;min-width:0}
.status-banner .sb-ttl{font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;opacity:.85;margin-bottom:2px}
.status-banner .sb-msg{font-family:'Outfit',sans-serif;font-weight:800;font-size:15px;line-height:1.25}
.status-banner .sb-close{flex-shrink:0;background:rgba(255,255,255,.18);width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;border:0}

/* policy pages (about/contact/terms/privacy/refund) — bottom padding leaves
   clear breathing room above the fixed bottom-nav + footer so content
   never feels cramped. */
.policy{padding:14px 16px 160px;max-width:760px;margin:0 auto;min-height:calc(100vh - 200px)}
.policy h1{font-size:26px;font-weight:800;margin-bottom:6px;color:var(--ink);letter-spacing:-.02em}
.policy .last{font-size:12px;color:var(--mute);margin-bottom:14px}
.policy h3{font-size:15px;font-weight:800;color:var(--ink);margin:18px 0 6px}
.policy p,.policy li{font-size:13.5px;color:var(--ink-soft);line-height:1.6}
.policy ul{padding-left:18px;margin:6px 0}
.policy .highlight{background:var(--green-soft);border-left:3px solid var(--green);padding:10px 14px;border-radius:0 12px 12px 0;margin:12px 0;font-size:13px;color:#065F46}
.policy .map-wrap{position:relative;margin:10px 0 18px;border-radius:14px;overflow:hidden;background:#F3F4F6;border:1px solid var(--line);box-shadow:0 6px 18px -12px rgba(122,46,14,.25)}
.policy .map-wrap iframe{display:block;width:100%;height:240px;border:0}
.policy .map-cta{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);background:#fff;color:var(--ink);font-weight:800;font-size:13px;padding:9px 16px;border-radius:999px;box-shadow:0 6px 16px -4px rgba(0,0,0,.22);text-decoration:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);font-family:inherit;white-space:nowrap;transition:transform .15s,box-shadow .15s}
.policy .map-cta:hover,.policy .map-cta:active{transform:translateX(-50%) translateY(-1px);box-shadow:0 10px 22px -6px rgba(0,0,0,.28)}
@media (min-width:480px){ .policy .map-wrap iframe{height:300px} }
.policy .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.policy .contact-card{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:14px;text-align:center}
.policy .contact-card .ic{font-size:24px;margin-bottom:4px}
.policy .contact-card .label{font-size:10.5px;font-weight:800;color:var(--mute);text-transform:uppercase;letter-spacing:.08em}
.policy .contact-card .val{font-size:13px;font-weight:700;color:var(--ink);margin-top:2px}
.policy .back-link{display:inline-flex;align-items:center;gap:6px;color:var(--green);font-weight:800;font-size:13px;margin-bottom:14px;background:transparent;border:0;cursor:pointer}

/* footer */
.site-footer{background:#1A1A1A;color:rgba(255,255,255,.7);padding:28px 16px calc(220px + env(safe-area-inset-bottom));margin-top:24px}
.site-footer .brand-row{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.site-footer .brand-row .logo{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#FF7A47,var(--brand));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800}
.site-footer .brand-row .logo-img{background:#fff;padding:2px;object-fit:contain;border:1px solid rgba(255,255,255,.2)}
.site-footer .brand-row .nm{color:#fff;font-weight:800;font-size:14px}
.site-footer .info-row{font-size:12px;line-height:1.7;margin-bottom:10px}
.site-footer .info-row span{display:block}
.site-footer .links{display:flex;flex-wrap:wrap;gap:14px;margin:12px 0}
.site-footer .links a,.site-footer .links button{color:rgba(255,255,255,.85);font-size:12px;font-weight:700;background:transparent;border:0;cursor:pointer;text-decoration:none}
.site-footer .copy{font-size:11px;color:rgba(255,255,255,.4);border-top:1px solid rgba(255,255,255,.1);padding-top:12px;margin-top:8px}

/* cancel + closed + tc modals */
.he-modal{position:fixed;inset:0;z-index:260;background:rgba(0,0,0,.6);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;padding:14px;pointer-events:none}
.he-modal.on{display:flex;pointer-events:auto}
.he-modal .box{background:#fff;border-radius:22px;max-width:440px;width:100%;padding:24px;box-shadow:var(--shadow-lg);max-height:90vh;overflow-y:auto;position:relative}
.he-modal .ic-circle{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 12px}
.he-modal h3{font-size:19px;font-weight:800;color:var(--ink);text-align:center;margin-bottom:6px}
.he-modal .sub{font-size:13px;color:var(--mute);text-align:center;margin-bottom:14px;line-height:1.5}
.he-modal .actions{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.he-modal .close-x{position:absolute;top:12px;right:14px;width:32px;height:32px;border-radius:50%;background:var(--chip);color:var(--ink);font-size:18px;border:0;display:flex;align-items:center;justify-content:center}
.cancel-fee-line{font-size:12px;color:var(--mute);margin-top:6px;font-weight:600;padding:6px 10px;background:#FEF3C7;border-radius:8px;display:inline-block}
.cancel-order-btn{margin-top:8px;width:100%;background:transparent;border:1.5px solid #FECACA;color:var(--warn);padding:9px 12px;border-radius:10px;font-weight:800;font-size:12.5px;cursor:pointer;font-family:inherit;position:relative;z-index:3;pointer-events:auto;touch-action:manipulation}
.wa-refund-btn{margin-top:8px;display:flex;align-items:center;justify-content:center;gap:8px;background:#25D366;color:#fff;padding:10px 12px;border-radius:10px;font-weight:800;font-size:13px;text-decoration:none;border:0;width:100%;cursor:pointer;font-family:inherit}
.dl-receipt-btn:hover{background:#0d6e4e}

/* notif CTA */
.notif-cta{background:linear-gradient(135deg,#E8F7F0,#C8EEDB);border:1.5px solid var(--green-soft-2);border-radius:14px;padding:12px 14px;margin-bottom:14px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:.15s}
.notif-cta.granted{background:linear-gradient(135deg,#E8F7F0,#C8EEDB);border-color:var(--green)}
.notif-cta .ic{font-size:24px;flex-shrink:0}
.notif-cta .txt{flex:1;min-width:0}
.notif-cta .ttl{font-size:13px;font-weight:800;color:var(--ink);line-height:1.2}
.notif-cta .sub{font-size:11px;color:var(--mute);margin-top:2px;font-weight:500;line-height:1.4}
.notif-cta .arrow{color:var(--green);font-size:18px}

/* orders date filter */
.od-filter{display:flex;gap:6px;margin:10px 0 14px;flex-wrap:wrap;align-items:center}
.od-filter .od-f-btn{padding:7px 14px;border-radius:999px;background:#fff;border:1.5px solid var(--line);color:var(--mute);font-size:12px;font-weight:700;cursor:pointer;font-family:inherit}
.od-filter .od-f-btn.active{background:var(--green);color:#fff;border-color:var(--green)}
.od-filter .od-f-range{display:flex;gap:6px;align-items:center;flex-wrap:wrap;width:100%;margin-top:6px}
.od-filter .od-f-range label{font-size:11px;color:var(--mute);font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.od-filter .od-f-range input{padding:6px 8px;border:1px solid var(--line);border-radius:8px;font-size:12px}

/* page hides */
.view{min-height:60vh}
/* PERF: contain layout/style of the visible view so tab-switch reflows
   are scoped to the active section, not the whole document. */
.view:not(.hidden){contain:layout style}

/* animations */
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes slideup{from{transform:translateY(40%);opacity:0}to{transform:translateY(0);opacity:1}}

/* hidden helpers (kept for legacy IDs the JS targets but are no longer visible) */
.legacy-stub{position:absolute;width:1px;height:1px;clip:rect(0 0 0 0);overflow:hidden}

/* tablet / desktop */
@media (min-width:780px){
  body{font-size:15px}
  .hero{height:420px}
  .menu-item{padding:20px 0}
  .mi-img{width:160px;height:154px}
  .mi-right{width:160px}
}
