/* ============================================================
   CUSTOM — Per-store overrides for Template PT
   Add store-specific tweaks here. Loaded last so it wins
   over theme.css and style.css.
   ============================================================ */

/* ============================================================
   PT-BASELINE 2026-10-24 (ported from Oriental Bowl, generic; standing decision 18.8)
   Clean, bright, minimal, photo-led. White base, light-grey panels.
   ONE accent (--brand, from the logo) on buttons + at most 2 full-colour bands
   (.menu-band + .cta-band). Top bar, kickers, heading <em>, nav active = ink.
   16px image corners (logo + hero excluded). No shadows, no gradients, no glass.
   Two type styles only (600 headings/labels, 400 body) - see PT-DESIGN-RULES rule 5.
   ============================================================ */
:root {
  --pt-r-img: 16px;
  --shadow-sm: none; --shadow-md: none; --shadow-lg: none; --pt-shadow: none;
}
html, body { background: #ffffff; }
b, strong, th, dt { font-weight: 600; }
*, *::before, *::after { box-shadow: none !important; text-shadow: none !important; }

/* photos: 16px corners (logos + hero slides excluded) */
main img, .plate img, .gallery img, figure img, .ph-img img, .dish-hero img, .about-img img,
.story img, .split img, .media img, .contact-sec iframe, main iframe {
  border-radius: var(--pt-r-img);
}
.brand img, .foot-brand img, .hero-slide img, .hero-full img, .hero-slides img, [class*="hero-slide"] img { border-radius: 0; }

/* no glass */
*, *::before, *::after { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }

/* accent budget: accent only on buttons + .menu-band + .cta-band */
.site-topline { background: var(--canvas); color: var(--ink); }
.site-topline a, .site-topline a:hover { color: var(--ink); }
.kicker, .kicker--light, .menu-band .kicker { color: var(--pt-ink-2); }
h1 em, h2 em, h3 em, .sec-head em, .faq-intro em, .story-copy em { color: inherit; font-style: normal; background: none; }
.menu-band h2 em, .cta-band h2 em { color: #fff; }
.plate-foot, .plate-no { color: var(--pt-ink-2); }
.site-nav a.active, .site-nav a:hover { background: var(--canvas); color: var(--ink); }
main a:not(.btn):not(.btn-line):not(.btn-ghost):not(.cat-tile):not(.arrow-btn) { color: var(--ink); text-decoration: underline; text-decoration-color: var(--pt-line); }
i[class^="ri-"] { color: var(--ink); }
.delivery-area-card h3, .package-card h3 { color: var(--ink); }

/* no icon rows: store bar + info cards are text only (markup removed; this hides leftovers) */
.store-bar .sb-ico, .info-card .ic, .chip .ico, .chip-row .ico { display: none !important; }

/* ---- Dennis QA fixes from Oriental Bowl that apply to every PT site ---- */
/* white text/link on the accent CTA band (>= 4.5:1), beating the ink link rule above */
.cta-band a:not(.btn), .cta-band .cta-phone a, .cta-band .cta-phone a:hover { color: #fff !important; text-decoration-color: rgba(255, 255, 255, 0.6); }
/* opened mobile nav: the order button stays white on accent (hover included) */
.site-nav .nav-extra .btn, .site-nav .nav-extra .btn:hover, .site-nav .nav-extra .btn:focus-visible { color: #fff; }
/* mobile CLS: #header-container holds the top line + header height while components.js loads it
   (34.375 + 81 px on the PT header; re-measure only if a store changes the header). */
#header-container:empty { display: block; min-height: 115.375px; }
body:not(.header-loaded) .breadcrumb-container { position: absolute; top: 0; left: 0; right: 0; z-index: 5; }
/* store bar (Dennis PT QA F1): works with 4 cells (template default) and 3 cells (rating dropped).
   <=1080 (2-up): only a LAST 3rd cell spans the full row, so 4 cells = 2 + 2, 3 cells = 2 + 1 full.
   >=1081: 3 cells = 3 columns (no empty quarter); 4 cells keep 4 columns. */
@media (max-width: 1080px) {
  .store-bar .sb-cell:nth-child(3) { grid-column: auto; }
  .store-bar .sb-cell:nth-child(3):last-child { grid-column: 1 / -1; }
}
@media (min-width: 1081px) { .store-bar:not(:has(.sb-cell:nth-child(4))) { grid-template-columns: repeat(3, 1fr); } }

/* FONT-PAIR (one line, the only place a store sets its fonts): replace "grotesk" x3 with barlow or fraunces.
   pizza/burgers/wings/donair = barlow; Indian/Italian family/bakery/fine dining = fraunces; everything else = grotesk.
   Type unclear? Pick one and keep building (decision 18.9). */
:root { --font-display: var(--fp-fraunces-head); --font-body: var(--fp-fraunces-body); --fw-head: var(--fp-fraunces-weight); }

/* ============================================================
   PT-DESIGN-RULES 2026-10-24 (Rakesh 16:57, standing for PT; Atlas 17:30 red-band + <480px calls)
   verify.py check D keys off the "PT-DESIGN-RULES" marker above: keep it.
   1. SPLIT BUTTONS. Markup (pt_design.py writes it):
      <a class="btn|btn-line"><span class="btn__label">Text</span><span class="btn__arrow">arrow-right svg</span></a>
      Primary (.btn) = every ORDER button (orders.iorders.online): accent label, accent darkened ~25% arrow block,
      white text + white arrow-right (never a chevron). Secondary (.btn-line) = every other button: white label,
      thin border, dark text; light-grey arrow block, dark arrow. No gap; 6px radius on the OUTER corners only;
      padding 12px 18px (label) / 12px 14px (arrow); heading font at 600. One primary per section (nav separate).
      White label text must be >= 4.5:1 on the accent: rebrand sets --btn-accent-dark/--btn-accent-hover to
      checked hex values for the store's accent (color-mix below is only the fallback).
   2. RED-BAND VARIANT (Atlas 17:30): on a full-accent band (.menu-band, .cta-band) the primary's label turns
      white with accent text; the arrow block keeps the darkened accent + white arrow.
   3. UNDER 480px the header order button is hidden: the fixed full-width order bar (.order-float), the button
      in the opened menu and the menu toggle stay, so ordering is one tap away and no two primaries show.
   4. NO open/closed badge, no eyebrows/kickers, no 01/02/03 numbering, no icon cards, no watermark,
      no uppercase labels/links, no "See ... ->" arrows (pt_design.py removes the markup; this hides leftovers).
   5. FONTS (Rakesh 2026-10-24 19:34, decision 18.9): one pair per restaurant type, picked on the FONT-PAIR line
      at the top of this file (grotesk | barlow | fraunces). Two styles only: headings/labels at the pair's
      head weight, body 400. Six fonts are banned (decision 18.10, check D).
   ============================================================ */
:root {
  --btn-accent: #0E7D3E;        /* MEXIKAN: deep logo green, white 5.22:1 (--brand #12A150 fails white text) */
  --btn-accent-dark: #0A5A2C;   /* MEXIKAN: arrow block */
  --btn-accent-hover: #0C7038;  /* MEXIKAN: hover */
  --btn-sec-line: #C9C9C7;
  --btn-sec-arrow: #E8E8E6;
}
.btn, .btn-line,
.site-nav .nav-extra .btn, .header-cta .btn, .btn.order-float {
  display: inline-flex !important;
  align-items: stretch !important;
  gap: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 6px !important;
  background: none !important;
  overflow: hidden;
  font-family: var(--font-display) !important;
  font-weight: var(--fw-head, 600) !important;
  font-size: 0.95rem;
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none !important;
  text-decoration: none !important;
  transform: none !important;
  white-space: nowrap;
  vertical-align: middle;
}
.btn::before, .btn::after, .btn-line::before, .btn-line::after { content: none !important; display: none !important; }
.btn .btn__label, .btn-line .btn__label {
  display: flex; align-items: center; justify-content: center; flex: 1 1 auto;
  padding: 12px 18px;
  border-radius: 6px 0 0 6px;
  font-family: var(--font-display) !important;
  font-weight: var(--fw-head, 600) !important;
  transition: background-color .15s ease;
}
.btn .btn__arrow, .btn-line .btn__arrow {
  display: flex !important; align-items: center; justify-content: center; flex: none;
  padding: 12px 14px;
  border-radius: 0 6px 6px 0;
}
.btn .btn__arrow .ico, .btn-line .btn__arrow .ico { display: block !important; width: 1em; height: 1em; }
/* primary */
.btn .btn__label { background: var(--btn-accent); color: #fff !important; }
.btn .btn__arrow { background: var(--btn-accent-dark); color: #fff !important; }
.btn:hover .btn__label, .btn:focus-visible .btn__label { background: var(--btn-accent-hover); }
.site-nav .nav-extra .btn, .site-nav .nav-extra .btn * { color: #fff !important; }   /* opened phone menu: never ink on accent */
/* secondary */
.btn-line .btn__label { background: #fff; color: var(--ink) !important; border: 1px solid var(--btn-sec-line); border-right: 0; }
.btn-line .btn__arrow { background: var(--btn-sec-arrow); color: var(--ink) !important; border: 1px solid var(--btn-sec-arrow); }
.btn-line:hover .btn__label, .btn-line:focus-visible .btn__label { border-color: var(--ink); }
/* red-band variant */
.menu-band .btn .btn__label, .cta-band .btn .btn__label { background: #fff; color: var(--btn-accent) !important; }
.menu-band .btn:hover .btn__label, .cta-band .btn:hover .btn__label { background: #f3f3f3; }
.btn:focus-visible, .btn-line:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.btn.order-float { justify-content: stretch; }

/* No eyebrows, no numbering, no icon grids, no watermark, no uppercase labels/links */
.kicker, .kicker::before, .ch-no, .step-number, .v-ico, .open-badge { display: none !important; }
.chapter { grid-template-columns: 1fr !important; }
.cat-tile::before, .qa summary::before, .menu-band::after { content: none !important; display: none !important; }
.values-copy { max-width: 46rem; margin-top: 1rem; }
.plate .plate-no, .plate .plate-foot, .chip, .item-desc span, .info-card strong,
#home-hero .cs-subtitle, .cs-subtitle, .cs-topper, .sticker {
  text-transform: none !important;
  letter-spacing: 0 !important;
}
#home-hero .cs-subtitle::before, .cs-topper::before { content: none !important; display: none !important; }
@media (max-width: 479px) { .header-cta .btn { display: none !important; } }

/* ---------- PT default type (rule 5): two styles only ---------- */
body { font-family: var(--font-body); font-size: 16px; line-height: 1.4; font-weight: 400; }
p, li, dd, td { font-size: 1rem; line-height: 1.4; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); font-weight: var(--fw-head, 600); letter-spacing: -0.015em; line-height: 1.15; }
h1 { font-size: clamp(1.875rem, 3.4vw, 2.5rem); }
h2 { font-size: clamp(1.5rem, 2.2vw, 1.75rem); }          /* ~28px */
h3 { font-size: clamp(1.125rem, 1.6vw, 1.25rem); }
body * { font-weight: 400 !important; }
h1, h2, h3, h4, h5, h6, h1 *, h2 *, h3 *, h4 *, h5 *, h6 *,
.site-nav a, summary, summary *, .menu-title, .menu-title *, .dropbtn, .qa-ico, .privacy-title {
  font-family: var(--font-display) !important;
  font-weight: var(--fw-head, 600) !important;
}

/* ============================================================
   PT-LAYOUT 2026-10-24 (Rakesh 19:34, decisions 18.13 + 18.14)
   Alternating full-width 50/50 sections: image | heading + ONE sentence + ONE button.
   .pt-split = image left; .pt-split--flip = image right. White base, generous space, no shadows.
   Home order: hero, featured dishes, story (.story.pt-split), menu CTA (.menu-band), gallery
   (.home-gallery), catering (.home-catering), location (.home-location), reviews (.quotes),
   FAQ (.faq), map + hours (.contact-sec). Blocks without store facts are deleted, never faked.
   ============================================================ */
.pt-split { padding-block: clamp(3.5rem, 7vw, 6rem); background: #fff; }
.story.pt-split { background: #fff; }
.pt-split .wrap {
  display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center;
}
.pt-split--flip .pt-split__media { order: 2; }
.pt-split__media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--pt-r-img); }
.pt-split__copy h2 { margin: 0 0 0.75rem; }
.pt-split__copy p { max-width: 42ch; margin: 0 0 1.5rem; color: var(--ink); }
.home-catering.pt-split, .home-location.pt-split--flip { background: var(--pt-grey, #f6f6f6); }
@media (max-width: 860px) {
  .pt-split .wrap { grid-template-columns: 1fr; }
  .pt-split--flip .pt-split__media { order: 0; }
}
.home-gallery { padding-block: clamp(3.5rem, 7vw, 6rem); }
.home-gallery h2 { margin: 0 0 1.5rem; }
.home-gallery__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.home-gallery__grid img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--pt-r-img); }
@media (max-width: 700px) { .home-gallery__grid { grid-template-columns: repeat(2, 1fr); gap: 0.75rem; } }
.contact-sec .menu-btn-wrapper { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.75rem; margin-top: 1.25rem; }
.contact-sec .map-frame iframe { display: block; width: 100%; min-height: 360px; border: 0; }
#find-us { padding-top: clamp(3.5rem, 7vw, 6rem); }

/* ============================================================
   PT-MENU 2026-10-24 (Rakesh 19:34, decision 18.15): the full menu in ONE scroll.
   Every category shows under its own heading on every screen size; the sticky category bar
   (side rail on desktop, horizontal bar on phones) only jumps to a heading. No tabs, no dropdown.
   Active category = ink, not accent (accent budget, decision 18.8).
   ============================================================ */
.menu-items .category-header {
  display: block; grid-column: 1 / -1;
  font-family: var(--font-display); font-size: clamp(1.25rem, 1.8vw, 1.5rem); line-height: 1.2;
  margin: 1.75rem 0 0.25rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--pt-line);
  scroll-margin-top: 8rem;
}
.menu-items .category-header:first-child { margin-top: 0; }
.menu-item:hover { transform: none; }
.item-desc { color: var(--pt-ink-2); }
.menu-buttons a.menu-button { display: block; text-decoration: none; color: var(--ink); }
.menu-buttons a.menu-button.active-button, .menu-buttons a.menu-button.active-button:hover { background: var(--ink); color: #fff !important; }
.mobile-menu-controls {
  display: flex; width: min(var(--max), calc(100% - 2 * var(--pad))); margin: 0 auto 1.25rem; padding: 0;
  position: static; border: 0; background: none;
}
#menu-search {
  flex: 1; font: inherit; font-size: 1rem; padding: 0.7rem 1rem; min-width: 0;
  border: 1px solid var(--btn-sec-line, #c9c9c7); border-radius: 6px; background: #fff; color: var(--ink);
}
#menu-search::placeholder { color: var(--pt-ink-2); }
@media (max-width: 768px) {
  .mobile-menu-controls { position: static; padding: 0; border: 0; background: none; margin-bottom: 0.75rem; }
  .menu-buttons {
    display: flex !important; flex-direction: row; flex: none; gap: 0.4rem;
    position: sticky; top: 4.5rem; z-index: 41; max-height: none; overflow-x: auto; overflow-y: hidden;
    margin: 0 calc(-1 * var(--pad)) 1rem; padding: 0.6rem var(--pad);
    background: #fff; border-bottom: 1px solid var(--pt-line); border-radius: 0; scrollbar-width: none;
  }
  .menu-buttons::-webkit-scrollbar { display: none; }
  .menu-buttons a.menu-button { flex: none; white-space: nowrap; }
  .menu-items .category-header { scroll-margin-top: 9rem; }
}
.info-card:hover { transform: none; }

/* DARK-PREMIUM:START (Sales requirement; colour only, generated by tools/dark_theme.py) */
:root{
  --dk-bg:#121010; --dk-surface:#1c1817; --dk-surface-2:#26201e; --dk-line:#3d3431;
  --dk-text:#f6eedf; --dk-muted:#cfc6b8;
  --bg:var(--dk-bg); --card:var(--dk-surface); --ink:var(--dk-text);
  --pt-ink-2:var(--dk-muted); --muted:var(--dk-muted); --bodyTextColor:var(--dk-muted); --headerColor:var(--dk-text); --text-dark:var(--dk-text); --text-light:var(--dk-muted);
  --pt-grey:var(--dk-surface-2); --pt-grey-2:var(--dk-surface-2); --pt-line:var(--dk-line); --line:var(--dk-line);
  --pt-soft:var(--dk-surface-2); --chili-soft:var(--dk-surface-2); --sand:var(--dk-surface-2); --sand-2:var(--dk-surface-2); --canvas:var(--dk-surface); --bg-shade:var(--dk-surface); --lightgray:var(--dk-surface);
  --btn-sec-line:var(--dk-line); --btn-sec-arrow:#2f2723;
  color-scheme: dark;
}
html, body{background:var(--dk-bg); color:var(--dk-text);}
:root body{background:var(--dk-surface-2);}
:root .btn--butter{background:var(--dk-surface-2);}
:root .btn--butter:hover{background:var(--dk-surface-2);}
:root .btn-line{background:var(--dk-surface-2);}
:root .btn-line:hover{background:var(--dk-surface-2);}
:root .chip{background:var(--dk-surface-2);}
:root .sticker{background:var(--dk-surface-2);}
:root .site-header{background:var(--dk-surface-2);}
:root .site-nav a:hover{background:var(--dk-surface-2);}
:root .site-nav a.active{background:var(--dk-surface-2);}
:root .nav-toggle{background:var(--dk-surface-2);}
:root .site-nav{background:var(--dk-surface-2);}
:root .hero{background:var(--dk-surface-2);}
:root .hero-proof .chip{background:var(--dk-surface-2);}
:root .board-card{background:var(--dk-surface);}
:root .arrow-btn{background:var(--dk-surface-2);}
:root .plate{background:var(--dk-surface);}
:root .story{background:var(--dk-surface-2);}
:root .story-copy .chip{background:var(--dk-surface-2);}
:root .cat-tile:hover{background:var(--dk-surface-2);}
:root .quotes-intro .chip{background:var(--dk-surface-2);}
:root .quote-card{background:var(--dk-surface-2);}
:root .faq{background:var(--dk-surface-2);}
:root .qa{background:var(--dk-surface-2);}
:root .qa summary .qa-ico{background:var(--dk-surface-2);}
:root .cta-chips .chip{background:var(--dk-surface-2);}
:root .page-hero{background:var(--dk-surface-2);}
:root .bd-card{background:var(--dk-surface);}
:root .menu-buttons{background:var(--dk-surface-2);}
:root .menu-button:hover{background:var(--dk-surface-2);}
:root .menu-item{background:var(--dk-surface-2);}
:root .item-desc span{background:var(--dk-surface-2);}
:root .mobile-menu-controls{background:var(--dk-surface);}
:root #menu-search{background:var(--dk-surface-2);}
:root .dropdown-content{background:var(--dk-surface-2);}
:root .dropdown-content a:hover{background:var(--dk-surface-2);}
:root .values{background:var(--dk-surface-2);}
:root .value-card{background:var(--dk-surface-2);}
:root .gallery-wall figure{background:var(--dk-surface);}
:root .info-card{background:var(--dk-surface-2);}
:root .info-card .ic{background:var(--dk-surface-2);}
:root .map-frame{background:var(--dk-surface-2);}
:root .breadcrumb-container{background:var(--dk-surface-2);}
:root .floating-btn-wrapper{background:var(--dk-surface);}
:root #home-hero{background:var(--dk-surface-2);}
:root .cs-button-ghost{background:var(--dk-surface-2);}
:root .cs-button-ghost:hover{background:var(--dk-surface-2);}
:root #home-hero .hero-stats li{background:var(--dk-surface-2);}
:root .delivery-area, :root .review-card, :root .testimonial__card, :root .delivery-area-card, :root .package-card, :root .order-step, :root .related-dish-card{background:var(--dk-surface);}
:root .faq-item{background:var(--dk-surface);}
:root .faq__category{background:var(--dk-surface);}
:root .faq__icon{background:var(--dk-surface-2);}
:root .cta__container{background:var(--dk-surface-2);}
:root .btn-secondary{background:var(--dk-surface-2);}
:root .btn-secondary:hover{background:var(--dk-surface-2);}
:root .cta-content .btn:hover{background:var(--dk-surface-2);}
:root .dish-detail{background:var(--dk-surface-2);}
:root .popup-content{background:var(--dk-surface-2);}
:root .to-top{background:var(--dk-surface-2);}
:root .sb-ico{background:var(--dk-surface-2);}
:root .sb-cell:last-child .sb-ico{background:var(--dk-surface);}
:root .nav-toggle.is-open{background:var(--dk-surface-2);}
:root .dish-hero .dish-hero-container{background:var(--dk-surface-2);}
:root .dish-hero .dish-detail{background:var(--dk-surface-2);}
:root .ingredients-list, :root .nutrition-info{background:var(--dk-surface);}
:root .reviews-container{background:var(--dk-surface-2);}
:root .btn--butter, :root .btn-line, :root .btn-ghost{background:var(--dk-surface-2);}
:root .btn--butter:hover, :root .btn-line:hover, :root .btn-ghost:hover{background:var(--dk-surface-2);}
:root .arrow-btn:hover{background:var(--dk-surface-2);}
:root .plates{background:var(--dk-surface-2);}
:root .quotes{background:var(--dk-surface-2);}
:root .site-footer{background:var(--dk-surface-2);}
:root .foot-social a:hover{background:var(--dk-surface-2);}
:root .hours-table{background:var(--dk-surface-2);}
:root .dish-hero{background:var(--dk-surface-2);}
:root .store-bar .sb-ico{background:var(--dk-surface-2);}
:root .store-bar .sb-cell:last-child .sb-ico{background:var(--dk-surface);}
:root .qa[open]{background:var(--dk-surface-2);}
html, :root body{background:var(--dk-bg);}
:root .site-topline{background:var(--dk-surface-2);}
:root .site-nav a.active, :root .site-nav a:hover{background:var(--dk-surface-2);}
:root .btn-line .btn__label{background:var(--dk-surface-2);}
:root .pt-split{background:var(--dk-surface-2);}
:root .story.pt-split{background:var(--dk-surface-2);}
:root .home-catering.pt-split, :root .home-location.pt-split--flip{background:var(--dk-surface-2);}
:root .site-header, :root body:has(.hero-full) .site-header:not(.scrolled){background:var(--dk-bg); border-bottom-color:var(--dk-line);}
:root .brand img, :root .foot-brand img, :root .logo__image{background:transparent;}
:root input, :root select, :root textarea{background:var(--dk-surface-2); color:var(--dk-text); border-color:var(--dk-line);}
  /* brand-coloured TEXT on the dark page: lighten the brand so it clears 4.5:1 */
:root{--dk-accent-text:var(--brand-3);}
.breadcrumb li:not(:last-child)::after, .signoff{color:var(--dk-accent-text);}
:root a:not(.btn):not(.btn-line):not([class*="btn"]){text-decoration-color:currentColor;}
/* DARK-PREMIUM:END */

/* MEXIKAN-GREEN:START (Atlas 2026-10-24 22:48: logo green #12A150 carries DARK text; white text sits on #0E7D3E) */
.btn { background: var(--btn-accent); border-color: var(--btn-accent); }
.cta-band { background: var(--brand); color: #121010; }  /* template uses --pt-deep; Atlas spec = logo green #12A150 + dark text */
.menu-band { background: var(--brand-2); }
.cta-band h2, .cta-band h2 em, .cta-band .kicker, .cta-band .cta-phone, .cta-band .cta-phone a,
.cta-band .chip, .cta-band .chip .dot, .cta-band .chip .ico { color: #121010; }
.cta-band .lede, .cta-band p { color: rgba(18, 16, 16, 0.88); }
.cta-band .chip { background: rgba(18, 16, 16, 0.12); }
.cta-band .btn-line { color: #121010; border-color: rgba(18, 16, 16, 0.6); }
.cta-band .btn-line:hover { background: rgba(18, 16, 16, 0.1); color: #121010; }
.cta-band .btn .btn__label, .cta-band .btn { color: var(--btn-accent) !important; }
.qa[open] summary .qa-ico { color: #121010; }
/* body-copy links on the dark page: logo green (5.63:1 on #121010, 5.23 on #1C1817); template used a darkened brand mix */
.section__description a:not([class*="btn"]), .faq__answer a:not([class*="btn"]), .privacy-desc a:not([class*="btn"]), .prose a:not([class*="btn"]) { color: var(--brand) !important; }
.cs-text a:not([class*="btn"]) { color: var(--brand) !important; }
.site-nav a:hover, .site-nav a.active, .contact-list li a:hover, .bd-body .bd-note, .item-desc span, .package-card h3, .delivery-area h3, .takeout-features li .ico, .info-card .ic, .sb-ico { color: var(--brand); }
/* gold on the #0E7D3E menu band is 2.91:1: cream instead */
.menu-band h2 em, .menu-band .kicker { color: #F6EEDF; }
/* dark theme maps --ink to cream, so the active menu tab was white on cream (1.15:1): use the button green */
.menu-buttons a.menu-button.active-button, .menu-buttons a.menu-button.active-button:hover { background: var(--btn-accent); color: #fff !important; }
/* MEXIKAN-GREEN:END */

/* F4 (Dennis 22:50 / Atlas 22:51): solid green tiles, no translucent fill under text (white 5.22:1) */
.menu-band .cat-tile, :root .cat-tile { background: #0E7D3E !important; color: #fff !important; border: 1px solid rgba(255,255,255,.45); }
.menu-band .cat-tile:hover, :root .cat-tile:hover { background: #0C7038 !important; color: #fff !important; }
.menu-band .cat-tile .arrow, .menu-band .cat-tile:hover .arrow { color: #fff !important; }
/* /our-food CLS: page-hero image box reserved from its real ratio (width/height attrs) */
.page-hero--split .ph-img img { width: 100%; height: auto; }
/* /our-food CLS at 390 (Dennis 23:25): the web-font swap wrapped the 2nd hero button onto a new row and pushed .ph-img down 57px.
   At <=600px every page-hero stacks its buttons full-width, so the row count can't change when the font swaps. */
@media (max-width: 600px) {
  .page-hero .hero-actions { flex-direction: column; flex-wrap: nowrap; align-items: stretch; }
  .page-hero .hero-actions > .btn, .page-hero .hero-actions > a { width: 100%; justify-content: center; text-align: center; }
}

/* ============================================================
   REWARDS:START (2026-10-24). MEXIKAN Rewards: /rewards-signup page, the home rewards band
   and the "Rewards" nav item. Layout mirrors tandoorifuzion.com/rewards-signup (hero + fine print,
   3 steps, points math, 3 details, CTA band); colours and type follow this site's dark theme
   and PT rules (split buttons, no icons, no uppercase, no shadows). Bonus = 500 points.
   ============================================================ */
/* page hero: centred, no image */
.rewards-hero { text-align: center; }
.rewards-hero .wrap { max-width: 46rem; }
.rewards-hero h1 { max-width: none; margin: 0.5rem auto 1rem; }
.rewards-hero h1 strong { color: var(--brand); }
.rewards-hero .lede { margin: 0 auto; }
.rewards-hero .hero-actions { justify-content: center; }
.rewards-disclaimer {
  max-width: 46rem; margin: 1.75rem auto 0; padding: 0.9rem 1.1rem;
  font-size: 0.85rem; line-height: 1.5; color: var(--dk-muted, var(--pt-ink-2));
  background: var(--dk-surface, var(--pt-grey)); border-left: 3px solid var(--brand); border-radius: 6px; text-align: left;
}

/* sections */
.rewards-sec { padding-block: clamp(3.5rem, 7vw, 6rem); text-align: center; }
.rewards-sec--alt { background: var(--dk-surface, var(--pt-grey)); }
.rewards-sec h2 { margin: 0 0 0.5rem; }
.rewards-sec > .wrap > p { color: var(--dk-muted, var(--pt-ink-2)); max-width: 42rem; margin: 0 auto; }

/* step + detail cards (no icons: PT rule 4) */
.rewards-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin-top: 2.25rem; }
.rewards-card {
  padding: 1.75rem 1.5rem; text-align: center;
  background: var(--dk-surface, #fff); border: 1px solid var(--pt-line); border-top: 3px solid var(--brand);
  border-radius: var(--pt-r-img);
}
.rewards-sec--alt .rewards-card { background: var(--dk-surface-2, var(--pt-grey)); }
.rewards-card h3 { margin: 0 0 0.4rem; }
.rewards-card .rewards-num {
  display: block; margin: 0 0 0.5rem; font-size: 1.6rem; line-height: 1.15; color: var(--brand);
  font-family: var(--font-display) !important; font-weight: var(--fw-head, 600) !important;
}
.rewards-card p { margin: 0; color: var(--dk-muted, var(--pt-ink-2)); }

/* points math */
.rewards-calc { display: flex; align-items: center; justify-content: center; gap: 1rem; flex-wrap: wrap; margin: 2.25rem 0 1.5rem; }
.rewards-calc__group { display: flex; align-items: center; justify-content: center; gap: 0.75rem; flex-wrap: wrap; }
.rewards-calc__item {
  display: flex; flex-direction: column; align-items: center; min-width: 8.5rem; padding: 1.1rem 1.25rem;
  background: var(--dk-surface-2, #fff); border: 1px solid var(--pt-line); border-radius: var(--pt-r-img);
}
.rewards-calc__num {
  font-size: 1.6rem; line-height: 1.1; color: var(--ink);
  font-family: var(--font-display) !important; font-weight: var(--fw-head, 600) !important;
}
.rewards-calc__label { font-size: 0.85rem; color: var(--dk-muted, var(--pt-ink-2)); margin-top: 0.3rem; }
.rewards-calc__item--total { border-color: var(--brand); }
.rewards-calc__item--total .rewards-calc__num { color: var(--brand); }
.rewards-calc__item--off { background: var(--btn-accent); border-color: var(--btn-accent); }
.rewards-calc__item--off .rewards-calc__num, .rewards-calc__item--off .rewards-calc__label { color: #fff; }
.rewards-calc__op { font-size: 1.4rem; color: var(--dk-muted, var(--pt-ink-2)); font-family: var(--font-display) !important; }
.rewards-calc__arrow {
  display: flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; flex-shrink: 0;
  border: 1px solid var(--brand); border-radius: 50%; color: var(--brand); font-size: 1.1rem;
}
.rewards-calc__arrow .ico { display: block; width: 1em; height: 1em; }
.rewards-sec .rewards-result {
  display: inline-block; max-width: none; margin: 0; padding: 0.7rem 1.2rem;
  border: 1px solid var(--pt-line); border-radius: 999px; color: var(--ink);
}
.rewards-result strong { color: var(--brand); }

/* CTA band: deep green, white text (5.22:1); primary button turns white like .menu-band */
.rewards-cta { background: var(--brand-2); color: #fff; padding-block: clamp(3.5rem, 6vw, 5rem); text-align: center; }
.rewards-cta .wrap { max-width: 46rem; }
.rewards-cta h2 { color: #fff; margin: 0 0 0.5rem; }
.rewards-cta p { color: rgba(255, 255, 255, 0.9); margin: 0 auto 0.75rem; }
.rewards-cta .rewards-cta__info { font-size: 0.95rem; margin-bottom: 1.5rem; }
main .rewards-cta a:not(.btn) { color: #fff; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(255, 255, 255, 0.6); }
.rewards-cta .menu-btn-wrapper { justify-content: center; }
.rewards-cta .btn .btn__label { background: #fff; color: var(--btn-accent) !important; }
.rewards-cta .btn:hover .btn__label, .rewards-cta .btn:focus-visible .btn__label { background: #f3f3f3; }

/* home rewards band (index.html, between FAQ and map) */
.rewards-band {
  padding-block: clamp(3rem, 6vw, 4.5rem); text-align: center;
  background: var(--dk-surface, var(--pt-grey)); border-top: 1px solid var(--pt-line); border-bottom: 1px solid var(--pt-line);
}
.rewards-band .wrap { max-width: 46rem; }
.rewards-band h2 { margin: 0 0 0.6rem; }
.rewards-band h2 strong { color: var(--brand); }
.rewards-band p { color: var(--dk-muted, var(--pt-ink-2)); margin: 0 auto 1.4rem; }
.rewards-band .hero-actions { justify-content: center; margin-bottom: 0; }

@media (max-width: 860px) {
  .rewards-grid { grid-template-columns: 1fr; }
  .rewards-calc, .rewards-calc__group { flex-direction: column; }
  .rewards-calc__arrow { transform: rotate(90deg); }
}
@media (max-width: 600px) {
  .rewards-band .hero-actions { flex-direction: column; flex-wrap: nowrap; align-items: stretch; }
  .rewards-band .hero-actions > a { width: 100%; justify-content: center; }
}
/* 6th + 7th nav links ("Catering", "Rewards") join the opened-menu cascade */
@media (max-width: 900px) {
  .site-nav.open a:nth-child(6) { transition-delay: 0.24s; }
  .site-nav.open a:nth-child(7) { transition-delay: 0.28s; }
  .site-nav.open a:nth-child(8) { transition-delay: 0.32s; }
  .site-nav.open a:nth-child(9) { transition-delay: 0.36s; }
  .site-nav.open a:nth-child(10) { transition-delay: 0.4s; }
}
/* REWARDS:END */

/* ============================================================
   HERO-VIDEO:START (2026-10-24). Home hero background video, assets/backgrounds/bg-vid.mp4.
   Sits inside .hero-full__bg above the photo slides; invisible until it plays, so the photos
   are the poster and the fallback. object-fit: cover keeps it edge to edge at every viewport
   (portrait phones crop the sides). The hero scrim (.hero-full::before) stays on top of it.
   ============================================================ */
.hero-full__bg .hero-video {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  z-index: 3; opacity: 0; pointer-events: none;
  transition: opacity 1.2s ease;
}
.hero-full--video .hero-video { opacity: 1; }
.hero-full--video .hero-slide img { animation: none !important; }
@media (prefers-reduced-motion: reduce) { .hero-full__bg .hero-video { display: none; } }
/* HERO-VIDEO:END */

/* ============================================================
   HERO-WELCOME:START (2026-10-24). Owner welcome copy in the home hero: H1, a display-font
   tagline in the highlight gold, four short paragraphs, then the buttons. Copy is capped at
   ~58ch so it reads as a column over the photo/video; under 600px the type steps down and
   the buttons stack full width, so the hero simply grows with the text.
   ============================================================ */
.hero-full__content--welcome h1 { max-width: none; margin: 0 0 0.55rem; }
.hero-full__tagline {
  max-width: 34ch; margin: 0 0 1.1rem;
  font-family: var(--font-display) !important; font-weight: var(--fw-head, 600) !important;
  font-size: clamp(1.1rem, 1.8vw, 1.45rem); line-height: 1.3; letter-spacing: -0.01em;
  color: var(--brand-3); text-wrap: balance;
}
.hero-full__intro { max-width: 58ch; margin: 0 0 1.6rem; }
.hero-full__intro p {
  margin: 0 0 0.75rem; color: rgba(255, 255, 255, 0.9);
  font-size: clamp(0.98rem, 1.25vw, 1.08rem); line-height: 1.5; text-wrap: pretty;
}
.hero-full__intro p:last-child { margin-bottom: 0; }
.hero-full__intro .hero-full__lead { color: #fff; font-size: clamp(1.05rem, 1.45vw, 1.22rem); }
.hero-full__intro .hero-full__close {
  color: #fff; font-family: var(--font-display) !important; font-weight: var(--fw-head, 600) !important;
  font-size: clamp(1.02rem, 1.35vw, 1.15rem);
}
@media (max-width: 900px) {
  .hero-full__intro { max-width: 100%; }
}
@media (max-width: 600px) {
  .hero-full__content--welcome { padding-top: calc(var(--header-h, 4.75rem) + 1.25rem); }
  .hero-full__tagline { font-size: 1.05rem; max-width: 100%; }
  .hero-full__intro p { font-size: 0.95rem; line-height: 1.45; margin-bottom: 0.6rem; }
  .hero-full .hero-actions { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 0.6rem; }
  .hero-full .hero-actions > a { width: 100%; justify-content: center; }
}
/* HERO-WELCOME:END */

/* ============================================================
   ABOUT-STORY:START (2026-10-24). Owner's "Our story" copy on /about as one reading column
   (~44rem) with the key lines pulled out in the display font. Replaces the chapters block.
   ============================================================ */
.story-prose { padding-block: clamp(3rem, 6vw, 5rem); }
.story-prose .wrap { max-width: 44rem; }
.story-prose h2 { margin: 0 0 1.5rem; font-size: clamp(1.6rem, 2.6vw, 2.1rem); text-wrap: balance; }
.story-prose p { margin: 0 0 1.1rem; font-size: 1.05rem; line-height: 1.6; color: var(--dk-muted, var(--pt-ink-2)); text-wrap: pretty; }
.story-prose .pull {
  margin: 1.75rem 0; color: var(--ink);
  font-family: var(--font-display) !important; font-weight: var(--fw-head, 600) !important;
  font-size: clamp(1.2rem, 1.9vw, 1.5rem); line-height: 1.3;
  padding-left: 1rem; border-left: 3px solid var(--brand);
}
.story-prose .pull--close { margin-bottom: 0; color: var(--brand); border-left: 0; padding-left: 0; font-size: clamp(1.25rem, 2vw, 1.6rem); }
@media (max-width: 600px) {
  .story-prose p { font-size: 1rem; line-height: 1.55; }
  .story-prose .pull { margin: 1.4rem 0; }
}
/* ABOUT-STORY:END */

/* CATERING-FORM (2026-10-24): the iOrders catering request form embedded on /catering; same frame as .map-frame */
.form-frame { border-radius: var(--pt-r-img); overflow: hidden; background: var(--dk-surface-2, var(--pt-grey)); border: 6px solid var(--pt-grey); margin-top: 1.5rem; }
.form-frame iframe { display: block; width: 100%; height: 820px; border: 0; }
@media (max-width: 600px) { .form-frame iframe { height: 980px; } }
/* the reservation form has more fields (party size, date & time) than the catering one */
#reservation-form .form-frame iframe { height: 1040px; }
@media (max-width: 600px) { #reservation-form .form-frame iframe { height: 1150px; } }
/* the events form has the same date, guests and details fields as the reservation one */
#events-form .form-frame iframe { height: 1040px; }
@media (max-width: 600px) { #events-form .form-frame iframe { height: 1050px; } }
/* the careers form adds experience, role choice and a cover letter */
#careers-form .form-frame iframe { height: 1060px; }
@media (max-width: 600px) { #careers-form .form-frame iframe { height: 1050px; } }

/* NAV-10 (2026-10-24): ten nav links + the order button need ~1710px at the default size, so the
   header runs compact from the hamburger breakpoint (900px) up to 1720px, and extra-compact under
   1040px. Measured: one row, nothing clipped, from 912px up. */
@media (min-width: 901px) and (max-width: 1720px) {
  .site-header .wrap { gap: 0.6rem; }
  .brand img { max-height: 2.5rem; }
  .site-nav { gap: 0; padding: 3px; }
  .site-nav a { padding: 0.4rem 0.42rem; font-size: 0.84rem; }
  .header-cta .btn { font-size: 0.86rem; }
  .header-cta .btn .btn__label { padding: 10px 12px; }
  .header-cta .btn .btn__arrow { padding: 10px 10px; }
}
@media (min-width: 901px) and (max-width: 1040px) {
  .site-header .wrap { gap: 0.4rem; }
  .brand img { max-height: 2.25rem; }
  .site-nav a { padding: 0.38rem 0.28rem; font-size: 0.78rem; }
  .header-cta .btn { font-size: 0.8rem; }
  .header-cta .btn .btn__label { padding: 9px 10px; }
  .header-cta .btn .btn__arrow { padding: 9px 8px; }
}
}
