/* ============================================================
   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-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; }
/* PER STORE (Dennis, Krishna Dosa Saskatoon QA): long top-line hours wrap to 2 lines on phones (52.75px top line,
   133.75px header), and a 115.375px reserve then drops the hero ~18px (home CLS 0.185). In the shell step, measure the
   widest width where .site-topline is 52.75px tall and, if it wraps at all, uncomment with that width:
   @media (max-width: <WRAP>.98px) { #header-container:empty { min-height: 133.75px; } }
   (KD: 523 = 2 lines, 524 = 1 line). A short top line that never wraps needs nothing. */
/* CTA band body text on the accent = #fff (rgba .78 white fails 4.5:1 on mid-blue accents) */
.cta-content p { color: #fff; }
/* related-dish links on dish pages: tap targets of at least 24px */
.dish-description-content li a { display: inline-block; min-height: 24px; padding-block: 3px; line-height: 1.3; }
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-barlow-head); --font-body: var(--fp-barlow-body); --fw-head: var(--fp-barlow-weight); } /* overridden by the CORPORATE-PARITY block at the end (Oswald/Open Sans/Lora/Dancing Script, Atlas 20:08) */

/* ============================================================
   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: var(--brand);
  --btn-accent-dark: color-mix(in srgb, var(--brand) 75%, #000);   /* rebrand: set the checked hex */
  --btn-accent-hover: color-mix(in srgb, var(--brand) 88%, #000);  /* rebrand: set the checked hex */
  --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 { 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; }
/* Rakesh 2026-10-29: overflow:hidden makes min-height 0, so 26 categories shrank instead of scrolling - keep full height, sidebar scrolls */
.menu-buttons .menu-button { flex-shrink: 0; }
.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; }
/* Dennis QA (KD Saskatoon): Fraunces swap wraps the 2 hero buttons at 400-479px (CLS 0.10) - stack them below 480px */
@media (max-width: 479.98px) { .hero-actions { flex-direction: column; align-items: flex-start; } }

/* 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 */

/* CORPORATE-PARITY:START (Wow! Wing House, the corporate site tokens; parity sheet m97fvyx7, Atlas 20:08 11-11)
   Replaces PT's light base + one accent: all-dark site, red #E40009 buttons (white 4.88:1), hover #B80008 (6.9:1),
   gold #D9B742 labels/rules, #FB1D25 only as large display text on pure black (5.30:1). Never #FB1D25 behind text. */
@font-face { font-family: "Oswald"; font-style: normal; font-weight: 500 700; font-display: swap; src: url("assets/fonts/oswald-var-latin.woff2") format("woff2"); }
@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 400 600; font-display: swap; src: url("assets/fonts/open-sans-var-latin.woff2") format("woff2"); }
@font-face { font-family: "Lora"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/lora-400-latin.woff2") format("woff2"); }
@font-face { font-family: "Lora"; font-style: italic; font-weight: 400; font-display: swap; src: url("assets/fonts/lora-400-italic-latin.woff2") format("woff2"); }
@font-face { font-family: "Dancing Script"; font-style: normal; font-weight: 700; font-display: swap; src: url("assets/fonts/dancing-script-700-latin.woff2") format("woff2"); }
:root {
  --wow-red: #E40009; --wow-red-hover: #B80008; --wow-red-display: #FB1D25; --wow-gold: #D9B742;
  --wow-black: #000000; --wow-char: #1C1C1C; --wow-char-2: #212121; --wow-line: #3a3a3a; --wow-muted: #B6B6B6;
  --dk-bg: var(--wow-black); --dk-surface: var(--wow-char); --dk-surface-2: var(--wow-char-2); --dk-line: var(--wow-line);
  --dk-text: #FFFFFF; --dk-muted: var(--wow-muted); --dk-accent-text: var(--wow-gold);
  --font-display: "Oswald", "Arial Narrow", var(--fp-system); --font-body: "Open Sans", var(--fp-system); --fw-head: 700;
  --font-serif: "Lora", Georgia, serif; --font-script: "Dancing Script", cursive;
  --btn-accent: var(--wow-red); --btn-accent-dark: #A30007; --btn-accent-hover: var(--wow-red-hover);
  --btn-sec-line: var(--wow-gold); --btn-sec-arrow: var(--wow-char-2);
}
html, body { background: var(--wow-black); color: #fff; font-family: var(--font-body); }
h1, h2, h3, h4, .sec-head h2, .site-nav a, .btn, .btn__label { font-family: var(--font-display); }
h1, h2 { text-transform: uppercase; letter-spacing: .03em; }
.site-nav a { text-transform: uppercase; letter-spacing: .1em; font-weight: 500; }
.site-nav a.active, .site-nav a:hover { background: transparent; color: #FF5A5F; }
.site-header, :root .site-header, :root body:has(.hero-full) .site-header:not(.scrolled) { background: rgba(0,0,0,.92); border-bottom: 1px solid var(--wow-char-2); }
.site-topline { background: var(--wow-char); color: #fff; }
.site-topline a, .site-topline a:hover { color: #fff; }
/* Lora for lead lines (corporate italic statements) */
.lede, .hero p, .page-hero p, .sec-head p, .faq-intro, .story-copy p:first-of-type { font-family: var(--font-serif); }
/* one Dancing Script accent line per page (.wow-script) */
.wow-script { font-family: var(--font-script); font-weight: 700; color: var(--wow-gold); font-size: clamp(1.4rem, 2.6vw, 2rem); text-transform: none; letter-spacing: 0; display: block; margin-bottom: .25em; }
/* links on dark = gold */
main a:not(.btn):not(.btn-line):not(.btn-ghost):not(.cat-tile):not(.arrow-btn) { color: var(--wow-gold); text-decoration-color: currentColor; }
i[class^="ri-"] { color: var(--wow-gold); }
/* buttons: red fill + white, hover darker red (never #FB1D25 fill); secondary = gold outline */
.btn .btn__label { background: var(--btn-accent); color: #fff !important; text-transform: uppercase; letter-spacing: .08em; border-radius: 3px 0 0 3px; }
.btn .btn__arrow { background: var(--btn-accent-dark); border-radius: 0 3px 3px 0; }
.btn:hover .btn__label, .btn:focus-visible .btn__label { background: var(--btn-accent-hover); }
.btn-line .btn__label { background: transparent; color: var(--wow-gold) !important; border: 2px solid var(--wow-gold); border-right: 0; text-transform: uppercase; letter-spacing: .08em; }
.btn-line .btn__arrow { background: var(--wow-char-2); color: var(--wow-gold) !important; border: 2px solid var(--wow-gold); }
.menu-band .btn .btn__label, .cta-band .btn .btn__label { background: var(--btn-accent); color: #fff !important; }
/* bands: corporate charcoal, no red full-width fills (white on red bands is fine at 4.88, kept for CTA only) */
.menu-band { background: var(--wow-char); color: #fff; }
.cta-band { background: var(--wow-red); color: #fff; }
.cta-band .btn .btn__label { background: var(--wow-black); color: #fff !important; }
.cta-band .btn:hover .btn__label { background: var(--wow-char-2); }
/* gold label blocks (corporate section labels): h2 in .sec-head gets a gold rule */
.sec-head h2::after { content: ""; display: block; width: 64px; height: 3px; background: var(--wow-gold); margin-top: .4em; }
.sec-head.center h2::after, .text-center .sec-head h2::after { margin-inline: auto; }
.faq details, .faq .qa { border-color: var(--wow-gold) !important; }
.kicker, .kicker--light, .menu-band .kicker { color: var(--wow-gold); }
.breadcrumb a { color: var(--wow-gold) !important; }
/* footer: charcoal band + black strip (corporate) */
.site-footer, footer.site-footer { background: var(--wow-char); color: #fff; }
.site-footer a { color: #fff; }
.site-footer a:hover { color: var(--wow-gold); }
.footer-bottom, .site-footer .foot-bottom { background: var(--wow-black); color: var(--wow-muted); }
/* CORPORATE-PARITY:END */
/* header QA (rendered contrast): nav on pure black so the red active item clears 4.5:1 (#FB1D25 on #000 = 5.3); open toggle = white X */
:root .site-nav { background: #000; }
@media (max-width: 900px) { :root .site-nav { background: #000; border: 1px solid var(--wow-char-2); } }
:root .nav-toggle, :root .nav-toggle.is-open { background: #000; border-color: var(--wow-line); }
:root .nav-toggle__bars span, :root .nav-toggle.is-open .nav-toggle__bars span { background: #fff; }
.site-header, :root .site-header, :root body:has(.hero-full) .site-header:not(.scrolled) { background: #000; }
:root .site-nav a.active, :root .site-nav a:hover { background: transparent; color: #FF5A5F; }
/* "Over 123 Flavours" stamp (corporate round stamp, CSS only; Rakesh 20:41 owner-confirmed claim) */
.wow-stamp { display: inline-grid; place-items: center; width: 112px; height: 112px; border-radius: 50%; border: 3px double #fff; color: #fff; text-align: center; font-family: var(--font-display); text-transform: uppercase; line-height: 1; letter-spacing: .06em; margin: .75rem 0; }
.wow-stamp b { display: block; font-size: 2.1rem; font-weight: 700; letter-spacing: 0; }
.wow-stamp small { display: block; font-size: .7rem; }
/* Founder's Message photo (Brandy v4, 277x325 cut-out on white): white panel, max 240 CSS px, never upscaled */
.founder-photo { background: #fff; border-radius: 6px; padding: 12px; max-width: 264px; margin-inline: auto; }
.founder-photo img { display: block; width: 100%; max-width: 240px; height: auto; margin-inline: auto; border-radius: 0; filter: none; }
:root .pt-split__media.founder-photo { aspect-ratio: auto; height: auto; align-self: center; justify-self: center; overflow: visible; }
:root .pt-split__media.founder-photo img { aspect-ratio: auto !important; object-fit: contain !important; width: 100%; max-width: 240px; height: auto !important; position: static; }
