/* RSN Broadcast — page-specific styles. */

/* ============================================================
   SHOW HUB
   ============================================================ */
.rsn-show-hero {
	position: relative;
	min-height: 50vh;
	display: flex;
	align-items: end;
	overflow: hidden;
	padding: 4rem 0 2.5rem;
}
.rsn-show-hero__bg { position: absolute; inset: 0; z-index: 0; }
.rsn-show-hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.rsn-show-hero__bg::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(10,13,18,.4) 0%, rgba(10,13,18,.95) 100%);
}
.rsn-show-hero__content { position: relative; z-index: 1; max-width: 800px; }
.rsn-show-hero h1 { margin-bottom: .75rem; }
.rsn-show-hero__desc { color: var(--rsn-text-dim); font-size: 1.1rem; max-width: 60ch; }

.rsn-current-season {
	background: linear-gradient(135deg, var(--rsn-surface-2), var(--rsn-surface));
	border: 1px solid var(--rsn-mint);
	border-radius: var(--rsn-radius-lg);
	padding: 2rem;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 2rem;
	box-shadow: var(--rsn-shadow-mint);
}
@media (max-width: 700px) {
	.rsn-current-season { grid-template-columns: 1fr; }
}
.rsn-current-season__eyebrow { color: var(--rsn-mint); font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.rsn-current-season h2 { font-size: 2.5rem; margin: .5rem 0 .75rem; }

/* Season list grid */
.rsn-seasons-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 1.25rem;
}
.rsn-season-card {
	position: relative;
	aspect-ratio: 16/9;
	border-radius: var(--rsn-radius);
	overflow: hidden;
	background: var(--rsn-surface);
	display: block;
	transition: transform .3s var(--rsn-ease);
}
.rsn-season-card:hover { transform: translateY(-4px); }
.rsn-season-card img { width: 100%; height: 100%; object-fit: cover; }
.rsn-season-card__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(180deg, transparent 50%, rgba(10,13,18,.95) 100%);
	display: flex; align-items: end; padding: 1rem 1.25rem;
}
.rsn-season-card__num { color: var(--rsn-mint); font-weight: 800; letter-spacing: .14em; font-size: .8rem; text-transform: uppercase; }
.rsn-season-card__title { font-family: var(--rsn-body); font-weight: 700; font-size: 1.2rem; text-transform: none; color: var(--rsn-text); }

/* "Latest from Season X" group on show page */
.rsn-season-group { margin-bottom: 3rem; }
.rsn-season-group__head {
	display: flex; align-items: center; justify-content: space-between;
	margin-bottom: 1rem;
}
.rsn-season-group__title { font-size: 1.1rem; font-family: var(--rsn-body); font-weight: 700; text-transform: none; }
.rsn-season-group__title em { font-style: normal; color: var(--rsn-mint); }

/* ============================================================
   SEASON PAGE  — banner + tabs
   ============================================================ */
.rsn-season-banner {
	position: relative;
	min-height: 55vh;
	display: flex;
	align-items: end;
	padding: 5rem 0 3rem;
	overflow: hidden;
}
.rsn-season-banner__bg { position: absolute; inset: 0; z-index: 0; }
.rsn-season-banner__bg img { width: 100%; height: 100%; object-fit: cover; }
.rsn-season-banner__bg::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(10,13,18,.3) 0%, rgba(10,13,18,.95) 100%);
}
.rsn-season-banner__content { position: relative; z-index: 1; max-width: 700px; }
.rsn-season-banner h1 { font-size: clamp(2.5rem, 6vw, 5rem); }
.rsn-season-banner__intro { color: var(--rsn-text-dim); font-size: 1.1rem; margin-top: 1rem; max-width: 56ch; }

/* Episode list (vertical, on season tab) */
.rsn-episode-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 1.5rem;
}

/* ============================================================
   EPISODE PAGE  — cinematic reader
   ============================================================ */
.rsn-episode-hero {
	position: relative;
	min-height: 60vh;
	display: flex;
	align-items: end;
	padding: 5rem 0 3rem;
	overflow: hidden;
}
.rsn-episode-hero__bg { position: absolute; inset: 0; z-index: 0; }
.rsn-episode-hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.rsn-episode-hero__bg::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(10,13,18,.2) 30%, var(--rsn-bg) 100%);
}
.rsn-episode-hero__content { position: relative; z-index: 1; max-width: 800px; }
.rsn-episode-hero__num {
	display: inline-block;
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	font-weight: 800;
	padding: .25em .75em;
	border-radius: 4px;
	font-size: .85rem;
	letter-spacing: .12em;
	margin-bottom: 1rem;
}
.rsn-episode-hero h1 { font-size: clamp(2.4rem, 5.5vw, 4.5rem); }

/* Body — Gutenberg content rendered here */
.rsn-episode-body {
	max-width: 760px;
	margin: 4rem auto;
	font-size: 1.1rem;
	line-height: 1.75;
	color: var(--rsn-text);
}
.rsn-episode-body p { margin: 0 0 1.5em; }
.rsn-episode-body figure {
	margin: 2.5em 0;
	border-radius: var(--rsn-radius);
	overflow: hidden;
}
.rsn-episode-body figcaption {
	font-style: italic;
	color: var(--rsn-mint);
	font-size: .9rem;
	margin-top: .75rem;
	text-align: center;
}
.rsn-episode-body .wp-block-image img { width: 100%; height: auto; display: block; }

/* Scene group — when admins use core/group with class rsn-scene */
.rsn-scene {
	margin: 3rem 0;
	padding: 2rem;
	background: var(--rsn-surface);
	border-radius: var(--rsn-radius-lg);
	border-left: 4px solid var(--rsn-mint);
}

/* Episode nav (prev/next within season) */
.rsn-episode-nav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin: 3rem auto 0;
	max-width: 760px;
}
@media (max-width: 600px) { .rsn-episode-nav { grid-template-columns: 1fr; } }
.rsn-episode-nav a {
	background: var(--rsn-surface);
	border-radius: var(--rsn-radius);
	padding: 1.5rem;
	border: 1px solid var(--rsn-line);
	transition: border-color .15s var(--rsn-ease);
}
.rsn-episode-nav a:hover { border-color: var(--rsn-mint); }
.rsn-episode-nav__label { color: var(--rsn-text-dim); font-size: .8rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 700; }
.rsn-episode-nav__title { font-weight: 700; margin-top: .35rem; }
.rsn-episode-nav__next { text-align: right; }

/* ============================================================
   404
   ============================================================ */
.rsn-404 {
	text-align: center;
	padding: 8rem 1.5rem;
}
.rsn-404 h1 {
	font-size: clamp(5rem, 12vw, 10rem);
	color: var(--rsn-mint);
	margin-bottom: 0;
}
.rsn-404 p {
	color: var(--rsn-text-dim);
	font-size: 1.2rem;
	max-width: 50ch;
	margin: 1rem auto 2rem;
}

/* ============================================================
   SEARCH
   ============================================================ */
.rsn-search-form {
	display: flex;
	max-width: 640px;
	margin: 2rem auto;
}
.rsn-search-form input {
	flex: 1;
	background: var(--rsn-surface-2);
	border: 1px solid var(--rsn-line);
	color: var(--rsn-text);
	padding: 1rem 1.25rem;
	border-radius: var(--rsn-radius-pill) 0 0 var(--rsn-radius-pill);
	font-size: 1rem;
	font-family: inherit;
}
.rsn-search-form button {
	background: var(--rsn-mint);
	color: var(--rsn-bg);
	border: 0;
	padding: 0 2rem;
	border-radius: 0 var(--rsn-radius-pill) var(--rsn-radius-pill) 0;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}
