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

/* ===== Open now / Closed now badge (new-website standards 2026-10-22) =====
   Sits just under the header (absolute, so it never shifts the layout).
   Hidden until the live hours check answers; stays hidden on any error. */
.open-badge {
  position: absolute;
  top: calc(100% + 8px);
  left: max(12px, calc((100% - 1200px) / 2 + 12px));
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 26px;
  padding: 0 11px;
  border-radius: 999px;
  background: #fff;
  color: #1f2937;
  font: 600 12px/1 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  letter-spacing: 0.01em;
  white-space: nowrap;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
  pointer-events: none;
}
.open-badge[hidden] { display: none; }
.open-badge::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #6b7280;
}
.open-badge.is-open::before { background: #15803d; }
.open-badge.is-closed::before { background: #b91c1c; }
/* 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; }

/* ============================================================
   CHACHU KI BIRYANI — two locations (shared, written by Wilson; agents reuse these classes)
   .loc-cards  = location cards (home, locations hub, menu chooser page, contact)
   .loc-maps   = two-location map block (one map per location, each in its own card)
   .loc-chooser = the location chooser dialog behind every brand-level Order Online button
   ============================================================ */
.loc-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 1.5rem; }
.loc-card { display: flex; flex-direction: column; background: var(--card, #fff); color: inherit; border: 1px solid rgba(0,0,0,.1); border-radius: var(--r-lg, 1.35rem); overflow: hidden; }
.loc-card__img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.loc-card__body { position: relative; display: flex; flex-direction: column; gap: .5rem; padding: 1.25rem 1.25rem 1.5rem; flex: 1; }
.loc-card__name { margin: 0; font-family: var(--font-display); font-size: clamp(1.3rem, 2.4vw, 1.6rem); line-height: 1.2; }
.loc-card__addr, .loc-card__hours, .loc-card__phone, .loc-card__rating { margin: 0; line-height: 1.5; }
.loc-card__phone a { font-weight: 600; }
.loc-card__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: auto; padding-top: .75rem; }
/* badges inside cards/dialog sit in the flow (the header badge stays absolute under the header) */
.loc-card .open-badge, .loc-map .open-badge, .loc-chooser .open-badge, .hero-full .open-badge.in-flow, .open-badge.in-flow {
  position: static; align-self: flex-start; box-shadow: none; border: 1px solid rgba(0,0,0,.15); }
.loc-maps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 1.5rem; }
.loc-map { display: flex; flex-direction: column; gap: .5rem; padding: 1.25rem; background: var(--card, #fff); color: inherit; border: 1px solid rgba(0,0,0,.1); border-radius: var(--r-lg, 1.35rem); }
.loc-map h3 { margin: 0; }
.loc-map p { margin: 0; }
.loc-map .map-frame { position: relative; width: 100%; aspect-ratio: 4 / 3; border-radius: var(--r-md, 1rem); overflow: hidden; margin-top: .25rem; }
.loc-map .map-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.loc-map__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .5rem; }
.loc-chooser { width: min(34rem, calc(100% - 2rem)); max-height: calc(100% - 2rem); padding: 1.5rem; border: 0; border-radius: var(--r-lg, 1.35rem); background: #fff; color: #1f1d1a; box-shadow: 0 24px 60px rgba(0,0,0,.3); }
.loc-chooser::backdrop { background: rgba(20, 16, 12, .6); }
.loc-chooser__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.loc-chooser__head h2 { margin: 0; font-family: var(--font-display); font-size: 1.5rem; line-height: 1.2; color: inherit; }
.loc-chooser__close { flex: 0 0 auto; width: 44px; height: 44px; border: 1px solid rgba(0,0,0,.2); border-radius: 50%; background: #fff; color: #1f1d1a; font-size: 1.6rem; line-height: 1; cursor: pointer; }
.loc-chooser__note { margin: .75rem 0 1rem; line-height: 1.5; color: #3d3a36; }
.loc-chooser__list { display: grid; gap: .75rem; }
.loc-chooser__opt { display: flex; flex-direction: column; gap: .3rem; padding: 1rem 1.1rem; border: 2px solid rgba(0,0,0,.12); border-radius: var(--r-md, 1rem); color: #1f1d1a; text-decoration: none; }
.loc-chooser__opt:hover, .loc-chooser__opt:focus-visible { border-color: var(--brand, #b3261e); outline: none; }
.loc-chooser__name { font-family: var(--font-display); font-size: 1.25rem; font-weight: 600; }
.loc-chooser__addr, .loc-chooser__hours { font-size: .95rem; color: #3d3a36; }
.loc-chooser__go { margin-top: .35rem; font-weight: 700; color: var(--brand-ink, var(--brand, #b3261e)); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 600px) {
  .loc-chooser { width: 100%; max-width: 100%; margin: auto 0 0; border-radius: 1.25rem 1.25rem 0 0; }
}
/* CLS (Mr. Schnapp's lesson f5baa44): the header is injected by components.js; until then the breadcrumb fallback
   holds the header's height (TF: top bar + header = 103px <=900px, 140px >=901px), so the page does not jump.
   Re-measured on this build before READY. */
body:not(.header-loaded) .breadcrumb-container { min-height: 103px; box-sizing: border-box; }
@media (min-width: 901px) { body:not(.header-loaded) .breadcrumb-container { min-height: 140px; } }
/* Logo (Brandy pack v2, owner logo cut out): dark-text variant on the white header, owner's white original on the
   navy footer. Transparent, so no plate. 469x170 (2.76:1): width 242 keeps the 87.7px height of v1, so header height is unchanged. */
.brand img { width: 242px; height: auto; object-fit: contain; background: transparent; padding: 0; box-shadow: none; border-radius: 0; }
.foot-brand img { width: 178px; height: auto; object-fit: contain; background: transparent; padding: 0; border-radius: 0; }
/* v2 logo on very narrow phones: keeps logo + Order Online + menu toggle inside 320px. */
@media (max-width: 359px) { .brand img { width: 200px; } }
