/* Tandoor on-site ordering: cart drawer + checkout. Matches site tokens. */
#t-cart-btn{position:fixed;right:16px;bottom:96px;z-index:1200;display:flex;align-items:center;gap:8px;
  background:var(--red);color:#fff;border:0;border-radius:999px;padding:13px 18px;font-size:1rem;font-weight:800;
  font-family:inherit;cursor:pointer;box-shadow:0 10px 28px rgba(159,45,31,.35)}
#t-cart-btn .t-count{background:#fff;color:var(--red);border-radius:999px;min-width:24px;height:24px;
  display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;padding:0 6px}
#t-cart-btn.hidden{display:none}
@media(min-width:761px){#t-cart-btn{bottom:28px;right:28px}}
#t-scrim{position:fixed;inset:0;background:rgba(20,14,10,.55);z-index:1290;opacity:0;pointer-events:none;transition:opacity .25s}
#t-scrim.open{opacity:1;pointer-events:auto}
#t-drawer{position:fixed;top:0;right:0;bottom:0;width:min(430px,100%);z-index:1300;background:var(--bg);
  transform:translateX(105%);transition:transform .28s ease;display:flex;flex-direction:column;
  box-shadow:-18px 0 48px rgba(61,35,16,.25)}
#t-drawer.open{transform:none}
.t-d-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}
.t-d-head h2{margin:0;font-size:1.25rem;color:var(--ink)}
.t-d-close{background:none;border:0;font-size:1.6rem;line-height:1;cursor:pointer;color:var(--muted);padding:4px 8px}
.t-d-back{background:none;border:0;font-size:.9rem;font-weight:700;cursor:pointer;color:var(--red);padding:6px 4px;margin-left:auto;margin-right:8px;white-space:nowrap}
.t-d-body{flex:1;overflow-y:auto;padding:20px 20px;min-height:0;overflow-x:hidden}
/* Walk fix #16 (2026-10-26): the drawer body is a column flex so its
   last child (the upsell block) can pin to the bottom — see the
   .t-upsell rule below. */
.t-d-body{display:flex;flex-direction:column}
.t-d-foot{border-top:1px solid var(--line);padding:6px 12px 8px;background:var(--surface);margin-top:auto}
.t-empty{text-align:center;color:var(--muted);padding:48px 12px}
.t-empty p{margin:6px 0 18px}
.t-line{display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px dotted var(--line)}
.t-line .t-lname{flex:1;font-weight:700;color:var(--ink);font-size:.95rem}
.t-line .t-lprice{color:var(--muted);font-size:.85rem}
.t-qty{display:flex;align-items:center;gap:8px}
.t-qty button{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:var(--surface);
  font-size:1.05rem;font-weight:800;cursor:pointer;color:var(--ink);line-height:1}
.t-qty span{min-width:22px;text-align:center;font-weight:800}
.t-lsum{font-weight:800;min-width:64px;text-align:right}
.t-totals{margin:2px 0 4px;font-size:.8rem}
.t-totals .t-row{display:flex;justify-content:space-between;padding:2px 0;color:var(--muted)}
.t-totals .t-row.grand{font-size:.95rem;font-weight:800;color:var(--ink);border-top:1px solid var(--line);margin-top:3px;padding-top:4px}
/* Walk fix #10 completion (LEG 2B, 2026-10-26): the checkout foot's
   totals rows are built as .t-trow, which had NO rule — Subtotal /
   tax / Total painted as run-together inline spans. They now get the
   same spread + grand styling as the cart foot's .t-row rows. */
.t-totals .t-trow{display:flex;justify-content:space-between;padding:2px 0;color:var(--muted)}
.t-totals .t-trow.total{font-size:.95rem;font-weight:800;color:var(--ink);border-top:1px solid var(--line);margin-top:3px;padding-top:4px}
.t-btn{width:100%;background:var(--red);color:#fff;border:0;border-radius:10px;padding:11px;font-size:1rem;
  font-weight:800;font-family:inherit;cursor:pointer;touch-action:manipulation}
.t-btn:disabled{opacity:.55;cursor:wait}
.t-btn.secondary{background:var(--surface-2);color:var(--ink);border:1px solid var(--line);margin-top:10px}
.t-field{margin:0 0 12px}
.t-field label{display:block;font-weight:700;font-size:.9rem;margin-bottom:5px;color:var(--ink)}
.t-field input,.t-field textarea,.t-field select{width:100%;padding:11px 12px;border-radius:8px;border:1px solid var(--line);
  background:var(--surface);color:var(--ink);font-size:1rem;font-family:inherit;box-sizing:border-box}
.t-field textarea{resize:vertical;min-height:64px}
.t-fulfill{display:flex;gap:10px;margin-bottom:12px}
.t-fulfill label{flex:1;border:1px solid var(--line);border-radius:10px;padding:12px;text-align:center;cursor:pointer;
  font-weight:800;background:var(--surface)}
.t-fulfill input{position:absolute;opacity:0;pointer-events:none}
.t-fulfill label.sel{border-color:var(--red);background:#fff;color:#201a16;box-shadow:0 0 0 1px var(--red)}
.t-iframe-box{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:11px 12px;min-height:48px;box-sizing:border-box}
.t-iframe-box iframe{width:100%!important}
.t-err{background:#fdeceb;border:1px solid #f3b7ac;color:#8c2318;border-radius:8px;padding:10px 12px;margin:0 0 12px;font-size:.92rem}
.t-secure{font-size:.75rem;color:var(--muted);text-align:center;margin-top:6px}
.t-min-note{font-size:.88rem;text-align:center;margin:10px 0 4px;padding:8px 10px;border-radius:8px;background:#fff7e6;color:#8a5a00}
.t-success{text-align:center;padding:36px 10px}
.t-success .t-check{font-size:3rem}
.t-success h3{color:var(--ink);margin:12px 0 6px}
.t-success p{color:var(--muted)}
.t-success .t-ref{background:var(--surface-2);border:1px dashed var(--line);border-radius:8px;padding:10px;margin:14px 0;font-weight:800}
.add-btn{margin-top:8px;background:var(--red);color:#fff;border:0;border-radius:999px;padding:8px 18px;
  font-weight:800;font-size:.88rem;font-family:inherit;cursor:pointer}
.add-btn:active{transform:scale(.96)}
.dish{position:relative}
#t-mod-modal{position:fixed;inset:0;z-index:2000;background:rgba(24,14,8,.55);display:flex;
  align-items:center;justify-content:center;padding:18px;box-sizing:border-box}
.t-mm-card{background:var(--surface);border-radius:16px;max-width:440px;width:100%;max-height:86vh;
  display:flex;flex-direction:column;overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.35)}
.t-mm-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}
.t-mm-head h3{margin:0;font-size:1.05rem;color:var(--ink)}
.t-mm-body{padding:4px 16px;overflow-y:auto}
.t-mm-q{padding:10px 0;border-bottom:1px dashed var(--line)}
.t-mm-q:last-child{border-bottom:0}
.t-mm-qt{font-weight:800;margin-bottom:6px;color:var(--ink)}
.t-star{color:var(--red);font-weight:800}
.t-req{font-size:.7rem;font-weight:800;color:var(--red);border:1px solid var(--red);border-radius:999px;padding:1px 8px;margin-left:6px;white-space:nowrap}
.t-mm-opt{display:flex;align-items:center;gap:10px;padding:9px 4px;font-size:.95rem;cursor:pointer;color:var(--ink)}
.t-mm-opt input{width:18px;height:18px;accent-color:var(--red);flex:none}
.t-mm-price{margin-left:auto;color:var(--muted);font-weight:700;white-space:nowrap}
.t-mm-err{color:#8c2318;font-size:.88rem;padding:6px 16px 0}
.t-mm-foot{display:flex;gap:10px;padding:14px 16px;border-top:1px solid var(--line)}
.t-mm-foot .t-btn{flex:1;margin:0}
.t-lmods{font-size:.82rem;color:var(--muted);margin-top:2px}
/* Per-dish note (2026-10-20): modal input matches the checkout fields;
   the cart line shows the note under its dish with a small edit link,
   and the inline editor keeps the row compact on a phone. */
.t-mm-note{width:100%;padding:11px 12px;border-radius:8px;border:1px solid var(--line);
  background:var(--surface);color:var(--ink);font-size:1rem;font-family:inherit;box-sizing:border-box}
.t-lnote{font-size:.85rem;color:var(--ink);margin-top:3px}
.t-note-link{background:none;border:0;padding:0;font:inherit;font-size:.85rem;font-weight:700;
  color:var(--red);cursor:pointer;text-decoration:underline}
/* Per-line Remove (2026-11-03): every cart-drawer line's way out —
   the only exit for a minimum-quantity line, whose Less button floors
   at the minimum. Same plain-words link styling as .t-note-link, with
   a taller tap target so it is easy to hit at phone width. */
.t-remove{display:inline-block;margin-top:4px;background:none;border:0;padding:8px 12px 8px 0;
  font:inherit;font-size:.85rem;font-weight:700;color:var(--red);cursor:pointer;text-decoration:underline}
.t-lnote-edit{display:flex;gap:6px;align-items:center;margin-top:4px;flex-wrap:wrap}
.t-lnote-input{flex:1;min-width:140px;padding:8px 10px;border-radius:8px;border:1px solid var(--line);
  background:var(--surface);color:var(--ink);font-size:1rem;font-family:inherit;box-sizing:border-box}
.t-note-save,.t-note-cancel{border:1px solid var(--line);border-radius:8px;padding:8px 12px;
  font:inherit;font-size:.85rem;font-weight:700;cursor:pointer;background:var(--surface-2);color:var(--ink)}
.t-note-save{background:var(--red);border-color:var(--red);color:#fff}

/* Stripe checkout: tip picker + Payment Element */
.t-tips{display:flex;gap:8px;flex-wrap:wrap}
.t-tip{flex:1;min-width:64px;padding:10px 6px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-weight:700;cursor:pointer}
.t-tip.active{background:var(--red);border-color:var(--red);color:#fff}
/* Pickup/Delivery switch in the cart drawer (owner 2026-10-18 PM):
   same unmistakable active treatment as the menu's segmented control. */
.t-ff-switch{display:flex;gap:8px;margin-bottom:12px}
.t-ff-btn{flex:1;padding:11px 6px;border-radius:8px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-weight:700;cursor:pointer}
.t-ff-btn.active{background:var(--red);border-color:var(--red);color:#fff}
.t-pe{border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px;min-height:52px;box-sizing:border-box}

/* ---------- loyalty rewards ---------- */
.t-btn.t-small { width: auto; padding: 10px 16px; font-size: 0.92rem; margin-top: 0; }
.t-rew-row { display: flex; align-items: center; gap: 12px; }
.t-rew-msg { font-size: 0.86rem; color: var(--muted); }
.t-rew-have { font-size: 0.92rem; font-weight: 600; margin: 10px 0 4px; }
.t-rew-hint { font-size: 0.82rem; color: var(--muted); margin-top: 6px; line-height: 1.4; }
.t-rew-newbal { font-size: 0.92rem; font-weight: 600; color: var(--ink); }

/* ---------- catering menu (tray menu) ---------- */
#t-cat-chips { margin-bottom: 18px; }
.t-cat-opts { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0 4px; }
.t-cat-opt { flex: 1; min-width: 96px; border: 1px solid var(--line); border-radius: 10px;
  background: var(--surface); color: var(--ink); font: inherit; cursor: pointer;
  padding: 8px 10px; display: flex; flex-direction: column; gap: 2px; text-align: left; }
.t-cat-opt .t-cat-size { font-weight: 800; font-size: .9rem; }
.t-cat-opt .t-cat-price { font-weight: 800; font-size: .95rem; color: var(--red); }
.t-cat-opt .t-cat-serves { font-size: .78rem; color: var(--muted); }
.t-cat-opt.sel { border-color: var(--red); box-shadow: 0 0 0 1px var(--red); background: #fff; color: #201a16; }
.t-cat-opt.sel .t-cat-serves { color: #665b52; }
.t-cat-eachinfo { font-weight: 800; font-size: .95rem; color: var(--ink); margin: 8px 0 4px; }
.t-cat-addrow { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; }
.t-cat-addrow .add-btn { margin-top: 0; }
.t-cat-qlabel { font-size: .8rem; color: var(--muted); font-weight: 700; }
.t-cat-explain { background: var(--surface-2); border: 1px solid var(--line); border-radius: 10px;
  padding: 10px 12px; font-size: .86rem; line-height: 1.45; color: var(--ink); margin: 12px 0; }

/* "Forget something?" upsell row (Simit 2026-10-01) */
.t-upsell{margin:14px 0 0;padding-top:12px;border-top:1px dashed var(--line)}
/* Walk fix #16 (2026-10-26): the upsell block is the drawer's last
   body child — pin it to the bottom of the scrolling body so a short
   cart's leftover space sits ABOVE it (between the items and the
   add-ons) instead of as a dead band between the carousel and the
   totals in the foot. With a tall cart the auto margin is 0 and the
   block's own padding/border keep the separation. */
.t-d-body .t-upsell{margin-top:auto}
.t-upsell-title{font-weight:800;font-size:.95rem;margin-bottom:10px;color:var(--ink)}
.t-upsell-row{display:flex;gap:10px;overflow-x:auto;padding:2px 20px 8px 2px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;max-width:100%;box-sizing:border-box;scroll-snap-type:x mandatory;scroll-padding-left:2px}
.t-uchip{flex:0 0 auto;width:132px;max-width:40vw;box-sizing:border-box;scroll-snap-align:start;border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--surface);display:flex;flex-direction:column;gap:3px}
.t-uname{font-weight:700;font-size:.85rem;color:var(--ink);line-height:1.25;min-height:2.1em;overflow-wrap:break-word}
.t-uprice{color:var(--muted);font-size:.85rem}
.t-uadd{margin-top:6px;border:0;border-radius:999px;background:var(--red);color:#fff;font-weight:800;padding:8px 0;cursor:pointer;font-size:.85rem;font-family:inherit}
.t-uadd:active{transform:scale(.97)}

/* Compact item summary on checkout + payment steps (batch item 3) */
.t-summary{margin:0 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.t-summary-title{font-weight:800;font-size:.9rem;margin-bottom:6px;color:var(--ink)}
.t-summary-line{display:flex;justify-content:space-between;gap:12px;padding:3px 0;font-size:.9rem;color:var(--ink)}
.t-summary-line span:last-child{font-weight:700;white-space:nowrap}
.t-summary-line{align-items:flex-start}
.t-sum-main{flex:1;min-width:0}
.t-sum-mods{color:var(--muted);font-size:.82rem}
.t-sum-each{color:var(--muted);font-size:.82rem}

/* Promotional offers banner (Simit 2026-10-01): "You've earned a freebie" */
.t-promo{margin:14px 0 6px;padding:12px;border:1px dashed var(--line);border-radius:12px;background:var(--surface-2)}
.t-promo-title{font-weight:800;font-size:.95rem;margin-bottom:8px;color:var(--ink)}
.t-prow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0}
.t-pname{font-weight:700;font-size:.88rem;color:var(--ink)}
.t-pdesc{font-size:.8rem;color:var(--muted);margin-top:2px}
.t-pfree{font-weight:800;font-size:.88rem;color:var(--green, #1a7f37)}
.t-pstep{display:flex;align-items:center;gap:10px}
.t-pstep button{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:1.1rem;font-weight:800;cursor:pointer;line-height:1;font-family:inherit}
.t-pstep button:active{transform:scale(.94)}
.t-pstep span{min-width:1.4em;text-align:center;font-weight:800;font-size:.95rem;color:var(--ink)}
.t-pdeal{margin:10px 0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.t-pdeal-q{font-weight:700;font-size:.85rem;margin-bottom:4px;color:var(--ink)}
.t-popt{display:flex;gap:8px;align-items:flex-start;padding:5px 0;cursor:pointer;font-size:.85rem;color:var(--ink)}
.t-popt input{margin-top:3px;flex:none}
.t-popt b{color:var(--ink)}
/* Homepage promo banner (shown on site entry while offers are ON). */
.promo-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:#fff8ec;border-bottom:1px solid #f0dfb8;color:#5a4413;font-size:.88rem}
.promo-banner b{font-weight:800}
.promo-banner button{flex:none;border:1px solid #e3d0a4;background:#fff;border-radius:50%;width:26px;height:26px;font-size:1rem;line-height:1;cursor:pointer;color:#5a4413}

/* Simit 2026-10-08: compact checkout — side-by-side pay buttons, tighter totals */
.t-btn-row{display:flex;gap:10px;margin-top:10px}
.t-btn-row .t-btn{flex:1;margin-top:0;padding:14px 8px;font-size:.95rem}
.t-back-link{margin-top:10px;padding:10px;font-size:.9rem;opacity:.85}
.t-totals{padding:6px 0}
.t-totals .t-row{padding:5px 0;font-size:.92rem}
.t-totals .t-row.grand{padding:8px 0;font-size:1.05rem}
.t-totals .t-trow{padding:5px 0;font-size:.92rem}
.t-totals .t-trow.total{padding:8px 0;font-size:1.05rem}
.t-secure{margin-top:8px;font-size:.78rem}

/* Simit 2026-10-08: sticky checkout totals — total stays visible while scrolling */
#t-drawer .t-d-foot{position:sticky;bottom:0;z-index:5;box-shadow:0 -8px 24px rgba(0,0,0,.25)}

/* iOS zoom guard (2026-10-19): touch-action:manipulation on the page + drawer
   removes double-tap zoom on tap targets in browsers that honor it (the .t-btn
   rule already had it; the page/drawer/payment area did not). Every drawer
   field is floored at 16px so iOS Safari never focus-zooms into checkout. */
body{touch-action:manipulation}
#t-drawer{touch-action:manipulation}
#t-drawer input,#t-drawer select,#t-drawer textarea{font-size:max(16px,1rem)}
.t-pe,.t-pe iframe{touch-action:manipulation}
