/*
 * RCEFT — supplemental styles.
 * Only layout mechanics that core blocks + theme.json cannot express.
 * Every rule is scoped to a .rceft-* pattern class.
 */

/* ---------- Header / navigation ---------- */

.rceft-nav .wp-block-navigation__container > .wp-block-navigation-item + .wp-block-navigation-item > .wp-block-navigation-item__content::before {
	content: "|";
	font-weight: 400;
	margin-right: clamp(10px, 1.6vw, 30px);
	pointer-events: none;
}

.rceft-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container .wp-block-navigation-item .wp-block-navigation-item__content::before {
	content: none;
}

.rceft-nav .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
}

/* "More Info" dropdown */
.rceft-nav.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container {
	min-width: 220px;
	padding: 8px 0;
	background-color: var(--wp--preset--color--base);
	border: 1px solid currentColor;
	border-radius: 12px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.rceft-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	white-space: nowrap;
}

/* mobile overlay: the submenu is always open, right-aligned under "More Info" */
.rceft-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	min-width: 0;
	padding: 0 !important;
	border: 0;
	box-shadow: none;
	align-items: flex-end;
}

.rceft-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0;
}

/* Current page, as in the design (JOIN bold on the Join page); a dropdown
   parent (Learn EFT) is bold too while one of its sub-pages is open */
.rceft-nav .wp-block-navigation-item__content[aria-current="page"],
.rceft-nav .current-menu-ancestor > .wp-block-navigation-item__content {
	font-weight: 700;
}

.rceft-logo-lockup {
	text-decoration: none;
}

/* ---------- Shared helpers ---------- */

/* Secondary button: outline pill that fills on hover. Set --rceft-btn-fg /
   --rceft-btn-bg on a parent to recolour it (e.g. on the coloured news cards). */
.rceft-btn-outline .wp-block-button__link {
	border: 1.5px solid var(--rceft-btn-fg, var(--wp--preset--color--secondary-dark));
	border-radius: 30px;
	padding: clamp(8px, 0.6vw, 12px) clamp(20px, 1.6vw, 30px);
	background: transparent;
	color: var(--rceft-btn-fg, var(--wp--preset--color--secondary-dark));
	font-size: clamp(14px, 0.94vw, 18px);
	letter-spacing: 0.06em;
	line-height: 1.2;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.rceft-btn-outline .wp-block-button__link:hover,
.rceft-btn-outline .wp-block-button__link:focus-visible {
	background: var(--rceft-btn-fg, var(--wp--preset--color--secondary-dark));
	color: var(--rceft-btn-bg, var(--wp--preset--color--base));
}

.rceft-shadow-text,
.rceft-shadow-text * {
	text-shadow: 0 1px 16px rgba(0, 0, 0, 0.4);
}

.rceft-shadow-text-soft,
.rceft-shadow-text-soft * {
	text-shadow: 0 1px 24px rgba(0, 0, 0, 0.3);
}

/* Responsive card grids (auto-fit keeps the design's fluid column behaviour) */
.rceft-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: clamp(20px, 2vw, 40px);
}

.rceft-grid--directory {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	/* rows get more air than columns: each card ends in a Read more button */
	gap: clamp(40px, 4.688vw, 90px) clamp(16px, 4.010vw, 77px);
}

.rceft-grid--team {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(28px, 3.3vw, 63px) clamp(12px, 3.3vw, 63px);
}

.rceft-grid--photos {
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: clamp(18px, 1.8vw, 34px);
}

/* Divider row: line — FOR — line */
.rceft-rule-row {
	width: min(560px, 80%);
}

.rceft-rule-row .wp-block-separator {
	flex: 1;
	margin: 0;
	border: none;
	border-top: 1px solid currentColor;
	height: 1px;
	opacity: 1;
}

/* ---------- Home hero ---------- */

.rceft-hero-home.wp-block-cover {
	/* the dimensions support injects min-height:unset inline.
	   46vw never exceeds the 2:1 height, so the ratio holds at every width
	   (a fixed 520px floor forced the hero wider than tablet screens). */
	min-height: clamp(276px, 46vw, 845px) !important;
}

/* Readability overlay: darkest behind the bottom-anchored headline, clear at
   the top so the photo stays bright. Core leaves the cover layers at
   z-index auto, so stack them explicitly: photo < shade (1) < text (2). */
.rceft-hero-home.wp-block-cover {
	isolation: isolate;
}

.rceft-hero-home > .wp-block-cover__inner-container {
	z-index: 2;
}

.rceft-hero-home.wp-block-cover::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
	background: linear-gradient(to top, rgb(0 0 0 / 0.6) 0%, rgb(0 0 0 / 0.3) 40%, rgb(0 0 0 / 0) 70%);
	pointer-events: none;
}

/* ---------- Patchwork banner ---------- */

.rceft-patchwork {
	width: 100%;
}

.rceft-patchwork__row {
	display: flex;
	height: clamp(72px, 6.7vw, 128px);
}

.rceft-patchwork__row > .wp-block-group {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	min-width: 0;
	padding: 0 4px;
}

.rceft-patchwork__row > .wp-block-group p {
	white-space: nowrap;
}

.rceft-cell-together { width: 38%; }
.rceft-cell-blobs {
	width: 13.5%;
	background-image: url(../pattern-blobs.svg);
	background-size: cover;
}
.rceft-cell-url { width: 23.5%; }
.rceft-cell-practice { width: 25%; }
.rceft-cell-circles {
	width: 20%;
	background-image: url(../pattern-circles.svg);
	background-size: cover;
}
.rceft-cell-elevate { width: 26.5%; }
.rceft-cell-our { width: 24.5%; }
.rceft-cell-sprites {
	width: 29%;
	flex-direction: row !important;
	gap: clamp(8px, 1.2vw, 22px) !important;
}

.rceft-cell-sprites img {
	width: clamp(34px, 3vw, 58px);
	height: clamp(34px, 3vw, 58px);
}

/* ---------- Event cards ---------- */

/* Poster card (design 788:1048): editable title, text and presenter cut-out on a
   coloured card. Card colour = Cover overlay colour; curls colour = block style
   (inc/block-styles.php), drawn as a mask so any palette colour works. */
.rceft-event-card.wp-block-cover {
	--rceft-curls: var(--wp--preset--color--primary);
	position: relative;
	overflow: hidden;
	border-radius: var(--wp--custom--radius--lg);
}

.rceft-event-card::before {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0;
	background-color: var(--rceft-curls);
	-webkit-mask: url(../pattern-card-curls.svg) center / cover no-repeat;
	mask: url(../pattern-card-curls.svg) center / cover no-repeat;
	pointer-events: none;
}

.rceft-event-card.is-style-curls-dark-green { --rceft-curls: var(--wp--preset--color--green-deep); }
.rceft-event-card.is-style-curls-lavender { --rceft-curls: var(--wp--preset--color--secondary); }
.rceft-event-card.is-style-curls-cream { --rceft-curls: var(--wp--preset--color--base); }
.rceft-event-card.is-style-curls-white { --rceft-curls: #FFFFFF; }

.rceft-event-card.is-style-curls-none::before {
	content: none;
}

/* Presenter: large, anchored to the bottom-left corner */
.rceft-event-card .rceft-event-card__portrait {
	position: absolute;
	z-index: 1;
	left: 0;
	bottom: 0;
	width: 92%;
	height: 54%;
	margin: 0;
}

/* narrowest cards (small tablets, small laptops): the 14px text wraps onto
   more lines, so the presenter starts lower */
@media (min-width: 600px) and (max-width: 799px), (min-width: 1101px) and (max-width: 1279px) {
	.rceft-events-grid .rceft-event-card .rceft-event-card__portrait {
		height: 40%;
	}
}

/* wide screens: the card is roomy enough for a taller presenter */
@media (min-width: 1440px) {
	.rceft-event-card .rceft-event-card__portrait {
		height: 58%;
	}
}

.rceft-event-card .rceft-event-card__portrait img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: left bottom;
}

.rceft-event-card__text {
	margin-left: auto;
	max-width: 100%;
	padding-top: clamp(34px, 3.958vw, 76px);
}

.rceft-event-card__title.wp-block-heading {
	margin: 0 0 clamp(8px, 0.6vw, 12px);
	font-size: clamp(24px, 2.9vw, 56px);
	font-weight: 500;
	line-height: 1.1;
}

.rceft-event-card__content > p {
	margin: 0;
}

/* date/location and blurb: 14px (0.875rem keeps browser zoom; above the audit's 12-13px floor) */
.rceft-event-card__meta {
	font-size: 0.875rem;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

.rceft-event-card__content > .rceft-event-card__desc {
	max-width: max(170px, 10.729vw);
	margin: clamp(12px, 1.458vw, 28px) 0 0 auto;
	font-size: 0.875rem;
	line-height: 1.5;
}

/* Desktop + tablet share one design: keep the desktop column counts */
@media (min-width: 600px) {
	.rceft-grid--photos {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	/* cards keep a third of the row and fill it from the left */
	.rceft-events-grid {
		--rceft-events-gap: clamp(20px, 2vw, 40px);
		grid-template-columns: repeat(auto-fit, calc((100% - 2 * var(--rceft-events-gap)) / 3));
		justify-content: start;
		gap: var(--rceft-events-gap);
	}

	/* core Columns stack below 782px; the footer keeps its desktop row */
	.rceft-footer .wp-block-columns {
		flex-wrap: nowrap !important;
	}
}

/* Tablet: narrower posters, so scale the card chrome down */
@media (min-width: 600px) and (max-width: 1100px) {
	.rceft-events-grid .rceft-event-card.wp-block-cover {
		padding: 16px 16px 16px 14px !important;
		border-radius: 28px !important;
	}

	.rceft-events-grid .rceft-event-card__brand {
		top: 14px;
		left: 14px;
	}

	.rceft-events-grid .rceft-event-card__brand img {
		width: 24px !important;
		height: 24px !important;
	}

	.rceft-events-grid .rceft-event-card__brand p {
		font-size: 14px !important;
	}

	/* two per row: at a third of a tablet screen the text ran into the presenter */
	.rceft-events-grid {
		grid-template-columns: repeat(auto-fit, calc((100% - var(--rceft-events-gap)) / 2));
	}

	.rceft-event-card .rceft-event-card__portrait {
		height: 50%;
	}

	.rceft-event-card__title.wp-block-heading {
		font-size: 32px;
	}

	.rceft-event-card__content > .rceft-event-card__desc {
		max-width: 200px;
	}
}

/* Phones: one card per row */
@media (max-width: 599px) {
	.rceft-events-grid {
		grid-template-columns: minmax(0, 420px);
		justify-content: center;
	}

	.rceft-event-card__title.wp-block-heading {
		font-size: 34px;
	}

	.rceft-event-card__content > .rceft-event-card__desc {
		max-width: 62%;
	}

	.rceft-event-card .rceft-event-card__portrait {
		height: 48%;
	}
}

/* rceft mark stacked over the wordmark, pinned to a card corner */
.rceft-event-card__brand {
	position: absolute !important;
	top: clamp(18px, 3.839vw, 73.7px);
	left: clamp(16px, 1.302vw, 25px);
	z-index: 3;
	margin: 0 !important;
	gap: 2px !important;
}

.rceft-event-card__brand img {
	display: block;
	width: clamp(26px, 2.188vw, 42px);
	height: auto;
}

.rceft-event-card__brand p {
	margin: 0;
	font-size: clamp(17px, 1.615vw, 31px);
	line-height: 1;
}

/* ---------- About: values bar over bridge photo ---------- */

/* Design node 792:1275: pill bar across the bridge photo */
.rceft-values-bar.wp-block-group {
	width: 86%;
	margin-left: auto !important;
	margin-right: auto !important;
	background: var(--wp--preset--color--blue);
	border-radius: clamp(12px, 1.23vw, 23.7px);
	padding: clamp(10px, 1.97vw, 38px) clamp(12px, 2vw, 40px);
	gap: 0 clamp(10px, 1.95vw, 37.5px) !important;
	row-gap: 4px !important;
}

.rceft-values-bar p {
	margin: 0;
	font-size: clamp(12px, 1.3vw, 25px);
	font-weight: 500;
	line-height: 1.04;
	color: var(--wp--preset--color--green-deep);
	white-space: nowrap;
}

/* Bridge photo: nearly full-bleed with the design's 15px side margins */
.rceft-bridge.wp-block-cover.alignfull {
	margin-left: calc(var(--wp--style--root--padding-left) * -1 + 0.8vw) !important;
	margin-right: calc(var(--wp--style--root--padding-right) * -1 + 0.8vw) !important;
	aspect-ratio: 1889 / 925;
	min-height: 0;
	border-radius: clamp(24px, 2.83vw, 54.4px);
	overflow: hidden;
}

/* ---------- Join / Find heroes: decorative circles ---------- */

.rceft-hero-glow {
	position: relative;
	/* clip sideways only: the glow may rise behind the header like the design */
	overflow-x: clip;
}

/* Design 793:3065 + 793:3067 (identical on Join and Find a Therapist):
   the blue glow disc, with the cream rounded shape cutting into its left side */
.rceft-hero-glow::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: -4.9vw;
	left: 5.104vw;
	width: 96.771vw;
	height: 49.5vw;
	background:
		url(../hero-cream-shape.svg) 0 6.708vw / 60.521vw 32.135vw no-repeat,
		url(../img/join-glow-blue.webp) 47.292vw 0 / 49.5vw 49.5vw no-repeat;
	pointer-events: none;
}

/* Design 793:3069: cream disc inside the glow */
.rceft-hero-glow::after {
	content: "";
	position: absolute;
	z-index: -1;
	top: 10.5vw;
	right: 15.7vw;
	width: 18.7vw;
	height: 18.7vw;
	border-radius: 50%;
	background: var(--wp--preset--color--base);
	pointer-events: none;
}

.rceft-hero-join .rceft-hero-rule,
.rceft-hero-find .rceft-hero-rule {
	width: min(937px, 100%);
	margin: clamp(10px, 1vw, 19px) 0 clamp(12px, 1.1vw, 21px);
	border-top-color: var(--wp--preset--color--primary);
	opacity: 0.55;
}

/* Text keeps to the left half, as in the design, so it never runs under the circle */
@media (min-width: 600px) {
	.rceft-hero-join__content {
		max-width: 56% !important;
		/* keep the wide column's left edge (aligned with the logo) */
		margin-left: max(0px, calc((100% - var(--wp--style--global--wide-size)) / 2)) !important;
	}
}

.rceft-hero-join__lead,
.rceft-hero-find__lead {
	max-width: 896px;
	padding-left: clamp(0px, 0.7vw, 14px);
}

.rceft-hero-find__lead {
	margin: 0;
}

.rceft-hero-join__kicker {
	padding-left: clamp(0px, 0.45vw, 9px);
}

.rceft-hero-join > * {
	position: relative;
	z-index: 1;
}

/* ---------- Learn EFT: sort by category ---------- */

/* ---------- Learn EFT: EFIT Essentials collage ---------- */

/* ---------- Learn EFT: Core Skills collage ---------- */

/* ---------- Community carousel ---------- */

/* ---------- Footer ---------- */

.rceft-footer .rceft-footer__logo img {
	margin-right: -14px;
}

.rceft-footer a {
	color: var(--wp--preset--color--green-deep);
}

.rceft-footer a:hover {
	color: var(--wp--preset--color--contrast);
}

/* ---------- Editor parity niceties ---------- */

.rceft-patchwork__row > .wp-block-group.rceft-cell-blobs,
.rceft-patchwork__row > .wp-block-group.rceft-cell-circles {
	min-height: 100%;
}

/* ---------- Utilities used by patterns ---------- */

.rceft-maxw-820 { max-width: 820px; }
.rceft-maxw-900 { max-width: 900px; }
.rceft-maxw-920 { max-width: 920px; }

.rceft-fit {
	width: fit-content;
	min-width: min(520px, 100%);
}

.rceft-link-underline a {
	text-decoration: underline;
	text-underline-offset: 8px;
}

.rceft-rule-row {
	margin-left: auto !important;
	margin-right: auto !important;
}

.rceft-hero-rule {
	width: min(920px, 100%);
	margin: 22px 0 24px;
	border: none;
	border-top: 1px solid var(--wp--preset--color--contrast);
	height: 1px;
	opacity: 1;
}

.rceft-divider-center .wp-block-separator {
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	border: none;
	border-top: 1px solid var(--wp--preset--color--primary);
	height: 1px;
	opacity: 1;
}

/* ---------- Values row sizing ---------- */

.rceft-values > .wp-block-group {
	max-width: 300px;
}

.rceft-values p {
	width: max-content;
	margin-inline: auto;
}

.rceft-values__sprite img {
	width: clamp(140px, 13.3vw, 256px);
	height: clamp(140px, 13.3vw, 256px);
}

/* ---------- Footer logo sizing ---------- */

/* Official lockups (tree mark whose trunk is the r), sized as in the design */
.rceft-logo-lockup,
.rceft-footer__logo {
	margin: 0 !important;
}

.rceft-logo-lockup img {
	display: block;
	width: clamp(110px, 9.2vw, 176px);
	height: auto;
}

.rceft-footer__logo img {
	display: block;
	width: clamp(150px, 20.5vw, 393px);
	height: auto;
}

/* ---------- Event card text placement ---------- */

.rceft-event-card.has-custom-content-position .wp-block-cover__inner-container {
	width: 100%;
}

/* ---------- Story cards ---------- */

/* ---------- Grids: keep children shrinkable ---------- */

.rceft-grid > * {
	min-width: 0;
	margin: 0;
}

/* ---------- Community carousel flex sizing ---------- */

/* ---------- Why join icons ---------- */

/* Design node 794:10 */
.rceft-why {
	position: relative;
}

/* Design node 793:3079: yellow glow rising from the hero into this section */
.rceft-why::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: -17.55vw;
	left: 50%;
	width: 83vw;
	height: 83vw;
	transform: translateX(-51%);
	background: url(../img/join-glow-yellow.webp) center / contain no-repeat;
	pointer-events: none;
}

.rceft-why__row {
	position: relative;
	width: 93.2%;
	border-bottom: 2px solid var(--wp--preset--color--secondary);
	padding-bottom: 4px;
}

.rceft-why__name {
	margin: 0;
	color: #020106;
}

/* Icons sit at the end of each rule, overlapping it slightly */
.rceft-why-icon {
	position: absolute !important;
	right: -6.9%;
	bottom: 8px;
	margin: 0 !important;
}

/* design sizes at 1920: 132 / 109 / 109 / 112px, scaled with the viewport */
.rceft-why-icon img {
	display: block;
	max-width: none;
	height: auto !important;
	width: clamp(46px, 5.7vw, 109px) !important;
}

.rceft-why__item:nth-child(1) .rceft-why-icon img {
	width: clamp(56px, 6.9vw, 132px) !important;
}

.rceft-why__item:nth-child(4) .rceft-why-icon img {
	width: clamp(48px, 5.85vw, 112px) !important;
}

.rceft-why__text {
	margin-top: clamp(16px, 1.7vw, 32px) !important;
	color: #000;
}

/* ---------- EFIT collage cell alignment ---------- */

/* ---------- Gaps WordPress layout sanitizer can't express (clamp) ---------- */

.rceft-nav .wp-block-navigation__container {
	gap: clamp(10px, 1.6vw, 30px);
}

.rceft-footer .wp-block-columns {
	gap: clamp(24px, 3.5vw, 80px);
}

.rceft-values.wp-block-group {
	gap: clamp(40px, 7vw, 150px);
}

/* Anchor absolutely-positioned card elements (brand mark, portrait) to the
   cover itself, not its short inner container; keep flow content above the
   overlay span for painting and hit-testing. */
.rceft-event-card .wp-block-cover__inner-container {
	position: static;
}

.rceft-event-card .wp-block-cover__inner-container > :not(.rceft-event-card__brand):not(.rceft-event-card__portrait) {
	position: relative;
	z-index: 2;
}

/* The design's page wrapper clips horizontal bleed from decorative shapes */
body {
	overflow-x: clip;
}

/* ---------- Mobile hero + patchwork ---------- */

@media (max-width: 599px) {
	/* The 2/1 aspect ratio + 520px min-height forced the hero to 1040px wide */
	.rceft-hero-home.wp-block-cover {
		aspect-ratio: auto !important;
		min-height: clamp(380px, 115vw, 520px) !important;
		border-radius: 32px !important;
	}

	/* the headline wraps to more lines here, so the shade reaches higher */
	.rceft-hero-home.wp-block-cover::before {
		background: linear-gradient(to top, rgb(0 0 0 / 0.65) 0%, rgb(0 0 0 / 0.35) 55%, rgb(0 0 0 / 0) 90%);
	}

	/* Patchwork banner: reflow into two-cell rows */
	.rceft-patchwork {
		max-width: min(520px, 100%);
		margin-inline: auto;
	}

	.rceft-patchwork__row {
		flex-wrap: wrap;
		height: auto;
	}

	.rceft-patchwork__row > .wp-block-group {
		min-height: 64px;
	}

	/* Newsletter capsule: full-width text, sane padding */
	/* ICEEFT intro: drop the capsule outline, let the text use the full width */
	.rceft-iceeft-capsule {
		border: none !important;
		border-radius: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		max-width: 100% !important;
	}

	/* Inline block padding (spacing|70) must be overridden */
	.rceft-newsletter > .wp-block-group {
		max-width: min(560px, 100%);
		margin-inline: auto;
		padding-left: 20px !important;
		padding-right: 20px !important;
		border-radius: 64px !important;
	}

	.rceft-newsletter .wp-block-button {
		font-size: 20px !important;
	}

	.rceft-newsletter .wp-block-button__link {
		padding-left: 24px !important;
		padding-right: 24px !important;
		text-align: center;
	}

	.rceft-cell-together { width: 62%; }
	.rceft-cell-blobs    { width: 38%; }
	.rceft-cell-url      { width: 38%; }
	.rceft-cell-practice { width: 62%; }
	.rceft-cell-circles  { width: 38%; }
	.rceft-cell-elevate  { width: 62%; }
	.rceft-cell-our      { width: 45%; }
	.rceft-cell-sprites  { width: 55%; }
}

/* Section rhythm (clamp() gaps are dropped from block settings, so set here) */
.rceft-why > * + * {
	margin-block-start: clamp(48px, 6.1vw, 117px);
}

.rceft-why__list > * + * {
	margin-block-start: clamp(56px, 7.3vw, 140px);
}

.rceft-faq-card > * + * {
	margin-block-start: clamp(36px, 3.95vw, 76px);
}

.rceft-faq > * + * {
	margin-block-start: clamp(44px, 4.4vw, 84px);
}

/* Soften the glow images' outer edge, as the design's clip does */
.rceft-why::before {
	-webkit-mask-image: radial-gradient(circle closest-side, #000 72%, transparent 100%);
	mask-image: radial-gradient(circle closest-side, #000 72%, transparent 100%);
}

/* ---------- FAQ panel (design node 794:11) ---------- */

.rceft-faq-panel.wp-block-group,
.rceft-faq-card.wp-block-group {
	border-radius: clamp(48px, 8.9vw, 170px);
	box-shadow: 10px 10px 18px rgba(0, 0, 0, 0.95);
}

.rceft-faq-card > .rceft-faq {
	margin-left: 0 !important;
}

/* Panel + card spacing (was inline on the blocks) */
.rceft-faq-panel.wp-block-group {
	padding: clamp(40px, 8.7vw, 167px) clamp(12px, 8.1vw, 156px) clamp(40px, 9.7vw, 186px);
}

.rceft-faq-card.wp-block-group {
	padding: clamp(28px, 1.6vw, 30px) clamp(20px, 12.5vw, 240px) clamp(56px, 6vw, 115px);
}

.rceft-faq__title.wp-block-heading {
	font-size: clamp(44px, 4.64vw, 89px);
	font-weight: 700;
	line-height: 1.03;
	color: #353534;
}

.rceft-faq__item.wp-block-details {
	margin-bottom: 0;
}

.rceft-faq__item > summary {
	position: relative;
	display: block;
	list-style: none;
	cursor: pointer;
	margin: 0;
	padding-bottom: 6px;
	font-size: clamp(26px, 2.23vw, 42.8px);
	font-weight: 300;
	line-height: 1.03;
	color: #020106;
}

.rceft-faq__item > summary::-webkit-details-marker {
	display: none;
}

/* the rule is shorter than the text column, as in the design */
.rceft-faq__item > summary::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 91.3%;
	border-bottom: 2px solid var(--wp--preset--color--secondary);
}

.rceft-faq__item > summary:focus-visible {
	outline: 2px solid var(--wp--preset--color--secondary-deep);
	outline-offset: 4px;
}

.rceft-faq__a {
	margin: clamp(14px, 1.2vw, 23px) 0 0 !important;
	font-size: clamp(17px, 1.08vw, 20.7px);
	font-weight: 300;
	line-height: 1.5;
	color: #000;
}

/* About page (design 792:1075): collapsible, tighter rhythm, more top room */
.rceft-faq-card--accordion.wp-block-group {
	padding-top: clamp(40px, 6.5vw, 125px);
	padding-bottom: clamp(56px, 8.2vw, 157px);
}

.rceft-faq-card--accordion .rceft-faq > * + * {
	margin-block-start: clamp(32px, 2.5vw, 48px);
}

@media (max-width: 599px) {
	.rceft-hero-glow::before {
		top: auto;
		bottom: 0;
		left: auto;
		right: -30vw;
		width: 90vw;
		height: 90vw;
		background: url(../img/join-glow-blue.webp) center / contain no-repeat;
		opacity: 0.6;
	}

	.rceft-hero-glow::after {
		display: none;
	}

	.rceft-why__row {
		width: 100%;
		padding-right: 64px;
	}

	.rceft-why-icon {
		right: 0;
	}

	.rceft-why-icon img,
	.rceft-why__item:nth-child(n) .rceft-why-icon img {
		width: 48px !important;
	}

	.rceft-why__title {
		margin-bottom: 8px;
	}

	.rceft-faq__item > summary::after {
		width: 100%;
	}

	.rceft-faq-panel.wp-block-group,
	.rceft-faq-card.wp-block-group {
		box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.9);
	}
}

/* Join hero title: the manual line break is for tablet/desktop only */
@media (max-width: 599px) {
	.rceft-hero-join h1 br,
	.rceft-about-hero h1 br {
		display: none;
	}
}

/* ---------- About page (design node 792:1075) ---------- */

/* soft blue glow behind the intro + history text, matching the team glow */
.rceft-about-hero {
	position: relative;
	overflow-x: clip;
}

.rceft-about-hero::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: clamp(40px, 6vw, 115px);
	left: 50%;
	width: 77.45vw;
	height: 77.45vw;
	transform: translateX(-50%);
	border-radius: 50%;
	background: radial-gradient(circle closest-side, #B8CCDD 0%, #BACDDC 43%, rgba(237, 232, 220, 0) 100%);
	opacity: 0.6;
	pointer-events: none;
}

.rceft-about-hero > h1 {
	margin-bottom: 0;
}

.rceft-about-rule.wp-block-separator {
	width: min(937px, 100%);
	margin: clamp(14px, 1.3vw, 25px) auto clamp(28px, 2.5vw, 48px) !important;
	border: none;
	border-top: 1px solid var(--wp--preset--color--primary);
	height: 1px;
	opacity: 0.55;
}

.rceft-about-text > p {
	margin: 0;
}

/* one blank line between paragraphs, as in the design */
.rceft-about-text > p + p {
	margin-top: 1.2em !important;
}

/* Team (design node 796:6): soft blue glow disc with a cream centre */
.rceft-team {
	position: relative;
	overflow-x: clip;
}

.rceft-team > * {
	position: relative;
	z-index: 1;
}

.rceft-team::before,
.rceft-team::after {
	content: "";
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	border-radius: 50%;
	pointer-events: none;
}

.rceft-team::before {
	top: 0;
	width: 77.45vw;
	height: 77.45vw;
	background: radial-gradient(circle closest-side, #B8CCDD 0%, #BACDDC 43%, rgba(237, 232, 220, 0) 100%);
	opacity: 0.6;
}

.rceft-team::after {
	/* sits behind the gap between the 2nd and 3rd portraits */
	top: 26.85vw;
	width: 23.74vw;
	height: 23.74vw;
	background: var(--wp--preset--color--base);
}

.rceft-team__title {
	color: #020106;
}

.rceft-team > .rceft-grid--team {
	margin-top: clamp(32px, 3.4vw, 65px) !important;
}

.rceft-team__member.wp-block-group {
	display: flex;
	flex-direction: column;
}

.rceft-team__member > * {
	margin: 0;
}

/* Read more pinned to the bottom so the buttons line up across the row */
.rceft-team__more.wp-block-buttons {
	margin: auto 0 0 !important;
	padding-top: clamp(14px, 1.25vw, 24px);
}

.rceft-team__photo {
	margin: 0 !important;
}

.rceft-team__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 411.5 / 762.6;
	object-fit: cover;
	border-radius: clamp(40px, 4.75vw, 91px);
}

/* per-portrait focal points (a class, not an inline style, keeps the image block valid) */
.rceft-team__photo--cornelius img {
	object-position: 41% 17%;
}

.rceft-team__photo--hillary img {
	object-position: 54% 50%;
}

.rceft-team__photo--gary img {
	object-position: 52% 49%;
}

.rceft-team__photo--maddie img {
	object-position: 59% 50%;
}

.rceft-team__name {
	margin-top: clamp(16px, 1.9vw, 36px) !important;
	font-size: clamp(15px, 1.26vw, 24.2px);
	line-height: 1.04;
	color: var(--wp--preset--color--contrast);
}

.rceft-team__role {
	margin-top: 1px !important;
	font-size: clamp(13px, 0.9vw, 14px);
	line-height: 1.2;
	color: var(--wp--preset--color--contrast);
}

@media (max-width: 599px) {
	.rceft-grid--team {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rceft-team__photo img {
		border-radius: 48px;
	}

	.rceft-team__name {
		font-size: 15px;
	}

	.rceft-team__role {
		font-size: 13px;
	}

	.rceft-team::before {
		width: 140vw;
		height: 140vw;
	}

	.rceft-about-hero::before {
		width: 140vw;
		height: 140vw;
	}

	.rceft-team::after {
		display: none;
	}

	/* the photo is short on phones: let the value pills set the height */
	.rceft-bridge.wp-block-cover.alignfull {
		aspect-ratio: auto;
		min-height: 320px;
	}

	.rceft-values-bar.wp-block-group {
		width: 100%;
		flex-direction: column;
		padding: 16px;
		row-gap: 6px !important;
	}

	.rceft-values-bar p {
		font-size: 13px;
	}

	.rceft-values-bar__sep {
		display: none;
	}
}

/* ---------- Learn EFT (design node 793:1384) ---------- */

.rceft-learn-events {
	padding-top: clamp(32px, 5.417vw, 104px);
}

.rceft-learn-events__title.wp-block-heading {
	margin-bottom: clamp(12px, 0.885vw, 17px);
}

.rceft-learn-events > .rceft-events-grid {
	margin-top: 0 !important;
}

/* Green divider lines */
.rceft-learn-rule.wp-block-separator {
	border: none;
	border-top: 1px solid var(--wp--preset--color--primary);
	height: 1px;
	opacity: 1;
	margin-left: auto !important;
	margin-right: auto !important;
}

.rceft-learn-rule--short.wp-block-separator {
	width: min(48.802vw, 100%);
	margin-top: clamp(32px, 3.073vw, 59px) !important;
	margin-bottom: 0 !important;
}

.rceft-learn-rule--long.wp-block-separator {
	width: 84.219vw;
	margin-top: clamp(48px, 5.885vw, 113px) !important;
	margin-bottom: 0 !important;
}

/* Section headings ("Featured events", "Learn more about"), styled like "Upcoming events" */
.rceft-learn-heading {
	padding-top: clamp(48px, 6.25vw, 120px);
}

.rceft-learn-heading__title.wp-block-heading {
	margin: 0;
}

/* the heading supplies the space above the EFIT poster; keep room for the
   badge, which overhangs the poster top by 13.954% of its height (6.474vw) */
.rceft-learn-heading + .rceft-efit-section {
	padding-top: calc(6.474vw + clamp(24px, 2.5vw, 48px));
}

/* "Learn more about": colored tile links to the ICEEFT event lists */
.rceft-learn-more {
	/* extra room before the newsletter, which adds its own top space */
	padding-bottom: clamp(32px, 3.646vw, 70px);
}

.rceft-learn-links.wp-block-buttons {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: clamp(12px, 1.25vw, 24px);
	margin-top: clamp(20px, 1.823vw, 35px) !important;
}

.rceft-learn-link.wp-block-button {
	--rceft-tile-bg: var(--wp--preset--color--blue);
	--rceft-tile-fg: var(--wp--preset--color--green-deep);
	width: auto;
	margin: 0;
}

.rceft-learn-link--green.wp-block-button { --rceft-tile-bg: var(--wp--preset--color--dark-green); --rceft-tile-fg: var(--wp--preset--color--base); }
.rceft-learn-link--yellow.wp-block-button { --rceft-tile-bg: var(--wp--preset--color--yellow); --rceft-tile-fg: var(--wp--preset--color--green-deep); }
.rceft-learn-link--lavender.wp-block-button { --rceft-tile-bg: var(--wp--preset--color--secondary-dark); --rceft-tile-fg: var(--wp--preset--color--base); }
.rceft-learn-link--white.wp-block-button { --rceft-tile-bg: #FFFFFF; --rceft-tile-fg: var(--wp--preset--color--contrast); }

.rceft-learn-link .wp-block-button__link {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: flex-start;
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	min-height: clamp(130px, 9.375vw, 180px);
	padding: clamp(18px, 1.563vw, 30px);
	border: 1px solid var(--rceft-tile-bg);
	border-radius: clamp(20px, 1.823vw, 35px);
	background: var(--rceft-tile-bg);
	color: var(--rceft-tile-fg);
	font-size: clamp(22px, 1.667vw, 32px);
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.1;
	text-align: left;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.rceft-learn-link--white .wp-block-button__link {
	border-color: #000;
}

.rceft-learn-link__note {
	display: block;
	margin-top: 0.35em;
	font-size: 0.6em;
	letter-spacing: 0.03em;
	opacity: 0.85;
}

/* round arrow badge in the top-right corner: a filled disc (::after)
   with the arrow cut in the tile colour on top (::before) */
.rceft-learn-link .wp-block-button__link::before,
.rceft-learn-link .wp-block-button__link::after {
	content: "";
	position: absolute;
	top: clamp(14px, 1.25vw, 24px);
	right: clamp(14px, 1.25vw, 24px);
	width: clamp(34px, 2.396vw, 46px);
	height: clamp(34px, 2.396vw, 46px);
	transition: transform 0.25s ease;
}

.rceft-learn-link .wp-block-button__link::after {
	border-radius: 50%;
	background: currentColor;
}

.rceft-learn-link .wp-block-button__link::before {
	z-index: 1;
	background: var(--rceft-tile-bg);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 16 16 8M9.5 8H16v6.5' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 60% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 16 16 8M9.5 8H16v6.5' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 60% no-repeat;
}

.rceft-learn-link .wp-block-button__link:hover,
.rceft-learn-link .wp-block-button__link:focus-visible {
	background: var(--rceft-tile-bg);
	color: var(--rceft-tile-fg);
	transform: translateY(-4px);
	box-shadow: 0 14px 28px -16px rgba(0, 0, 0, 0.45);
}

.rceft-learn-link .wp-block-button__link:hover::before,
.rceft-learn-link .wp-block-button__link:focus-visible::before {
	transform: rotate(45deg);
}

.rceft-learn-link .wp-block-button__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
}

.rceft-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

@media (max-width: 1100px) {
	.rceft-learn-links.wp-block-buttons {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.rceft-learn-links.wp-block-buttons {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 420px) {
	.rceft-learn-links.wp-block-buttons {
		grid-template-columns: 1fr;
	}

	.rceft-learn-link .wp-block-button__link {
		min-height: 104px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rceft-learn-link .wp-block-button__link,
	.rceft-learn-link .wp-block-button__link::before {
		transition: none;
	}
}

/* EFIT poster (design node 797:12): a fixed composition that scales with the viewport */
.rceft-efit-section {
	position: relative;
	padding-top: 10.182vw;
	overflow-x: clip;
}

.rceft-efit-section::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: 29.583vw;
	left: 10.292vw;
	width: 81.224vw;
	height: 81.224vw;
	background: url(../img/efit-glow-blue.webp) center / contain no-repeat;
	-webkit-mask-image: radial-gradient(circle closest-side, #000 72%, transparent 100%);
	mask-image: radial-gradient(circle closest-side, #000 72%, transparent 100%);
	pointer-events: none;
}

.rceft-efit.wp-block-group {
	position: relative;
	width: 72.292vw;
	margin-left: 11.875vw !important;
	aspect-ratio: 1388.0 / 890.8;
}

.rceft-efit > * {
	position: absolute !important;
	margin: 0 !important;
	box-sizing: border-box;
}

.rceft-efit p {
	margin: 0;
}

.rceft-efit__photo { left: 0; top: 0; width: 36.023%; height: 68.366%; }
.rceft-efit__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

.rceft-efit__presenter {
	left: 0; top: 68.366%; width: 36.023%; height: 31.634%;
	background: var(--wp--preset--color--secondary);
	padding: 1.333vw 1.042vw 0 1.938vw;
	color: var(--wp--preset--color--base-2);
}

.rceft-efit__kicker { font-size: max(0.75rem, 1.714vw); line-height: 1.2; }
.rceft-efit__name { margin-top: 2.688vw !important; font-size: 3.146vw; line-height: 1.03; letter-spacing: 0.002em; }
.rceft-efit__role { font-size: max(0.75rem, 1.714vw); line-height: 1.03; }

.rceft-efit__head,
.rceft-efit__title,
.rceft-efit__site {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.rceft-efit__head {
	left: 36.023%; top: 0; width: 63.977%; height: 24.192%;
	background: var(--wp--preset--color--blue);
}

.rceft-efit__head-text { font-size: 3.146vw; line-height: 1.2; color: #008D39; }

.rceft-efit__title {
	left: 36.023%; top: 24.192%; width: 63.977%; height: 24.270%;
	background: #008D39;
}

.rceft-efit__title-text { font-size: 4.880vw; font-weight: 700; line-height: 1.03; color: var(--wp--preset--color--base-2); }

.rceft-efit__blurb {
	left: 36.023%; top: 48.462%; width: 41.001%; height: 51.538%;
	background: var(--wp--preset--color--yellow);
	padding: 2.740vw 4.167vw 0 3.948vw;
}

.rceft-efit__blurb-text { font-size: max(0.75rem, 1.714vw); line-height: 1.2; color: var(--wp--preset--color--secondary-deep); }

.rceft-efit__pattern {
	left: 77.024%; top: 48.462%; width: 22.976%; height: 34.104%;
	background: var(--wp--preset--color--blue) url(../pattern-efit-corner.svg) center / cover no-repeat;
}

.rceft-efit__site {
	left: 77.024%; top: 82.566%; width: 22.976%; height: 17.434%;
	background: var(--wp--preset--color--secondary);
}

.rceft-efit__site-text { font-size: max(0.75rem, 2.052vw); line-height: 1.03; color: var(--wp--preset--color--base-2); }

.rceft-efit__badge {
	z-index: 2;
	left: -7.291%; top: -13.954%; width: 17.918%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: #008D39;
	display: flex;
	align-items: center;
	justify-content: center;
}

.rceft-efit__badge-mark { margin: 0; height: 49%; }
.rceft-efit__badge-mark img { height: 100%; width: auto; display: block; }

/* Green REGISTER NOW! buttons */
.rceft-btn-register .wp-block-button__link {
	background: var(--wp--preset--color--dark-green);
	color: #FCFCFF;
	border-radius: clamp(14px, 1.490vw, 28.6px);
	font-size: clamp(15px, 1.458vw, 28px);
	letter-spacing: 0;
	line-height: 1.03;
	padding: clamp(12px, 1.375vw, 26.4px) clamp(22px, 3.104vw, 59.6px);
	white-space: nowrap;
}

.rceft-btn-register .wp-block-button__link:hover {
	background: var(--wp--preset--color--primary);
	color: #FCFCFF;
}

.rceft-efit__cta {
	margin-top: clamp(32px, 3.490vw, 67px) !important;
	/* centre on the page, as in the design, not on the poster */
}

/* Core Skills 2026 (design node 797:13) */
.rceft-cs-section {
	padding-top: clamp(48px, 7.219vw, 138.6px);
	/* the newsletter adds its own ~90px top space */
	padding-bottom: clamp(16px, 2.1vw, 40px);
}

.rceft-cs.wp-block-group {
	position: relative;
	width: 82.464vw;
	margin-left: 11.031vw !important;
	aspect-ratio: 1583.3 / 1020.0;
}

.rceft-cs > * {
	position: absolute !important;
	margin: 0 !important;
	box-sizing: border-box;
}

.rceft-cs p {
	margin: 0;
}

.rceft-cs__photo-bg {
	left: 0.341%; top: 6.137%; width: 35.698%; height: 93.863%;
	border-radius: 3.182vw;
	overflow: hidden;
	background: var(--wp--preset--color--blue) url(../pattern-core-skills-bg.svg) center / cover no-repeat;
}

.rceft-cs__photo {
	position: absolute;
	left: 0; bottom: 0; width: 100%; height: 77.303%;
	margin: 0;
}

.rceft-cs__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 59% 0; display: block; }

.rceft-cs__title {
	left: 0; top: 0; width: 52.574%; height: 12.706%;
	background: var(--wp--preset--color--secondary);
	display: flex;
	align-items: center;
	padding-left: 1.724vw;
}

.rceft-cs__title-text.wp-block-heading {
	margin: 0;
	font-size: 4.917vw;
	font-weight: 700;
	line-height: 1.03;
	color: #EEEBE3;
}

.rceft-cs__meta {
	left: 0; top: 12.706%; width: 52.706%; height: 20.088%;
	background: var(--wp--preset--color--yellow);
	padding: 1.510vw 1.042vw 0 1.964vw;
}

.rceft-cs__meta-text {
	font-size: max(0.75rem, 1.604vw);
	line-height: 1.656;
	letter-spacing: 0.078vw;
	color: #000;
}

.rceft-cs__meta-text strong { font-weight: 600; }
.rceft-cs__meta-text sup { font-size: max(0.75rem, 0.58em); }

.rceft-cs__pitch {
	left: 28.125%; top: 32.794%; width: 71.875%; height: 24.363%;
	background: #008D39;
	padding: 2.578vw 7.812vw 0 4.224vw;
}

.rceft-cs__pitch-text { font-size: max(0.75rem, 1.823vw); line-height: 1.2; color: var(--wp--preset--color--base-2); }

.rceft-cs__presenter {
	left: 28.125%; top: 57.147%; width: 71.875%; height: 13.853%;
	background: var(--wp--preset--color--secondary);
	padding: 0.906vw 2.083vw 0 5.010vw;
	color: var(--wp--preset--color--base-2);
}

.rceft-cs__name { font-size: 3.146vw; line-height: 1.03; }
.rceft-cs__role { font-size: max(0.75rem, 1.714vw); line-height: 1.03; }

.rceft-cs__cta {
	left: 58.012%; top: 83.529%; width: auto;
}

/* Phones and small tablets: the posters stack into readable blocks
   (below 768px the scaled poster text would drop under 12px) */
@media (max-width: 767px) {
	.rceft-efit-section {
		padding-top: 88px;
	}

	/* the badge overhangs the poster by 56px here */
	.rceft-learn-heading + .rceft-efit-section {
		padding-top: 80px;
	}

	.rceft-efit-section::before {
		top: 240px;
		left: -20vw;
		width: 140vw;
		height: 140vw;
	}

	.rceft-efit.wp-block-group,
	.rceft-cs.wp-block-group {
		width: auto;
		margin-left: 0 !important;
		aspect-ratio: auto;
		display: grid;
		grid-template-columns: 1fr 1fr;
	}

	.rceft-efit > *,
	.rceft-cs > * {
		position: relative !important;
		left: auto !important;
		top: auto !important;
		width: auto !important;
		height: auto !important;
	}

	.rceft-efit__badge {
		position: absolute !important;
		left: -8px !important;
		top: -56px !important;
		width: 96px !important;
		height: 96px !important;
	}

	.rceft-efit__head,
	.rceft-efit__title,
	.rceft-efit__photo,
	.rceft-efit__presenter,
	.rceft-efit__blurb,
	.rceft-cs__title,
	.rceft-cs__meta,
	.rceft-cs__pitch,
	.rceft-cs__presenter,
	.rceft-cs__cta {
		grid-column: 1 / -1;
	}

	.rceft-efit__head { order: 1; padding: 20px 16px; }
	.rceft-efit__title { order: 2; padding: 18px 16px; }
	.rceft-efit__photo { order: 3; aspect-ratio: 500 / 609; }
	.rceft-efit__presenter { order: 4; padding: 18px 20px 20px; }
	.rceft-efit__blurb { order: 5; padding: 22px 20px; }
	.rceft-efit__pattern { order: 6; min-height: 120px; }
	.rceft-efit__site { order: 7; min-height: 120px; }

	.rceft-efit__head-text { font-size: 22px; }
	.rceft-efit__title-text { font-size: 34px; }
	.rceft-efit__kicker,
	.rceft-efit__role { font-size: 16px; }
	.rceft-efit__name { margin-top: 14px !important; font-size: 28px; }
	.rceft-efit__blurb-text { font-size: 18px; }
	.rceft-efit__site-text { font-size: 20px; }

	.rceft-learn-rule--long.wp-block-separator {
		width: calc(100% - 40px);
	}

	.rceft-cs__title { order: 1; padding: 16px 20px; }
	.rceft-cs__meta { order: 2; padding: 16px 20px; }
	.rceft-cs__photo-bg { order: 3; grid-column: 1 / -1; aspect-ratio: 565 / 740; border-radius: 0 0 40px 40px; }
	.rceft-cs__photo { height: 100%; }
	.rceft-cs__pitch { order: 4; padding: 22px 20px; }
	.rceft-cs__presenter { order: 5; padding: 18px 20px 20px; }
	.rceft-cs__cta { order: 6; margin-top: 28px !important; }

	.rceft-cs__title-text.wp-block-heading { font-size: 36px; }
	.rceft-cs__meta-text { font-size: 15px; letter-spacing: 1px; }
	.rceft-cs__pitch-text { font-size: 18px; }
	.rceft-cs__name { font-size: 26px; }
	.rceft-cs__role { font-size: 15px; }
}

/* ---------- Find a Therapist (design node 793:1909) ---------- */

.rceft-hero-find {
	padding-top: clamp(72px, 14.635vw, 281px);
	/* the portraits follow the heading directly (no section title in between) */
	padding-bottom: clamp(40px, 8.333vw, 160px);
}

.rceft-hero-find__title.wp-block-heading {
	margin: 0;
	color: var(--wp--preset--color--primary);
}

/* card = portrait frame + Read more button below it */
.rceft-dir-card.wp-block-group {
	display: flex;
	flex-direction: column;
	gap: clamp(16px, 1.458vw, 28px);
	margin: 0;
}

/* pinned to the bottom so buttons line up across a row (phones show
   credentials of different lengths under the portrait) */
.rceft-dir-card__more.wp-block-buttons {
	margin: auto 0 0 !important;
}

.rceft-dir-card__frame.wp-block-group {
	position: relative;
	margin: 0 !important;
	aspect-ratio: 536 / 632.4;
	/* 114.5px corners on a 536 x 632 card */
	border-radius: 21.36% / 18.1%;
	overflow: hidden;
	background: var(--wp--preset--color--base-2);
}

.rceft-dir-card__photo {
	position: absolute !important;
	inset: 0;
	margin: 0 !important;
}

.rceft-dir-card__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* per-portrait focal points (a class, not an inline style, keeps the image block valid) */
.rceft-dir-card__photo--cornelius img {
	object-position: 50% 42%;
}

.rceft-dir-card__photo--karen img {
	object-position: 70% 7%;
}

.rceft-dir-card__photo--monica img {
	object-position: 81% 19%;
}

.rceft-dir-card__photo--gary img {
	object-position: 21% 17%;
}

.rceft-dir-card__photo--hillary img {
	object-position: 68% 7%;
}

.rceft-dir-card__photo--maddie img {
	object-position: 0% 34%;
}

.rceft-dir-card__photo--ashely img {
	object-position: 94% 46%;
}

.rceft-dir-card__photo--gina img {
	object-position: 100% 44%;
}

.rceft-dir-card__photo--grace img {
	object-position: 94% 17%;
}

/* names line up across a row, as in the design (top at 83.2% of the card) */
.rceft-dir-card__text {
	position: absolute !important;
	top: 83.2%;
	left: 4%;
	right: 4%;
	margin: 0 !important;
	color: #FFFFFF;
	text-shadow: 0 1px 10px rgba(0, 0, 0, 0.35);
}

.rceft-dir-card__text > * {
	margin: 0 !important;
}

.rceft-dir-card__name {
	font-size: clamp(16px, 1.458vw, 28px);
	line-height: 1.04;
}

.rceft-dir-card__creds {
	margin-top: 2px !important;
	font-size: clamp(12px, 0.917vw, 17.6px);
	font-weight: 600;
	line-height: 1.08;
}

.rceft-find-banner {
	padding-top: clamp(72px, 17.604vw, 338px);
}

/* Patchwork: the design's second row is slightly taller (139 vs 129px) */
@media (min-width: 600px) {
	.rceft-patchwork__row + .rceft-patchwork__row {
		height: clamp(78px, 7.224vw, 138.7px);
	}
}

/* Tablet: narrower cards, so anchor the text to the bottom instead */
@media (min-width: 600px) and (max-width: 1100px) {
	.rceft-dir-card__text {
		top: auto;
		bottom: 7%;
	}

	.rceft-dir-card__name {
		font-size: clamp(14px, 1.9vw, 20px);
	}

	.rceft-dir-card__creds {
		font-size: clamp(12px, 1.5vw, 13px);
	}
}

/* Phones: two columns of cards with the text along the bottom */
@media (max-width: 599px) {
	.rceft-hero-find__title br {
		display: none;
	}

	.rceft-grid--directory {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px 12px;
	}

	.rceft-dir-card__frame.wp-block-group {
		border-radius: 28px;
	}

	.rceft-dir-card__frame.wp-block-group::after {
		content: "";
		position: absolute;
		inset: 45% 0 0;
		background: linear-gradient(to top, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0));
		pointer-events: none;
	}

	.rceft-dir-card__text {
		z-index: 1;
		top: auto;
		bottom: 9px;
		left: 6px;
		right: 6px;
	}

	.rceft-dir-card__name {
		font-size: 15px;
		line-height: 1.15;
	}

	.rceft-dir-card__creds {
		font-size: 12px;
		line-height: 1.2;
	}
}

/* ---------- Footer (design node 799:7, same on every page) ---------- */

.rceft-footer.wp-block-group {
	padding: clamp(40px, 4.8vw, 92px) 5.677vw clamp(40px, 4.8vw, 92px) 3.385vw !important;
}

.rceft-footer > .wp-block-columns {
	max-width: none !important;
	margin: 0 !important;
}

/* every footer line sits on a 39px pitch (24.9px type) */
.rceft-footer p,
.rceft-footer .rceft-footer-nav {
	font-size: clamp(14px, 1.297vw, 24.9px) !important;
	letter-spacing: 0 !important;
	line-height: 1.566 !important;
}

.rceft-footer p {
	margin: 0 !important;
}

.rceft-footer .rceft-footer-nav .wp-block-navigation__container {
	gap: clamp(6px, 0.6vw, 12px) !important;
}

/* one empty line between the phone and email pairs */
.rceft-footer .wp-block-group > p.rceft-footer__email-label {
	margin-top: 1.566em !important;
}

@media (min-width: 600px) {
	/* columns end where the design's right-aligned text ends; centred vertically */
	.rceft-footer > .wp-block-columns {
		display: grid !important;
		grid-template-columns: 392.5fr 401fr 343.5fr 609.5fr;
		align-items: center;
		gap: 0 !important;
	}

	.rceft-footer > .wp-block-columns > .wp-block-column {
		align-self: center !important;
		min-width: 0;
	}
}

/* Find a Therapist: the design's spacing around the newsletter */
.rceft-find-banner + .rceft-newsletter.wp-block-group {
	padding-top: clamp(72px, 19.010vw, 365px) !important;
	padding-bottom: clamp(48px, 7.552vw, 145px) !important;
}

/* The legal text's design line breaks only fit the desktop column */
@media (max-width: 1100px) {
	.rceft-footer p br {
		display: none;
	}
}

@media (max-width: 599px) {
	/* odd card count: centre the last card under the two columns */
	.rceft-grid--directory > .rceft-dir-card:last-child:nth-child(odd) {
		grid-column: 1 / -1;
		justify-self: center;
		width: calc(50% - 6px);
	}
}

/* ---------- Community (design node 793:2263) ---------- */

.rceft-community {
	position: relative;
	padding-top: clamp(56px, 15.104vw, 290px);
	overflow-x: clip;
}

/* soft yellow disc behind the patchwork and title (793:2271) */
.rceft-community::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: -15.156vw;
	left: 10.328vw;
	width: 79.333vw;
	height: 79.333vw;
	border-radius: 50%;
	background: radial-gradient(circle closest-side, rgba(255, 230, 144, 0.5) 0%, rgba(254, 230, 146, 0.5) 41.4%, rgba(237, 233, 220, 0) 100%);
	pointer-events: none;
}

/* Latest news grid (800:5) — a Query Loop of Posts (patterns/community-stories.php) */
.rceft-stories {
	padding-top: clamp(64px, 9.427vw, 181px);
}

.rceft-stories__title.wp-block-heading {
	margin: 0;
}

.rceft-stories__query.wp-block-query {
	margin-top: clamp(24px, 2.438vw, 46.8px) !important;
}

.rceft-stories__grid.wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(20px, 2.318vw, 44.5px);
	width: 96.927vw;
	max-width: none !important;
	margin: 0 0 0 calc(50% - 48.464vw) !important;
	padding: 0;
	list-style: none;
}

.rceft-stories__grid.wp-block-post-template > li {
	display: flex;
	margin: 0 !important;
}

/* News card: photo on top, colored body below; the whole card opens the story */
.rceft-news-card.wp-block-group {
	--rceft-card-bg: #FFFFFF;
	--rceft-card-fg: #000;
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	margin: 0 !important;
	border: 1px solid #000;
	border-radius: clamp(24px, 2.604vw, 50px);
	overflow: hidden;
	background: var(--rceft-card-bg);
	color: var(--rceft-card-fg);
	text-align: left;
}

/* Cards rotate white, green, lavender like the design */
.rceft-stories__grid > li:nth-child(3n+2) .rceft-news-card.wp-block-group {
	--rceft-card-bg: #007324;
	--rceft-card-fg: #EEEBE3;
	border-color: transparent;
}

.rceft-stories__grid > li:nth-child(3n) .rceft-news-card.wp-block-group {
	--rceft-card-bg: var(--wp--preset--color--secondary-dark);
	--rceft-card-fg: #EEEBE3;
	border-color: transparent;
}

.rceft-news-card .rceft-news-card__photo {
	margin: 0 !important;
	aspect-ratio: 592 / 353.7;
	overflow: hidden;
}

.rceft-news-card .rceft-news-card__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.rceft-news-card__body.wp-block-group {
	display: flex;
	flex: 1;
	flex-direction: column;
	margin: 0 !important;
	padding: clamp(20px, 2.083vw, 40px) clamp(20px, 2.604vw, 50px) clamp(20px, 2.083vw, 40px);
}

.rceft-news-card .rceft-news-card__title {
	margin: 0;
	font-size: clamp(22px, 1.875vw, 36px);
	font-weight: 400;
	line-height: 1.1;
	color: inherit;
	text-wrap: balance;
}

.rceft-news-card .rceft-news-card__text {
	margin: clamp(12px, 1.25vw, 24px) 0 clamp(18px, 1.667vw, 32px) !important;
	font-size: clamp(15px, 1.016vw, 19.5px);
	line-height: 1.4;
	text-wrap: pretty;
}

.rceft-news-card__text .wp-block-post-excerpt__excerpt {
	margin: 0;
}

/* Read more: outline pill at the bottom right so buttons line up across a row */
.rceft-news-card a.rceft-news-card__more {
	align-self: flex-end;
	margin-top: auto !important;
	border: 1.5px solid var(--rceft-card-fg);
	border-radius: 30px;
	padding: clamp(8px, 0.6vw, 12px) clamp(20px, 1.6vw, 30px);
	background: transparent;
	color: var(--rceft-card-fg);
	font-size: clamp(14px, 0.94vw, 18px);
	letter-spacing: 0.06em;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.rceft-news-card:hover a.rceft-news-card__more,
.rceft-news-card a.rceft-news-card__more:focus-visible {
	background: var(--rceft-card-fg);
	color: var(--rceft-card-bg);
}

.rceft-news-card:hover .rceft-news-card__photo img {
	transform: scale(1.03);
}

.rceft-news-card:has(a.rceft-news-card__more:focus-visible) {
	outline: 2px solid var(--wp--preset--color--secondary-deep);
	outline-offset: 4px;
}

.rceft-news-card a.rceft-news-card__more:focus-visible {
	outline: none;
}

/* The full post is only shown in the Read more modal (assets/js/news-stories.js) */
.wp-block-post-content.rceft-news-card__story {
	display: none;
}

.rceft-stories__pagination.wp-block-query-pagination {
	margin-top: clamp(32px, 3vw, 56px) !important;
	gap: 12px;
	font-size: 18px;
}

.rceft-stories__pagination a {
	color: var(--wp--preset--color--secondary-dark);
}

.rceft-stories + .rceft-newsletter.wp-block-group {
	padding-top: clamp(56px, 6.562vw, 126px) !important;
	padding-bottom: clamp(48px, 7.604vw, 146px) !important;
}

/* Below 900px three cards get too narrow: one centred column */
@media (max-width: 899px) {
	.rceft-stories__grid.wp-block-post-template {
		grid-template-columns: minmax(0, 560px);
		justify-content: center;
		width: auto;
		margin-left: 0 !important;
	}
}

@media (max-width: 599px) {
	.rceft-community::before {
		top: -40px;
		left: -20vw;
		width: 140vw;
		height: 140vw;
	}
}

/* ---------- Accessibility: focus ring + tap targets ---------- */

/* One visible keyboard focus ring for every control */
:where(a, button, summary, [role="button"], [tabindex]:not([tabindex="-1"])):focus-visible {
	outline: 2px solid var(--wp--preset--color--secondary-deep);
	outline-offset: 4px;
}

/* Bigger hit areas that leave the layout untouched */
.rceft-link-underline a {
	display: inline-block;
	padding-block: 14px;
	margin-block: -14px;
}

/* Phones and touch screens: 44px rows for the small text links */
@media (max-width: 599px), (pointer: coarse) {
	.rceft-footer a,
	.rceft-nav .wp-block-navigation-item__content {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}

	/* the 44px rows already space the footer menu */
	.rceft-footer .rceft-footer-nav .wp-block-navigation__container {
		gap: 0 !important;
	}
}

/* Small tablets: keep the stacked posters at a readable width, centred */
@media (min-width: 600px) and (max-width: 767px) {
	.rceft-efit.wp-block-group,
	.rceft-cs.wp-block-group {
		max-width: 520px;
		margin-inline: auto !important;
	}
}

/* Phones: name and credentials sit under the portrait at a readable size
   (overlaid at 12px+ they covered the faces) */
@media (max-width: 599px) {
	.rceft-grid--directory {
		gap: 36px 12px;
	}

	.rceft-dir-card__frame.wp-block-group {
		aspect-ratio: auto;
		border-radius: 0;
		overflow: visible;
		background: transparent;
	}

	.rceft-dir-card__frame.wp-block-group::after {
		content: none;
	}

	.rceft-dir-card__photo {
		position: relative !important;
		inset: auto;
		aspect-ratio: 536 / 632.4;
		border-radius: 28px;
		overflow: hidden;
	}

	.rceft-dir-card__text {
		position: static !important;
		margin-top: 8px !important;
		color: var(--wp--preset--color--contrast);
		text-shadow: none;
	}
}

/* Group block "Grid" layout with "Stack on mobile" on (inc/grid-stack.php).
   Two classes beat core's single .wp-container-* grid-template-columns rule. */
@media (max-width: 599px) {
	.rceft-stack-mobile.is-layout-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.rceft-stack-mobile.is-layout-grid > * {
		grid-column: auto;
	}
}

/* Click-to-zoom flyers (inc/image-zoom.php, assets/js/image-zoom.js) */
.rceft-zoomable__trigger {
	position: relative;
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	background: none;
	cursor: zoom-in;
}

.rceft-zoomable__trigger img {
	display: block;
	width: 100%;
	height: auto;
}

.rceft-zoomable__trigger:focus-visible {
	outline: 3px solid var(--wp--preset--color--primary);
	outline-offset: 4px;
}

/* Magnifier badge: always visible so it's clear the flyer opens. */
.rceft-zoomable__badge {
	position: absolute;
	top: 12px;
	right: 12px;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--wp--preset--color--primary);
	color: #fff;
	box-shadow: 0 2px 8px rgb(0 0 0 / 0.25);
	transition: transform 0.2s ease, background-color 0.2s ease;
}

.rceft-zoomable__trigger:hover .rceft-zoomable__badge,
.rceft-zoomable__trigger:focus-visible .rceft-zoomable__badge {
	transform: scale(1.1);
	background: var(--wp--preset--color--green-deep);
}

.rceft-zoom-open {
	overflow: hidden;
}

.rceft-zoom {
	width: 100vw;
	max-width: none;
	height: 100dvh;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #fff;
}

.rceft-zoom::backdrop {
	background: rgb(0 0 0 / 0.88);
}

.rceft-zoom__stage {
	display: flex;
	width: 100%;
	height: 100%;
	padding: 56px 16px 16px;
	box-sizing: border-box;
	overflow: auto;
	overscroll-behavior: contain;
}

/* margin:auto centres while fitted and still lets a zoomed image scroll left/up. */
.rceft-zoom__img {
	margin: auto;
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	cursor: zoom-in;
	background: #fff;
}

.rceft-zoom.is-zoomed .rceft-zoom__img {
	max-width: none;
	max-height: none;
	cursor: zoom-out;
}

.rceft-zoom__close {
	position: fixed;
	top: 8px;
	right: 8px;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgb(0 0 0 / 0.6);
	color: #fff;
	cursor: pointer;
}

.rceft-zoom__close:hover,
.rceft-zoom__close:focus-visible {
	background: rgb(0 0 0 / 0.85);
}

.rceft-zoom__close:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.rceft-zoom__hint {
	position: fixed;
	top: 18px;
	left: 50%;
	margin: 0;
	transform: translateX(-50%);
	font-size: 14px;
	pointer-events: none;
	white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
	.rceft-zoomable__badge {
		transition: none;
	}
}

/* Homepage News card: latest 3 posts, photo + title (patterns/community-card.php).
   The title link covers the whole item and opens the story modal. */
.rceft-news-teasers .wp-block-post-template {
	margin: 0;
	padding: 0;
	list-style: none;
}

.rceft-news-teaser.wp-block-group {
	position: relative;
	margin: 0;
}

.rceft-news-teaser .rceft-news-teaser__photo {
	margin: 0;
	border-radius: 24px;
	overflow: hidden;
}

.rceft-news-teaser .rceft-news-teaser__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.rceft-news-teaser .rceft-news-teaser__title {
	margin: clamp(12px, 1vw, 18px) 0 0;
	font-size: clamp(18px, 1.25vw, 24px);
	font-weight: 400;
	line-height: 1.25;
	text-wrap: balance;
}

.rceft-news-teaser .rceft-news-teaser__title a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

.rceft-news-teaser:hover .rceft-news-teaser__title a,
.rceft-news-teaser .rceft-news-teaser__title a:focus-visible {
	color: var(--wp--preset--color--secondary-dark);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.rceft-news-teaser:hover .rceft-news-teaser__photo img {
	transform: scale(1.03);
}

.rceft-news-teaser:has(.rceft-news-teaser__title a:focus-visible) {
	outline: 2px solid var(--wp--preset--color--secondary-deep);
	outline-offset: 6px;
	border-radius: 24px;
}

.rceft-news-teaser .rceft-news-teaser__title a:focus-visible {
	outline: none;
}

@media (prefers-reduced-motion: reduce) {
	.rceft-news-teaser .rceft-news-teaser__photo img {
		transition: none;
	}
}

/* Newsletter sign-up form (inc/newsletter.php, rceft/newsletter-form block).
   Starts as the design's single CTA button; clicking it reveals the email
   field + Subscribe in a transparent outlined pill (stacked on phones). */
.rceft-newsletter-form {
	width: min(880px, 100%);
	margin-inline: auto;
	text-align: center;
}

/* CTA button: same look as the design's original newsletter button */
.rceft-newsletter-form__open.wp-element-button {
	padding: clamp(12px, 0.94vw, 18px) clamp(28px, 4.7vw, 90px);
	border: 0;
	border-radius: 28px;
	background: var(--wp--preset--color--secondary-dark);
	color: #fff;
	font-size: clamp(22px, 2.1vw, 40.3px);
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.rceft-newsletter-form__open.wp-element-button:hover,
.rceft-newsletter-form__open.wp-element-button:focus-visible {
	background: var(--wp--preset--color--secondary-deep);
}

.rceft-newsletter-form__open.wp-element-button:focus-visible {
	outline: 2px solid var(--wp--preset--color--secondary-deep);
	outline-offset: 3px;
}

.rceft-newsletter-form.is-collapsed .rceft-newsletter-form__row,
.rceft-newsletter-form.is-done .rceft-newsletter-form__row {
	display: none;
}

.rceft-newsletter-form__row {
	display: flex;
	gap: 8px;
	padding: 6px;
	border: 2px solid var(--wp--preset--color--secondary-dark);
	border-radius: 999px;
	text-align: left;
	animation: rceft-newsletter-in 0.25s ease;
}

@keyframes rceft-newsletter-in {
	from { opacity: 0; transform: scale(0.97); }
	to { opacity: 1; transform: none; }
}

.rceft-newsletter-form__email {
	flex: 1;
	min-width: 0;
	padding: 0 clamp(16px, 1.5vw, 28px);
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: clamp(17px, 1.25vw, 24px);
}

.rceft-newsletter-form__email::placeholder {
	color: var(--wp--preset--color--gray-text);
}

.rceft-newsletter-form__email:focus {
	outline: none;
}

/* Focus: deeper border + soft halo (an outline read as a double border) */
.rceft-newsletter-form__row:focus-within {
	border-color: var(--wp--preset--color--secondary-deep);
	box-shadow: 0 0 0 4px rgb(128 132 201 / 0.3);
}

.rceft-newsletter-form__submit.wp-element-button {
	flex: none;
	padding: clamp(12px, 0.94vw, 18px) clamp(24px, 2.6vw, 50px);
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--secondary-dark);
	color: #fff;
	font-size: clamp(17px, 1.25vw, 24px);
	font-weight: 400;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.rceft-newsletter-form__submit.wp-element-button:hover,
.rceft-newsletter-form__submit.wp-element-button:focus-visible {
	background: var(--wp--preset--color--secondary-deep);
}

.rceft-newsletter-form__submit.wp-element-button:focus-visible {
	outline: 2px solid #fff;
	outline-offset: -5px;
}

.rceft-newsletter-form.is-busy .rceft-newsletter-form__submit {
	opacity: 0.7;
	cursor: progress;
}

/* Honeypot: off-screen for people, still filled in by bots */
.rceft-newsletter-form__trap {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.rceft-newsletter-form__message {
	min-height: 1.5em;
	margin: 12px 0 0;
	font-size: clamp(15px, 1vw, 18px);
	color: var(--wp--preset--color--green-deep);
}

.rceft-newsletter-form.is-done .rceft-newsletter-form__message {
	margin-top: 0;
	font-size: clamp(17px, 1.25vw, 24px);
}

.rceft-newsletter-form__message.is-error {
	color: #B42318;
}

.rceft-newsletter-form__message:empty {
	display: none;
}

@media (max-width: 599px) {
	.rceft-newsletter-form__open.wp-element-button {
		width: 100%;
		padding: 14px 24px;
		font-size: 20px;
	}

	.rceft-newsletter-form__row {
		flex-direction: column;
		padding: 0;
		border: 0;
		border-radius: 0;
	}

	.rceft-newsletter-form__email {
		padding: 14px 20px;
		border: 2px solid var(--wp--preset--color--secondary-dark);
	}

	.rceft-newsletter-form__row:focus-within {
		box-shadow: none;
	}

	.rceft-newsletter-form__email:focus {
		border-color: var(--wp--preset--color--secondary-deep);
		box-shadow: 0 0 0 4px rgb(128 132 201 / 0.3);
	}

	.rceft-newsletter-form__submit.wp-element-button {
		width: 100%;
		padding: 14px 20px;
		font-size: 18px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rceft-newsletter-form__row {
		animation: none;
	}
}

/* Contact page (templates/page-contact.html, patterns/contact-form.php):
   brand-color rule, Formidable form beside a photo with an offset frame. */
.rceft-contact.wp-block-group {
	/* line up with the page text column above */
	max-width: var(--wp--style--global--content-size) !important;
	margin-top: clamp(40px, 5vw, 96px) !important;
	margin-inline: auto !important;
}

/* Divider in the patchwork colours */
.rceft-contact__rule.wp-block-separator {
	width: min(860px, 100%);
	max-width: none;
	height: 8px;
	margin: 0 auto clamp(40px, 5vw, 96px) !important;
	border: 0;
	opacity: 1;
	background: linear-gradient(90deg,
		var(--wp--preset--color--secondary) 0 12%,
		var(--wp--preset--color--yellow) 12% 50%,
		var(--wp--preset--color--primary) 50% 88%,
		var(--wp--preset--color--blue) 88% 100%);
}

.rceft-contact__columns.wp-block-columns {
	align-items: center !important;
	/* room for the photo frame, which sticks out to the left */
	column-gap: clamp(56px, 7vw, 128px) !important;
	margin: 0;
}

/* Formidable: pill inputs in the theme colours (overrides its default style) */
.rceft-contact .with_frm_style .frm_form_field {
	margin-bottom: clamp(18px, 1.5vw, 26px);
}

.rceft-contact .with_frm_style .frm_primary_label {
	margin-bottom: 8px;
	padding: 0;
	color: var(--wp--preset--color--contrast);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rceft-contact .with_frm_style .frm_required {
	color: var(--wp--preset--color--secondary-dark);
}

.rceft-contact .with_frm_style input[type="text"],
.rceft-contact .with_frm_style input[type="email"],
.rceft-contact .with_frm_style textarea {
	width: 100%;
	height: auto;
	padding: 14px 22px;
	border: 1.5px solid var(--wp--preset--color--secondary-dark);
	border-radius: 999px;
	background: transparent;
	box-shadow: none;
	color: var(--wp--preset--color--contrast);
	font-family: inherit;
	font-size: 17px;
	line-height: 1.4;
}

.rceft-contact .with_frm_style textarea {
	min-height: 160px;
	border-radius: 28px;
	resize: vertical;
}

.rceft-contact .with_frm_style input::placeholder,
.rceft-contact .with_frm_style textarea::placeholder {
	color: var(--wp--preset--color--gray-text);
	opacity: 1;
}

.rceft-contact .with_frm_style input[type="text"]:focus,
.rceft-contact .with_frm_style input[type="email"]:focus,
.rceft-contact .with_frm_style textarea:focus {
	border-color: var(--wp--preset--color--secondary-deep);
	box-shadow: 0 0 0 4px rgb(128 132 201 / 0.3);
	outline: none;
}

.rceft-contact .with_frm_style .frm_blank_field input,
.rceft-contact .with_frm_style .frm_blank_field textarea {
	border-color: #B42318;
}

.rceft-contact .with_frm_style .frm_error,
.rceft-contact .with_frm_style .frm_error_style {
	color: #B42318;
	font-size: 14px;
}

.rceft-contact .with_frm_style .frm_submit {
	margin-top: 4px;
}

.rceft-contact .with_frm_style .frm_submit button.frm_button_submit {
	height: auto;
	margin: 0;
	padding: 14px 40px;
	border: 0;
	border-radius: 28px;
	background: var(--wp--preset--color--secondary-dark);
	box-shadow: none;
	color: #fff;
	font-family: inherit;
	font-size: 19px;
	font-weight: 400;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.rceft-contact .with_frm_style .frm_submit button.frm_button_submit:hover,
.rceft-contact .with_frm_style .frm_submit button.frm_button_submit:focus-visible {
	background: var(--wp--preset--color--secondary-deep);
}

.rceft-contact .with_frm_style .frm_submit button.frm_button_submit:focus-visible {
	outline: 2px solid var(--wp--preset--color--secondary-deep);
	outline-offset: 3px;
}

.rceft-contact .frm_message {
	padding: 18px 24px;
	border: 1.5px solid var(--wp--preset--color--primary);
	border-radius: 24px;
	background: transparent;
	color: var(--wp--preset--color--green-deep);
	font-size: 17px;
}

.rceft-contact .frm_message p {
	margin: 0;
}

/* Formidable's honeypot: it hides it with an inline style keyed to a random
   id; this keeps it hidden even if that style is missing */
.rceft-contact .with_frm_style div:has(> input.frm_verify) {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Photo with an outline frame offset down and to the left */
.rceft-contact__photo.wp-block-image {
	position: relative;
	isolation: isolate;
	margin: 0 0 clamp(16px, 1.6vw, 28px) clamp(16px, 1.6vw, 28px);
}

.rceft-contact__photo.wp-block-image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: clamp(24px, 2.5vw, 44px);
	box-shadow: 0 12px 32px rgb(0 0 0 / 0.12);
}

.rceft-contact__photo.wp-block-image::before {
	content: "";
	position: absolute;
	inset: clamp(16px, 1.6vw, 28px) clamp(16px, 1.6vw, 28px) calc(-1 * clamp(16px, 1.6vw, 28px)) calc(-1 * clamp(16px, 1.6vw, 28px));
	z-index: -1;
	border: 2px solid var(--wp--preset--color--secondary);
	border-radius: clamp(24px, 2.5vw, 44px);
	pointer-events: none;
}

/* Columns stack below 782px (core); keep the form first */
@media (max-width: 781px) {
	.rceft-contact__media {
		margin-top: 24px;
	}
}

/* ---------- Path to ICEEFT Certification (templates/page-path-to-iceeft-certification.html) ---------- */

.rceft-cert-hero__sub.wp-block-heading {
	margin-top: 0 !important;
	margin-bottom: clamp(16px, 1.4vw, 26px) !important;
	color: var(--wp--preset--color--green-deep);
}

.rceft-cert-section {
	padding-top: clamp(56px, 6.5vw, 124px);
}

.rceft-cert-section__title.wp-block-heading {
	margin-top: 0 !important;
	margin-bottom: clamp(28px, 3vw, 56px) !important;
	text-wrap: balance;
}

/* Roadmap: four coloured step cards, 2 x 2 (one column on phones) */
.rceft-cert-steps.wp-block-group {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(16px, 1.8vw, 34px);
}

.rceft-cert-step.wp-block-group {
	--rceft-step-bg: var(--wp--preset--color--blue);
	--rceft-step-fg: var(--wp--preset--color--green-deep);
	margin: 0 !important;
	padding: clamp(24px, 2.4vw, 46px) clamp(22px, 2.6vw, 50px) clamp(26px, 2.6vw, 50px);
	border-radius: clamp(24px, 2.604vw, 50px);
	background: var(--rceft-step-bg);
	color: var(--rceft-step-fg);
}

/* all pairs pass WCAG AA for body text (4.6:1 or better) */
.rceft-cert-step--yellow.wp-block-group { --rceft-step-bg: var(--wp--preset--color--yellow); --rceft-step-fg: var(--wp--preset--color--green-deep); }
.rceft-cert-step--green.wp-block-group { --rceft-step-bg: var(--wp--preset--color--green-deep); --rceft-step-fg: var(--wp--preset--color--base); }
.rceft-cert-step--lavender.wp-block-group { --rceft-step-bg: var(--wp--preset--color--secondary-dark); --rceft-step-fg: #FFFFFF; }

.rceft-cert-step__title.wp-block-heading {
	margin: 0 0 clamp(14px, 1.2vw, 22px);
	color: inherit;
	font-size: clamp(22px, 1.6vw, 31px);
	font-weight: 500;
	line-height: 1.2;
	text-wrap: balance;
}

/* "Step N" as a small pill above the title; part of the heading text so
   screen readers hear "Step 1 ICEEFT Membership…" */
.rceft-cert-step__num {
	display: table;
	margin-bottom: 12px;
	padding: 4px 14px;
	border: 1.5px solid currentColor;
	border-radius: 999px;
	font-size: 0.6em;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rceft-cert-list {
	margin: 0;
	padding-left: 1.2em;
	font-size: clamp(16px, 1.05vw, 20px);
	line-height: 1.5;
}

.rceft-cert-list li + li {
	margin-top: 0.6em;
}

.rceft-cert-list ul {
	margin-top: 0.6em;
	padding-left: 1.2em;
	list-style: circle;
}

.rceft-cert-step a,
.rceft-cert-cta__text a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.rceft-cert-step a:hover {
	text-decoration-thickness: 2px;
}

.rceft-cert-step a:focus-visible,
.rceft-cert-cta__text a:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
	border-radius: 2px;
}

/* Tracks: four outlined cards */
.rceft-cert-tracks__grid.wp-block-group {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(14px, 1.4vw, 26px);
}

.rceft-cert-track.wp-block-group {
	margin: 0 !important;
	padding: clamp(22px, 1.8vw, 34px);
	border: 1.5px solid var(--wp--preset--color--secondary-dark);
	border-radius: clamp(20px, 1.823vw, 35px);
	background: #FFFFFF;
}

.rceft-cert-track__title.wp-block-heading {
	margin: 0 0 10px;
	color: var(--wp--preset--color--secondary-deep);
	font-size: clamp(20px, 1.35vw, 26px);
	font-weight: 500;
	line-height: 1.2;
}

.rceft-cert-track__text {
	margin: 0;
	color: var(--wp--preset--color--contrast);
	font-size: clamp(16px, 1vw, 19px);
	line-height: 1.45;
}

/* Support: three columns divided by thin green rules */
.rceft-cert-support.wp-block-group {
	margin-top: clamp(56px, 6.5vw, 124px) !important;
	padding-bottom: clamp(56px, 6.5vw, 124px);
}

.rceft-cert-support__grid.wp-block-group {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(24px, 3vw, 56px);
}

.rceft-cert-support__item.wp-block-group {
	margin: 0 !important;
	padding-top: clamp(18px, 1.5vw, 28px);
	border-top: 2px solid var(--wp--preset--color--primary);
}

.rceft-cert-support__title.wp-block-heading {
	margin: 0 0 10px;
	color: var(--wp--preset--color--green-deep);
	font-size: clamp(21px, 1.45vw, 28px);
	font-weight: 500;
	line-height: 1.2;
}

.rceft-cert-support__text {
	margin: 0;
	font-size: clamp(16px, 1.05vw, 20px);
	line-height: 1.5;
}

/* CTA */
.rceft-cert-cta__text {
	margin-top: clamp(14px, 1.2vw, 22px) !important;
}

.rceft-cert-cta__buttons.wp-block-buttons {
	gap: 16px;
	margin-top: clamp(24px, 2.4vw, 44px) !important;
}

.rceft-cert-cta .wp-block-button__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--secondary-deep);
	outline-offset: 3px;
}

.rceft-cert-cta + .rceft-newsletter.wp-block-group {
	padding-top: clamp(40px, 4vw, 80px) !important;
}

@media (max-width: 1100px) {
	.rceft-cert-tracks__grid.wp-block-group {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 781px) {
	.rceft-cert-steps.wp-block-group,
	.rceft-cert-support__grid.wp-block-group {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 599px) {
	.rceft-cert-tracks__grid.wp-block-group {
		grid-template-columns: minmax(0, 1fr);
	}

	.rceft-cert-cta__buttons .wp-block-button {
		width: 100%;
	}

	.rceft-cert-cta__buttons .wp-block-button__link {
		width: 100%;
		text-align: center;
	}
}

/* ---------- Event lists (inc/post-types.php rceft_event_list_markup) ----------
   Flyer (zoom on desktop), title and dates. 3 or 2 columns, 2 on tablets,
   1 on phones. */
.rceft-events-query.wp-block-query {
	margin-top: var(--wp--preset--spacing--40) !important;
}

.rceft-events-list.wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(28px, 2.6vw, 50px) clamp(16px, 2vw, 40px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.rceft-events-list--cols-2.wp-block-post-template {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rceft-events-list.wp-block-post-template > li {
	margin: 0 !important;
}

.rceft-event-item.wp-block-group {
	margin: 0;
}

.rceft-event-item .rceft-event-item__flyer {
	margin: 0;
}

.rceft-event-item .rceft-event-item__flyer img {
	display: block;
	width: 100%;
	height: auto;
}

.rceft-event-item .rceft-event-item__title {
	margin: clamp(14px, 1.2vw, 22px) 0 0;
	color: var(--wp--preset--color--contrast);
	font-size: clamp(19px, 1.35vw, 26px);
	font-weight: 500;
	line-height: 1.25;
	text-wrap: balance;
}

.rceft-event-item__date {
	margin: 6px 0 0 !important;
	color: var(--wp--preset--color--green-deep);
	font-size: clamp(15px, 1vw, 18px);
	font-weight: 500;
	letter-spacing: 0.02em;
}

.rceft-event-item__date:empty {
	display: none;
}

.rceft-events-empty {
	margin: 0;
	font-size: clamp(17px, 1.1vw, 21px);
}

/* Single event page */
.rceft-event-single .rceft-event-item__date {
	margin-top: 0 !important;
	font-size: clamp(17px, 1.2vw, 22px);
}

.rceft-event-single__flyer img {
	display: block;
	width: 100%;
	height: auto;
}

@media (max-width: 899px) {
	.rceft-events-list.wp-block-post-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 599px) {
	.rceft-events-list.wp-block-post-template,
	.rceft-events-list--cols-2.wp-block-post-template {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ---------- Consistent page-title spacing ----------
   The first heading sits the same distance below the header as on Contact
   (the page.html top padding, spacing preset 60): About and Path to
   Certification (.rceft-about-hero) and Learn EFT (.rceft-learn-events).
   On News, "LATEST NEWS" opens the page (the patchwork banner follows the
   cards); the same grid on the homepage keeps its spacing.
   Join, the homepage and Find a Therapist keep their own hero spacing. */
.rceft-about-hero.wp-block-group,
.rceft-learn-events.wp-block-group,
main > .rceft-stories.wp-block-group:first-child {
	padding-top: var(--wp--preset--spacing--60) !important;
}

/* News page: cards stay inside the site container (lined up with the logo
   and menu) instead of the full-bleed grid used on the homepage */
main > .rceft-stories:first-child .rceft-stories__query.wp-block-query {
	max-width: var(--wp--style--global--wide-size) !important;
	margin-inline: auto !important;
}

main > .rceft-stories:first-child .rceft-stories__grid.wp-block-post-template {
	width: auto;
	margin-left: 0 !important;
}

/* News: patchwork banner between the cards and the newsletter */
.rceft-stories + .rceft-community {
	padding-top: clamp(56px, 6.5vw, 124px);
}

.rceft-community + .rceft-newsletter.wp-block-group {
	padding-top: clamp(56px, 6.562vw, 126px) !important;
	padding-bottom: clamp(48px, 7.604vw, 146px) !important;
}

/* ---------- Articles of Interest (patterns/articles-list.php) ----------
   Text-only cards; the title link covers the whole card. */
.rceft-articles.wp-block-query {
	margin-top: clamp(24px, 2.5vw, 48px) !important;
}

.rceft-articles__grid.wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(16px, 1.8vw, 32px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.rceft-articles__grid.wp-block-post-template > li {
	display: flex;
	margin: 0 !important;
}

.rceft-article-card.wp-block-group {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	margin: 0;
	padding: clamp(24px, 2.2vw, 40px);
	border: 1.5px solid var(--wp--preset--color--secondary-dark);
	border-radius: clamp(20px, 1.823vw, 35px);
	background: #FFFFFF;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.rceft-article-card .rceft-article-card__date {
	margin: 0 0 10px;
	color: var(--wp--preset--color--gray-text);
	font-size: 14px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.rceft-article-card .rceft-article-card__title {
	margin: 0;
	font-size: clamp(22px, 1.6vw, 30px);
	font-weight: 500;
	line-height: 1.2;
	text-wrap: balance;
}

.rceft-article-card .rceft-article-card__title a {
	color: var(--wp--preset--color--green-deep);
	text-decoration: none;
}

/* whole card is the link (one tab stop) */
.rceft-article-card .rceft-article-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.rceft-article-card .rceft-article-card__excerpt {
	margin: 12px 0 0;
	color: var(--wp--preset--color--contrast);
	font-size: clamp(16px, 1.05vw, 19px);
	line-height: 1.5;
}

.rceft-article-card__excerpt .wp-block-post-excerpt__excerpt {
	margin: 0;
}

/* visual cue only; the title link already names the article */
.rceft-article-card::after {
	content: "Read article \2192" / "";
	margin-top: auto;
	padding-top: 18px;
	color: var(--wp--preset--color--secondary-dark);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.03em;
}

.rceft-article-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 28px -18px rgba(0, 0, 0, 0.4);
}

.rceft-article-card:hover .rceft-article-card__title a {
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.rceft-article-card:has(.rceft-article-card__title a:focus-visible) {
	outline: 2px solid var(--wp--preset--color--secondary-deep);
	outline-offset: 3px;
}

.rceft-article-card .rceft-article-card__title a:focus-visible {
	outline: none;
}

.rceft-articles__pagination.wp-block-query-pagination {
	margin-top: clamp(28px, 2.6vw, 48px) !important;
	gap: 12px;
	font-size: 18px;
}

/* Single article (templates/single-rceft_article.html) */
.rceft-article__back {
	margin-top: 0 !important;
	margin-bottom: clamp(18px, 1.6vw, 28px) !important;
	font-size: 16px;
}

.rceft-article__back a {
	color: var(--wp--preset--color--secondary-dark);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.rceft-article .rceft-article__title {
	margin-block: 0;
	color: var(--wp--preset--color--primary);
	font-size: clamp(34px, 3.2vw, 56px);
	font-weight: 400;
	line-height: 1.15;
	text-wrap: balance;
}

.rceft-article .rceft-article__date {
	margin-top: 14px !important;
	margin-bottom: 0 !important;
	color: var(--wp--preset--color--gray-text);
	font-size: 15px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.rceft-article__rule.wp-block-separator {
	margin-top: clamp(20px, 2vw, 34px) !important;
	margin-bottom: clamp(24px, 2.4vw, 40px) !important;
	border: none;
	border-top: 1px solid var(--wp--preset--color--primary);
	height: 1px;
	opacity: 0.55;
}

/* Article body: comfortable reading rhythm for headings, paragraphs, lists */
.rceft-article__content {
	font-size: clamp(17px, 1.1vw, 19px);
	line-height: 1.65;
}

.rceft-article__content > * {
	margin-block: 0 1em !important;
}

.rceft-article__content > :is(h2, h3, h4) {
	margin-block: 1.8em 0.55em !important;
	color: var(--wp--preset--color--green-deep);
	font-weight: 500;
	line-height: 1.25;
	text-wrap: balance;
}

.rceft-article__content > h2 { font-size: 1.55em; }
.rceft-article__content > h3 { font-size: 1.25em; }
.rceft-article__content > h4 { font-size: 1.1em; }

.rceft-article__content > p:empty {
	display: none;
}

.rceft-article__content :is(ul, ol) {
	padding-left: 1.4em;
}

.rceft-article__content li + li,
.rceft-article__content li > :is(ul, ol) {
	margin-top: 0.55em;
}

.rceft-article__content a {
	color: var(--wp--preset--color--secondary-deep);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.rceft-article__content a:focus-visible,
.rceft-article__back a:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
	border-radius: 2px;
}

.rceft-article__end.wp-block-buttons {
	margin-top: clamp(36px, 3.6vw, 64px) !important;
}

@media (max-width: 1100px) {
	.rceft-articles__grid.wp-block-post-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 699px) {
	.rceft-articles__grid.wp-block-post-template {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Newsletter after the article list / article: same breathing room as elsewhere */
.rceft-articles + .rceft-newsletter.wp-block-group,
.rceft-article__end + .rceft-newsletter.wp-block-group {
	margin-top: clamp(40px, 4vw, 80px) !important;
}

@media (prefers-reduced-motion: reduce) {
	.rceft-article-card.wp-block-group {
		transition: none;
	}

	.rceft-article-card:hover {
		transform: none;
	}
}
