/* Crosscut Film Academy homepage. Loaded only on pages using the "Crosscut Home" template. */

body.cfa {
	--cfa-paper: #f3eee4;
	--cfa-paper-2: #ebe4d6;
	--cfa-ink: #1b1a17;
	--cfa-muted: #5f594e;
	--cfa-line: #cfc7b8;
	--cfa-red: #b83227;
	/* Discipline colours */
	--cfa-color: #b83227;
	--cfa-edit: #3e6b7d;
	--cfa-write: #d9b26f;
	--cfa-film: #35524a;
	--cfa-sound: #c86b4a;
	/* Section backgrounds */
	--cfa-bg-hero: var(--cfa-paper);
	--cfa-bg-programme: var(--cfa-paper);
	--cfa-bg-about: var(--cfa-paper);
	--cfa-bg-mentors: var(--cfa-paper);
	--cfa-bg-why: var(--cfa-paper);
	--cfa-bg-quotes: var(--cfa-paper);
	--cfa-bg-faq: var(--cfa-paper);
	--cfa-bg-contact: var(--cfa-paper);
	--cfa-bg-snapshot: var(--cfa-paper);
	--cfa-bg-perks: var(--cfa-paper-2);
	--cfa-bg-teams: var(--cfa-paper);
	--cfa-sans: "Space Grotesk", system-ui, sans-serif;
	--cfa-serif: "Newsreader", Georgia, serif;
	--cfa-mono: "JetBrains Mono", ui-monospace, monospace;
	--cfa-gutter: max(20px, calc((100% - 1200px) / 2));

	margin: 0;
	background: var(--cfa-paper);
	color: var(--cfa-ink);
	font-family: var(--cfa-sans);
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

/* Reset theme flow spacing: this template controls its own rhythm. */
body.cfa .wp-site-blocks > *,
body.cfa .cfa-main :where(*) { margin-block: 0; }
body.cfa .wp-site-blocks { padding: 0; }
:where(body.cfa) :where(h1, h2, h3, p, ul, ol, li, figure, blockquote, summary) { font-family: inherit; letter-spacing: normal; }
body.cfa a:where(:not(.wp-element-button)) { color: inherit; font-family: inherit; font-size: inherit; font-weight: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
body.cfa a:where(:not(.wp-element-button)):hover { color: var(--cfa-red); }
body.cfa :focus-visible { outline: 2px solid var(--cfa-red); outline-offset: 3px; }
:where(body.cfa) :where(img) { max-width: 100%; height: auto; display: block; }

.cfa-label {
	font-family: var(--cfa-mono);
	font-size: 15px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--cfa-red);
}

.cfa-sec {
	padding: clamp(48px, 7vw, 96px) var(--cfa-gutter);
}

.cfa-h2 {
	font-size: clamp(34px, 4.5vw, 56px);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.035em !important;
}

/* ---------- Header ---------- */
.cfa-header {
	position: sticky;
	top: 0;
	z-index: 50;
	display: flex;
	align-items: center;
	gap: 28px;
	padding: 14px var(--cfa-gutter);
	background: color-mix(in srgb, var(--cfa-paper) 92%, transparent);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--cfa-line);
}
.admin-bar .cfa-header { top: 32px; }
/* The header is a flex row: cancel WordPress flow-layout spacing so every item centres on one line. */
body.cfa .cfa-header > * { margin-block: 0 !important; }
.cfa-header > .wp-block-html,
.cfa-header { font-size: 15px; }
.cfa-logo { line-height: 0; flex: none; }
body.cfa .cfa-logo img { height: 42px; width: auto; }
.cfa-nav { display: flex; gap: 26px; margin-left: auto; }
body.cfa .cfa-nav a { text-decoration: none; font-weight: 500; }
body.cfa .cfa-nav-cta {
	text-decoration: none;
	font-weight: 700;
	font-size: 14px;
	background: var(--cfa-ink);
	color: var(--cfa-paper) !important;
	padding: 10px 16px;
	white-space: nowrap;
}
body.cfa .cfa-nav-cta:hover { background: var(--cfa-red); }
.cfa-burger { display: none; }
.cfa-nav .cfa-nav-cohort { display: none; }

/* ---------- Hero ---------- */
.cfa-hero {
	border-top: 0;
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: clamp(28px, 5vw, 72px);
	align-items: center;
	padding-top: clamp(40px, 6vw, 96px);
}
.cfa-hero-main > .cfa-lead { margin-top: 24px !important; max-width: 46ch; }
.cfa-kicker { font-family: var(--cfa-mono); font-size: 15px; letter-spacing: .06em; text-transform: uppercase; color: var(--cfa-red); }
.cfa-title {
	margin-top: 16px !important;
	font-size: clamp(42px, 5.6vw, 88px);
	font-weight: 700;
	line-height: .95;
	letter-spacing: -.045em !important;
	text-wrap: balance;
}
.cfa-title em { font-style: normal; color: var(--cfa-red); }

/* Cycling word: sits on its own line so the headline doesn't reflow as words change. */
.cfa-cycle { display: block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.cfa-cycle em {
	display: inline-block;
	padding-bottom: .1em;
	margin-bottom: -.1em;
	background-image: var(--cfa-word-grad, linear-gradient(90deg, #e0900a, #ef5f5f, #7b4dff, #3f6fd1));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
	transition: transform .3s cubic-bezier(.2, .7, .2, 1), opacity .3s;
}
.cfa-cycle.is-out em { transform: translateY(-70%); opacity: 0; }
.cfa-cycle.is-in em { transform: translateY(70%); opacity: 0; transition: none; }

/* Block animation stage (hero.js). */
.cfa-stage {
	position: relative;
	width: 100%;
	max-width: 560px;
	margin-left: auto;
	aspect-ratio: 1 / 1;
	background:
		linear-gradient(var(--cfa-line) 1px, transparent 1px) 0 0 / 100% 12.5%,
		linear-gradient(90deg, var(--cfa-line) 1px, transparent 1px) 0 0 / 12.5% 100%;
	border: 1px solid var(--cfa-line);
}
.cfa-block {
	position: absolute;
	left: 10%;
	top: 14%;
	width: 80%;
	height: 72%;
	background: var(--cfa-ink);
	transition:
		left .6s cubic-bezier(.65, 0, .25, 1),
		top .6s cubic-bezier(.65, 0, .25, 1),
		width .6s cubic-bezier(.65, 0, .25, 1),
		height .6s cubic-bezier(.65, 0, .25, 1),
		border-radius .6s ease,
		background-color .6s ease,
		transform .6s cubic-bezier(.65, 0, .25, 1),
		scale .5s ease,
		box-shadow .5s ease;
}
/* Mix: each bar pulses on its own loop (duration/offset set per bar in hero.js). */
.cfa-block.is-wave { animation: cfa-wave var(--wd, .8s) ease-in-out var(--wdl, 0s) infinite alternate; }
@keyframes cfa-wave {
	from { scale: 1 .8; }
	to { scale: 1 1.04; }
}
.cfa-block::before, .cfa-block::after { content: ""; position: absolute; opacity: 0; transition: opacity .5s ease; pointer-events: none; }
.cfa-block.is-cut { box-shadow: inset 2px 0 0 rgba(21, 21, 21, .25); }
/* Raw footage: one golden-to-blue gradient spread across all twelve strips. */
.cfa-grad {
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: linear-gradient(115deg, #f7c948 0%, #f2a65a 28%, #9fb8e8 62%, #3f6fd1 100%);
	background-repeat: no-repeat;
	opacity: 0;
	transition: opacity .6s ease;
}
.cfa-block.is-grad .cfa-grad { opacity: 1; }
/* Bins: manila folders with a tab. */
.cfa-block::before { left: 0; bottom: 100%; width: 42%; height: 22%; background: inherit; border-radius: 4px 4px 0 0; }
.cfa-block.is-folder::before { opacity: 1; }
/* Cards: ruled index cards with a red header line. */
.cfa-block::after {
	inset: 0;
	border-radius: inherit;
	background:
		linear-gradient(transparent 26%, rgba(184, 50, 39, .55) 26%, rgba(184, 50, 39, .55) 29%, transparent 29%),
		repeating-linear-gradient(transparent 0 calc(29% + 11px), rgba(62, 107, 125, .28) calc(29% + 11px) calc(29% + 12px));
}
.cfa-block.is-card { box-shadow: 0 6px 14px rgba(27, 26, 23, .16); }
.cfa-block.is-card::after { opacity: 1; }
/* Frame: shot-size guides. */
.cfa-block.is-frame { box-shadow: inset 0 0 0 2px var(--cfa-ink); }
.cfa-block.is-frame.is-red { box-shadow: inset 0 0 0 2px var(--cfa-red); }
/* Story graph edges (SVG), drawn in on that stage. */
.cfa-edges { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.cfa-edges { opacity: 0; transition: opacity .25s ease; }
.cfa-edges.is-on { opacity: 1; }
.cfa-edges line {
	stroke: var(--cfa-ink);
	stroke-width: .35;
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
	transition: stroke-dashoffset .5s ease;
}
.cfa-edges.is-on line { stroke-dashoffset: 0; transition-delay: .25s; }
@media (prefers-reduced-motion: reduce) {
	.cfa-block, .cfa-cycle em, .cfa-edges line { transition: none; }
	.cfa-block.is-wave { animation: none; }
}
.cfa-lead { font-size: 18px; line-height: 1.55; }
.cfa-actions { margin-top: 24px !important; }
body.cfa .cfa-actions, body.cfa .cfa-btn { background: none; box-shadow: none; border: 0; padding: 0; }
body.cfa .cfa-btn .wp-block-button__link {
	border: 0;
	box-shadow: none !important;
	animation: none !important;
	outline: 0;
	background: var(--cfa-ink);
	color: var(--cfa-paper);
	border-radius: 0;
	padding: 14px 22px;
	font-family: var(--cfa-sans);
	font-size: 15px;
	font-weight: 700;
}
body.cfa .cfa-btn .wp-block-button__link:focus-visible { outline: 2px solid var(--cfa-red); outline-offset: 3px; }
body.cfa .cfa-btn .wp-block-button__link:hover { background: var(--cfa-red); color: #fff; }

/* ---------- Workshop programme ---------- */
.cfa-sec-head {
	display: flex;
	justify-content: space-between;
	align-items: end;
	gap: 16px;
}

.cfa-tag {
	display: inline-block;
	vertical-align: middle;
	background: var(--cfa-red);
	color: #fff;
	font-family: var(--cfa-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 4px 8px;
	margin-left: 6px;
	position: relative;
	top: -3px;
}

.cfa-code { font-family: var(--cfa-mono); font-size: 12px; color: var(--cfa-muted); }

/* ---------- About ---------- */
.cfa-about { display: grid; gap: clamp(32px, 5vw, 56px); }
.cfa-about-text {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: clamp(28px, 5vw, 72px);
	row-gap: 16px;
	align-items: end;
}
.cfa-about-text > .cfa-label { grid-column: 1; grid-row: 1; }
.cfa-about-text > .cfa-h2 { grid-column: 1; grid-row: 2; }
.cfa-about-text > p:not(.cfa-label) { grid-column: 2; grid-row: 1 / 3; }
.cfa-about-text > .cfa-stats { grid-column: 1 / -1; grid-row: 3; }
.cfa-stats {
	list-style: none;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid var(--cfa-ink);
	margin-top: 20px !important;
}
.cfa-stats li { padding-top: 14px; font-size: 13px; color: var(--cfa-muted); line-height: 1.3; }
.cfa-stats strong { display: block; font-size: clamp(32px, 3.6vw, 44px); font-weight: 700; letter-spacing: -.03em; color: var(--cfa-ink); line-height: 1.1; }
/* Slideshow (Gallery block with class cfa-slides; see slides.js) */
body.cfa .cfa-slides { margin: 0; gap: 12px; }
body.cfa .cfa-slides.is-slideshow {
	display: block;
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 18px;
	background: var(--cfa-ink);
	box-shadow: 0 18px 40px rgba(27, 26, 23, .18);
}
body.cfa .cfa-slides.is-slideshow > figure.wp-block-image {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100%;
	margin: 0;
	opacity: 0;
	transition: opacity .9s ease;
}
body.cfa .cfa-slides.is-slideshow > figure.is-active { opacity: 1; z-index: 1; }
body.cfa .cfa-slides.is-slideshow > figure img { width: 100%; height: 100%; object-fit: cover; }
.cfa-dots { position: absolute; z-index: 2; left: 0; right: 0; bottom: 14px; display: flex; gap: 8px; justify-content: center; }
.cfa-dots button {
	width: 28px;
	height: 4px;
	padding: 0;
	border: 0;
	background: rgba(255, 255, 255, .5);
	cursor: pointer;
}
.cfa-dots button[aria-current="true"] { background: #fff; }
@media (prefers-reduced-motion: reduce) {
	body.cfa .cfa-slides.is-slideshow > figure.wp-block-image { transition: none; }
}
.cfa-studios { text-align: center; padding-top: 8px; }
.cfa-logos { margin-top: 14px !important; }
.cfa-logos img {
	margin: 0 auto;
	width: min(720px, 100%);
	height: auto;
}

/* ---------- Why join ---------- */
.cfa-why { display: grid; grid-template-columns: 1fr 2fr; gap: clamp(28px, 5vw, 72px); }
.cfa-why-list {
	list-style: none;
	counter-reset: why;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 40px;
}
.cfa-why-list li {
	counter-increment: why;
	display: flex;
	gap: 16px;
	padding: 16px 0;
	border-bottom: 1px solid var(--cfa-line);
	font-size: 18px;
	font-weight: 500;
}
.cfa-why-list li::before {
	content: counter(why, decimal-leading-zero);
	font-family: var(--cfa-mono);
	font-size: 12px;
	font-weight: 400;
	color: var(--cfa-red);
	padding-top: 5px;
}
.cfa-why-list li:nth-child(5n+1)::before { color: var(--cfa-color); }
.cfa-why-list li:nth-child(5n+2)::before { color: var(--cfa-edit); }
.cfa-why-list li:nth-child(5n+3)::before { color: var(--cfa-film); }
.cfa-why-list li:nth-child(5n+4)::before { color: var(--cfa-sound); }
.cfa-why-list li:nth-child(5n+5)::before { color: var(--cfa-write); }

/* ---------- Testimonials ---------- */
.cfa-quote-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: clamp(24px, 4vw, 56px);
	margin-top: 22px !important;
	align-items: start;
}
body.cfa .cfa-quote {
	border: 0;
	margin: 0;
	padding: 0;
	font-family: var(--cfa-serif);
	font-style: italic;
	font-size: 20px;
	line-height: 1.4;
}
body.cfa .cfa-quote p { font-family: var(--cfa-serif); }
body.cfa .cfa-quote p::before { content: "“"; }
body.cfa .cfa-quote p::after { content: "”"; }
body.cfa .cfa-quote.is-big { font-size: clamp(26px, 2.8vw, 36px); line-height: 1.2; }
body.cfa .cfa-quote cite {
	display: block;
	margin-top: 14px;
	font-family: var(--cfa-sans);
	font-style: normal;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	line-height: 1.5;
}

/* ---------- FAQ ---------- */
.cfa-faq { display: grid; grid-template-columns: 1fr 2fr; gap: clamp(28px, 5vw, 72px); }
.cfa-faq-list { border-top: 1px solid var(--cfa-ink); }
body.cfa .cfa-faq .wp-block-details { border-bottom: 1px solid var(--cfa-line); padding: 0; }
body.cfa .cfa-faq summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 0;
	font-size: 19px;
	font-weight: 500;
}
body.cfa .cfa-faq summary::-webkit-details-marker { display: none; }
body.cfa .cfa-faq summary:focus { outline: none; box-shadow: none; }
body.cfa .cfa-faq summary:focus-visible { outline: none; text-decoration: underline; text-decoration-color: var(--cfa-red); text-underline-offset: 5px; }
body.cfa .cfa-faq .wp-block-details, body.cfa .cfa-faq details[open] { outline: none; box-shadow: none; }
body.cfa .cfa-faq summary::after { content: "+"; font-weight: 400; color: var(--cfa-red); font-size: 24px; line-height: 1; }
body.cfa .cfa-faq details[open] summary::after { content: "–"; }
body.cfa .cfa-faq details p { padding: 0 0 22px; color: var(--cfa-muted); max-width: 64ch; }

/* ---------- Footer ---------- */
.cfa-footer { background: var(--cfa-ink); color: var(--cfa-paper); padding: 64px var(--cfa-gutter) 28px; font-size: 15px; }
body.cfa .cfa-footer a { color: var(--cfa-paper); text-decoration: none; }
body.cfa .cfa-footer a:hover { color: #fff; text-decoration: underline; }
.cfa-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; }
.cfa-footer .cfa-label { color: #e0806f; margin-bottom: 10px; }
body.cfa .cfa-footer-logo { height: 38px; width: auto; }
.cfa-footer-note { margin-top: 12px; color: #a8a192; }
.cfa-footer-base {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 12px 24px;
	margin-top: 48px;
	padding-top: 20px;
	border-top: 1px solid #3a3833;
	font-size: 13px;
	color: #a8a192;
}
.cfa-footer-base span:last-child { display: flex; flex-wrap: wrap; gap: 8px 20px; }

/* ---------- Mentors ---------- */
.cfa-mentor-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 36px 28px;
	margin-top: 36px !important;
}
.cfa-mentor-img { margin: 0 0 14px !important; }
body.cfa .cfa-mentor-img img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 14px;
	background: var(--cfa-paper-2);
}
.cfa-mentor-name { font-size: 20px; font-weight: 700; letter-spacing: -.02em !important; line-height: 1.2; }
body.cfa .cfa-social { gap: 2px; margin: 4px 0 8px !important; padding: 0; }
body.cfa .cfa-social .wp-social-link { color: var(--cfa-ink); }
body.cfa .cfa-social .wp-social-link a { padding: 4px 6px 4px 0; }
body.cfa .cfa-social .wp-social-link svg { width: 18px; height: 18px; }
body.cfa .cfa-social .wp-social-link:hover { color: var(--cfa-red); transform: none; }
.cfa-mentor-spec { font-family: var(--cfa-mono); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--cfa-red); }
.cfa-mentor-desc { margin-top: 6px !important; font-size: 14px; line-height: 1.5; color: var(--cfa-muted); }

/* ---------- Document pages (Crosscut Page template) ---------- */
.cfa-doc-wrap {
	display: grid;
	grid-template-columns: 240px minmax(0, 720px);
	gap: clamp(32px, 6vw, 96px);
	padding: clamp(40px, 6vw, 88px) var(--cfa-gutter) clamp(56px, 8vw, 120px);
}
.cfa-doc-nav { position: sticky; top: 96px; align-self: start; display: flex; flex-direction: column; gap: 10px; font-size: 16px; }
.cfa-doc-nav .cfa-label { margin-bottom: 6px; }
body.cfa .cfa-doc-nav a { text-decoration: none; font-weight: 500; }
.cfa-doc-help { margin-top: 18px !important; padding-top: 16px; border-top: 1px solid var(--cfa-line); font-size: 14px; color: var(--cfa-muted); }
body.cfa .cfa-doc-help a { color: var(--cfa-ink); text-decoration: underline; }

/* Neutralise the old Spectra container and preset classes inside policy text. */
body.cfa .cfa-doc-body .wp-block-uagb-container,
body.cfa .cfa-doc-body .uagb-container-inner-blocks-wrap {
	background: none !important;
	padding: 0 !important;
	margin: 0 !important;
	max-width: none !important;
	width: auto !important;
	display: block !important;
	box-shadow: none !important;
}
body.cfa .cfa-doc-body :where([class*="-font-family"]) { font-family: var(--cfa-sans) !important; }
body.cfa .cfa-doc-body .has-text-color { color: inherit !important; }
body.cfa .cfa-doc-body :where([class*="-font-size"]) { font-size: inherit !important; }
body.cfa .cfa-doc-body .wp-block-spacer { display: none; }
body.cfa .cfa-doc-body :where(h1, h2, h3, h4) { text-transform: none !important; letter-spacing: -.02em !important; line-height: 1.2; }
body.cfa .cfa-doc-body h2 { font-size: 26px !important; font-weight: 700; margin-top: 44px !important; }
body.cfa .cfa-doc-body h3 { font-size: 20px !important; font-weight: 700; margin-top: 32px !important; }
body.cfa .cfa-doc-body h4 { font-size: 17px !important; font-weight: 700; margin-top: 24px !important; }
body.cfa .cfa-doc-body :where(h2, h3, h4) strong { font-weight: inherit; }
/* The page title: each policy marks it with the old extra-large size class. */
body.cfa .cfa-doc-body .has-x-large-font-size {
	margin-top: 0 !important;
	font-size: clamp(38px, 5vw, 60px) !important;
	line-height: 1;
	letter-spacing: -.04em !important;
	font-weight: 700;
	text-transform: none !important;
}
body.cfa .cfa-doc-body .has-x-large-font-size strong { font-weight: inherit; }
body.cfa .cfa-doc-body p { margin-top: 14px !important; font-size: 17px !important; line-height: 1.7; }
body.cfa .cfa-doc-body :where(ul, ol) { margin-top: 12px !important; padding-left: 1.3em; }
body.cfa .cfa-doc-body li { margin-top: 6px !important; font-size: 17px; line-height: 1.6; }
body.cfa .cfa-doc-body li::marker { color: var(--cfa-red); }
body.cfa .cfa-doc-body a { color: var(--cfa-red) !important; text-decoration: underline; }
body.cfa .cfa-doc-body hr { border: 0; border-top: 1px solid var(--cfa-line); margin: 32px 0; }

/* ---------- Workshop updates sign-up (hero) ---------- */
.cfa-signup { margin-top: 28px !important; padding-top: 22px; border-top: 1px solid var(--cfa-line); max-width: 520px; }
.cfa-signup-title { font-size: 15px; line-height: 1.5; color: var(--cfa-muted); }
.cfa-signup-title strong { display: block; font-size: 17px; color: var(--cfa-ink); }
body.cfa .cfa-signup .fluentform { margin-top: 12px; }
body.cfa .cfa-signup .fluentform fieldset { display: flex; gap: 10px; align-items: flex-start; }
body.cfa .cfa-signup .fluentform .ff-el-group { flex: 1; margin: 0; }
body.cfa .cfa-signup .fluentform .ff_submit_btn_wrapper { margin: 0; flex: none; }
body.cfa .cfa-signup .fluentform .ff-el-form-control {
	background: #fff;
	border: 1px solid var(--cfa-ink);
	border-radius: 0;
	height: 48px;
	padding: 0 14px;
	font-family: var(--cfa-sans);
	font-size: 16px;
	color: var(--cfa-ink);
	-webkit-text-fill-color: currentColor;
	box-shadow: none;
}
body.cfa .cfa-signup .fluentform .ff-el-form-control:focus { border-color: var(--cfa-red); outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--cfa-red) 22%, transparent); }
body.cfa .cfa-signup .fluentform .ff-btn-submit {
	height: 48px;
	background: var(--cfa-red) !important;
	color: #fff !important;
	border: 0;
	border-radius: 0;
	padding: 0 20px;
	font-family: var(--cfa-sans);
	font-size: 15px;
	font-weight: 700;
	white-space: nowrap;
}
body.cfa .cfa-signup .fluentform .ff-btn-submit:hover { background: var(--cfa-ink) !important; }
body.cfa .cfa-signup .fluentform .error.text-danger { color: var(--cfa-red); font-size: 13px; margin-top: 6px; }
body.cfa .cfa-signup .ff-message-success {
	margin-top: 12px;
	border: 0;
	border-left: 3px solid var(--cfa-red);
	background: var(--cfa-paper-2);
	box-shadow: none;
	padding: 14px 16px;
	font-size: 15px;
	color: var(--cfa-ink);
}

/* ---------- Inline CTAs (quiet text links at decision points) ---------- */
.cfa-inline-cta { margin-top: 28px !important; font-size: 17px; color: var(--cfa-muted); }
body.cfa .cfa-inline-cta a { color: var(--cfa-ink); font-weight: 700; text-decoration: underline; text-decoration-color: var(--cfa-red); text-decoration-thickness: 2px; text-underline-offset: 5px; }
body.cfa .cfa-inline-cta a:hover { color: var(--cfa-red); }
.cfa-inline-cta strong { color: var(--cfa-ink); }

/* ---------- Contact ---------- */
.cfa-contact { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.cfa-contact-info > * + * { margin-top: 16px !important; }
.cfa-contact-lead { font-size: 18px; max-width: 40ch; }
.cfa-contact-list { list-style: none; padding: 0; margin-top: 28px !important; border-top: 1px solid var(--cfa-ink); }
.cfa-contact-list li { display: grid; grid-template-columns: 90px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--cfa-line); font-size: 17px; }
.cfa-contact-key { font-family: var(--cfa-mono); font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--cfa-muted); padding-top: 3px; }
body.cfa .cfa-contact-list a { text-decoration: underline; }

/* Fluent Forms, restyled to match. */
body.cfa .cfa-contact-form .fluentform { font-family: var(--cfa-sans); }
body.cfa .cfa-contact-form .fluentform .ff-el-group { margin-bottom: 22px; }
body.cfa .cfa-contact-form .fluentform .ff-el-input--label label {
	font-family: var(--cfa-mono);
	font-size: 13px;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--cfa-muted);
}
body.cfa .cfa-contact-form .fluentform .ff-el-input--label.ff-el-is-required.asterisk-right label::after { color: var(--cfa-red); }
body.cfa .cfa-contact-form .fluentform .ff-el-form-control {
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--cfa-ink);
	border-radius: 0;
	padding: 10px 0;
	font-family: var(--cfa-sans);
	font-size: 18px !important;
	color: var(--cfa-ink) !important;
	-webkit-text-fill-color: currentColor !important;
	box-shadow: none;
}
body.cfa .cfa-contact-form .fluentform .ff-el-form-control:focus { border-bottom-color: var(--cfa-red); outline: none; box-shadow: 0 1px 0 var(--cfa-red); }
body.cfa .cfa-contact-form .fluentform textarea.ff-el-form-control { min-height: 120px; resize: vertical; }
body.cfa .cfa-contact-form .fluentform select.ff-el-form-control {
	appearance: none;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23151515' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 4px center;
	padding-right: 24px;
	cursor: pointer;
}
body.cfa .cfa-contact-form .fluentform .ff-el-section-break { display: none; }
body.cfa .cfa-contact-form .fluentform .ff-btn-submit {
	background: var(--cfa-ink) !important;
	color: var(--cfa-paper) !important;
	border: 0;
	border-radius: 0;
	padding: 15px 28px;
	font-family: var(--cfa-sans);
	font-size: 15px;
	font-weight: 700;
}
body.cfa .cfa-contact-form .fluentform .ff-btn-submit:hover { background: var(--cfa-red) !important; }
body.cfa .cfa-contact-form .ff-message-success { border: 1px solid var(--cfa-ink); background: var(--cfa-paper-2); box-shadow: none; font-size: 17px; padding: 20px; }
body.cfa .cfa-contact-form .error.text-danger { color: var(--cfa-red); font-size: 13px; margin-top: 6px; }

/* ---------- Next cohort (dark ticket band) ---------- */
.cfa-cohort {
	--cfa-ink: #fff;
	--cfa-muted: rgba(255, 255, 255, .72);
	--cfa-line: rgba(255, 255, 255, .22);
	background: #151515;
	color: var(--cfa-ink);
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: clamp(28px, 5vw, 72px);
	align-items: center;
	border-top: 0;
	padding-block: clamp(40px, 5vw, 64px);
	position: relative;
}
.cfa-cohort::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 0;
	height: 6px;
	background: repeating-linear-gradient(90deg, var(--cfa-color) 0 60px, var(--cfa-write) 60px 120px, var(--cfa-edit) 120px 180px, var(--cfa-film) 180px 240px, var(--cfa-sound) 240px 300px);
}
body.cfa .cfa-cohort :is(h2, h3) { color: #fff; }
.cfa-cohort .cfa-label { color: var(--cfa-write); }
.cfa-cohort-main > * + * { margin-top: 14px !important; }
.cfa-chips { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px !important; }
.cfa-chips li { border: 1px solid rgba(255, 255, 255, .35); padding: 6px 12px; font-size: 14px; border-radius: 999px; }
.cfa-cohort-side { border-left: 1px solid var(--cfa-line); padding-left: clamp(24px, 4vw, 48px); }
.cfa-cohort-side > * + * { margin-top: 14px !important; }

.cfa-cohort .cfa-contact-key { color: var(--cfa-muted); }
.cfa-cohort-note { font-size: 13px; color: var(--cfa-muted); }
body.cfa .cfa-cohort-note a { color: var(--cfa-ink); text-decoration: underline; }
body.cfa .cfa-cohort .cfa-cohort-note a { color: #fff; }
body.cfa .cfa-cohort .cfa-btn .wp-block-button__link { background: var(--cfa-color); color: #fff; }
body.cfa .cfa-cohort .cfa-btn .wp-block-button__link:hover { background: #fff; color: #151515; }
.cfa-countdown { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; }
.cfa-countdown[hidden] { display: none; }
.cfa-countdown-label { width: 100%; font-family: var(--cfa-mono); font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--cfa-muted); }
.cfa-countdown-unit { display: grid; justify-items: center; min-width: 58px; padding: 8px 6px; border: 1px solid var(--cfa-line); }
.cfa-countdown-unit b { font-size: 26px; font-variant-numeric: tabular-nums; line-height: 1; }
.cfa-countdown-unit small { font-family: var(--cfa-mono); font-size: 11px; color: var(--cfa-muted); text-transform: uppercase; margin-top: 4px; }

/* Next cohort column (table) */

.cfa-cal-menu { position: relative; margin-top: 4px !important; }
.cfa-cal-menu summary {
	list-style: none;
	cursor: pointer;
	font-size: 13px;
	color: var(--cfa-muted);
	text-decoration: underline;
	text-decoration-color: var(--cfa-line);
	text-underline-offset: 3px;
	display: inline-block;
}
.cfa-cal-menu summary::-webkit-details-marker { display: none; }
.cfa-cal-menu summary:hover, .cfa-cal-menu[open] summary { color: var(--cfa-red); text-decoration-color: currentColor; }
.cfa-cal-menu summary:focus { outline: none; }
.cfa-cal-menu summary:focus-visible { outline: 2px solid var(--cfa-red); outline-offset: 2px; }
.cfa-cal-pop {
	position: absolute;
	z-index: 20;
	top: calc(100% + 6px);
	left: 0;
	display: grid;
	gap: 6px;
	padding: 10px;
	min-width: 210px;
	background: var(--cfa-paper);
	border: 1px solid var(--cfa-ink);
	border-radius: 10px;
	box-shadow: 0 12px 28px rgba(0, 0, 0, .12);
}
body.cfa .cfa-cal-pop .cfa-cal-link { white-space: nowrap; }

/* Add to calendar */
.cfa-cal { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.cfa-cal[hidden] { display: none; }
.cfa-cal-label { width: 100%; font-family: var(--cfa-mono); font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--cfa-muted); }
body.cfa .cfa-cal-link { font-size: 14px; padding: 7px 12px 7px 32px; border: 1px solid var(--cfa-line); border-radius: 999px; text-decoration: none; position: relative; }
body.cfa .cfa-cal-link::before { content: ""; position: absolute; left: 11px; top: 50%; width: 13px; height: 12px; margin-top: -6px; border: 1.5px solid currentColor; border-top-width: 4px; border-radius: 2px; }
body.cfa .cfa-cal-link:hover { border-color: currentColor; }

/* Secondary (outline) button */
body.cfa .cfa-actions { display: flex; flex-wrap: wrap; gap: 10px; }
body.cfa .cfa-btn.is-ghost .wp-block-button__link { background: transparent !important; color: var(--cfa-ink); box-shadow: inset 0 0 0 1.5px var(--cfa-ink) !important; }
body.cfa .cfa-btn.is-ghost .wp-block-button__link:hover { background: var(--cfa-ink) !important; color: var(--cfa-paper); }
body.cfa .cfa-cohort .cfa-btn.is-ghost .wp-block-button__link:hover { color: #151515; }

/* ---------- Inside a workshop (edit-timeline snapshot) ---------- */
.cfa-snapshot { background: var(--cfa-bg-snapshot); }
.cfa-timeline { margin-top: 32px !important; border: 1px solid var(--cfa-ink); background: var(--cfa-paper); padding: 18px 18px 14px; }
.cfa-tl-ruler {
	display: flex;
	justify-content: space-between;
	margin-left: 82px;
	padding-bottom: 8px;
	border-bottom: 1px dashed var(--cfa-line);
	font-family: var(--cfa-mono);
	font-size: 11px;
	color: var(--cfa-muted);
}
.cfa-tl-track { display: flex; gap: 6px; align-items: stretch; margin-top: 10px; }
.cfa-tl-day { flex: 0 0 76px; font-family: var(--cfa-mono); font-size: 12px; text-transform: uppercase; color: var(--cfa-muted); padding-top: 12px; }
.cfa-tl-clip {
	flex: 0 1 var(--span, 100%);
	min-width: 0;
	border-radius: 8px;
	padding: 12px 14px;
	color: #fff;
	background: var(--clip);
	box-shadow: inset 0 -4px 0 rgba(0, 0, 0, .12);
}
.cfa-tl-clip b { display: block; font-size: 16px; letter-spacing: -.01em; }
.cfa-tl-clip span { display: block; margin-top: 4px; font-size: 13px; line-height: 1.45; opacity: .92; }
.is-theory { --clip: var(--cfa-edit); }
.is-practical { --clip: var(--cfa-color); }
.is-review { --clip: var(--cfa-film); }
.is-qa { --clip: var(--cfa-write); }
.cfa-tl-clip.is-qa { color: var(--cfa-ink); }
.cfa-tl-legend { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 14px; padding-top: 4px; font-family: var(--cfa-mono); font-size: 12px; text-transform: uppercase; color: var(--cfa-muted); }
.cfa-tl-legend span::before { content: ""; display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 6px; background: var(--clip); vertical-align: -1px; }
.cfa-facts { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 24px !important; }
.cfa-facts li { border-top: 2px solid var(--cfa-ink); padding-top: 12px; font-size: 15px; color: var(--cfa-muted); }
.cfa-facts strong { display: block; font-size: 22px; letter-spacing: -.02em; color: var(--cfa-ink); }

/* ---------- Video slot ([cfa_video]) ---------- */
.cfa-video { position: relative; margin: 0; aspect-ratio: 16 / 9; background: #111; overflow: hidden; }
.cfa-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.cfa-video-play { position: absolute; inset: 0; width: 100%; padding: 0; border: 0; background: none; cursor: pointer; color: #fff; }
.cfa-video-play img { width: 100%; height: 100%; object-fit: cover; opacity: .85; transition: opacity .3s; }
.cfa-video-play:hover img { opacity: 1; }
.cfa-video-icon { position: absolute; left: 50%; top: 50%; width: 84px; height: 84px; margin: -42px 0 0 -42px; border-radius: 50%; background: var(--cfa-red); }
.cfa-video-icon::after { content: ""; position: absolute; left: 34px; top: 26px; border-style: solid; border-width: 16px 0 16px 26px; border-color: transparent transparent transparent #fff; }
.cfa-video-title { position: absolute; left: 20px; bottom: 16px; font-weight: 700; font-size: 18px; text-shadow: 0 1px 8px rgba(0, 0, 0, .5); }

/* ---------- Alumni perks ---------- */
.cfa-perks { background: var(--cfa-bg-perks); }
.cfa-perk-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 32px !important; }
.cfa-perk {
	position: relative;
	background: var(--cfa-paper);
	border-radius: 14px;
	padding: 22px 20px 24px;
	border-top: 6px solid var(--cfa-d);
	box-shadow: 0 1px 0 var(--cfa-line);
}
/* Ticket-stub notches */
.cfa-perk::before, .cfa-perk::after {
	content: "";
	position: absolute;
	top: 58px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--cfa-bg-perks);
}
.cfa-perk::before { left: -9px; }
.cfa-perk::after { right: -9px; }
.cfa-perk-no { font-family: var(--cfa-mono); font-size: 13px; color: var(--cfa-d); font-weight: 700; padding-bottom: 18px; border-bottom: 1px dashed var(--cfa-line); }
.cfa-perk-title { margin-top: 18px !important; font-size: 20px; font-weight: 700; line-height: 1.2; letter-spacing: -.02em !important; }
.cfa-perk-text { margin-top: 8px !important; font-size: 15px; line-height: 1.5; color: var(--cfa-muted); }

/* ---------- Colleges & companies ---------- */
.cfa-teams { background: var(--cfa-bg-teams); }
.cfa-team-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 32px 0 28px !important; }
.cfa-team-card { border: 1px solid var(--cfa-ink); padding: 24px 22px; border-radius: 14px; }
.cfa-team-card:nth-child(1) { background: color-mix(in srgb, var(--cfa-edit) 10%, var(--cfa-paper)); }
.cfa-team-card:nth-child(2) { background: color-mix(in srgb, var(--cfa-color) 10%, var(--cfa-paper)); }
.cfa-team-card:nth-child(3) { background: color-mix(in srgb, var(--cfa-film) 10%, var(--cfa-paper)); }
.cfa-team-card .cfa-perk-title { margin-top: 0 !important; }

/* ---------- WhatsApp button ---------- */
.cfa-wa {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 60;
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 12px 18px 12px 14px;
	border-radius: 999px;
	background: #25d366;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .18);
	font-weight: 700;
	font-size: 15px;
	transition: transform .2s ease;
}
body.cfa .cfa-footer a.cfa-wa, body.cfa a.cfa-wa { color: #0b3d20; text-decoration: none; }
.cfa-wa:hover { transform: translateY(-2px); }

/* =====================================================================
   Course pages (Color Grading for Beginners: .cfa-slug-color)
   Same system as the homepage; the course keeps its navy + green identity
   in the hero and as the page accent.
   ===================================================================== */
body.cfa.cfa-slug-color, body.cfa[class*="palette-"].cfa-slug-color { --cfa-red: #1ceb9b; --cfa-course: #1ceb9b; --cfa-navy: #0b1a2c; }

.cfa-tone-2 { background: var(--cfa-paper-2); }
body.cfa .cfa-course-hero {
	--cfa-ink: #f4f7f8;
	--cfa-muted: rgba(244, 247, 248, .72);
	--cfa-line: rgba(244, 247, 248, .2);
	--cfa-red: var(--cfa-course, #1ceb9b);
	background: radial-gradient(120% 140% at 85% 0%, #17365a 0%, var(--cfa-navy, #0b1a2c) 55%, #070d16 100%);
	color: var(--cfa-ink);
	border-top: 0;
}
body.cfa :is(.cfa-course-hero) :is(h1, h2, h3, cite) { color: var(--cfa-ink); }

/* Hero */
.cfa-course-hero { align-items: center; padding-top: clamp(28px, 4vw, 56px) !important; padding-bottom: clamp(20px, 3vw, 40px) !important; row-gap: 28px; }
.cfa-course .cfa-statband { padding-top: 0; }
.cfa-course-hero .cfa-hero-facts { margin-top: 18px !important; }
.cfa-course-hero .cfa-lead { margin-top: 16px !important; }
.cfa-course-hero .cfa-title { font-size: clamp(44px, 6vw, 84px); }
.cfa-course-hero .cfa-title em {
	background: linear-gradient(90deg, #1ceb9b, #3fd0ff);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
}
.cfa-course-hero .cfa-lead { margin-top: 22px !important; max-width: 54ch; }

.cfa-course-mentor-name { font-size: 20px; }
.cfa-course-mentor-name strong { color: var(--cfa-course); }

body.cfa .cfa-btn.is-register .wp-block-button__link { background: var(--cfa-course, var(--cfa-red)) !important; color: #06140f !important; }
body.cfa .cfa-btn.is-register .wp-block-button__link:hover { background: #fff !important; color: #06140f !important; }
body.cfa :is(.cfa-tone-2) .cfa-btn.is-register .wp-block-button__link { background: var(--cfa-ink) !important; color: var(--cfa-paper) !important; }
body.cfa :is(.cfa-tone-2) .cfa-btn.is-register .wp-block-button__link:hover { background: var(--cfa-red) !important; color: #fff !important; }
body.cfa .cfa-course-hero .cfa-btn.is-ghost .wp-block-button__link { color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .6) !important; }
body.cfa .cfa-course-hero .cfa-btn.is-ghost .wp-block-button__link:hover { background: #fff !important; color: var(--cfa-navy) !important; }

/* Stats strip (4 up) */
.cfa-statband { padding-block: clamp(28px, 4vw, 44px); }
.cfa-stats.is-4 { grid-template-columns: repeat(4, 1fr); margin-top: 0 !important; }
.cfa-statband .cfa-stats strong { color: var(--cfa-red); }

/* Cohort extras */

.cfa-cohort-main .cfa-countdown { margin-top: 18px !important; }
.cfa-cohort-main .cfa-countdown + .cfa-countdown { margin-top: 14px !important; }

/* Grid modifiers */
.cfa-perk-grid.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cfa-team-grid.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cfa-facts.is-3 { grid-template-columns: repeat(3, 1fr); row-gap: 24px; }
.cfa-quote-grid.is-6 { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 40px; }
.cfa-quote-grid.is-6 .cfa-quote { font-size: 19px; }
.cfa-why-list.is-single { grid-template-columns: 1fr; }

/* DaVinci Resolve */

/* What you will learn */
.cfa-learn-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 32px !important; }
.cfa-learn-card { background: var(--cfa-paper); border-radius: 14px; padding: 22px 20px 24px; border-top: 6px solid var(--cfa-d); }
.cfa-learn-card .cfa-perk-no { color: var(--cfa-d); }

/* Live. Online. Interactive. */

/* Eligibility + benefits */

.cfa-checklist { list-style: none; padding: 0; margin-top: 22px !important; }
.cfa-checklist li { position: relative; padding: 12px 0 12px 32px; border-bottom: 1px solid var(--cfa-line); font-size: 17px; }
.cfa-checklist li::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: 12px;
	width: 21px;
	height: 21px;
	border-radius: 50%;
	background: var(--cfa-red);
	color: #fff;
	font-size: 12px;
	display: grid;
	place-items: center;
}

/* Know your mentor */
.cfa-knowmentor { background: var(--cfa-bg-mentors); }
.cfa-knowmentor-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.2fr); gap: clamp(28px, 5vw, 64px); margin-top: 32px !important; align-items: start; }
.cfa-knowmentor-grid .cfa-mentor-card { max-width: 300px; }
.cfa-knowmentor .cfa-faq-list details p { padding-bottom: 0; }
.cfa-knowmentor .cfa-faq-list details > :last-child { padding-bottom: 22px; }
body.cfa .cfa-knowmentor summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 0;
	font-size: 19px;
	font-weight: 500;
}
body.cfa .cfa-knowmentor summary::-webkit-details-marker { display: none; }
body.cfa .cfa-knowmentor summary::after { content: "+"; color: var(--cfa-red); font-size: 24px; line-height: 1; }
body.cfa .cfa-knowmentor details[open] summary::after { content: "–"; }
body.cfa .cfa-knowmentor summary:focus { outline: none; }
.cfa-knowmentor .wp-block-details { border-bottom: 1px solid var(--cfa-line); }
.cfa-knowmentor .cfa-faq-list { border-top: 1px solid var(--cfa-ink); }
.cfa-knowmentor details p { color: var(--cfa-muted); max-width: 64ch; margin-top: 10px !important; line-height: 1.6; }
.cfa-knowmentor details p strong { color: var(--cfa-ink); }
.cfa-knowmentor .cfa-studios { margin-top: 48px !important; }

/* Register (styled like the homepage contact section) */
.cfa-register { background: var(--cfa-bg-contact); display: grid; grid-template-columns: 1fr 1.25fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.cfa-register-info > * + * { margin-top: 16px !important; }
.cfa-register .cfa-contact-list li { grid-template-columns: 70px 1fr; }
.cfa-register-form { background: var(--cfa-paper); padding: clamp(20px, 3vw, 36px); border-radius: 14px; box-shadow: 0 10px 30px rgba(0, 0, 0, .06); }
/* Fluent Forms: two-column rows, choice buttons, checkboxes */
body.cfa .cfa-register-form .ff-t-container { gap: 20px; }
body.cfa .cfa-register-form .ff-el-section-break { display: none; }
body.cfa .cfa-register-form .ff-el-form-check { margin: 0 6px 8px 0; display: inline-block; }
body.cfa .cfa-register-form .ff-el-input--content .ff-el-form-check-label { cursor: pointer; font-size: 15px; }
body.cfa .cfa-register-form .ff-btn-choices .ff-el-form-check-label,
body.cfa .cfa-register-form .ff-el-group .ff-btn-choices label {
	display: inline-block;
	padding: 8px 14px !important;
	border: 1.5px solid var(--cfa-line) !important;
	border-radius: 999px;
	background: var(--cfa-paper) !important;
	color: var(--cfa-ink) !important;
	font-size: 14px;
}
body.cfa .cfa-register-form .ff-btn-choices input:checked + label,
body.cfa .cfa-register-form .ff-el-group .ff-btn-choices input:checked + label { background: var(--cfa-ink) !important; color: var(--cfa-paper) !important; border-color: var(--cfa-ink) !important; }
body.cfa .cfa-register-form input[type="checkbox"], body.cfa .cfa-register-form input[type="radio"] { accent-color: var(--cfa-red); }
body.cfa .cfa-register-form .ff-el-tc-label, body.cfa .cfa-register-form .ff_t_c { font-size: 14px; color: var(--cfa-muted); }
/* Registration closed (Fluent Forms schedule/limits) */
body.cfa .cfa-register-form .ff_form_not_render {
	padding: 22px 22px 22px 56px;
	position: relative;
	border-radius: 12px;
	background: var(--cfa-paper-2);
	font-size: 17px;
	line-height: 1.55;
}
body.cfa .cfa-register-form .ff_form_not_render::before {
	content: "!";
	position: absolute;
	left: 20px;
	top: 22px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--cfa-red);
	color: #fff;
	font-weight: 700;
	display: grid;
	place-items: center;
}

/* =====================================================================
   Dark "grade" palette (Color Grading page): orbs, glass surfaces, overlays
   ===================================================================== */
body.cfa.palette-grade {
	--cfa-paper: #1a1a1a;
	--cfa-paper-2: #141414;
	--cfa-ink: #eef3f5;
	--cfa-muted: #9eabb4;
	--cfa-line: rgba(255, 255, 255, .12);
	--cfa-color: #ff6b4a; --cfa-edit: #4d8dff; --cfa-write: #ffd166; --cfa-film: #1ceb9b; --cfa-sound: #ff6fb5;
	--cfa-glass: rgba(255, 255, 255, .045);
	--cfa-glass-line: rgba(255, 255, 255, .09);
	--cfa-bg-hero: transparent; --cfa-bg-programme: transparent; --cfa-bg-about: transparent; --cfa-bg-mentors: transparent;
	--cfa-bg-why: transparent; --cfa-bg-quotes: transparent; --cfa-bg-faq: transparent; --cfa-bg-contact: transparent;
	--cfa-bg-snapshot: transparent; --cfa-bg-perks: transparent; --cfa-bg-teams: transparent;
	background: #111111;
	color-scheme: dark;
}
body.cfa.palette-grade :is(h1, h2, h3, h4, h5, h6, summary, cite) { color: var(--cfa-ink); }

.palette-grade .cfa-tone-2 { background: rgba(255, 255, 255, .025); }
body.cfa.palette-grade .cfa-course-hero { background: transparent; }

.palette-grade .cfa-logo img { filter: invert(1); }
body.cfa.palette-grade .cfa-footer { background: #0b0b0b; color: var(--cfa-ink); border-top: 1px solid var(--cfa-glass-line); }
body.cfa.palette-grade .cfa-footer a { color: var(--cfa-ink); }
body.cfa.palette-grade .cfa-footer-base { border-top-color: var(--cfa-glass-line); }
.palette-grade .cfa-header { background: rgba(17, 17, 17, .78); border-bottom-color: var(--cfa-glass-line); }

/* Glass surfaces */
.palette-grade :is(.cfa-perk, .cfa-learn-card, .cfa-team-card, .cfa-register-form, .cfa-timeline) {
	background: var(--cfa-glass) !important;
	border: 1px solid var(--cfa-glass-line);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow: none;
}
.palette-grade :is(.cfa-perk, .cfa-learn-card) { border-top: 6px solid var(--cfa-d); }
.palette-grade .cfa-perk::before, .palette-grade .cfa-perk::after { background: #111111; }
body.cfa.palette-grade .cfa-cohort {
	background: linear-gradient(135deg, rgba(40, 40, 40, .8), rgba(22, 22, 22, .9));
	border-block: 1px solid var(--cfa-glass-line);
	backdrop-filter: blur(10px);
}
.palette-grade .cfa-checklist li::before { color: #06140f; }
body.cfa.palette-grade .cfa-btn .wp-block-button__link { background: var(--cfa-ink); color: #06090d; }
body.cfa.palette-grade .cfa-btn.is-register .wp-block-button__link, body.cfa.palette-grade :is(.cfa-tone-2) .cfa-btn.is-register .wp-block-button__link { background: var(--cfa-course) !important; color: #06140f !important; }
body.cfa.palette-grade .cfa-btn.is-register .wp-block-button__link:hover { background: #fff !important; color: #06140f !important; }
body.cfa.palette-grade .cfa-btn.is-ghost .wp-block-button__link { color: var(--cfa-ink); box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .5) !important; }
.palette-grade .cfa-tl-ruler { border-color: var(--cfa-glass-line); }
/* Forms on dark */
body.cfa.palette-grade .cfa-contact-form .fluentform .ff-el-form-control::placeholder { color: rgba(238, 243, 245, .38); }
body.cfa.palette-grade .cfa-contact-form .fluentform .ff-el-form-check-label,
body.cfa.palette-grade .cfa-contact-form .fluentform .ff-el-form-check-label span { color: var(--cfa-ink); }
body.cfa.palette-grade .cfa-contact-form .fluentform .ff-btn-submit { background: var(--cfa-course) !important; color: #06140f !important; }
body.cfa.palette-grade .cfa-contact-form .fluentform .ff-btn-submit:hover { background: #fff !important; }
body.cfa.palette-grade .cfa-contact-form .fluentform select.ff-el-form-control option { color: #111; }

/* Flowing orbs (fixed behind the page) */
.cfa-orbs { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.cfa-orbs span {
	position: absolute;
	width: 48vmax;
	height: 48vmax;
	border-radius: 50%;
	filter: blur(110px);
	opacity: .16;
	animation: cfa-orb 28s ease-in-out infinite alternate;
	will-change: transform;
}
.cfa-orbs span:nth-child(1) { background: radial-gradient(circle, #1ceb9b, transparent 65%); top: -18vmax; left: -12vmax; }
.cfa-orbs span:nth-child(2) { background: radial-gradient(circle, #3f6fd1, transparent 65%); top: 10vmax; right: -16vmax; animation-duration: 34s; animation-delay: -8s; }
.cfa-orbs span:nth-child(3) { background: radial-gradient(circle, #f2b24a, transparent 65%); bottom: -20vmax; left: 12vmax; animation-duration: 40s; animation-delay: -16s; opacity: .2; }
.cfa-orbs span:nth-child(4) { background: radial-gradient(circle, #b35cff, transparent 65%); bottom: 4vmax; right: 18vmax; animation-duration: 31s; animation-delay: -4s; opacity: .12; }
@keyframes cfa-orb {
	0% { transform: translate(0, 0) scale(1); }
	50% { transform: translate(8vmax, 6vmax) scale(1.12); }
	100% { transform: translate(-6vmax, 10vmax) scale(.92); }
}

/* Faint colour-grading imagery behind selected sections (loaded when near the viewport; see reveal.js) */
.cfa-overlay { position: relative; isolation: isolate; }
.cfa-overlay::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--cfa-ov, none) center / cover no-repeat;
	opacity: 0;
	transition: opacity 1.2s ease;
	-webkit-mask-image: radial-gradient(120% 90% at 70% 40%, #000 30%, transparent 85%);
	mask-image: radial-gradient(120% 90% at 70% 40%, #000 30%, transparent 85%);
	pointer-events: none;
}
.cfa-overlay.ov-on::before { opacity: .14; filter: saturate(.6); }
.cfa-overlay.is-resolve.ov-on { --cfa-ov: url("/wp-content/plugins/crosscut-home/assets/img/overlay-resolve.webp"); }
.cfa-overlay.is-crew.ov-on { --cfa-ov: url("/wp-content/plugins/crosscut-home/assets/img/overlay-rig.webp"); }
.cfa-overlay.is-grade.ov-on { --cfa-ov: url("/wp-content/plugins/crosscut-home/assets/img/overlay-grade.webp"); }
.cfa-overlay.is-grade.ov-on::before { opacity: .1; }

/* Spectrum heading */
.cfa-spectrum {
	background: linear-gradient(90deg, #ff5f6d, #ffb347, #f9f871, #1ceb9b, #3fd0ff, #7b6cff, #ff5fae, #ff5f6d);
	background-size: 300% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
	animation: cfa-spectrum 10s linear infinite;
	padding-bottom: .06em;
}
@keyframes cfa-spectrum { to { background-position: 300% 0; } }
@media (prefers-reduced-motion: reduce) {
	.cfa-orbs span, .cfa-spectrum { animation: none; }
}

/* Course header: back link, page label, course nav + Register CTA */
.cfa-header .is-course, .cfa-nav .is-course { display: none; }
body.cfa-course .cfa-header .cfa-back, body.cfa-course .cfa-header .cfa-crumb { display: inline-flex; }
/* Policy pages: show the page name in the header */
body.cfa-doc-page .cfa-header .cfa-crumb { display: inline-flex; background: none; -webkit-background-clip: border-box; background-clip: border-box; color: var(--cfa-ink); -webkit-text-fill-color: currentColor; font-weight: 600; }
/* Policies side menu: current page */
body.cfa .cfa-doc-nav a[aria-current="page"] { color: var(--cfa-red); font-weight: 700; }
body.cfa .cfa-doc-nav a[aria-current="page"]::before { content: "→ "; }
body.cfa-course .cfa-nav a.is-course:not(.cfa-nav-cohort):not([href="/"]) { display: inline; }
body.cfa-course .cfa-nav a:not(.is-course), body.cfa-course .cfa-nav-cta:not(.cfa-nav-cta-course) { display: none !important; }
body.cfa-course .cfa-nav-cta-course { display: inline-block; background: var(--cfa-course, var(--cfa-ink)) !important; color: #06140f !important; }
body.cfa .cfa-back {
	align-items: center;
	padding: 7px 12px;
	border: 1px solid var(--cfa-line);
	border-radius: 999px;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}
body.cfa .cfa-back:hover { border-color: currentColor; }
.cfa-crumb {
	align-items: center;
	gap: 10px;
	font-weight: 700;
	font-size: 15px;
	white-space: nowrap;
	background: linear-gradient(90deg, #1ceb9b, #3fd0ff);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.cfa-crumb::before { content: "/"; color: var(--cfa-muted); -webkit-text-fill-color: var(--cfa-muted); font-weight: 400; }

.cfa-mentor-roles { display: grid; gap: 3px; margin-top: 10px !important; line-height: 1.35; }
.cfa-mentor-roles span { display: block; white-space: nowrap; }
body.cfa.palette-grade .cfa-knowmentor .cfa-mentor-roles { color: var(--cfa-course); filter: none; }

/* Filmography: compact multi-column grid */
.cfa-filmo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 28px; padding: 6px 0 24px; }
.cfa-filmo-group.is-wide { grid-column: 1 / -1; }
.cfa-filmo-role { margin: 0 0 8px !important; font-family: var(--cfa-mono); font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--cfa-course, var(--cfa-red)) !important; }
.cfa-filmo-list { list-style: none; padding: 0; margin: 0 !important; }
.cfa-filmo-list li { padding: 3px 0; font-size: 15px; color: var(--cfa-ink); break-inside: avoid; }
.cfa-filmo-list.is-cols { columns: 3; column-gap: 28px; }

/* Testimonials: role line under the name in regular weight, title case (all screen sizes) */
body.cfa .cfa-quote cite .cfa-cite-role { display: inline-block; margin-top: 2px; font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--cfa-muted); font-size: 14px; }

/* Star rating next to a section label */
.cfa-rated { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; }
.cfa-stars { font-family: var(--cfa-sans); font-size: 24px; letter-spacing: 3px; line-height: 1; color: #ffc53d; text-shadow: 0 0 12px rgba(255, 197, 61, .35); white-space: nowrap; }

/* ---------- Line icons with ever-moving colour (mask + animated gradient) ---------- */
.cfa-lineicon {
	display: inline-block;
	width: 48px;
	height: 48px;
	background: linear-gradient(120deg, #1ceb9b, #3fd0ff, #7b6cff, #ff5fae, #ffb347, #1ceb9b);
	background-size: 400% 400%;
	-webkit-mask: var(--icon) center / contain no-repeat;
	mask: var(--icon) center / contain no-repeat;
	animation: cfa-hue 7s linear infinite;
}
@keyframes cfa-hue { 0% { background-position: 0% 50%; } 100% { background-position: 400% 50%; } }
.cfa-lineicon.is-seed { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21v-9'/%3E%3Cpath d='M12 12C12 8 9 5 4 5c0 4 3 7 8 7z'/%3E%3Cpath d='M12 10c0-4 3-7 8-7 0 4-3 7-8 7z'/%3E%3C/svg%3E"); }
.cfa-lineicon.is-cap { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 9l10-5 10 5-10 5z'/%3E%3Cpath d='M6 11v5c0 1.5 2.7 3 6 3s6-1.5 6-3v-5'/%3E%3Cpath d='M22 9v6'/%3E%3C/svg%3E"); }
.cfa-lineicon.is-switch { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h14'/%3E%3Cpath d='M15 4l3 3-3 3'/%3E%3Cpath d='M20 17H6'/%3E%3Cpath d='M9 14l-3 3 3 3'/%3E%3C/svg%3E"); }
.cfa-lineicon.is-clap { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='9' width='18' height='12' rx='1.5'/%3E%3Cpath d='M3 9l1.4-4.6 15.6-1.4 1 4.6'/%3E%3Cpath d='M8.5 4l2 4.6M14 3.5l2 4.8'/%3E%3Cpath d='M3 13h18'/%3E%3C/svg%3E"); }

/* ---------- Who can join: icon cards ---------- */
.cfa-who-card { position: relative; overflow: hidden; padding: 28px 26px 24px !important; transition: transform .35s ease, border-color .35s ease; }
.cfa-who-card:hover { transform: translateY(-4px); border-color: rgba(28, 235, 155, .45) !important; }
.cfa-who-card .cfa-perk-title { margin-top: 16px !important; font-size: 22px; }
.cfa-who-no {
	position: absolute;
	right: 18px;
	top: 6px;
	font-size: 88px;
	font-weight: 700;
	letter-spacing: -.05em;
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1px var(--cfa-line);
	pointer-events: none;
}
.cfa-who-card::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 3px;
	background: linear-gradient(90deg, #1ceb9b, #3fd0ff, #7b6cff, #ff5fae, #ffb347, #1ceb9b);
	background-size: 300% 100%;
	animation: cfa-hue 7s linear infinite;
	opacity: .8;
}
.cfa-who-tag {
	display: inline-block;
	margin-top: 16px !important;
	padding: 5px 12px;
	border: 1px solid var(--cfa-line);
	border-radius: 999px;
	font-family: var(--cfa-mono);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--cfa-course, var(--cfa-red));
}
.cfa-who-ideal {
	margin-top: 32px !important;
	padding: 18px 22px;
	border-left: 3px solid var(--cfa-course, var(--cfa-red));
	background: rgba(255, 255, 255, .03);
	border-radius: 0 12px 12px 0;
	font-size: 18px;
	color: var(--cfa-ink) !important;
}

/* ---------- Know your mentor: black & white photo in a circle, animated ring ---------- */
.cfa-knowmentor .cfa-mentor-card { text-align: center; }
.cfa-knowmentor .cfa-mentor-img {
	position: relative;
	width: 220px;
	margin: 0 auto 18px !important;
	padding: 5px;
	border-radius: 50%;
	background: linear-gradient(120deg, #1ceb9b, #3fd0ff, #7b6cff, #ff5fae, #ffb347, #1ceb9b);
	background-size: 400% 400%;
	animation: cfa-hue 7s linear infinite;
}
body.cfa .cfa-knowmentor .cfa-mentor-img img {
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	object-fit: cover;
	object-position: 50% 18%;
	filter: grayscale(1) contrast(1.08);
	box-shadow: none !important;
	border: 4px solid #111111;
}
.cfa-knowmentor .cfa-social { justify-content: center; }
@media (prefers-reduced-motion: reduce) {
	.cfa-lineicon, .cfa-who-card::after, .cfa-knowmentor .cfa-mentor-img { animation-duration: 30s; }
}

/* ---------- Form fields: clearly outlined boxes (contact + registration) ---------- */
body.cfa .cfa-contact-form .fluentform .ff-el-form-control {
	border: 1.5px solid var(--cfa-field-line, rgba(21, 21, 21, .35)) !important;
	border-radius: 10px !important;
	padding: 12px 14px !important;
	background: var(--cfa-field-bg, #fff) !important;
	min-height: 48px;
	font-size: 17px !important;
}
body.cfa .cfa-contact-form .fluentform .ff-el-form-control:hover { border-color: var(--cfa-field-hover, rgba(21, 21, 21, .6)) !important; }
body.cfa .cfa-contact-form .fluentform .ff-el-form-control:focus {
	border-color: var(--cfa-course, var(--cfa-red)) !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--cfa-course, var(--cfa-red)) 30%, transparent) !important;
}
body.cfa .cfa-contact-form .fluentform select.ff-el-form-control { background-position: right 14px center !important; padding-right: 36px !important; }
body.cfa .cfa-contact-form .fluentform input[type="checkbox"], body.cfa .cfa-contact-form .fluentform input[type="radio"] {
	width: 18px; height: 18px; border: 1.5px solid var(--cfa-field-line, rgba(21, 21, 21, .35));
}
body.cfa.palette-grade {
	--cfa-field-line: rgba(238, 243, 245, .38);
	--cfa-field-hover: rgba(238, 243, 245, .7);
	--cfa-field-bg: rgba(255, 255, 255, .04);
}

/* =====================================================================
   Color page: audit fixes (hero facts, offer, mentor, sticky CTA, readability)
   ===================================================================== */
/* Readability on dark: lighter muted text, no text under 13px */
body.cfa.palette-grade { --cfa-muted: #b8c4cc; }
.palette-grade .cfa-label, .palette-grade .cfa-kicker { font-size: 14px; }
.palette-grade .cfa-perk-text, .palette-grade .cfa-team-card .cfa-perk-text { font-size: 16px; line-height: 1.55; }
.palette-grade .cfa-tone-2 { background: rgba(255, 255, 255, .045); }

/* Hero */
.cfa-hero-facts { list-style: none; padding: 0; display: flex; flex-wrap: wrap; column-gap: 0; row-gap: 4px; margin-top: 22px !important; font-size: 16px; line-height: 1.5; }
.cfa-hero-facts li { padding: 0; }
.cfa-hero-facts li:first-child { flex-basis: 100%; }
.cfa-hero-facts li + li + li::before { content: "·"; margin: 0 10px; color: var(--cfa-muted); }
.cfa-hero-facts strong { color: var(--cfa-course); }
.cfa-course-hero .cfa-actions { margin-top: 16px !important; }
.cfa-course-hero .cfa-course-mentor-name { margin-top: 20px !important; font-size: 15px; color: var(--cfa-muted); }
.cfa-course-hero .cfa-course-mentor-name strong { color: var(--cfa-ink); }

/* What you will learn */
.cfa-learn-intro { margin-top: 18px !important; max-width: 64ch; font-size: 18px; color: var(--cfa-muted); }
.cfa-learn-intro strong { color: var(--cfa-ink); }

/* Who + requirements row */
.cfa-elig-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 28px !important; padding: 18px 22px; border-radius: 14px; border: 1px dashed var(--cfa-glass-line, var(--cfa-line)); }
.cfa-checklist.is-row { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0 !important; }
.cfa-checklist.is-row li { border: 0; padding: 4px 0 4px 30px; font-size: 16px; }
.cfa-checklist.is-row li::before { top: 4px; }

/* Mentor */
.cfa-mentor-about > * + * { margin-top: 18px !important; }
.cfa-mentor-bio { font-size: 18px; line-height: 1.65; max-width: 62ch; }
.cfa-chips.is-creds li { border-color: rgba(28, 235, 155, .35); color: var(--cfa-ink); background: rgba(28, 235, 155, .06); font-size: 14px; }
.cfa-chips.is-creds li:first-child { background: rgba(28, 235, 155, .06); font-family: inherit; border-color: rgba(28, 235, 155, .35); }
.cfa-knowmentor .cfa-faq-list { margin-top: 24px !important; }
.cfa-quote-grid.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cfa-mentor-quotes { margin-top: 48px !important; }
.cfa-mentor-quotes .cfa-quote { font-size: 18px !important; }

/* Offer + registration */
.cfa-register { grid-template-columns: 1fr 1.15fr; }
.cfa-offer { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; margin-top: 22px !important; }
.cfa-offer-price { font-size: clamp(44px, 5vw, 60px); font-weight: 700; letter-spacing: -.04em; line-height: 1; color: var(--cfa-course); }
.cfa-offer s { color: var(--cfa-muted); font-size: 20px; }
.cfa-offer-save { width: 100%; font-family: var(--cfa-mono); font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--cfa-write); }
.cfa-offer-note { font-size: 16px; color: var(--cfa-muted); }
.cfa-offer-note strong { color: var(--cfa-ink); }
.cfa-register-info .cfa-countdown { margin-top: 18px !important; }
.cfa-register-info .cfa-contact-list { margin-top: 24px !important; }
.cfa-register-info .cfa-contact-list li { grid-template-columns: 80px 1fr; font-size: 16px; }
.cfa-register-info .cfa-cal { margin-top: 16px !important; }
.cfa-incl-label { margin-top: 28px !important; }
.cfa-checklist.is-incl { display: grid; grid-template-columns: 1fr 1fr; column-gap: 20px; margin-top: 10px !important; }
.cfa-checklist.is-incl li { font-size: 15px; }
.cfa-form-title { font-size: 17px; font-weight: 600; margin-bottom: 18px !important; }
.cfa-register-side > * + * { margin-top: 14px !important; }
.cfa-secure { display: flex; align-items: center; gap: 10px; margin-top: 14px !important; font-size: 14px; color: var(--cfa-muted); }
.cfa-secure .cfa-lineicon { width: 22px; height: 22px; flex: none; }
.cfa-lineicon.is-lock { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E"); }
body.cfa .cfa-register-form .ff-btn-submit { width: 100%; padding: 16px 20px !important; font-size: 17px !important; border-radius: 10px !important; text-transform: none !important; }

/* Fee includes: full-width row under price + form on desktop */
.cfa-register > .cfa-register-info { grid-column: 1; grid-row: 1; }
.cfa-register > .cfa-register-side { grid-column: 2; grid-row: 1; }
.cfa-register > .cfa-fee-row { grid-column: 1 / -1; grid-row: 2; padding-top: 28px; border-top: 1px solid var(--cfa-line); }
.cfa-fee-row .cfa-incl-label { margin-top: 0 !important; }
.cfa-register .cfa-checklist.is-incl { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 28px; margin-top: 12px !important; }

/* Curriculum contrast on dark */
/* Curriculum on dark: tinted panels with a coloured edge and light text (≈11-12:1 contrast) */
body.cfa.palette-grade .is-theory { --clip: #5b93ff; }
body.cfa.palette-grade .is-practical { --clip: #ff7a4d; }
body.cfa.palette-grade .is-qa { --clip: #ffd166; }
body.cfa.palette-grade .cfa-tl-clip {
	background: color-mix(in srgb, var(--clip) 16%, #161616);
	border-left: 4px solid var(--clip);
	border-radius: 6px 10px 10px 6px;
	box-shadow: none;
	color: #e9eef2;
}
body.cfa.palette-grade .cfa-tl-clip b { color: var(--clip); font-size: 17px; }
body.cfa.palette-grade .cfa-tl-clip span { opacity: 1; color: #e2e8ec; font-size: 15px; line-height: 1.55; margin-top: 6px; }
body.cfa.palette-grade .cfa-tl-clip.is-qa, body.cfa.palette-grade .cfa-tl-clip.is-qa b { color: var(--clip); }
body.cfa.palette-grade .cfa-tl-clip.is-qa span { color: #e2e8ec; }
body.cfa.palette-grade .cfa-tl-track { margin-top: 12px; }
body.cfa.palette-grade .cfa-tl-day { color: #cfd8de; font-size: 13px; }

/* Registration form: radio options as tidy pill buttons */
body.cfa .cfa-register-form .ff-el-input--content { display: flex; flex-wrap: wrap; gap: 8px; }
body.cfa .cfa-register-form .ff-el-form-check { margin: 0 !important; }
body.cfa .cfa-register-form .ff-el-group:has(input[type="radio"]) .ff-el-form-check-label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px 8px 10px;
	border: 1.5px solid var(--cfa-field-line, var(--cfa-line));
	border-radius: 999px;
	font-size: 15px;
	cursor: pointer;
	transition: border-color .2s, background .2s;
}
body.cfa .cfa-register-form .ff-el-group:has(input[type="radio"]) .ff-el-form-check-label:has(input:checked) {
	border-color: var(--cfa-course, var(--cfa-red));
	background: color-mix(in srgb, var(--cfa-course, var(--cfa-red)) 14%, transparent);
}
body.cfa .cfa-register-form .ff-el-group:has(input[type="radio"]) .ff-el-form-check-label input { margin: 0; }
body.cfa .cfa-register-form .ff-el-input--content > :not(.ff-el-form-check) { flex-basis: 100%; }

/* Sticky mobile CTA (course pages; hidden on desktop and while the form is on screen) */
.cfa-sticky-cta { display: none; }

/* Quote grid on dark: keep default quote size readable */
.palette-grade .cfa-quote p { color: var(--cfa-ink); }

/* =====================================================================
   Hero: journey of a shot (Edit -> Color -> Deliver), pure CSS, 12s loop
   ===================================================================== */
.cfa-shot {
	--t: 12s;
	position: relative;
	border-radius: 16px;
	padding: 12px;
	background: rgba(255, 255, 255, .045);
	border: 1px solid rgba(255, 255, 255, .1);
	box-shadow: 0 30px 70px rgba(0, 0, 0, .45);
	font-family: var(--cfa-mono);
	color: #cfd6db;
}
.cfa-shot-tabs { display: flex; gap: 4px; margin-bottom: 10px; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
.cfa-shot-tabs span { position: relative; padding: 6px 12px; border-radius: 8px; color: #7f8a92; }
.cfa-shot-tabs span::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: rgba(28, 235, 155, .14); box-shadow: inset 0 0 0 1px rgba(28, 235, 155, .45); opacity: 0; }
.cfa-shot-tabs .is-edit::after, .cfa-shot-panel.is-edit { animation: cfa-stage-1 var(--t) infinite; }
.cfa-shot-tabs .is-color::after, .cfa-shot-panel.is-color { animation: cfa-stage-2 var(--t) infinite; }
.cfa-shot-tabs .is-deliver::after, .cfa-shot-panel.is-deliver { animation: cfa-stage-3 var(--t) infinite; }
@keyframes cfa-stage-1 { 0%, 30% { opacity: 1; } 33.4%, 97% { opacity: 0; } 100% { opacity: 1; } }
@keyframes cfa-stage-2 { 0%, 30% { opacity: 0; } 33.4%, 63.4% { opacity: 1; } 66.7%, 100% { opacity: 0; } }
@keyframes cfa-stage-3 { 0%, 63.4% { opacity: 0; } 66.7%, 97% { opacity: 1; } 100% { opacity: 0; } }
.cfa-shot-tabs span { animation: none; }

/* Viewer: flat log footage gets graded, then letterboxed */
.cfa-shot-viewer { position: relative; overflow: hidden; border-radius: 8px; background: #000; aspect-ratio: 16 / 9; }
.cfa-shot-viewer img { width: 100%; height: 100%; object-fit: cover; display: block; animation: cfa-grade var(--t) infinite; }
/* Showreel video (YouTube) over the still: full frame (keeps the reel's captions), click-through, same live grade */
.cfa-shot-video {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	transform: translate(-50%, -50%);
	border: 0;
	pointer-events: none;
	opacity: 0;
	transition: opacity .8s ease;
	animation: cfa-grade var(--t) infinite;
}
.cfa-shot-viewer.has-video .cfa-shot-video { opacity: 1; }
@keyframes cfa-grade {
	0%, 36% { filter: saturate(.28) contrast(.72) brightness(1.18) sepia(0) hue-rotate(0deg); }
	40%, 44% { filter: saturate(.8) contrast(.8) brightness(1.08) sepia(0) hue-rotate(0deg); }
	48%, 52% { filter: saturate(.95) contrast(1.12) brightness(1) sepia(0) hue-rotate(0deg); }
	57%, 96% { filter: saturate(1.25) contrast(1.14) brightness(.98) sepia(.12) hue-rotate(-6deg); }
	100% { filter: saturate(.28) contrast(.72) brightness(1.18) sepia(0) hue-rotate(0deg); }
}
.cfa-shot-bar { position: absolute; left: 0; right: 0; height: 0; background: #000; animation: cfa-letterbox var(--t) infinite; }
.cfa-shot-bar.is-top { top: 0; }
.cfa-shot-bar.is-bottom { bottom: 0; }
@keyframes cfa-letterbox { 0%, 68% { height: 0; } 74%, 96% { height: 11%; } 100% { height: 0; } }
.cfa-shot-tc, .cfa-shot-look { position: absolute; bottom: 8px; font-size: 11px; padding: 3px 7px; border-radius: 5px; background: rgba(0, 0, 0, .55); color: #e9eef2; z-index: 1; }
.cfa-shot-tc { left: 8px; }
.cfa-shot-look { right: 8px; display: grid; }
.cfa-shot-look b { grid-area: 1 / 1; font-weight: 400; }
.cfa-shot-look .is-log { animation: cfa-stage-log var(--t) infinite; }
.cfa-shot-look .is-709 { color: #1ceb9b; animation: cfa-stage-709 var(--t) infinite; }
@keyframes cfa-stage-log { 0%, 37% { opacity: 1; } 39%, 97% { opacity: 0; } 100% { opacity: 1; } }
@keyframes cfa-stage-709 { 0%, 37% { opacity: 0; } 39%, 97% { opacity: 1; } 100% { opacity: 0; } }

/* Panels (stacked; one visible per stage) */
.cfa-shot-panels { position: relative; height: 104px; margin-top: 10px; }
.cfa-shot-panel { position: absolute; inset: 0; opacity: 0; }

/* Edit: tracks, clips, playhead */
.cfa-shot-panel.is-edit { padding-top: 4px; }
.cfa-shot-track { position: relative; height: 24px; margin-bottom: 6px; margin-left: 30px; border-radius: 4px; background: rgba(255, 255, 255, .04); }
.cfa-shot-track em { position: absolute; left: -30px; top: 5px; font-style: normal; font-size: 11px; color: #7f8a92; }
.cfa-shot-track span { position: absolute; top: 2px; bottom: 2px; border-radius: 4px; background: #4d7de0; opacity: .85; }
.cfa-shot-track.is-audio span { background: #2fb37f; }
.cfa-shot-track .is-pick { background: #ffb347; animation: cfa-pick var(--t) infinite; }
@keyframes cfa-pick { 0%, 16% { box-shadow: none; } 20%, 30% { box-shadow: 0 0 0 2px #fff, 0 0 18px rgba(255, 179, 71, .8); } 34%, 100% { box-shadow: none; } }
.cfa-shot-playhead { position: absolute; top: 0; bottom: 14px; left: 30px; width: 2px; background: #ff5f5f; box-shadow: 0 0 8px #ff5f5f; animation: cfa-playhead var(--t) infinite linear; }
@keyframes cfa-playhead { 0% { left: 30px; } 30% { left: calc(30px + 48%); } 100% { left: calc(30px + 48%); } }

/* Color: node tree + RGB histogram */
.cfa-shot-panel.is-color { display: grid; grid-template-columns: 1.45fr 1fr; gap: 12px; align-items: center; }
.cfa-nodes { display: flex; align-items: center; }
.cfa-node-io { font-size: 10px; color: #7f8a92; padding: 4px 5px; border: 1px dashed rgba(255, 255, 255, .2); border-radius: 5px; }
.cfa-node-link { flex: 1; min-width: 6px; height: 2px; background: rgba(255, 255, 255, .18); }
.cfa-node {
	display: grid;
	justify-items: center;
	gap: 2px;
	padding: 7px 6px 6px;
	min-width: 58px;
	border-radius: 7px;
	background: #262626;
	border: 1.5px solid rgba(255, 255, 255, .15);
	font-size: 10px;
	color: #7f8a92;
	opacity: .45;
}
.cfa-node b { font-weight: 400; font-size: 9px; color: #5f6a72; }
.cfa-node.n1 { animation: cfa-node-1 var(--t) infinite; }
.cfa-node.n2 { animation: cfa-node-2 var(--t) infinite; }
.cfa-node.n3 { animation: cfa-node-3 var(--t) infinite; }
@keyframes cfa-node-1 { 0%, 36% { opacity: .45; border-color: rgba(255,255,255,.15); color: #7f8a92; box-shadow: none; } 38%, 96% { opacity: 1; border-color: #1ceb9b; color: #e9eef2; box-shadow: 0 0 12px rgba(28,235,155,.35); } 100% { opacity: .45; } }
@keyframes cfa-node-2 { 0%, 44% { opacity: .45; border-color: rgba(255,255,255,.15); color: #7f8a92; box-shadow: none; } 46%, 96% { opacity: 1; border-color: #1ceb9b; color: #e9eef2; box-shadow: 0 0 12px rgba(28,235,155,.35); } 100% { opacity: .45; } }
@keyframes cfa-node-3 { 0%, 52% { opacity: .45; border-color: rgba(255,255,255,.15); color: #7f8a92; box-shadow: none; } 54%, 96% { opacity: 1; border-color: #ffb347; color: #e9eef2; box-shadow: 0 0 12px rgba(255,179,71,.35); } 100% { opacity: .45; } }

.cfa-histo { position: relative; height: 84px; border-radius: 6px; background: rgba(0, 0, 0, .4); overflow: hidden; }
.cfa-histo::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent 0 24.5%, rgba(255,255,255,.06) 24.5% 25%); }
.cfa-histo i {
	position: absolute;
	left: 6%;
	right: 6%;
	bottom: 0;
	height: 88%;
	mix-blend-mode: screen;
	opacity: .75;
	transform-origin: 50% 100%;
	clip-path: polygon(0 100%, 6% 88%, 14% 64%, 22% 50%, 30% 56%, 38% 34%, 46% 18%, 54% 26%, 62% 12%, 70% 30%, 78% 48%, 86% 62%, 93% 84%, 100% 100%);
	animation: cfa-histo var(--t) infinite;
}
.cfa-histo .is-r { background: #ff4d4d; animation-name: cfa-histo-r; }
.cfa-histo .is-g { background: #37e27d; clip-path: polygon(0 100%, 8% 84%, 16% 60%, 26% 46%, 34% 30%, 44% 22%, 52% 14%, 60% 24%, 68% 36%, 76% 42%, 84% 66%, 92% 86%, 100% 100%); }
.cfa-histo .is-b { background: #3f7bff; clip-path: polygon(0 100%, 7% 80%, 15% 52%, 24% 34%, 32% 26%, 42% 30%, 50% 20%, 58% 32%, 66% 46%, 74% 58%, 83% 72%, 92% 90%, 100% 100%); animation-name: cfa-histo-b; }
/* Log: bunched in the middle. Balance: centred. Contrast: spread. Look: warm (red right, blue left). */
@keyframes cfa-histo {
	0%, 36% { transform: scaleX(.46) translateX(0); }
	44% { transform: scaleX(.52) translateX(0); }
	52%, 96% { transform: scaleX(1) translateX(0); }
	100% { transform: scaleX(.46); }
}
@keyframes cfa-histo-r {
	0%, 36% { transform: scaleX(.46) translateX(4%); }
	44% { transform: scaleX(.52) translateX(0); }
	52% { transform: scaleX(1) translateX(0); }
	58%, 96% { transform: scaleX(1) translateX(5%); }
	100% { transform: scaleX(.46) translateX(4%); }
}
@keyframes cfa-histo-b {
	0%, 36% { transform: scaleX(.46) translateX(-3%); }
	44% { transform: scaleX(.52) translateX(0); }
	52% { transform: scaleX(1) translateX(0); }
	58%, 96% { transform: scaleX(1) translateX(-5%); }
	100% { transform: scaleX(.46) translateX(-3%); }
}

/* Deliver: render progress, done */
.cfa-shot-panel.is-deliver { display: grid; align-content: center; gap: 10px; }
.cfa-shot-render { margin: 0 !important; font-size: 12px; color: #cfd6db; }
.cfa-shot-progress { height: 10px; border-radius: 99px; background: rgba(255, 255, 255, .08); overflow: hidden; }
.cfa-shot-progress i { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, #1ceb9b, #3fd0ff); animation: cfa-render var(--t) infinite; }
@keyframes cfa-render { 0%, 68% { width: 0; } 88%, 100% { width: 100%; } }
.cfa-shot-done { margin: 0 !important; font-size: 14px; color: #1ceb9b; animation: cfa-done var(--t) infinite; }
@keyframes cfa-done { 0%, 88% { opacity: 0; } 90%, 97% { opacity: 1; } 100% { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
	.cfa-shot *, .cfa-shot *::after, .cfa-shot *::before { animation: none !important; }
	.cfa-shot-panel.is-color, .cfa-shot-tabs .is-color::after, .cfa-node { opacity: 1; }
	.cfa-node { border-color: #1ceb9b; color: #e9eef2; }
	.cfa-shot-look .is-log { opacity: 0; }
	.cfa-shot-viewer img { filter: saturate(1.25) contrast(1.12) sepia(.1); }
}

/* =====================================================================
   Forms: compact layout (contact + registration)
   ===================================================================== */
body.cfa .cfa-contact-form .fluentform .ff-el-group { margin-bottom: 14px; }
body.cfa .cfa-contact-form .fluentform .ff-el-input--label { margin-bottom: 5px; }
body.cfa .cfa-contact-form .fluentform .ff-el-input--label label { font-size: 11px !important; letter-spacing: .06em; }
body.cfa .cfa-contact-form .fluentform .ff-el-form-control { min-height: 44px; padding: 10px 12px !important; font-size: 16px !important; }
body.cfa .cfa-contact-form .fluentform textarea.ff-el-form-control { min-height: 88px; height: 88px; }
body.cfa .cfa-contact-form .fluentform .ff-t-container { gap: 14px; margin-bottom: 0; }
body.cfa .cfa-contact-form .fluentform .ff-t-cell { padding: 0 !important; }
body.cfa .cfa-contact-form .fluentform .ff_submit_btn_wrapper { margin: 6px 0 0 !important; }
body.cfa .cfa-contact-form .fluentform .ff-btn-submit { width: 100%; min-height: 48px; border-radius: 10px !important; font-size: 16px !important; text-transform: none !important; }

/* Homepage contact: Name · Email · Phone in one row, message full width */
body.cfa .cfa-contact-form:not(.cfa-register-form) .fluentform fieldset {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: 14px;
}
body.cfa .cfa-contact-form:not(.cfa-register-form) .fluentform fieldset > :is(.ff-el-group:has(textarea), .ff_submit_btn_wrapper, .ff-el-section-break) { grid-column: 1 / -1; }
body.cfa .cfa-contact-form:not(.cfa-register-form) .fluentform fieldset > .ff-el-section-break:empty,
body.cfa .cfa-contact-form:not(.cfa-register-form) .fluentform .ff-el-section-break { display: none; }

/* Registration: optional questions tucked away */
body.cfa .cfa-register-form .cfa-more {
	margin: 4px 0 16px;
	border: 1.5px dashed var(--cfa-field-line, var(--cfa-line));
	border-radius: 12px;
	padding: 0 14px;
}
body.cfa .cfa-register-form .cfa-more summary {
	list-style: none;
	cursor: pointer;
	display: block;
	position: relative;
	padding: 13px 28px 13px 0;
	font-size: 15px;
	font-weight: 600;
}
body.cfa .cfa-register-form .cfa-more summary span { font-weight: 400; color: var(--cfa-muted); margin-left: 4px; }
body.cfa .cfa-register-form .cfa-more summary::-webkit-details-marker { display: none; }
body.cfa .cfa-register-form .cfa-more summary::after { content: "+"; position: absolute; right: 2px; top: 50%; transform: translateY(-50%); font-size: 20px; line-height: 1; color: var(--cfa-course, var(--cfa-red)); }
body.cfa .cfa-register-form .cfa-more[open] summary::after { content: "–"; }
body.cfa .cfa-register-form .cfa-more-body { padding: 2px 0 6px; }
body.cfa .cfa-register-form .ff-el-group:has(input[type="radio"]) .ff-el-form-check-label { padding: 6px 12px 6px 9px; font-size: 14px; }
body.cfa .cfa-register-form .ff-el-input--content { gap: 6px; }
body.cfa .cfa-register-form .ff-el-group:has(input[type="checkbox"]) { margin-bottom: 8px; }
body.cfa .cfa-register-form .ff-el-group:has(input[type="checkbox"]) label { font-size: 13px !important; line-height: 1.45; text-transform: none !important; letter-spacing: 0 !important; font-family: var(--cfa-sans) !important; color: var(--cfa-muted); }
.cfa-register-form { padding: clamp(18px, 2.4vw, 28px) !important; }
.cfa-form-title { margin-bottom: 14px !important; }

/* ---------- Explore other workshops (course pages) ---------- */
.cfa-others { background: var(--cfa-bg-programme); }
.cfa-other-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 28px !important; } /* 5 workshops + "See all" = two rows of three */
body.cfa a.cfa-other-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-height: 210px;
	padding: 18px 16px 16px;
	border-radius: 14px;
	border: 1px solid var(--cfa-glass-line, var(--cfa-line));
	border-top: 5px solid var(--cfa-d);
	background: var(--cfa-glass, var(--cfa-paper));
	text-decoration: none;
	color: var(--cfa-ink);
	transition: transform .3s ease, border-color .3s ease;
}
body.cfa a.cfa-other-card:hover { transform: translateY(-4px); border-color: var(--cfa-d); color: var(--cfa-ink); }
.cfa-other-no { font-family: var(--cfa-mono); font-size: 12px; color: var(--cfa-d); }
.cfa-other-title { font-size: 19px; line-height: 1.2; letter-spacing: -.02em; }
.cfa-other-meta { font-size: 14px; color: var(--cfa-muted); }
.cfa-other-next { font-size: 14px; }
.cfa-other-cta { margin-top: auto; padding-top: 10px; font-weight: 700; font-size: 14px; color: var(--cfa-d); }

/* =====================================================================
   Film Editing page (.cfa-slug-edit): same dark theme, blue editing accent
   ===================================================================== */
.cfa-learn-grid.is-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cfa-team-grid.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.is-bonus { --clip: #b18cff; }
body.cfa.palette-grade .is-bonus { --clip: #c3a6ff; }

/* Two-column Q&A band */
.cfa-beyond { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.cfa-beyond-col > * + * { margin-top: 14px !important; }
.cfa-beyond .cfa-checklist li { font-size: 16px; line-height: 1.55; }
.cfa-beyond .cfa-why-list li { font-size: 16px; font-weight: 400; line-height: 1.5; }
.cfa-beyond-note { margin-top: 18px !important; font-weight: 600; color: var(--cfa-course, var(--cfa-red)); }

/* ROI */
.cfa-roi-intro { display: grid; gap: 14px; max-width: 72ch; margin-top: 18px !important; }
.cfa-roi-lead { font-size: 18px; margin-top: 8px !important; }
.cfa-roi-lead strong { color: var(--cfa-course, var(--cfa-red)); }
.cfa-roi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 22px 0 !important; }
.cfa-roi-card { display: flex; flex-direction: column; gap: 6px; padding: 20px 18px; border-radius: 14px; background: var(--cfa-glass, var(--cfa-paper)); border: 1px solid var(--cfa-glass-line, var(--cfa-line)); }
.cfa-roi-type { font-family: var(--cfa-mono); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--cfa-muted); }
.cfa-roi-amt { font-size: 24px; letter-spacing: -.02em; color: var(--cfa-course, var(--cfa-red)); line-height: 1.15; }
.cfa-roi-note { font-size: 14px; color: var(--cfa-muted); line-height: 1.45; }

/* Not a ₹99 course: text + comparison */
.cfa-not99-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 72px); align-items: start; margin-top: 24px !important; }
.cfa-not99-text > * + * { margin-top: 14px !important; }
.cfa-not99 .cfa-why-list li { font-size: 16px; font-weight: 400; }
.cfa-compare { display: grid; grid-template-columns: 1fr 1fr; border-radius: 14px; overflow: hidden; border: 1px solid var(--cfa-glass-line, var(--cfa-line)); }
.cfa-compare-col { padding: 18px 18px 20px; }
.cfa-compare-col.is-ours { background: color-mix(in srgb, var(--cfa-course, var(--cfa-red)) 14%, transparent); }
.cfa-compare-col.is-theirs { background: var(--cfa-glass, var(--cfa-paper-2)); }
.cfa-compare-head { margin: 0 0 10px !important; font-family: var(--cfa-mono); font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
.cfa-compare-col.is-ours .cfa-compare-head { color: var(--cfa-course, var(--cfa-red)); }
.cfa-compare-col.is-theirs .cfa-compare-head { color: var(--cfa-muted); }
.cfa-compare ul { list-style: none; padding: 0; margin: 0; }
.cfa-compare li { position: relative; padding: 9px 0 9px 26px; font-size: 15px; border-top: 1px solid var(--cfa-glass-line, var(--cfa-line)); }
.cfa-compare li:first-child { border-top: 0; }
.cfa-compare .is-ours li::before { content: "✓"; position: absolute; left: 0; top: 9px; color: var(--cfa-course, var(--cfa-red)); font-weight: 700; }
.cfa-compare .is-theirs li { color: var(--cfa-muted); }
.cfa-compare .is-theirs li::before { content: "✕"; position: absolute; left: 0; top: 9px; color: #ff6b6b; }

/* Mentor bio paragraphs */
.cfa-mentor-about .cfa-mentor-bio + .cfa-mentor-bio { margin-top: 12px !important; }

/* =====================================================================
   "Edit suite" palette (Film Editing page): midnight indigo, electric violet,
   coral + amber. Layers over the dark .palette-grade base.
   ===================================================================== */
body.cfa.palette-suite {
	--cfa-paper: #171a36;
	--cfa-paper-2: #11132a;
	--cfa-ink: #eeeefb;
	--cfa-muted: #b9bbd9;
	--cfa-line: rgba(200, 195, 255, .14);
	--cfa-red: #a78bff;
	--cfa-course: #a78bff;
	--cfa-glass: rgba(167, 139, 255, .07);
	--cfa-glass-line: rgba(167, 139, 255, .18);
	--cfa-color: #ff7a6b; --cfa-edit: #a78bff; --cfa-write: #ffc15e; --cfa-film: #5ce1e6; --cfa-sound: #ff7ac6;
	--cfa-field-line: rgba(200, 195, 255, .38);
	--cfa-field-hover: rgba(200, 195, 255, .7);
	--cfa-field-bg: rgba(167, 139, 255, .06);
	background: #0b0c1d;
}
.palette-suite .cfa-tone-2 { background: rgba(167, 139, 255, .05); }

.palette-suite .cfa-header { background: rgba(11, 12, 29, .8); }
.palette-suite .cfa-nav { background: #121430; }
body.cfa.palette-suite .cfa-footer { background: #07081a; }
.palette-suite .cfa-perk::before, .palette-suite .cfa-perk::after { background: #0b0c1d; }
body.cfa.palette-suite .cfa-knowmentor .cfa-mentor-img img { border-color: #0b0c1d; }
body.cfa.palette-suite .cfa-cohort { background: linear-gradient(135deg, rgba(60, 45, 130, .5), rgba(15, 16, 40, .9)); }
.palette-suite .cfa-crumb { background: linear-gradient(90deg, #a78bff, #ff7a6b); -webkit-background-clip: text; background-clip: text; }
.palette-suite .cfa-checklist li::before { background: var(--cfa-course); color: #150c33; }
.palette-suite .cfa-hero-facts strong, .palette-suite .cfa-statband .cfa-stats strong { color: var(--cfa-course); }
.palette-suite .cfa-offer-price { color: var(--cfa-course); }
.palette-suite .cfa-offer-save { color: #ffc15e; }
body.cfa.palette-suite .cfa-btn.is-register .wp-block-button__link, body.cfa.palette-suite :is(.cfa-tone-2) .cfa-btn.is-register .wp-block-button__link, body.cfa.palette-suite .cfa-contact-form .fluentform .ff-btn-submit, body.cfa-course.palette-suite .cfa-nav-cta-course { background: var(--cfa-course) !important; color: #150c33 !important; }
body.cfa-course.palette-suite .cfa-sticky-cta { background: var(--cfa-course); color: #150c33 !important; }
body.cfa-course.palette-suite .is-menu-open .cfa-nav .is-course.cfa-nav-cohort { background: var(--cfa-course); color: #150c33; }
body.cfa.palette-suite .cfa-tl-clip { background: color-mix(in srgb, var(--clip) 16%, #16183a); }
body.cfa.palette-suite .is-theory { --clip: #a78bff; }
body.cfa.palette-suite .is-practical { --clip: #ff7a6b; }
body.cfa.palette-suite .is-qa { --clip: #ffc15e; }
body.cfa.palette-suite .is-bonus { --clip: #5ce1e6; }
.palette-suite .cfa-orbs span:nth-child(1) { background: radial-gradient(circle, #7b5cff, transparent 65%); opacity: .3; }
.palette-suite .cfa-orbs span:nth-child(2) { background: radial-gradient(circle, #3a6bff, transparent 65%); opacity: .22; }
.palette-suite .cfa-orbs span:nth-child(3) { background: radial-gradient(circle, #ff6b7a, transparent 65%); opacity: .18; }
.palette-suite .cfa-orbs span:nth-child(4) { background: radial-gradient(circle, #ffb45e, transparent 65%); opacity: .12; }
.palette-suite .cfa-spectrum { background-image: linear-gradient(90deg, #a78bff, #ff7ac6, #ff7a6b, #ffc15e, #a78bff); }
.palette-suite .cfa-mentor-roles { color: var(--cfa-course) !important; }
.palette-suite .cfa-chips.is-creds li { border-color: rgba(167, 139, 255, .4); background: rgba(167, 139, 255, .08); }

/* =====================================================================
   Hero: "From footage to picture lock" (Edit page), pure CSS, 12s loop.
   Assembly (0-25%) · Rough cut (25-50%) · Fine cut (50-75%) · Picture lock (75-100%)
   ===================================================================== */
.cfa-cut {
	--t: 12s;
	border-radius: 16px;
	padding: 12px;
	background: rgba(167, 139, 255, .06);
	border: 1px solid rgba(167, 139, 255, .2);
	box-shadow: 0 30px 70px rgba(0, 0, 0, .5);
	font-family: var(--cfa-mono);
	color: #d7d8f2;
}
.cfa-cut-tabs { display: flex; gap: 4px; margin-bottom: 10px; font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }
.cfa-cut-tabs span { position: relative; padding: 6px 10px; border-radius: 8px; color: #8587b5; }
.cfa-cut-tabs span::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: rgba(167, 139, 255, .16); box-shadow: inset 0 0 0 1px rgba(167, 139, 255, .55); opacity: 0; }
.cfa-cut-tabs .s1::after { animation: cfa-q1 var(--t) infinite; }
.cfa-cut-tabs .s2::after { animation: cfa-q2 var(--t) infinite; }
.cfa-cut-tabs .s3::after { animation: cfa-q3 var(--t) infinite; }
.cfa-cut-tabs .s4::after { animation: cfa-q4 var(--t) infinite; }
@keyframes cfa-q1 { 0%, 24.9% { opacity: 1; } 25%, 100% { opacity: 0; } }
@keyframes cfa-q2 { 0%, 24.9% { opacity: 0; } 25%, 49.9% { opacity: 1; } 50%, 100% { opacity: 0; } }
@keyframes cfa-q3 { 0%, 49.9% { opacity: 0; } 50%, 74.9% { opacity: 1; } 75%, 100% { opacity: 0; } }
@keyframes cfa-q4 { 0%, 74.9% { opacity: 0; } 75%, 100% { opacity: 1; } }

/* Viewer: hard cuts between shots */
.cfa-cut-viewer { position: relative; overflow: hidden; border-radius: 8px; background: #000; aspect-ratio: 16 / 9; }
.cfa-cut-viewer img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; }
.cfa-cut-viewer .v1 { animation: cfa-v1 var(--t) infinite step-end; }
.cfa-cut-viewer .v2 { animation: cfa-v2 var(--t) infinite step-end; }
.cfa-cut-viewer .v3 { animation: cfa-v3 var(--t) infinite step-end; }
.cfa-cut-viewer .v4 { animation: cfa-v4 var(--t) infinite step-end; }
@keyframes cfa-v1 { 0% { opacity: 0; } 76% { opacity: 1; } 80.8% { opacity: 0; } 100% { opacity: 0; } }
@keyframes cfa-v2 { 0% { opacity: 0; } 25% { opacity: 1; } 50% { opacity: 0; } 80.8% { opacity: 1; } 86% { opacity: 0; } 100% { opacity: 0; } }
@keyframes cfa-v3 { 0% { opacity: 1; } 25% { opacity: 0; } 86% { opacity: 1; } 90.8% { opacity: 0; } 100% { opacity: 0; } }
@keyframes cfa-v4 { 0% { opacity: 0; } 50% { opacity: 1; } 76% { opacity: 0; } 90.8% { opacity: 1; } 100% { opacity: 1; } }
.cfa-cut-viewer .cfa-shot-tc { position: absolute; left: 8px; bottom: 8px; z-index: 2; font-size: 11px; padding: 3px 7px; border-radius: 5px; background: rgba(0, 0, 0, .6); color: #eeeefb; }
.cfa-cut-lock {
	position: absolute;
	right: 8px;
	bottom: 8px;
	z-index: 2;
	padding: 4px 9px;
	border-radius: 6px;
	background: #a78bff;
	color: #150c33;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	opacity: 0;
	transform: scale(.8);
	animation: cfa-lock var(--t) infinite;
}
@keyframes cfa-lock { 0%, 93% { opacity: 0; transform: scale(.8); } 94.5%, 99% { opacity: 1; transform: scale(1); } 100% { opacity: 0; } }

/* Timeline */
.cfa-cut-timeline { position: relative; margin-top: 10px; padding: 8px 0 2px; }
.cfa-cut-row { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.cfa-cut-row em { width: 22px; flex: none; font-style: normal; font-size: 11px; color: #8587b5; }
.cfa-cut-lane { position: relative; flex: 1; height: 38px; border-radius: 5px; background: rgba(255, 255, 255, .04); }
.cfa-cut-row.is-audio .cfa-cut-lane { height: 22px; }
.cfa-cut-clip {
	position: absolute;
	top: 3px;
	bottom: 3px;
	border-radius: 5px;
	background: var(--img) center / cover, #2a2d5a;
	border: 1.5px solid var(--cc);
	box-shadow: inset 0 0 0 100px rgba(10, 10, 30, .25);
	overflow: hidden;
}
.cfa-cut-clip b { position: absolute; left: 4px; top: 3px; font-weight: 400; font-size: 9px; padding: 1px 4px; border-radius: 3px; background: var(--cc); color: #150c33; }
.cfa-cut-clip.c1 { --cc: #a78bff; animation: cfa-c1 var(--t) infinite; }
.cfa-cut-clip.c2 { --cc: #ff7a6b; animation: cfa-c2 var(--t) infinite, cfa-trim var(--t) infinite; }
.cfa-cut-clip.c3 { --cc: #5ce1e6; animation: cfa-c3 var(--t) infinite; }
.cfa-cut-clip.c4 { --cc: #ffc15e; animation: cfa-c4 var(--t) infinite; }
/* Assembly: drop in out of order with gaps. Rough cut: reorder, razor, ripple. Fine cut: trim. Lock: contiguous. */
@keyframes cfa-c1 {
	0%, 3% { left: 28%; width: 24%; transform: translateY(-160%); opacity: 0; }
	7% { transform: none; opacity: 1; }
	25% { left: 28%; width: 24%; }
	32%, 97% { left: 0%; width: 24%; transform: none; opacity: 1; }
	100% { left: 0%; width: 24%; opacity: 0; }
}
@keyframes cfa-c2 {
	0%, 9% { left: 80%; width: 20%; transform: translateY(-160%); opacity: 0; }
	13% { transform: none; opacity: 1; }
	25% { left: 80%; width: 20%; }
	32%, 36% { left: 28%; width: 30%; }
	37% { left: 28%; width: 28%; }
	45%, 55% { left: 24%; width: 28%; }
	62%, 97% { left: 24%; width: 26%; transform: none; opacity: 1; }
	100% { left: 24%; width: 26%; opacity: 0; }
}
@keyframes cfa-c3 {
	0% { left: 0%; width: 22%; transform: translateY(-160%); opacity: 0; }
	4% { transform: none; opacity: 1; }
	25% { left: 0%; width: 22%; }
	32% { left: 62%; width: 24%; }
	45%, 55% { left: 52%; width: 24%; }
	62%, 97% { left: 50%; width: 24%; transform: none; opacity: 1; }
	100% { left: 50%; width: 24%; opacity: 0; }
}
@keyframes cfa-c4 {
	0%, 6% { left: 58%; width: 18%; transform: translateY(-160%); opacity: 0; }
	10% { transform: none; opacity: 1; }
	25% { left: 58%; width: 18%; }
	32% { left: 88%; width: 12%; }
	45%, 55% { left: 76%; width: 24%; }
	62%, 97% { left: 74%; width: 26%; transform: none; opacity: 1; }
	100% { left: 74%; width: 26%; opacity: 0; }
}
/* Fine cut: amber trim brackets on clip 02 */
@keyframes cfa-trim { 0%, 54% { box-shadow: inset 0 0 0 100px rgba(10,10,30,.25); } 56%, 64% { box-shadow: inset 0 0 0 100px rgba(10,10,30,.25), inset -5px 0 0 #ffc15e, inset 5px 0 0 #ffc15e; } 66%, 100% { box-shadow: inset 0 0 0 100px rgba(10,10,30,.25); } }
/* Rough cut: razor */
.cfa-cut-razor { position: absolute; top: -6px; bottom: -6px; left: 56%; width: 2px; background: #ff4d5e; box-shadow: 0 0 10px #ff4d5e; opacity: 0; animation: cfa-razor var(--t) infinite; }
.cfa-cut-razor::before { content: "✂"; position: absolute; top: -14px; left: -6px; font-style: normal; font-size: 12px; color: #ff4d5e; }
@keyframes cfa-razor { 0%, 33% { opacity: 0; } 34%, 37% { opacity: 1; } 38.5%, 100% { opacity: 0; } }
/* Fine cut: transition marker between 03 and 04 */
.cfa-cut-fx { position: absolute; top: 50%; left: 74%; width: 12px; height: 12px; margin: -6px 0 0 -6px; transform: rotate(45deg); background: #eeeefb; box-shadow: 0 0 10px rgba(255,255,255,.7); opacity: 0; animation: cfa-fx var(--t) infinite; }
@keyframes cfa-fx { 0%, 62% { opacity: 0; } 65%, 97% { opacity: 1; } 100% { opacity: 0; } }
/* Fine cut: music track fades in */
.cfa-cut-audio {
	position: absolute;
	inset: 3px 0;
	border-radius: 4px;
	background: repeating-linear-gradient(90deg, rgba(92,225,230,.9) 0 2px, transparent 2px 4px);
	-webkit-mask: linear-gradient(transparent, #000 20%, #000 80%, transparent), repeating-linear-gradient(90deg, #000 0 30px, rgba(0,0,0,.45) 30px 45px);
	mask: linear-gradient(transparent, #000 20%, #000 80%, transparent);
	transform-origin: left center;
	transform: scaleX(0);
	opacity: .8;
	animation: cfa-audio var(--t) infinite;
}
@keyframes cfa-audio { 0%, 55% { transform: scaleX(0); opacity: .85; } 62%, 97% { transform: scaleX(1); opacity: .85; } 100% { transform: scaleX(1); opacity: 0; } }
/* Picture lock: playhead plays through */
.cfa-cut-playhead { position: absolute; top: 0; bottom: 0; left: 30px; width: 2px; background: #ff4d5e; box-shadow: 0 0 8px #ff4d5e; opacity: .35; animation: cfa-play var(--t) infinite linear; }
.cfa-cut-playhead::before { content: ""; position: absolute; top: -2px; left: -5px; border: 6px solid transparent; border-top-color: #ff4d5e; }
@keyframes cfa-play { 0%, 75% { left: 30px; opacity: .35; } 76% { left: 30px; opacity: 1; } 96% { left: 100%; opacity: 1; } 99% { left: 100%; opacity: 1; } 100% { left: 100%; opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
	.cfa-cut *, .cfa-cut *::after, .cfa-cut *::before { animation: none !important; }
	.cfa-cut-tabs .s4::after, .cfa-cut-viewer .v1, .cfa-cut-lock, .cfa-cut-fx { opacity: 1; transform: none; }
	.cfa-cut-clip { opacity: 1; }
	.cfa-cut-clip.c1 { left: 0; width: 24%; } .cfa-cut-clip.c2 { left: 24%; width: 26%; } .cfa-cut-clip.c3 { left: 50%; width: 24%; } .cfa-cut-clip.c4 { left: 74%; width: 26%; }
	.cfa-cut-audio { transform: none; }
}

/* =====================================================================
   "Studio" palette (light option for the Film Editing page; preview with ?palette=studio)
   Cool off-white, white cards, violet/coral/amber accents. The hero animation stays dark,
   like a monitor on a bright desk.
   ===================================================================== */
body.cfa.palette-studio {
	--cfa-paper: #ffffff;
	--cfa-paper-2: #f3f1fb;
	--cfa-ink: #17152e;
	--cfa-muted: #555271;
	--cfa-line: #e3e0f2;
	--cfa-red: #6a4de8;
	--cfa-course: #6a4de8;
	--cfa-color: #e8553f; --cfa-edit: #6a4de8; --cfa-write: #c98a00; --cfa-film: #0f9d8a; --cfa-sound: #d23f8f;
	--cfa-field-line: #cfcae6;
	--cfa-field-hover: #8f88c2;
	--cfa-field-bg: #ffffff;
	--cfa-bg-hero: #f7f6fc; --cfa-bg-programme: #ffffff; --cfa-bg-about: #f3f1fb; --cfa-bg-mentors: #eeeafd;
	--cfa-bg-why: #ffffff; --cfa-bg-quotes: #fff1ec; --cfa-bg-faq: #f3f1fb; --cfa-bg-contact: #efeafe;
	--cfa-bg-snapshot: #ffffff;
	background: #f7f6fc;
}

.palette-studio .cfa-tone-2 { background: #f3f1fb; }
.palette-studio .cfa-orbs span { opacity: .1 !important; filter: blur(120px); }
.palette-studio .cfa-orbs span:nth-child(1) { background: radial-gradient(circle, #8b6bff, transparent 65%); }
.palette-studio .cfa-orbs span:nth-child(2) { background: radial-gradient(circle, #ff8a6b, transparent 65%); }
.palette-studio .cfa-orbs span:nth-child(3) { background: radial-gradient(circle, #ffc15e, transparent 65%); }
.palette-studio .cfa-orbs span:nth-child(4) { background: radial-gradient(circle, #5ce1e6, transparent 65%); }
.palette-studio .cfa-overlay.ov-on::before { opacity: .05; }
.palette-studio .cfa-header { background: rgba(255, 255, 255, .88); border-bottom-color: var(--cfa-line); }

/* Hero: light page, dark monitor */
body.cfa.palette-studio .cfa-course-hero {
	--cfa-ink: #17152e;
	--cfa-muted: #555271;
	--cfa-line: #e3e0f2;
	background: radial-gradient(90% 120% at 85% 10%, #ece7ff 0%, #f7f6fc 55%, #fbfaff 100%);
	color: var(--cfa-ink);
}
.palette-studio .cfa-spectrum { background-image: linear-gradient(90deg, #6a4de8, #d23f8f, #e8553f, #d98e00, #6a4de8); }
.palette-studio .cfa-cut { background: #15142c; border-color: #2c2a55; box-shadow: 0 30px 60px rgba(40, 30, 110, .28); }
.palette-studio .cfa-hero-facts strong, .palette-studio .cfa-statband .cfa-stats strong, .palette-studio .cfa-course-mentor-name strong { color: var(--cfa-course); }
body.cfa.palette-studio .cfa-course-hero .cfa-btn.is-ghost .wp-block-button__link { color: var(--cfa-ink); box-shadow: inset 0 0 0 1.5px var(--cfa-ink) !important; }
body.cfa.palette-studio .cfa-course-hero .cfa-btn.is-ghost .wp-block-button__link:hover { background: var(--cfa-ink) !important; color: #fff !important; }

/* Buttons & sticky bar: white text on violet */
body.cfa.palette-studio .cfa-btn.is-register .wp-block-button__link, body.cfa.palette-studio :is(.cfa-tone-2) .cfa-btn.is-register .wp-block-button__link, body.cfa.palette-studio .cfa-contact-form .fluentform .ff-btn-submit, body.cfa-course.palette-studio .cfa-nav-cta-course { background: var(--cfa-course) !important; color: #fff !important; }
body.cfa.palette-studio .cfa-btn.is-register .wp-block-button__link:hover { background: var(--cfa-ink) !important; color: #fff !important; }
body.cfa-course.palette-studio .cfa-sticky-cta { background: var(--cfa-course); color: #fff !important; }
body.cfa-course.palette-studio .is-menu-open .cfa-nav .is-course.cfa-nav-cohort { background: var(--cfa-course); color: #fff; }
.palette-studio .cfa-crumb { background: linear-gradient(90deg, #6a4de8, #e8553f); -webkit-background-clip: text; background-clip: text; }

/* Cards on light */
.palette-studio :is(.cfa-learn-card, .cfa-team-card, .cfa-roi-card, .cfa-other-card, .cfa-perk) { background: #fff !important; border: 1px solid var(--cfa-line); box-shadow: 0 6px 20px rgba(40, 30, 110, .06); }
.palette-studio :is(.cfa-learn-card, .cfa-perk) { border-top: 6px solid var(--cfa-d); }
body.cfa.palette-studio a.cfa-other-card { border-top: 5px solid var(--cfa-d); }
.palette-studio .cfa-register-form { background: #fff !important; border: 1px solid var(--cfa-line); box-shadow: 0 16px 40px rgba(40, 30, 110, .1); }
.palette-studio .cfa-timeline { background: #fff; border: 1px solid var(--cfa-line); }
.palette-studio .cfa-compare { border-color: var(--cfa-line); }
.palette-studio .cfa-compare-col.is-theirs { background: #faf9fe; }
.palette-studio .cfa-elig-row { border-color: #cfcae6; }
.palette-studio .cfa-who-no { -webkit-text-stroke-color: #dcd7f0; }
.palette-studio .cfa-who-ideal { background: #f3f1fb; }
.palette-studio .cfa-chips.is-creds li { color: var(--cfa-ink); border-color: #cfc3ff; background: #f3efff; }
.palette-studio .cfa-mentor-roles { color: var(--cfa-course) !important; }
body.cfa.palette-studio .cfa-knowmentor .cfa-mentor-img img { border-color: #fff; }
.palette-studio .cfa-offer-price { color: var(--cfa-course); }
.palette-studio .cfa-offer-save { color: #b36b00; }
.palette-studio .cfa-countdown-unit { border-color: var(--cfa-line); background: #fff; }
.palette-studio .cfa-stars { color: #f0a500; text-shadow: none; }

/* Syllabus on light: tinted panels, dark text, coloured titles */
body.cfa.palette-studio .cfa-tl-clip { background: color-mix(in srgb, var(--clip) 11%, #fff); border-left: 4px solid var(--clip); border-radius: 6px 10px 10px 6px; color: var(--cfa-ink); box-shadow: none; }
body.cfa.palette-studio .cfa-tl-clip b { color: var(--clip); }
body.cfa.palette-studio .cfa-tl-clip span { color: #3c3957; opacity: 1; }
body.cfa.palette-studio .is-theory { --clip: #6a4de8; }
body.cfa.palette-studio .is-practical { --clip: #d8452f; }
body.cfa.palette-studio .is-qa { --clip: #b37800; }
body.cfa.palette-studio .is-bonus { --clip: #0f8f7e; }

/* ---------- Scroll-in animations ---------- */
.cfa-anim :is(.cfa-sec-head, .cfa-h2, .cfa-label,
	.cfa-about-text > p, .cfa-ethos, .cfa-stats, .cfa-slides, .cfa-logos,
	.cfa-doc-nav, .cfa-doc-body > *, .cfa-doc-body .uagb-container-inner-blocks-wrap > *,
	.cfa-footer-grid > *, .cfa-contact-info, .cfa-contact-form, .cfa-cohort-main, .cfa-cohort-side, .cfa-facts > li, .cfa-perk, .cfa-team-card,
	.cfa-learn-card, .cfa-checklist > li, .cfa-tl-track, .cfa-other-card, .cfa-fee-row, .cfa-roi-card, .cfa-jphase, .cfa-countband-label, .cfa-countband .cfa-countdown, .cfa-countband-cta, .cfa-countband .cfa-ctile, .cfa-learn-intro, .cfa-who-ideal, .cfa-compare, .cfa-beyond-col, .cfa-register-info, .cfa-register-side, .cfa-mentor-about, .cfa-elig-row, .cfa-mentor-card, .cfa-why-list > li, .cfa-quote, .cfa-faq-list > details) {
	opacity: 0;
	transform: translateY(28px);
	transition:
		opacity .8s cubic-bezier(.2, .7, .2, 1) var(--cfa-delay, 0ms),
		transform .8s cubic-bezier(.2, .7, .2, 1) var(--cfa-delay, 0ms);
}
.cfa-anim .cfa-reveal.cfa-in { opacity: 1; transform: none; }
.cfa-anim .cfa-hero-side { --cfa-delay: 150ms; }

/* ---------- Palettes ---------- */
body.cfa.palette-pop {
	--cfa-paper: #ffffff; --cfa-paper-2: #f3f3f1; --cfa-ink: #151515; --cfa-muted: #4d4d4d; --cfa-line: #e2e2de;
	--cfa-red: #ff4a1c;
	--cfa-color: #ff4a1c; --cfa-edit: #2e5bff; --cfa-write: #ffc400; --cfa-film: #00b37e; --cfa-sound: #ff5fae;
	--cfa-bg-hero: #ffffff; --cfa-bg-programme: #f3f3f1; --cfa-bg-about: #ffe766; --cfa-bg-mentors: #e4eaff;
	--cfa-bg-why: #ffffff; --cfa-bg-quotes: #ffe6da; --cfa-bg-faq: #f3f3f1; --cfa-bg-contact: #c6f3dc;
	--cfa-bg-snapshot: #ffffff; --cfa-bg-perks: #f3f3f1; --cfa-bg-teams: #ffffff;
	--cfa-on-bold: #ffe766;
}
body.cfa.palette-riso {
	--cfa-paper: #ffffff; --cfa-paper-2: #f2f2f0; --cfa-ink: #1c1d4a; --cfa-muted: #4a4b6e; --cfa-line: #e0e0e6;
	--cfa-red: #ff3ea5;
	--cfa-color: #ff3ea5; --cfa-edit: #0078bf; --cfa-write: #ffe600; --cfa-film: #00a95c; --cfa-sound: #ff6c2f;
	--cfa-bg-hero: #ffffff; --cfa-bg-programme: #f2f2f0; --cfa-bg-about: #fff59a; --cfa-bg-mentors: #0078bf;
	--cfa-bg-why: #ffffff; --cfa-bg-quotes: #ff3ea5; --cfa-bg-faq: #f2f2f0; --cfa-bg-contact: #c9f0d9;
	--cfa-on-bold: #fff59a;
}
body.cfa.palette-candy {
	--cfa-paper: #ffffff; --cfa-paper-2: #f4f3f7; --cfa-ink: #1c1633; --cfa-muted: #544c6b; --cfa-line: #e4e1ec;
	--cfa-red: #7b4dff;
	--cfa-color: #ff7a59; --cfa-edit: #7b4dff; --cfa-write: #ffb800; --cfa-film: #16c2a3; --cfa-sound: #ff5da2;
	--cfa-bg-hero: #ffffff; --cfa-bg-programme: #f4f3f7; --cfa-bg-about: #fff0bf; --cfa-bg-mentors: #7b4dff;
	--cfa-bg-why: #ffffff; --cfa-bg-quotes: #ff5da2; --cfa-bg-faq: #f4f3f7; --cfa-bg-contact: #d4f6ec;
	--cfa-on-bold: #fff0bf;
}

/* Section backgrounds */
.cfa-hero { background: var(--cfa-bg-hero); }
.cfa-programme { background: var(--cfa-bg-programme); }
.cfa-about { background: var(--cfa-bg-about); }
.cfa-mentors { background: var(--cfa-bg-mentors); }
.cfa-why { background: var(--cfa-bg-why); }
.cfa-quotes { background: var(--cfa-bg-quotes); }
.cfa-faq { background: var(--cfa-bg-faq); }
.cfa-contact { background: var(--cfa-bg-contact); }

/* Bold sections (saturated background): flip text to white, accents to a light highlight. */
body.cfa:is(.palette-riso, .palette-candy) :is(.cfa-mentors, .cfa-quotes) {
	--cfa-ink: #fff;
	--cfa-muted: rgba(255, 255, 255, .85);
	--cfa-line: rgba(255, 255, 255, .35);
	--cfa-red: var(--cfa-on-bold);
	color: var(--cfa-ink);
	border-top-color: transparent;
}
body.cfa :is(.cfa-mentors, .cfa-quotes) :is(h1, h2, h3, h4, cite) { color: var(--cfa-ink); }
body.cfa:is(.palette-riso, .palette-candy) .cfa-mentors .cfa-mentor-card[class*="is-"] .cfa-mentor-spec { color: var(--cfa-on-bold); filter: none; }
body.cfa:is(.palette-riso, .palette-candy) .cfa-mentors .cfa-mentor-card[class*="is-"] .cfa-mentor-img img { box-shadow: 0 0 0 4px var(--cfa-d), 0 0 0 7px #fff; }
body.cfa:is(.palette-riso, .palette-candy) .cfa-mentors .cfa-sec-head { border-bottom-color: rgba(255, 255, 255, .6); }

/* Discipline accents */
.is-color { --cfa-d: var(--cfa-color); }
.is-edit { --cfa-d: var(--cfa-edit); }
.is-write { --cfa-d: var(--cfa-write); }
.is-film { --cfa-d: var(--cfa-film); }
.is-sound { --cfa-d: var(--cfa-sound); }

/* Full-bleed highlight: the tint spans the whole screen width; the row's content stays aligned. */

.cfa-programme { overflow-x: clip; }

.cfa-mentor-card[class*="is-"] .cfa-mentor-spec { color: var(--cfa-d); filter: saturate(1.1) brightness(.85); }
.cfa-mentor-card[class*="is-"] .cfa-mentor-img img { box-shadow: 0 0 0 4px var(--cfa-d); }

.cfa-dots.is-carousel { display: none; }

/* ---------- Tablet ---------- */
@media (max-width: 960px) {
	body.cfa .cfa-nav-cta { margin-left: auto; }
	.cfa-burger {
		display: grid;
		align-content: center;
		gap: 5px;
		width: 44px;
		height: 44px;
		padding: 0 11px;
		border: 1px solid var(--cfa-line);
		border-radius: 10px;
		background: var(--cfa-paper);
		cursor: pointer;
		flex: none;
	}
	.cfa-burger span { display: block; height: 2px; background: var(--cfa-ink); border-radius: 2px; transition: transform .25s ease, opacity .2s ease; }
	.is-menu-open .cfa-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	.is-menu-open .cfa-burger span:nth-child(2) { opacity: 0; }
	.is-menu-open .cfa-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
	.cfa-nav {
		display: none;
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		flex-direction: column;
		gap: 0;
		margin: 0;
		padding: 8px var(--cfa-gutter) 20px;
		background: var(--cfa-paper);
		border-bottom: 1px solid var(--cfa-line);
		box-shadow: 0 16px 30px rgba(0, 0, 0, .08);
	}
	.is-menu-open .cfa-nav { display: flex; }
	body.cfa-course .cfa-header .cfa-crumb { display: none; }
	body.cfa-course .is-menu-open .cfa-nav a.is-course { display: block; }
	.palette-grade .cfa-nav { background: #161616; border-bottom-color: var(--cfa-glass-line); }
	body.cfa .cfa-nav a { padding: 14px 0; border-bottom: 1px solid var(--cfa-line); font-size: 18px; }
	body.cfa .cfa-nav a:last-child { border-bottom: 0; }
	.cfa-hero, .cfa-about, .cfa-why, .cfa-faq, .cfa-contact, .cfa-cohort { grid-template-columns: 1fr; }
	.cfa-cohort-side { border-left: 0; padding-left: 0; border-top: 1px solid var(--cfa-line); padding-top: 24px; }
	.cfa-perk-grid, .cfa-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cfa-team-grid { grid-template-columns: 1fr; }
	.cfa-knowmentor-grid, .cfa-register { grid-template-columns: 1fr; }
	.cfa-register > .cfa-register-info, .cfa-register > .cfa-register-side, .cfa-register > .cfa-fee-row { grid-column: 1; grid-row: auto; }
	.cfa-register > .cfa-register-info { order: 1; } .cfa-register > .cfa-fee-row { order: 2; } .cfa-register > .cfa-register-side { order: 3; }
	.cfa-register .cfa-checklist.is-incl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cfa-learn-grid, .cfa-quote-grid.is-6, .cfa-facts.is-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cfa-quote-grid.is-3 { grid-template-columns: 1fr; }
	.cfa-other-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.cfa-beyond, .cfa-not99-grid { grid-template-columns: 1fr; }
	.cfa-learn-grid.is-4, .cfa-roi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cfa-team-grid.is-3 { grid-template-columns: 1fr; }
	.cfa-stats.is-4 { grid-template-columns: repeat(2, 1fr); row-gap: 18px; }
	.cfa-stage { margin: 0 auto; max-width: 440px; }
	.cfa-quote-grid { grid-template-columns: 1fr 1fr; }
	.cfa-quote.is-big { grid-column: 1 / -1; }
	.cfa-footer-grid { grid-template-columns: 1fr 1fr; }
	.cfa-mentor-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.cfa-about-text { grid-template-columns: 1fr; }
	.cfa-about-text > * { grid-column: 1 !important; grid-row: auto !important; }
	.cfa-doc-wrap { grid-template-columns: 1fr; }
	.cfa-doc-nav { position: static; flex-direction: row; flex-wrap: wrap; gap: 8px 20px; }
	.cfa-doc-nav .cfa-label, .cfa-doc-help { width: 100%; }
}

/* ---------- Phone ---------- */
@media (max-width: 640px) {
	body.cfa { font-size: 16px; }
	.admin-bar .cfa-header { top: 0; }
	.cfa-header { gap: 12px; padding-block: 10px; }
	body.cfa .cfa-logo img { height: 30px; }
	body.cfa .cfa-nav-cta, body.cfa-course .cfa-nav-cta-course { display: none !important; }
	body.cfa-course .cfa-header .cfa-back { display: none; }
	body.cfa-doc-page .cfa-header .cfa-crumb { display: none; }
	body.cfa-course .is-menu-open .cfa-nav .is-course.cfa-nav-cohort { display: block; background: var(--cfa-course); color: #06140f; }
	.cfa-burger { margin-left: auto; }
	body.cfa .cfa-nav .cfa-nav-cohort {
		display: block;
		margin-top: 10px;
		padding: 14px 16px;
		border: 0;
		border-radius: 10px;
		background: var(--cfa-ink);
		color: var(--cfa-paper);
		font-weight: 700;
		font-size: 16px;
	}
	.cfa-sec-head { flex-direction: column; align-items: start; }

	/* Spec list: label | value rows, since there are no column headings on phones. */

	/* Workshops accordion (cohort.js adds the toggle and .is-collapsed on phones only). */

	.cfa-dots.is-carousel { display: flex; }

	/* Next cohort: both calendar buttons on one row. */
	.cfa-cohort .cfa-cal { flex-wrap: wrap; }
	.cfa-cohort .cfa-cal-label { flex: 0 0 100%; }
	body.cfa .cfa-cohort .cfa-cal-link { flex: 1 1 0; min-width: 0; text-align: center; white-space: nowrap; padding: 8px 8px 8px 28px; font-size: 13px; }
	body.cfa .cfa-cohort .cfa-cal-link::before { left: 9px; }
	.cfa-cohort .cfa-cal-ext { display: none; }

	.cfa-code { margin-left: 6px; }
	.cfa-why-list, .cfa-quote-grid { grid-template-columns: 1fr; }
	.cfa-mentor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 14px; }
	.cfa-mentor-desc { font-size: 13px; }
	.cfa-perk-grid { grid-template-columns: 1fr; }

	.cfa-perk-grid.is-2, .cfa-team-grid.is-2, .cfa-learn-grid, .cfa-quote-grid.is-6, .cfa-facts.is-3 { grid-template-columns: 1fr; }
	.cfa-quote-grid.is-3, .cfa-checklist.is-incl { grid-template-columns: 1fr; }
	.cfa-learn-grid.is-4, .cfa-roi-grid { grid-template-columns: 1fr; }
	.cfa-compare { grid-template-columns: 1fr; }
	.cfa-register > .cfa-fee-row { padding-top: 0; border-top: 0; }
	.cfa-register .cfa-checklist.is-incl { grid-template-columns: 1fr; }
	body.cfa .cfa-contact-form:not(.cfa-register-form) .fluentform fieldset { grid-template-columns: 1fr; }
	.cfa-filmo { grid-template-columns: 1fr 1fr; gap: 18px 16px; }
	.cfa-filmo-list.is-cols { columns: 2; column-gap: 16px; }
	.cfa-filmo-list li { font-size: 14px; }
	/* Home button in the course header */
	body.cfa-course .cfa-header .cfa-back { display: inline-flex; padding: 6px 10px; font-size: 13px; }
	/* Hero image not needed on phones */
	.cfa-hero .cfa-hero-side { order: -1; }
	.cfa-hero:not(.cfa-course-hero) .cfa-stage { max-width: 240px; margin: 0 auto; }
	.cfa-hero:not(.cfa-course-hero) { row-gap: 20px; }
	.cfa-course-hero .cfa-shot { padding: 8px; }
	.cfa-course-hero .cfa-shot-panels { height: 92px; }
	.cfa-course-hero .cfa-node { min-width: 0; padding: 5px 4px; font-size: 9px; }
	.cfa-course-hero .cfa-shot-panel.is-color { grid-template-columns: 1.6fr 1fr; gap: 8px; }
	.cfa-course-hero .cfa-histo { height: 72px; }
	.cfa-course-hero .cfa-cut { padding: 8px; }
	.cfa-course-hero .cfa-cut-tabs { font-size: 10px; } .cfa-course-hero .cfa-cut-tabs span { padding: 5px 6px; }
	.cfa-course-hero .cfa-cut-lane { height: 30px; }
	.cfa-stars { font-size: 22px; }
	/* Homepage: facts under the timeline lose their top rule (the timeline border already separates) */
	.cfa-facts > li { border-top: 0; padding-top: 0; }
	.cfa-snapshot .cfa-facts { margin-top: 20px !important; row-gap: 14px; }
	/* Floating buttons must not cover the last line of the page */
	body.cfa .cfa-footer { padding-bottom: 96px; }
	body.cfa-course .cfa-footer { padding-bottom: 110px; }
	/* Carousel (e.g. Who can join): swipe sideways, dots below */
	.cfa-carousel {
		display: grid !important;
		grid-template-columns: none !important;
		grid-auto-flow: column;
		grid-auto-columns: 86%;
		gap: 12px !important;
		overflow-x: auto;
		overflow-y: hidden; /* swipe sideways only: cards still waiting to scroll in sit lower and made the row scroll up/down */
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		margin-inline: calc(-1 * var(--cfa-gutter)) !important;
		padding: 4px var(--cfa-gutter) 8px;
		scroll-padding-inline: var(--cfa-gutter);
	}
	.cfa-carousel::-webkit-scrollbar { display: none; }
	.cfa-carousel > * { scroll-snap-align: start; }
	.cfa-carousel .cfa-who-card:hover { transform: none; }
	.cfa-dots.is-carousel { position: static; margin-top: 14px; }
	.cfa-dots.is-carousel button { background: var(--cfa-line); }
	.cfa-dots.is-carousel button[aria-current="true"] { background: var(--cfa-course, var(--cfa-red)); }
	.cfa-hero-facts { font-size: 15px; }
	.cfa-tl-clip span { font-size: 14px; line-height: 1.5; }
	.cfa-tl-clip b { font-size: 17px; }
	body.cfa-course .cfa-sticky-cta {
		position: fixed;
		left: 16px;
		right: 76px;
		bottom: 16px;
		height: 50px;
		box-sizing: border-box;
		z-index: 70;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 10px;
		padding: 12px 16px;
		border-radius: 14px;
		background: var(--cfa-course);
		color: #06140f !important;
		text-decoration: none !important;
		font-size: 15px;
		box-shadow: 0 10px 30px rgba(0, 0, 0, .4);
		transition: transform .3s ease, opacity .3s ease;
	}
	body.cfa-course .cfa-sticky-cta strong { font-size: 16px; }
	body.cfa-course .cfa-sticky-cta > * { white-space: nowrap; }
	body.cfa-course.cfa-at-register .cfa-sticky-cta, body.cfa-course.cfa-at-top .cfa-sticky-cta { transform: translateY(140%); opacity: 0; pointer-events: none; }
	body.cfa-course.cfa-at-register .cfa-wa { display: none; }
	.cfa-knowmentor-grid .cfa-mentor-card { max-width: none; }
	.cfa-knowmentor .cfa-mentor-img { width: 180px; }
	.cfa-tl-track { flex-wrap: wrap; }
	.cfa-tl-day { flex-basis: 100%; padding-top: 4px; }
	.cfa-tl-ruler { display: none; }
	.cfa-tl-clip { flex-basis: 100%; }
	.cfa-wa span { display: none; }
	.cfa-wa { padding: 0; width: 50px; height: 50px; justify-content: center; right: 16px; bottom: 16px; box-sizing: border-box; }
	body.cfa .cfa-signup .fluentform fieldset { flex-direction: column; align-items: stretch; }
	body.cfa .cfa-signup .fluentform .ff-btn-submit { width: 100%; }
	body.cfa .cfa-slides.is-slideshow { aspect-ratio: 4 / 3; }
	.cfa-stats strong { font-size: 30px; }
	.cfa-footer-grid { grid-template-columns: 1fr; gap: 24px; }
	.cfa-footer-base { flex-direction: column; }
}

/* =====================================================================
   Homepage refinements
   ===================================================================== */
/* Brow line: two phrases; on phones each on its own line */
.cfa-kicker span { white-space: nowrap; }

/* Hero sign-up: rounded field and button */
body.cfa .cfa-signup .fluentform .ff-el-form-control { border-radius: 10px !important; }
body.cfa .cfa-signup .fluentform .ff-btn-submit { border-radius: 10px !important; }

/* Next cohort: dark band with drifting colour orbs (as on the Color page) */
body.cfa .cfa-cohort {
	background:
		radial-gradient(38% 60% at 12% 18%, rgba(28, 235, 155, .32), transparent 70%),
		radial-gradient(40% 70% at 88% 22%, rgba(63, 111, 209, .42), transparent 70%),
		radial-gradient(45% 70% at 58% 108%, rgba(242, 166, 90, .34), transparent 70%),
		radial-gradient(30% 50% at 96% 96%, rgba(179, 92, 255, .30), transparent 70%),
		#101114;
	background-size: 160% 160%;
	animation: cfa-orb-drift 22s ease-in-out infinite alternate;
}
@keyframes cfa-orb-drift { 0% { background-position: 0% 0%; } 50% { background-position: 60% 40%; } 100% { background-position: 100% 100%; } }
@media (prefers-reduced-motion: reduce) { body.cfa .cfa-cohort { animation: none; } }
.cfa-h2-code { font-family: var(--cfa-mono); font-size: .42em; font-weight: 400; letter-spacing: .04em; color: var(--cfa-muted); vertical-align: middle; white-space: nowrap; }
.cfa-cohort .cfa-chips { margin-top: 18px !important; }

/* All workshops: tighter, even rhythm */
.cfa-programme .cfa-sec-head { margin-bottom: 8px; }

@media (max-width: 640px) {
	.cfa-kicker .cfa-dot { display: none; }
	.cfa-kicker span:not(.cfa-dot) { display: block; }
	/* Testimonials: small separators between quotes */
	.cfa-quote-grid .cfa-quote + .cfa-quote { position: relative; padding-top: 28px !important; }
	.cfa-quote-grid .cfa-quote + .cfa-quote::before { content: ""; position: absolute; left: 0; top: 0; width: 44px; height: 2px; background: currentColor; opacity: .35; }
	.cfa-programme .cfa-sec-head { margin-bottom: 4px; }

}

/* Header "Next cohort" button: live dot, day count, shimmer sweep, hover nudge */
body.cfa .cfa-nav-cta.is-live { position: relative; overflow: hidden; display: inline-flex; align-items: center; gap: 8px; transition: transform .25s ease, box-shadow .25s ease; }
body.cfa .cfa-nav-cta.is-live:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(0, 0, 0, .22); }
.cfa-live-dot { position: relative; width: 8px; height: 8px; border-radius: 50%; background: #1ceb9b; flex: none; }
.cfa-live-dot::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid #1ceb9b; opacity: 0; animation: cfa-ping 1.8s ease-out infinite; }
@keyframes cfa-ping { 0% { transform: scale(.5); opacity: .9; } 100% { transform: scale(1.8); opacity: 0; } }
.cfa-cta-days { font-style: normal; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: #1ceb9b; color: #06140f; font-size: 12px; white-space: nowrap; }
.cfa-cta-days:empty { display: none; }
.cfa-cta-arrow { display: inline-block; width: 0; opacity: 0; overflow: hidden; transition: width .25s ease, opacity .25s ease, transform .25s ease; }
body.cfa .cfa-nav-cta.is-live:hover .cfa-cta-arrow { width: 14px; opacity: 1; animation: cfa-nudge .9s ease-in-out infinite; }
@keyframes cfa-nudge { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(3px); } }
body.cfa .cfa-nav-cta.is-live::after {
	content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%;
	background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .35), transparent);
	transform: skewX(-20deg); animation: cfa-shimmer 4.5s ease-in-out infinite; pointer-events: none;
}
@keyframes cfa-shimmer { 0%, 60% { left: -60%; } 85%, 100% { left: 130%; } }
/* the in-menu version (phones) gets the same live cues */
body.cfa .cfa-nav .cfa-nav-cohort { position: relative; }
@media (prefers-reduced-motion: reduce) {
	.cfa-live-dot::after, body.cfa .cfa-nav-cta.is-live::after, body.cfa .cfa-nav-cta.is-live:hover .cfa-cta-arrow { animation: none; }
}
@media (max-width: 1100px) and (min-width: 961px) { .cfa-cta-days { display: none; } }

/* Hero heading: the cycling-word line keeps room for descenders (g, y) but must not push the next line down */
body.cfa .cfa-title .cfa-cycle { padding-bottom: .12em !important; margin-bottom: -.12em !important; }
body.cfa .cfa-title .cfa-cycle em { padding-bottom: 0 !important; margin-bottom: 0 !important; vertical-align: top; }

/* Course-only menu links (Register now, Back to home…) never show on non-course pages */
body:not(.cfa-course) .cfa-nav .is-course { display: none !important; }
/* Phone menu: the cohort link gets the live dot too */
@media (max-width: 960px) {
	body:not(.cfa-course) .cfa-nav .cfa-nav-cohort:not(.is-course)::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 10px; border-radius: 50%; background: #1ceb9b; box-shadow: 0 0 0 0 rgba(28, 235, 155, .6); animation: cfa-ping-dot 1.8s ease-out infinite; vertical-align: middle; }
	@keyframes cfa-ping-dot { 0% { box-shadow: 0 0 0 0 rgba(28, 235, 155, .6); } 100% { box-shadow: 0 0 0 9px rgba(28, 235, 155, 0); } }
}

/* Header cohort button: rounded pill on a slowly shifting gradient (matches the cycling words) */
body.cfa .cfa-nav-cta.is-live {
	border-radius: 999px; padding: 9px 16px 9px 14px;
	background: linear-gradient(100deg, #e0900a, #ef5f5f, #7b4dff, #3f6fd1, #e0900a) !important;
	background-size: 300% 100% !important; animation: cfa-cta-flow 9s linear infinite;
	color: #fff !important; box-shadow: 0 4px 14px rgba(123, 77, 255, .25);
}
body.cfa .cfa-nav-cta.is-live:hover { box-shadow: 0 8px 24px rgba(123, 77, 255, .38); }
@keyframes cfa-cta-flow { to { background-position: 300% 0; } }
body.cfa .cfa-nav-cta.is-live .cfa-live-dot { background: #fff; }
body.cfa .cfa-nav-cta.is-live .cfa-live-dot::after { border-color: #fff; }
body.cfa .cfa-nav-cta.is-live .cfa-cta-days { background: rgba(255, 255, 255, .95); color: #3a1f8f; }
@media (prefers-reduced-motion: reduce) { body.cfa .cfa-nav-cta.is-live { animation: none; } }

/* Cycling words in capitals */
body.cfa .cfa-title .cfa-cycle em { text-transform: uppercase; letter-spacing: -.01em; font-size: .84em; vertical-align: baseline; position: relative; top: .035em; } /* smaller caps: sit on the baseline, nudged down so the gaps above and below match */

/* =====================================================================
   Homepage sections: every light section shares one white-to-grey gradient,
   with hairline separators between them.
   ===================================================================== */
body.cfa { --cfa-handmade: #ffffff; --cfa-sec-grad: linear-gradient(180deg, #ffffff 0%, #f1f1ef 100%); }
body.cfa:not(.cfa-course) :is(.cfa-hero, .cfa-programme, .cfa-snapshot, .cfa-about, .cfa-mentors, .cfa-why, .cfa-perks, .cfa-quotes, .cfa-teams, .cfa-faq, .cfa-contact).cfa-sec {
	position: relative;
	background-color: #ffffff !important;
	background-image: var(--cfa-sec-grad) !important;
}
/* Separator: a hairline across the content width, with a small centred mark */
body.cfa:not(.cfa-course) :is(.cfa-programme, .cfa-snapshot, .cfa-about, .cfa-mentors, .cfa-why, .cfa-perks, .cfa-quotes, .cfa-teams, .cfa-faq, .cfa-contact).cfa-sec::before {
	content: ""; position: absolute; top: 0; left: var(--cfa-gutter); right: var(--cfa-gutter); height: 1px;
	background: linear-gradient(90deg, transparent, rgba(21, 21, 21, .22) 12%, rgba(21, 21, 21, .22) 88%, transparent);
	pointer-events: none;
}
body.cfa:not(.cfa-course) :is(.cfa-programme, .cfa-snapshot, .cfa-about, .cfa-mentors, .cfa-why, .cfa-perks, .cfa-quotes, .cfa-teams, .cfa-faq, .cfa-contact).cfa-sec::after {
	content: ""; position: absolute; top: -4px; left: 50%; width: 8px; height: 8px; margin-left: -4px;
	background: var(--cfa-handmade); border: 1px solid rgba(21, 21, 21, .35); transform: rotate(45deg);
	pointer-events: none;
}
/* No separator where a section follows the dark cohort block: the colour change already divides them */
body.cfa:not(.cfa-course) .cfa-cohort + .cfa-sec::before, body.cfa:not(.cfa-course) .cfa-cohort + .cfa-sec::after { content: none; }

/* ---------- Form states: one error / focus / success language for every Fluent form ---------- */
body.cfa { --cfa-error: #d92d20; --cfa-error-ring: rgba(217, 45, 32, .18); --cfa-ok: #0f8a5f; }
body.cfa.palette-grade { --cfa-error: #ff6b6b; --cfa-error-ring: rgba(255, 107, 107, .22); --cfa-ok: #1ceb9b; }
body.cfa.palette-cut .ct-reg, body.cfa.palette-cut .cfa-contact-form { --cfa-error: #ff6b6b; --cfa-error-ring: rgba(255, 107, 107, .25); }
/* Invalid field: red border plus a soft red ring; focusing it deepens the ring */
html body.cfa .fluentform .ff-el-is-error .ff-el-form-control {
	border-color: var(--cfa-error) !important;
	box-shadow: 0 0 0 3px var(--cfa-error-ring) !important;
}
html body.cfa .fluentform .ff-el-is-error .ff-el-form-control:focus {
	outline: none !important;
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--cfa-error) 38%, transparent) !important;
}
/* Invalid checkbox / radio: ring the box itself */
html body.cfa .fluentform .ff-el-is-error input[type="checkbox"], html body.cfa .fluentform .ff-el-is-error input[type="radio"] {
	outline: 2px solid var(--cfa-error) !important; outline-offset: 1px; border-radius: 3px; margin-right: 8px !important;
}
/* Error message: red, with a small alert mark, close under its field */
html body.cfa .fluentform .error.text-danger {
	color: var(--cfa-error) !important; font-size: 13px; font-weight: 500; line-height: 1.35;
	margin-top: 6px !important; display: flex; align-items: center; gap: 6px;
}
html body.cfa .fluentform .error.text-danger::before {
	content: "!"; flex: none; width: 15px; height: 15px; border-radius: 50%; background: var(--cfa-error); color: #fff;
	font: 700 11px/15px var(--cfa-sans, sans-serif); text-align: center;
}
html body.cfa .fluentform .ff-el-group:has(input[type="checkbox"]) .error.text-danger { margin-top: 2px !important; }
/* Server-side errors (e.g. the form is closed) listed above the button */
html body.cfa .ff-errors-in-stack { color: var(--cfa-error); border: 1px solid var(--cfa-error); background: var(--cfa-error-ring); border-radius: 10px; padding: 10px 14px; font-size: 14px; }
html body.cfa .ff-errors-in-stack .error { margin: 0; }
/* Success: bordered note with a green tick */
html body.cfa .ff-message-success {
	position: relative; border: 1.5px solid var(--cfa-ok) !important; border-radius: 12px !important;
	padding: 16px 18px 16px 52px !important; box-shadow: none !important; line-height: 1.5;
}
html body.cfa .ff-message-success::before {
	content: "✓"; position: absolute; left: 16px; top: 15px; width: 24px; height: 24px; border-radius: 50%;
	background: var(--cfa-ok); color: #fff; font: 700 14px/24px var(--cfa-sans, sans-serif); text-align: center;
}
body.cfa.palette-grade .ff-message-success::before { color: #06140f; }

/* ---------- All workshops: cards (replaces the table rows) ---------- */
body.cfa .cfa-wcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 32px !important; }
.cfa-wcard {
	position: relative; display: flex; flex-direction: column; gap: 12px;
	background: #fff; border: 1px solid rgba(21, 21, 21, .12); border-radius: 16px; padding: 22px 22px 20px;
	overflow: hidden; transition: opacity .5s ease, transform .35s ease, box-shadow .25s ease, border-color .25s ease;
}
.cfa-wcard::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--cfa-d, var(--cfa-ink)); }
.cfa-wcard:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(21, 21, 21, .1); border-color: color-mix(in srgb, var(--cfa-d) 45%, transparent); }
.cfa-wcard.is-featured { background: color-mix(in srgb, var(--cfa-d) 7%, #fff); border-color: color-mix(in srgb, var(--cfa-d) 40%, transparent); }
.cfa-wcard-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cfa-wcard-no {
	display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%;
	background: var(--cfa-d); color: #fff; font: 600 12px/1 var(--cfa-mono);
}
.cfa-wcard.is-write .cfa-wcard-no { color: var(--cfa-ink); }
.cfa-wcard .cfa-code { font-family: var(--cfa-mono); font-size: 12px; letter-spacing: .06em; color: var(--cfa-muted); }
.cfa-wcard .cfa-tag { margin-left: auto; }
body.cfa .cfa-wcard-title { margin: 4px 0 0 !important; font-size: 24px; line-height: 1.15; font-weight: 500; letter-spacing: -.01em; }
.cfa-wcard-title a { color: inherit; text-decoration: none; }
.cfa-wcard-title a:hover { color: var(--cfa-d); }
body.cfa .cfa-wcard-desc { margin: 0 !important; max-width: none !important; color: var(--cfa-muted); font-size: 15px; line-height: 1.5; flex: 1; }
.cfa-wcard-meta { list-style: none; margin: 4px 0 0; padding: 12px 0 0; border-top: 1px solid rgba(21, 21, 21, .1); display: grid; grid-template-columns: repeat(3, auto); gap: 8px 14px; font-size: 14px; font-weight: 500; }
.cfa-wcard-meta span { display: block; font: 400 11px/1.6 var(--cfa-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--cfa-muted); }
body.cfa .cfa-wcard-go { margin: 6px 0 0 !important; font-weight: 700; }
.cfa-wcard-go a { color: var(--cfa-ink); text-decoration: none; }
.cfa-wcard-go a:hover { color: var(--cfa-d); }
@media (max-width: 1024px) { body.cfa .cfa-wcards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
	body.cfa .cfa-wcards { grid-template-columns: 1fr; gap: 14px; margin-top: 20px !important; }
	.cfa-wcard { padding: 18px 18px 16px; }
	body.cfa .cfa-wcard-title { font-size: 21px; }
}
@media (prefers-reduced-motion: reduce) { .cfa-wcard { transition: none; } .cfa-wcard:hover { transform: none; } }

/* Timeline clips: padding counts inside the span so clip ends line up with the hour ruler */
.cfa-tl-clip { box-sizing: border-box; }

/* All workshops: filter chips */
body.cfa .cfa-wfilter { margin-top: 24px !important; }
.cfa-wfilter-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
body.cfa .cfa-chip {
	appearance: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px;
	font: 500 15px/1 var(--cfa-sans); color: var(--cfa-ink); background: #fff;
	border: 1px solid rgba(21, 21, 21, .18); border-radius: 999px; padding: 9px 14px;
	transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.cfa-chip small { font: 500 11px/1 var(--cfa-mono); color: var(--cfa-muted); }
body.cfa .cfa-chip:hover { border-color: var(--cfa-ink); }
body.cfa .cfa-chip[aria-pressed="true"] { background: var(--cfa-ink); color: #fff; border-color: var(--cfa-ink); }
body.cfa .cfa-chip[aria-pressed="true"] small { color: rgba(255, 255, 255, .7); }
body.cfa .cfa-chip:focus-visible { outline: 2px solid var(--cfa-red); outline-offset: 2px; }
.cfa-wfilter-sep { width: 1px; height: 24px; background: rgba(21, 21, 21, .18); margin: 0 4px; }
body.cfa .cfa-wfilter-status { margin: 10px 0 0 !important; min-height: 1.4em; font: 400 12px/1.4 var(--cfa-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--cfa-muted); }
body.cfa .cfa-wfilter + .cfa-wcards { margin-top: 12px !important; }
.cfa-wcard[hidden] { display: none !important; }
body.cfa .cfa-wempty { margin-top: 12px !important; padding: 20px; border: 1px dashed rgba(21, 21, 21, .25); border-radius: 16px; text-align: center; }
.cfa-wempty a { font-weight: 700; color: var(--cfa-ink); }
/* Phones: one swipeable row of chips instead of wrapping onto several lines */
@media (max-width: 640px) {
	.cfa-wfilter-row { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(-1 * var(--cfa-gutter)); padding: 2px var(--cfa-gutter); }
	.cfa-wfilter-row::-webkit-scrollbar { display: none; }
	body.cfa .cfa-chip { flex: none; }
}
body.cfa .cfa-chip.is-empty { opacity: .45; }

/* All workshops: heading + chips stay pinned under the site header while the cards scroll (within this section only) */
body.cfa .cfa-wsticky {
	position: sticky; top: var(--cfa-head-h, 70px); z-index: 20;
	margin: 0 calc(50% - 50vw) !important; padding: 10px calc(50vw - 50%) 2px; /* full-bleed bar, content stays in the column */
	background: transparent; transition: background .2s ease, box-shadow .2s ease;
}
body.cfa .cfa-wsticky.is-stuck {
	background: color-mix(in srgb, #fff 90%, transparent); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
	box-shadow: 0 1px 0 rgba(21, 21, 21, .08), 0 8px 18px -12px rgba(21, 21, 21, .25);
}
body.cfa .cfa-wsticky .cfa-h2 { margin: 0 !important; } /* size changes instantly: an animated size change moves the layout mid-scroll */
body.cfa .cfa-wsticky.is-stuck .cfa-h2 { font-size: clamp(22px, 2.4vw, 30px); }
body.cfa .cfa-wsticky .cfa-wfilter { margin-top: 16px !important; }
body.cfa .cfa-wsticky.is-stuck .cfa-wfilter { margin-top: 10px !important; }
body.cfa .cfa-wsticky.is-stuck .cfa-wfilter-status { margin-top: 6px !important; }
body.cfa .cfa-wsticky + .cfa-wcards { margin-top: 14px !important; }
/* anchor jumps to a card land below the pinned bar */
.cfa-wcard { scroll-margin-top: calc(var(--cfa-head-h, 70px) + 150px); }
@media (max-width: 640px) {
	body.cfa .cfa-wsticky { padding-top: 8px; }
	body.cfa .cfa-wsticky.is-stuck .cfa-h2 { font-size: 20px; }
	body.cfa .cfa-wsticky.is-stuck .cfa-wfilter-status:empty { display: none; }
}
@media (prefers-reduced-motion: reduce) { body.cfa .cfa-wsticky { transition: none; } }

/* Cinematography accent */
body.cfa { --cfa-cine: #7b4dff; }
.is-cine { --cfa-d: var(--cfa-cine); }
/* Format chips (first in the row): a small location / screen mark so they read differently from topics */
.cfa-chip.is-format i { width: 8px; height: 8px; border-radius: 50%; background: #1ceb9b; flex: none; }
.cfa-chip.is-format[data-format="ip"] i { background: #ffb020; border-radius: 2px; }
/* Active format chip: yellow, so "where" reads apart from "what" (topic chips go black) */
body.cfa .cfa-chip.is-format[aria-pressed="true"] { background: #ffd400; color: var(--cfa-ink); border-color: #e6bf00; }
body.cfa .cfa-chip.is-format[aria-pressed="true"] small { color: rgba(21, 21, 21, .6); }
body.cfa .cfa-chip.is-format[aria-pressed="true"] i { background: var(--cfa-ink); }
.cfa-wcard-go a span { font-weight: 400; color: var(--cfa-muted); margin-right: 2px; }

/* ---------- Next cohort: beige band (replaces the dark one on the homepage) ---------- */
body.cfa:not(.cfa-course) .cfa-cohort {
	--cfa-ink: #1c1712;
	--cfa-muted: #6f6453;
	--cfa-line: rgba(60, 45, 25, .2);
	color: var(--cfa-ink);
	background:
		radial-gradient(38% 60% at 10% 15%, rgba(255, 190, 130, .45), transparent 70%),
		radial-gradient(40% 70% at 90% 20%, rgba(255, 222, 160, .55), transparent 70%),
		radial-gradient(45% 70% at 55% 110%, rgba(240, 170, 150, .35), transparent 70%),
		#f3e9d6;
	background-size: 160% 160%;
}
body.cfa:not(.cfa-course) .cfa-cohort :is(h2, h3) { color: var(--cfa-ink); }
body.cfa:not(.cfa-course) .cfa-cohort .cfa-label { color: #c2410c; }

body.cfa:not(.cfa-course) .cfa-cohort .cfa-cohort-note a { color: var(--cfa-ink); }
body.cfa:not(.cfa-course) .cfa-cohort .cfa-chips li { background: rgba(255, 255, 255, .55); border-color: var(--cfa-line); color: var(--cfa-ink); }
body.cfa:not(.cfa-course) .cfa-cohort .cfa-countdown-unit { background: #fffaf1; border-color: var(--cfa-line); border-radius: 10px; }
body.cfa:not(.cfa-course) .cfa-cohort .cfa-cal-link { background: rgba(255, 255, 255, .55); color: var(--cfa-ink); }
body.cfa:not(.cfa-course) .cfa-cohort .cfa-btn .wp-block-button__link { background: #ff4a1c; color: #fff; }
body.cfa:not(.cfa-course) .cfa-cohort .cfa-btn .wp-block-button__link:hover { background: var(--cfa-ink); color: #fff; }
body.cfa:not(.cfa-course) .cfa-cohort .cfa-btn.is-ghost .wp-block-button__link:hover { color: #fff; }
/* the section now reads as light, so it takes the same separator as its neighbours */
body.cfa:not(.cfa-course) .cfa-cohort + .cfa-sec::before, body.cfa:not(.cfa-course) .cfa-cohort + .cfa-sec::after { content: ""; }
/* Next cohort: flat beige, no drifting glow, no striped top edge */
body.cfa:not(.cfa-course) .cfa-cohort { background: #f3e9d6; animation: none; }
body.cfa:not(.cfa-course) .cfa-cohort::before { content: none; }
body.cfa:not(.cfa-course) .cfa-cohort .cfa-chips li { background: #fff; }

/* ---------- Next cohort: reworked layout (pitch + icon facts | ticket card) ---------- */
body.cfa:not(.cfa-course) .cfa-cohort { grid-template-columns: 1.1fr 1fr; align-items: center; gap: clamp(28px, 5vw, 80px); }
body.cfa:not(.cfa-course) .cfa-cohort .cfa-label { display: inline-flex; align-items: center; gap: 10px; }
body.cfa:not(.cfa-course) .cfa-cohort .cfa-live-dot { background: #ff4a1c; }
body.cfa:not(.cfa-course) .cfa-cohort .cfa-live-dot::after { border-color: #ff4a1c; }
body.cfa .cfa-cohort-pitch { font-size: 18px; line-height: 1.5; color: var(--cfa-muted); max-width: 34em; }
.cfa-cfacts { list-style: none; padding: 0; margin: 24px 0 0 !important; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; }
.cfa-cfacts li { display: flex; align-items: center; gap: 12px; font-size: 14px; color: var(--cfa-muted); line-height: 1.3; }
.cfa-cfacts li b { display: block; font-size: 16px; font-weight: 600; color: var(--cfa-ink); }
.cfa-cfacts .cfa-ico {
	flex: none; width: 44px; height: 44px; padding: 10px; box-sizing: border-box;
	color: #ff4a1c; background: #fff; border-radius: 12px; box-shadow: 0 1px 0 rgba(60, 45, 25, .12);
}
body.cfa .cfa-cohort .cfa-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px !important; }
body.cfa .cfa-cbtn {
	display: inline-flex; align-items: center; padding: 14px 22px; border-radius: 10px; font-weight: 700; font-size: 16px;
	text-decoration: none; background: #ff4a1c; color: #fff; transition: background .2s ease, color .2s ease, transform .2s ease;
}
body.cfa .cfa-cbtn:hover { background: var(--cfa-ink); color: #fff; transform: translateY(-2px); }
body.cfa .cfa-cbtn.is-ghost { background: transparent; color: var(--cfa-ink); box-shadow: inset 0 0 0 1.5px var(--cfa-ink); }
body.cfa .cfa-cbtn.is-ghost:hover { background: var(--cfa-ink); color: #fff; }

/* Ticket card */
body.cfa:not(.cfa-course) .cfa-cohort-side { border: 0; padding: 0; }
.cfa-ticket { position: relative; background: #fff; border-radius: 20px; box-shadow: 0 1px 0 rgba(60, 45, 25, .1), 0 18px 40px -22px rgba(60, 45, 25, .45); }
.cfa-ticket-top { padding: 24px 24px 22px; }
body.cfa .cfa-ticket-head { display: flex; align-items: center; gap: 10px; margin: 0 0 16px !important; font: 400 12px/1.4 var(--cfa-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--cfa-muted); }
.cfa-ticket-head .cfa-ico { width: 18px; height: 18px; color: #ff4a1c; flex: none; }
.cfa-ctiles { list-style: none; padding: 0; margin: 0 !important; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.cfa-ctile { display: grid; justify-items: center; text-align: center; gap: 2px; padding: 12px 6px; border-radius: 14px; background: #f8f2e6; }
.cfa-ctile small { font: 500 11px/1 var(--cfa-mono); letter-spacing: .08em; text-transform: uppercase; color: #c2410c; }
.cfa-ctile b { font-size: 40px; line-height: 1.05; letter-spacing: -.03em; color: var(--cfa-ink); margin-top: 4px; }
.cfa-ctile span { font-size: 14px; font-weight: 600; color: var(--cfa-ink); }
.cfa-ctile em { font-style: normal; font-size: 12px; color: var(--cfa-muted); margin-top: 4px; }
/* perforated tear line with notches cut into both edges */
.cfa-ticket-tear { position: relative; height: 0; margin: 0 22px; border-top: 2px dashed rgba(60, 45, 25, .18); }
.cfa-ticket-tear::before, .cfa-ticket-tear::after { content: ""; position: absolute; top: -12px; width: 22px; height: 22px; border-radius: 50%; background: #f3e9d6; }
.cfa-ticket-tear::before { left: -34px; }
.cfa-ticket-tear::after { right: -34px; }
.cfa-ticket-bottom { padding: 20px 24px 24px; display: grid; gap: 16px; }
body.cfa:not(.cfa-course) .cfa-ticket .cfa-countdown { margin: 0 !important; }
body.cfa:not(.cfa-course) .cfa-ticket .cfa-countdown-unit { flex: 1; background: #f8f2e6; border: 0; border-radius: 10px; }
body.cfa:not(.cfa-course) .cfa-ticket .cfa-cal { margin: 0 !important; }
body.cfa:not(.cfa-course) .cfa-ticket .cfa-cal-link { background: #fff; }
@media (max-width: 960px) {
	body.cfa:not(.cfa-course) .cfa-cohort { grid-template-columns: 1fr; }
	body.cfa:not(.cfa-course) .cfa-cohort-side { border-top: 0; padding-top: 0; }
}
@media (max-width: 640px) {
	.cfa-cfacts { gap: 14px 14px; }
	.cfa-cfacts .cfa-ico { width: 38px; height: 38px; padding: 8px; }
	.cfa-cfacts li b { font-size: 15px; }
	.cfa-ticket-top { padding: 20px 16px 18px; }
	.cfa-ticket-bottom { padding: 18px 16px 20px; }
	.cfa-ctile b { font-size: 32px; }
	.cfa-ticket-tear { margin: 0 14px; }
	.cfa-ticket-tear::before { left: -26px; } .cfa-ticket-tear::after { right: -26px; }
	body.cfa .cfa-cohort .cfa-cbtn { flex: 1; justify-content: center; }
}
body.cfa:not(.cfa-course) .cfa-ticket .cfa-countdown-unit { background: #fff; border: 1px solid rgba(21, 21, 21, .16); }
/* Dates TBA: day tiles show "TBA", the note stands in for the (silent) countdown and calendar buttons */
.cfa-ctile span:empty { display: none; }
body.cfa .cfa-ticket-note { margin: 0 !important; font-size: 15px; line-height: 1.5; color: var(--cfa-muted); }
body.cfa .cfa-ticket-note:empty { display: none; }

/* Footer: leave room under the legal links so the floating WhatsApp button never covers them */
body.cfa .cfa-footer { padding-bottom: 96px; }
@media (max-width: 640px) { body.cfa .cfa-footer { padding-bottom: 84px; } }

/* Next cohort heading: one line on desktop, lighter "- Beginners" */
body.cfa:not(.cfa-course) .cfa-cohort .cfa-h2 { font-size: clamp(30px, 3.1vw, 44px); }
.cfa-h2-light { font-weight: 400; white-space: nowrap; }

/* Contact form: the three short fields stack below desktop width so placeholders are never cut off */
@media (max-width: 1180px) and (min-width: 641px) {
	body.cfa .cfa-contact-form:not(.cfa-register-form) .fluentform fieldset { grid-template-columns: 1fr 1fr; }
	body.cfa .cfa-contact-form:not(.cfa-register-form) .fluentform fieldset > .ff-el-group:has(input[type="number"], input[type="tel"]) { grid-column: 1 / -1; }
}

/* ---------- Polish: one button shape site-wide ---------- */
body.cfa .cfa-btn .wp-block-button__link { border-radius: 10px; }

/* Workshop cards: fixed meta columns so Format / Duration / Next cohort line up card to card */
.cfa-wcard-meta { grid-template-columns: 1fr 1.35fr .8fr; }

/* Mentor photos: coloured ring drawn inside the frame so it never pokes past the page margin */
.cfa-mentor-card[class*="is-"] .cfa-mentor-img img { box-shadow: none; outline: 4px solid var(--cfa-d); outline-offset: -4px; }
body.cfa:is(.palette-riso, .palette-candy) .cfa-mentors .cfa-mentor-card[class*="is-"] .cfa-mentor-img img { box-shadow: none; }

/* Readable small print: nothing a visitor needs to read below 12px */
.cfa-countdown-unit small, .cfa-wcard-meta span, .cfa-chip small, .cfa-ctile small, .cfa-tl-ruler, .cfa-tag { font-size: 12px; }
body.cfa .cfa-contact-form .fluentform .ff-el-input--label label { font-size: 12px !important; }

/* Policy pages: the page title is the one H1 */
body.cfa .cfa-doc-main { min-width: 0; }
body.cfa .cfa-doc-title { margin: 0 0 24px !important; font-size: clamp(32px, 4vw, 48px); font-weight: 700; line-height: 1.05; letter-spacing: -.03em; }
/* Logo strip: let the section background show through the image's white */
.cfa-logos img { mix-blend-mode: multiply; }


/* Forms: no outline box when a field, checkbox, link or the "Tell us a bit about yourself" toggle is tapped or clicked.
   Keyboard focus stays visible, but as the field's own ring, a soft ring or an underline instead of a box. */
body.cfa .fluentform :is(input, textarea, select, button, a, summary):focus,
body.cfa .fluentform :is(input, textarea, select, button, a, summary):focus-visible,
body.cfa .cfa-more summary:focus, body.cfa .cfa-more summary:focus-visible { outline: none !important; }
body.cfa .fluentform input:is([type="checkbox"], [type="radio"]):focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--cfa-course, var(--cfa-red)) 35%, transparent); }
body.cfa .fluentform a:focus-visible, body.cfa .cfa-more summary:focus-visible { text-decoration: underline; text-decoration-color: var(--cfa-course, var(--cfa-red)); text-underline-offset: 4px; }
body.cfa .fluentform .ff-btn-submit:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--cfa-course, var(--cfa-red)) 35%, transparent) !important; }
body.cfa .cfa-more summary { -webkit-tap-highlight-color: transparent; }
body.cfa .fluentform :is(label, a, button, summary) { -webkit-tap-highlight-color: transparent; }

/* Consent checkboxes: the policy names are links, so make them look like links */
body.cfa .fluentform .ff_t_c a { color: var(--cfa-course, var(--cfa-red)) !important; text-decoration: underline !important; text-underline-offset: 3px; font-weight: 600; }
body.cfa .fluentform .ff_t_c a:hover { text-decoration-thickness: 2px !important; }

/* Phones: "Show all N workshops" under the first six cards */
body.cfa .cfa-wmore {
	display: block; width: 100%; margin-top: 14px; padding: 14px 18px; border-radius: 12px; cursor: pointer;
	font: 700 16px/1.2 var(--cfa-sans); color: var(--cfa-ink); background: #fff; border: 1.5px solid var(--cfa-ink);
}
body.cfa .cfa-wmore:hover { background: var(--cfa-ink); color: #fff; }
body.cfa .cfa-wmore[hidden] { display: none; }

/* "See all workshops" card at the end of Explore other workshops: dashed outline, reads as a way out rather than a course */
body.cfa a.cfa-other-card.is-all { --cfa-d: var(--cfa-course, var(--cfa-red)); border: 1.5px dashed var(--cfa-d); background: transparent; justify-content: center; }
body.cfa a.cfa-other-card.is-all .cfa-other-title { font-size: 22px; }
body.cfa a.cfa-other-card.is-all .cfa-other-cta { color: var(--cfa-d); font-weight: 700; }

/* Text for screen readers and search engines only (e.g. which workshop an "Enquire now" link is about) */
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Mentors with two people: photo beside name, links, speciality and bio */
body.cfa .cfa-mentor-grid.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 40px; }
body.cfa .cfa-mentor-grid.is-2 .cfa-mentor-card { display: grid; grid-template-columns: 200px minmax(0, 1fr); column-gap: 24px; align-content: start; }
body.cfa .cfa-mentor-grid.is-2 .cfa-mentor-card > * { grid-column: 2; margin-top: 0 !important; }
body.cfa .cfa-mentor-grid.is-2 .cfa-mentor-img { grid-column: 1; grid-row: 1 / span 6; margin: 0 !important; }
body.cfa .cfa-mentor-grid.is-2 .cfa-mentor-name { margin-bottom: 2px !important; }
body.cfa .cfa-mentor-grid.is-2 .cfa-mentor-spec { margin: 4px 0 10px !important; }
body.cfa .cfa-mentor-grid.is-2 .cfa-mentor-desc { font-size: 15px; line-height: 1.6; color: var(--cfa-muted); }
@media (max-width: 960px) { body.cfa .cfa-mentor-grid.is-2 { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
	body.cfa .cfa-mentor-grid.is-2 .cfa-mentor-card { grid-template-columns: 112px minmax(0, 1fr); column-gap: 16px; }
	body.cfa .cfa-mentor-grid.is-2 .cfa-mentor-img { grid-row: 1 / span 3; }
	body.cfa .cfa-mentor-grid.is-2 .cfa-mentor-desc { grid-column: 1 / -1; margin-top: 14px !important; }
}

/* Home header: dark bar, white logo with a light sweep (the cohort pill keeps its gradient) */
body.cfa.palette-pop .cfa-header {
	--cfa-ink: #f2f0ea;
	--cfa-muted: #9d9b95;
	--cfa-line: rgba(255, 255, 255, .12);
	--cfa-paper: #111111;
	background: rgba(17, 17, 17, .94);
	border-bottom-color: rgba(255, 255, 255, .08);
	color: #f2f0ea;
}
body.cfa.palette-pop .cfa-header a:not(.cfa-nav-cta) { color: #f2f0ea; }
body.cfa.palette-pop .cfa-nav a:not(.cfa-nav-cohort):hover { color: #ffe766; }
body.cfa.palette-pop .cfa-logo img { filter: invert(1); }
body.cfa.palette-pop .cfa-burger { background: transparent; border-color: rgba(255, 255, 255, .3); }

body.cfa.palette-pop .cfa-logo { position: relative; overflow: hidden; }
body.cfa.palette-pop .cfa-logo::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(105deg, transparent 35%, rgba(255, 231, 102, .95) 48%, #fff 50%, rgba(255, 231, 102, .95) 52%, transparent 65%) no-repeat;
	background-size: 300% 100%;
	background-position: 105% 0;
	-webkit-mask: url(img/logo-white-320.webp) center / 100% 100% no-repeat;
	mask: url(img/logo-white-320.webp) center / 100% 100% no-repeat;
	pointer-events: none;
	animation: cfa-logo-sweep 5s ease-in-out 1s infinite;
}
@keyframes cfa-logo-sweep {
	0% { background-position: 105% 0; }
	32%, 100% { background-position: -5% 0; }
}
@media (prefers-reduced-motion: reduce) {
	body.cfa.palette-pop .cfa-logo::after { display: none; }
}

/* Home hero: the four stats sit under the main button so they're seen first */
body.cfa .cfa-hero-stats { margin-top: 32px !important; max-width: 520px; border-top-color: var(--cfa-line); }
body.cfa .cfa-hero-stats li { padding-top: 12px; }
body.cfa .cfa-hero-stats strong { font-size: clamp(28px, 2.6vw, 36px); color: var(--cfa-red); }

/* About: the studio's teaching ethos as a pull quote, full width under the intro */
.cfa-about-text > .cfa-ethos { grid-column: 1 / -1; grid-row: 3; }
body.cfa .cfa-ethos {
	margin: 28px 0 0 !important;
	padding: 4px 0 4px clamp(18px, 2.4vw, 32px);
	border-left: 4px solid var(--cfa-red);
	max-width: 30em;
}
body.cfa .cfa-ethos p {
	margin: 0;
	font-family: var(--cfa-serif);
	font-style: italic;
	font-size: clamp(24px, 2.6vw, 34px);
	line-height: 1.25;
	letter-spacing: -.01em;
	color: var(--cfa-ink);
}
body.cfa .cfa-ethos p::before { content: "“"; }
body.cfa .cfa-ethos p::after { content: "”"; }
body.cfa .cfa-ethos cite {
	display: block;
	margin-top: 14px;
	font-family: var(--cfa-mono);
	font-style: normal;
	font-size: 13px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cfa-muted);
}
body.cfa .cfa-ethos cite::before { content: "— "; }

/* All workshops: keyword search beside the heading (filters the cards together with the chips) */
body.cfa .cfa-whead { display: flex; align-items: center; justify-content: space-between; gap: 16px 24px; flex-wrap: wrap; }
body.cfa .cfa-wsearch {
	position: relative; display: flex; align-items: center;
	flex: 0 1 360px; min-width: 0; color: var(--cfa-muted);
}
body.cfa .cfa-wsearch svg { position: absolute; left: 14px; pointer-events: none; }
body.cfa .cfa-wsearch input {
	width: 100%; margin: 0; appearance: none;
	font: 400 15px/1.2 var(--cfa-sans); color: var(--cfa-ink); background: #fff;
	border: 1px solid rgba(21, 21, 21, .18); border-radius: 999px; padding: 11px 16px 11px 40px;
	transition: border-color .2s ease, box-shadow .2s ease;
}
body.cfa .cfa-wsearch input::placeholder { color: var(--cfa-muted); opacity: .8; }
body.cfa .cfa-wsearch input:hover { border-color: rgba(21, 21, 21, .4); }
body.cfa .cfa-wsearch input:focus { outline: none; border-color: var(--cfa-ink); box-shadow: 0 0 0 3px rgba(255, 74, 28, .18); }
body.cfa .cfa-wsearch:focus-within { color: var(--cfa-ink); }
body.cfa .cfa-wsticky.is-stuck .cfa-wsearch input { padding-block: 8px; font-size: 14px; }
@media (max-width: 640px) {
	body.cfa .cfa-wsearch { flex: 1 1 100%; }
	body.cfa .cfa-wsearch input { font-size: 16px; } /* 16px stops iOS zooming in on focus */
	body.cfa .cfa-wsticky.is-stuck .cfa-wsearch input { font-size: 16px; }
}

/* Course page: "Your journey" (before → during → after), three phases joined by one line */
.cfa-journey, .cfa-jsteps { list-style: none; margin: 0; padding: 0; }
body.cfa .cfa-journey {
	position: relative; display: grid; grid-template-columns: 1fr 1.25fr 1fr; gap: clamp(20px, 3vw, 40px);
	margin-top: clamp(24px, 3vw, 36px) !important;
}
.cfa-jphase { position: relative; }
.cfa-jphase-head { position: relative; display: flex; align-items: center; gap: 10px; margin: 0 0 20px !important; }
.cfa-jphase-head b {
	display: inline-flex; align-items: center; height: 32px; padding: 0 14px; border-radius: 999px; flex: none;
	font: 700 13px/1 var(--cfa-mono); letter-spacing: .08em; text-transform: uppercase;
	color: var(--cfa-ink); border: 1.5px solid var(--cfa-line);
}
.cfa-jphase.is-during .cfa-jphase-head b { background: var(--cfa-course, var(--cfa-red)); color: #06140f; border-color: transparent; }
.cfa-jphase-head span { font: 400 12px/1.3 var(--cfa-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--cfa-muted); white-space: nowrap; }
/* Each phase draws its own stretch of the track after its label, so the three read as one line */
.cfa-jphase-head::after { content: ""; flex: 1; height: 2px; min-width: 16px; background: var(--cfa-line); }
.cfa-jphase.is-during .cfa-jphase-head::after { background: var(--cfa-course, var(--cfa-red)); }
.cfa-jsteps { display: grid; gap: 12px; }
.cfa-jsteps li {
	position: relative; padding: 16px 18px 16px 20px; border-radius: 14px;
	border: 1px solid var(--cfa-line); background: color-mix(in srgb, var(--cfa-ink) 3%, transparent);
	counter-increment: cfa-jstep;
}
.cfa-jphase.is-during .cfa-jsteps li { border-color: color-mix(in srgb, var(--cfa-course, var(--cfa-red)) 45%, transparent); background: color-mix(in srgb, var(--cfa-course, var(--cfa-red)) 7%, transparent); }
.cfa-jsteps li::before { /* accent tick on the left edge */
	content: ""; position: absolute; left: -1px; top: 18px; bottom: 18px; width: 3px; border-radius: 3px;
	background: var(--cfa-course, var(--cfa-red)); opacity: .55;
}
.cfa-jphase.is-during .cfa-jsteps li::before { opacity: 1; }
.cfa-jsteps b { display: block; font-size: 16px; font-weight: 700; color: var(--cfa-ink); line-height: 1.3; }
.cfa-jsteps span { display: block; margin-top: 6px; font-size: 14px; line-height: 1.5; color: var(--cfa-muted); }
@media (max-width: 960px) {
	body.cfa .cfa-journey { grid-template-columns: 1fr; gap: 28px; }
}

/* Color page light theme (palette "studio", set in CFA_COURSES): golden-orange highlight.
   Text and lines use a bright orange; filled buttons use golden yellow with dark text. */
body.cfa.palette-studio.cfa-slug-color { --cfa-red: #f47b00; --cfa-course: #f47b00; --cfa-gold: #ffb020; }
body.cfa.palette-studio.cfa-slug-color :is(.cfa-btn.is-register .wp-block-button__link, .cfa-contact-form .fluentform .ff-btn-submit),
body.cfa-course.palette-studio.cfa-slug-color :is(.cfa-nav-cta-course, .cfa-sticky-cta) { background: var(--cfa-gold) !important; color: #1a1408 !important; }
body.cfa.palette-studio.cfa-slug-color .cfa-btn.is-register .wp-block-button__link:hover { background: #1a1408 !important; color: #fff !important; }
body.cfa.palette-studio.cfa-slug-color .cfa-jphase.is-during .cfa-jphase-head b { background: var(--cfa-gold); color: #1a1408; }
body.cfa.palette-studio.cfa-slug-color .cfa-jphase.is-during .cfa-jphase-head::after { background: var(--cfa-gold); }
body.cfa.palette-studio.cfa-slug-color .cfa-spectrum { background-image: linear-gradient(90deg, #ffb020, #ff8a00, #ff6a1a, #ffb020); }
body.cfa.palette-studio.cfa-slug-color .cfa-crumb { background: linear-gradient(90deg, #ff9500, #ff6a1a); -webkit-background-clip: text; background-clip: text; }
/* …and clean: no faded background photos, no glow orbs, plain white with a neutral grey for alternate sections */
body.cfa.palette-studio.cfa-slug-color .cfa-overlay::before,
body.cfa.palette-studio.cfa-slug-color .cfa-orbs { display: none; }
body.cfa.palette-studio.cfa-slug-color,
body.cfa.palette-studio.cfa-slug-color .cfa-course-hero { background: #fff; }
body.cfa.palette-studio.cfa-slug-color {
	--cfa-paper-2: #f5f5f3; --cfa-line: #e6e6e1;
	--cfa-bg-hero: #fff; --cfa-bg-about: #f5f5f3; --cfa-bg-mentors: #f5f5f3; --cfa-bg-quotes: #fff; --cfa-bg-faq: #f5f5f3; --cfa-bg-contact: #f5f5f3;
}
body.cfa.palette-studio.cfa-slug-color .cfa-chips.is-creds li { border-color: var(--cfa-line); background: #f5f5f3; }
body.cfa.palette-studio.cfa-slug-color :is(.cfa-tone-2, .cfa-who-ideal) { background: #f5f5f3; }
/* …and no lavender anywhere: neutral ink, greys and lines, warm amber/orange for every accent */
body.cfa.palette-studio.cfa-slug-color,
body.cfa.palette-studio.cfa-slug-color .cfa-course-hero { --cfa-ink: #161616; --cfa-muted: #5c5a55; --cfa-line: #e6e6e1; }
body.cfa.palette-studio.cfa-slug-color .is-theory { --clip: #f59e0b; }
body.cfa.palette-studio.cfa-slug-color .is-practical { --clip: #ff6a1a; }
body.cfa.palette-studio.cfa-slug-color .is-qa { --clip: #57534e; }
body.cfa.palette-studio.cfa-slug-color .cfa-tl-clip span { color: #44403c; }
body.cfa.palette-studio.cfa-slug-color .cfa-lineicon,
body.cfa.palette-studio.cfa-slug-color .cfa-who-card::after,
body.cfa.palette-studio.cfa-slug-color .cfa-knowmentor .cfa-mentor-img {
	background-image: linear-gradient(120deg, #ffb020, #ff8a00, #ffd23f, #ff6a1a, #ffb020);
}
body.cfa.palette-studio.cfa-slug-color { --cfa-edit: #1d4ed8; } /* editing's category colour: blue, not purple */
body.cfa.palette-studio.cfa-slug-color .cfa-who-card:hover { border-color: rgba(255, 138, 0, .5) !important; }
body.cfa.palette-studio.cfa-slug-color :is(.cfa-learn-card, .cfa-team-card, .cfa-roi-card, .cfa-other-card, .cfa-perk) { box-shadow: 0 6px 20px rgba(0, 0, 0, .05); }
body.cfa.palette-studio.cfa-slug-color .cfa-register-form { box-shadow: 0 16px 40px rgba(0, 0, 0, .08); }
body.cfa.palette-studio.cfa-slug-color .cfa-cut { background: #141414; border-color: #2a2a2a; box-shadow: 0 30px 60px rgba(0, 0, 0, .22); }
body.cfa.palette-studio.cfa-slug-color .cfa-footer { background: #141414; color: #f2f0ea; }
/* Hero editor mockup: amber instead of green for the active tab, lit nodes and REC.709 */
body.cfa.palette-studio.cfa-slug-color .cfa-shot-tabs span::after { background: rgba(245, 165, 36, .16); box-shadow: inset 0 0 0 1px rgba(255, 138, 0, .55); }
body.cfa.palette-studio.cfa-slug-color .cfa-shot-look .is-709 { color: #f5a524; }
body.cfa.palette-studio.cfa-slug-color .cfa-node.n1 { animation-name: cfa-node-1-amber; }
body.cfa.palette-studio.cfa-slug-color .cfa-node.n2 { animation-name: cfa-node-2-amber; }
@keyframes cfa-node-1-amber { 0%, 36% { opacity: .45; border-color: rgba(255,255,255,.15); color: #7f8a92; box-shadow: none; } 38%, 96% { opacity: 1; border-color: #f5a524; color: #e9eef2; box-shadow: 0 0 12px rgba(245,165,36,.35); } 100% { opacity: .45; } }
@keyframes cfa-node-2-amber { 0%, 44% { opacity: .45; border-color: rgba(255,255,255,.15); color: #7f8a92; box-shadow: none; } 46%, 96% { opacity: 1; border-color: #f5a524; color: #e9eef2; box-shadow: 0 0 12px rgba(245,165,36,.35); } 100% { opacity: .45; } }
@media (prefers-reduced-motion: reduce) { body.cfa.palette-studio.cfa-slug-color .cfa-node { border-color: #f5a524; } }
/* No lavender on the Color page: neutral field borders and focus, eligibility box, glow layer */
body.cfa.palette-studio.cfa-slug-color { --cfa-field-line: #cfcfc8; --cfa-field-hover: #8c8a84; }
body.cfa.palette-studio.cfa-slug-color .cfa-elig-row { border-color: var(--cfa-line); }
body.cfa.palette-studio.cfa-slug-color .cfa-orbs span { background: none !important; }
body.cfa.palette-studio.cfa-slug-color .cfa-who-no { -webkit-text-stroke-color: #e2e1dc; }
/* No green on the Color page either: filmmaking's category colour is sky blue, the mockup's
   audio track / render bar / "done" use sky blue and amber, and the WhatsApp button is dark. */
body.cfa.palette-studio.cfa-slug-color { --cfa-film: #0284c7; }
body.cfa.palette-studio.cfa-slug-color .cfa-shot-track span { background: #0ea5e9; } /* video clips: sky blue, not periwinkle */
body.cfa.palette-studio.cfa-slug-color .cfa-shot-track.is-audio span { background: #7dd3fc; }
body.cfa.palette-studio.cfa-slug-color .cfa-shot-track .is-pick { background: #ffb020; }
body.cfa.palette-studio.cfa-slug-color .cfa-shot-progress i { background: linear-gradient(90deg, #f5a524, #ea580c); }
body.cfa.palette-studio.cfa-slug-color .cfa-shot-done { color: #f5a524; }
body.cfa.palette-studio.cfa-slug-color a.cfa-wa { background: #161616; color: #fff; }
/* Your journey: each workshop day has its own colour (Day 1 gold, Day 2 orange, Day 3 sky blue) */
.cfa-jphase.is-during .cfa-jsteps li:nth-child(1) { --jday: #ffb020; }
.cfa-jphase.is-during .cfa-jsteps li:nth-child(2) { --jday: #ff6a1a; }
.cfa-jphase.is-during .cfa-jsteps li:nth-child(3) { --jday: #0ea5e9; }
body.cfa .cfa-jphase.is-during .cfa-jsteps li {
	background: color-mix(in srgb, var(--jday) 14%, var(--cfa-paper, #fff));
	border-color: color-mix(in srgb, var(--jday) 45%, transparent);
}
body.cfa .cfa-jphase.is-during .cfa-jsteps li::before { background: var(--jday); opacity: 1; }

/* Color page: countdown band under the hero (dates, live countdown, Register link) */
body.cfa .cfa-countband {
	display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 20px clamp(24px, 4vw, 56px);
	padding-block: clamp(26px, 3.5vw, 40px);
	background: color-mix(in srgb, var(--cfa-gold, #ffb020) 12%, #fff);
	border-block: 1px solid color-mix(in srgb, var(--cfa-gold, #ffb020) 35%, transparent);
}
body.cfa .cfa-countband:has(.cfa-countdown[hidden]) { display: none; } /* no dates yet (TBA) or already started */
.cfa-countband-when > * { margin: 0 !important; }
/* Dates as calendar tiles (same as the home page's next-cohort card), white on the gold band */
body.cfa .cfa-countband .cfa-label { white-space: nowrap; }
body.cfa .cfa-countband .cfa-ctiles { margin-top: 12px !important; max-width: 420px; }
/* Calendar look: a coloured header per day (Day 1 gold, Day 2 orange, Day 3 sky blue, like Your journey) on a white page */
body.cfa .cfa-countband .cfa-ctile:nth-child(1) { --cday: #ffb020; }
body.cfa .cfa-countband .cfa-ctile:nth-child(2) { --cday: #ff6a1a; }
body.cfa .cfa-countband .cfa-ctile:nth-child(3) { --cday: #0ea5e9; }
body.cfa .cfa-countband .cfa-ctile {
	overflow: hidden; padding: 0 6px 12px; background: #fff;
	border: 1px solid color-mix(in srgb, var(--cday) 45%, transparent); box-shadow: 0 6px 16px -10px color-mix(in srgb, var(--cday) 60%, transparent);
}
body.cfa .cfa-countband .cfa-ctile small {
	justify-self: stretch; text-align: center; margin: 0 -6px 4px; padding: 7px 0 6px;
	background: var(--cday); color: #fff; font-weight: 700;
}
body.cfa .cfa-countband .cfa-countdown { margin: 0 !important; }
/* Countdown: no boxes, just the numbers with a separator between them */
body.cfa .cfa-countband .cfa-countdown { gap: 0; }
body.cfa .cfa-countband .cfa-countdown-label { margin-bottom: 6px; }
body.cfa .cfa-countband .cfa-countdown-unit { position: relative; min-width: 0; padding: 0 22px; background: none; border: 0; border-radius: 0; }
body.cfa .cfa-countband .cfa-countdown-unit:first-of-type { padding-left: 0; }
body.cfa .cfa-countband .cfa-countdown-unit + .cfa-countdown-unit::before {
	content: ""; position: absolute; left: 0; top: 4px; bottom: 4px; width: 1.5px;
	background: color-mix(in srgb, var(--cfa-ink) 22%, transparent);
}
body.cfa .cfa-countband .cfa-countdown-unit b { font-size: 38px; font-weight: 700; letter-spacing: -.02em; }
body.cfa a.cfa-countband-cta {
	display: inline-block; box-sizing: border-box; padding: 14px 22px; border-radius: 10px; text-decoration: none; white-space: nowrap;
	font-weight: 700; background: var(--cfa-gold, #ffb020); color: #1a1408;
}
body.cfa a.cfa-countband-cta:hover { background: #1a1408; color: #fff; }
@media (max-width: 860px) {
	body.cfa .cfa-countband { grid-template-columns: 1fr; justify-items: stretch; }
	body.cfa .cfa-countband .cfa-ctiles { max-width: none; }
	body.cfa .cfa-countband .cfa-label { white-space: normal; }
	body.cfa .cfa-countband .cfa-countdown { width: 100%; }
	body.cfa .cfa-countband .cfa-countdown-unit { flex: 0 0 auto; }
	body.cfa a.cfa-countband-cta { width: 100%; text-align: center; }
}

/* ---------- Thank-you page (/thank-you/): after registering, pay to confirm + what to expect ---------- */
body.cfa .cfa-ty-hero { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(28px, 5vw, 72px); align-items: center; padding-top: clamp(40px, 6vw, 88px); }
.cfa-ty-main > * { margin: 0 !important; }
.cfa-ty-steps { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; font: 500 13px/1.2 var(--cfa-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--cfa-muted); }
.cfa-ty-steps li { display: inline-flex; align-items: center; gap: 8px; }
.cfa-ty-steps i { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; font-style: normal; font-size: 12px; border: 1.5px solid var(--cfa-line); color: var(--cfa-muted); }
.cfa-ty-steps .is-done i { background: #1a1a1a; border-color: #1a1a1a; color: #fff; }
.cfa-ty-steps .is-now { color: var(--cfa-red); }
.cfa-ty-steps .is-now i { background: var(--cfa-red); border-color: var(--cfa-red); color: #fff; }
body.cfa .cfa-ty-title { margin-top: 22px !important; }
body.cfa .cfa-ty-main .cfa-lead { margin-top: 18px !important; max-width: 46ch; }
.cfa-ty-mailnote { margin-top: 14px !important; font-size: 14px; color: var(--cfa-muted); }

body.cfa .cfa-ty-info { background: var(--cfa-paper-2); }
.cfa-ty-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 28px !important; }
.cfa-ty-card { padding: 22px 22px 18px; border-radius: 16px; background: #fff; border: 1px solid var(--cfa-line); }
.cfa-ty-card-no { margin: 0 !important; font: 500 12px/1 var(--cfa-mono); color: var(--cfa-red); }
.cfa-ty-card h3 { margin: 10px 0 12px !important; font-size: 19px; font-weight: 700; letter-spacing: -.01em; }
.cfa-ty-card ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 9px; }
.cfa-ty-card li { position: relative; padding-left: 16px; font-size: 14.5px; line-height: 1.5; color: var(--cfa-muted); }
.cfa-ty-card li::before { content: ""; position: absolute; left: 0; top: .6em; width: 6px; height: 6px; border-radius: 50%; background: var(--cfa-red); opacity: .7; }
.cfa-ty-card li b { color: var(--cfa-ink); }
.cfa-ty-card a { color: var(--cfa-ink); font-weight: 600; }
.cfa-ty-help { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 24px; margin-top: 28px !important; padding-top: 20px; border-top: 1px solid var(--cfa-line); }
.cfa-ty-help p { margin: 0 !important; }
.cfa-ty-help a { color: var(--cfa-ink); font-weight: 600; }
body.cfa a.cfa-ty-back { text-decoration: none; font-weight: 700; color: var(--cfa-ink); }
@media (max-width: 960px) {
	body.cfa .cfa-ty-hero { grid-template-columns: 1fr; }
	.cfa-ty-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
	.cfa-ty-grid { grid-template-columns: 1fr; }
}
/* Thank-you page: confirmation box */
.cfa-ty-paidbox { margin-top: 24px !important; padding: 20px 22px; border-radius: 16px; background: #effaf3; border: 1px solid #b7e4c7; }
.cfa-ty-paidbox p { margin: 0 !important; font-size: 15.5px; line-height: 1.55; }
.cfa-ty-paidbox p + p { margin-top: 8px !important; color: var(--cfa-muted); }
.cfa-ty-mailnote a { color: var(--cfa-ink); font-weight: 600; }

/* Color page "Next batch" band: warm, eye-catching gradient; white tiles, white countdown, dark button */
body.cfa .cfa-countband {
	position: relative; isolation: isolate; overflow: hidden; border-block: 0;
	background:
		radial-gradient(60% 120% at 12% 0%, rgba(255, 255, 255, .28), transparent 60%),
		radial-gradient(50% 120% at 95% 100%, rgba(255, 60, 90, .35), transparent 65%),
		linear-gradient(115deg, #ffb020 0%, #ff8a00 45%, #ff5a2a 100%);
}
body.cfa .cfa-countband::after { /* faint film-strip perforations along the top and bottom edges */
	content: ""; position: absolute; left: 0; right: 0; top: 8px; bottom: 8px; z-index: -1; pointer-events: none;
	background:
		repeating-linear-gradient(90deg, rgba(255, 255, 255, .22) 0 14px, transparent 14px 34px) top / 100% 6px no-repeat,
		repeating-linear-gradient(90deg, rgba(255, 255, 255, .22) 0 14px, transparent 14px 34px) bottom / 100% 6px no-repeat;
}
body.cfa .cfa-countband .cfa-label { color: #fff; }
body.cfa .cfa-countband .cfa-ctile { border-color: rgba(255, 255, 255, .7); box-shadow: 0 10px 24px -12px rgba(120, 30, 0, .45); }
body.cfa .cfa-countband .cfa-countdown-label { color: rgba(255, 255, 255, .85); }
body.cfa .cfa-countband .cfa-countdown-unit b { color: #fff; }
body.cfa .cfa-countband .cfa-countdown-unit small { color: rgba(255, 255, 255, .85); }
body.cfa .cfa-countband .cfa-countdown-unit + .cfa-countdown-unit::before { background: rgba(255, 255, 255, .45); }
body.cfa a.cfa-countband-cta { background: #1a1408; color: #fff; box-shadow: 0 10px 22px -10px rgba(60, 15, 0, .6); }
body.cfa a.cfa-countband-cta:hover { background: #fff; color: #1a1408; }
/* Band layout: label on top, then tiles · countdown · button on one line, all vertically centred */
body.cfa .cfa-countband {
	grid-template-columns: auto 1fr auto;
	grid-template-areas: "label label label" "when count cta";
	row-gap: 12px; align-items: center;
}
body.cfa .cfa-countband-label { grid-area: label; margin: 0 !important; }
body.cfa .cfa-countband-when { grid-area: when; }
body.cfa .cfa-countband .cfa-countband-when .cfa-ctiles { margin-top: 0 !important; width: 420px; }
body.cfa .cfa-countband .cfa-countdown {
	grid-area: count; justify-self: center; justify-content: center; width: fit-content; box-sizing: border-box;
	padding: 16px 26px; border-radius: 16px;
	background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .35);
}
body.cfa .cfa-countband .cfa-countdown-label { text-align: center; margin-bottom: 8px; }
body.cfa .cfa-countband .cfa-countdown-unit:first-of-type { padding-left: 22px; }
body.cfa .cfa-countband .cfa-countdown-unit:last-of-type { padding-right: 22px; }
body.cfa a.cfa-countband-cta { grid-area: cta; }
@media (max-width: 860px) {
	body.cfa .cfa-countband { grid-template-columns: 1fr; grid-template-areas: "label" "when" "count" "cta"; row-gap: 16px; }
	body.cfa .cfa-countband .cfa-countband-when .cfa-ctiles { width: auto; }
	body.cfa .cfa-countband .cfa-countdown { justify-self: stretch; width: auto; }
}
body.cfa .cfa-countband .cfa-countdown { display: grid; grid-template-columns: repeat(3, auto); }
body.cfa .cfa-countband .cfa-countdown-label { grid-column: 1 / -1; width: auto; }
/* Band colours: blue → yellow → orange */
body.cfa .cfa-countband {
	background:
		radial-gradient(55% 120% at 8% 0%, rgba(255, 255, 255, .18), transparent 60%),
		linear-gradient(110deg, #1e5fd8 0%, #3d8ef2 20%, #8fc6ff 33%, #fff0c2 42%, #ffcc33 52%, #ff9a1a 76%, #ff5a2a 100%); /* via light sky and cream, so blue and yellow don't mix to grey-green */
}
body.cfa .cfa-countband .cfa-countdown { background: rgba(40, 20, 0, .22); border-color: rgba(255, 255, 255, .4); backdrop-filter: blur(6px); }
body.cfa .cfa-countband .cfa-label { text-shadow: 0 1px 8px rgba(0, 40, 110, .35); }
/* Band colours as shapes instead of a gradient: diagonal blue / yellow / orange blocks with a few circles crossing them */
body.cfa .cfa-countband {
	background:
		radial-gradient(circle at 33% 118%, #ff8a00 0 118px, transparent 119px),
		radial-gradient(circle at 63% -32%, #3d8ef2 0 104px, transparent 105px),
		radial-gradient(circle at 4% 8%, rgba(255, 255, 255, .16) 0 70px, transparent 71px),
		radial-gradient(circle at 97% 92%, #ffc21f 0 58px, transparent 59px),
		linear-gradient(112deg, #1e5fd8 0 35%, #ffc21f 35% 68%, #ff6a1a 68% 100%);
}

/* Band colours as a shade card: 14 solid swatches stepping blue → cream → yellow → orange, fine seams between them */
body.cfa .cfa-countband {
	background:
		repeating-linear-gradient(90deg, transparent 0 calc(100% / 14 - 1.5px), rgba(255, 255, 255, .55) calc(100% / 14 - 1.5px) calc(100% / 14)),
		linear-gradient(90deg, #1d4ed8 0.0% 7.143%, #2563eb 7.143% 14.286%, #3b82f6 14.286% 21.429%, #60a5fa 21.429% 28.571%, #93c5fd 28.571% 35.714%, #cfe3f7 35.714% 42.857%, #fdf3cf 42.857% 50.0%, #fde68a 50.0% 57.143%, #fcd34d 57.143% 64.286%, #fbbf24 64.286% 71.429%, #f59e0b 71.429% 78.571%, #fb8c1a 78.571% 85.714%, #f97316 85.714% 92.857%, #ef5a22 92.857% 100.0%);
}
body.cfa .cfa-countband::after { content: none; }
body.cfa .cfa-countband .cfa-countband-label { justify-self: start; padding: 7px 12px; border-radius: 8px; background: rgba(12, 22, 48, .72); text-shadow: none; }
body.cfa .cfa-countband .cfa-countdown { background: rgba(22, 18, 10, .82); border-color: rgba(255, 255, 255, .18); backdrop-filter: none; }
body.cfa .cfa-countband .cfa-countband-label { width: fit-content; max-width: 100%; box-sizing: border-box; }

/* Band colours: blue → yellow → orange in angled zones, with inclined translucent bars carrying each colour into the next */
body.cfa .cfa-countband {
	background:
		linear-gradient(180deg, rgba(255, 255, 255, .10), transparent 60%),
		linear-gradient(112deg, transparent 35%, rgba(45, 110, 235, 0.55) 35% 38%, transparent 38%),
		linear-gradient(112deg, transparent 39.5%, rgba(45, 110, 235, 0.36) 39.5% 42.5%, transparent 42.5%),
		linear-gradient(112deg, transparent 44%, rgba(45, 110, 235, 0.2) 44% 47%, transparent 47%),
		linear-gradient(112deg, transparent 29.5%, rgba(255, 196, 40, 0.42) 29.5% 32.5%, transparent 32.5%),
		linear-gradient(112deg, transparent 25%, rgba(255, 196, 40, 0.24) 25% 28%, transparent 28%),
		linear-gradient(112deg, transparent 20.5%, rgba(255, 196, 40, 0.12) 20.5% 23.5%, transparent 23.5%),
		linear-gradient(112deg, transparent 61.5%, rgba(255, 120, 30, 0.55) 61.5% 64.5%, transparent 64.5%),
		linear-gradient(112deg, transparent 57%, rgba(255, 120, 30, 0.36) 57% 60%, transparent 60%),
		linear-gradient(112deg, transparent 52.5%, rgba(255, 120, 30, 0.2) 52.5% 55.5%, transparent 55.5%),
		linear-gradient(112deg, transparent 68%, rgba(255, 196, 40, 0.4) 68% 71%, transparent 71%),
		linear-gradient(112deg, transparent 72.5%, rgba(255, 196, 40, 0.22) 72.5% 75.5%, transparent 75.5%),
		linear-gradient(112deg, #1d4ed8 0%, #2a63e4 34%, #ffc21f 34% 66%, #ff8a1a 66%, #ef5a22 100%);
}

/* Band colours v2: clean blue → sky → cream → yellow → orange blend on the band; the inclined translucent bars
   (light glass over blue → yellow, orange/yellow bars across yellow → orange) live on a wider layer that drifts slowly */
body.cfa .cfa-countband {
	background: linear-gradient(112deg, #1d4ed8 0%, #2a63e4 20%, #5f9bf5 30%, #a9d0ff 37%, #fff0c2 45%, #ffcc33 55%, #ffa51f 66%, #ff7a1a 82%, #ef5a22 100%);
}
body.cfa .cfa-countband::before {
	content: ""; position: absolute; top: 0; bottom: 0; left: -8%; right: -8%; z-index: -1; pointer-events: none; /* bar stops below are mapped onto this wider layer so they sit over the same colour changes */
	background:
		linear-gradient(112deg, transparent 25.86%, rgba(120, 175, 250, 0.45) 25.86% 28.45%, transparent 28.45%),
		linear-gradient(112deg, transparent 30.17%, rgba(255, 255, 255, 0.22) 30.17% 32.76%, transparent 32.76%),
		linear-gradient(112deg, transparent 34.48%, rgba(255, 255, 255, 0.3) 34.48% 37.07%, transparent 37.07%),
		linear-gradient(112deg, transparent 38.79%, rgba(255, 255, 255, 0.22) 38.79% 41.38%, transparent 41.38%),
		linear-gradient(112deg, transparent 43.1%, rgba(255, 255, 255, 0.14) 43.1% 45.69%, transparent 45.69%),
		linear-gradient(112deg, transparent 59.48%, rgba(255, 120, 30, 0.5) 59.48% 62.07%, transparent 62.07%),
		linear-gradient(112deg, transparent 55.6%, rgba(255, 120, 30, 0.32) 55.6% 58.19%, transparent 58.19%),
		linear-gradient(112deg, transparent 51.72%, rgba(255, 120, 30, 0.18) 51.72% 54.31%, transparent 54.31%),
		linear-gradient(112deg, transparent 65.52%, rgba(255, 200, 50, 0.45) 65.52% 68.1%, transparent 68.1%),
		linear-gradient(112deg, transparent 69.4%, rgba(255, 200, 50, 0.26) 69.4% 71.98%, transparent 71.98%),
		linear-gradient(112deg, transparent 73.28%, rgba(255, 200, 50, 0.14) 73.28% 75.86%, transparent 75.86%);
	animation: cfa-bars-drift 16s ease-in-out infinite alternate;
}
@keyframes cfa-bars-drift {
	from { transform: translateX(-4%); }
	to { transform: translateX(4%); }
}
@media (prefers-reduced-motion: reduce) {
	body.cfa .cfa-countband::before { animation: none; transform: none; }
}
.cfa-cert-meta { font-size: .9em; color: var(--cfa-muted); }

/* First screen (hero) is never hidden waiting for scripts: it appears at once with a CSS-only rise.
   (Hiding it until reveal.js ran made phones show the main content seconds late.) */
@keyframes cfa-hero-rise { from { transform: translateY(14px); } to { transform: none; } }
.cfa-hero-main, .cfa-hero-side { animation: cfa-hero-rise .7s cubic-bezier(.2, .7, .2, 1) both; }
.cfa-hero-side { animation-delay: .08s; }
@media (prefers-reduced-motion: reduce) { .cfa-hero-main, .cfa-hero-side { animation: none; } }
.cfa-anim .cfa-hero .cfa-stats { opacity: 1; transform: none; }

/* "Reserve your seat": the early-bird timer reads as an offer, not a second workshop countdown —
   its own label with the date, orange numbers with separators, no boxes */
body.cfa .cfa-countdown.is-offer { display: grid; grid-template-columns: repeat(3, max-content); justify-content: start; gap: 0; }
body.cfa .cfa-countdown.is-offer .cfa-countdown-label { grid-column: 1 / -1; width: auto; margin-bottom: 6px; color: var(--cfa-course, var(--cfa-red)); font-weight: 600; }
body.cfa .cfa-countdown.is-offer .cfa-countdown-unit { position: relative; min-width: 0; padding: 0 16px; background: none; border: 0; border-radius: 0; }
body.cfa .cfa-countdown.is-offer .cfa-countdown-unit:first-of-type { padding-left: 0; }
body.cfa .cfa-countdown.is-offer .cfa-countdown-unit + .cfa-countdown-unit::before {
	content: ""; position: absolute; left: 0; top: 4px; bottom: 4px; width: 1.5px; background: color-mix(in srgb, var(--cfa-ink) 18%, transparent);
}
body.cfa .cfa-countdown.is-offer .cfa-countdown-unit b { font-size: 26px; color: var(--cfa-course, var(--cfa-red)); }
body.cfa .cfa-countdown.is-offer .cfa-countdown-unit { flex: none; width: auto; }

/* Icon lists ("Your fee includes", "Eligibility"): a line icon per item instead of a tick */
body.cfa .cfa-checklist.is-icons li::before { content: none; }
body.cfa .cfa-checklist.is-icons li { padding-left: 34px; }
body.cfa .cfa-checklist.is-icons .cfa-li-ico {
	position: absolute; left: 0; top: 11px; width: 22px; height: 22px;
	color: var(--cfa-course, var(--cfa-red));
}
body.cfa .cfa-checklist.is-row.is-icons li { padding-left: 30px; }
body.cfa .cfa-checklist.is-row.is-icons .cfa-li-ico { top: 3px; width: 20px; height: 20px; }

/* Color page: "Get workshop updates" sign-up (same form as the homepage hero) */
body.cfa .cfa-updates {
	display: grid; grid-template-columns: 1fr minmax(0, 520px); gap: 24px clamp(28px, 5vw, 72px); align-items: center;
	margin: clamp(8px, 2vw, 24px) var(--cfa-gutter) !important; padding: clamp(28px, 4vw, 48px) clamp(22px, 4vw, 48px);
	border-radius: 22px; background: color-mix(in srgb, var(--cfa-gold, #ffb020) 12%, #fff);
	border: 1px solid color-mix(in srgb, var(--cfa-gold, #ffb020) 35%, transparent);
}
.cfa-updates-text > * { margin: 0 !important; }
body.cfa .cfa-updates .cfa-h2 { margin-top: 8px !important; }
body.cfa .cfa-updates-lead { margin-top: 12px !important; font-size: 17px; line-height: 1.55; color: var(--cfa-muted); max-width: 46ch; }
body.cfa .cfa-updates .cfa-signup { margin: 0 !important; padding: 0; border: 0; max-width: none; }
body.cfa .cfa-updates .cfa-signup .fluentform { margin-top: 0; }
@media (max-width: 860px) {
	body.cfa .cfa-updates { grid-template-columns: 1fr; }
}
/* Line icons in the blue of the "Next batch" band */
body.cfa .cfa-checklist.is-icons .cfa-li-ico { color: #2563eb; }
/* …varied across blues and teals (one shade per item, cycling) */
body.cfa .cfa-checklist.is-icons li:nth-child(6n+1) .cfa-li-ico { color: #1d4ed8; }
body.cfa .cfa-checklist.is-icons li:nth-child(6n+2) .cfa-li-ico { color: #0891b2; }
body.cfa .cfa-checklist.is-icons li:nth-child(6n+3) .cfa-li-ico { color: #2563eb; }
body.cfa .cfa-checklist.is-icons li:nth-child(6n+4) .cfa-li-ico { color: #0d9488; }
body.cfa .cfa-checklist.is-icons li:nth-child(6n+5) .cfa-li-ico { color: #0284c7; }
body.cfa .cfa-checklist.is-icons li:nth-child(6n+6) .cfa-li-ico { color: #0f766e; }

/* Registration closed: batch full */
body.cfa .cfa-soldout { padding: 22px; border-radius: 14px; background: color-mix(in srgb, var(--cfa-gold, #ffb020) 12%, #fff); border: 1px solid color-mix(in srgb, var(--cfa-gold, #ffb020) 40%, transparent); }
body.cfa .cfa-soldout p { margin: 0 0 8px !important; font-size: 16px; line-height: 1.5; }
body.cfa a.cfa-soldout-cta { display: inline-block; margin-top: 8px; padding: 12px 18px; border-radius: 10px; background: #1a1408; color: #fff; font-weight: 700; text-decoration: none; }

/* Readable orange (WCAG AA): small text uses a deep vivid orange (4.5:1 on white and the light grey);
   big numbers (stats, price, countdown) stay brighter, which large text allows (3:1). Buttons, tiles and the
   title gradient keep their bright fills. */
body.cfa.palette-studio.cfa-slug-color { --cfa-red: #c74200; --cfa-course: #c74200; --cfa-big-orange: #f55200; }
body.cfa.palette-studio.cfa-slug-color :is(.cfa-stats strong, .cfa-offer-price, .cfa-countdown.is-offer .cfa-countdown-unit b) { color: var(--cfa-big-orange); }

/* Share buttons (share.js): icon button in each workshop card footer, pill on course pages, and the menu */
body.cfa .cfa-wcard-go.has-share { display: flex; align-items: center; gap: 10px; }
body.cfa button.cfa-share {
	appearance: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	font: 600 14px/1 var(--cfa-sans); color: var(--cfa-ink); background: transparent;
	border: 1px solid color-mix(in srgb, var(--cfa-ink) 20%, transparent); border-radius: 999px;
	transition: background .2s ease, border-color .2s ease, color .2s ease;
}
body.cfa button.cfa-share:hover, body.cfa button.cfa-share[aria-expanded="true"] { background: var(--cfa-ink); color: #fff; border-color: var(--cfa-ink); }
body.cfa button.cfa-share:focus-visible { outline: 2px solid var(--cfa-red); outline-offset: 2px; }
body.cfa button.cfa-share.is-icon { margin-left: auto; width: 34px; height: 34px; padding: 0; flex: none; }
body.cfa button.cfa-share.is-pill { margin-top: 14px; padding: 10px 16px; }
.cfa-share-menu {
	position: absolute; z-index: 90; min-width: 200px; padding: 6px; border-radius: 14px; background: #fff;
	border: 1px solid rgba(21, 21, 21, .1); box-shadow: 0 18px 40px -12px rgba(0, 0, 0, .28);
	font-family: "Space Grotesk", system-ui, sans-serif;
}
.cfa-share-menu button {
	display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; border: 0; border-radius: 9px;
	background: none; cursor: pointer; font: 500 15px/1.2 inherit; color: #161616; text-align: left;
}
.cfa-share-menu button:hover, .cfa-share-menu button:focus-visible { background: #f3f2ee; outline: none; }
.cfa-share-menu svg { flex: none; color: #2563eb; }
.cfa-share-toast {
	position: fixed; left: 50%; bottom: 28px; z-index: 95; transform: translateX(-50%); padding: 10px 16px; border-radius: 999px;
	background: #161616; color: #fff; font: 600 14px/1 "Space Grotesk", system-ui, sans-serif; transition: opacity .4s ease;
}
.cfa-share-toast.is-out { opacity: 0; }
/* A card opened from a shared link */
.cfa-wcard.is-flash { animation: cfa-card-flash 2.4s ease-out; }
@keyframes cfa-card-flash { 0%, 40% { box-shadow: 0 0 0 4px #ffb020, 0 18px 40px -16px rgba(0, 0, 0, .3); } 100% { box-shadow: 0 0 0 0 rgba(255, 176, 32, 0); } }
