/**
 * Variant CSS: hours--status-now-banner
 * Layer 2 - Path B hours role (2026-06-06).
 *
 * A prominent open/closed-NOW banner (large status dot + "open now" + an
 * "open until ..." line) sits ABOVE the week list — answers "are you open
 * right now?" before the table. Distinct from the side status panel and the
 * small in-card status pill: here the banner is a full-width tinted hero band.
 * Text stays --ink (polarity-aware); the banner tint + dot use color-mix on
 * --accent (never --bg-main as foreground, KI-020).
 * EVERY selector scoped to .universal-hours--status-now-banner (no global leak).
 */

body.aibt-universal .universal-hours--status-now-banner {
	padding-block: calc(clamp(3rem, 7vw, 5rem) * var(--density, 1));
}

/* === Intro === */
body.aibt-universal .universal-hours--status-now-banner .universal-hours__kicker {
	font-family: var(--font-body) !important;
	font-size: var(--text-xs) !important;
	font-weight: 600 !important;
	letter-spacing: var(--tracking-widest) !important;
	text-transform: uppercase !important;
	color: var(--accent) !important;
	margin: 0 auto var(--space-sm) auto !important;
}

body.aibt-universal .universal-hours--status-now-banner .universal-hours__headline {
	font-family: var(--font-display) !important;
	color: var(--ink) !important;
	margin: 0 auto clamp(1.6rem, 3.4vw, 2.4rem) auto !important;
}

body.aibt-universal .universal-hours--status-now-banner .universal-hours__headline em,
body.aibt-universal .universal-hours--status-now-banner .universal-hours__headline mark {
	color: var(--accent);
	font-style: inherit;
	background: transparent;
}

/* === Prominent NOW banner === */
/* Centered, full-width tinted band. It is a direct child of the constrained
   section, so keep horizontal-auto margins (A8/A9) — never margin:0 0 X 0. */
body.aibt-universal .universal-hours--status-now-banner .universal-hours__banner {
	gap: 0.55rem !important;
	align-items: center;
	text-align: center;
	padding: clamp(1.5rem, 4vw, 2.4rem) clamp(1.4rem, 4vw, 2.6rem);
	margin: 0 auto clamp(1.8rem, 4vw, 2.6rem) auto !important;
	border-radius: var(--decor-radius, 18px);
	background: color-mix(in srgb, var(--accent) 9%, transparent);
	border: 1px solid color-mix(in srgb, var(--accent) 28%, transparent);
}

body.aibt-universal .universal-hours--status-now-banner .universal-hours__statusline {
	gap: 0.7rem !important;
}

/* Large pulsing status dot (decorative; the text states open/closed). */
body.aibt-universal .universal-hours--status-now-banner .universal-hours__dot {
	flex: 0 0 auto;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: var(--accent);
	box-shadow: 0 0 0 5px color-mix(in srgb, var(--accent) 22%, transparent);
	animation: aibt-hours-pulse 2.4s var(--ease-default, ease) infinite;
}

@keyframes aibt-hours-pulse {
	0%, 100% { box-shadow: 0 0 0 5px color-mix(in srgb, var(--accent) 22%, transparent); }
	50%      { box-shadow: 0 0 0 9px color-mix(in srgb, var(--accent) 8%, transparent); }
}

body.aibt-universal .universal-hours--status-now-banner .universal-hours__statusnow {
	font-family: var(--font-display) !important;
	font-size: clamp(1.5rem, 3.6vw, 2.2rem) !important;
	font-weight: 700 !important;
	line-height: 1.05 !important;
	letter-spacing: -0.02em !important;
	color: var(--ink) !important;
	margin: 0 !important;
}

body.aibt-universal .universal-hours--status-now-banner .universal-hours__until {
	font-family: var(--font-body) !important;
	font-size: var(--text-base) !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	color: var(--accent) !important;
	margin: 0 auto !important;
}

/* === Week list === */
body.aibt-universal .universal-hours--status-now-banner .universal-hours__week {
	max-width: 560px;
	margin-inline: auto;
}

body.aibt-universal .universal-hours--status-now-banner .universal-hours__row {
	gap: var(--space-md) !important;
	align-items: center;
	/* Kill WP's default block-gap so rows form one tight table with continuous
	   hairline separators. */
	margin-block: 0 !important;
	padding-block: calc(clamp(0.7rem, 1.8vw, 0.95rem) * var(--density, 1));
	border-top: 1px solid color-mix(in srgb, var(--ink) 11%, transparent);
}

body.aibt-universal .universal-hours--status-now-banner .universal-hours__row:last-child {
	border-bottom: 1px solid color-mix(in srgb, var(--ink) 11%, transparent);
}

/* Subtle row affordance — tint on hover, full-width to the row edges. Stays a
   no-op until a row carries an interactive element, but reads as a real "table"
   row. Negative inline margin bleeds the tint past the cell padding. */
body.aibt-universal .universal-hours--status-now-banner .universal-hours__row {
	border-radius: var(--decor-radius, 10px);
	transition: background-color var(--duration-fast, 0.18s) var(--ease-default, ease);
}

body.aibt-universal .universal-hours--status-now-banner .universal-hours__row:hover {
	background: color-mix(in srgb, var(--accent) 6%, transparent);
}

/* Keyboard focus ring — mirrors the sibling ribbon variant so any link the AI
   binds inside a row gets a visible affordance. */
body.aibt-universal .universal-hours--status-now-banner .universal-hours__row:focus-within {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
	border-radius: inherit;
}

body.aibt-universal .universal-hours--status-now-banner .universal-hours__day {
	font-family: var(--font-body) !important;
	font-size: var(--text-base) !important;
	font-weight: 500 !important;
	color: var(--ink) !important;
	margin: 0 !important;
}

body.aibt-universal .universal-hours--status-now-banner .universal-hours__time {
	font-family: var(--font-display) !important;
	font-size: var(--text-base) !important;
	font-weight: 600 !important;
	color: var(--ink) !important;
	margin: 0 !important;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

/* Closed day — de-emphasised but still AA. */
body.aibt-universal .universal-hours--status-now-banner .universal-hours__row--closed .universal-hours__time {
	font-weight: 500 !important;
	font-style: italic;
	opacity: 0.6;
}

body.aibt-universal .universal-hours--status-now-banner .universal-hours__note {
	font-family: var(--font-body) !important;
	font-size: var(--text-sm) !important;
	line-height: var(--leading-relaxed) !important;
	color: var(--ink) !important;
	opacity: 0.62;
	margin: clamp(1.4rem, 3vw, 2rem) auto 0 auto !important;
	max-width: 48ch;
}

/* === Responsive === */
@media (max-width: 781px) {
	body.aibt-universal .universal-hours--status-now-banner .universal-hours__banner {
		padding-inline: var(--space-md);
	}
}

/* Tighten the wide uppercase kicker tracking on small screens (A5). */
@media (max-width: 640px) {
	body.aibt-universal .universal-hours--status-now-banner .universal-hours__kicker {
		letter-spacing: 0.08em !important;
	}
}

/* Respect reduced-motion: freeze the dot pulse + row transition. */
@media (prefers-reduced-motion: reduce) {
	body.aibt-universal .universal-hours--status-now-banner .universal-hours__dot {
		animation: none;
	}
	body.aibt-universal .universal-hours--status-now-banner .universal-hours__row {
		transition: none;
	}
}
