/**
 * Page design system for classic-editor pages (route A, decided
 * 2026-10-15): page bodies are HTML in the classic editor, styled
 * here. Warm Lab tokens: paper var(--fr-paper), ink var(--fr-ink), tea var(--fr-accent),
 * deep tea var(--fr-accent-deep), rabbit orange var(--fr-warm), hairline var(--fr-line),
 * muted var(--fr-muted). Serif headings come from fr-fonts.css.
 *
 * All rules are scoped under .fr-page so posts and other content
 * are untouched.
 */

/* Hide the theme's own page title when a page uses this system
   (the HTML provides its own H1). */
body.page:has(.fr-page) .page-header {
	display: none;
}

.fr-page {
	font-size: 17px;
	line-height: 1.8;
	color: var(--fr-ink);
	padding: 12px 0 72px;
}

.fr-page h1 {
	font-size: 40px;
	line-height: 1.3;
	font-weight: 700;
	margin: 24px 0 20px;
}

.fr-page h2 {
	font-size: 28px;
	line-height: 1.35;
	font-weight: 700;
	margin: 0 0 14px;
}

.fr-page p {
	margin: 0 0 16px;
}

.fr-page a {
	color: var(--fr-accent);
}

.frp-lead {
	font-size: 19px;
	line-height: 1.75;
	color: var(--fr-ink-soft);
	max-width: 46em;
}

.frp-section {
	margin-top: 64px;
}

.frp-sec-intro {
	color: var(--fr-ink-soft);
	max-width: 44em;
}

/* --- Stat strip --- */
.frp-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	margin: 40px 0 8px;
	padding: 26px 0;
	border-top: 1px solid var(--fr-line);
	border-bottom: 1px solid var(--fr-line);
}

.frp-stat-num {
	font-size: 32px;
	font-weight: 700;
	line-height: 1.1;
	color: var(--fr-accent-deep);
}

.frp-stat-num small {
	font-size: 16px;
	font-weight: 500;
	color: var(--fr-muted);
	margin-left: 4px;
}

.frp-stat-label {
	font-size: 13.5px;
	color: var(--fr-muted);
	margin-top: 6px;
	line-height: 1.5;
}

/* --- Cards (IP evidence, triage) --- */
.frp-cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-top: 26px;
}

.frp-cards-3 {
	grid-template-columns: repeat(3, 1fr);
}

.frp-cards-4 {
	grid-template-columns: repeat(4, 1fr);
}

.frp-card {
	background: var(--fr-paper-2);
	border: 1px solid var(--fr-line);
	border-radius: 16px;
	padding: 26px 26px 22px;
}

.frp-card-top {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 10px;
}

.frp-card-name {
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
}

.frp-badge {
	flex: none;
	font-size: 12px;
	font-weight: 600;
	color: var(--fr-accent-deep);
	background: var(--fr-accent-soft);
	border-radius: 999px;
	padding: 3px 10px;
	line-height: 1.5;
}

.frp-card h3 {
	font-size: 17px;
	font-weight: 700;
	line-height: 1.45;
	margin: 0 0 8px;
}

.frp-card p {
	font-size: 15.5px;
	line-height: 1.7;
	color: var(--fr-ink-soft);
	margin: 0 0 12px;
}

.frp-card-meta {
	font-size: 13px;
	color: var(--fr-muted);
	border-top: 1px dashed var(--fr-line);
	padding-top: 12px;
	margin-bottom: 12px;
	line-height: 1.6;
}

.frp-card-link {
	font-size: 15px;
	font-weight: 600;
	color: var(--fr-accent);
	text-decoration: none;
}

.frp-card-link:hover {
	color: var(--fr-accent-deep);
	text-decoration: underline;
}

/* --- Rules --- */
.frp-rules {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px 24px;
	margin-top: 28px;
}

.frp-rule {
	border-top: 2px solid var(--fr-warm);
	padding-top: 14px;
}

.frp-rule-no {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	color: var(--fr-warm);
	margin-bottom: 8px;
}

.frp-rule h3 {
	font-size: 16.5px;
	font-weight: 700;
	margin: 0 0 6px;
}

.frp-rule p {
	font-size: 14.5px;
	line-height: 1.65;
	color: var(--fr-ink-soft);
	margin: 0;
}

/* --- Triage cards --- */
.frp-triage-icon {
	font-size: 22px;
	margin-bottom: 10px;
}

/* --- Newsletter band --- */
.frp-newsletter {
	margin-top: 72px;
	background: var(--fr-accent-deep);
	border-radius: 20px;
	padding: 44px 48px;
	color: var(--fr-paper-dim);
}

.frp-newsletter h2 {
	color: var(--fr-white);
	margin-bottom: 10px;
}

.frp-newsletter p {
	color: var(--fr-accent-line);
	font-size: 15.5px;
	max-width: 40em;
}

.frp-form {
	display: flex;
	gap: 12px;
	margin: 22px 0 12px;
	max-width: 520px;
}

.frp-form input[type="email"] {
	flex: 1;
	min-width: 0;
	border: none;
	border-radius: 10px;
	padding: 12px 16px;
	font-size: 15px;
	background: var(--fr-white);
	color: var(--fr-ink);
}

.frp-form button {
	flex: none;
	border: none;
	border-radius: 10px;
	padding: 12px 24px;
	font-size: 15px;
	font-weight: 600;
	background: var(--fr-warm);
	color: var(--fr-white);
	cursor: not-allowed;
	opacity: .85;
}

.frp-form-note {
	font-size: 13px;
	color: var(--fr-accent-mid);
	margin: 0;
}

/* --- Kit newsletter form embed --- */
.frp-newsletter .fr-kit-form {
	margin: 22px 0 12px;
	max-width: 520px;
}

/* --- Embedded contact form (WPForms) --- */
.fr-page .wpforms-container {
	max-width: 640px;
	margin: 10px 0 0;
}

/* --- Buttons in body copy --- */
.frp-btn {
	display: inline-block;
	background: var(--fr-warm);
	color: var(--fr-white) !important;
	font-weight: 600;
	font-size: 15.5px;
	border-radius: 10px;
	padding: 12px 24px;
	text-decoration: none !important;
}

.frp-btn:hover {
	background: var(--fr-warm-deep);
}

/* --- Hero (homepage) --- */
.frp-hero {
	padding: 36px 0 8px;
}

.frp-kicker {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .08em;
	color: var(--fr-accent-deep);
	background: var(--fr-accent-soft);
	border-radius: 999px;
	padding: 5px 14px;
	margin: 0 0 22px;
}

.frp-kicker .frp-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--fr-warm);
	flex: none;
}

.frp-hero h1 {
	font-size: 46px;
	line-height: 1.25;
	margin: 0 0 18px;
	max-width: 20em;
}

.frp-hero-ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 26px 0 20px;
}

.frp-btn-ghost {
	background: transparent;
	color: var(--fr-accent) !important;
	border: 1.5px solid var(--fr-accent);
}

.frp-btn-ghost:hover {
	background: var(--fr-accent-soft);
}

.frp-trust {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 28px;
	font-size: 14px;
	font-weight: 600;
	color: var(--fr-muted);
}

/* --- Section head with side link --- */
.frp-sec-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
}

.frp-sec-head a {
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

/* --- Pillar share line --- */
.frp-pillar-share {
	font-size: 13px;
	font-weight: 700;
	color: var(--fr-warm);
}

/* --- Post cards ([fr_posts]) --- */
.frp-postgrid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-top: 26px;
}

.frp-postgrid-featured {
	grid-template-columns: 1fr;
	margin-top: 36px;
}

.frp-postcard {
	background: var(--fr-paper-2);
	border: 1px solid var(--fr-line);
	border-radius: 16px;
	padding: 22px 24px;
}

.frp-postcard h3 {
	font-size: 18.5px;
	font-weight: 700;
	line-height: 1.45;
	margin: 0 0 8px;
}

.frp-postcard h3 a {
	color: var(--fr-ink);
	text-decoration: none;
}

.frp-postcard h3 a:hover {
	color: var(--fr-accent);
}

.frp-postcard p {
	font-size: 15px;
	line-height: 1.7;
	color: var(--fr-ink-soft);
	margin: 0;
}

.frp-postcard-featured {
	padding: 30px 32px;
}

.frp-postcard-featured h3 {
	font-size: 24px;
}

.frp-post-meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 12.5px;
	color: var(--fr-muted);
	margin-bottom: 12px;
}

.frp-tested {
	background: var(--fr-warm);
	color: var(--fr-white);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .05em;
	border-radius: 999px;
	padding: 2px 9px;
}

/* --- IP chips (about teaser) --- */
.frp-ips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 20px 0 22px;
}

.frp-ip {
	border: 1px solid var(--fr-line);
	background: var(--fr-paper-2);
	border-radius: 999px;
	padding: 6px 16px;
	font-size: 14px;
	font-weight: 600;
}

.frp-ip i {
	font-style: normal;
	color: var(--fr-warm);
	margin-right: 8px;
}

@media (max-width: 767px) {
	.fr-page h1 {
		font-size: 31px;
	}

	.frp-hero h1 {
		font-size: 33px;
	}

	.frp-postgrid {
		grid-template-columns: 1fr;
	}

	.frp-stats {
		grid-template-columns: 1fr 1fr;
	}

	.frp-cards,
	.frp-cards-3,
	.frp-cards-4,
	.frp-rules {
		grid-template-columns: 1fr;
	}

	.frp-newsletter {
		padding: 32px 24px;
	}

	.frp-form {
		flex-direction: column;
	}
}

/* ============================================================
   Article components (step 7). Post bodies are classic-editor
   HTML wrapped in .fr-article — same Warm Lab tokens as .fr-page.
   ============================================================ */

/* Hide the theme's own post title when a post uses this system
   (the HTML provides its own H1). */
body.single-post:has(.fr-article) .page-header {
	display: none;
}

.fr-article {
	font-size: 17px;
	line-height: 1.85;
	color: var(--fr-ink);
	padding: 12px 0 72px;
	max-width: 46em;
}

.fr-article h1 {
	font-size: 38px;
	line-height: 1.3;
	font-weight: 700;
	margin: 24px 0 16px;
}

.fr-article h2 {
	font-size: 26px;
	line-height: 1.4;
	font-weight: 700;
	margin: 52px 0 14px;
}

.fr-article p {
	margin: 0 0 16px;
}

.fr-article a {
	color: var(--fr-accent);
}

.fr-article ul,
.fr-article ol {
	margin: 0 0 16px;
	padding-left: 1.4em;
}

.fr-article li {
	margin-bottom: 6px;
}

/* --- Meta row + TESTED badge --- */
.fra-meta {
	color: var(--fr-muted);
	font-size: 14px;
	margin-bottom: 18px;
}

.fra-badge {
	display: inline-block;
	background: var(--fr-warm);
	color: #FFF;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
	padding: 3px 10px;
	border-radius: 999px;
	margin-bottom: 14px;
}

/* --- Evidence bar --- */
.fra-evidence {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	border-top: 1px solid var(--fr-line);
	border-bottom: 1px solid var(--fr-line);
	padding: 16px 0;
	margin: 22px 0 30px;
}

.fra-evidence dt {
	font-size: 12px;
	letter-spacing: .14em;
	color: var(--fr-muted);
	margin-bottom: 4px;
}

.fra-evidence dd {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.55;
}

/* --- Answer-first block --- */
.fra-answer {
	background: var(--fr-accent-softer);
	border-left: 3px solid var(--fr-accent);
	padding: 18px 22px;
	margin: 0 0 34px;
	font-size: 17.5px;
	line-height: 1.75;
}

.fra-answer p:last-child {
	margin-bottom: 0;
}

/* --- Figures + tables --- */
.fr-article figure {
	margin: 26px 0;
}

.fr-article figure img {
	max-width: 100%;
	height: auto;
	border-radius: 10px;
}

.fr-article figcaption {
	color: var(--fr-muted);
	font-size: 14px;
	margin-top: 8px;
}

.fr-article table {
	width: 100%;
	border-collapse: collapse;
	margin: 22px 0 30px;
	font-size: 15.5px;
	line-height: 1.6;
}

.fr-article th {
	text-align: left;
	background: var(--fr-paper-deep);
	padding: 10px 12px;
	border-bottom: 2px solid var(--fr-line);
}

.fr-article td {
	padding: 10px 12px;
	border-bottom: 1px solid var(--fr-line);
	vertical-align: top;
}

/* --- Verdict box --- */
.fra-verdict {
	border: 1.5px solid var(--fr-accent-deep);
	border-radius: 12px;
	padding: 22px 26px;
	margin: 40px 0;
	background: var(--fr-paper-3);
}

.fra-verdict-label {
	display: inline-block;
	background: var(--fr-accent-deep);
	color: #FFF;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	padding: 3px 10px;
	border-radius: 4px;
	margin-bottom: 12px;
}

.fra-verdict p:last-child {
	margin-bottom: 0;
}

/* --- Dual outbound blocks --- */
.fra-outbound {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
	margin: 44px 0;
}

.fra-out-card {
	border: 1px solid var(--fr-line);
	border-radius: 12px;
	padding: 22px;
	background: #FFF;
}

.fra-out-card h3 {
	font-size: 19px;
	margin: 0 0 8px;
}

.fra-out-card p {
	font-size: 15.5px;
	color: var(--fr-ink-soft);
}

.fra-out-card a {
	font-weight: 700;
	text-decoration: none;
}

.fra-out-card a:hover {
	text-decoration: underline;
}

/* --- FAQ --- */
.fra-faq {
	margin-top: 8px;
}

.fra-faq-item {
	border-top: 1px solid var(--fr-line);
	padding: 16px 0 4px;
}

.fra-faq-item h3 {
	font-size: 18px;
	margin: 0 0 8px;
}

/* --- Newsletter band inside articles --- */
.fr-article .frp-newsletter {
	margin-top: 48px;
}

@media (max-width: 720px) {
	.fra-evidence {
		grid-template-columns: 1fr 1fr;
	}

	.fra-outbound {
		grid-template-columns: 1fr;
	}

	.fr-article h1 {
		font-size: 31px;
	}
}

/* Newsletter band inside articles: no section top margin on its H2. */
.fr-article .frp-newsletter h2 {
	margin-top: 0;
}

/* ============================================================
   Phase 1 (v0.8.0): fixed pages rebuilt to design B —
   dark first screen + warm-white reading body + coral band.
   Markup root: .fr-page.frpg (classic-editor HTML, route A).
   Colours resolve through the B tokens scoped to .fr-page in
   fr-tokens.css. Legacy .frp-* components above stay for
   rollback; the rebuilt pages no longer use them.
   ============================================================ */

/* Shell takeover (same pattern as .fr-home): drop the boxed
   container and break out to full width. The error404 selector
   covers the plugin 404 template (P19), which renders inside
   the theme's centred .site-main like the archive template. */
body.page:has(.frpg) .page-content {
	padding: 0;
	margin: 0;
	max-width: none;
}

body.error404 main.site-main {
	max-width: none;
	width: 100%;
	margin: 0;
	padding: 0;
}

body:has(.frpg) {
	overflow-x: clip;
}

.frpg {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	padding: 0;
	background: var(--fr-reading-bg);
	color: var(--fr-reading-text);
	font-size: 16.5px;
	line-height: 1.75;
}

.frpg *,
.frpg *::before,
.frpg *::after {
	box-sizing: border-box;
}

.frpg h1,
.frpg h2,
.frpg h3 {
	line-height: 1.3;
	font-weight: 700;
	margin: 0;
}

.frpg p {
	margin: 0;
}

.frpg a {
	color: var(--fr-accent);
	text-decoration: none;
}

.frpg a:focus-visible,
.frpg button:focus-visible,
.frpg input:focus-visible {
	outline: 2px solid var(--fr-accent);
	outline-offset: 3px;
}

.frpg-inner {
	max-width: 1280px;
	margin: 0 auto;
	padding-left: 80px;
	padding-right: 80px;
}

.frpg-eyebrow {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--fr-accent);
	margin-bottom: 16px;
}

/* --- Dark first screen --- */
.frpg-hero {
	background: var(--fr-bg);
	color: var(--fr-text);
	padding: 84px 0 72px;
}

.frpg-hero h1 {
	font-size: clamp(34px, 4.6vw, 58px);
	line-height: 1.28;
	max-width: 20em;
}

.frpg-hero-slim h1 {
	font-size: clamp(32px, 4vw, 48px);
}

.frpg-lead {
	color: var(--fr-muted);
	font-size: 19px;
	line-height: 1.75;
	max-width: 40em;
	margin-top: 20px;
}

.frpg-hero-logo {
	width: 72px;
	height: 72px;
	margin-bottom: 26px;
	background: url("fr-logo.svg") left center / contain no-repeat;
}

/* --- Warm-white body --- */
.frpg-body {
	background: var(--fr-reading-bg);
	color: var(--fr-reading-text);
	padding: 72px 0 84px;
}

.frpg-body h2 {
	font-size: clamp(26px, 3vw, 34px);
	margin-bottom: 14px;
}

.frpg-sec {
	margin-top: 64px;
}

.frpg-sec:first-child {
	margin-top: 0;
}

.frpg-intro {
	color: var(--fr-reading-muted);
	max-width: 44em;
}

.frpg-body a {
	color: #B4552D;
}

.frpg-body a:hover {
	text-decoration: underline;
}

/* --- Reading paths (P03) --- */
.frpg-path {
	border-top: 1px solid var(--fr-reading-border);
	padding: 30px 0 8px;
	margin-top: 30px;
}

.frpg-path-head {
	display: flex;
	align-items: baseline;
	gap: 18px;
	margin-bottom: 8px;
}

.frpg-path-num {
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .18em;
	color: #B4552D;
}

.frpg-path-head h3 {
	font-size: 23px;
}

.frpg-postrow {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 26px;
	align-items: center;
	padding: 16px 0;
	border-bottom: 1px solid var(--fr-reading-border);
}

.frpg-postrow:last-child {
	border-bottom: none;
}

.frpg-postrow img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 10px;
	display: block;
}

.frpg-postrow img.frpg-img-contain {
	object-fit: contain;
	background: #FFFFFF;
	border: 1px solid var(--fr-reading-border);
}

.frpg-postrow-type {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--fr-reading-muted);
	margin-bottom: 6px;
}

.frpg-postrow-title {
	font-size: 19px;
	font-weight: 700;
	line-height: 1.45;
}

.frpg-postrow-title a {
	color: var(--fr-reading-text);
}

.frpg-postrow-sub {
	font-size: 15px;
	color: var(--fr-reading-muted);
	margin-top: 4px;
}

/* --- Method strip (P03) --- */
.frpg-method {
	background: var(--fr-reading-callout);
	border-radius: 14px;
	padding: 34px 38px;
	margin-top: 56px;
}

.frpg-method p {
	font-size: 21px;
	font-weight: 700;
	line-height: 1.6;
}

.frpg-method small {
	display: block;
	margin-top: 10px;
	font-size: 14.5px;
	font-weight: 400;
	color: var(--fr-reading-muted);
}

/* --- IP rows (P04) --- */
.frpg-iprow {
	display: grid;
	grid-template-columns: 300px 1fr;
	gap: 30px;
	align-items: center;
	padding: 26px 0;
	border-bottom: 1px solid var(--fr-reading-border);
}

.frpg-iprow img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 10px;
	display: block;
}

.frpg-iprow-name {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .14em;
	margin-bottom: 6px;
}

.frpg-iprow h3 {
	font-size: 21px;
	margin-bottom: 8px;
}

.frpg-iprow p {
	font-size: 15.5px;
	color: var(--fr-reading-muted);
	margin-bottom: 10px;
}

.frpg-iprow-links {
	font-size: 15px;
	font-weight: 600;
}

.frpg-iprow-links a + a {
	margin-left: 20px;
}

.frpg-iprow-dark {
	background: var(--fr-surface);
	color: var(--fr-text);
	border-radius: 14px;
	padding: 34px 38px;
	margin-top: 26px;
}

.frpg-iprow-dark .frpg-iprow-name {
	color: var(--fr-accent);
}

.frpg-iprow-dark p {
	color: var(--fr-muted);
	font-size: 15.5px;
	margin-top: 6px;
}

/* --- Principles list (P04) --- */
.frpg-rules {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px 28px;
	margin-top: 30px;
}

.frpg-rule {
	border-top: 2px solid var(--fr-accent);
	padding-top: 14px;
}

.frpg-rule-no {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	color: #B4552D;
	margin-bottom: 8px;
}

.frpg-rule h3 {
	font-size: 16.5px;
	margin-bottom: 6px;
}

.frpg-rule p {
	font-size: 14.5px;
	line-height: 1.65;
	color: var(--fr-reading-muted);
}

/* --- Split layout (P05 form / promises, P06 form / rail) --- */
.frpg-split {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
	gap: 56px;
	align-items: start;
}

.frpg-form-title {
	font-size: 21px;
	margin-bottom: 14px;
}

.frpg-form-note {
	font-size: 14px;
	color: var(--fr-reading-muted);
	margin-top: 14px;
}

.frpg-promise {
	border-top: 1px solid var(--fr-reading-border);
	padding: 20px 0;
}

.frpg-promise:first-child {
	border-top: none;
	padding-top: 0;
}

.frpg-promise h3 {
	font-size: 17.5px;
	margin-bottom: 6px;
}

.frpg-promise p {
	font-size: 15px;
	color: var(--fr-reading-muted);
}

.frpg-rail-card {
	background: #FFFFFF;
	border: 1px solid var(--fr-reading-border);
	border-radius: 14px;
	padding: 26px 28px;
	margin-bottom: 20px;
}

.frpg-rail-card h3 {
	font-size: 18.5px;
	margin-bottom: 8px;
}

.frpg-rail-card p {
	font-size: 15px;
	color: var(--fr-reading-muted);
	margin-bottom: 12px;
}

.frpg-rail-card a {
	font-weight: 700;
	font-size: 15px;
}

/* WPForms inside the split main column keeps full column width. */
.frpg .wpforms-container {
	max-width: none;
	margin: 6px 0 0;
}

/* --- Privacy reading column (P07) --- */
.frpg-reading {
	max-width: 804px;
	margin: 0 auto;
	padding-left: 22px;
	padding-right: 22px;
}

.frpg-reading .frpg-sec h2 {
	font-size: 24px;
}

.frpg-reading p {
	margin-bottom: 14px;
	max-width: 46em;
}

/* --- Coral monthly band (shared) --- */
.frpg-band {
	background: var(--fr-accent);
	color: var(--fr-reading-text);
	padding: 68px 0;
}

.frpg-band .frpg-eyebrow {
	color: var(--fr-reading-text);
	opacity: .72;
}

.frpg-band h2 {
	font-size: clamp(26px, 3vw, 36px);
	margin-bottom: 12px;
}

.frpg-band-sub {
	font-size: 16.5px;
	max-width: 34em;
}

.frpg-band .fr-kit-form {
	margin: 26px 0 14px;
	max-width: 560px;
}

.frpg-band .formkit-form {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	max-width: none !important;
}

.frpg-band .formkit-input {
	background: #FFFFFF;
	color: var(--fr-reading-text);
	border: 1px solid rgba(36, 44, 40, .35) !important;
	border-radius: 3px !important;
	min-height: 50px;
	font-size: 16px;
}

.frpg-band .formkit-submit {
	background: var(--fr-bg) !important;
	color: var(--fr-text) !important;
	border-radius: 3px !important;
	min-height: 50px;
	font-weight: 700;
}

.frpg-band-note {
	font-size: 13.5px;
	opacity: .85;
}

.frpg-band-note a {
	color: var(--fr-reading-text);
	text-decoration: underline;
}

/* --- Buttons / links on dark --- */
.frpg-btn {
	display: inline-flex;
	align-items: center;
	min-height: 50px;
	padding: 12px 30px;
	background: var(--fr-accent);
	color: var(--fr-reading-text) !important;
	font-weight: 700;
	font-size: 16px;
	border-radius: 3px;
}

.frpg-btn:hover {
	filter: brightness(.95);
}

.frpg-link {
	color: var(--fr-text) !important;
	font-weight: 600;
	border-bottom: 1px solid var(--fr-accent);
	padding-bottom: 2px;
}

/* --- 404 (P19, plugin template) --- */
.frpg-404 {
	background: var(--fr-bg);
	color: var(--fr-text);
	padding: 72px 0 96px;
}

.frpg-404-num {
	font-size: clamp(110px, 20vw, 210px);
	font-weight: 800;
	line-height: 1;
	color: var(--fr-accent);
	letter-spacing: .02em;
}

.frpg-404 h1 {
	font-size: clamp(30px, 4vw, 44px);
	margin: 18px 0 14px;
}

.frpg-404 p {
	color: var(--fr-muted);
	font-size: 17.5px;
	max-width: 34em;
}

.frpg-404-ctas {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 28px;
	margin-top: 34px;
}

@media (max-width: 1023px) {
	.frpg-inner {
		padding-left: 22px;
		padding-right: 22px;
	}

	.frpg-hero {
		padding: 56px 0 48px;
	}

	.frpg-body {
		padding: 48px 0 56px;
	}

	.frpg-split {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.frpg-iprow {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.frpg-rules {
		grid-template-columns: 1fr;
	}

	.frpg-postrow {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.frpg-band {
		padding: 52px 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.frpg * {
		transition: none !important;
	}
}

/* Two-up text duo (P04 handoff section). */
.frpg-duo {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 30px;
}

@media (max-width: 1023px) {
	.frpg-duo {
		grid-template-columns: 1fr;
	}
}
