/* rfm-theme — main stylesheet (parent theme, v1.1.3, 2026-05-06)
   v1.1.3: blog post cards accept any image aspect ratio (portrait/landscape/square);
   v1.1.2: counter spans no longer all block (14/20 sits inline);
   v1.1.1 fix: header nav respects wrap horizontal padding; mobile wrap 22→24px;
               body overflow-x clip; founding callout mobile padding tightened.

   Mobile-first, legibility-first design system. Default brand identity is RFM;
   any child theme can override the entire color palette via its own theme.json
   without touching this file.

   How the color cascade works:
   - Each :root variable falls back through theme.json's auto-generated CSS
     custom properties (--wp--preset--color--*) to a hardcoded RFM hex.
   - Override theme.json's palette in a child theme → all :root variables
     instantly resolve to the child's values → entire site re-skins.
   - The hardcoded fallbacks here mean the parent theme renders correctly
     even if theme.json fails to load.

   What hasn't changed from v1.0.5:
   - All class names are identical. Existing imported pages render unchanged.
   - Mobile-first base, legibility bumps, sticky header, hamburger nav.
   - WCAG AA contrast on every body color.

   What's new in v1.1.0:
   - Color values are now overridable by child themes (theme.json palette swap).
   - Brand strings in template parts can be overridden via brand-config.php filter.
*/

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

:root {
	/* Surface */
	--bg:         var(--wp--preset--color--bg, #FAFAF7);
	--bg-soft:    var(--wp--preset--color--bg-soft, #F5F5F0);
	--card:       var(--wp--preset--color--card, #FFFFFF);
	--line:       var(--wp--preset--color--line, #E2E8F0);
	--line2:      var(--wp--preset--color--line-2, #CBD5E1);

	/* Ink (text) */
	--ink:        var(--wp--preset--color--ink, #0F172A);
	--ink2:       var(--wp--preset--color--ink-2, #334155);
	--ink3:       var(--wp--preset--color--ink-3, #64748B);
	--ink4:       var(--wp--preset--color--ink-4, #94A3B8);

	/* Brand (primary accent) */
	--green:      var(--wp--preset--color--green, #16A34A);
	--green-dark: var(--wp--preset--color--green-dark, #15803D);
	--green-soft: var(--wp--preset--color--green-soft, #F0FDF4);

	/* Scarcity accent */
	--amber:      var(--wp--preset--color--amber, #F59E0B);
	--amber-soft: var(--wp--preset--color--amber-soft, #FFFBEB);
	--amber-line: var(--wp--preset--color--amber-line, #FDE68A);
	--amber-ink:  var(--wp--preset--color--amber-ink, #92400E);
	--amber-ink2: var(--wp--preset--color--amber-ink-2, #78350F);

	/* Alert */
	--red:        var(--wp--preset--color--red, #DC2626);

	/* Geometry */
	--r:    10px;
	--r-lg: 16px;

	/* Elevation */
	--shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.04), 0 1px 3px rgba(15, 23, 42, 0.06);
	--shadow-md: 0 6px 12px rgba(15, 23, 42, 0.05), 0 12px 28px rgba(15, 23, 42, 0.08);
	--shadow-lg: 0 18px 40px -12px rgba(15, 23, 42, 0.18);
}

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	overflow-x: clip;  /* prevent rogue horizontal scroll on mobile */
	font-family: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	background: var(--bg);
	color: var(--ink);
	line-height: 1.65;
	font-size: 19px;                /* mobile default */
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

@media (min-width: 760px) { body { font-size: 18px; line-height: 1.65; } }
@media (min-width: 1024px) { body { font-size: 18px; } }

a { color: inherit; }
a:focus-visible { outline: 3px solid var(--green); outline-offset: 3px; border-radius: 4px; }
img { max-width: 100%; height: auto; display: block; }

::selection { background: var(--green); color: #fff; }

.rfm-wrap {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 24px;
}
@media (min-width: 760px) { .rfm-wrap { padding: 0 32px; } }
@media (min-width: 1024px) { .rfm-wrap { padding: 0 40px; } }

/* ─── Header — sticky, mobile hamburger via checkbox-hack (no JS) ──── */
.rfm-site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(250, 250, 247, 0.92);
	backdrop-filter: saturate(180%) blur(12px);
	-webkit-backdrop-filter: saturate(180%) blur(12px);
	border-bottom: 1px solid var(--line);
}

.admin-bar .rfm-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .rfm-site-header { top: 46px; } }

.rfm-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-top: 14px;
	padding-bottom: 14px;
	/* horizontal padding inherited from .rfm-wrap so header content lines up with body */
	flex-wrap: wrap;
}
@media (min-width: 1024px) { .rfm-nav { padding-top: 18px; padding-bottom: 18px; flex-wrap: nowrap; } }

.rfm-brand {
	font-weight: 800;
	font-size: 19px;
	letter-spacing: -0.02em;
	color: var(--ink);
	text-decoration: none;
	flex-shrink: 0;
}
.rfm-brand-mark { color: var(--green); margin-right: 4px; }

/* Hamburger toggle (mobile only) */
.rfm-nav-toggle-input { display: none; }
.rfm-nav-toggle {
	display: inline-flex;
	flex-direction: column;
	justify-content: space-around;
	width: 44px;
	height: 44px;
	padding: 11px 9px;
	cursor: pointer;
	background: transparent;
	border: none;
	border-radius: var(--r);
	transition: background .2s ease;
}
.rfm-nav-toggle:hover { background: var(--bg-soft); }
.rfm-nav-toggle-bar {
	display: block;
	width: 24px;
	height: 2.5px;
	background: var(--ink);
	border-radius: 2px;
	transition: transform .2s ease, opacity .2s ease;
}
@media (min-width: 1024px) { .rfm-nav-toggle { display: none; } }

.rfm-nav-menu {
	display: none;
	flex-direction: column;
	width: 100%;
	gap: 12px;
	padding: 8px 0 16px;
}
.rfm-nav-toggle-input:checked ~ .rfm-nav-menu { display: flex; }

@media (min-width: 1024px) {
	.rfm-nav-menu {
		display: flex;
		flex-direction: row;
		align-items: center;
		gap: 28px;
		width: auto;
		padding: 0;
	}
}

.rfm-nav-links {
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 17px;
	color: var(--ink);
	list-style: none;
	padding: 0;
	margin: 0;
}
@media (min-width: 1024px) {
	.rfm-nav-links {
		flex-direction: row;
		gap: 28px;
		font-size: 15px;
		color: var(--ink2);
	}
}
.rfm-nav-links a {
	text-decoration: none;
	font-weight: 500;
	padding: 12px 0;
	display: block;
	transition: color .15s ease;
}
.rfm-nav-links a:hover { color: var(--green-dark); }

.rfm-nav-cta {
	min-height: 48px;
	font-size: 15px;
	padding: 12px 22px;
	margin-top: 8px;
	width: 100%;
}
@media (min-width: 1024px) {
	.rfm-nav-cta {
		margin-top: 0;
		width: auto;
		padding: 12px 22px;
	}
}

.rfm-cohort-strip {
	background: var(--amber-soft);
	border-top: 1px solid var(--amber-line);
	padding: 10px 22px;
	text-align: center;
	font-size: 13px;
}

.rfm-cohort-pill {
	display: inline-flex; align-items: center; gap: 8px; padding: 4px 14px 4px 8px;
	background: transparent; border: none; color: var(--amber-ink);
	font-size: 13px; font-weight: 600; border-radius: 24px;
}
.rfm-cohort-pill strong { color: var(--amber-ink); font-weight: 800; }
.rfm-cohort-pill .rfm-dot {
	width: 8px; height: 8px; border-radius: 50%; background: var(--amber);
	animation: rfm-pulse 2.4s ease-in-out infinite;
}
@keyframes rfm-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }

/* ─── Hero ─────────────────────────────────────────────────────────── */
.rfm-hero {
	padding: 40px 0 56px;
	border-bottom: 1px solid var(--line);
	background: var(--bg);
}
@media (min-width: 760px) { .rfm-hero { padding: 56px 0 72px; } }
@media (min-width: 1024px) { .rfm-hero { padding: 64px 0 88px; } }

.rfm-hero h1 {
	font-size: clamp(36px, 7vw, 60px);
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.08;
	margin: 0 0 22px;
	max-width: 960px;
	color: var(--ink);
}

.rfm-hero-sub {
	font-size: clamp(19px, 2.4vw, 23px);
	color: var(--ink2);
	max-width: 760px;
	margin: 0 0 36px;
	line-height: 1.55;
	font-weight: 400;
}

.rfm-cta-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

.rfm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 14px 26px;
	border-radius: var(--r);
	font-weight: 700;
	font-size: 16px;
	text-decoration: none;
	border: 1.5px solid transparent;
	cursor: pointer;
	transition: transform .15s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
	letter-spacing: 0.005em;
	white-space: nowrap;
}
.rfm-btn:hover { transform: translateY(-1px); }

.rfm-btn-primary {
	background: var(--green);
	color: #fff;
	border-color: var(--green);
	box-shadow: var(--shadow-sm);
}
.rfm-btn-primary:hover {
	background: var(--green-dark);
	border-color: var(--green-dark);
	box-shadow: var(--shadow-md);
}
.rfm-btn-ghost {
	background: transparent;
	color: var(--ink);
	border: 1.5px solid var(--line2);
}
.rfm-btn-ghost:hover { border-color: var(--ink); background: var(--bg-soft); }

@media (max-width: 480px) {
	.rfm-cta-row { flex-direction: column; align-items: stretch; }
	.rfm-btn { width: 100%; }
}

/* ─── Section base ────────────────────────────────────────────────── */
.rfm-section {
	padding: 64px 0;
	border-bottom: 1px solid var(--line);
}
@media (min-width: 760px) { .rfm-section { padding: 80px 0; } }
@media (min-width: 1024px) { .rfm-section { padding: 96px 0; } }

.rfm-section.rfm-no-line { border-bottom: none; }
.rfm-section.rfm-soft { background: var(--bg-soft); }

.rfm-eyebrow {
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-weight: 700;
	color: var(--green);
	margin: 0 0 16px;
}

.rfm-section-title {
	font-size: clamp(28px, 4.5vw, 42px);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.18;
	margin: 0 0 20px;
	max-width: 800px;
	color: var(--ink);
}

.rfm-section-sub {
	font-size: clamp(17px, 2vw, 19px);
	color: var(--ink2);
	max-width: 720px;
	margin: 0 0 36px;
	line-height: 1.6;
}

/* ─── Pain section / answer-first body type ───────────────────────── */
.rfm-pain-body {
	max-width: 740px;
	font-size: clamp(18px, 2vw, 20px);
	color: var(--ink2);
	line-height: 1.7;
}
.rfm-pain-body p { margin: 0 0 22px; }
.rfm-pain-body p:last-child { margin-bottom: 0; }
.rfm-pain-body strong.rfm-kicker {
	color: var(--ink);
	font-weight: 700;
}
.rfm-pain-body a {
	color: var(--green);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1.5px;
	font-weight: 500;
}
.rfm-pain-body a:hover { color: var(--green-dark); }

/* ─── Product / board mock ────────────────────────────────────────── */
.rfm-product-grid { display: grid; grid-template-columns: 1fr; gap: 36px; align-items: start; }
@media (min-width: 880px) { .rfm-product-grid { grid-template-columns: 1.1fr .9fr; gap: 56px; } }

.rfm-product-body { max-width: 580px; }
.rfm-product-body p {
	font-size: clamp(17px, 1.8vw, 18px);
	color: var(--ink2);
	margin: 0 0 20px;
	line-height: 1.65;
}
.rfm-deep-link {
	display: inline-block;
	margin-top: 12px;
	padding: 12px 0;
	font-weight: 700;
	font-size: 16px;
	color: var(--green);
	text-decoration: none;
	border-bottom: 2px solid transparent;
	transition: border-color .2s ease, color .2s ease;
}
.rfm-deep-link:hover { border-bottom-color: var(--green); color: var(--green-dark); }

.rfm-board-mock {
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	padding: 22px;
	min-height: 320px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	box-shadow: var(--shadow-md);
}
.rfm-board-row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px;
	background: var(--bg-soft);
	border-radius: 10px;
}
.rfm-board-thumb {
	width: 44px;
	height: 44px;
	border-radius: 8px;
	background: linear-gradient(135deg, var(--green), var(--green-dark));
	flex-shrink: 0;
}
.rfm-board-text { flex: 1; display: flex; flex-direction: column; gap: 7px; }
.rfm-board-line { height: 10px; background: var(--line2); border-radius: 5px; }
.rfm-board-line.short { width: 60%; }
.rfm-board-line.med { width: 85%; }
.rfm-board-pill {
	font-size: 11px;
	font-weight: 700;
	color: var(--green);
	background: var(--green-soft);
	padding: 4px 10px;
	border-radius: 12px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.rfm-board-caption {
	font-size: 12px;
	color: var(--ink3);
	text-align: center;
	margin-top: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 600;
}

/* ─── Editable image slots (replace placeholders with real assets) ── */
.rfm-board-image {
	width: 100%;
	max-width: 480px;
	height: auto;
	display: block;
	margin: 0 auto;
	border-radius: var(--r-lg);
	box-shadow: var(--shadow-lg);
	background: var(--card);
	border: 1px solid var(--line);
}
@media (min-width: 880px) {
	.rfm-board-image {
		max-width: 100%;
	}
}

.rfm-lifestyle-image {
	width: 100%;
	max-width: 1100px;
	height: auto;
	display: block;
	margin: 44px auto 0;
	border-radius: var(--r-lg);
	box-shadow: var(--shadow-md);
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

/* WP-block-image instances inherit the same vibe by default */
.wp-block-image img {
	border-radius: var(--r);
	box-shadow: var(--shadow-sm);
}
.entry-content .wp-block-image {
	margin: 32px 0;
}

/* ─── Three columns / features ────────────────────────────────────── */
.rfm-three-col {
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px;
}
@media (min-width: 680px) { .rfm-three-col { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; } }

.rfm-feature {
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: var(--r);
	padding: 32px 28px;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.rfm-feature:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-md);
	border-color: var(--line2);
}
.rfm-feature h3 {
	font-size: 20px;
	font-weight: 700;
	margin: 0 0 12px;
	letter-spacing: -0.015em;
	color: var(--ink);
	line-height: 1.3;
}
.rfm-feature p {
	margin: 0;
	color: var(--ink2);
	font-size: 17px;
	line-height: 1.6;
}

/* ─── Blog post cards: featured image accepts any aspect ratio ───── */
/* Portrait, landscape, square, panoramic, all render naturally inside .rfm-feature.
   No forced aspect-ratio. Image fills width, height is auto. */
.rfm-feature img,
.rfm-feature .wp-block-post-featured-image img,
.rfm-feature .wp-block-image img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--r);
	margin: -28px -26px 16px;  /* extends to card edges, then 16px gap before title */
	object-fit: cover;
	max-height: 360px;  /* prevents extremely tall portraits from dominating; gracefully crops */
}
.rfm-feature .wp-block-post-featured-image {
	margin: 0;
}
.rfm-feature .wp-block-post-title {
	margin: 0 0 8px;
	font-size: 19px;
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.3;
}
.rfm-feature .wp-block-post-title a {
	color: var(--ink);
	text-decoration: none;
}
.rfm-feature .wp-block-post-title a:hover {
	color: var(--green-dark);
}
.rfm-feature .wp-block-post-excerpt {
	margin: 0 0 12px;
	color: var(--ink2);
	font-size: 16px;
	line-height: 1.55;
}
.rfm-feature .wp-block-post-excerpt__more-link {
	color: var(--green);
	font-weight: 600;
	text-decoration: none;
}
.rfm-feature .wp-block-post-date {
	color: var(--ink3);
	font-size: 13px;
	font-weight: 500;
	margin: 0;
}
.rfm-feature .wp-block-post-date time {
	color: inherit;
}

/* Pagination on archive/blog index */
.wp-block-query-pagination {
	margin-top: 36px;
	padding-top: 24px;
	border-top: 1px solid var(--line);
	display: flex;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}
.wp-block-query-pagination a {
	color: var(--ink2);
	font-weight: 600;
	text-decoration: none;
}
.wp-block-query-pagination a:hover { color: var(--green-dark); }
.wp-block-query-pagination-numbers .page-numbers.current {
	color: var(--green-dark);
	font-weight: 800;
}

/* ─── How it works — steps ────────────────────────────────────────── */
.rfm-steps {
	display: grid;
	grid-template-columns: 1fr;
	gap: 28px;
	counter-reset: rfmstep;
	margin-top: 12px;
}
@media (min-width: 760px) { .rfm-steps { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; } }

.rfm-step {
	padding: 36px 28px 28px;
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: var(--r);
	position: relative;
	transition: transform .2s ease, box-shadow .2s ease;
}
.rfm-step:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-md);
}
.rfm-step::before {
	counter-increment: rfmstep;
	content: counter(rfmstep);
	position: absolute;
	top: -18px;
	left: 24px;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--green);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 16px;
	box-shadow: 0 4px 8px rgba(22, 163, 74, 0.25);
}
.rfm-step h3 {
	font-size: 19px;
	font-weight: 700;
	margin: 8px 0 12px;
	letter-spacing: -0.01em;
	color: var(--ink);
	line-height: 1.3;
}
.rfm-step p {
	margin: 0;
	color: var(--ink2);
	font-size: 17px;
	line-height: 1.65;
}

.rfm-step-after,
.rfm-fit-after {
	display: inline-block;
	text-align: center;
	margin-top: 36px;
	padding: 14px 16px;
	font-weight: 700;
	font-size: 16px;
	color: var(--green);
	text-decoration: none;
	border-radius: var(--r);
	transition: background .2s ease, color .2s ease;
}
.rfm-step-after { display: block; }
.rfm-fit-after { display: block; }
.rfm-step-after:hover,
.rfm-fit-after:hover {
	background: var(--green-soft);
	color: var(--green-dark);
}

/* ─── Fit filter ──────────────────────────────────────────────────── */
.rfm-fit-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}
@media (min-width: 760px) { .rfm-fit-grid { grid-template-columns: 1fr 1fr; gap: 28px; } }

.rfm-fit-col {
	padding: 32px 28px;
	border: 1px solid var(--line);
	border-radius: var(--r);
	background: var(--card);
	box-shadow: var(--shadow-sm);
}
.rfm-fit-col.rfm-yes { border-top: 4px solid var(--green); }
.rfm-fit-col.rfm-no { border-top: 4px solid var(--ink4); }
.rfm-fit-col h3 {
	margin: 0 0 18px;
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.01em;
	color: var(--ink);
}
.rfm-fit-col ul { margin: 0; padding: 0; list-style: none; }
.rfm-fit-col li {
	position: relative;
	padding: 0 0 16px 26px;
	color: var(--ink2);
	font-size: 17px;
	line-height: 1.6;
}
.rfm-fit-col li:last-child { padding-bottom: 0; }
.rfm-fit-col.rfm-yes li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 11px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--green);
}
.rfm-fit-col.rfm-no li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 11px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--ink4);
}

/* ─── Pricing teaser ──────────────────────────────────────────────── */
.rfm-pricing {
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px;
	margin-bottom: 28px;
}
@media (min-width: 760px) { .rfm-pricing { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 22px; } }

.rfm-tier {
	padding: 32px 28px;
	border: 1px solid var(--line);
	border-radius: var(--r);
	background: var(--card);
	display: flex;
	flex-direction: column;
	box-shadow: var(--shadow-sm);
	transition: transform .2s ease, box-shadow .2s ease;
}
.rfm-tier:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }

.rfm-tier.rfm-featured {
	border-color: var(--green);
	border-width: 2px;
	position: relative;
	box-shadow: var(--shadow-md);
}
@media (min-width: 760px) {
	.rfm-tier.rfm-featured { transform: translateY(-4px); }
	.rfm-tier.rfm-featured:hover { transform: translateY(-6px); }
}
.rfm-tier.rfm-featured::before {
	content: "Most popular";
	position: absolute;
	top: -14px;
	left: 24px;
	background: var(--green);
	color: #fff;
	padding: 5px 12px;
	border-radius: 14px;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	box-shadow: 0 4px 8px rgba(22, 163, 74, 0.25);
}
.rfm-tier h3 {
	font-size: 22px;
	font-weight: 700;
	margin: 0 0 8px;
	color: var(--ink);
	letter-spacing: -0.01em;
}
.rfm-tier .rfm-price {
	font-size: 38px;
	font-weight: 800;
	letter-spacing: -0.02em;
	margin: 0 0 6px;
	color: var(--ink);
	line-height: 1.1;
}
.rfm-tier .rfm-price span {
	font-size: 16px;
	color: var(--ink3);
	font-weight: 500;
}
.rfm-tier .rfm-desc {
	font-size: 15px;
	color: var(--ink2);
	margin: 0 0 18px;
	line-height: 1.55;
}
.rfm-tier ul {
	margin: 0;
	padding-left: 22px;
	font-size: 16px;
	color: var(--ink2);
	flex: 1;
	line-height: 1.55;
}
.rfm-tier li { margin-bottom: 10px; }
.rfm-tier li::marker { color: var(--green); }

.rfm-pricing-foot {
	text-align: center;
	color: var(--ink3);
	font-size: 15px;
	margin: 28px 0 0;
	line-height: 1.6;
}
.rfm-pricing-foot a {
	color: var(--green);
	font-weight: 700;
	text-decoration: none;
	border-bottom: 2px solid transparent;
	transition: border-color .2s ease;
}
.rfm-pricing-foot a:hover { border-bottom-color: var(--green); }

/* ─── Founding member callout ─────────────────────────────────────── */
.rfm-founding {
	background: linear-gradient(180deg, var(--amber-soft), #FEF3C7);
	border: 1px solid var(--amber-line);
	border-radius: var(--r-lg);
	padding: 28px 24px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 28px;
	align-items: center;
	box-shadow: 0 8px 24px -8px rgba(245, 158, 11, 0.18);
}
@media (min-width: 760px) {
	.rfm-founding {
		padding: 44px 40px;
		grid-template-columns: 1.4fr .6fr;
		gap: 40px;
	}
}

.rfm-founding h3 {
	margin: 0 0 12px;
	font-size: clamp(22px, 3vw, 26px);
	font-weight: 800;
	color: var(--amber-ink);
	letter-spacing: -0.015em;
	line-height: 1.25;
}
.rfm-founding p {
	margin: 0 0 20px;
	color: var(--amber-ink2);
	font-size: 16px;
	max-width: 580px;
	line-height: 1.65;
}
.rfm-counter {
	font-size: clamp(48px, 8vw, 64px);
	font-weight: 800;
	color: var(--amber-ink);
	letter-spacing: -0.025em;
	line-height: 1;
	text-align: center;
}
/* Number spans stay INLINE at parent's big font so "14 / 20" sits on one line */
.rfm-counter > span[data-cohort-remaining],
.rfm-counter > span[data-cohort-total] {
	display: inline;
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
	letter-spacing: inherit;
	text-transform: none;
	margin: 0;
}
/* The label span ("spots remaining") is BLOCK + small */
.rfm-counter > span:not([data-cohort-remaining]):not([data-cohort-total]) {
	font-size: 13px;
	font-weight: 700;
	color: #A16207;
	display: block;
	margin-top: 8px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.rfm-founding-trust {
	font-size: 15px;
	color: var(--ink3);
	max-width: 720px;
	margin: 22px auto 0;
	text-align: center;
	line-height: 1.65;
}

/* ─── FAQ ─────────────────────────────────────────────────────────── */
.rfm-faq {
	max-width: 800px;
	margin: 8px auto 0;
}
.rfm-faq details {
	border-bottom: 1px solid var(--line);
	padding: 22px 0;
}
.rfm-faq details:first-of-type { border-top: 1px solid var(--line); }
.rfm-faq summary {
	font-weight: 700;
	font-size: clamp(18px, 2vw, 19px);
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 18px;
	padding: 4px 0;
	color: var(--ink);
	line-height: 1.4;
}
.rfm-faq summary::-webkit-details-marker { display: none; }
.rfm-faq summary::after {
	content: "+";
	font-weight: 300;
	font-size: 28px;
	color: var(--ink3);
	transition: transform .25s ease, color .25s ease;
	flex-shrink: 0;
	width: 28px;
	text-align: center;
}
.rfm-faq details[open] summary::after { transform: rotate(45deg); color: var(--green); }
.rfm-faq details p {
	color: var(--ink2);
	font-size: 17px;
	margin: 16px 0 0;
	line-height: 1.7;
	padding-right: 40px;
}
.rfm-faq summary:hover { color: var(--green-dark); }

/* ─── Closing CTA ─────────────────────────────────────────────────── */
.rfm-closing {
	padding: 64px 0 80px;
	text-align: center;
	border-bottom: 1px solid var(--line);
	background: var(--bg-soft);
}
@media (min-width: 760px) { .rfm-closing { padding: 96px 0; } }

.rfm-closing h2 {
	font-size: clamp(28px, 3.5vw, 38px);
	font-weight: 800;
	margin: 0 0 18px;
	letter-spacing: -0.02em;
	line-height: 1.2;
	color: var(--ink);
}
.rfm-closing p {
	color: var(--ink2);
	font-size: clamp(17px, 2vw, 19px);
	max-width: 600px;
	margin: 0 auto 32px;
	line-height: 1.6;
}
.rfm-closing .rfm-cta-row { justify-content: center; }

/* ─── Footer ──────────────────────────────────────────────────────── */
.rfm-site-footer,
.rfm-footer {
	padding: 56px 0 48px;
	font-size: 15px;
	color: var(--ink2);
	background: var(--bg);
	border-top: 1px solid var(--line);
}
@media (min-width: 760px) { .rfm-site-footer { padding: 72px 0 56px; } }

.rfm-foot-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	margin-bottom: 32px;
}
@media (min-width: 760px) {
	.rfm-foot-grid {
		grid-template-columns: 2fr 1fr 1.4fr;
		gap: 48px;
	}
}

.rfm-foot-brand .rfm-brand { font-size: 19px; margin: 0 0 12px; }
.rfm-foot-brand p {
	margin: 8px 0 0;
	line-height: 1.6;
	max-width: 380px;
	color: var(--ink2);
	font-size: 15px;
}

.rfm-foot-heading {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--ink3);
	margin: 0 0 14px;
}

.rfm-foot-col p {
	margin: 0 0 12px;
	line-height: 1.55;
	color: var(--ink2);
	font-size: 15px;
}
.rfm-foot-col p a { color: var(--green); text-decoration: none; font-weight: 600; }
.rfm-foot-col p a:hover { text-decoration: underline; }

.rfm-foot-nav {
	display: flex;
	flex-direction: column;
	gap: 2px;
	list-style: none;
	padding: 0;
	margin: 0;
}
.rfm-foot-nav.rfm-foot-nav-small { margin-top: 16px; flex-direction: row; gap: 18px; }
.rfm-foot-nav a {
	text-decoration: none;
	color: var(--ink2);
	padding: 6px 0;
	font-weight: 500;
	font-size: 15px;
	display: inline-block;
	transition: color .15s ease;
}
.rfm-foot-nav.rfm-foot-nav-small a { font-size: 14px; }
.rfm-foot-nav a:hover { color: var(--green-dark); }

.rfm-foot-kicker {
	margin: 28px 0 0;
	font-style: italic;
	color: var(--ink2);
	font-size: 15px;
	text-align: center;
	border-top: 1px solid var(--line);
	padding-top: 28px;
	line-height: 1.6;
}

.rfm-foot-copy {
	margin: 14px 0 0;
	color: var(--ink3);
	font-size: 13px;
	text-align: center;
}

/* ─── Full-width sections on the front-end ────────────────────────── */
.rfm-hero,
.rfm-section,
.rfm-closing,
.rfm-footer {
	width: 100%;
	max-width: 100%;
}
.alignfull.rfm-hero,
.alignfull.rfm-section,
.alignfull.rfm-closing { margin-left: 0; margin-right: 0; }

/* ─── Default <h2>, <h3> in unrecognized blocks (smart-friend fallback) ── */
.entry-content h2:not([class*="rfm-"]):not(.wp-block-heading) {
	font-size: clamp(26px, 3.5vw, 36px);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.2;
	margin: 56px 0 16px;
	color: var(--ink);
}
.entry-content h3:not([class*="rfm-"]):not(.wp-block-heading) {
	font-size: clamp(20px, 2.4vw, 24px);
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.3;
	margin: 36px 0 12px;
	color: var(--ink);
}
.entry-content p:not([class*="rfm-"]) {
	font-size: 18px;
	line-height: 1.65;
	color: var(--ink2);
	margin: 0 0 18px;
}

/* ─── WP admin / editor adjustments ──────────────────────────────── */
.editor-styles-wrapper { background: var(--bg); }
.editor-styles-wrapper .rfm-section,
.editor-styles-wrapper .rfm-hero,
.editor-styles-wrapper .rfm-closing { width: 100%; max-width: 100%; }


/* ─── Reduced motion ──────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ─── Print ───────────────────────────────────────────────────────── */
@media print {
	.rfm-cta-row, .rfm-btn, .rfm-cohort-pill, .rfm-cohort-strip { display: none; }
	body { background: #fff; color: #000; font-size: 12pt; }
	.rfm-section { padding: 24px 0; border-bottom: 1px solid #ccc; }
}
