/* Research Fundamentals enrollment-page components — centered sales-page edition. */

.rf-sales-page {
	--rf-sales-ink: var(--rf-ink, #18203a);
	--rf-sales-paper: var(--rf-paper, #f6f3ec);
	--rf-sales-white: var(--rf-white, #fffef9);
	--rf-sales-soft: var(--rf-paper-2, #ece8df);
	--rf-sales-accent: var(--rf-accent, #ff6a3d);
	--rf-sales-blue: var(--rf-blue, #b8d8ff);
	font-family: "Raleway", sans-serif;
}

.rf-sales-page :where(h1, h2, h3, h4, h5, h6, .wp-block-button__link, summary) {
	font-family: "Montserrat", sans-serif;
}

.rf-sales-page .rf-component__inner {
	position: relative;
}

/* Editable section surfaces.
 * The top bar and hero are transparent by default so they reveal the same
 * Blocksy/page canvas as the waitlist page. Gutenberg background controls
 * still work because an inline block colour overrides these class defaults.
 */
.rf-sales-topbar,
.rf-sales-hero {
	background-color: transparent;
	color: var(--theme-palette-color-4, var(--rf-sales-ink));
}

.rf-sales-fit,
.rf-sales-about,
.rf-sales-footer {
	background-color: var(--rf-sales-white);
	color: var(--rf-sales-ink);
}

.rf-sales-curriculum,
.rf-sales-recommendations,
.rf-sales-faq {
	background-color: var(--theme-palette-color-8, var(--rf-sales-paper));
	color: var(--theme-palette-color-4, var(--rf-sales-ink));
}

.rf-sales-problem,
.rf-sales-example {
	background-color: var(--rf-sales-soft);
	color: var(--rf-sales-ink);
}

.rf-sales-outcomes,
.rf-sales-pricing {
	background-color: var(--rf-sales-ink);
	color: var(--rf-sales-white);
}

.rf-sales-delivery {
	background-color: #2b5f93;
	color: var(--rf-sales-white);
}

.rf-sales-final-cta {
	background-color: var(--rf-sales-accent);
	color: var(--rf-sales-ink);
}


/* Announcement + minimal header */
.rf-sales-topbar {
	position: relative;
	z-index: 20;
	padding: 0;
	border-bottom: 1px solid color-mix(in srgb, var(--rf-sales-ink) 14%, transparent);
	background: transparent;
}

.rf-sales-announcement {
	padding: .62rem 1rem;
}

.rf-sales-announcement p {
	margin: 0;
	text-align: center;
	font-family: "Montserrat", sans-serif;
	font-size: .68rem !important;
	font-weight: 800;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.rf-sales-topbar__inner {
	min-height: 5.2rem;
	padding-block: .75rem;
}

.rf-sales-logo {
	margin: 0;
}

.rf-sales-logo img {
	display: block;
	height: auto;
}

.rf-sales-topbar__actions {
	gap: 1.25rem;
}

.rf-sales-topbar .rf-cohort-line {
	margin: 0;
	font-size: .76rem !important;
}

.rf-sales-topbar .wp-block-button__link {
	padding: .78rem 1.05rem;
	font-size: .76rem;
}

/* Centered hero, inspired by direct-response course pages */
.rf-sales-hero {
	padding-block: clamp(5rem, 10vw, 9rem);
}

.rf-sales-hero__intro {
	text-align: center;
}

.rf-sales-hero__intro > * {
	margin-inline: auto;
}

.rf-sales-hero__intro .is-style-rf-display {
	max-width: 950px;
	margin-top: clamp(1rem, 2vw, 1.5rem);
	margin-bottom: clamp(1.5rem, 3vw, 2.2rem);
	line-height: .96;
	letter-spacing: -.055em;
}

.rf-sales-hero__intro .is-style-rf-lead {
	max-width: 840px;
}

.rf-sales-hero__audience {
	max-width: 760px;
}

.rf-sales-hero__meta {
	gap: .65rem;
	margin-top: 1.75rem;
}

.rf-sales-hero__meta p,
.rf-sales-pricing__reassurance p {
	margin: 0;
	padding: .58rem .85rem;
	border: 1px solid color-mix(in srgb, var(--rf-sales-ink) 18%, transparent);
	background: color-mix(in srgb, var(--rf-sales-white) 72%, transparent);
	font-family: "Montserrat", sans-serif;
	font-size: .72rem !important;
	font-weight: 700;
	letter-spacing: .02em;
}

.rf-sales-video-stage {
	position: relative;
	overflow: hidden;
	max-width: 1040px;
	margin: clamp(3rem, 6vw, 5rem) auto 0;
	padding: 0;
	border: 1px solid color-mix(in srgb, var(--rf-sales-ink) 40%, transparent);
	background: var(--rf-sales-white);
}

.rf-sales-video-stage figure {
	margin: 0;
}

.rf-sales-video-stage img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	object-position: center 30%;
	filter: saturate(.7);
	opacity: .34;
}

.rf-sales-video-stage__overlay {
	position: absolute;
	inset: 0;
	display: grid;
	place-content: center;
	max-width: 680px;
	padding: clamp(1.5rem, 5vw, 4rem);
	text-align: center;
}

.rf-sales-video-stage__play {
	display: grid;
	place-items: center;
	width: 4.5rem;
	height: 4.5rem;
	margin: 0 auto 1.3rem;
	border-radius: 999px;
	background: var(--rf-sales-accent);
	color: var(--rf-sales-ink);
	font-size: 1.35rem !important;
	line-height: 1;
	box-shadow: 5px 5px 0 var(--rf-sales-ink);
}

.rf-sales-video-stage__overlay h3 {
	max-width: 590px;
	margin-inline: auto;
}

/* The visible price conversation directly under the VSL */
.rf-sales-hero-offer {
	display: grid;
	grid-template-columns: auto minmax(220px, 1fr) auto;
	align-items: center;
	gap: clamp(1.25rem, 3vw, 3rem);
	max-width: 1040px;
	margin: 0 auto;
	padding: clamp(1.25rem, 3vw, 2rem);
	border: 1px solid var(--rf-sales-ink);
	border-top: 0;
	background: var(--rf-sales-white);
	box-shadow: 8px 8px 0 var(--rf-sales-blue);
}

.rf-sales-hero-offer__price {
	gap: 1rem;
}

.rf-sales-hero-offer__amount {
	margin: 0;
	font-family: "Montserrat", sans-serif;
	font-size: clamp(2.5rem, 5vw, 4.2rem) !important;
	font-weight: 800;
	line-height: .9;
	letter-spacing: -.06em;
}

.rf-sales-hero-offer p {
	margin-block: 0;
}

.rf-sales-hero-offer span,
.rf-sales-hero-offer__details {
	color: color-mix(in srgb, var(--rf-sales-ink) 68%, transparent);
}

.rf-sales-hero-offer .wp-block-button__link {
	white-space: nowrap;
}

.rf-sales-hero__secondary-link {
	margin-top: 1.65rem;
	font-family: "Montserrat", sans-serif;
	font-size: .82rem !important;
	font-weight: 700;
}

/* Reusable centered section headings */
.rf-sales-section-intro {
	text-align: center;
}

.rf-sales-section-intro > * {
	margin-inline: auto;
}

.rf-sales-section-intro .is-style-rf-section-heading {
	max-width: 900px;
	margin-top: 1rem;
}

.rf-sales-section-intro .is-style-rf-lead {
	max-width: 780px;
}

/* Problem cards */
.rf-sales-problem__grid {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0 !important;
	margin-top: clamp(3rem, 6vw, 5rem);
	border: 1px solid color-mix(in srgb, var(--rf-sales-ink) 28%, transparent);
}

.rf-sales-problem__grid > .wp-block-column {
	width: auto;
	margin: 0 !important;
	border-right: 1px solid color-mix(in srgb, var(--rf-sales-ink) 22%, transparent);
}

.rf-sales-problem__grid > .wp-block-column:last-child {
	border-right: 0;
}

.rf-sales-problem-card {
	height: 100%;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	background: color-mix(in srgb, var(--rf-sales-white) 55%, transparent);
}

.rf-sales-card-number {
	margin: 0 0 2.75rem;
	font-family: "Montserrat", sans-serif;
	font-size: .72rem !important;
	font-weight: 800;
	letter-spacing: .1em;
	color: var(--rf-accent-dark, #dc4f27);
}

.rf-sales-problem-card h3,
.rf-sales-outcome-card h3 {
	margin-top: 0;
}

.rf-sales-pullquote {
	max-width: 900px;
	margin: clamp(2rem, 5vw, 4rem) auto 0;
	padding: 1.35rem 1.6rem;
	border-left: 4px solid var(--rf-sales-accent);
	background: color-mix(in srgb, var(--rf-sales-white) 50%, transparent);
	font-style: italic;
}

.rf-sales-pullquote p {
	margin: 0;
	font-size: clamp(1.05rem, 1.5cqi, 1.25rem) !important;
}

/* Audience fit */
.rf-sales-fit-grid {
	margin-top: clamp(3rem, 6vw, 5rem);
}

.rf-sales-fit-grid__card,
.rf-sales-delivery-card {
	height: 100%;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border: 1px solid color-mix(in srgb, var(--rf-sales-ink) 18%, transparent);
	background: var(--rf-sales-paper);
}

.rf-sales-fit-grid__card h3,
.rf-sales-delivery-card h3 {
	margin-top: 0;
}

.rf-sales-fit-card {
	max-width: 1040px;
	margin: clamp(2rem, 5vw, 4rem) auto 2.2rem;
	padding: clamp(1.75rem, 4vw, 3rem);
}

.rf-sales-fit > .rf-component__inner > .wp-block-buttons {
	justify-content: center;
}

/* Outcomes */
.rf-sales-outcome-groups {
	margin-top: clamp(3rem, 6vw, 5rem);
}

.rf-sales-outcome-card {
	height: 100%;
	padding: clamp(1.5rem, 3vw, 2.4rem);
	border: 1px solid color-mix(in srgb, white 22%, transparent);
	background: color-mix(in srgb, white 7%, transparent);
}

.rf-sales-outcome-card .rf-sales-card-number {
	color: var(--rf-sales-accent);
}

.rf-sales-delivery .is-style-rf-check-list,
.rf-sales-fit .is-style-rf-check-list,
.rf-sales-outcomes .is-style-rf-check-list,
.rf-sales-pricing .is-style-rf-check-list {
	margin-top: 1rem;
}

/* Delivery */
.rf-sales-delivery__cards {
	margin-top: clamp(3rem, 6vw, 5rem);
}

.rf-sales-delivery-card {
	background: color-mix(in srgb, white 72%, transparent);
}

.rf-sales-delivery__note {
	max-width: 920px;
	margin: clamp(2rem, 5vw, 4rem) auto 0;
	padding: clamp(1.4rem, 3vw, 2rem);
	border: 1px solid var(--rf-sales-ink);
	background: color-mix(in srgb, white 48%, transparent);
}

.rf-sales-delivery__note p {
	margin-block: .35rem;
}

/* Curriculum */
.rf-sales-curriculum > .rf-component__inner > .is-style-rf-kicker,
.rf-sales-curriculum > .rf-component__inner > .is-style-rf-section-heading,
.rf-sales-curriculum > .rf-component__inner > .is-style-rf-lead,
.rf-sales-faq > .rf-component__inner > .is-style-rf-kicker,
.rf-sales-faq > .rf-component__inner > .is-style-rf-section-heading {
	max-width: 900px;
	margin-inline: auto;
	text-align: center;
}

.rf-sales-curriculum__phases {
	max-width: 1050px;
	margin: clamp(3rem, 6vw, 5rem) auto 0;
	border-top: 1px solid color-mix(in srgb, currentColor 30%, transparent);
}

.rf-sales-phase {
	margin: 0;
	border: 0;
	border-bottom: 1px solid color-mix(in srgb, currentColor 24%, transparent);
	background: transparent;
}

.rf-sales-phase > summary {
	position: relative;
	padding: clamp(1.4rem, 2.5vw, 2rem) 3.5rem clamp(1.4rem, 2.5vw, 2rem) 0;
	font-size: clamp(1.2rem, 2.2cqi, 1.7rem);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -.02em;
	cursor: pointer;
	list-style: none;
}

.rf-sales-phase > summary::-webkit-details-marker {
	display: none;
}

.rf-sales-phase > summary::after {
	content: "+";
	position: absolute;
	right: .25rem;
	top: 50%;
	translate: 0 -50%;
	font-size: 1.75rem;
	font-weight: 500;
	color: var(--rf-accent-dark, #dc4f27);
}

.rf-sales-phase[open] > summary::after {
	content: "−";
}

.rf-sales-phase__weeks {
	padding: 0 0 1.5rem;
}

.rf-sales-week-row {
	display: grid;
	grid-template-columns: 6.5rem minmax(0, 1fr);
	column-gap: clamp(1.2rem, 3vw, 2.8rem);
	padding: clamp(1.4rem, 2.5vw, 2rem) 0;
	border-top: 1px solid color-mix(in srgb, currentColor 15%, transparent);
}

.rf-sales-week-row__number {
	grid-column: 1;
	grid-row: 1 / span 2;
	margin: .25rem 0 0;
	font-family: "Montserrat", sans-serif;
	font-size: .72rem !important;
	font-weight: 800;
	letter-spacing: .11em;
	color: var(--rf-accent-dark, #dc4f27);
}

.rf-sales-week-row h3,
.rf-sales-week-row p:not(.rf-sales-week-row__number) {
	grid-column: 2;
	margin-top: 0;
}

.rf-sales-week-row h3 {
	margin-bottom: .65rem;
}

.rf-sales-week-row p:last-child {
	margin-bottom: 0;
}

/* Worked example */
.rf-sales-example__steps {
	margin-top: 2rem;
}

.rf-sales-example__steps .rf-numbered-item p {
	margin-block: .35rem;
}

.rf-sales-example__steps .rf-numbered-item strong {
	font-size: .78rem;
}

/* Pricing dialogue */
.rf-sales-price-dialogue {
	max-width: 1050px;
	margin: clamp(3rem, 6vw, 5rem) auto 0;
	padding: clamp(1.75rem, 4vw, 3.5rem);
	border: 1px solid color-mix(in srgb, var(--rf-sales-ink) 48%, transparent);
}

.rf-sales-price-dialogue__header {
	gap: 2rem;
}

.rf-sales-price-card__price {
	margin: .5rem 0 0;
	font-size: clamp(4.2rem, 9cqi, 7.2rem) !important;
	line-height: .84 !important;
	letter-spacing: -.07em !important;
}

.rf-sales-price-dialogue__standard {
	max-width: 25rem;
	text-align: right;
}

.rf-sales-price-dialogue__standard p {
	margin-block: .25rem;
}

.rf-sales-price-dialogue__body {
	margin-top: clamp(1.5rem, 3vw, 2.5rem);
}

.rf-sales-price-dialogue__checkout {
	height: 100%;
	padding: clamp(1.25rem, 3vw, 2rem);
	border: 1px solid color-mix(in srgb, var(--rf-sales-ink) 16%, transparent);
	background: var(--rf-sales-paper);
}

.rf-sales-price-dialogue__checkout .wp-block-buttons,
.rf-sales-price-dialogue__checkout .wp-block-button,
.rf-sales-price-dialogue__checkout .wp-block-button__link {
	width: 100%;
}

.rf-sales-price-dialogue__checkout .wp-block-button__link {
	text-align: center;
}

.rf-sales-checkout-note {
	font-size: .77rem !important;
}

.rf-sales-pricing__reassurance {
	gap: .65rem;
	margin-top: 2rem;
}

.rf-sales-pricing__reassurance p {
	border-color: color-mix(in srgb, white 25%, transparent);
	background: color-mix(in srgb, white 8%, transparent);
	color: white;
}

/* FAQ */
.rf-sales-faq__items {
	max-width: 980px;
	margin: clamp(3rem, 6vw, 5rem) auto 0;
	border-top: 1px solid color-mix(in srgb, currentColor 28%, transparent);
}

.rf-sales-faq__items .wp-block-details {
	margin: 0;
	padding: 0;
	border-bottom: 1px solid color-mix(in srgb, currentColor 18%, transparent);
}

.rf-sales-faq__items summary {
	position: relative;
	padding: 1.4rem 3rem 1.4rem 0;
	font-size: clamp(1.05rem, 1.7cqi, 1.3rem);
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}

.rf-sales-faq__items summary::-webkit-details-marker {
	display: none;
}

.rf-sales-faq__items summary::after {
	content: "+";
	position: absolute;
	right: .25rem;
	top: 50%;
	translate: 0 -50%;
	color: var(--rf-accent-dark, #dc4f27);
	font-size: 1.5rem;
}

.rf-sales-faq__items details[open] summary::after {
	content: "−";
}

.rf-sales-faq__items details > p {
	max-width: 58rem;
	margin: 0;
	padding: 0 0 1.5rem;
}

.rf-sales-faq__placeholder {
	outline: 2px dashed var(--rf-sales-accent);
	outline-offset: -2px;
}

/* Final centered CTA + footer */
.rf-sales-final-cta .rf-component__inner {
	text-align: center;
}

.rf-sales-final-cta .wp-block-buttons {
	justify-content: center;
	margin-top: 1.75rem;
}

.rf-sales-final-cta .wp-block-button__link {
	background: var(--rf-sales-ink);
	color: var(--rf-sales-white);
}

.rf-sales-footer {
	padding-block: 1.4rem;
	border-top: 1px solid color-mix(in srgb, currentColor 12%, transparent);
}

.rf-sales-footer p {
	margin: 0;
	font-size: .85rem !important;
}

.rf-sales-footer a {
	color: inherit;
}

@media (max-width: 1100px) {
	.rf-sales-topbar__actions .rf-cohort-line {
		display: none;
	}

	.rf-sales-problem__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rf-sales-problem__grid > .wp-block-column:nth-child(2) {
		border-right: 0;
	}

	.rf-sales-problem__grid > .wp-block-column:nth-child(-n+2) {
		border-bottom: 1px solid color-mix(in srgb, var(--rf-sales-ink) 22%, transparent);
	}
}

@media (max-width: 900px) {
	.rf-sales-hero-offer {
		grid-template-columns: 1fr;
		text-align: center;
	}

	.rf-sales-hero-offer__price {
		justify-content: center;
	}

	.rf-sales-hero-offer .wp-block-buttons {
		justify-content: center !important;
	}

	.rf-sales-price-dialogue__standard {
		text-align: left;
	}
}

@media (max-width: 781px) {
	.rf-sales-topbar__inner {
		min-height: 4.5rem;
	}

	.rf-sales-logo img {
		width: min(200px, 58vw) !important;
	}

	.rf-sales-topbar__actions {
		margin-left: auto;
	}

	.rf-sales-video-stage__overlay {
		padding: 1.2rem;
	}

	.rf-sales-video-stage__overlay .is-style-rf-muted {
		display: none;
	}

	.rf-sales-video-stage__play {
		width: 3.5rem;
		height: 3.5rem;
		margin-bottom: .8rem;
	}

	.rf-sales-problem__grid {
		grid-template-columns: 1fr;
	}

	.rf-sales-problem__grid > .wp-block-column {
		border-right: 0;
		border-bottom: 1px solid color-mix(in srgb, var(--rf-sales-ink) 22%, transparent);
	}

	.rf-sales-problem__grid > .wp-block-column:last-child {
		border-bottom: 0;
	}

	.rf-sales-week-row {
		grid-template-columns: 1fr;
	}

	.rf-sales-week-row__number,
	.rf-sales-week-row h3,
	.rf-sales-week-row p:not(.rf-sales-week-row__number) {
		grid-column: 1;
		grid-row: auto;
	}

	.rf-sales-price-dialogue__header {
		align-items: flex-start;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rf-sales-phase > summary,
	.rf-sales-faq__items summary {
		scroll-behavior: auto;
	}
}

/* Editor clarity: blocks remain ordinary Gutenberg components. */
.editor-styles-wrapper .rf-sales-video-stage__overlay {
	pointer-events: none;
}

.editor-styles-wrapper .rf-sales-video-stage {
	outline: 1px dashed color-mix(in srgb, var(--rf-sales-accent) 65%, transparent);
	outline-offset: -1px;
}

/* v3.2 refinements ------------------------------------------------------ */

/* The announcement strip was removed; keep the remaining header compact. */
.rf-sales-topbar__inner {
	min-height: 4.8rem;
}

/* Text within inverse sections follows the outer Group's selected text color.
 * No !important declarations: changing the Group color in Gutenberg must win. */
.rf-sales-page :where(.rf-sales-outcomes, .rf-sales-pricing, .rf-sales-delivery)
	:where(h1, h2, h3, h4, h5, h6, p, li, summary, a:not(.wp-block-button__link), strong) {
	color: inherit;
}

.rf-sales-delivery .rf-sales-delivery-card {
	border-color: color-mix(in srgb, white 30%, transparent);
	background: color-mix(in srgb, white 9%, transparent);
	color: var(--rf-sales-white);
}

.rf-sales-delivery .rf-sales-delivery__note {
	border-color: color-mix(in srgb, white 42%, transparent);
	background: color-mix(in srgb, white 10%, transparent);
	color: var(--rf-sales-white);
}

.rf-sales-delivery .is-style-rf-check-list li::before {
	color: var(--rf-sales-accent);
}

/* About Dorian --------------------------------------------------------- */
.rf-sales-about__statement {
	padding: clamp(2rem, 4vw, 3.5rem);
}

.rf-sales-about__statement blockquote {
	margin: 1.4rem 0 2.25rem;
	padding: 0;
	border: 0;
}

.rf-sales-about__statement blockquote p {
	font-family: "Montserrat", sans-serif;
	font-size: clamp(1.45rem, 2.7cqi, 2.25rem) !important;
	font-weight: 650;
	line-height: 1.24;
	letter-spacing: -.025em;
}

.rf-sales-about__statement :where(p, strong) {
	color: var(--rf-sales-white);
}


/* About Dorian — editor-respectful profile v5 ------------------------ */
.rf-sales-about-v2 {
	padding-block: clamp(3.5rem, 6vw, 5.5rem);
}

/*
 * Keep this as a native Gutenberg Columns layout. The previous grid and
 * flex-basis override prevented column-width changes made in the editor from
 * appearing on the live page. Inline Gutenberg column widths now remain the
 * source of truth.
 */
.rf-sales-about-v2__layout {
	display: flex !important;
	flex-wrap: nowrap;
	gap: clamp(2.25rem, 4.5vw, 4.75rem) !important;
	align-items: flex-start !important;
}

.rf-sales-about-v2__layout > .wp-block-column {
	min-width: 0;
}

.rf-sales-about-v2__profile {
	position: sticky;
	top: clamp(1.5rem, 5vw, 4rem);
	width: 100%;
	max-width: none;
}

.rf-sales-about-v2__portrait {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	overflow: hidden;
	margin: 0;
	border: 1px solid color-mix(in srgb, var(--rf-sales-ink) 18%, transparent);
	border-bottom: 5px solid var(--rf-sales-accent);
	background: var(--rf-sales-soft);
	box-shadow: none;
}

.rf-sales-about-v2__portrait img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.rf-sales-about-v2__identity {
	position: static;
	margin: 1.15rem 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	color: var(--rf-sales-ink);
}

.rf-sales-about-v2__identity :where(h3, p, strong) {
	color: inherit;
}

.rf-sales-about-v2__identity h3 {
	margin: 0;
	font-size: clamp(1.05rem, 1.35cqi, 1.22rem) !important;
	line-height: 1.18 !important;
	letter-spacing: -.018em;
}

.rf-sales-about-v2__role {
	margin: .42rem 0 0;
	font-size: clamp(.8rem, .92cqi, .9rem) !important;
	line-height: 1.45;
	color: color-mix(in srgb, var(--rf-sales-ink) 72%, transparent) !important;
}

.rf-sales-about-v2__facts {
	display: grid;
	gap: .7rem;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid color-mix(in srgb, var(--rf-sales-ink) 14%, transparent);
}

.rf-sales-about-v2__facts p {
	position: relative;
	margin: 0;
	padding-left: 1rem;
	font-size: clamp(.76rem, .84cqi, .84rem) !important;
	line-height: 1.45;
	color: color-mix(in srgb, var(--rf-sales-ink) 74%, transparent);
}

.rf-sales-about-v2__facts p::before {
	content: "";
	position: absolute;
	top: .52em;
	left: 0;
	width: 5px;
	height: 5px;
	border-radius: 999px;
	background: var(--rf-sales-accent);
}

.rf-sales-about-v2__facts strong {
	display: inline-block;
	margin-bottom: .08rem;
	font-family: "Montserrat", sans-serif;
	font-size: .92em;
	letter-spacing: .01em;
	color: var(--rf-sales-ink);
}

.rf-sales-about-v2__content {
	max-width: 790px;
}

/* Gutenberg's constrained layout auto-centres narrower direct children.
 * Keep the kicker, heading, paragraphs, and purpose card on one shared left edge. */
.rf-sales-about-v2__content > * {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.rf-sales-about-v2__content > .is-style-rf-section-heading,
.rf-sales-about-v2__content > p:not(.is-style-rf-kicker) {
	max-width: none;
}

.rf-sales-about-v2__content > .is-style-rf-kicker {
	margin-bottom: .75rem;
}

.rf-sales-about-v2__content > .is-style-rf-section-heading {
	max-width: none;
	margin-top: 0;
	margin-bottom: clamp(1.2rem, 2.5vw, 1.8rem);
}

.rf-sales-about-v2__content > p:not(.is-style-rf-kicker) {
	max-width: none;
}

.rf-sales-about-v2__purpose {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	margin-top: clamp(1.65rem, 3vw, 2.35rem);
	padding: clamp(1.35rem, 2.4vw, 1.9rem) clamp(1.4rem, 2.8vw, 2.1rem);
	border: 0;
	border-left: 5px solid var(--rf-sales-accent);
}

/* Provide the intended navy card by default, while allowing Gutenberg's
 * Background and Text colour controls to override it normally. */
.rf-sales-about-v2__purpose:not(.has-background) {
	background-color: var(--rf-sales-ink);
}

.rf-sales-about-v2__purpose:not(.has-text-color) {
	color: var(--rf-sales-white);
}

.rf-sales-about-v2__purpose :where(p, blockquote, strong) {
	color: inherit;
}

.rf-sales-about-v2__purpose::after {
	content: none;
}

.rf-sales-about-v2__purpose-label {
	margin: 0 0 .55rem;
	font-family: "Montserrat", sans-serif;
	font-size: .66rem !important;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.rf-sales-about-v2__purpose blockquote {
	margin: 0 0 .85rem;
	padding: 0;
	border: 0;
}

.rf-sales-about-v2__purpose blockquote p {
	margin: 0;
	font-family: "Montserrat", sans-serif;
	font-size: clamp(1rem, 1.35cqi, 1.22rem) !important;
	font-weight: 650;
	line-height: 1.42;
	letter-spacing: -.015em;
}

.rf-sales-about-v2__purpose > p:last-child {
	margin-bottom: 0;
	font-size: .94em !important;
}

.editor-styles-wrapper .rf-sales-about-v2__profile {
	position: static;
}

@media (max-width: 900px) {
	.rf-sales-about-v2__layout {
		gap: clamp(2rem, 4vw, 3rem) !important;
	}

	.rf-sales-about-v2__profile {
		position: static;
		max-width: none;
	}
}

@media (max-width: 781px) {
	.rf-sales-about-v2__layout {
		flex-direction: column;
		gap: 2.25rem !important;
	}

	.rf-sales-about-v2__layout > .wp-block-column {
		flex-basis: auto !important;
		width: 100%;
	}

	.rf-sales-about-v2__profile {
		display: grid;
		grid-template-columns: minmax(145px, 200px) minmax(0, 1fr);
		gap: 1.25rem;
		align-items: start;
		max-width: 100%;
	}

	.rf-sales-about-v2__identity {
		margin-top: 0;
	}
}

@media (max-width: 480px) {
	.rf-sales-about-v2 {
		padding-block: 3rem;
	}

	.rf-sales-about-v2__profile {
		grid-template-columns: minmax(125px, 165px) minmax(0, 1fr);
		gap: 1rem;
	}

	.rf-sales-about-v2__facts {
		gap: .55rem;
	}
}

/* Expert recommendation slider --------------------------------------- */
.rf-expert-slider {
	position: relative;
	margin-top: clamp(3rem, 6vw, 5rem);
}

.rf-expert-slider::before,
.rf-expert-slider::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	z-index: 3;
	width: clamp(1.5rem, 6vw, 6rem);
	pointer-events: none;
}

.rf-expert-slider::before {
	left: 0;
	background: linear-gradient(90deg, var(--rf-sales-paper), transparent);
}

.rf-expert-slider::after {
	right: 0;
	background: linear-gradient(270deg, var(--rf-sales-paper), transparent);
}

.rf-expert-slider__controls {
	display: flex;
	justify-content: center;
	gap: .65rem;
	margin-bottom: 1.25rem;
}

.rf-expert-slider__button {
	position: relative;
	z-index: 5;
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	padding: 0;
	border: 1px solid var(--rf-sales-ink);
	border-radius: 0;
	background: var(--rf-sales-white);
	color: var(--rf-sales-ink);
	font: 800 1.1rem/1 "Montserrat", sans-serif;
	cursor: pointer;
	transition: transform .2s ease, background .2s ease, color .2s ease;
}

.rf-expert-slider__button:hover,
.rf-expert-slider__button:focus-visible {
	background: var(--rf-sales-ink);
	color: var(--rf-sales-white);
	transform: translateY(-2px);
}

.rf-expert-slider__track {
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: 1.25rem !important;
	overflow-x: auto;
	overflow-y: hidden;
	padding: .5rem clamp(2rem, 6vw, 5rem) 1.25rem;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: clamp(2rem, 6vw, 5rem);
	scroll-behavior: smooth;
	overscroll-behavior-inline: contain;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}

.rf-expert-card {
	box-sizing: border-box;
	flex: 0 0 min(78vw, 430px);
	min-height: 280px;
	padding: clamp(1.6rem, 3vw, 2.35rem);
	border: 1px solid color-mix(in srgb, var(--rf-sales-ink) 24%, transparent);
	background: var(--rf-sales-white);
	scroll-snap-align: center;
}

.rf-expert-card blockquote {
	margin: 0 0 2rem;
	padding: 0;
	border: 0;
}

.rf-expert-card blockquote p {
	font-size: clamp(1.1rem, 1.8cqi, 1.3rem) !important;
	line-height: 1.55;
}

/* Two-option checkout dialogue --------------------------------------- */
.rf-sales-checkout-label {
	margin-top: 0;
	font-family: "Montserrat", sans-serif;
	font-size: .78rem !important;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.rf-sales-price-dialogue__checkout .wp-block-buttons {
	gap: .9rem;
}

.rf-sales-checkout-button--installments .wp-block-button__link {
	border: 2px solid var(--rf-sales-ink) !important;
	background: transparent !important;
	color: var(--rf-sales-ink) !important;
	box-shadow: none !important;
}

.rf-sales-checkout-button--installments .wp-block-button__link:hover,
.rf-sales-checkout-button--installments .wp-block-button__link:focus-visible {
	background: var(--rf-sales-ink) !important;
	color: var(--rf-sales-white) !important;
}

.rf-sales-checkout-or {
	margin: 1rem 0 0;
	font-size: .78rem !important;
	font-weight: 700;
}

@media (max-width: 781px) {
	.rf-expert-slider::before,
	.rf-expert-slider::after {
		width: 1.5rem;
	}

	.rf-expert-card {
		flex-basis: min(86vw, 390px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.rf-expert-slider__track {
		scroll-behavior: auto;
	}

	.rf-expert-slider__button {
		transition: none;
	}
}

/* In Gutenberg, keep the cards horizontally editable without requiring JS. */
.editor-styles-wrapper .rf-expert-slider__track {
	overflow-x: auto;
}

/* v3.7 hybrid: v3.2 system with selected v3.4 hero, recommendations, and pricing. */

/* v3.4 promise-led hero: heading, supporting promise, VSL, and one CTA. */
.rf-sales-hero__cta {
	display: flex;
	justify-content: center !important;
	margin-top: clamp(2rem, 4vw, 3rem);
}

.rf-sales-hero__cta .wp-block-button__link {
	min-height: 58px;
	padding-inline: clamp(1.5rem, 4vw, 2.6rem);
	text-align: center;
}

/* v3.4 centered price column. */
.rf-sales-price-dialogue--james {
	box-sizing: border-box;
	width: min(100%, 760px);
	max-width: 760px;
	margin: clamp(3rem, 6vw, 5rem) auto 0;
	padding: clamp(2rem, 5vw, 4rem);
	text-align: center;
}

.rf-sales-price-card__was {
	margin: 1.15rem 0 .1rem;
	font-family: "Montserrat", sans-serif;
	font-size: clamp(1.65rem, 3cqi, 2.35rem) !important;
	font-weight: 700;
	line-height: 1;
	color: color-mix(in srgb, var(--rf-sales-ink) 52%, transparent);
}

.rf-sales-price-card__was s {
	text-decoration-thickness: .13em;
	text-decoration-color: var(--rf-sales-accent);
}

.rf-sales-price-dialogue--james .rf-sales-price-card__price {
	margin: .2rem 0 .65rem;
	font-size: clamp(5.4rem, 12cqi, 8.6rem) !important;
	line-height: .83 !important;
	letter-spacing: -.075em !important;
}

.rf-sales-price-card__deadline {
	margin: 0 auto 2.2rem;
	font-size: .94rem !important;
}

.rf-sales-price-card__title {
	margin: 0 0 .5rem;
	font-size: clamp(1.45rem, 2.6cqi, 2rem) !important;
}

.rf-sales-price-card__subtitle {
	max-width: 590px;
	margin: 0 auto 2rem;
	color: var(--rf-muted, #686b74);
}

.rf-sales-price-card__features {
	max-width: 610px;
	margin: 0 auto 2.25rem;
	text-align: left;
}

.rf-sales-price-card__features li {
	padding-block: .25rem;
}

.rf-sales-price-card__buttons {
	display: block !important;
	width: 100%;
	max-width: 560px;
	margin-inline: auto;
}

.rf-sales-price-card__buttons .wp-block-button,
.rf-sales-price-card__buttons .wp-block-button__link {
	width: 100% !important;
}

.rf-sales-price-card__buttons .wp-block-button__link {
	min-height: 60px;
	font-size: .87rem;
	letter-spacing: .04em;
}

.rf-sales-price-dialogue--james .rf-sales-checkout-or {
	margin: 1.15rem 0;
	font-family: "Montserrat", sans-serif;
	font-size: .78rem !important;
	font-weight: 850;
	letter-spacing: .18em;
}

.rf-sales-price-dialogue--james .rf-sales-checkout-note {
	max-width: 520px;
	margin: 1.4rem auto 0;
}

.rf-sales-price-card__editing-note {
	display: none;
	max-width: 600px;
	margin: 1.4rem auto 0;
	padding-top: 1.25rem;
	border-top: 1px solid color-mix(in srgb, var(--rf-sales-ink) 15%, transparent);
	font-size: .74rem !important;
	line-height: 1.5;
	color: var(--rf-muted, #686b74);
}

.editor-styles-wrapper .rf-sales-price-card__editing-note {
	display: block;
}

/* v3.4 full-width, faded, infinite recommendation carousel. */
.rf-sales-recommendations {
	overflow: hidden !important;
}

.rf-sales-recommendations > .rf-component__inner {
	padding-bottom: 0;
}

.rf-expert-slider {
	position: relative;
	box-sizing: border-box;
	width: 100vw !important;
	max-width: none !important;
	margin-top: clamp(2.5rem, 5vw, 4.5rem);
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
}

@supports (width: 100dvw) {
	.rf-expert-slider {
		width: 100dvw !important;
		margin-left: calc(50% - 50dvw) !important;
		margin-right: calc(50% - 50dvw) !important;
	}
}

.rf-expert-slider::before,
.rf-expert-slider::after {
	display: none !important;
}

.rf-expert-slider__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .65rem;
	width: min(calc(100% - 48px), 1290px) !important;
	margin: 0 auto 1.25rem !important;
}

.rf-expert-slider__hint {
	margin-right: .5rem;
	font-family: "Montserrat", sans-serif;
	font-size: .72rem;
	font-weight: 750;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--rf-muted, #686b74);
}

.rf-expert-slider__track {
	--rf-slider-gap: clamp(1rem, 2vw, 1.5rem);
	display: flex !important;
	flex-wrap: nowrap !important;
	width: 100% !important;
	max-width: none !important;
	gap: var(--rf-slider-gap) !important;
	overflow-x: auto !important;
	overflow-y: hidden !important;
	padding: .5rem clamp(3.25rem, 8vw, 8rem) 1.75rem !important;
	scroll-padding-inline: clamp(3.25rem, 8vw, 8rem) !important;
	scroll-snap-type: x proximity;
	scroll-behavior: smooth;
	overscroll-behavior-inline: contain;
	-webkit-overflow-scrolling: touch;
	touch-action: pan-x pan-y;
	cursor: grab;
	scrollbar-width: none;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}

.rf-expert-slider__track::-webkit-scrollbar {
	display: none;
}

.rf-expert-slider__track.is-dragging {
	cursor: grabbing;
	scroll-behavior: auto !important;
	scroll-snap-type: none;
	user-select: none;
}

.rf-expert-card {
	box-sizing: border-box;
	flex: 0 0 clamp(310px, 32vw, 450px) !important;
	width: auto !important;
	max-width: 450px;
	min-height: 290px;
	scroll-snap-align: center;
}

.rf-expert-card--clone {
	pointer-events: none;
}

.editor-styles-wrapper .rf-expert-slider {
	width: 100% !important;
	margin-inline: 0 !important;
}

.editor-styles-wrapper .rf-expert-slider__track {
	cursor: default;
	-webkit-mask-image: none;
	mask-image: none;
}

@media (max-width: 781px) {
	.rf-sales-hero__cta,
	.rf-sales-hero__cta .wp-block-button,
	.rf-sales-hero__cta .wp-block-button__link {
		width: 100%;
	}

	.rf-sales-price-dialogue--james {
		width: min(calc(100% - 24px), 760px);
		padding: 1.7rem 1.2rem 2rem;
	}

	.rf-expert-slider__hint {
		display: none;
	}

	.rf-expert-slider__controls {
		justify-content: flex-end;
		width: calc(100% - 32px) !important;
	}

	.rf-expert-slider__track {
		padding-inline: 2.25rem !important;
		scroll-padding-inline: 2.25rem !important;
		-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 3.5%, #000 96.5%, transparent 100%);
		mask-image: linear-gradient(90deg, transparent 0, #000 3.5%, #000 96.5%, transparent 100%);
	}

	.rf-expert-card {
		flex-basis: min(84vw, 390px) !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rf-expert-slider__track {
		scroll-behavior: auto;
	}
}

/* v3.8.1 — waitlist-compatible top canvas.
 * Keep the custom enrollment top bar and hero transparent unless the editor
 * explicitly assigns a block background colour. No !important is used, so
 * Gutenberg inline colour selections continue to override this default.
 */
.rf-sales-page .rf-sales-topbar,
.rf-sales-page .rf-sales-hero {
	background-color: transparent;
	background-image: none;
}


/* v3.8.4 — use the normal Blocksy header.
 *
 * The companion plugin no longer clones, injects, replaces, resizes, or
 * repositions anything inside Blocksy's header. Existing legacy enrollment
 * top-bar blocks are hidden on the public page so the theme header is the only
 * header. They remain visible in Gutenberg for easy deletion.
 */
.rf-sales-page > .rf-sales-topbar {
	display: none;
}

.editor-styles-wrapper .rf-sales-page > .rf-sales-topbar {
	display: block;
	opacity: .55;
	outline: 1px dashed color-mix(in srgb, currentColor 30%, transparent);
	outline-offset: -1px;
}


/* v3.8.5 — refined scale, flexible hero, timeline example, and author rows. */

/*
 * The enrollment page carries considerably more copy than the waitlist page.
 * Keep the same hierarchy, but use a calmer editorial scale so headings do not
 * overwhelm the supporting explanation and individual sections feel tighter.
 */
.rf-sales-page,
.rf-sales-page :where(.rf-component, .rf-section, .rf-form-card) {
	--rf-font-display: clamp(3.25rem, 6.2cqi, 5.15rem);
	--rf-font-section: clamp(2.15rem, 4cqi, 3.35rem);
	--rf-font-card: clamp(1.14rem, 1.65cqi, 1.42rem);
	--rf-font-lead: clamp(1.08rem, 1.4cqi, 1.27rem);
	--rf-font-body: clamp(.98rem, 1.05cqi, 1.08rem);
}

.rf-sales-page .rf-section {
	padding-block: clamp(3.8rem, 6.5vw, 5.8rem);
}

.rf-sales-about__statement blockquote p {
	font-size: clamp(1.25rem, 2.1cqi, 1.8rem) !important;
}

.rf-expert-card blockquote p {
	font-size: clamp(1.02rem, 1.45cqi, 1.18rem) !important;
}

.rf-sales-price-card__was {
	font-size: clamp(1.4rem, 2.4cqi, 1.95rem) !important;
}

.rf-sales-price-dialogue--james .rf-sales-price-card__price {
	font-size: clamp(4.5rem, 9.5cqi, 7rem) !important;
}

/*
 * Flexible hero widths.
 * Wide is the default for the longer enrollment promise. Add one of the
 * optional classes to the OUTER hero Group in Gutenberg:
 * rf-hero-title-standard, rf-hero-title-narrow, or rf-hero-title-extra-wide.
 */
.rf-sales-hero {
	--rf-sales-hero-title-width: 1120px;
	--rf-sales-hero-lead-width: 900px;
}

.rf-sales-hero__intro {
	max-width: none !important;
}

.rf-sales-hero__intro .is-style-rf-display {
	width: min(100%, var(--rf-sales-hero-title-width));
	max-width: var(--rf-sales-hero-title-width);
}

.rf-sales-hero__intro .is-style-rf-lead {
	width: min(100%, var(--rf-sales-hero-lead-width));
	max-width: var(--rf-sales-hero-lead-width);
}

.rf-sales-hero.rf-hero-title-standard {
	--rf-sales-hero-title-width: 950px;
	--rf-sales-hero-lead-width: 840px;
}

.rf-sales-hero.rf-hero-title-narrow {
	--rf-sales-hero-title-width: 820px;
	--rf-sales-hero-lead-width: 740px;
}

.rf-sales-hero.rf-hero-title-extra-wide {
	--rf-sales-hero-title-width: 1240px;
	--rf-sales-hero-lead-width: 980px;
}

/*
 * Worked example: a distinct case-study layout followed by an alternating
 * claim-to-conclusion timeline. Existing Gutenberg blocks are reused; no new
 * custom block or locked markup is required.
 */
.rf-sales-example .rf-component__columns {
	display: grid !important;
	grid-template-columns: minmax(0, .9fr) minmax(340px, 1.1fr);
	align-items: center !important;
	gap: clamp(2.5rem, 6vw, 6rem) !important;
}

.rf-sales-example .rf-component__columns > .wp-block-column:first-child {
	grid-column: 2;
	grid-row: 1 / span 3;
	width: 100%;
}

.rf-sales-example .rf-component__columns > .wp-block-column:first-child figure {
	width: min(100%, 680px);
	margin: 0 auto;
}

.rf-sales-example .rf-component__columns > .wp-block-column:last-child {
	display: contents;
}

.rf-sales-example .rf-component__columns > .wp-block-column:last-child > .is-style-rf-kicker {
	grid-column: 1;
	grid-row: 1;
	align-self: end;
	margin-bottom: 0;
}

.rf-sales-example .rf-component__columns > .wp-block-column:last-child > .is-style-rf-section-heading {
	grid-column: 1;
	grid-row: 2;
	margin-block: .7rem 1.2rem;
}

.rf-sales-example .rf-component__columns > .wp-block-column:last-child > p:not(.is-style-rf-kicker) {
	grid-column: 1;
	grid-row: 3;
	align-self: start;
	margin-top: 0;
}

.rf-sales-example__steps {
	--rf-timeline-gap: clamp(3.5rem, 8vw, 7rem);
	position: relative;
	grid-column: 1 / -1;
	grid-row: 4;
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--rf-timeline-gap);
	row-gap: 1.15rem;
	width: min(100%, 1080px);
	margin: clamp(3.5rem, 7vw, 5.5rem) auto 0;
	padding-block: .6rem;
}

.rf-sales-example__steps::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 2px;
	background: color-mix(in srgb, var(--rf-sales-ink) 28%, transparent);
	translate: -50% 0;
}

.rf-sales-example__steps .rf-numbered-item {
	position: relative;
	box-sizing: border-box;
	margin: 0 !important;
	padding: clamp(1.25rem, 2.6vw, 1.8rem);
	border: 1px solid color-mix(in srgb, var(--rf-sales-ink) 22%, transparent);
	background: color-mix(in srgb, var(--rf-sales-white) 72%, transparent);
}

.rf-sales-example__steps .rf-numbered-item:nth-child(1) {
	grid-column: 1;
	grid-row: 1;
}

.rf-sales-example__steps .rf-numbered-item:nth-child(2) {
	grid-column: 2;
	grid-row: 2;
}

.rf-sales-example__steps .rf-numbered-item:nth-child(3) {
	grid-column: 1;
	grid-row: 3;
}

.rf-sales-example__steps .rf-numbered-item:nth-child(4) {
	grid-column: 2;
	grid-row: 4;
}

.rf-sales-example__steps .rf-numbered-item:nth-child(odd) {
	text-align: right;
}

.rf-sales-example__steps .rf-numbered-item::before {
	content: "";
	position: absolute;
	top: 1.85rem;
	width: calc(var(--rf-timeline-gap) / 2);
	height: 1px;
	background: color-mix(in srgb, var(--rf-sales-ink) 28%, transparent);
}

.rf-sales-example__steps .rf-numbered-item:nth-child(odd)::before {
	right: calc(var(--rf-timeline-gap) / -2);
}

.rf-sales-example__steps .rf-numbered-item:nth-child(even)::before {
	left: calc(var(--rf-timeline-gap) / -2);
}

.rf-sales-example__steps .rf-numbered-item::after {
	content: "";
	position: absolute;
	top: calc(1.85rem - 6px);
	z-index: 2;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--rf-sales-accent);
	box-shadow: 0 0 0 5px var(--rf-sales-soft);
}

.rf-sales-example__steps .rf-numbered-item:nth-child(odd)::after {
	right: calc(var(--rf-timeline-gap) / -2 - 6px);
}

.rf-sales-example__steps .rf-numbered-item:nth-child(even)::after {
	left: calc(var(--rf-timeline-gap) / -2 - 6px);
}

.rf-sales-example .rf-sales-pullquote {
	grid-column: 1 / -1;
	grid-row: 5;
	width: min(100%, 900px);
	margin-top: clamp(2.5rem, 5vw, 4rem);
}

/*
 * Circular author portraits with the name/credentials beside the image.
 * This works automatically when an Image block and the author paragraph are
 * direct siblings after the quote. For any custom author Group, add the class
 * rf-person-row in Advanced > Additional CSS class(es).
 */
.rf-person-row {
	display: flex !important;
	align-items: center;
	gap: .9rem !important;
}

.rf-person-row .wp-block-image,
.rf-person-row p {
	margin: 0 !important;
}

.rf-person-row .wp-block-image,
.rf-person-row .wp-block-image img,
.rf-sales-about__statement > .wp-block-image,
.rf-sales-about__statement > .wp-block-image img,
.rf-expert-card > .wp-block-image,
.rf-expert-card > .wp-block-image img {
	width: 52px !important;
	height: 52px !important;
	min-width: 52px;
	aspect-ratio: 1;
	border-radius: 50% !important;
	object-fit: cover;
}

.rf-sales-about__statement:has(> .wp-block-image),
.rf-expert-card:has(> .wp-block-image) {
	display: grid !important;
	grid-template-columns: 52px minmax(0, 1fr);
	column-gap: .9rem;
	align-items: center;
}

.rf-sales-about__statement:has(> .wp-block-image) > :where(.is-style-rf-kicker, blockquote),
.rf-expert-card:has(> .wp-block-image) > blockquote {
	grid-column: 1 / -1;
}

.rf-sales-about__statement:has(> .wp-block-image) > .wp-block-image,
.rf-expert-card:has(> .wp-block-image) > .wp-block-image {
	grid-column: 1;
	margin: 0 !important;
}

.rf-sales-about__statement:has(> .wp-block-image) > p:last-child,
.rf-expert-card:has(> .wp-block-image) > p:last-child {
	grid-column: 2;
	margin: 0 !important;
}

/* The coloured outline was an editing reminder, not a public-page style. */
.rf-sales-faq__placeholder {
	outline: 0;
}

.editor-styles-wrapper .rf-sales-faq__placeholder {
	outline: 2px dashed var(--rf-sales-accent);
	outline-offset: -2px;
}

/* Keep the block editor easy to manipulate; the full timeline is front-end UI. */
.editor-styles-wrapper .rf-sales-example .rf-component__columns {
	display: flex !important;
}

.editor-styles-wrapper .rf-sales-example .rf-component__columns > .wp-block-column:last-child {
	display: block;
}

@media (max-width: 900px) {
	.rf-sales-example .rf-component__columns {
		grid-template-columns: 1fr;
	}

	.rf-sales-example .rf-component__columns > .wp-block-column:first-child,
	.rf-sales-example .rf-component__columns > .wp-block-column:last-child > .is-style-rf-kicker,
	.rf-sales-example .rf-component__columns > .wp-block-column:last-child > .is-style-rf-section-heading,
	.rf-sales-example .rf-component__columns > .wp-block-column:last-child > p:not(.is-style-rf-kicker) {
		grid-column: 1;
	}

	.rf-sales-example .rf-component__columns > .wp-block-column:first-child {
		grid-row: 4;
		margin-top: 1rem;
	}

	.rf-sales-example .rf-component__columns > .wp-block-column:last-child > .is-style-rf-kicker {
		grid-row: 1;
	}

	.rf-sales-example .rf-component__columns > .wp-block-column:last-child > .is-style-rf-section-heading {
		grid-row: 2;
	}

	.rf-sales-example .rf-component__columns > .wp-block-column:last-child > p:not(.is-style-rf-kicker) {
		grid-row: 3;
	}

	.rf-sales-example__steps {
		grid-row: 5;
	}

	.rf-sales-example .rf-sales-pullquote {
		grid-row: 6;
	}
}

@media (max-width: 700px) {
	.rf-sales-page .rf-section {
		padding-block: 3.6rem;
	}

	.rf-sales-page .wp-block-heading.is-style-rf-display,
	.rf-sales-page .rf-hero__title {
		font-size: clamp(2.75rem, 11.5vw, 3.8rem);
	}

	.rf-sales-page :where(.rf-section, .rf-component) h2,
	.rf-sales-page .wp-block-heading.is-style-rf-section-heading,
	.rf-sales-page .rf-section__title {
		font-size: clamp(2rem, 8.5vw, 2.75rem);
	}

	.rf-sales-example__steps {
		grid-template-columns: 1fr;
		row-gap: 1rem;
		padding-left: 2.25rem;
	}

	.rf-sales-example__steps::before {
		left: .55rem;
		translate: 0 0;
	}

	.rf-sales-example__steps .rf-numbered-item:nth-child(n) {
		grid-column: 1;
		grid-row: auto;
		text-align: left;
	}

	.rf-sales-example__steps .rf-numbered-item::before {
		left: -1.7rem;
		right: auto;
		width: 1.7rem;
	}

	.rf-sales-example__steps .rf-numbered-item::after,
	.rf-sales-example__steps .rf-numbered-item:nth-child(odd)::after,
	.rf-sales-example__steps .rf-numbered-item:nth-child(even)::after {
		left: calc(-2.25rem + .55rem - 5px);
		right: auto;
	}
}

/* v3.8.6 — restored hero breathing room, calmer typography, robust case-study timeline. */

/*
 * A further reduction for this long-form enrollment page. The proportions stay
 * intact, but the page reads more like an editorial course page and less like
 * an oversized short-form landing page.
 *
 * These variables can still be adjusted per page from Additional CSS.
 */
.rf-sales-page,
.rf-sales-page :where(.rf-component, .rf-section, .rf-form-card) {
	--rf-font-display: clamp(2.85rem, 5.15cqi, 4.45rem);
	--rf-font-section: clamp(1.85rem, 3.2cqi, 2.75rem);
	--rf-font-card: clamp(1.04rem, 1.28cqi, 1.24rem);
	--rf-font-lead: clamp(1rem, 1.14cqi, 1.15rem);
	--rf-font-body: clamp(.94rem, .92cqi, 1.01rem);
}

.rf-sales-page {
	font-size: var(--rf-font-body);
	line-height: 1.68;
}

.rf-sales-page .wp-block-heading.is-style-rf-display,
.rf-sales-page .rf-hero__title {
	font-size: var(--rf-font-display) !important;
	line-height: .99 !important;
}

.rf-sales-page :where(.rf-section, .rf-component) h2,
.rf-sales-page .wp-block-heading.is-style-rf-section-heading,
.rf-sales-page .rf-section__title {
	font-size: var(--rf-font-section) !important;
	line-height: 1.08 !important;
}

.rf-sales-page :where(.rf-section, .rf-component) h3,
.rf-sales-page .wp-block-heading.is-style-rf-card-heading {
	font-size: var(--rf-font-card) !important;
	line-height: 1.24 !important;
}

.rf-sales-page .is-style-rf-lead {
	font-size: var(--rf-font-lead) !important;
	line-height: 1.6 !important;
}

.rf-sales-page .is-style-rf-kicker {
	font-size: .66rem !important;
}

.rf-sales-page .rf-section {
	padding-block: clamp(3.35rem, 5.6vw, 5.05rem);
}

.rf-sales-about__statement blockquote p {
	font-size: clamp(1.12rem, 1.7cqi, 1.48rem) !important;
}

.rf-expert-card blockquote p,
.rf-sales-pullquote p {
	font-size: clamp(.98rem, 1.18cqi, 1.1rem) !important;
}

.rf-sales-phase > summary {
	font-size: clamp(1.05rem, 1.55cqi, 1.35rem);
}

.rf-sales-price-dialogue--james .rf-sales-price-card__price {
	font-size: clamp(4rem, 7.7cqi, 5.9rem) !important;
}

/*
 * Restore the breathing room between the Blocksy header and the first line of
 * hero copy. The bottom remains tighter so the VSL does not drift too far down.
 */
.rf-sales-page .rf-sales-hero {
	padding-top: clamp(6.75rem, 9vw, 8.75rem);
	padding-bottom: clamp(4rem, 5.8vw, 5.35rem);
}

/*
 * Worked example / case study.
 *
 * v3.8.5 used display:contents and an alternating centre-spine layout. That
 * made the section fragile when Gutenberg added wrappers or the copy changed.
 * This version uses two stable columns: a visual case-study panel on the left
 * and one continuous, easy-to-scan vertical process on the right.
 */
.rf-sales-example .rf-component__columns {
	display: grid !important;
	grid-template-columns: minmax(280px, .78fr) minmax(0, 1.22fr);
	align-items: start !important;
	gap: clamp(2.75rem, 6vw, 6rem) !important;
}

.rf-sales-example .rf-component__columns > .wp-block-column:first-child {
	grid-column: 1 !important;
	grid-row: 1 !important;
	width: 100%;
	position: sticky;
	top: clamp(6rem, 10vw, 8rem);
}

.rf-sales-example .rf-component__columns > .wp-block-column:first-child figure {
	width: 100%;
	max-width: 560px;
	margin: 0 auto;
}

.rf-sales-example .rf-component__columns > .wp-block-column:last-child {
	display: block !important;
	grid-column: 2 !important;
	grid-row: 1 !important;
	min-width: 0;
}

.rf-sales-example .rf-component__columns > .wp-block-column:last-child > * {
	grid-column: auto !important;
	grid-row: auto !important;
}

.rf-sales-example .rf-component__columns > .wp-block-column:last-child > .is-style-rf-section-heading {
	margin-block: .75rem 1.15rem;
}

.rf-sales-example .rf-component__columns > .wp-block-column:last-child > p:not(.is-style-rf-kicker) {
	margin-top: 0;
}

.rf-sales-example__steps {
	position: relative;
	display: block !important;
	width: 100%;
	margin: clamp(2.25rem, 4vw, 3.25rem) 0 0;
	padding: .2rem 0 .2rem 4.35rem;
}

.rf-sales-example__steps::before {
	content: "";
	position: absolute;
	top: .85rem;
	bottom: 1rem;
	left: 1.2rem;
	width: 2px;
	background: color-mix(in srgb, var(--rf-sales-ink) 25%, transparent);
	translate: 0 0;
}

.rf-sales-example__steps .rf-numbered-item,
.rf-sales-example__steps .rf-numbered-item:nth-child(n) {
	position: relative;
	display: block;
	box-sizing: border-box;
	width: 100%;
	margin: 0 !important;
	padding: 0 0 clamp(1.4rem, 2.6vw, 2rem);
	border: 0;
	border-bottom: 1px solid color-mix(in srgb, var(--rf-sales-ink) 16%, transparent);
	background: transparent;
	text-align: left;
}

.rf-sales-example__steps .rf-numbered-item + .rf-numbered-item {
	padding-top: clamp(1.4rem, 2.6vw, 2rem);
}

.rf-sales-example__steps .rf-numbered-item:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.rf-sales-example__steps .rf-numbered-item::before {
	content: "";
	position: absolute;
	top: .48rem;
	left: -3.73rem;
	width: 1.15rem;
	height: 1.15rem;
	border: 3px solid var(--rf-sales-soft);
	border-radius: 50%;
	background: var(--rf-sales-accent);
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--rf-sales-ink) 34%, transparent);
}

.rf-sales-example__steps .rf-numbered-item + .rf-numbered-item::before {
	top: calc(clamp(1.4rem, 2.6vw, 2rem) + .48rem);
}

.rf-sales-example__steps .rf-numbered-item::after {
	content: none;
}

.rf-sales-example__steps .rf-numbered-item p {
	margin: 0;
}

.rf-sales-example__steps .rf-numbered-item p + p {
	margin-top: .5rem;
}

.rf-sales-example__steps .rf-numbered-item strong {
	display: block;
	font-family: "Montserrat", sans-serif;
	font-size: clamp(.82rem, 1cqi, .94rem);
	line-height: 1.35;
	letter-spacing: -.01em;
	color: var(--rf-sales-ink);
}

.rf-sales-example .rf-sales-pullquote {
	width: 100%;
	max-width: none;
	margin: clamp(2.1rem, 4vw, 3.2rem) 0 0;
}

/* Preserve a simple editable structure in Gutenberg. */
.editor-styles-wrapper .rf-sales-example .rf-component__columns {
	display: flex !important;
}

.editor-styles-wrapper .rf-sales-example .rf-component__columns > .wp-block-column:first-child {
	position: static;
}

.editor-styles-wrapper .rf-sales-example .rf-sales-example__steps {
	padding-left: 0;
}

.editor-styles-wrapper .rf-sales-example .rf-sales-example__steps::before,
.editor-styles-wrapper .rf-sales-example .rf-numbered-item::before {
	display: none;
}

@media (max-width: 900px) {
	.rf-sales-example .rf-component__columns {
		grid-template-columns: 1fr;
		gap: 2.25rem !important;
	}

	.rf-sales-example .rf-component__columns > .wp-block-column:first-child,
	.rf-sales-example .rf-component__columns > .wp-block-column:last-child {
		grid-column: 1 !important;
		grid-row: auto !important;
	}

	.rf-sales-example .rf-component__columns > .wp-block-column:first-child {
		position: static;
		order: 2;
	}

	.rf-sales-example .rf-component__columns > .wp-block-column:last-child {
		order: 1;
	}

	.rf-sales-example .rf-component__columns > .wp-block-column:first-child figure {
		max-width: 620px;
	}
}

@media (max-width: 700px) {
	.rf-sales-page,
	.rf-sales-page :where(.rf-component, .rf-section, .rf-form-card) {
		--rf-font-display: clamp(2.25rem, 9.8vw, 3rem);
		--rf-font-section: clamp(1.65rem, 7vw, 2.15rem);
		--rf-font-card: clamp(1.02rem, 4.3vw, 1.16rem);
		--rf-font-lead: clamp(.98rem, 4vw, 1.08rem);
		--rf-font-body: clamp(.93rem, 3.8vw, 1rem);
	}

	.rf-sales-page .rf-section {
		padding-block: 3.15rem;
	}

	.rf-sales-page .rf-sales-hero {
		padding-top: 5.25rem;
		padding-bottom: 3.65rem;
	}

	.rf-sales-example__steps {
		padding-left: 3.35rem;
	}

	.rf-sales-example__steps::before {
		left: .9rem;
	}

	.rf-sales-example__steps .rf-numbered-item::before {
		left: -2.98rem;
	}
}


/* v3.9.2 — restore hierarchy in outcomes and the problem pull-quote. */

/*
 * v3.8.6 reduced every H3 through one global card-heading scale. That made the
 * three "What you will develop" titles read like minor labels even though they
 * are the primary anchors inside those cards. Restore the earlier editorial
 * size only in this section, without enlarging every card title on the page.
 */
.rf-sales-outcomes .rf-sales-outcome-card h3,
.rf-sales-outcomes .rf-sales-outcome-card .is-style-rf-card-heading {
	font-size: clamp(1.28rem, 1.7cqi, 1.52rem) !important;
	line-height: 1.18 !important;
	letter-spacing: -.02em;
}

/*
 * The same global reduction left the closing problem statement barely larger
 * than body copy. Give that specific pull-quote enough contrast to function as
 * the section's conclusion while leaving testimonials and other quotes alone.
 */
.rf-sales-problem .rf-sales-pullquote p {
	font-size: clamp(1.15rem, 1.55cqi, 1.36rem) !important;
	line-height: 1.52 !important;
}

@media (max-width: 781px) {
	.rf-sales-outcomes .rf-sales-outcome-card h3,
	.rf-sales-outcomes .rf-sales-outcome-card .is-style-rf-card-heading {
		font-size: clamp(1.24rem, 5vw, 1.45rem) !important;
	}

	.rf-sales-problem .rf-sales-pullquote p {
		font-size: clamp(1.1rem, 4.4vw, 1.28rem) !important;
	}
}


/* v3.9.3 — unified card hierarchy and responsive layout audit. */

/*
 * Card headings that perform the same job should use the same visual scale.
 * This includes audience, problem, development, and delivery cards. Curriculum
 * week titles, pricing, FAQ labels, and profile metadata keep their own scale
 * because they serve different structural roles.
 */
.rf-sales-page :is(
	.rf-sales-fit-grid__card,
	.rf-sales-problem-card,
	.rf-sales-outcome-card,
	.rf-sales-delivery-card
) :is(h3, .is-style-rf-card-heading) {
	font-size: clamp(1.24rem, 1.7cqi, 1.52rem) !important;
	line-height: 1.18 !important;
	letter-spacing: -.02em;
}

/* A featured supporting callout, not another full section heading. */
.rf-sales-page .rf-sales-fit-card :is(h2, h3, .is-style-rf-card-heading) {
	font-size: clamp(1.4rem, 2.15cqi, 1.9rem) !important;
	line-height: 1.14 !important;
	letter-spacing: -.025em;
}

/* Give the section-concluding statement clear separation from body copy. */
.rf-sales-problem .rf-sales-pullquote {
	padding: clamp(1.45rem, 2.6vw, 2rem) clamp(1.5rem, 3vw, 2.2rem);
}

.rf-sales-problem .rf-sales-pullquote p {
	font-size: clamp(1.28rem, 1.85cqi, 1.55rem) !important;
	line-height: 1.46 !important;
	font-weight: 600;
	letter-spacing: -.012em;
}

/*
 * Gutenberg keeps multi-column groups in a single row until its mobile
 * breakpoint. Introduce a true tablet layout before those cards become too
 * narrow, especially now that their headings use one consistent scale.
 */
@media (max-width: 920px) and (min-width: 641px) {
	.rf-sales-fit-grid,
	.rf-sales-outcome-groups,
	.rf-sales-delivery__cards {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: clamp(1rem, 2.4vw, 1.5rem) !important;
	}

	.rf-sales-fit-grid > .wp-block-column,
	.rf-sales-outcome-groups > .wp-block-column,
	.rf-sales-delivery__cards > .wp-block-column {
		width: auto !important;
		min-width: 0;
		margin: 0 !important;
		flex-basis: auto !important;
	}

	/* These groups contain three cards; let the final one use the full row. */
	.rf-sales-outcome-groups > .wp-block-column:last-child,
	.rf-sales-delivery__cards > .wp-block-column:last-child {
		grid-column: 1 / -1;
	}
}

@media (max-width: 781px) {
	/* A more useful portrait size on tablets while keeping biography first-class. */
	.rf-sales-about-v2__profile {
		grid-template-columns: minmax(210px, 260px) minmax(0, 1fr);
		gap: clamp(1.2rem, 3.5vw, 1.75rem);
	}

	.rf-sales-page :is(
		.rf-sales-fit-grid__card,
		.rf-sales-problem-card,
		.rf-sales-outcome-card,
		.rf-sales-delivery-card
	) :is(h3, .is-style-rf-card-heading) {
		font-size: clamp(1.22rem, 4.8vw, 1.42rem) !important;
	}

	.rf-sales-page .rf-sales-fit-card :is(h2, h3, .is-style-rf-card-heading) {
		font-size: clamp(1.35rem, 5.5vw, 1.65rem) !important;
	}

	.rf-sales-problem .rf-sales-pullquote p {
		font-size: clamp(1.18rem, 4.7vw, 1.36rem) !important;
	}
}

@media (max-width: 640px) {
	.rf-sales-fit-grid,
	.rf-sales-outcome-groups,
	.rf-sales-delivery__cards {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr);
		gap: 1rem !important;
	}

	.rf-sales-fit-grid > .wp-block-column,
	.rf-sales-outcome-groups > .wp-block-column,
	.rf-sales-delivery__cards > .wp-block-column,
	.rf-sales-outcome-groups > .wp-block-column:last-child,
	.rf-sales-delivery__cards > .wp-block-column:last-child {
		grid-column: auto;
		width: auto !important;
		margin: 0 !important;
		flex-basis: auto !important;
	}
}

@media (max-width: 560px) {
	/* On phones, a wide portrait reads better than a cramped two-column profile. */
	.rf-sales-about-v2__profile {
		display: block;
	}

	.rf-sales-about-v2__portrait {
		width: min(100%, 360px);
		margin-inline: auto;
	}

	.rf-sales-about-v2__identity {
		margin-top: 1.2rem;
	}

	.rf-sales-about-v2__purpose {
		padding: 1.3rem 1.25rem;
	}

	.rf-sales-pricing .wp-block-buttons,
	.rf-sales-pricing .wp-block-button,
	.rf-sales-pricing .wp-block-button__link {
		width: 100%;
	}
}

@media (max-width: 480px) {
	.rf-sales-page,
	.rf-sales-page :where(.rf-component, .rf-section, .rf-form-card) {
		--rf-font-display: clamp(2rem, 10vw, 2.55rem);
		--rf-font-section: clamp(1.55rem, 7.2vw, 1.95rem);
	}

	.rf-sales-page .rf-sales-hero {
		padding-top: 4.85rem;
		padding-bottom: 3.35rem;
	}

	.rf-sales-problem-card,
	.rf-sales-fit-grid__card,
	.rf-sales-outcome-card,
	.rf-sales-delivery-card {
		padding: 1.4rem;
	}

	.rf-sales-card-number {
		margin-bottom: 1.8rem;
	}
}
