/**
 * RecapDB — Apple-light professional styles.
 *
 * Design tokens come from theme.json. This file styles RecapDB's dynamic
 * blocks + polishes Query Loop cards + footer grid to look editorial.
 */

:root {
	--rdb-radius: 14px;
	--rdb-radius-sm: 10px;
	--rdb-shadow-rest: 0 1px 2px rgba(0, 0, 0, 0.02), 0 0 0 1px rgba(0, 0, 0, 0.05);
	--rdb-shadow-hover: 0 10px 28px rgba(0, 0, 0, 0.09), 0 0 0 1px rgba(0, 0, 0, 0.06);
	--rdb-transition: 220ms cubic-bezier(0.2, 0, 0.2, 1);
}

html { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
body { background: var(--wp--preset--color--paper, #fbfbfd); }

/* Hero kicker — small caps above the H1 */
.recapdb-kicker {
	display: inline-block;
	font-size: 12px !important;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent, #d70015);
	margin: 0 auto !important;
	padding: 4px 14px;
	border: 1px solid rgba(215, 0, 21, 0.18);
	background: rgba(215, 0, 21, 0.04);
	border-radius: 999px;
}

/* Reading-time pill (prepended to .wp-block-post-content via the_content filter) */
.recapdb-reading-time {
	display: inline-flex;
	gap: 6px;
	align-items: center;
	font-size: 12.5px !important;
	color: var(--wp--preset--color--muted) !important;
	letter-spacing: 0.02em;
	padding: 4px 12px;
	border: 1px solid var(--wp--preset--color--hairline);
	background: var(--wp--preset--color--surface);
	border-radius: 999px;
	margin: 0 0 32px !important;
	line-height: 1.4;
}

/* ---------- Sticky header w/ backdrop blur ---------- */
body > .wp-site-blocks > header.wp-block-template-part,
body > .wp-site-blocks > div > header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(251, 251, 253, 0.78);
	backdrop-filter: saturate(180%) blur(20px);
	-webkit-backdrop-filter: saturate(180%) blur(20px);
	border-bottom: 1px solid var(--wp--preset--color--hairline, #e8e8ed);
}

/* ---------- Section labels (small caps + tiny rule) ---------- */
.recapdb-section-label {
	display: inline-block;
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted, #6e6e73);
	margin: 0 0 16px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--wp--preset--color--hairline);
	width: 100%;
}

/* ---------- Category badge ---------- */
.recapdb-badge {
	display: inline-block;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent, #d70015);
	margin: 0 0 8px !important;
}
.recapdb-badge--ending-explained,
.recapdb-badge--movie-ending-explained,
.recapdb-badge--recap-and-ending-explained {
	color: #8b0712;
}
.recapdb-badge--episode-review { color: #6e6e73; }
.recapdb-badge--movie-recap { color: #b06c00; }

/* ---------- Query Loop cards ---------- */
.wp-block-query .wp-block-post {
	background: var(--wp--preset--color--surface, #ffffff);
	border-radius: var(--rdb-radius);
	box-shadow: var(--rdb-shadow-rest);
	overflow: hidden;
	transition: box-shadow var(--rdb-transition), transform var(--rdb-transition);
	display: flex;
	flex-direction: column;
}
.wp-block-query .wp-block-post:hover {
	box-shadow: var(--rdb-shadow-hover);
	transform: translateY(-2px);
}
.wp-block-query .wp-block-post-featured-image {
	margin: 0 !important;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	display: block;
	background: linear-gradient(110deg, #eceff3 8%, #f5f7fa 18%, #eceff3 33%);
	background-size: 200% 100%;
	animation: recapdb-shimmer 1.6s linear infinite;
	border-radius: 0 !important;
}
.wp-block-query .wp-block-post-featured-image:has(img) {
	background: var(--wp--preset--color--tint, #f5f5f7);
	animation: none;
}
.wp-block-query .wp-block-post-featured-image a,
.wp-block-query .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 380ms cubic-bezier(0.2, 0, 0.2, 1);
}
.wp-block-query .wp-block-post:hover .wp-block-post-featured-image img {
	transform: scale(1.025);
}
.wp-block-query .wp-block-post-title {
	margin: 0 !important;
	font-size: 18.5px !important;
	line-height: 1.28 !important;
	letter-spacing: -0.014em;
	font-weight: 600;
}
.wp-block-query .wp-block-post-title a { color: var(--wp--preset--color--ink) !important; }
.wp-block-query .wp-block-post-title a:hover { color: var(--wp--preset--color--accent) !important; }
.wp-block-query .wp-block-post-excerpt {
	margin: 0 !important;
	color: var(--wp--preset--color--muted, #6e6e73);
	font-size: 14px;
	line-height: 1.5;
}
.wp-block-query .wp-block-post-author-name {
	font-weight: 500;
	color: var(--wp--preset--color--ink-soft, #3a3a3c) !important;
}
.wp-block-query .wp-block-post-date { color: inherit; }

/* ---------- Search input ---------- */
.wp-block-search__input {
	border: 1px solid var(--wp--preset--color--hairline, #e8e8ed) !important;
	border-radius: 999px !important;
	padding: 12px 20px !important;
	background: var(--wp--preset--color--surface) !important;
	font-size: 15.5px !important;
	font-family: inherit;
	box-shadow: var(--rdb-shadow-rest);
	transition: border-color var(--rdb-transition), box-shadow var(--rdb-transition);
}
.wp-block-search__input:focus {
	outline: none !important;
	border-color: var(--wp--preset--color--ink, #1d1d1f) !important;
	box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.08);
}
.wp-block-search__button {
	border-radius: 999px !important;
	background: var(--wp--preset--color--ink) !important;
	color: var(--wp--preset--color--surface) !important;
	font-weight: 500 !important;
	padding: 10px 22px !important;
	border: none !important;
}

/* Apple-style hero search (homepage) */
.recapdb-hero-search .wp-block-search__input {
	padding: 18px 24px !important;
	font-size: 18px !important;
}
.recapdb-hero-search .wp-block-search__button {
	background: transparent !important;
	color: var(--wp--preset--color--muted) !important;
	padding: 0 18px !important;
	min-width: 0;
	transition: color var(--rdb-transition);
}
.recapdb-hero-search .wp-block-search__button:hover {
	color: var(--wp--preset--color--ink) !important;
}
.recapdb-hero-search .wp-block-search__button svg {
	width: 24px;
	height: 24px;
	fill: currentColor;
}

/* ---------- Tag cloud chips ---------- */
.wp-block-tag-cloud {
	display: flex !important;
	flex-wrap: wrap;
	gap: 8px;
}
.wp-block-tag-cloud a {
	display: inline-block;
	padding: 6px 14px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 999px;
	font-size: 14px !important;
	color: var(--wp--preset--color--ink) !important;
	transition: background var(--rdb-transition), border-color var(--rdb-transition);
}
.wp-block-tag-cloud a:hover {
	background: var(--wp--preset--color--tint);
	border-color: var(--wp--preset--color--subtle);
}
.wp-block-tag-cloud .tag-link-count {
	color: var(--wp--preset--color--muted);
	margin-left: 4px;
	font-variant-numeric: tabular-nums;
}

/* ============================================================
   FEATURED RECAP — big editorial card on homepage
   ============================================================ */
.recapdb-featured {
	display: grid;
	grid-template-columns: 1.25fr 1fr;
	gap: 0;
	background: var(--wp--preset--color--surface);
	border-radius: var(--rdb-radius);
	box-shadow: var(--rdb-shadow-rest);
	overflow: hidden;
	text-decoration: none !important;
	color: inherit !important;
	transition: box-shadow var(--rdb-transition), transform var(--rdb-transition);
}
.recapdb-featured:hover {
	box-shadow: var(--rdb-shadow-hover);
	transform: translateY(-2px);
}
.recapdb-featured__media {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: linear-gradient(110deg, #eceff3 8%, #f5f7fa 18%, #eceff3 33%);
	background-size: 200% 100%;
	animation: recapdb-shimmer 1.6s linear infinite;
}
.recapdb-featured__media:has(img) {
	animation: none;
	background: var(--wp--preset--color--tint);
}
.recapdb-featured__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 420ms cubic-bezier(0.2, 0, 0.2, 1);
}
.recapdb-featured:hover .recapdb-featured__media img {
	transform: scale(1.03);
}
.recapdb-featured__body {
	padding: clamp(24px, 3vw, 36px);
	display: flex;
	flex-direction: column;
	gap: 12px;
	justify-content: center;
}
.recapdb-featured__kicker {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--wp--preset--color--accent);
}
.recapdb-featured__title {
	font-size: clamp(1.625rem, 2.8vw, 2.25rem);
	letter-spacing: -0.024em;
	line-height: 1.12;
	margin: 0;
	color: var(--wp--preset--color--ink);
	font-weight: 700;
}
.recapdb-featured__excerpt {
	margin: 0;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
	font-size: 16px;
	line-height: 1.55;
}
.recapdb-featured__meta {
	display: flex;
	gap: 12px;
	color: var(--wp--preset--color--muted);
	font-size: 13.5px;
	margin-top: 4px;
}
.recapdb-featured__author { font-weight: 600; color: var(--wp--preset--color--ink-soft, #3a3a3c); }

/* ============================================================
   TL;DR box on single posts
   ============================================================ */
.recapdb-tldr {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-left: 3px solid var(--wp--preset--color--accent);
	padding: 18px 22px;
	margin: 24px 0 32px;
	border-radius: var(--rdb-radius-sm);
}
.recapdb-tldr__label {
	display: inline-block;
	font-size: 11.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--wp--preset--color--accent);
	margin-bottom: 6px;
}
.recapdb-tldr__body {
	margin: 0;
	font-size: 17px;
	line-height: 1.55;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
}

/* ============================================================
   Episode meta row (above byline on single posts)
   ============================================================ */
.recapdb-meta {
	color: var(--wp--preset--color--muted);
	font-size: 13.5px;
	margin: 12px 0 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 8px;
}
.recapdb-meta__show a, .recapdb-meta__show {
	font-weight: 600;
	color: var(--wp--preset--color--ink) !important;
}
.recapdb-meta__spoiler {
	display: inline-block;
	padding: 2px 9px;
	border-radius: 999px;
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.02em;
}
.recapdb-meta__spoiler--low    { background: #e8f5ee; color: #007a3d; }
.recapdb-meta__spoiler--medium { background: #fff6e8; color: #a4540a; }
.recapdb-meta__spoiler--full   { background: #fef2f2; color: #b10712; }

/* ============================================================
   Byline row on single posts — plain "By Author · Date" line
   ============================================================ */
.recapdb-byline .wp-block-post-author-name a,
.recapdb-byline .wp-block-post-author-name {
	color: var(--wp--preset--color--ink) !important;
	font-weight: 600;
}
.recapdb-byline .wp-block-post-author-name::before {
	content: "By ";
	color: var(--wp--preset--color--muted);
	font-weight: 400;
}
.recapdb-byline .wp-block-post-date::before {
	content: "·";
	color: var(--wp--preset--color--muted);
	margin-right: 8px;
}

/* ============================================================
   Episode nav
   ============================================================ */
.recapdb-episode-nav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin: 48px 0;
}
.recapdb-episode-nav a {
	display: flex;
	flex-direction: column;
	text-decoration: none !important;
	color: inherit;
	gap: 4px;
	padding: 16px 18px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: var(--rdb-radius-sm);
	transition: border-color var(--rdb-transition), box-shadow var(--rdb-transition);
}
.recapdb-episode-nav a:hover {
	border-color: var(--wp--preset--color--subtle);
	box-shadow: var(--rdb-shadow-rest);
}
.recapdb-episode-nav a > :first-child {
	font-size: 12.5px;
	color: var(--wp--preset--color--muted);
	letter-spacing: 0.02em;
}
.recapdb-episode-nav__next { text-align: right; }
.recapdb-episode-nav__title {
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	font-size: 15px;
}

/* ============================================================
   Show info card (on recap pages)
   ============================================================ */
.recapdb-show-card {
	display: grid;
	grid-template-columns: 132px 1fr;
	gap: 20px;
	padding: 20px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: var(--rdb-radius);
	margin: 32px 0;
}
.recapdb-show-card__poster {
	width: 100%;
	aspect-ratio: 2 / 3;
	object-fit: cover;
	border-radius: var(--rdb-radius-sm);
}
.recapdb-show-card__title { margin: 0 0 6px; font-size: 18px; }
.recapdb-show-card__title a { color: var(--wp--preset--color--ink) !important; }
.recapdb-show-card__synopsis {
	margin: 0 0 12px;
	color: var(--wp--preset--color--muted);
	font-size: 14.5px;
	line-height: 1.5;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	line-clamp: 4;
	overflow: hidden;
}
.recapdb-show-card__watch { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.recapdb-show-card__watch li {
	padding: 4px 11px;
	background: var(--wp--preset--color--tint);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 999px;
	font-size: 13px;
	color: var(--wp--preset--color--ink);
}
.recapdb-show-card__watch a {
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none;
}

/* ============================================================
   Show hero (single-show.html)
   ============================================================ */
.recapdb-show-hero { display: grid !important; grid-template-columns: 280px 1fr; gap: 36px; }
.recapdb-show-hero .wp-block-post-featured-image {
	width: 280px;
	margin: 0 !important;
}
.recapdb-show-hero .wp-block-post-featured-image img {
	width: 100%;
	aspect-ratio: 2 / 3;
	object-fit: cover;
	border-radius: var(--rdb-radius);
}
@media (max-width: 781px) {
	.recapdb-show-hero { grid-template-columns: 1fr; }
	.recapdb-show-hero .wp-block-post-featured-image { width: 180px; }
}

/* ============================================================
   Linked recaps (season-grouped list on show page)
   ============================================================ */
.recapdb-linked { display: flex; flex-direction: column; gap: 28px; }
.recapdb-linked__season-title { font-size: 18px; letter-spacing: -0.014em; margin: 0 0 12px; }
.recapdb-linked__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 0; }
.recapdb-linked__list li {
	border-top: 1px solid var(--wp--preset--color--hairline);
	padding: 12px 0;
}
.recapdb-linked__list li:last-child { border-bottom: 1px solid var(--wp--preset--color--hairline); }
.recapdb-linked__list a {
	display: flex;
	align-items: baseline;
	gap: 14px;
	text-decoration: none;
	color: var(--wp--preset--color--ink) !important;
	font-size: 16px;
}
.recapdb-linked__list a:hover { color: var(--wp--preset--color--accent) !important; }
.recapdb-linked__ep {
	font-size: 12px;
	font-weight: 700;
	color: var(--wp--preset--color--muted);
	letter-spacing: 0.04em;
	min-width: 32px;
}
.recapdb-linked__empty { color: var(--wp--preset--color--muted); }

/* ============================================================
   Author card (author archive)
   ============================================================ */
.recapdb-author-card {
	display: grid;
	grid-template-columns: 144px 1fr;
	gap: 28px;
	padding: 28px 0 36px;
	border-bottom: 1px solid var(--wp--preset--color--hairline);
	margin-bottom: 32px;
	align-items: start;
}
.recapdb-author-card__headshot {
	width: 144px;
	height: 144px;
	border-radius: 999px;
	object-fit: cover;
	border: 1px solid var(--wp--preset--color--hairline);
}
.recapdb-author-card__name {
	margin: 0 0 6px;
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	letter-spacing: -0.025em;
	line-height: 1.1;
}
.recapdb-author-card__expertise {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
	margin: 0 0 14px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-weight: 500;
}
.recapdb-author-card__bio {
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
	font-size: 16px;
	line-height: 1.6;
}
.recapdb-author-card__social { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.recapdb-author-card__social a {
	display: inline-block;
	padding: 5px 12px;
	background: var(--wp--preset--color--tint);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 999px;
	font-size: 13.5px;
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
}

/* ============================================================
   FAQ
   ============================================================ */
.recapdb-faq {
	margin: 40px 0;
	padding: 24px 28px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: var(--rdb-radius);
}
.recapdb-faq__heading { margin: 0 0 16px; font-size: 20px; letter-spacing: -0.015em; }
.recapdb-faq__item { border-top: 1px solid var(--wp--preset--color--hairline); padding: 14px 0; }
.recapdb-faq__item:first-of-type { border-top: 0; padding-top: 0; }
.recapdb-faq__question {
	cursor: pointer;
	font-weight: 600;
	font-size: 16px;
	list-style: none;
	position: relative;
	padding-right: 28px;
	letter-spacing: -0.01em;
}
.recapdb-faq__question::-webkit-details-marker { display: none; }
.recapdb-faq__question::after {
	content: '';
	position: absolute;
	right: 4px;
	top: 50%;
	width: 8px; height: 8px;
	border-right: 1.5px solid var(--wp--preset--color--muted);
	border-bottom: 1.5px solid var(--wp--preset--color--muted);
	transform: translateY(-65%) rotate(45deg);
	transition: transform 0.15s ease;
}
.recapdb-faq__item[open] .recapdb-faq__question::after {
	transform: translateY(-30%) rotate(-135deg);
}
.recapdb-faq__answer {
	margin-top: 8px;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
	font-size: 15.5px;
	line-height: 1.6;
}
.recapdb-faq__permalink {
	display: inline-block;
	margin-left: 8px;
	color: var(--wp--preset--color--muted) !important;
	text-decoration: none !important;
	border-bottom: none !important;
	font-weight: 400;
	font-size: 13px;
	opacity: 0;
	transition: opacity 140ms ease, color 140ms ease;
}
.recapdb-faq__question:hover .recapdb-faq__permalink,
.recapdb-faq__item:target .recapdb-faq__permalink {
	opacity: 1;
}
.recapdb-faq__permalink:hover { color: var(--wp--preset--color--accent) !important; }
/* Highlight a deep-linked FAQ so the user sees what they jumped to */
.recapdb-faq__item:target {
	background: color-mix(in srgb, var(--wp--preset--color--accent) 5%, transparent);
	border-radius: 8px;
	padding-left: 12px;
	padding-right: 12px;
}

/* ============================================================
   Related posts (bottom of single)
   ============================================================ */
.recapdb-related { margin: 56px 0 24px; }
.recapdb-related__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin-top: 16px;
}
.recapdb-related__card {
	display: block;
	background: var(--wp--preset--color--surface);
	border-radius: var(--rdb-radius);
	box-shadow: var(--rdb-shadow-rest);
	overflow: hidden;
	text-decoration: none !important;
	color: inherit !important;
	transition: box-shadow var(--rdb-transition), transform var(--rdb-transition);
}
.recapdb-related__card:hover { box-shadow: var(--rdb-shadow-hover); transform: translateY(-2px); }
.recapdb-related__media { aspect-ratio: 16 / 10; overflow: hidden; background: var(--wp--preset--color--tint); }
.recapdb-related__media img { width: 100%; height: 100%; object-fit: cover; }
.recapdb-related__body { padding: 14px 16px 16px; }
.recapdb-related__title {
	font-size: 15.5px;
	line-height: 1.35;
	font-weight: 600;
	letter-spacing: -0.012em;
	margin: 0 0 6px;
	color: var(--wp--preset--color--ink);
}
.recapdb-related__date { color: var(--wp--preset--color--muted); font-size: 12.5px; }
@media (max-width: 781px) {
	.recapdb-related__grid { grid-template-columns: 1fr; }
}

/* ============================================================
   FOOTER — 4-column editorial layout
   ============================================================ */
.recapdb-footer-grid {
	display: grid !important;
	grid-template-columns: 1.6fr 1fr 1fr 1fr;
	gap: 56px;
	align-items: start;
}
.recapdb-footer-col { min-width: 0; }
.recapdb-footer-col--brand .wp-block-site-title a {
	color: var(--wp--preset--color--ink) !important;
}
.recapdb-footer-heading {
	font-size: 11.5px !important;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted) !important;
	margin: 0 0 16px !important;
}
.recapdb-footer-list {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.recapdb-footer-list a {
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	font-size: 14.5px;
	transition: color var(--rdb-transition);
}
.recapdb-footer-list a:hover { color: var(--wp--preset--color--accent) !important; }

.recapdb-footer-bottom { font-size: 13px; }

@media (max-width: 1000px) {
	.recapdb-footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
	.recapdb-footer-col--brand { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
	.recapdb-footer-grid { grid-template-columns: 1fr; gap: 32px; }
}

/* ============================================================
   Post content typography
   ============================================================ */
.wp-block-post-content > * {
	font-size: 17.5px;
	line-height: 1.7;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
}
.wp-block-post-content h2 {
	margin-top: 48px;
	margin-bottom: 16px;
	color: var(--wp--preset--color--ink);
}
.wp-block-post-content h3 {
	margin-top: 32px;
	margin-bottom: 12px;
	color: var(--wp--preset--color--ink);
}
.wp-block-post-content a {
	color: var(--wp--preset--color--accent) !important;
	border-bottom: 1px solid rgba(215, 0, 21, 0.25);
}
.wp-block-post-content a:hover { border-bottom-color: var(--wp--preset--color--accent); }
.wp-block-post-content blockquote {
	border-left: 3px solid var(--wp--preset--color--subtle);
	padding-left: 20px;
	color: var(--wp--preset--color--muted);
	font-style: italic;
}

/* ---------- Avatar block ---------- */
.wp-block-avatar img {
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--hairline);
}

/* ============================================================
   PAGE template (about / contact / privacy / etc.)
   ============================================================ */
.recapdb-page-hero .wp-block-post-title { margin: 8px 0 16px !important; }
.recapdb-page-hero .wp-block-post-excerpt p {
	font-size: 19px;
	color: var(--wp--preset--color--muted);
	line-height: 1.55;
}
.recapdb-page-body { font-size: 17.5px; line-height: 1.7; color: var(--wp--preset--color--ink-soft, #3a3a3c); }
.recapdb-page-body h2 { margin-top: 48px; margin-bottom: 14px; color: var(--wp--preset--color--ink); font-size: 24px; letter-spacing: -0.02em; }
.recapdb-page-body h3 { margin-top: 36px; margin-bottom: 10px; color: var(--wp--preset--color--ink); font-size: 19px; }
.recapdb-page-body p { margin: 0 0 18px; }
.recapdb-page-body a { color: var(--wp--preset--color--accent) !important; border-bottom: 1px solid rgba(215, 0, 21, 0.25); }
.recapdb-page-body a:hover { border-bottom-color: var(--wp--preset--color--accent); }
.recapdb-page-body ul, .recapdb-page-body ol { padding-left: 1.4em; margin: 0 0 20px; }
.recapdb-page-body li { margin: 0 0 8px; }
.recapdb-page-body blockquote {
	border-left: 3px solid var(--wp--preset--color--subtle);
	padding: 4px 0 4px 22px;
	margin: 24px 0;
	color: var(--wp--preset--color--muted);
	font-style: italic;
}

/* ============================================================
   SINGLE post — hero + feature image + body layout
   ============================================================ */
.recapdb-article { padding: 0 !important; max-width: none !important; }

.recapdb-article__back .recapdb-back-link {
	color: var(--wp--preset--color--muted) !important;
	text-decoration: none !important;
	border-bottom: none !important;
	font-weight: 500;
	letter-spacing: 0.01em;
	transition: color 0.15s ease;
}
.recapdb-article__back .recapdb-back-link:hover { color: var(--wp--preset--color--accent) !important; }

/* ---------- Breadcrumbs ---------- */
.recapdb-breadcrumbs { margin: 0 0 22px; }
.recapdb-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 13px;
	line-height: 1.4;
}
.recapdb-breadcrumbs li { display: flex; align-items: center; gap: 6px; }
.recapdb-breadcrumbs li:not(:first-child)::before {
	content: "›";
	color: var(--wp--preset--color--muted);
}
.recapdb-breadcrumbs a {
	color: var(--wp--preset--color--muted) !important;
	text-decoration: none !important;
	border-bottom: none !important;
	font-weight: 500;
	transition: color 0.15s ease;
}
.recapdb-breadcrumbs a:hover { color: var(--wp--preset--color--accent) !important; }
.recapdb-breadcrumbs__current {
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
	font-weight: 500;
	max-width: 280px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
@media (max-width: 600px) {
	.recapdb-breadcrumbs__current { max-width: 160px; }
}

.recapdb-article__hero {
	margin: 0 auto !important;
	max-width: 760px;
}
.recapdb-article__hero .recapdb-badge { margin-bottom: 12px !important; font-size: 12px; }
.recapdb-article__hero .wp-block-post-title { color: var(--wp--preset--color--ink); }

.recapdb-article__feature {
	max-width: 1180px !important;
	margin: 0 auto !important;
}
.recapdb-article__feature .wp-block-post-featured-image {
	margin: 0 !important;
	display: block;
	width: 100%;
	max-height: 600px;
	overflow: hidden;
}
.recapdb-article__feature .wp-block-post-featured-image img {
	width: 100%;
	height: auto;
	max-height: 600px;
	object-fit: cover;
	display: block;
}

.recapdb-article__body { margin: 0 auto !important; }
.recapdb-article__body .wp-block-post-content > * {
	font-size: 17.5px;
	line-height: 1.75;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
}

/* Share row */
.recapdb-share__btn {
	display: inline-block;
	padding: 7px 16px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 999px;
	font-size: 13px;
	font-weight: 500;
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	transition: all 0.15s ease;
}
.recapdb-share__btn:hover {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--surface) !important;
	border-color: var(--wp--preset--color--ink);
}

/* ============================================================
   SHOW CONTEXT STRIP (above the recap title)
   ============================================================ */
.recapdb-context {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: var(--rdb-radius);
	padding: 14px 18px;
	margin: 0 0 24px;
}
.recapdb-context__line {
	font-size: 13.5px;
	color: var(--wp--preset--color--muted);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 6px;
	margin-bottom: 12px;
}
.recapdb-context__line .recapdb-context__show {
	font-weight: 700;
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	font-size: 12.5px;
}
.recapdb-context__line .recapdb-context__show:hover {
	color: var(--wp--preset--color--accent) !important;
}
.recapdb-context__sep { color: var(--wp--preset--color--subtle); }
.recapdb-context__controls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
}
.recapdb-context__field {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.recapdb-context__select {
	appearance: none;
	-webkit-appearance: none;
	background-color: var(--wp--preset--color--paper);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%236e6e73' stroke-width='1.5' d='M1 1.5L6 6.5L11 1.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 10px center;
	background-size: 10px 7px;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 8px;
	padding: 6px 30px 6px 12px;
	font-size: 13.5px;
	font-family: inherit;
	font-weight: 500;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	min-width: 110px;
	letter-spacing: 0;
	text-transform: none;
}
.recapdb-context__select:focus {
	outline: none;
	border-color: var(--wp--preset--color--ink);
	box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.06);
}
.recapdb-context__nav {
	display: inline-flex;
	gap: 8px;
	margin-left: auto;
}
.recapdb-context__btn {
	display: inline-block;
	padding: 6px 14px;
	font-size: 13px;
	font-weight: 500;
	color: var(--wp--preset--color--ink) !important;
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 999px;
	text-decoration: none !important;
	transition: background 0.15s ease, border-color 0.15s ease;
}
.recapdb-context__btn:hover {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--surface) !important;
	border-color: var(--wp--preset--color--ink);
}
@media (max-width: 600px) {
	.recapdb-context__nav { margin-left: 0; width: 100%; justify-content: space-between; }
}

/* ============================================================
   SIGNIN page + Google button
   ============================================================ */
.recapdb-signin-card { max-width: 460px; margin: 0 auto !important; }
.recapdb-signin-actions { display: flex; flex-direction: column; align-items: center; gap: 14px; margin-top: 10px; }
.recapdb-google-btn {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 11px 22px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--subtle, #d2d2d7);
	border-radius: 999px;
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: -0.005em;
	transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease;
	box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
.recapdb-google-btn:hover {
	border-color: var(--wp--preset--color--ink);
	box-shadow: 0 4px 12px rgba(0,0,0,0.08);
	transform: translateY(-1px);
	color: var(--wp--preset--color--ink) !important;
}
.recapdb-signin-tos {
	font-size: 12.5px;
	color: var(--wp--preset--color--muted);
	margin: 0;
	text-align: center;
}
.recapdb-signin-tos a { color: var(--wp--preset--color--muted); }

/* ============================================================
   COMMENT GATE — replaces "must log in" message
   ============================================================ */
.recapdb-comment-gate {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: var(--rdb-radius-sm);
	padding: 20px 22px;
	margin: 16px 0;
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}
.recapdb-comment-gate__copy {
	margin: 0;
	font-size: 14.5px;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
	flex: 1;
	min-width: 260px;
}

/* ============================================================
   ENGAGEMENT BAR — YouTube-style 👍 👎 💬 under byline on single posts
   ============================================================ */
.recapdb-engage {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 16px 0 8px;
	flex-wrap: wrap;
}

/* ---------- Save for later ---------- */
.recapdb-hero-actions { margin: 14px 0 4px; }
.recapdb-save {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 8px 16px;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--hairline, rgba(0,0,0,0.1));
	background: var(--wp--preset--color--surface, #fff);
	color: var(--wp--preset--color--ink) !important;
	font-size: 13.5px;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none !important;
	border-bottom: 1px solid var(--wp--preset--color--hairline, rgba(0,0,0,0.1)) !important;
	transition: background 140ms ease, border-color 140ms ease, transform 140ms ease;
}
.recapdb-save:hover { transform: translateY(-1px); border-color: var(--wp--preset--color--ink); }
.recapdb-save:focus-visible { outline: 2px solid var(--wp--preset--color--accent, #d70015); outline-offset: 2px; }
.recapdb-save__icon {
	font-size: 14px;
	line-height: 1;
	width: 16px;
	height: 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.recapdb-save.is-saved {
	background: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--ink);
	color: #fff !important;
}
.recapdb-save[disabled] { opacity: 0.6; cursor: default; }
.recapdb-engage__btn,
.recapdb-engage__comments {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	background: var(--wp--preset--color--tint);
	border: 1px solid transparent;
	border-radius: 999px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 500;
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	cursor: pointer;
	transition: background .12s ease, transform .12s ease, border-color .12s ease;
	line-height: 1;
}
.recapdb-engage__btn:hover,
.recapdb-engage__comments:hover {
	background: var(--wp--preset--color--surface);
	border-color: var(--wp--preset--color--hairline);
}
.recapdb-engage__btn:active { transform: scale(0.97); }
.recapdb-engage__btn.is-on {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--surface) !important;
	border-color: var(--wp--preset--color--ink);
}
.recapdb-engage__btn.is-on .recapdb-engage__icon { color: var(--wp--preset--color--surface); }
.recapdb-engage__icon { width: 18px; height: 18px; flex-shrink: 0; color: var(--wp--preset--color--ink-soft, #3a3a3c); transition: color .12s ease; }
.recapdb-engage__count { font-variant-numeric: tabular-nums; font-weight: 600; }
.recapdb-engage__sep { color: var(--wp--preset--color--subtle); padding: 0 4px; user-select: none; }
.recapdb-engage__label { color: var(--wp--preset--color--muted); font-weight: 500; }
.recapdb-engage__comments .recapdb-engage__label { display: inline; }
@media (max-width: 600px) {
	.recapdb-engage__sep { display: none; }
	.recapdb-engage__label { display: none !important; }
}

/* ============================================================
   PROFILE dashboard — base utilities (CTA + guest)
   See the PROFILE (Apple-style) section below for the rest.
   ============================================================ */
.recapdb-profile--guest { text-align: center; padding: 56px 24px; }
.recapdb-cta-btn {
	display: inline-block;
	padding: 10px 20px;
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--surface) !important;
	border-radius: 999px;
	text-decoration: none !important;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: -0.005em;
	transition: transform 80ms ease, background 140ms ease;
}
.recapdb-cta-btn:hover { transform: translateY(-1px); }
.recapdb-cta-btn--ghost {
	background: transparent;
	color: var(--wp--preset--color--ink) !important;
	border: 1px solid var(--wp--preset--color--hairline);
}
.recapdb-cta-btn--ghost:hover { background: var(--wp--preset--color--tint); }

/* (5-star episode rating removed — replaced by up/down votes above) */

/* ============================================================
   COMMENT THREAD — Apple/Google-style threaded list
   ============================================================ */
.wp-block-comment-template { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.wp-block-comment-template > li {
	padding: 18px 0;
	border-top: 1px solid var(--wp--preset--color--hairline);
}
.wp-block-comment-template > li:first-child { border-top: 0; padding-top: 8px; }

/* Nested replies get a subtle left rail */
.wp-block-comment-template li ol,
.wp-block-comment-template li ul {
	list-style: none !important;
	padding-left: 0 !important;
	margin: 14px 0 0 12px !important;
	border-left: 2px solid var(--wp--preset--color--hairline);
	padding-left: 16px !important;
}
.wp-block-comment-template li ol > li,
.wp-block-comment-template li ul > li { padding: 14px 0; }

.wp-block-comment-template .wp-block-avatar img {
	width: 36px !important;
	height: 36px !important;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--hairline);
}
.wp-block-comment-template .wp-block-comment-author-name {
	font-size: 14.5px;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	letter-spacing: -0.005em;
}
.wp-block-comment-template .wp-block-comment-author-name a { color: var(--wp--preset--color--ink) !important; }
.wp-block-comment-template .wp-block-comment-date,
.wp-block-comment-template .wp-block-comment-date a {
	color: var(--wp--preset--color--muted) !important;
	font-size: 12.5px;
}
.wp-block-comment-template .wp-block-comment-content {
	margin: 8px 0 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
}
.wp-block-comment-template .wp-block-comment-content p { margin: 0 0 8px; }

/* Inline action row appended to each comment via comment_text filter */
.recapdb-comment-actions {
	display: flex;
	gap: 14px;
	margin-top: 10px;
	font-size: 13px;
}
.recapdb-comment-action {
	background: none;
	border: 0;
	padding: 4px 0;
	cursor: pointer;
	color: var(--wp--preset--color--muted) !important;
	font-family: inherit;
	font-size: inherit;
	text-decoration: none !important;
	font-weight: 500;
	display: inline-flex;
	gap: 4px;
	align-items: center;
}
.recapdb-comment-action:hover { color: var(--wp--preset--color--accent) !important; }
.recapdb-comment-action span { color: var(--wp--preset--color--muted); font-variant-numeric: tabular-nums; }
.recapdb-comment-like.is-liked { color: var(--wp--preset--color--accent) !important; }
.recapdb-comment-like--guest { cursor: default; }
.recapdb-comment-action--report { margin-left: auto; color: var(--wp--preset--color--muted) !important; }
.recapdb-comment-action--report.is-reported { color: var(--wp--preset--color--accent) !important; cursor: default; }
.recapdb-comment-action--report[disabled] { opacity: 0.6; cursor: default; }

/* Apple-style comment form */
.wp-block-post-comments-form { margin: 24px 0; }
.wp-block-post-comments-form .comment-form-comment label,
.wp-block-post-comments-form label { font-size: 13px; font-weight: 500; color: var(--wp--preset--color--muted); display: block; margin-bottom: 4px; }
.wp-block-post-comments-form textarea,
.wp-block-post-comments-form input[type="text"],
.wp-block-post-comments-form input[type="email"],
.wp-block-post-comments-form input[type="url"] {
	border: 1px solid var(--wp--preset--color--hairline) !important;
	background: var(--wp--preset--color--paper) !important;
	border-radius: 12px !important;
	padding: 12px 14px !important;
	font-family: inherit;
	font-size: 15px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.wp-block-post-comments-form textarea:focus,
.wp-block-post-comments-form input:focus {
	outline: none !important;
	border-color: var(--wp--preset--color--ink) !important;
	box-shadow: 0 0 0 3px rgba(0,0,0,0.06);
	background: var(--wp--preset--color--surface) !important;
}
.wp-block-post-comments-form .submit {
	padding: 10px 22px !important;
	border-radius: 999px !important;
	background: var(--wp--preset--color--ink) !important;
	color: #fff !important;
	border: 0 !important;
	font-weight: 600 !important;
	cursor: pointer;
}

/* ============================================================
   AIRING TONIGHT — TVMaze tile on homepage
   ============================================================ */
.recapdb-airing {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}
.recapdb-airing__card {
	display: flex;
	flex-direction: column;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: var(--rdb-radius);
	overflow: hidden;
	text-decoration: none !important;
	color: inherit !important;
	transition: box-shadow var(--rdb-transition), transform var(--rdb-transition);
}
.recapdb-airing__card:hover {
	box-shadow: var(--rdb-shadow-hover);
	transform: translateY(-2px);
}
.recapdb-airing__poster {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	display: block;
	background: var(--wp--preset--color--tint);
}
.recapdb-airing__body { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 4px; }
.recapdb-airing__title {
	font-size: 14.5px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--ink);
	line-height: 1.3;
}
.recapdb-airing__ep { font-size: 12.5px; color: var(--wp--preset--color--muted); line-height: 1.4; }
.recapdb-airing__network {
	font-size: 11px;
	color: var(--wp--preset--color--muted);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
	margin-top: 2px;
}
.recapdb-airing__empty { color: var(--wp--preset--color--muted); font-size: 14px; }
@media (max-width: 900px) {
	.recapdb-airing { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ============================================================
   COMMENTS — discussion area on single post
   ============================================================ */
.recapdb-comments .wp-block-comments-title { font-size: 18px; letter-spacing: -0.014em; margin: 0 0 16px; }
.recapdb-comments .wp-block-post-comments-form { margin: 20px 0; }
.recapdb-comments .wp-block-post-comments-form input[type="text"],
.recapdb-comments .wp-block-post-comments-form input[type="email"],
.recapdb-comments .wp-block-post-comments-form input[type="url"],
.recapdb-comments .wp-block-post-comments-form textarea {
	width: 100%;
	padding: 9px 12px;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 8px;
	font-family: inherit;
	font-size: 14.5px;
	background: var(--wp--preset--color--surface);
}
.recapdb-comments .wp-block-post-comments-form input:focus,
.recapdb-comments .wp-block-post-comments-form textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--ink);
	box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.06);
}
.recapdb-comments .wp-block-post-comments-form .submit {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--surface);
	border: 0;
	padding: 10px 22px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
}
.recapdb-comments .wp-block-comment-content { color: var(--wp--preset--color--ink-soft, #3a3a3c); font-size: 15px; line-height: 1.55; margin: 8px 0 0; }
.recapdb-comments .wp-block-comment-reply-link a {
	color: var(--wp--preset--color--accent) !important;
	font-weight: 500;
	border-bottom: none !important;
}

/* ============================================================
   SPOILER BANNER (above body content when spoiler_level set)
   ============================================================ */
.recapdb-spoiler {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	padding: 14px 18px;
	margin: 0 0 24px;
	border-radius: var(--rdb-radius-sm);
}
.recapdb-spoiler__icon { font-size: 18px; line-height: 1.3; }
.recapdb-spoiler__main { display: flex; flex-direction: column; gap: 10px; }
.recapdb-spoiler__body { margin: 0; font-size: 14.5px; line-height: 1.5; }
.recapdb-spoiler--medium {
	background: #fff6e8;
	border: 1px solid #f0d49d;
	color: #6a3e02;
}
.recapdb-spoiler--full {
	background: #fef2f2;
	border: 1px solid #f5b3b6;
	color: #8b0712;
}
.recapdb-spoiler__reveal {
	align-self: flex-start;
	padding: 8px 16px;
	border-radius: 999px;
	border: 0;
	background: #8b0712;
	color: #fff;
	font-size: 13.5px;
	font-weight: 600;
	cursor: pointer;
	transition: background 140ms ease, transform 140ms ease;
}
.recapdb-spoiler__reveal:hover { background: #6f0610; transform: translateY(-1px); }
.recapdb-spoiler__reveal:focus-visible {
	outline: 2px solid #8b0712;
	outline-offset: 2px;
}

/* Spoiler gate: pure CSS blur. The recap text stays in the DOM and in
   the render tree, so Google indexes it normally; only the human view
   is obscured until "Reveal the recap" is tapped. */
.recapdb-spoiler-gated {
	filter: blur(8px);
	pointer-events: none;
	user-select: none;
	transition: filter 220ms ease;
}

/* "Updated" tag next to the date */
.recapdb-updated {
	display: inline-block;
	margin-left: 10px;
	padding: 1px 8px;
	background: var(--wp--preset--color--tint);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 999px;
	font-size: 11.5px;
	color: var(--wp--preset--color--muted);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	font-weight: 600;
}

/* ============================================================
   QUICK FACTS — Wikipedia-style info panel
   ============================================================ */
.recapdb-facts {
	margin: 32px 0;
	padding: 22px 26px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: var(--rdb-radius);
}
.recapdb-facts__heading {
	margin: 0 0 14px;
	font-size: 11.5px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	font-weight: 600;
}
.recapdb-facts__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	margin: 0;
}
.recapdb-facts__row {
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: 16px;
	padding: 10px 0;
	border-top: 1px solid var(--wp--preset--color--hairline);
	font-size: 15px;
	line-height: 1.4;
}
.recapdb-facts__row:first-child { border-top: 0; padding-top: 4px; }
.recapdb-facts__key {
	margin: 0;
	color: var(--wp--preset--color--muted);
	font-weight: 500;
	font-size: 13.5px;
	letter-spacing: 0.01em;
}
.recapdb-facts__val { margin: 0; color: var(--wp--preset--color--ink); }
.recapdb-facts__val a {
	color: var(--wp--preset--color--ink) !important;
	border-bottom: 1px solid var(--wp--preset--color--subtle) !important;
}
.recapdb-facts__val a:hover {
	color: var(--wp--preset--color--accent) !important;
	border-bottom-color: var(--wp--preset--color--accent) !important;
}

.recapdb-chip-row { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.recapdb-chip {
	display: inline-block;
	padding: 3px 11px;
	background: var(--wp--preset--color--tint);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 999px;
	font-size: 13px;
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	border-bottom: 1px solid var(--wp--preset--color--hairline) !important;
	transition: background 0.15s ease;
}
a.recapdb-chip:hover { background: var(--wp--preset--color--surface); border-color: var(--wp--preset--color--subtle) !important; }

@media (max-width: 600px) {
	.recapdb-facts__row { grid-template-columns: 110px 1fr; gap: 12px; font-size: 14px; }
}

/* ============================================================
   EPISODE CREDITS — Cast + Crew columns
   ============================================================ */
.recapdb-credits {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
	margin: 40px 0;
	padding: 24px 28px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: var(--rdb-radius);
}
.recapdb-credits__col { min-width: 0; }
.recapdb-credits__heading {
	margin: 0 0 10px;
	font-size: 11.5px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	font-weight: 600;
}
.recapdb-credits__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.recapdb-credits__list li {
	font-size: 14.5px;
	line-height: 1.45;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
}
.recapdb-credits__name { font-weight: 600; color: var(--wp--preset--color--ink); }
.recapdb-credits__as { color: var(--wp--preset--color--muted); font-size: 13px; }
.recapdb-credits__role { color: var(--wp--preset--color--muted); }

@media (max-width: 600px) {
	.recapdb-credits { grid-template-columns: 1fr; gap: 20px; padding: 18px 22px; }
}

/* ============================================================
   PROFILE DASHBOARD — Apple Settings-app style
   Hero card → optional achievement chips → 2-column layout
   (sidebar rail + content pane). Collapses on mobile.
   ============================================================ */
.recapdb-profile { display: flex; flex-direction: column; gap: 24px; max-width: 980px; margin: 0 auto; }

/* Hero: avatar + identity + stats */
.recapdb-profile__hero {
	display: grid;
	grid-template-columns: 116px 1fr;
	gap: 28px;
	align-items: start;
	padding: 28px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 18px;
	box-shadow: 0 1px 2px rgba(0,0,0,0.03);
}
.recapdb-profile__avatar {
	width: 116px; height: 116px;
	border-radius: 999px;
	object-fit: cover;
	background: var(--wp--preset--color--tint);
	box-shadow: 0 0 0 1px var(--wp--preset--color--hairline), 0 4px 12px rgba(0,0,0,0.05);
}
.recapdb-profile__identity { min-width: 0; }
.recapdb-profile__name {
	margin: 0;
	font-size: clamp(1.6rem, 2.8vw, 2rem);
	font-weight: 700;
	letter-spacing: -0.024em;
	line-height: 1.1;
	color: var(--wp--preset--color--ink);
}
.recapdb-profile__meta {
	color: var(--wp--preset--color--muted);
	font-size: 13.5px;
	margin: 4px 0 0;
}
.recapdb-profile__bio {
	margin: 12px 0 0;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
	font-size: 14.5px;
	line-height: 1.55;
	max-width: 60ch;
}

/* Hero stats — inline (not standalone boxes) */
.recapdb-profile__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 28px;
	margin: 18px 0 0;
	padding: 0;
}
.recapdb-profile__stats > div { display: flex; flex-direction: column; gap: 2px; }
.recapdb-profile__stats dt {
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.recapdb-profile__stats dd {
	margin: 0;
	font-size: 22px;
	font-weight: 600;
	letter-spacing: -0.018em;
	color: var(--wp--preset--color--ink);
	font-variant-numeric: tabular-nums;
}
.recapdb-profile__actions { margin-top: 18px; display: flex; gap: 10px; }

/* Achievements strip */
.recapdb-profile__achievements {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 14px;
	padding: 16px 20px;
}

/* 2-column layout: rail + pane */
.recapdb-profile__layout {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 24px;
	align-items: start;
}
.recapdb-profile__rail {
	position: sticky;
	top: 88px;
	display: flex;
	flex-direction: column;
	gap: 2px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 14px;
	padding: 8px;
}
.recapdb-profile__rail button {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 14px;
	border: 0;
	background: transparent;
	font-family: inherit;
	font-size: 14.5px;
	font-weight: 500;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
	text-align: left;
	cursor: pointer;
	border-radius: 9px;
	transition: background 120ms ease, color 120ms ease;
}
.recapdb-profile__rail button:hover { background: var(--wp--preset--color--tint); color: var(--wp--preset--color--ink); }
.recapdb-profile__rail button.is-active {
	background: var(--wp--preset--color--ink);
	color: #fff;
}
.recapdb-profile__rail button.is-active:hover { background: var(--wp--preset--color--ink); color: #fff; }
.recapdb-profile__rail-icon {
	display: inline-flex;
	width: 22px;
	justify-content: center;
	font-size: 14px;
	opacity: 0.85;
}

.recapdb-profile__pane { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.recapdb-profile__panel { display: none; flex-direction: column; gap: 16px; }
.recapdb-profile__panel.is-active { display: flex; }

/* Cards */
.recapdb-profile__card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 14px;
	padding: 22px 24px;
}
.recapdb-profile__card-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 14px;
}
.recapdb-profile__card-head h2 {
	margin: 0;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: -0.012em;
}
.recapdb-profile__hint {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
}
.recapdb-profile__see-all {
	background: none; border: 0; padding: 0;
	color: var(--wp--preset--color--accent);
	font-size: 13.5px;
	font-weight: 500;
	cursor: pointer;
	letter-spacing: -0.005em;
}
.recapdb-profile__see-all:hover { text-decoration: underline; }

/* Comment list inside cards */
.recapdb-profile__comments { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.recapdb-profile__comments li {
	border-top: 1px solid var(--wp--preset--color--hairline);
	padding-top: 12px;
}
.recapdb-profile__comments li:first-child { border-top: 0; padding-top: 0; }
.recapdb-profile__comment-link {
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	border-bottom: none !important;
	font-size: 15px;
}
.recapdb-profile__comments p { color: var(--wp--preset--color--ink-soft, #3a3a3c); margin: 4px 0; font-size: 14px; line-height: 1.5; }
.recapdb-profile__date { font-size: 12px; color: var(--wp--preset--color--muted); }
.recapdb-profile__empty {
	color: var(--wp--preset--color--muted);
	font-size: 14.5px;
	padding: 8px 0;
}

/* Saved recaps list */
.recapdb-profile__saved { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.recapdb-profile__saved li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 9px 0;
	border-top: 1px solid var(--wp--preset--color--hairline, #f0f0f3);
}
.recapdb-profile__saved li:first-child { border-top: 0; }
.recapdb-profile__saved a {
	font-weight: 600;
	font-size: 14.5px;
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
}
.recapdb-profile__saved a:hover { color: var(--wp--preset--color--accent) !important; }
.recapdb-profile__saved span {
	flex: 0 0 auto;
	font-size: 12px;
	color: var(--wp--preset--color--muted);
}

/* Saved tab rows */
.recapdb-profile__saved-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.recapdb-profile__saved-row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 0;
	border-top: 1px solid var(--wp--preset--color--hairline, #f0f0f3);
}
.recapdb-profile__saved-row:first-child { border-top: 0; }
.recapdb-profile__saved-link {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: 1px;
	text-decoration: none !important;
	min-width: 0;
}
.recapdb-profile__saved-name {
	font-weight: 600;
	font-size: 14.5px;
	color: var(--wp--preset--color--ink) !important;
}
.recapdb-profile__saved-link:hover .recapdb-profile__saved-name { color: var(--wp--preset--color--accent) !important; }
.recapdb-profile__saved-time { font-size: 12px; color: var(--wp--preset--color--muted); }
.recapdb-profile__saved-remove {
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 1px solid var(--wp--preset--color--hairline, rgba(0,0,0,0.1));
	background: var(--wp--preset--color--surface, #fff);
	color: var(--wp--preset--color--muted);
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
	transition: background 140ms ease, color 140ms ease;
}
.recapdb-profile__saved-remove:hover { background: var(--wp--preset--color--accent, #d70015); color: #fff; border-color: transparent; }

/* Vote rows */
.recapdb-profile__votes { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.recapdb-profile__votes li {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 0;
	border-top: 1px solid var(--wp--preset--color--hairline);
	font-size: 14.5px;
}
.recapdb-profile__votes li:first-child { border-top: 0; }
.recapdb-profile__votes a {
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	border-bottom: none !important;
	font-weight: 500;
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.recapdb-profile__votes a:hover { color: var(--wp--preset--color--accent) !important; }
.recapdb-profile__vote { font-weight: 700; font-size: 13px; line-height: 1; width: 16px; text-align: center; }
.recapdb-profile__vote--up   { color: #007a3d; }
.recapdb-profile__vote--down { color: #b10712; }

/* Account forms — inset form fields */
.recapdb-profile__form { display: flex; flex-direction: column; gap: 16px; }
.recapdb-profile__field { display: flex; flex-direction: column; gap: 6px; }
.recapdb-profile__field-label,
.recapdb-profile__field > span {
	font-size: 13px;
	font-weight: 500;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
}
.recapdb-profile__field-label em,
.recapdb-profile__field > span em {
	font-style: normal;
	color: var(--wp--preset--color--muted);
	font-weight: 400;
}
.recapdb-profile__field input,
.recapdb-profile__field textarea {
	padding: 11px 14px;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 10px;
	background: var(--wp--preset--color--paper);
	font-family: inherit;
	font-size: 15px;
	color: var(--wp--preset--color--ink);
	transition: border-color 140ms ease, box-shadow 140ms ease;
}
.recapdb-profile__field input:focus,
.recapdb-profile__field textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--ink);
	box-shadow: 0 0 0 3px rgba(0,0,0,0.06);
	background: var(--wp--preset--color--surface);
}
.recapdb-profile__form-actions { display: flex; align-items: center; gap: 14px; margin-top: 4px; }
.recapdb-profile__form-status { font-size: 13px; color: var(--wp--preset--color--muted); }
.recapdb-profile__form-status.is-saving { color: var(--wp--preset--color--muted); }
.recapdb-profile__form-status.is-ok     { color: #007a3d; }
.recapdb-profile__form-status.is-error  { color: #b10712; }

/* Account sign-in block */
.recapdb-profile__signin { display: flex; flex-direction: column; gap: 4px; }
.recapdb-profile__email { font-size: 14px; color: var(--wp--preset--color--ink); margin: 0; }
.recapdb-profile__signin-meta { font-size: 12.5px; color: var(--wp--preset--color--muted); margin: 0; }
.recapdb-profile__signin p:last-child { margin-top: 12px; }

/* Mobile collapse */
@media (max-width: 860px) {
	.recapdb-profile__hero {
		grid-template-columns: 92px 1fr;
		gap: 18px;
		padding: 20px;
	}
	.recapdb-profile__avatar { width: 92px; height: 92px; }
	.recapdb-profile__layout {
		grid-template-columns: 1fr;
	}
	.recapdb-profile__rail {
		position: static;
		flex-direction: row;
		overflow-x: auto;
		gap: 4px;
		padding: 6px;
		-webkit-overflow-scrolling: touch;
	}
	.recapdb-profile__rail button {
		flex: 0 0 auto;
		padding: 8px 14px;
	}
	.recapdb-profile__rail-icon { display: none; }
}

/* ============================================================
   HEADER BELL — notifications icon (logged-in only)
   ============================================================ */
.recapdb-acct-group { display: inline-flex; align-items: center; gap: 10px; }
.recapdb-bell {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 999px;
	color: var(--wp--preset--color--ink-soft, #3a3a3c) !important;
	text-decoration: none !important;
	transition: background .15s ease, color .15s ease;
}
.recapdb-bell:hover { background: var(--wp--preset--color--tint); color: var(--wp--preset--color--ink) !important; }
.recapdb-bell__count {
	position: absolute;
	top: -2px;
	right: -4px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--surface);
	border-radius: 999px;
	font-size: 10.5px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	border: 2px solid var(--wp--preset--color--paper);
}

/* ============================================================
   NOTIFICATIONS page (/notifications/)
   ============================================================ */
.recapdb-notif__hero h1 { margin: 0 0 4px; font-size: clamp(1.75rem, 3.2vw, 2.25rem); letter-spacing: -0.024em; }
.recapdb-notif__hero p { margin: 0 0 24px; color: var(--wp--preset--color--muted); font-size: 14.5px; }
.recapdb-notif__empty {
	margin: 16px 0;
	padding: 28px 22px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: var(--rdb-radius);
	color: var(--wp--preset--color--muted);
	text-align: center;
}
.recapdb-notif__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.recapdb-notif__row {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	padding: 14px 18px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: var(--rdb-radius-sm);
	text-decoration: none !important;
	color: inherit !important;
	transition: border-color .15s ease, background .15s ease;
}
.recapdb-notif__row:hover { border-color: var(--wp--preset--color--subtle); background: var(--wp--preset--color--paper); }
.recapdb-notif__icon { font-size: 18px; line-height: 1.2; width: 28px; flex-shrink: 0; color: var(--wp--preset--color--muted); }
.recapdb-notif__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.recapdb-notif__text { color: var(--wp--preset--color--ink); font-size: 14.5px; line-height: 1.45; }
.recapdb-notif__text strong { font-weight: 600; }
.recapdb-notif__ago { color: var(--wp--preset--color--muted); font-size: 12.5px; }
.recapdb-notif__row.is-new {
	background: linear-gradient(90deg, color-mix(in srgb, var(--wp--preset--color--accent) 5%, transparent), var(--wp--preset--color--surface) 24%);
	border-color: color-mix(in srgb, var(--wp--preset--color--accent) 18%, var(--wp--preset--color--hairline));
}
.recapdb-notif__dot {
	flex: 0 0 auto;
	align-self: center;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--wp--preset--color--accent, #d70015);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--accent) 18%, transparent);
}

/* ============================================================
   BADGES DIRECTORY (/badges/)
   ============================================================ */
.recapdb-badges-page__hero h1 { margin: 0 0 8px; font-size: clamp(2rem, 4vw, 2.75rem); letter-spacing: -0.026em; line-height: 1.08; }
.recapdb-badges-page__hero p { margin: 0 0 32px; color: var(--wp--preset--color--muted); font-size: 17px; line-height: 1.55; max-width: 620px; }
.recapdb-badges-page__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}
.recapdb-badges-page__item {
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 18px;
	padding: 18px 22px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: var(--rdb-radius);
	align-items: start;
}
.recapdb-badges-page__icon {
	font-size: 32px; line-height: 1;
	width: 56px; height: 56px;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--wp--preset--color--tint);
	border-radius: 999px;
}
.recapdb-badges-page__body h2 { margin: 0 0 4px; font-size: 16px; letter-spacing: -0.014em; }
.recapdb-badges-page__body p { margin: 0 0 6px; color: var(--wp--preset--color--ink-soft, #3a3a3c); font-size: 14px; line-height: 1.5; }
.recapdb-badges-page__count { font-size: 12.5px; color: var(--wp--preset--color--muted); }
@media (max-width: 700px) { .recapdb-badges-page__list { grid-template-columns: 1fr; } }

/* ============================================================
   ACHIEVEMENT BADGES — chips on /profile/ + /u/{slug}/
   ============================================================ */
.recapdb-badges {
	list-style: none;
	margin: 18px 0 6px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.recapdb-badge-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 12px;
	background: var(--wp--preset--color--tint);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 999px;
	font-size: 12.5px;
	color: var(--wp--preset--color--ink);
	cursor: default;
	transition: background .15s ease, border-color .15s ease;
}
.recapdb-badge-chip:hover { background: var(--wp--preset--color--surface); border-color: var(--wp--preset--color--subtle); }
.recapdb-badge-chip__icon { font-size: 14px; line-height: 1; }
.recapdb-badge-chip__name { font-weight: 500; letter-spacing: -0.005em; }

/* ============================================================
   HOT TAKES — top-liked comments on show hub
   ============================================================ */
.recapdb-hot { margin: 48px 0 16px; }
.recapdb-hot__list { list-style: none; margin: 16px 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.recapdb-hot__item {
	display: grid;
	grid-template-columns: 40px 1fr;
	gap: 14px;
	padding: 14px 18px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: var(--rdb-radius);
}
.recapdb-hot__avatar { width: 40px; height: 40px; border-radius: 999px; object-fit: cover; background: var(--wp--preset--color--tint); }
.recapdb-hot__head { display: flex; align-items: baseline; gap: 10px; }
.recapdb-hot__name { font-size: 14.5px; color: var(--wp--preset--color--ink); }
.recapdb-hot__likes {
	font-size: 12.5px;
	color: var(--wp--preset--color--accent);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}
.recapdb-hot__excerpt {
	margin: 4px 0 6px;
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
}
.recapdb-hot__source {
	font-size: 12.5px;
	font-weight: 500;
	color: var(--wp--preset--color--muted) !important;
	text-decoration: none !important;
	border-bottom: none !important;
}
.recapdb-hot__source:hover { color: var(--wp--preset--color--accent) !important; }

/* ============================================================
   COMMENT SORT TOGGLE (Best / New)
   ============================================================ */
.recapdb-comment-sort {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin: 8px 0 16px;
	padding: 4px;
	background: var(--wp--preset--color--tint);
	border-radius: 999px;
	font-size: 13px;
}
.recapdb-comment-sort__label {
	padding: 0 10px 0 8px;
	color: var(--wp--preset--color--muted);
	font-weight: 500;
}
.recapdb-comment-sort button {
	background: none;
	border: 0;
	padding: 5px 14px;
	font-family: inherit;
	font-size: 13px;
	font-weight: 500;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
	cursor: pointer;
	border-radius: 999px;
	transition: background .12s ease, color .12s ease;
}
.recapdb-comment-sort button:hover { color: var(--wp--preset--color--ink); }
.recapdb-comment-sort button.is-active {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--ink);
	font-weight: 600;
}

/* ============================================================
   WELCOME banner (one-shot on /profile/ for new signups)
   ============================================================ */
.recapdb-welcome {
	margin: 0 0 24px;
	padding: 16px 20px;
	background: linear-gradient(135deg, #fffaf5, #fff7e6);
	border: 1px solid #f0d68b;
	border-radius: var(--rdb-radius);
}
.recapdb-welcome strong { font-size: 15px; }
.recapdb-welcome p { margin: 4px 0 0; color: var(--wp--preset--color--ink-soft, #3a3a3c); font-size: 14px; line-height: 1.5; }
.recapdb-welcome a { color: var(--wp--preset--color--accent) !important; border-bottom: 1px solid rgba(215,0,21,0.25); }

/* ============================================================
   DISCUSS CTA — sits before episode nav on single posts
   ============================================================ */
.recapdb-discuss {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 40px 0 16px;
	padding: 16px 22px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: var(--rdb-radius);
}
.recapdb-discuss__icon { font-size: 22px; line-height: 1; }
.recapdb-discuss__body { flex: 1; min-width: 0; }
.recapdb-discuss__copy { margin: 0; color: var(--wp--preset--color--ink-soft, #3a3a3c); font-size: 14.5px; }
.recapdb-discuss__cta {
	display: inline-block;
	margin-top: 4px;
	color: var(--wp--preset--color--accent) !important;
	font-weight: 600;
	font-size: 14px;
	text-decoration: none !important;
	border-bottom: none !important;
}
.recapdb-discuss__cta:hover { text-decoration: underline !important; }

/* ============================================================
   HEADER ACCOUNT widget (avatar / Sign in)
   ============================================================ */
.recapdb-acct {
	display: inline-flex;
	align-items: center;
	text-decoration: none !important;
	font-family: inherit;
}
.recapdb-acct--guest {
	padding: 7px 16px;
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--surface) !important;
	border-radius: 999px;
	font-size: 13.5px;
	font-weight: 600;
	letter-spacing: -0.005em;
	transition: opacity .15s ease;
}
.recapdb-acct--guest:hover { opacity: 0.86; }
.recapdb-acct--member img {
	width: 32px;
	height: 32px;
	border-radius: 999px;
	object-fit: cover;
	border: 1px solid var(--wp--preset--color--hairline);
	background: var(--wp--preset--color--tint);
	transition: border-color .15s ease, transform .15s ease;
}
.recapdb-acct--member:hover img {
	border-color: var(--wp--preset--color--ink);
	transform: scale(1.06);
}

/* ============================================================
   POST STATS — compact inline 👍 N · 👎 N · 💬 N (cards + lists)
   ============================================================ */
.recapdb-stats {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 12.5px;
	color: var(--wp--preset--color--muted);
	font-variant-numeric: tabular-nums;
}
.recapdb-stats__item { display: inline-flex; align-items: center; gap: 3px; }

/* Linked recaps list — extra stats column on the right of each episode row */
.recapdb-linked__stats {
	margin-left: auto;
	color: var(--wp--preset--color--muted);
	font-size: 12.5px;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.recapdb-linked__list a {
	display: flex !important;
	align-items: baseline;
	gap: 14px;
	width: 100%;
}
.recapdb-linked__title { flex: 1; min-width: 0; }

/* ============================================================
   TRENDING THIS WEEK — homepage chip row
   ============================================================ */
.recapdb-trending {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 14px;
}
.recapdb-trending__card {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 12px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: var(--rdb-radius-sm);
	text-decoration: none !important;
	color: inherit !important;
	transition: border-color .15s ease, transform .15s ease;
}
.recapdb-trending__card:hover { border-color: var(--wp--preset--color--ink); transform: translateY(-1px); }
.recapdb-trending__rank {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	color: #007a3d;
	letter-spacing: 0.04em;
}
.recapdb-trending__thumb {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 6px;
	background: var(--wp--preset--color--tint);
}
.recapdb-trending__title {
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--wp--preset--color--ink);
}
@media (max-width: 900px) {
	.recapdb-trending { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ============================================================
   MEMBER COUNT — footer brand tagline
   ============================================================ */
.recapdb-member-count {
	display: block;
	text-align: center;
	margin: 32px auto 0;
	padding: 16px 24px;
	max-width: 460px;
	background: var(--wp--preset--color--tint);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: var(--rdb-radius);
	text-decoration: none !important;
	color: var(--wp--preset--color--ink) !important;
	font-size: 14.5px;
	transition: border-color .15s ease, background .15s ease;
}
.recapdb-member-count:hover { border-color: var(--wp--preset--color--ink); background: var(--wp--preset--color--surface); }
.recapdb-member-count strong { font-weight: 700; font-variant-numeric: tabular-nums; }
.recapdb-member-count span { color: var(--wp--preset--color--accent); font-weight: 600; }

/* ============================================================
   MEMBER (community) public profile — /u/{nickname}/
   ============================================================ */
.recapdb-author-card--member { display: grid; grid-template-columns: 120px 1fr; gap: 24px; align-items: start; padding-bottom: 24px; margin-bottom: 24px; }
.recapdb-author-card--member .recapdb-author-card__headshot { width: 120px; height: 120px; }

.recapdb-member-recent { margin: 24px 0; }
.recapdb-member-recent__list { list-style: none; margin: 16px 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.recapdb-member-recent__list li {
	padding: 16px 18px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: var(--rdb-radius-sm);
}
.recapdb-member-recent__title {
	font-weight: 600;
	font-size: 15px;
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	border-bottom: none !important;
}
.recapdb-member-recent__title:hover { color: var(--wp--preset--color--accent) !important; }
.recapdb-member-recent__body { margin: 6px 0 4px; font-size: 14.5px; line-height: 1.5; color: var(--wp--preset--color--ink-soft, #3a3a3c); }
.recapdb-member-recent__date { font-size: 12.5px; color: var(--wp--preset--color--muted); }

/* ============================================================
   PROFILE additions: badges card, share card, hero socials
   ============================================================ */
.recapdb-profile__badges {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 12px;
}
.recapdb-profile__badges li {
	display: flex;
	gap: 12px;
	align-items: center;
	padding: 12px 14px;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 12px;
	background: var(--wp--preset--color--paper);
}
.recapdb-profile__badge-emoji {
	font-size: 22px;
	line-height: 1;
	width: 32px;
	text-align: center;
	flex: 0 0 auto;
}
.recapdb-profile__badge-meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.recapdb-profile__badge-name {
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}
.recapdb-profile__badge-desc {
	font-size: 12.5px;
	color: var(--wp--preset--color--muted);
	line-height: 1.35;
}

.recapdb-profile__share-copy {
	font-size: 14px;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
	margin: 0 0 12px;
	line-height: 1.5;
}
.recapdb-profile__share-copy code {
	background: var(--wp--preset--color--tint);
	padding: 1px 6px;
	border-radius: 4px;
	font-size: 13px;
}
.recapdb-profile__share-row {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}
.recapdb-profile__share-input {
	flex: 1 1 220px;
	min-width: 0;
	padding: 9px 14px;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 10px;
	background: var(--wp--preset--color--paper);
	font-family: inherit;
	font-size: 13.5px;
	color: var(--wp--preset--color--ink);
}

.recapdb-profile__socials {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
}
.recapdb-profile__socials a {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 5px 12px;
	font-size: 13px;
	font-weight: 500;
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 999px;
	border-bottom-width: 1px !important;
	transition: background 140ms ease;
}
.recapdb-profile__socials a:hover { background: var(--wp--preset--color--tint); }

/* ============================================================
   ABOUT page — company-style trust layout
   ============================================================ */
.recapdb-about { display: flex; flex-direction: column; gap: 72px; }
.recapdb-about__hero {
	max-width: 720px;
	margin: 0 auto;
	text-align: center;
}
.recapdb-about__kicker {
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	margin: 0 0 18px;
}
.recapdb-about__title {
	font-size: clamp(2.5rem, 6vw, 4rem);
	font-weight: 700;
	letter-spacing: -0.032em;
	line-height: 1.04;
	margin: 0 0 24px;
	color: var(--wp--preset--color--ink);
}
.recapdb-about__lede {
	font-size: clamp(17px, 2vw, 19px);
	line-height: 1.55;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
	margin: 0;
	letter-spacing: -0.005em;
}

.recapdb-about__stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 16px;
	padding: 0;
	margin: 0;
}
.recapdb-about__stats > div {
	padding: 24px 28px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 14px;
	margin: 0;
}
.recapdb-about__stats dt {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	margin-bottom: 8px;
}
.recapdb-about__stats dd {
	margin: 0;
	font-size: 36px;
	font-weight: 600;
	letter-spacing: -0.028em;
	color: var(--wp--preset--color--ink);
	font-variant-numeric: tabular-nums;
}

.recapdb-about__pillars {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 20px;
}
.recapdb-about__pillar {
	padding: 28px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 16px;
}
.recapdb-about__pillar-icon {
	display: inline-block;
	font-size: 24px;
	margin-bottom: 14px;
}
.recapdb-about__pillar h2 {
	margin: 0 0 8px;
	font-size: 19px;
	font-weight: 600;
	letter-spacing: -0.012em;
	color: var(--wp--preset--color--ink);
}
.recapdb-about__pillar p {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
}

.recapdb-about__section { display: flex; flex-direction: column; gap: 24px; }
.recapdb-about__section > header { display: flex; flex-direction: column; gap: 4px; }
.recapdb-about__h {
	margin: 0;
	font-size: clamp(28px, 4vw, 36px);
	font-weight: 700;
	letter-spacing: -0.024em;
	line-height: 1.1;
	color: var(--wp--preset--color--ink);
	max-width: 720px;
}

.recapdb-about__steps {
	margin: 0;
	padding: 0 0 0 24px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	max-width: 760px;
}
.recapdb-about__steps li {
	font-size: 16px;
	line-height: 1.55;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
	padding-left: 4px;
}
.recapdb-about__steps strong { color: var(--wp--preset--color--ink); font-weight: 600; }

.recapdb-about__trust {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
.recapdb-about__trust > div {
	padding: 24px 28px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 14px;
}
.recapdb-about__trust h3 {
	margin: 0 0 12px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.recapdb-about__trust ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.recapdb-about__trust li {
	font-size: 15px;
	line-height: 1.5;
	color: var(--wp--preset--color--ink);
	padding-left: 22px;
	position: relative;
}
.recapdb-about__trust li::before {
	content: '·';
	position: absolute;
	left: 0;
	font-size: 22px;
	line-height: 1;
	color: var(--wp--preset--color--muted);
	font-weight: 700;
}

.recapdb-about__team {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 20px;
}
.recapdb-about__team li {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	padding: 18px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 14px;
}
.recapdb-about__team img,
.recapdb-about__team-placeholder {
	width: 56px;
	height: 56px;
	border-radius: 999px;
	object-fit: cover;
	flex: 0 0 auto;
	background: var(--wp--preset--color--ink);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	font-size: 22px;
}
.recapdb-about__team h3 { margin: 0 0 4px; font-size: 16px; font-weight: 600; }
.recapdb-about__team h3 a {
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	border-bottom: none !important;
}
.recapdb-about__team h3 a:hover { color: var(--wp--preset--color--accent) !important; }
.recapdb-about__team p { margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--wp--preset--color--muted); }

.recapdb-about__contact p { font-size: 16px; line-height: 1.55; color: var(--wp--preset--color--ink-soft, #3a3a3c); max-width: 720px; }
.recapdb-about__contact a {
	color: var(--wp--preset--color--accent) !important;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--accent) 30%, transparent);
}
.recapdb-about__cta-row { display: flex; gap: 12px; flex-wrap: wrap; }

@media (max-width: 720px) {
	.recapdb-about { gap: 56px; }
	.recapdb-about__trust { grid-template-columns: 1fr; }
}

/* ============================================================
   SKIP-TO-CONTENT link — hidden until keyboard-focused
   ============================================================ */
.recapdb-skip-link {
	position: absolute;
	left: 8px;
	top: -100px;
	z-index: 100000;
	background: var(--wp--preset--color--ink);
	color: #fff !important;
	font-size: 14px;
	font-weight: 600;
	padding: 10px 16px;
	border-radius: 8px;
	text-decoration: none !important;
	box-shadow: 0 4px 16px rgba(0,0,0,0.18);
	transition: top 140ms ease;
}
.recapdb-skip-link:focus,
.recapdb-skip-link:focus-visible {
	top: 8px;
	outline: 2px solid var(--wp--preset--color--accent, #d70015);
	outline-offset: 2px;
}

/* ============================================================
   CONTACT page grid
   ============================================================ */
.recapdb-contact__lede {
	font-size: 17px;
	line-height: 1.55;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
	margin: 0 0 24px;
}
.recapdb-contact__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 20px;
}
.recapdb-contact__grid article {
	padding: 22px 24px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 14px;
}
.recapdb-contact__grid h2 {
	margin: 0 0 8px;
	font-size: 17px;
	font-weight: 600;
	letter-spacing: -0.014em;
	color: var(--wp--preset--color--ink);
}
.recapdb-contact__grid p {
	margin: 0 0 10px;
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
}
.recapdb-contact__mail {
	font-weight: 500;
	color: var(--wp--preset--color--accent) !important;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--accent) 30%, transparent);
}

/* ============================================================
   READING progress bar + reading-meta chips
   ============================================================ */
.recapdb-reading-bar {
	position: fixed;
	top: 0; left: 0; right: 0;
	height: 3px;
	background: transparent;
	z-index: 9999;
	pointer-events: none;
}
.recapdb-reading-bar > span {
	display: block;
	height: 100%;
	background: var(--wp--preset--color--accent, #d70015);
	transform-origin: left center;
	transform: scaleX(0);
	transition: transform 60ms linear;
}
.recapdb-rmeta {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 12px 0 0;
	font-size: 13px;
	color: var(--wp--preset--color--muted);
	line-height: 1;
}
.recapdb-rmeta__item {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	color: var(--wp--preset--color--muted) !important;
	text-decoration: none !important;
	border-bottom: none !important;
	letter-spacing: -0.005em;
	transition: color 140ms ease;
}
a.recapdb-rmeta__item:hover { color: var(--wp--preset--color--ink) !important; }
.recapdb-rmeta__item svg { opacity: 0.7; }
.recapdb-rmeta__item--score { color: #007a3d; font-weight: 600; }

/* ============================================================
   COMMENT CTA — empty / member / has-comments states
   ============================================================ */
.recapdb-cta {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 14px;
	padding: 24px 28px;
	margin: 0 0 24px;
	display: flex;
	gap: 20px;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
}
.recapdb-cta__body { flex: 1 1 280px; min-width: 0; }
.recapdb-cta__h {
	margin: 0 0 6px;
	font-size: 18px;
	font-weight: 600;
	letter-spacing: -0.014em;
	color: var(--wp--preset--color--ink);
}
.recapdb-cta__p {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
}
.recapdb-cta--prompt { background: color-mix(in srgb, var(--wp--preset--color--accent) 4%, var(--wp--preset--color--surface)); }
.recapdb-cta--mini { padding: 14px 20px; }
.recapdb-cta--mini .recapdb-cta__p { font-size: 13.5px; color: var(--wp--preset--color--muted); }

/* ============================================================
   AUTHORS archive (/authors/)
   ============================================================ */
.recapdb-authors-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 18px;
}
.recapdb-authors-card {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	padding: 22px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 14px;
	color: var(--wp--preset--color--ink);
	transition: transform 140ms ease, border-color 140ms ease;
}
.recapdb-authors-card:hover {
	transform: translateY(-2px);
	border-color: var(--wp--preset--color--ink);
}
.recapdb-authors-card__avatar-link {
	flex: 0 0 auto;
	display: block;
	border-bottom: none !important;
}
.recapdb-authors-card__avatar {
	width: 72px;
	height: 72px;
	border-radius: 999px;
	object-fit: cover;
	display: block;
	background: var(--wp--preset--color--tint);
}
.recapdb-authors-card__body { min-width: 0; flex: 1; }
.recapdb-authors-card__name { margin: 0 0 4px; font-size: 17px; font-weight: 600; letter-spacing: -0.014em; }
.recapdb-authors-card__name a {
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	border-bottom: none !important;
}
.recapdb-authors-card__name a:hover { color: var(--wp--preset--color--accent) !important; }
.recapdb-authors-card__expertise {
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.recapdb-authors-card__bio { margin: 0 0 10px; font-size: 13.5px; line-height: 1.55; color: var(--wp--preset--color--ink-soft, #3a3a3c); }
.recapdb-authors-card__social {
	list-style: none;
	margin: 0 0 10px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 14px;
}
.recapdb-authors-card__social a {
	font-size: 12.5px;
	font-weight: 600;
	color: var(--wp--preset--color--muted) !important;
	text-decoration: none !important;
	border-bottom: none !important;
}
.recapdb-authors-card__social a:hover { color: var(--wp--preset--color--accent) !important; }
.recapdb-authors-card__profile {
	font-size: 13px;
	font-weight: 600;
	color: var(--wp--preset--color--accent) !important;
	text-decoration: none !important;
	border-bottom: none !important;
}
.recapdb-authors-card__profile:hover { text-decoration: underline !important; }

/* ============================================================
   SHOW POSTER (fallback chain on single-show.html)
   ============================================================ */
.recapdb-show-poster {
	max-width: 320px;
	width: 100%;
	height: auto;
	border-radius: 12px;
	background: var(--wp--preset--color--tint);
	display: block;
	box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
.recapdb-show-poster--placeholder {
	border-radius: 12px;
}

/* ============================================================
   LEGAL pages (privacy + terms)
   ============================================================ */
.recapdb-legal {
	font-size: 16px;
	line-height: 1.65;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
}
.recapdb-legal__meta {
	font-size: 13px;
	color: var(--wp--preset--color--muted);
	margin: 0 0 28px;
}
.recapdb-legal h2 {
	margin: 36px 0 12px;
	font-size: 20px;
	font-weight: 600;
	letter-spacing: -0.014em;
	color: var(--wp--preset--color--ink);
}
.recapdb-legal p { margin: 0 0 14px; }
.recapdb-legal ul { margin: 0 0 18px; padding-left: 22px; }
.recapdb-legal li { margin: 0 0 6px; }
.recapdb-legal a {
	color: var(--wp--preset--color--accent) !important;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--accent) 30%, transparent);
}

/* ---------- Header brand (site logo) ---------- */
.recapdb-brand .recapdb-brand__logo,
.recapdb-brand .wp-block-site-logo {
	margin: 0;
	display: flex;
	align-items: center;
	text-decoration: none !important;
	border-bottom: none !important;
}
.recapdb-brand .recapdb-brand__logo img,
.recapdb-brand .wp-block-site-logo img {
	width: 140px;
	height: auto;
	max-height: 40px;
	display: block;
	object-fit: contain;
}
@media (max-width: 781px) {
	.recapdb-brand .recapdb-brand__logo img,
	.recapdb-brand .wp-block-site-logo img { width: 112px; max-height: 32px; }
}

/* ---------- Trending Shows section wrapper (block-owned) ---------- */
.recapdb-section--trending-shows,
.recapdb-section--trending-week {
	display: block;
	margin: 0;
}
.recapdb-section--trending-shows > .recapdb-section-label,
.recapdb-section--trending-week > .recapdb-section-label {
	margin: 0 0 16px;
}

/* ---------- Keyboard focus rings on interactive controls ---------- */
.recapdb-engage__btn:focus-visible,
.recapdb-follow-btn:focus-visible,
.recapdb-share__btn:focus-visible,
.recapdb-nav__item:focus-visible,
.recapdb-back-link:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent, #d70015);
	outline-offset: 2px;
	border-radius: 4px;
}

/* ---------- Header navigation (curated, replaces wp:navigation) ---------- */
/* Header bar: logo on the left, everything else pushed right on desktop. */
.recapdb-headerbar { width: 100%; }
.recapdb-headerbar > .recapdb-nav { margin-left: auto; }

/* Mobile/tablet header: one clean row (logo, search, bell, avatar) with
   the category nav dropped onto a second, horizontally-scrolling row. */
@media (max-width: 781px) {
	.recapdb-headerbar { flex-wrap: wrap !important; gap: 12px 14px !important; }
	.recapdb-headerbar > .recapdb-brand { order: 1; flex: 0 0 auto; }
	.recapdb-headerbar > .recapdb-hsearch {
		order: 2;
		flex: 1 1 0;
		min-width: 0;
		margin-left: 0;
	}
	.recapdb-headerbar > .recapdb-hsearch .recapdb-hsearch__input {
		width: 100%;
		min-width: 0;
	}
	.recapdb-headerbar > .recapdb-acct-group,
	.recapdb-headerbar > .recapdb-acct {
		order: 3;
		flex: 0 0 auto;
	}
	.recapdb-headerbar > .recapdb-nav {
		order: 4;
		flex: 1 1 100%;
		margin-left: 0;
		overflow-x: auto;
		flex-wrap: nowrap;
		white-space: nowrap;
		scrollbar-width: none;
		-ms-overflow-style: none;
		gap: 18px;
		padding-bottom: 2px;
	}
	.recapdb-headerbar > .recapdb-nav::-webkit-scrollbar { display: none; }
	.recapdb-headerbar > .recapdb-nav .recapdb-nav__item { flex: 0 0 auto; }

	/* Tap the search and it expands to fill the row; the bell + avatar
	   step aside until focus leaves. */
	.recapdb-headerbar > .recapdb-hsearch:focus-within ~ .recapdb-acct-group,
	.recapdb-headerbar > .recapdb-hsearch:focus-within ~ .recapdb-acct {
		display: none;
	}
}

.recapdb-nav {
	display: flex;
	align-items: center;
	gap: 22px;
}
.recapdb-nav__item {
	font-size: 14.5px;
	font-weight: 500;
	color: var(--wp--preset--color--ink-soft, #3a3a3c) !important;
	text-decoration: none !important;
	border-bottom: none !important;
	letter-spacing: -0.005em;
	position: relative;
	padding: 6px 2px;
	transition: color 140ms ease;
}
.recapdb-nav__item:hover { color: var(--wp--preset--color--ink) !important; }
.recapdb-nav__item.is-active {
	color: var(--wp--preset--color--ink) !important;
	font-weight: 600;
}
.recapdb-nav__item.is-active::after {
	content: '';
	position: absolute;
	left: 2px; right: 2px; bottom: 0;
	height: 2px;
	background: var(--wp--preset--color--accent);
	border-radius: 2px;
}
@media (max-width: 781px) {
	.recapdb-nav { gap: 14px; }
	.recapdb-nav__item { font-size: 13.5px; }
}

/* ---------- Header search with autocomplete ---------- */
.recapdb-hsearch {
	position: relative;
	display: flex;
	align-items: center;
	background: var(--wp--preset--color--surface-2, #f5f5f7);
	border-radius: 999px;
	padding: 0 12px 0 30px;
	height: 34px;
	min-width: 220px;
	transition: background 140ms ease, box-shadow 140ms ease;
}
.recapdb-hsearch:focus-within {
	background: #fff;
	box-shadow: 0 0 0 1px var(--wp--preset--color--hairline), 0 4px 14px rgba(0,0,0,0.06);
}
.recapdb-hsearch__icon {
	position: absolute;
	left: 10px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--wp--preset--color--muted);
	pointer-events: none;
}
.recapdb-hsearch__input {
	flex: 1 1 auto;
	width: 100%;
	border: 0;
	background: transparent;
	font-size: 14px;
	color: var(--wp--preset--color--ink);
	outline: none;
	padding: 0;
	min-width: 0;
}
.recapdb-hsearch__input::placeholder { color: var(--wp--preset--color--muted); }
.recapdb-hsearch__panel {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	max-width: 360px;
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 8px 28px rgba(0,0,0,0.12), 0 0 0 1px var(--wp--preset--color--hairline);
	list-style: none;
	margin: 0;
	padding: 6px;
	z-index: 1000;
	overflow: hidden;
	max-height: 70vh;
	overflow-y: auto;
}
.recapdb-hsearch__panel li {
	margin: 0;
	padding: 0;
}
.recapdb-hsearch__panel li a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 10px;
	border-radius: 8px;
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	border-bottom: none !important;
}
.recapdb-hsearch__panel li a:hover,
.recapdb-hsearch__panel li.is-active a {
	background: var(--wp--preset--color--surface-2, #f5f5f7);
}
.recapdb-hsearch__panel img,
.recapdb-hsearch__noimg {
	width: 36px;
	height: 50px;
	object-fit: cover;
	border-radius: 5px;
	flex: 0 0 auto;
	background: var(--wp--preset--color--surface-2, #f5f5f7);
}
.recapdb-hsearch__rmeta {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.recapdb-hsearch__rtitle {
	font-size: 14px;
	font-weight: 600;
	line-height: 1.25;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.recapdb-hsearch__rkicker {
	font-size: 11.5px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	font-weight: 600;
}
.recapdb-hsearch__empty {
	padding: 12px;
	color: var(--wp--preset--color--muted);
	font-size: 14px;
	text-align: center;
}

/* ---------- Search filters (results page) ---------- */
.recapdb-sfilters {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: 12px;
}
.recapdb-sfilters__chip {
	display: inline-block;
	padding: 6px 14px;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--hairline);
	font-size: 13.5px;
	font-weight: 500;
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	border-bottom-width: 1px !important;
}
.recapdb-sfilters__chip.is-active {
	background: var(--wp--preset--color--ink);
	color: #fff !important;
	border-color: var(--wp--preset--color--ink);
}

/* ---------- Related shows (show single) ---------- */
.recapdb-related-shows {
	display: grid;
	/* auto-fill (not auto-fit) keeps empty tracks reserved so a single
	   card doesn't stretch to the full row width. */
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 18px;
}
.recapdb-related-shows__card {
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-width: 220px;
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	border-bottom: none !important;
	transition: transform 140ms ease;
}
.recapdb-related-shows__card:hover { transform: translateY(-2px); }
.recapdb-related-shows__card img,
.recapdb-related-shows__placeholder {
	width: 100%;
	aspect-ratio: 2 / 3;
	object-fit: cover;
	border-radius: 10px;
	background: linear-gradient(110deg, #eceff3 8%, #f5f7fa 18%, #eceff3 33%);
	background-size: 200% 100%;
	animation: recapdb-shimmer 1.6s linear infinite;
	box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}
.recapdb-related-shows__card img {
	animation: none;
	background: var(--wp--preset--color--surface-2, #f5f5f7);
}
.recapdb-related-shows__title {
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -0.01em;
}

/* ---------- Hot shows right now (homepage) ---------- */
.recapdb-trending-shows {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 18px;
}
.recapdb-trending-shows__card {
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-width: 220px;
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	border-bottom: none !important;
	transition: transform 140ms ease;
}
.recapdb-trending-shows__card:hover { transform: translateY(-2px); }
.recapdb-trending-shows__poster,
.recapdb-trending-shows__placeholder {
	width: 100%;
	aspect-ratio: 2 / 3;
	object-fit: cover;
	border-radius: 10px;
	background: linear-gradient(110deg, #eceff3 8%, #f5f7fa 18%, #eceff3 33%);
	background-size: 200% 100%;
	animation: recapdb-shimmer 1.6s linear infinite;
	box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}
.recapdb-trending-shows__poster {
	animation: none;
	background: var(--wp--preset--color--surface-2, #f5f5f7);
}

/* Skeleton shimmer for images-in-flight + placeholder posters. The
   keyframes are reused by RelatedShows + TrendingShows + show-info-card. */
@keyframes recapdb-shimmer {
	0%   { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}
img[loading="lazy"]:not([src]) {
	background: linear-gradient(110deg, #eceff3 8%, #f5f7fa 18%, #eceff3 33%);
	background-size: 200% 100%;
	animation: recapdb-shimmer 1.6s linear infinite;
}
.recapdb-trending-shows__title {
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -0.01em;
}
.recapdb-trending-shows__meta {
	font-size: 12.5px;
	color: var(--wp--preset--color--muted);
}

/* ---------- Taxonomy base index (/network/, /genre/, /topic/) ---------- */
.recapdb-tax-index {
	padding: clamp(40px, 6vw, 72px) clamp(20px, 4vw, 40px) 80px;
}
.recapdb-tax-index__inner { max-width: 1180px; margin: 0 auto; }
.recapdb-tax-index__head { margin-bottom: 32px; }
.recapdb-tax-index__head h1 {
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 700;
	letter-spacing: -0.024em;
	line-height: 1.08;
	margin: 6px 0 14px;
}
.recapdb-tax-index__lede {
	font-size: 17px;
	line-height: 1.55;
	color: var(--wp--preset--color--muted);
	max-width: 640px;
}
.recapdb-tax-index__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 10px;
}
.recapdb-tax-index__list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 16px;
	border-radius: 10px;
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid rgba(0,0,0,0.06);
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	border-bottom: 1px solid rgba(0,0,0,0.06) !important;
	transition: transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease;
}
.recapdb-tax-index__list a:hover {
	transform: translateY(-1px);
	border-color: rgba(0,0,0,0.14);
	box-shadow: 0 1px 6px rgba(0,0,0,0.05);
}
.recapdb-tax-index__list span { flex: 1; font-weight: 600; font-size: 15px; letter-spacing: -0.005em; }
.recapdb-tax-index__list svg {
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
	color: var(--wp--preset--color--accent);
}
.recapdb-tax-index__list em {
	font-style: normal;
	color: var(--wp--preset--color--muted);
	font-size: 12.5px;
	font-variant-numeric: tabular-nums;
}
.recapdb-tax-index--empty p { font-size: 17px; color: var(--wp--preset--color--muted); }

/* ---------- Browse by platform (homepage chip strip) ---------- */
.recapdb-section--platforms { display: flex; flex-direction: column; gap: 14px; }
.recapdb-platforms {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.recapdb-platforms__chip {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 9px 14px 9px 12px;
	border-radius: 999px;
	background: var(--wp--preset--color--surface-2, #f5f5f7);
	border: 1px solid rgba(0,0,0,0.06);
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	font-size: 13.5px;
	font-weight: 600;
	letter-spacing: -0.005em;
	transition: transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease;
	border-bottom: none !important;
}
.recapdb-platforms__chip::before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--rdb-platform-tone, #999);
	box-shadow: 0 0 0 2px rgba(255,255,255,0.6);
}
.recapdb-platforms__chip:hover {
	transform: translateY(-1px);
	border-color: var(--rdb-platform-tone, rgba(0,0,0,0.12));
	box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.recapdb-platforms__count {
	color: var(--wp--preset--color--muted);
	font-weight: 500;
	font-size: 12.5px;
}

/* ---------- Follow-show button ---------- */
.recapdb-follow-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 9px 16px;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--ink);
	background: var(--wp--preset--color--ink);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: -0.005em;
	cursor: pointer;
	transition: background 140ms ease, color 140ms ease, border-color 140ms ease, transform 80ms ease;
	text-decoration: none;
	line-height: 1;
}
.recapdb-follow-btn:hover { transform: translateY(-1px); }
.recapdb-follow-btn:active { transform: translateY(0); }
.recapdb-follow-btn.is-following {
	background: transparent;
	color: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--hairline);
}
.recapdb-follow-btn.is-following:hover {
	background: var(--wp--preset--color--surface-2, #f5f5f7);
}
.recapdb-follow-btn--guest {
	background: transparent;
	color: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--hairline);
}
.recapdb-follow-btn--inline {
	padding: 6px 12px;
	font-size: 13px;
	margin: 8px 0 0;
}

/* Profile → Following list */
.recapdb-profile__follows {
	list-style: none;
	padding: 0;
	margin: 16px 0 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.recapdb-profile__follow-row {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 0;
	border-bottom: 1px solid var(--wp--preset--color--hairline);
}
.recapdb-profile__follow-row:last-child { border-bottom: none; }
.recapdb-profile__follow-link {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 1 1 auto;
	min-width: 0;
	color: var(--wp--preset--color--ink) !important;
	text-decoration: none !important;
	border-bottom: none !important;
}
.recapdb-profile__follow-link img {
	width: 44px;
	height: 60px;
	object-fit: cover;
	border-radius: 6px;
	flex: 0 0 auto;
	background: var(--wp--preset--color--surface-2, #f5f5f7);
}
.recapdb-profile__follow-link span {
	font-size: 15.5px;
	font-weight: 600;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.recapdb-profile__hint {
	color: var(--wp--preset--color--muted);
	font-size: 13.5px;
	margin: 4px 0 0;
}

/* ---------- Profile prefs (notifications + digest toggles) ---------- */
.recapdb-profile__prefs {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.recapdb-prefs__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 14px 0;
	border-bottom: 1px solid var(--wp--preset--color--hairline);
}
.recapdb-prefs__row:last-of-type { border-bottom: none; }
.recapdb-prefs__copy {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.recapdb-prefs__label {
	display: block;
	font-size: 15px;
	font-weight: 500;
	color: var(--wp--preset--color--ink);
	line-height: 1.35;
}
.recapdb-prefs__sub {
	display: block;
	font-size: 13px;
	color: var(--wp--preset--color--muted);
	line-height: 1.4;
}

/* iOS-style switch — input is hidden, the second span is the track. */
.recapdb-switch {
	position: relative;
	display: inline-block;
	width: 44px;
	height: 26px;
	flex: 0 0 auto;
}
.recapdb-switch input {
	position: absolute;
	opacity: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	cursor: pointer;
	z-index: 1;
}
.recapdb-switch > span {
	position: absolute;
	inset: 0;
	background: #e8e8ed;
	border-radius: 999px;
	transition: background 160ms ease;
}
.recapdb-switch > span::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 20px;
	height: 20px;
	background: #fff;
	border-radius: 50%;
	box-shadow: 0 1px 2px rgba(0,0,0,0.15);
	transition: transform 160ms ease;
}
.recapdb-switch input:checked + span { background: #34c759; }
.recapdb-switch input:checked + span::after { transform: translateX(18px); }
.recapdb-switch input:focus-visible + span {
	box-shadow: 0 0 0 3px rgba(0,113,227,0.25);
}

/* ---------- Responsive ---------- */
@media (max-width: 781px) {
	.recapdb-show-card { grid-template-columns: 1fr; }
	.recapdb-show-card__poster { aspect-ratio: 16 / 10; max-width: 280px; }
	.recapdb-episode-nav { grid-template-columns: 1fr; }
	.recapdb-episode-nav__next { text-align: left; }
	.recapdb-author-card { grid-template-columns: 1fr; gap: 16px; }
	.recapdb-author-card__headshot { width: 96px; height: 96px; }
	.recapdb-author-card--member { grid-template-columns: 1fr; }
	.recapdb-featured { grid-template-columns: 1fr; }
	.recapdb-hsearch { min-width: 160px; }
	.recapdb-hsearch__input::placeholder { color: transparent; }
}

/* ---------- Global mobile defence: no horizontal scroll ---------- */
html, body { max-width: 100vw; overflow-x: hidden; }

/* WP query-loop "grid layout" auto-generates a wp-container-core-post-template-is-layout-*
   class with `--minimum-column-width: 350px`. On a 390px viewport that single
   minimum column pushes the layout wider than the viewport. Override the
   variable wherever it's set so the grid actually responds to width. */
@media (max-width: 900px) {
	[class*="wp-container-core-post-template-is-layout"],
	.wp-block-post-template.is-layout-grid {
		--minimum-column-width: 260px;
		grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)) !important;
	}
	.recapdb-trending-shows,
	.recapdb-related-shows {
		grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
	}
}

@media (max-width: 600px) {
	[class*="wp-container-core-post-template-is-layout"],
	.wp-block-post-template.is-layout-grid {
		--minimum-column-width: 100%;
		grid-template-columns: 1fr !important;
		gap: 18px !important;
	}
	.wp-block-query .wp-block-post-featured-image { aspect-ratio: 16 / 9; }
	.recapdb-trending-shows,
	.recapdb-related-shows {
		grid-template-columns: repeat(2, 1fr);
		gap: 14px;
	}
	.recapdb-trending-shows__card,
	.recapdb-related-shows__card { max-width: none; }
	.recapdb-platforms { gap: 8px; }
	.recapdb-platforms__chip { padding: 7px 12px 7px 10px; font-size: 13px; }

	/* Hero typography tightens */
	.recapdb-hero-h1 { font-size: clamp(2rem, 9vw, 2.6rem) !important; }

	/* Footer columns stack */
	.wp-block-columns.is-layout-flex { flex-direction: column !important; gap: 24px !important; }
	.wp-block-columns.is-layout-flex > .wp-block-column { flex: 1 1 100% !important; }

	/* Block-editor's `wp-block-query` doesn't always honour viewport width
	   on phones; force everything to fit. */
	main, .wp-block-group, .wp-block-query { max-width: 100% !important; }
	img, video { max-width: 100%; height: auto; }
}

/* ---------- Newsletter signup (footer) ---------- */
.recapdb-newsletter {
	max-width: 1180px;
	margin: 0 auto 48px;
	padding: 28px clamp(20px, 4vw, 36px);
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid var(--wp--preset--color--hairline, rgba(0,0,0,0.08));
	border-radius: 16px;
}
.recapdb-newsletter__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}
.recapdb-newsletter__head {
	margin: 0;
	font-size: 19px;
	font-weight: 700;
	letter-spacing: -0.018em;
	color: var(--wp--preset--color--ink);
}
.recapdb-newsletter__lede {
	margin: 4px 0 0;
	font-size: 14px;
	color: var(--wp--preset--color--muted);
	line-height: 1.5;
}
.recapdb-newsletter__form {
	display: flex;
	gap: 8px;
	flex: 1 1 320px;
	max-width: 420px;
}
.recapdb-newsletter__input {
	flex: 1 1 auto;
	padding: 11px 14px;
	border: 1px solid var(--wp--preset--color--hairline, #d2d2d7);
	border-radius: 10px;
	font-size: 14px;
	background: var(--wp--preset--color--paper, #fbfbfd);
}
.recapdb-newsletter__input:focus {
	outline: none;
	border-color: var(--wp--preset--color--ink);
	box-shadow: 0 0 0 3px rgba(0,0,0,0.06);
}
.recapdb-newsletter__btn {
	flex: 0 0 auto;
	padding: 11px 20px;
	border: 0;
	border-radius: 10px;
	background: var(--wp--preset--color--ink);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: transform 140ms ease, opacity 140ms ease;
}
.recapdb-newsletter__btn:hover { transform: translateY(-1px); }
.recapdb-newsletter__btn:disabled { opacity: 0.6; cursor: default; }
.recapdb-newsletter__btn:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent, #d70015);
	outline-offset: 2px;
}
.recapdb-newsletter__status {
	flex: 1 1 100%;
	margin: 12px 0 0;
	font-size: 13px;
	color: var(--wp--preset--color--muted);
	min-height: 18px;
}
.recapdb-newsletter__status.is-ok { color: #1a7f37; }
.recapdb-newsletter__status.is-error { color: var(--wp--preset--color--accent, #d70015); }
/* Honeypot — off-screen, never seen or tabbed to by a real visitor. */
.recapdb-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}
@media (max-width: 600px) {
	.recapdb-newsletter__form { max-width: none; }
}

/* ---------- Instagram-style mobile bottom nav ---------- */
.recapdb-bottomnav { display: none; }
@media (max-width: 781px) {
	.recapdb-bottomnav {
		display: flex;
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 900;
		background: color-mix(in srgb, var(--wp--preset--color--surface, #fff) 92%, transparent);
		-webkit-backdrop-filter: saturate(180%) blur(14px);
		backdrop-filter: saturate(180%) blur(14px);
		border-top: 1px solid var(--wp--preset--color--hairline, rgba(0,0,0,0.08));
		padding-bottom: env(safe-area-inset-bottom, 0);
	}
	.recapdb-bottomnav__item {
		flex: 1 1 0;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 3px;
		padding: 9px 0 8px;
		background: none;
		border: 0;
		cursor: pointer;
		color: var(--wp--preset--color--muted, #6e6e73);
		font-size: 10.5px;
		font-weight: 600;
		letter-spacing: 0.01em;
		text-decoration: none !important;
		border-bottom: none !important;
	}
	.recapdb-bottomnav__item.is-active { color: var(--wp--preset--color--accent, #d70015); }
	.recapdb-bottomnav__icon { width: 23px; height: 23px; }
	.recapdb-bottomnav__item:focus-visible {
		outline: 2px solid var(--wp--preset--color--accent, #d70015);
		outline-offset: -3px;
	}
	/* Keep page content + the fixed extension-free area clear of the bar. */
	body { padding-bottom: 60px; }
}

/* ---------- Show archive filter chips ---------- */
.recapdb-showfilters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 6px;
}
.recapdb-showfilters__chip {
	display: inline-flex;
	align-items: center;
	padding: 7px 15px;
	border-radius: 999px;
	background: var(--wp--preset--color--surface-2, #f5f5f7);
	border: 1px solid transparent;
	color: var(--wp--preset--color--ink-soft, #3a3a3c) !important;
	font-size: 13.5px;
	font-weight: 600;
	text-decoration: none !important;
	border-bottom: none !important;
	transition: background 140ms ease, color 140ms ease;
}
.recapdb-showfilters__chip:hover { background: var(--wp--preset--color--tint, #ececf0); }
.recapdb-showfilters__chip.is-active {
	background: var(--wp--preset--color--ink);
	color: #fff !important;
}

/* ---------- Back to top ---------- */
.recapdb-totop {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 850;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--wp--preset--color--hairline, rgba(0,0,0,0.1));
	background: color-mix(in srgb, var(--wp--preset--color--surface, #fff) 92%, transparent);
	-webkit-backdrop-filter: saturate(180%) blur(12px);
	backdrop-filter: saturate(180%) blur(12px);
	color: var(--wp--preset--color--ink);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 4px 16px rgba(0,0,0,0.12);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 180ms ease, transform 180ms ease, visibility 180ms;
}
.recapdb-totop.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.recapdb-totop:hover { border-color: var(--wp--preset--color--ink); }
.recapdb-totop:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent, #d70015);
	outline-offset: 2px;
}
@media (max-width: 781px) {
	/* Lift above the fixed bottom nav. */
	.recapdb-totop { bottom: 72px; }
}

/* ---------- Editorial standards list (team page) ---------- */
.recapdb-standards {
	list-style: none;
	margin: 16px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.recapdb-standards li {
	position: relative;
	padding: 14px 16px 14px 18px;
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid var(--wp--preset--color--hairline, rgba(0,0,0,0.08));
	border-radius: 10px;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--wp--preset--color--ink-soft, #3a3a3c);
}
.recapdb-standards li strong { color: var(--wp--preset--color--ink); }

/* Community members never author recaps, so the staff-only
   "Recent recaps" section is hidden on their /u/ profile. */
.recapdb-community-profile .recapdb-author-recaps { display: none; }

/* ============================================================
   Spoiler Weather — the signature element
   ============================================================ */
.recapdb-weather {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 14px 0 0;
	padding: 11px 15px;
	border-radius: 12px;
	background: #f1f1f3;
}
.recapdb-weather__icon { font-size: 25px; line-height: 1; flex: 0 0 auto; }
.recapdb-weather__text { display: flex; flex-direction: column; gap: 1px; }
.recapdb-weather__label { font-size: 14px; font-weight: 700; letter-spacing: -0.01em; }
.recapdb-weather__blurb { font-size: 13px; color: var(--wp--preset--color--muted, #6e6e73); }
.recapdb-weather--cold  { background: #e8f2fc; }
.recapdb-weather--cold  .recapdb-weather__label { color: #1f6bb8; }
.recapdb-weather--mild  { background: #fdf3da; }
.recapdb-weather--mild  .recapdb-weather__label { color: #9a6a12; }
.recapdb-weather--heavy { background: #ecebf7; }
.recapdb-weather--heavy .recapdb-weather__label { color: #4b3fa0; }
.recapdb-weather--lava  { background: #fde8e6; }
.recapdb-weather--lava  .recapdb-weather__label { color: #c43d2e; }

/* Compact chip for listing cards */
.recapdb-weather-chip {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 2px 9px;
	border-radius: 999px;
	font-size: 11.5px;
	font-weight: 600;
	line-height: 1.75;
	background: #f0f0f2;
	color: #3a3a3c;
}
.recapdb-weather-chip__icon { font-size: 12px; }
.recapdb-weather-chip--cold  { background: #e8f2fc; color: #1f6bb8; }
.recapdb-weather-chip--mild  { background: #fdf3da; color: #9a6a12; }
.recapdb-weather-chip--heavy { background: #ecebf7; color: #4b3fa0; }
.recapdb-weather-chip--lava  { background: #fde8e6; color: #c43d2e; }
