/**
 * Remlinger Band Pages
 * Tokens mirror remlinger-brewery.css so a band page and the Brewery landing
 * page read as one site. Type comes from the shell's self-hosted Montserrat.
 */

.rf-band-page {
	--paper: #f4efe6;
	--paper-soft: #faf6ef;
	--cream: #f6ead3;
	--ink: #111417;
	--night: #07111f;
	--night-soft: #0d1b2c;
	--copper: #f17b48;
	--copper-hot: #ff9a5d;
	--amber: #e6a947;
	--radius-md: 24px;
	--radius-lg: 34px;
	--body-ink: #565652;
	--muted-ink: #6a6a65;
	/* #bb5b35 is 3.93:1 on paper and fails AA at 11px; this is the same family at 4.82:1. */
	--copper-ink: #a45132;
	--on-night: #f4efe6;
	--on-night-muted: #a7b0bb;
	--rule-night: rgba(244, 239, 230, 0.16);
	--band-max: 1360px;
	--band-pad: clamp(18px, 5vw, 64px);
	--tap: 48px;

	background: var(--paper);
	color: var(--ink);
	font-family: "RF Shell Montserrat", Montserrat, system-ui, -apple-system, "Segoe UI", sans-serif;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
	/* clip, where supported, trims sideways overflow without becoming a
	   scroll container, so the sticky details card still sticks. */
	overflow-x: clip;
}

.rf-band-page *,
.rf-band-page *::before,
.rf-band-page *::after { box-sizing: border-box; }

.rf-band-page img { max-width: 100%; display: block; }
.rf-band-page p { margin: 0 0 1em; text-wrap: pretty; }
.rf-band-page a { color: var(--copper-ink); text-decoration: none; }
.rf-band-page :focus-visible { outline: 3px solid var(--copper); outline-offset: 3px; border-radius: 4px; }

.rf-band-page .screen-reader-text {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.rf-band-page .band-wrap {
	max-width: var(--band-max);
	margin: 0 auto;
	padding-inline: var(--band-pad);
}

/* ---------- type ---------- */
.rf-band-page .band-eyebrow {
	margin: 0 0 12px;
	font-size: 11px; font-weight: 800; letter-spacing: 0.18em;
	text-transform: uppercase; color: var(--copper-ink);
}
.rf-band-page .band-eyebrow.is-dark { color: var(--copper); }
.rf-band-page .band-h1 {
	margin: 0;
	font-size: clamp(40px, 10.5vw, 88px); line-height: 0.94;
	font-weight: 800; letter-spacing: -0.035em; text-wrap: balance;
}
.rf-band-page .band-h2 {
	margin: 0;
	font-size: clamp(30px, 6.4vw, 54px); line-height: 1;
	font-weight: 800; letter-spacing: -0.03em; text-wrap: balance;
}
.rf-band-page .band-lede {
	font-size: clamp(16px, 1.2vw, 18px); line-height: 1.62;
	color: var(--body-ink); max-width: 52ch;
}

/* ---------- buttons: every target clears 48px ---------- */
.rf-band-page .band-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: var(--tap); padding: 13px 26px; border: 0; border-radius: 100px;
	cursor: pointer; font-family: inherit; font-size: 13px; font-weight: 800;
	letter-spacing: 0.11em; text-transform: uppercase; text-align: center;
	transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.rf-band-page .band-btn.is-primary { background: var(--copper); color: #231007; }
.rf-band-page .band-btn.is-primary:hover { background: var(--copper-hot); color: #231007; }
.rf-band-page .band-btn.is-dark { background: var(--night); color: var(--on-night); }
.rf-band-page .band-btn.is-dark:hover { background: var(--night-soft); color: var(--on-night); }
.rf-band-page .band-btn.is-ghost { background: transparent; color: var(--ink); border: 1px solid rgba(17, 20, 23, 0.26); }
.rf-band-page .band-btn.is-ghost:hover { background: var(--ink); color: var(--paper); }
.rf-band-page .band-btn.is-ghost-dark { background: transparent; color: var(--on-night); border: 1px solid rgba(244, 239, 230, 0.34); }
.rf-band-page .band-btn.is-ghost-dark:hover { background: rgba(244, 239, 230, 0.12); color: var(--on-night); }
.rf-band-page .band-btn.is-sm { padding: 11px 20px; font-size: 11px; letter-spacing: 0.13em; }
.rf-band-page .band-btn.is-block { display: flex; width: 100%; margin-top: 14px; }
.rf-band-page .band-btnrow { display: flex; flex-wrap: wrap; gap: 12px; margin: clamp(24px, 3.5vw, 36px) 0 0; }

/* ---------- hero ---------- */
.rf-band-page .band-hero {
	position: relative; background: var(--night); color: var(--on-night);
	padding-block: clamp(26px, 5vw, 64px) clamp(40px, 6vw, 84px); overflow: hidden;
}
.rf-band-page .band-hero-glow {
	position: absolute; inset: -40% -15% auto -25%; height: 130%; pointer-events: none;
	background:
		radial-gradient(58% 55% at 22% 30%, rgba(43, 86, 150, 0.5) 0%, rgba(7, 17, 31, 0) 70%),
		radial-gradient(46% 46% at 84% 12%, rgba(241, 123, 72, 0.26) 0%, rgba(7, 17, 31, 0) 70%);
	animation: rfBandGlow 9s ease-in-out infinite;
}
@keyframes rfBandGlow { 0%, 100% { opacity: 0.6; } 50% { opacity: 0.9; } }
.rf-band-page .band-hero-inner { position: relative; display: grid; gap: clamp(28px, 4vw, 56px); }
.rf-band-page .band-crumb {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px;
	font-size: 11px; font-weight: 800; letter-spacing: 0.16em;
	text-transform: uppercase; color: var(--on-night-muted);
}
.rf-band-page .band-crumb:hover { color: var(--copper); }
.rf-band-page .band-kicker { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 14px; }
.rf-band-page .band-kicker span { font-size: 11px; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase; }
.rf-band-page .band-kicker-1 { color: var(--copper); }
.rf-band-page .band-kicker-2 { color: var(--on-night-muted); }
.rf-band-page .band-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--copper); flex: none; }
.rf-band-page .band-chips {
	display: flex; flex-wrap: wrap; gap: 8px;
	margin: clamp(18px, 2.5vw, 26px) 0 0; padding: 0; list-style: none;
}
.rf-band-page .band-chips li {
	padding: 7px 14px; border: 1px solid rgba(244, 239, 230, 0.3); border-radius: 100px;
	font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
}
.rf-band-page .band-nextbar {
	display: flex; flex-wrap: wrap; gap: clamp(12px, 2vw, 26px);
	margin: clamp(24px, 3vw, 34px) 0 0; padding-top: 20px;
	border-top: 1px solid var(--rule-night);
	font-size: 12px; font-weight: 800; letter-spacing: 0.13em;
	text-transform: uppercase; color: rgba(244, 239, 230, 0.78);
}
.rf-band-page .band-admission { color: var(--amber); }

/* ---------- poster: portrait art, landscape art, or none ---------- */
.rf-band-page .band-poster {
	position: relative; margin: 0; border-radius: var(--radius-md); overflow: hidden;
	aspect-ratio: 4 / 5; background: var(--night-soft);
	border: 1px solid rgba(244, 239, 230, 0.14);
}
.rf-band-page .band-poster-fallback {
	position: absolute; inset: 0; display: grid; place-content: center; gap: 10px;
	text-align: center; padding: 26px; color: rgba(244, 239, 230, 0.92);
	background: linear-gradient(150deg, #16304f 0%, var(--night) 58%, #1b2a3d 100%);
}
.rf-band-page .band-poster-fallback b {
	font-size: clamp(20px, 5.5vw, 30px); font-weight: 800;
	letter-spacing: -0.025em; line-height: 1.05; text-wrap: balance;
}
.rf-band-page .band-poster-fallback span {
	font-size: 11px; font-weight: 800; letter-spacing: 0.2em;
	text-transform: uppercase; color: var(--copper);
}
.rf-band-page .band-poster-blur {
	position: absolute; inset: -12%; background-size: cover; background-position: center;
	filter: blur(30px) saturate(1.25) brightness(0.55); transform: scale(1.15);
}
.rf-band-page .band-poster-img { position: relative; width: 100%; height: 100%; object-fit: contain; }
.rf-band-page .band-poster.is-failed .band-poster-img,
.rf-band-page .band-poster.is-failed .band-poster-blur { display: none; }
.rf-band-page .band-poster-frame { width: 100%; max-width: 520px; }

/* ---------- sections ---------- */
.rf-band-page .band-sec { padding-block: clamp(44px, 6.5vw, 92px); }
.rf-band-page .band-sec.is-flush { padding-top: 0; }
.rf-band-page .band-sechead {
	display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
	gap: 20px; margin-bottom: clamp(24px, 3vw, 40px);
}
.rf-band-page .band-sechead p { margin: 0; max-width: 36ch; font-size: 15px; line-height: 1.6; color: var(--body-ink); }
.rf-band-page .band-split { display: grid; gap: clamp(24px, 4vw, 52px); align-items: start; }

/* ---------- dates ---------- */
.rf-band-page .band-dates { display: grid; gap: 12px; padding: 0; margin: 0; list-style: none; }
.rf-band-page .band-datecard {
	display: grid; gap: 16px; padding: clamp(18px, 2.4vw, 26px);
	border-radius: var(--radius-md); background: var(--paper-soft);
	border: 1px solid rgba(17, 20, 23, 0.09); box-shadow: 0 1px 2px rgba(7, 17, 31, 0.05);
}
.rf-band-page .band-datecard-when { display: flex; align-items: center; gap: 16px; min-width: 0; }
.rf-band-page .band-daybox { flex: none; width: 70px; text-align: center; margin: 0; }
.rf-band-page .band-daybox b { display: block; font-size: 38px; font-weight: 800; line-height: 1; letter-spacing: -0.04em; }
.rf-band-page .band-daybox span {
	display: block; font-size: 11px; font-weight: 800; letter-spacing: 0.16em;
	text-transform: uppercase; color: var(--copper-ink);
}
.rf-band-page .band-datecard-wd { margin: 0; font-size: 19px; font-weight: 800; letter-spacing: -0.012em; }
.rf-band-page .band-datecard-tm { margin: 2px 0 0; font-size: 14px; color: var(--muted-ink); }
.rf-band-page .band-datecard-note { margin: 0; font-size: 14px; line-height: 1.55; color: var(--body-ink); }
.rf-band-page .band-datecard-act { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.rf-band-page .band-pill {
	/* A status, not a control: no fill, no outline, nothing that reads as tappable. */
	display: inline-flex; align-items: center; gap: 8px; min-height: 30px; padding: 0 6px 0 0;
	font-size: 11px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase;
}
.rf-band-page .band-pill::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex: none; }
.rf-band-page .band-pill.is-free { color: var(--copper-ink); }
.rf-band-page .band-pill.is-door { color: var(--ink); }

/* ---------- empty ---------- */
.rf-band-page .band-empty {
	padding: clamp(24px, 3vw, 36px); border-radius: var(--radius-md);
	background: var(--paper-soft); border: 1px dashed rgba(17, 20, 23, 0.2);
}
.rf-band-page .band-empty-title { margin: 0 0 8px; font-size: 22px; font-weight: 800; letter-spacing: -0.02em; }
.rf-band-page .band-empty p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--body-ink); max-width: 52ch; }

/* ---------- details + about ---------- */
.rf-band-page .band-factcard {
	padding: clamp(22px, 2.6vw, 32px); border-radius: var(--radius-md);
	background: var(--night); color: var(--on-night);
}
.rf-band-page .band-facts { margin: 0; display: grid; }
.rf-band-page .band-facts > div { display: flex; gap: 16px; padding: 15px 0; border-top: 1px solid var(--rule-night); }
.rf-band-page .band-facts > div:last-child { border-bottom: 1px solid var(--rule-night); }
.rf-band-page .band-facts dt {
	flex: none; width: 92px; font-size: 11px; font-weight: 800; letter-spacing: 0.13em;
	text-transform: uppercase; color: rgba(244, 239, 230, 0.6);
}
.rf-band-page .band-facts dd { margin: 0; font-size: 16px; font-weight: 600; line-height: 1.45; }
.rf-band-page .band-facts dd.is-free { color: var(--amber); }
.rf-band-page .band-facts dd small {
	display: block; font-weight: 400; font-size: 14px;
	color: rgba(244, 239, 230, 0.72); margin-top: 2px;
}
.rf-band-page .band-facts a {
	display: inline-flex; align-items: center; min-height: 44px;
	color: var(--copper); text-decoration: underline; text-underline-offset: 3px;
}

.rf-band-page .band-about-copy { font-size: clamp(16px, 1.25vw, 18px); line-height: 1.66; color: var(--body-ink); }
.rf-band-page .band-about-copy > *:first-child { margin-top: 0; }
.rf-band-page .band-about-copy a { text-decoration: underline; text-underline-offset: 3px; }
.rf-band-page .band-about-copy img { border-radius: var(--radius-md); margin: 18px 0; }
.rf-band-page .band-about-copy audio,
.rf-band-page .band-about-copy iframe { width: 100%; max-width: 100%; margin: 14px 0; }
.rf-band-page .band-about .band-h2 { margin-bottom: clamp(16px, 2vw, 22px); }

.rf-band-page .band-expect {
	margin-top: clamp(24px, 3vw, 34px); padding: clamp(20px, 2.4vw, 28px);
	border-radius: var(--radius-md); background: var(--paper-soft);
	border: 1px solid rgba(17, 20, 23, 0.09);
}
.rf-band-page .band-expect ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.rf-band-page .band-expect li { display: flex; gap: 14px; }
.rf-band-page .band-n { flex: none; font-size: 12px; font-weight: 800; letter-spacing: 0.08em; color: var(--copper-ink); padding-top: 3px; }
.rf-band-page .band-expect h3 { margin: 0 0 3px; font-size: 17px; font-weight: 800; letter-spacing: -0.012em; }
.rf-band-page .band-expect p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--body-ink); }

/* ---------- past dates: a list, not a poster wall ---------- */
.rf-band-page .band-pastlist {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
	gap: 0 clamp(16px, 3vw, 40px); padding: 0; margin: 0; list-style: none;
}
.rf-band-page .band-pastlist li {
	display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between;
	gap: 4px 14px; min-width: 0; padding: 14px 0; border-top: 1px solid rgba(17, 20, 23, 0.12);
}
.rf-band-page .band-pastlist time { display: inline-flex; align-items: baseline; gap: 10px; }
.rf-band-page .band-pastlist-wd {
	font-size: 11px; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase;
	color: var(--copper-ink); min-width: 2.6em;
}
.rf-band-page .band-pastlist time b { font-size: 16px; font-weight: 800; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.rf-band-page .band-pastlist-note { font-size: 13px; color: var(--muted-ink); min-width: 0; }

/* ---------- FAQ ---------- */
.rf-band-page .band-faq { display: grid; gap: 8px; }
.rf-band-page .band-faq details {
	border-radius: var(--radius-md); background: var(--paper-soft);
	border: 1px solid rgba(17, 20, 23, 0.09); overflow: hidden;
}
.rf-band-page .band-faq summary {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	min-height: var(--tap); padding: clamp(14px, 1.8vw, 18px) clamp(16px, 1.8vw, 20px);
	cursor: pointer; list-style: none;
}
.rf-band-page .band-faq summary::-webkit-details-marker { display: none; }
.rf-band-page .band-faq summary:hover { background: rgba(17, 20, 23, 0.03); }
.rf-band-page .band-faq summary h3 {
	margin: 0; font-size: clamp(15px, 1.15vw, 17px); font-weight: 800; letter-spacing: -0.012em;
}
.rf-band-page .band-tog {
	flex: none; width: 30px; height: 30px; border-radius: 50%;
	background: rgba(241, 123, 72, 0.16); color: var(--copper-ink);
	display: grid; place-items: center; font-size: 17px; font-weight: 800; line-height: 1;
}
.rf-band-page .band-faq details[open] .band-tog { background: var(--copper); color: #231007; }
.rf-band-page .band-faq details[open] .band-tog::after { content: "\2013"; }
.rf-band-page .band-faq details:not([open]) .band-tog::after { content: "+"; }
.rf-band-page .band-ans {
	padding: 0 clamp(16px, 1.8vw, 20px) clamp(16px, 2vw, 20px);
	font-size: 15px; line-height: 1.62; color: var(--body-ink); max-width: 62ch;
}
.rf-band-page .band-ans p { margin: 0; }
.rf-band-page .band-ans p + p { margin-top: 10px; }
/* Some summer-concert answers carry a link out; give it a real target. */
.rf-band-page .band-ans a {
	display: inline-flex; align-items: center; gap: 6px; min-height: 44px;
	color: var(--copper-ink); font-weight: 700;
	text-decoration: underline; text-underline-offset: 3px;
}

/* ---------- closing ---------- */
.rf-band-page .band-close {
	background: var(--night); color: var(--on-night);
	padding-block: clamp(44px, 6vw, 88px);
}
.rf-band-page .band-close .band-h2 { font-size: clamp(30px, 7vw, 58px); }
.rf-band-page .band-close .band-lede { color: rgba(244, 239, 230, 0.82); }
.rf-band-page .band-fine {
	margin: 20px 0 0; font-size: 11px; font-weight: 800; letter-spacing: 0.15em;
	text-transform: uppercase; color: rgba(244, 239, 230, 0.55);
}

/* ---------- colour, stated explicitly ----------
   X Pro and Cornerstone set colour directly on headings, paragraphs and list
   items. A direct declaration beats an inherited one at any specificity, so
   every text element here states its own colour rather than trusting the
   section around it. Element + class keeps these above the theme's rules
   without reaching for !important. */
.rf-band-page h1.band-h1 { color: var(--on-night); }
.rf-band-page h2.band-h2 { color: var(--ink); }
.rf-band-page .band-close h2.band-h2 { color: var(--on-night); }
.rf-band-page .band-hero p,
.rf-band-page .band-hero span,
.rf-band-page .band-hero li { color: inherit; }
.rf-band-page .band-hero .band-crumb { color: var(--on-night-muted); }
.rf-band-page .band-hero .band-kicker-1 { color: var(--copper); }
.rf-band-page .band-hero .band-kicker-2 { color: var(--on-night-muted); }
.rf-band-page .band-chips li { color: var(--on-night); }
.rf-band-page .band-poster-fallback b { color: var(--on-night); }
.rf-band-page .band-poster-fallback span { color: var(--copper); }
.rf-band-page .band-factcard,
.rf-band-page .band-factcard p,
.rf-band-page .band-facts dd { color: var(--on-night); }
.rf-band-page .band-facts dt { color: rgba(244, 239, 230, 0.6); }
.rf-band-page .band-facts dd small { color: rgba(244, 239, 230, 0.72); }
.rf-band-page .band-facts dd.is-free { color: var(--amber); }
.rf-band-page .band-facts a { color: var(--copper); }
.rf-band-page .band-close p.band-lede { color: rgba(244, 239, 230, 0.82); }
.rf-band-page p.band-datecard-wd,
.rf-band-page .band-daybox b,
.rf-band-page .band-empty .band-empty-title,
.rf-band-page .band-expect h3,
.rf-band-page .band-faq summary h3,
.rf-band-page .band-pastlist time b { color: var(--ink); }
.rf-band-page .band-daybox span { color: var(--copper-ink); }
.rf-band-page p.band-datecard-tm,
.rf-band-page .band-pastlist-note { color: var(--muted-ink); }
.rf-band-page .band-pastlist-wd { color: var(--copper-ink); }
.rf-band-page p.band-datecard-note,
.rf-band-page .band-empty p,
.rf-band-page .band-expect p,
.rf-band-page .band-ans,
.rf-band-page .band-ans p,
.rf-band-page .band-sechead p,
.rf-band-page .band-about-copy,
.rf-band-page .band-about-copy p,
.rf-band-page .band-about-copy li { color: var(--body-ink); }
.rf-band-page .band-about-copy strong,
.rf-band-page .band-about-copy b,
.rf-band-page .band-about-copy h2,
.rf-band-page .band-about-copy h3 { color: var(--ink); }
.rf-band-page .band-about-copy a { color: var(--copper-ink); }

/* Anchor targets clear the shell's fixed 78px header band. */
.rf-band-page [id] { scroll-margin-top: 96px; }

@media (min-width: 900px) {
	.rf-band-page .band-hero-inner { grid-template-columns: 1.15fr 0.85fr; align-items: center; }
	.rf-band-page .band-poster-frame { margin-left: auto; }
	.rf-band-page .band-datecard {
		grid-template-columns: minmax(220px, 1fr) minmax(0, 1.1fr) auto;
		align-items: center; gap: clamp(16px, 2vw, 28px);
	}
	.rf-band-page .band-split { grid-template-columns: 0.9fr 1.1fr; }
	.rf-band-page .band-split.is-faq { grid-template-columns: 0.8fr 1.2fr; }
}

/* The details card stays in view beside a long write-up, but only on screens
   tall enough to show all of it; 96px clears the shell's fixed header. */
@media (min-width: 900px) and (min-height: 900px) {
	.rf-band-page .band-factcard { position: sticky; top: 96px; }
}

@media (prefers-reduced-motion: reduce) {
	.rf-band-page .band-hero-glow { animation: none; opacity: 0.75; }
	.rf-band-page *,
	.rf-band-page *::before,
	.rf-band-page *::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}
}

/* =========================================================================
   Summer concerts
   Additive only — nothing above changes for a Brewery page.
   ====================================================================== */

/* ---------- plan-your-night tiles ---------- */
.rf-band-page .band-tiles {
	display: grid; gap: 12px; grid-template-columns: 1fr;
}
.rf-band-page .band-tile {
	display: grid; gap: 4px; width: 100%; min-height: var(--tap);
	padding: clamp(18px, 2.4vw, 24px); text-align: left; cursor: pointer;
	border-radius: var(--radius-md); background: var(--paper-soft);
	border: 1px solid rgba(17, 20, 23, 0.09); font-family: inherit;
	box-shadow: 0 1px 2px rgba(7, 17, 31, 0.05);
	transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
	position: relative;
}
.rf-band-page .band-tile:hover {
	border-color: rgba(241, 123, 72, 0.55);
	transform: translateY(-2px);
	box-shadow: 0 10px 24px -18px rgba(7, 17, 31, 0.5);
}
.rf-band-page .band-tile-eyebrow {
	font-size: 11px; font-weight: 800; letter-spacing: 0.18em;
	text-transform: uppercase; color: var(--copper-ink);
}
.rf-band-page .band-tile-title {
	font-size: 19px; font-weight: 800; letter-spacing: -0.015em; color: var(--ink);
}
.rf-band-page .band-tile-note {
	font-size: 14px; line-height: 1.55; color: var(--body-ink); max-width: 46ch;
}
.rf-band-page .band-tile-go {
	position: absolute; top: clamp(18px, 2.4vw, 24px); right: clamp(18px, 2.4vw, 24px);
	color: var(--copper-ink); font-size: 17px; font-weight: 800;
}

/* ---------- dialogs ---------- */
.rf-band-page .band-modal {
	width: min(760px, 100%); max-width: 100%; max-height: 88vh; max-height: 88dvh;
	padding: 0; border: 0; border-radius: var(--radius-lg);
	background: var(--paper); color: var(--ink); overflow: hidden;
	box-shadow: 0 40px 90px -30px rgba(7, 17, 31, 0.65);
}
.rf-band-page .band-modal::backdrop {
	background: rgba(7, 17, 31, 0.72);
	-webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
.rf-band-page .band-modal-inner { display: flex; flex-direction: column; max-height: 88vh; max-height: 88dvh; }
.rf-band-page .band-modal-head {
	display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
	padding: clamp(20px, 3vw, 28px) clamp(20px, 3vw, 32px) 16px;
	border-bottom: 1px solid rgba(17, 20, 23, 0.1); background: var(--paper);
}
.rf-band-page .band-modal-eyebrow {
	margin: 0 0 6px; font-size: 11px; font-weight: 800; letter-spacing: 0.18em;
	text-transform: uppercase; color: var(--copper-ink);
}
.rf-band-page .band-modal-title {
	margin: 0; font-size: clamp(22px, 3.4vw, 30px); line-height: 1.1;
	font-weight: 800; letter-spacing: -0.025em; color: var(--ink);
}
.rf-band-page .band-modal-close {
	flex: none; width: var(--tap); height: var(--tap); border-radius: 50%;
	border: 1px solid rgba(17, 20, 23, 0.18); background: var(--paper-soft);
	color: var(--ink); font-size: 22px; line-height: 1; cursor: pointer;
	display: grid; place-items: center; font-family: inherit;
}
.rf-band-page .band-modal-close:hover { background: var(--copper); border-color: var(--copper); color: #231007; }
.rf-band-page .band-modal-body {
	padding: clamp(18px, 2.6vw, 28px) clamp(20px, 3vw, 32px) clamp(26px, 3.4vw, 36px);
	overflow-y: auto; -webkit-overflow-scrolling: touch;
}
.rf-band-page .band-modal-body h3 {
	margin: 26px 0 10px; font-size: 12px; font-weight: 800; letter-spacing: 0.16em;
	text-transform: uppercase; color: var(--copper-ink);
}
.rf-band-page .band-modal-body > h3:first-child { margin-top: 0; }
.rf-band-page .band-modal-body p { font-size: 15px; line-height: 1.62; color: var(--body-ink); }
.rf-band-page .band-modal-lede { font-size: 16px !important; color: var(--ink) !important; }
.rf-band-page .band-modal-note {
	margin: 14px 0 0; font-size: 13px !important; line-height: 1.55;
	color: var(--muted-ink) !important;
}
.rf-band-page .band-modal-body .band-btn.is-block { margin: 0 0 18px; }
/* Inline links in modal prose still need a thumb-sized target. */
.rf-band-page .band-modal-body p a {
	display: inline-flex; align-items: center; min-height: 44px;
	color: var(--copper-ink); font-weight: 700;
	text-decoration: underline; text-underline-offset: 3px;
}

/* ---------- lists inside dialogs ---------- */
.rf-band-page .band-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.rf-band-page .band-list li { margin: 0; }
.rf-band-page .band-list a,
.rf-band-page .band-list li > strong {
	display: grid; gap: 2px; padding: 13px 16px; min-height: var(--tap);
	border-radius: 14px; background: var(--paper-soft);
	border: 1px solid rgba(17, 20, 23, 0.09); text-decoration: none;
	align-content: center;
}
.rf-band-page .band-list a:hover { border-color: rgba(241, 123, 72, 0.55); background: #fff; }
.rf-band-page .band-list strong { font-size: 15px; font-weight: 700; color: var(--ink); letter-spacing: -0.01em; }
.rf-band-page .band-list span { font-size: 13.5px; line-height: 1.5; color: var(--muted-ink); }
.rf-band-page .band-list li > strong { display: block; }

.rf-band-page .band-bullets { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
.rf-band-page .band-bullets li { font-size: 15px; line-height: 1.55; color: var(--body-ink); }
.rf-band-page .band-bullets.is-yes li::marker { color: #2f7d52; }
.rf-band-page .band-bullets.is-no li::marker { color: #a4271f; }

/* ---------- vendors and accessibility grids ---------- */
.rf-band-page .band-vendors { display: grid; gap: 18px; }
.rf-band-page .band-vendor {
	padding: 16px 18px; border-radius: var(--radius-md);
	background: var(--paper-soft); border: 1px solid rgba(17, 20, 23, 0.09);
}
.rf-band-page .band-vendor header { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.rf-band-page .band-vendor img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; flex: none; }
.rf-band-page .band-vendor h3 { margin: 0; font-size: 17px; font-weight: 800; letter-spacing: -0.015em; color: var(--ink); text-transform: none; }
.rf-band-page .band-access { display: grid; gap: 14px; }
.rf-band-page .band-access section {
	padding: 15px 17px; border-radius: 14px; background: var(--paper-soft);
	border: 1px solid rgba(17, 20, 23, 0.09);
}
.rf-band-page .band-access h3 { margin: 0 0 5px; font-size: 15px; letter-spacing: -0.01em; text-transform: none; color: var(--ink); }
.rf-band-page .band-access p { margin: 0; font-size: 14px; }

@media (min-width: 700px) {
	.rf-band-page .band-tiles { grid-template-columns: repeat(2, 1fr); }
	.rf-band-page .band-vendors { grid-template-columns: repeat(2, 1fr); }
	.rf-band-page .band-access { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1040px) {
	.rf-band-page .band-tiles { grid-template-columns: repeat(3, 1fr); }
}

/* A phone gets a sheet, not a floating card. */
@media (max-width: 699px) {
	.rf-band-page .band-modal {
		width: 100%; max-width: 100%; margin: 0 0 0 auto;
		max-height: 92vh; max-height: 92dvh;
		border-radius: var(--radius-lg) var(--radius-lg) 0 0;
		position: fixed; bottom: 0; left: 0; right: 0; top: auto;
	}
	.rf-band-page .band-modal-inner { max-height: 92vh; max-height: 92dvh; }
	.rf-band-page .band-modal-body { padding-bottom: max(28px, env(safe-area-inset-bottom)); }
}

/* Body does not scroll behind an open dialog. */
body.rf-band-modal-open { overflow: hidden; }

/* =========================================================================
   Lineup — comedy bills: Host/MC, Headliner, then Features and Guests
   ====================================================================== */
.rf-band-page .band-lineup {
	margin: 0 0 clamp(22px, 3vw, 30px); padding: clamp(18px, 2.4vw, 24px);
	border-radius: var(--radius-md); background: var(--night); color: var(--on-night);
}
.rf-band-page .band-lineup .band-eyebrow {
	display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 14px;
	color: var(--copper);
}
.rf-band-page .band-lineup-date { color: rgba(244, 239, 230, 0.6); letter-spacing: 0.14em; }
.rf-band-page .band-lineup ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.rf-band-page .band-lineup li {
	/* Label column, then the name; a long name wraps in its own column
	   instead of dropping under the label. */
	display: grid; grid-template-columns: 100px minmax(0, 1fr); align-items: center; gap: 14px; margin: 0;
	padding: 12px 0; border-top: 1px solid var(--rule-night);
}
.rf-band-page .band-lineup li.is-unlabelled .band-lineup-name { grid-column: 1 / -1; }
.rf-band-page .band-lineup li:last-child { padding-bottom: 0; }
/* The role is a label: a fixed-width pill, so every name starts on the same line. */
.rf-band-page .band-lineup-role {
	display: inline-flex; align-items: center; justify-content: center; flex: none;
	width: 100%; min-height: 26px; padding: 3px 8px; border-radius: 100px;
	border: 1px solid rgba(244, 239, 230, 0.34); color: var(--on-night);
	font-size: 10px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; line-height: 1; white-space: nowrap;
}
.rf-band-page .band-lineup li.is-host .band-lineup-role,
.rf-band-page .band-lineup li.is-headliner .band-lineup-role {
	background: var(--copper); border-color: var(--copper); color: #231007;
}
.rf-band-page .band-lineup-name {
	min-width: 0; overflow-wrap: anywhere; line-height: 1.2; font-size: clamp(17px, 2vw, 21px); font-weight: 800; letter-spacing: -0.015em; color: var(--on-night);
}
