/*
Theme Name: PLD Blank Child
Theme URI: https://paullacey.digital
Template: pld-blank
Author: Paul Lacey
Author URI: https://paullacey.digital
Description: The site functions layer for PLD Blank. Fathom analytics, image handling, hardening and per-site snippets live here - each switched on by a constant - so the parent theme stays identical across installs.
Version: 1.5.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pld-blank-child
*/

/* ==========================================================================
   ROOTED - design system
   Source: the "Rooted" design kit (rooted-kit / d9b6546f-10bb-4668-ae6d-db784dc20745)
   Dusty Dawn palette, Cormorant Garamond + Nunito Sans.

   This sheet dresses Beaver Builder's own markup - it never creates layout
   structure. Rows, columns, boxes and modules are real BB nodes; row
   backgrounds, section padding and box flex settings live on those nodes.
   The palette is also registered as BB Global Colors and the two typefaces
   as BB Global Typography, so both are editable from the builder UI.

   Markup notes (BB 2.11), because the selectors depend on them:
   - a Heading module IS the h1-h6 element and carries .fl-heading
   - a Text Editor module IS the .fl-rich-text wrapper
   - a Photo module IS the <figure class="fl-photo">
   - a Button module IS the .fl-button-wrap, with an <a class="fl-button"> inside
   - a Box module IS the flex container, children sit directly inside it
   ========================================================================== */

/* @tokens ---------------------------------------------------------------- */
:root {
	--ds-color-ground: #F5F1EC;
	--ds-color-panel: #ECE3DA;
	--ds-color-elevated: #FBF7F2;
	--ds-color-petal: #F3E5E1;
	--ds-color-ink-deep: #2C2429;
	--ds-color-on-ink: #F5F1EC;
	--ds-color-on-ink-70: rgba(245, 241, 236, 0.72);
	--ds-color-on-ink-18: rgba(245, 241, 236, 0.20);
	--ds-color-accent: #8A5560;
	--ds-color-accent-deep: #6F3E49;
	--ds-color-accent-light: #CBA0A6;
	--ds-color-text: #43383C;
	--ds-color-text-80: rgba(67, 56, 60, 0.82);
	--ds-color-text-55: rgba(67, 56, 60, 0.56);
	--ds-color-text-25: rgba(67, 56, 60, 0.26);
	--ds-color-text-12: rgba(67, 56, 60, 0.12);
	--ds-color-on-accent: #FFFFFF;

	--ds-font-heading: 'Cormorant Garamond', Georgia, serif;
	--ds-font-body: 'Nunito Sans', system-ui, sans-serif;
	--ds-weight-regular: 400;
	--ds-weight-medium: 600;
	--ds-weight-semibold: 600;

	--ds-space-xs: 0.5rem;
	--ds-space-sm: 1rem;
	--ds-space-md: 1.5rem;
	--ds-space-lg: 2.5rem;
	--ds-space-xl: 4rem;
	--ds-space-2xl: 6rem;

	--ds-text-xs: 0.75rem;
	--ds-text-sm: 0.875rem;
	--ds-text-base: 1rem;
	--ds-text-lg: 1.125rem;
	--ds-text-xl: 1.3rem;
	--ds-text-2xl: clamp(1.5rem, 1.2rem + 1vw, 1.85rem);
	--ds-text-3xl: clamp(1.9rem, 1.4rem + 2vw, 2.65rem);
	--ds-text-4xl: clamp(2.4rem, 1.7rem + 3vw, 3.6rem);
	--ds-text-5xl: clamp(2.9rem, 1.9rem + 4.4vw, 4.9rem);

	--ds-line-tight: 1.08;
	--ds-line-snug: 1.2;
	--ds-line-body: 1.65;

	--ds-radius-sm: 4px;
	--ds-radius-md: 12px;
	--ds-transition-base: 0.3s ease-out;

	--rt-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
	--rt-sunrise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M14 41a18 18 0 0 1 36 0' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round'/%3E%3Cline x1='8' y1='41' x2='56' y2='41' stroke='%23000' stroke-width='3' stroke-linecap='round'/%3E%3Cline x1='21' y1='49' x2='43' y2='49' stroke='%23000' stroke-width='3' stroke-linecap='round' opacity='0.55'/%3E%3C/svg%3E");
}

/* @base ------------------------------------------------------------------ */
body {
	font-family: var(--ds-font-body);
	font-size: var(--ds-text-base);
	font-weight: var(--ds-weight-regular);
	color: var(--ds-color-text);
	background: var(--ds-color-ground);
	line-height: var(--ds-line-body);
	-webkit-font-smoothing: antialiased;
	text-wrap: pretty;
}

.fl-builder-content h1,
.fl-builder-content h2,
.fl-builder-content h3,
.fl-builder-content h4 {
	font-family: var(--ds-font-heading);
	font-weight: var(--ds-weight-semibold);
	line-height: var(--ds-line-tight);
	color: var(--ds-color-text);
	text-wrap: balance;
}

/* @builder-normalise ----------------------------------------------------- */
/* BB gives every module a 20px margin ring and the row wrap 20px padding.
   Both are replaced here by the kit's own rhythm. */
.rt-sec .fl-module {
	margin: 0;
}

.rt-sec .fl-col-content {
	padding: 0;
}

.rt-sec p {
	margin: 0;
}

.rt-sec p + p {
	margin-top: var(--ds-space-sm);
}

.rt-sec h2.fl-heading {
	font-size: var(--ds-text-3xl);
}

.rt-sec h3.fl-heading {
	font-size: var(--ds-text-xl);
	line-height: var(--ds-line-snug);
}

/* Beaver Builder does not output a CSS class on a column-group node, so each
   group is selected through the classes on its own columns with :has(). */

/* BB clears floats with :before / :after on every group, column and module.
   In the groups and boxes this sheet turns into grid or flex containers those
   pseudo-elements would count as extra tracks / flex items, so they go.
   Single-column groups keep their clearfix. */
.rt-sec .fl-col-group:not(:has(> .fl-col:only-child))::before,
.rt-sec .fl-col-group:not(:has(> .fl-col:only-child))::after,
.rt-sec .rt-actions::before,
.rt-sec .rt-actions::after,
.rt-sec .rt-masthead::before,
.rt-sec .rt-masthead::after,
.rt-sec .rt-datarow::before,
.rt-sec .rt-datarow::after,
.rt-sec .rt-wordmark::after,
.rt-sec .fl-col-group:not(:has(> .fl-col:only-child)) > .fl-col::before,
.rt-sec .fl-col-group:not(:has(> .fl-col:only-child)) > .fl-col::after {
	content: none;
}

/* Card grids: 4 -> 2 -> 1 and 3 -> 2 -> 1, per the kit. */
.fl-col-group:has(> .rt-card),
.fl-col-group:has(> .rt-teacher),
.fl-col-group:has(> .rt-quote),
.fl-col-group:has(> .rt-tearsheet) {
	display: grid;
	grid-template-columns: repeat(var(--rt-cols, 3), minmax(0, 1fr));
	gap: var(--ds-space-md);
	align-items: stretch;
	margin-top: var(--ds-space-xl);
}

.fl-col-group:has(> .rt-card),
.fl-col-group:has(> .rt-teacher) {
	--rt-cols: 4;
}

.fl-col-group:has(> .rt-quote),
.fl-col-group:has(> .rt-tearsheet) {
	--rt-cols: 3;
}

/* Asymmetric two-column splits. */
.fl-col-group:has(> .rt-hero__media),
.fl-col-group:has(> .rt-stack),
.fl-col-group:has(> .rt-week__photo),
.fl-col-group:has(> .rt-teasercol),
.fl-col-group:has(> .rt-ctacol) {
	display: grid;
	gap: var(--ds-space-2xl);
	align-items: center;
}

.fl-col-group:has(> .rt-hero__media) {
	grid-template-columns: 1fr 1fr;
	margin-top: var(--ds-space-2xl);
}

.fl-col-group:has(> .rt-stack) { grid-template-columns: 0.9fr 1fr; }
.fl-col-group:has(> .rt-week__photo) { grid-template-columns: 1fr 0.9fr; }

.fl-col-group:has(> .rt-teasercol),
.fl-col-group:has(> .rt-ctacol) {
	grid-template-columns: 1.3fr 1fr;
	gap: var(--ds-space-xl);
}

/* Grid and split children ignore BB's percentage column widths. */
.fl-col-group:has(> .rt-card) > .fl-col,
.fl-col-group:has(> .rt-teacher) > .fl-col,
.fl-col-group:has(> .rt-quote) > .fl-col,
.fl-col-group:has(> .rt-tearsheet) > .fl-col,
.fl-col-group:has(> .rt-hero__media) > .fl-col,
.fl-col-group:has(> .rt-stack) > .fl-col,
.fl-col-group:has(> .rt-week__photo) > .fl-col,
.fl-col-group:has(> .rt-teasercol) > .fl-col,
.fl-col-group:has(> .rt-ctacol) > .fl-col {
	width: auto !important;
	max-width: none !important;
	min-width: 0;
	float: none;
	clear: none;
	/* BB's stacking rule centres columns with auto side margins, which stops a
	   grid item stretching to its track. */
	margin-inline: 0;
}

.fl-col-group:has(> .rt-card) > .fl-col > .fl-col-content,
.fl-col-group:has(> .rt-teacher) > .fl-col > .fl-col-content,
.fl-col-group:has(> .rt-quote) > .fl-col > .fl-col-content,
.fl-col-group:has(> .rt-tearsheet) > .fl-col > .fl-col-content {
	height: 100%;
}

/* Two-up header bars (hero masthead bar, teachers section head). */
.fl-col-group:has(> .rt-barcol) {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--ds-space-md);
	flex-wrap: wrap;
}

.fl-col-group:has(> .rt-barcol) > .fl-col {
	width: auto !important;
	max-width: none !important;
	flex: 0 1 auto;
	float: none;
	margin-inline: 0;
}

.rt-teach .fl-col-group:has(> .rt-barcol) {
	align-items: baseline;
}

.rt-hero .fl-col-group:has(> .rt-barcol) {
	padding-bottom: var(--ds-space-md);
	border-bottom: 1px solid var(--ds-color-text-12);
}

/* The kit ships no header or footer global - the dark closing band is the
   footer surrogate - so the blank theme's fallbacks are suppressed. */
.pld-fallback-header,
.pld-fallback-footer {
	display: none;
}

/* Inline action rows (button + button, button + link) - a Box container. */
.rt-sec .rt-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}

.rt-sec .rt-actions > .fl-module {
	flex: 0 0 auto;
}

/* @components ------------------------------------------------------------ */

/* Buttons ---------------------------------------------------------------- */
.fl-builder-content .rt-btn a.fl-button {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--ds-font-body);
	font-size: var(--ds-text-base);
	font-weight: var(--ds-weight-medium);
	letter-spacing: 0.01em;
	line-height: 1.3;
	padding: 0.85rem 1.9rem;
	border-radius: 999px;
	border: 1px solid transparent;
	background: var(--ds-color-accent);
	color: var(--ds-color-on-accent);
	text-decoration: none;
	transition: background var(--ds-transition-base), border-color var(--ds-transition-base), color var(--ds-transition-base);
}

.fl-builder-content .rt-btn a.fl-button .fl-button-text {
	color: inherit;
	font-size: inherit;
	font-weight: inherit;
}

.fl-builder-content .rt-btn a.fl-button:hover {
	background: var(--ds-color-accent-deep);
	color: var(--ds-color-on-accent);
}

.fl-builder-content .rt-btn--outline a.fl-button {
	background: transparent;
	color: var(--ds-color-text);
	border-color: var(--ds-color-text-25);
}

.fl-builder-content .rt-btn--outline a.fl-button:hover {
	background: transparent;
	border-color: var(--ds-color-accent);
	color: var(--ds-color-accent-deep);
}

/* Inline arrow CTA link -------------------------------------------------- */
.rt-cta-link a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: var(--ds-color-accent-deep);
	font-weight: var(--ds-weight-medium);
	text-decoration: underline;
	text-underline-offset: 0.25em;
	text-decoration-thickness: 1px;
	transition: color var(--ds-transition-base);
}

.rt-cta-link a:hover {
	color: var(--ds-color-accent);
}

.rt-cta-link a::after {
	content: '';
	width: 1em;
	height: 1em;
	flex: none;
	background-color: currentColor;
	-webkit-mask: var(--rt-arrow) no-repeat center / contain;
	mask: var(--rt-arrow) no-repeat center / contain;
}

/* Wordmark (the sunrise-over-horizon brand device) ----------------------- */
.rt-sec .rt-wordmark {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	color: var(--ds-color-text);
}

.rt-sec .rt-wordmark::before {
	content: '';
	width: 2.6rem;
	height: 2.6rem;
	flex: none;
	background-color: var(--ds-color-accent);
	-webkit-mask: var(--rt-sunrise) no-repeat center / contain;
	mask: var(--rt-sunrise) no-repeat center / contain;
}

.rt-wordmark .rt-wordmark__name {
	font-family: var(--ds-font-heading);
	font-weight: var(--ds-weight-semibold);
	font-size: var(--ds-text-2xl);
	line-height: 1;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.rt-wordmark .rt-wordmark__sub {
	font-family: var(--ds-font-body);
	font-weight: var(--ds-weight-medium);
	font-size: var(--ds-text-xs);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ds-color-text-55);
	margin-top: 0.35rem;
	line-height: 1.3;
}

/* Photos ----------------------------------------------------------------- */
.rt-sec .rt-img,
.rt-sec .rt-img .fl-photo-content {
	display: block;
	width: 100%;
	line-height: 0;
}

.rt-sec .rt-img .fl-photo-img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--ds-radius-md);
}

/* @sections -------------------------------------------------------------- */

/* Hero ------------------------------------------------------------------- */
.rt-sec .rt-hero__edition {
	font-family: var(--ds-font-body);
	font-weight: var(--ds-weight-medium);
	font-size: var(--ds-text-sm);
	color: var(--ds-color-accent-deep);
}

.rt-hero h1.fl-heading {
	font-size: var(--ds-text-5xl);
}

.rt-sec .rt-hero__lede {
	font-size: var(--ds-text-lg);
	color: var(--ds-color-text-80);
	margin-top: var(--ds-space-md);
	max-width: 46ch;
}

.rt-sec .rt-hero__actions {
	margin-top: var(--ds-space-lg);
}

.rt-sec .rt-hero__note {
	font-size: var(--ds-text-sm);
	color: var(--ds-color-text-55);
	margin-top: var(--ds-space-md);
}

/* Cross-fade slideshow: the kit's one named motion exception. */
.rt-sec .rt-hero-slides .fl-slideshow-container,
.rt-sec .rt-hero-slides .fl-slideshow {
	border-radius: var(--ds-radius-md);
	overflow: hidden;
	background: var(--ds-color-panel);
}

.rt-sec .rt-hero-slides .fl-slideshow-social,
.rt-sec .rt-hero-slides .fl-slideshow-nav,
.rt-sec .rt-hero-slides .fl-slideshow-image-nav {
	display: none !important;
}

/* Story ------------------------------------------------------------------ */
.rt-stack .fl-col-content {
	position: relative;
}

.rt-sec .rt-stack__front {
	position: absolute;
	right: -1.5rem;
	bottom: -1.5rem;
	width: 42%;
	padding: 0.5rem;
	background: var(--ds-color-elevated);
	border-radius: var(--ds-radius-md);
	box-shadow: inset 0 0 0 1px var(--ds-color-text-12);
}

.rt-sec .rt-stack__front .fl-photo-img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: var(--ds-radius-sm);
}

.rt-sec .rt-prose {
	color: var(--ds-color-text-80);
	margin-top: var(--ds-space-sm);
	max-width: 54ch;
}

.rt-story .rt-cta-link {
	margin-top: var(--ds-space-md);
}

/* Section intros and grid rhythm ----------------------------------------- */
.rt-sec .rt-section-intro {
	color: var(--ds-color-text-55);
	margin-top: var(--ds-space-sm);
	max-width: 58ch;
}

/* Class cards ------------------------------------------------------------ */
.rt-card > .fl-col-content {
	display: flex;
	flex-direction: column;
	background: var(--ds-color-elevated);
	border: 1px solid var(--ds-color-text-12);
	border-radius: var(--ds-radius-md);
	overflow: hidden;
	transition: border-color var(--ds-transition-base);
}

.rt-card:hover > .fl-col-content {
	border-color: var(--ds-color-accent);
}

.rt-sec .rt-card__img .fl-photo-img {
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: 0;
}

.rt-card .fl-module:not(.rt-card__img) {
	padding-inline: var(--ds-space-md);
}

.rt-card .rt-card__title {
	padding-top: var(--ds-space-md);
}

.rt-card .fl-module:last-child {
	padding-bottom: var(--ds-space-md);
}

.rt-sec .rt-chip {
	margin-top: var(--ds-space-xs);
}

.rt-chip span {
	display: inline-block;
	font-size: var(--ds-text-xs);
	color: var(--ds-color-accent-deep);
	border: 1px solid var(--ds-color-text-12);
	border-radius: 999px;
	padding: 0.1rem 0.65rem;
	line-height: 1.6;
}

.rt-sec .rt-card__desc {
	color: var(--ds-color-text-55);
	font-size: var(--ds-text-sm);
	margin-top: var(--ds-space-xs);
}

/* This week -------------------------------------------------------------- */
.rt-sec .rt-masthead {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	flex-wrap: wrap;
	border-top: 1px solid var(--ds-color-text-25);
	border-bottom: 1px solid var(--ds-color-text-12);
}

.rt-masthead h2.fl-heading {
	font-size: var(--ds-text-2xl);
}

.rt-sec .rt-masthead__edition {
	font-family: var(--ds-font-body);
	font-size: var(--ds-text-sm);
	font-weight: var(--ds-weight-medium);
	letter-spacing: 0.01em;
	color: var(--ds-color-accent-deep);
}

.rt-sec .rt-datarow {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	border-top: 1px solid var(--ds-color-text-12);
}

.rt-sec .rt-datarow > .rt-datarow__time {
	flex: 0 0 9.5rem;
	font-family: var(--ds-font-body);
	font-weight: var(--ds-weight-medium);
	color: var(--ds-color-accent-deep);
}

.rt-sec .rt-datarow > .rt-datarow__body {
	flex: 1 1 12rem;
	min-width: 0;
}

.rt-sec .rt-datarows {
	margin-top: var(--ds-space-md);
}

.rt-datarow .rt-datarow__title {
	font-family: var(--ds-font-heading);
	font-weight: var(--ds-weight-semibold);
	font-size: var(--ds-text-xl);
	line-height: var(--ds-line-snug);
	color: var(--ds-color-text);
}

.rt-datarow .rt-datarow__meta {
	color: var(--ds-color-text-55);
	font-size: var(--ds-text-sm);
	line-height: var(--ds-line-body);
	margin-top: 0.15rem;
}

.rt-week .rt-cta-link {
	margin-top: var(--ds-space-md);
}

.rt-sec .rt-week__photo .fl-photo-img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

/* Teachers --------------------------------------------------------------- */
.rt-teacher > .fl-col-content {
	background: var(--ds-color-elevated);
	border: 1px solid var(--ds-color-text-12);
	border-radius: var(--ds-radius-md);
	overflow: hidden;
	transition: border-color var(--ds-transition-base);
}

.rt-teacher:hover > .fl-col-content {
	border-color: var(--ds-color-accent);
}

.rt-sec .rt-teacher__photo .fl-photo-img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center top;
	border-radius: 0;
}

.rt-teacher .fl-module:not(.rt-teacher__photo) {
	padding-inline: var(--ds-space-md);
}

.rt-teacher .rt-teacher__name {
	padding-top: var(--ds-space-md);
}

.rt-teacher .fl-module:last-child {
	padding-bottom: var(--ds-space-md);
}

.rt-sec .rt-teacher__role {
	font-size: var(--ds-text-sm);
	color: var(--ds-color-accent-deep);
	font-weight: var(--ds-weight-medium);
	margin-top: 0.25rem;
}

.rt-sec .rt-teacher__bio {
	color: var(--ds-color-text-55);
	margin-top: var(--ds-space-sm);
	font-size: var(--ds-text-sm);
}

/* Pricing teaser --------------------------------------------------------- */
.rt-sec .rt-pteaser__lede {
	color: var(--ds-color-text-80);
	margin-top: var(--ds-space-sm);
	max-width: 50ch;
}

/* Testimonials ----------------------------------------------------------- */
.rt-quote > .fl-col-content {
	position: relative;
	background: var(--ds-color-elevated);
	border: 1px solid var(--ds-color-text-12);
	border-radius: var(--ds-radius-md);
	padding: var(--ds-space-lg);
	transition: border-color var(--ds-transition-base);
	height: 100%;
}

.rt-quote:hover > .fl-col-content {
	border-color: var(--ds-color-accent);
}

.rt-quote > .fl-col-content::before {
	content: '\201C';
	font-family: var(--ds-font-heading);
	font-weight: var(--ds-weight-semibold);
	font-size: 3.4rem;
	line-height: 0.5;
	color: var(--ds-color-accent);
	opacity: 0.26;
	display: block;
	height: 1.4rem;
	flex: none;
}

.rt-sec .rt-quote__text {
	margin-top: var(--ds-space-sm);
	color: var(--ds-color-text-80);
}

.rt-sec .rt-quote__author {
	font-size: var(--ds-text-sm);
	color: var(--ds-color-text-55);
	margin-top: var(--ds-space-md);
}

.rt-quote__author strong {
	color: var(--ds-color-text);
	font-weight: var(--ds-weight-medium);
}

/* The Star Rating module draws its stars in an ::after; keep them flush left. */
.rt-sec .rt-stars::after {
	margin-inline: 0;
}

/* Press tear-sheets ------------------------------------------------------ */
.rt-tearsheet > .fl-col-content {
	background: var(--ds-color-elevated);
	border: 1px solid var(--ds-color-text-12);
	border-radius: var(--ds-radius-md);
	overflow: hidden;
	transition: border-color var(--ds-transition-base);
	height: 100%;
}

.rt-tearsheet:hover > .fl-col-content {
	border-color: var(--ds-color-accent);
}

.rt-sec .rt-tearsheet__cover .fl-photo-img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 0;
}

.rt-tearsheet .fl-module:not(.rt-tearsheet__cover) {
	padding-inline: var(--ds-space-md);
}

.rt-tearsheet .rt-tearsheet__pub {
	padding-top: var(--ds-space-md);
	font-family: var(--ds-font-heading);
	font-size: var(--ds-text-lg);
	line-height: var(--ds-line-snug);
	color: var(--ds-color-text);
}

.rt-tearsheet .fl-module:last-child {
	padding-bottom: var(--ds-space-md);
}

.rt-sec .rt-tearsheet__issue {
	font-size: var(--ds-text-xs);
	color: var(--ds-color-text-55);
	font-weight: var(--ds-weight-medium);
	margin-top: 0.35rem;
}

/* Closing CTA band ------------------------------------------------------- */
.rt-ctaband {
	border-top: 1px solid var(--ds-color-on-ink-18);
}

.rt-ctaband,
.rt-ctaband p {
	color: var(--ds-color-on-ink);
}

.rt-ctaband h2.fl-heading {
	color: var(--ds-color-on-ink);
}

.rt-sec.rt-ctaband .rt-wordmark {
	color: var(--ds-color-on-ink);
}

.rt-sec.rt-ctaband .rt-wordmark::before {
	background-color: var(--ds-color-accent-light);
}

.rt-ctaband .rt-wordmark__sub {
	color: var(--ds-color-on-ink-70);
}

.rt-sec .rt-ctaband__title {
	margin-top: var(--ds-space-md);
}

.rt-sec .rt-ctaband__lede {
	color: var(--ds-color-on-ink-70);
	margin-top: var(--ds-space-sm);
	max-width: 46ch;
}

.rt-sec .rt-ctaband__meta {
	color: var(--ds-color-on-ink-70);
	font-size: var(--ds-text-sm);
	margin-top: var(--ds-space-md);
}

.fl-builder-content .rt-ctaband .rt-btn a.fl-button {
	background: var(--ds-color-accent-light);
	color: var(--ds-color-ink-deep);
	border-color: transparent;
}

.fl-builder-content .rt-ctaband .rt-btn a.fl-button:hover {
	background: var(--ds-color-on-ink);
	color: var(--ds-color-ink-deep);
}

/* @responsive ------------------------------------------------------------ */
@media (max-width: 980px) {
	.fl-col-group:has(> .rt-card),
	.fl-col-group:has(> .rt-teacher),
	.fl-col-group:has(> .rt-quote),
	.fl-col-group:has(> .rt-tearsheet) {
		--rt-cols: 2;
	}
}

@media (max-width: 860px) {
	.fl-col-group:has(> .rt-hero__media),
	.fl-col-group:has(> .rt-stack),
	.fl-col-group:has(> .rt-week__photo),
	.fl-col-group:has(> .rt-teasercol),
	.fl-col-group:has(> .rt-ctacol) {
		grid-template-columns: 1fr !important;
		gap: var(--ds-space-xl);
	}

	.rt-hero h1.fl-heading {
		font-size: var(--ds-text-4xl);
	}
}

@media (max-width: 768px) {
	:root {
		--ds-space-2xl: 3.25rem;
		--ds-space-xl: 3rem;
	}

	.rt-sec .rt-datarow {
		flex-direction: column;
		gap: 0.25rem !important;
	}

	.rt-sec .rt-datarow > .rt-datarow__time,
	.rt-sec .rt-datarow > .rt-datarow__body {
		flex: 0 0 auto;
	}
}

@media (max-width: 600px) {
	.fl-col-group:has(> .rt-card),
	.fl-col-group:has(> .rt-teacher),
	.fl-col-group:has(> .rt-quote),
	.fl-col-group:has(> .rt-tearsheet) {
		--rt-cols: 1;
	}

	.rt-sec .rt-stack__front {
		position: static;
		width: 70%;
		margin: -2rem 0 0 auto;
	}
}

@media (max-width: 480px) {
	:root {
		--ds-space-2xl: 2.75rem;
	}
}
