@charset "UTF-8";

/* ════════════════════════════════════════════════════════
   Meisner Technique Studio — Main Stylesheet
   Architecture: CUBE CSS
   Layers: Global / Composition / Utilities / Blocks / Exceptions / Responsive
════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════════
   1. GLOBAL — reset, tokens, base
══════════════════════════════════════════════════════════ */

/* Self-hosted fonts — variable woff2 files cover full weight range per style */
@font-face {
	font-family: 'Playfair Display';
	font-style: italic;
	font-weight: 400 900;
	font-display: swap;
	src: url('../fonts/playfair-display-italic.woff2') format('woff2');
}
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 400 900;
	font-display: swap;
	src: url('../fonts/playfair-display.woff2') format('woff2');
}
@font-face {
	font-family: 'Crimson Pro';
	font-style: italic;
	font-weight: 300 600;
	font-display: swap;
	src: url('../fonts/crimson-pro-italic.woff2') format('woff2');
}
@font-face {
	font-family: 'Crimson Pro';
	font-style: normal;
	font-weight: 300 600;
	font-display: swap;
	src: url('../fonts/crimson-pro.woff2') format('woff2');
}

@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

:root {
	/* Colors */
	--red:       var(--wp--preset--color--red);
	--red-vivid: #e84040;
	--gold:      var(--wp--preset--color--gold);
	--gold-dark:  #5f491b;
	--color-accent: var(--red);
	--color-highlight: var(--gold);
	--bg-light: #fff;
	--bg-light-text: var(--black);
	--bg-light-text-muted: rgba(8, 8, 8, 0.6);
	--bg-light-text-secondary: rgba(8, 8, 8, 0.55);
	--bg-light-border: rgba(8, 8, 8, 0.1);
	--bg-light-hover: rgba(8, 8, 8, 0.03);
	--bg-light-text-ghost: rgba(8, 8, 8, 0.06);
	--bg-cream: var(--white);
	--bg-cream-text: var(--black);
	--bg-cream-text-muted: rgba(8, 8, 8, 0.6);
	--bg-cream-text-secondary: rgba(8, 8, 8, 0.55);
	--bg-cream-border: rgba(8, 8, 8, 0.1);
	--bg-cream-hover: rgba(8, 8, 8, 0.035);
	--bg-cream-text-ghost: rgba(8, 8, 8, 0.06);
	--bg-sand: #ede5d8;
	--bg-sand-text: var(--black);
	--bg-sand-text-muted: rgba(8, 8, 8, 0.6);
	--bg-sand-text-secondary: rgba(8, 8, 8, 0.55);
	--bg-sand-border: rgba(8, 8, 8, 0.12);
	--bg-sand-hover: rgba(8, 8, 8, 0.04);
	--bg-sand-text-ghost: rgba(8, 8, 8, 0.07);
	--border-ink: rgba(8, 8, 8, 0.65);
	--red-dim: rgba(190, 10, 10, 0.12);
	--white: var(--wp--preset--color--cream); /* #f5f0eb - maps to Cream preset, not White */
	--color-text-dim: rgba(245, 240, 235, 0.58);
	--color-text-soft: rgba(245, 240, 235, 0.3);
	--color-text-mid: rgba(245, 240, 235, 0.2);
	--color-text-ghost: rgba(245, 240, 235, 0.05);
	--color-text-faint: rgba(245, 240, 235, 0.08);
	--black: var(--wp--preset--color--black);
	--dark:  var(--wp--preset--color--dark);
	--dark2: #141414;
	--dark3: #1a1a1a;
	--color-text: var(--white);
	--color-bg: var(--black);
	--color-surface-1: var(--dark);
	--color-surface-2: var(--dark2);
	--color-surface-3: var(--dark3);
	--border: rgba(245, 240, 235, 0.08);
	--radius: 4px;
	--theme-bg: var(--color-bg);
	--theme-surface: var(--color-surface-1);
	--theme-surface-2: var(--color-surface-2);
	--theme-card-bg: var(--color-surface-1);
	--theme-callout-bg: var(--color-surface-1);
	--theme-text: var(--color-text);
	--theme-muted: var(--color-text-dim);
	--theme-secondary: var(--color-text-soft);
	--theme-border: var(--border);
	--theme-hover: var(--color-text-ghost);
	--theme-ghost: var(--color-text-ghost);
	--theme-accent: var(--color-accent);
	--theme-accent-contrast: var(--color-text);

	/* Layout */
	--max-w: 87.5rem; /* 1400px — wide/container max */
	--content-w: 61.25rem; /* 980px  — matches theme.json contentSize */
	--section-px: 1.25rem;
	--section-py: var(--sp-8);

	/* Typography */
	--playfair: var(--wp--preset--font-family--heading);
	--crimson:  var(--wp--preset--font-family--body);
	--sans:
		-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial,
		sans-serif;
	--font-heading: var(--playfair);
	--font-body: var(--crimson);

	/* Type scale — aliased from WP preset vars (values in theme.json) */
	--text-2xs:     var(--wp--preset--font-size--2-xs);
	--text-xs:      var(--wp--preset--font-size--xs);
	--text-sm:      var(--wp--preset--font-size--sm);
	--text-base:    var(--wp--preset--font-size--base);
	--text-md:      var(--wp--preset--font-size--md);
	--text-lg:      var(--wp--preset--font-size--lg);
	--text-xl:      var(--wp--preset--font-size--xl);
	--text-2xl:     var(--wp--preset--font-size--2-xl);
	--text-3xl:     var(--wp--preset--font-size--3-xl);
	--text-display: var(--wp--preset--font-size--display);

	/* Vertical rhythm — base line-height × font size */
	--rhythm: 1.5rem; /* 24px baseline unit             */
	--lh-tight: 1; /* display headings               */
	--lh-snug: 1.15; /* subheadings                    */
	--lh-base: 1.4; /* body                           */
	--lh-relaxed: 1.55; /* reading copy (Crimson)         */
	--lh-loose: 1.65; /* lead text                      */

	/* Spacing scale — compact tokens stay fixed, macro rhythm is fluid */
	--sp-1: 0.25rem; /*  4px  — 1/6 rhythm  */
	--sp-2: 0.5rem; /*  8px  — 1/3 rhythm  */
	--sp-3: 0.75rem; /* 12px  — 1/2 rhythm  */
	--sp-4: 1rem; /* 16px  — 2/3 rhythm  */
	--sp-5: 1.5rem; /* 24px  — 1× rhythm   */
	--sp-6: 2.25rem; /* 36px  — 1.5× rhythm */
	--sp-7: clamp(2.375rem, 2.184rem + 0.848vw, 2.875rem); /* 38px → 46px */
	--sp-8: clamp(2.5rem, 2.309rem + 0.848vw, 3rem); /* 40px → 48px */
	--sp-10: clamp(3rem, 2.427rem + 2.545vw, 4.5rem); /* 48px → 72px */
	--sp-11: clamp(3.5rem, 2.832rem + 2.97vw, 5.25rem); /* 56px → 84px */
	--sp-12: clamp(4rem, 3.236rem + 3.394vw, 6rem); /* 64px → 96px */
	--sp-16: clamp(5rem, 4.045rem + 4.242vw, 7.5rem); /* 80px → 120px */
	--sp-20: clamp(6rem, 4.855rem + 5.091vw, 9rem); /* 96px → 144px */
}

body {
	background: var(--color-bg);
	font-family: var(--font-body);
	color: var(--color-text);
	font-size: var(--text-base);
	font-weight: 300;
	line-height: var(--lh-relaxed);
}

a {
	color: var(--color-highlight);
	text-underline-offset: 0.2em;
}
a:hover {
	opacity: 0.8;
}

p + p {
	margin-top: 1.4em;
}

h1,
h2,
h3,
h4,
h5,
h6,
.wp-block-heading {
	font-family: var(--font-heading);
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-snug);
	margin-bottom: 0.5em;
}

h1,
h2,
h3 {
	text-wrap: balance;
}

img {
	border-radius: var(--radius);
}

/* ══════════════════════════════════════════════════════════
   2. COMPOSITION — layout primitives
══════════════════════════════════════════════════════════ */

.container {
	width: 100%;
	max-width: var(--max-w);
	margin-inline: auto;
	padding-inline: var(--section-px);
}

/* Constrained to content width (theme.json contentSize).
   Carries no padding — the section or .container above it owns padding-inline. */
.content-wrap {
	max-width: var(--content-w);
	margin-inline: auto;
}

/* Grid */
.grid,
.grid-2,
.grid-3,
.grid-4 {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--grid-gap, var(--sp-6));
}

/* Flex */
.flex {
	display: flex;
}
.flex-col {
	flex-direction: column;
}
.flex-row {
	flex-direction: row;
}
.items-center {
	align-items: center;
}
.items-start {
	align-items: flex-start;
}
.items-end {
	align-items: flex-end;
}
.justify-center {
	justify-content: center;
}
.justify-between {
	justify-content: space-between;
}
.justify-end {
	justify-content: flex-end;
}
.flex-wrap {
	flex-wrap: wrap;
}
.gap-2 {
	gap: var(--sp-2);
}
.gap-4 {
	gap: var(--sp-4);
}
.gap-6 {
	gap: var(--sp-6);
}
.gap-8 {
	gap: var(--sp-8);
}
.gap-10 {
	gap: var(--sp-10);
}

/* Text alignment */
.text-center {
	text-align: center;
}
.text-left {
	text-align: left;
}
.text-right {
	text-align: right;
}

/* ══════════════════════════════════════════════════════════
   3. UTILITIES — single-purpose helpers
══════════════════════════════════════════════════════════ */
.cluster {
	display: flex;
	flex-wrap: wrap;
	gap: var(--cluster-gap, var(--sp-6));
}

.cluster > * {
	flex: 1 1 var(--cluster-min, 10rem);
}
.section-py {
	padding-block: var(--section-py);
}
.px-0 {
	padding-inline: 0;
}
.px-1 {
	padding-inline: var(--sp-1);
}
.px-2 {
	padding-inline: var(--sp-2);
}
.px-3 {
	padding-inline: var(--sp-3);
}
.px-4 {
	padding-inline: var(--sp-4);
}
.px-5 {
	padding-inline: var(--sp-5);
}
.px-6 {
	padding-inline: var(--sp-6);
}
.px-7 {
	padding-inline: var(--sp-7);
}
.px-8 {
	padding-inline: var(--sp-8);
}
.px-10 {
	padding-inline: var(--sp-10);
}
.px-11 {
	padding-inline: var(--sp-11);
}
.px-12 {
	padding-inline: var(--sp-12);
}
.px-16 {
	padding-inline: var(--sp-16);
}
.px-20 {
	padding-inline: var(--sp-20);
}

.py-0 {
	padding-block: 0;
}
.py-1 {
	padding-block: var(--sp-1);
}
.py-2 {
	padding-block: var(--sp-2);
}
.py-3 {
	padding-block: var(--sp-3);
}
.py-4 {
	padding-block: var(--sp-4);
}
.py-5 {
	padding-block: var(--sp-5);
}
.py-6 {
	padding-block: var(--sp-6);
}
.py-7 {
	padding-block: var(--sp-7);
}
.py-8 {
	padding-block: var(--sp-8);
}
.py-10 {
	padding-block: var(--sp-10);
}
.py-11 {
	padding-block: var(--sp-11);
}
.py-12 {
	padding-block: var(--sp-12);
}
.py-16 {
	padding-block: var(--sp-16);
}
.py-20 {
	padding-block: var(--sp-20);
}

.pt-sm {
	padding-top: var(--sp-2);
}
.pt-md {
	padding-top: var(--sp-5);
}
.pt-lg {
	padding-top: var(--sp-6);
}
.pt-xl {
	padding-top: var(--sp-10);
}
.pt-2xl {
	padding-top: var(--sp-12);
}

.pb-sm {
	padding-bottom: var(--sp-2);
}
.pb-md {
	padding-bottom: var(--sp-5);
}
.pb-lg {
	padding-bottom: var(--sp-6);
}
.pb-xl {
	padding-bottom: var(--sp-10);
}
.pb-2xl {
	padding-bottom: var(--sp-12);
}

.mt-sm {
	margin-top: var(--sp-2);
}
.mt-md {
	margin-top: var(--sp-5);
}
.mt-lg {
	margin-top: var(--sp-6);
}
.mt-xl {
	margin-top: var(--sp-10);
}
.mt-2xl {
	margin-top: var(--sp-12);
}

.mb-sm {
	margin-bottom: var(--sp-2);
}
.mb-md {
	margin-bottom: var(--sp-5);
}
.mb-lg {
	margin-bottom: var(--sp-6);
}
.mb-xl {
	margin-bottom: var(--sp-10);
}
.mb-2xl {
	margin-bottom: var(--sp-12);
}

.my-sm {
	margin-block: var(--sp-2);
}
.my-md {
	margin-block: var(--sp-5);
}
.my-lg {
	margin-block: var(--sp-6);
}
.my-xl {
	margin-block: var(--sp-10);
}
.my-2xl {
	margin-block: var(--sp-12);
}

.theme-dark,
.is-style-theme-dark {
	--theme-bg: var(--color-bg);
	--theme-surface: var(--color-surface-1);
	--theme-surface-2: var(--color-surface-2);
	--theme-card-bg: var(--color-surface-1);
	--theme-callout-bg: var(--color-surface-1);
	--theme-text: var(--color-text);
	--theme-muted: var(--color-text-dim);
	--theme-secondary: var(--color-text-soft);
	--theme-border: var(--border);
	--theme-hover: var(--color-text-ghost);
	--theme-ghost: var(--color-text-ghost);
	--theme-accent: var(--wp--preset--color--red-vivid, #e84040);
	--theme-accent-contrast: var(--color-text);
	background: var(--color-bg);
	color: var(--theme-text);
}
.theme-surface,
.is-style-theme-surface {
	--theme-bg: var(--color-surface-1);
	--theme-surface: var(--color-surface-2);
	--theme-surface-2: var(--color-surface-3);
	--theme-card-bg: var(--color-surface-2);
	--theme-callout-bg: var(--color-surface-2);
	--theme-text: var(--color-text);
	--theme-muted: var(--color-text-dim);
	--theme-secondary: var(--color-text-soft);
	--theme-border: var(--border);
	--theme-hover: var(--color-text-ghost);
	--theme-ghost: var(--color-text-ghost);
	--theme-accent: var(--color-accent);
	--theme-accent-contrast: var(--color-text);
	background: var(--theme-bg);
	color: var(--theme-text);
}
.theme-dark3,
.is-style-theme-dark3 {
	--theme-bg: var(--color-surface-3);
	--theme-surface: var(--color-surface-2);
	--theme-surface-2: var(--color-surface-1);
	--theme-card-bg: var(--color-surface-2);
	--theme-callout-bg: var(--color-surface-2);
	--theme-text: var(--color-text);
	--theme-muted: var(--color-text-dim);
	--theme-secondary: var(--color-text-soft);
	--theme-border: var(--border);
	--theme-hover: var(--color-text-ghost);
	--theme-ghost: var(--color-text-ghost);
	--theme-accent: var(--wp--preset--color--red-vivid, #e84040);
	--theme-accent-contrast: var(--color-text);
	background: var(--theme-bg);
	color: var(--theme-text);
}

/* Gutenberg dark-background blocks that don't use a block style */
.has-dark-background-color.has-background {
	--theme-accent: var(--wp--preset--color--red-vivid, #e84040);
}

.border-top {
	border-top: 1px solid var(--theme-border);
}

.section-subhead {
	font-family: var(--font-body);
	font-size: var(--text-md);
	font-weight: 300;
	font-style: italic;
	color: var(--theme-muted);
	line-height: var(--lh-relaxed);
	max-width: 680px;
	margin-top: var(--sp-3);
	margin-bottom: 44px;
}

.section-heading {
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	font-weight: 700;
	line-height: var(--lh-tight);
	color: var(--theme-text);
}
.section-heading em {
	font-style: italic;
	color: var(--theme-accent);
}

.theme-light,
.is-style-theme-light {
	--theme-bg: var(--bg-light);
	--theme-surface: var(--white);
	--theme-surface-2: var(--bg-light-hover);
	--theme-card-bg: var(--white);
	--theme-callout-bg: var(--bg-light-hover);
	--theme-text: var(--bg-light-text);
	--theme-muted: var(--bg-light-text-muted);
	--theme-secondary: var(--bg-light-text-secondary);
	--theme-border: var(--bg-light-border);
	--theme-hover: var(--bg-light-hover);
	--theme-ghost: var(--bg-light-text-ghost);
	--theme-accent: var(--color-accent);
	--theme-accent-contrast: var(--white);
}

.theme-cream,
.is-style-theme-cream {
	--theme-bg: var(--bg-cream);
	--theme-surface: #fff;
	--theme-surface-2: rgba(8, 8, 8, 0.03);
	--theme-card-bg: #fff;
	--theme-callout-bg: var(--theme-surface);
	--theme-text: var(--bg-cream-text);
	--theme-muted: var(--bg-cream-text-muted);
	--theme-secondary: var(--bg-cream-text-secondary);
	--theme-border: var(--bg-cream-border);
	--theme-hover: var(--bg-cream-hover);
	--theme-ghost: var(--bg-cream-text-ghost);
	--theme-accent: var(--color-accent);
	--theme-accent-contrast: var(--white);
}

.theme-sand,
.is-style-theme-sand {
	--theme-bg: var(--bg-sand);
	--theme-surface: #f2eae0;
	--theme-surface-2: #ede8de;
	--theme-card-bg: #fff;
	--theme-callout-bg: var(--theme-surface);
	--theme-text: var(--bg-sand-text);
	--theme-muted: var(--bg-sand-text-muted);
	--theme-secondary: var(--bg-sand-text-secondary);
	--theme-border: var(--bg-sand-border);
	--theme-hover: var(--bg-sand-hover);
	--theme-ghost: var(--bg-sand-text-ghost);
	--theme-accent: var(--color-accent);
	--theme-accent-contrast: var(--white);
}
:where(
	.theme-context,
	[class*='is-style-theme-'],
	[class~='theme-dark'],
	[class~='theme-surface'],
	[class~='theme-dark3'],
	[class~='theme-light'],
	[class~='theme-cream'],
	[class~='theme-sand']
) {
	--color-text: var(--theme-text);
	background: var(--theme-bg);
	color: var(--theme-text);
}

:where(
		.theme-context,
		[class*='is-style-theme-'],
		[class~='theme-dark'],
		[class~='theme-surface'],
		[class~='theme-dark3'],
		[class~='theme-light'],
		[class~='theme-cream'],
		[class~='theme-sand']
	)
	.btn-ghost {
	color: var(--theme-secondary);
}
:where(
		.theme-context,
		[class*='is-style-theme-'],
		[class~='theme-dark'],
		[class~='theme-surface'],
		[class~='theme-dark3'],
		[class~='theme-light'],
		[class~='theme-cream'],
		[class~='theme-sand']
	)
	.btn-ghost:hover {
	color: var(--theme-text);
}

:where(
		[class*='is-style-theme-light'],
		[class*='is-style-theme-cream'],
		[class*='is-style-theme-sand'],
		[class~='theme-light'],
		[class~='theme-cream'],
		[class~='theme-sand']
	)
	:where(p, li, .section-eyebrow, .wp-element-caption) {
	color: var(--theme-muted);
}

/* theme.json's default caption color (--color-text-dim) is tuned for dark
   surfaces and reads at ~1:1 contrast on light theme contexts */
:where(
		[class*='is-style-theme-light'],
		[class*='is-style-theme-cream'],
		[class*='is-style-theme-sand'],
		[class~='theme-light'],
		[class~='theme-cream'],
		[class~='theme-sand']
	)
	.has-gold-color {
	color: var(--gold-dark);
}

:where(
		.theme-context,
		[class*='is-style-theme-'],
		[class~='theme-dark'],
		[class~='theme-surface'],
		[class~='theme-dark3'],
		[class~='theme-light'],
		[class~='theme-cream'],
		[class~='theme-sand']
	)
	:where(
		.section-heading,
		.program-band-name,
		.cp-hero-h1,
		.cp-roman-h2,
		.cp-outcome,
		.cp-quote,
		.cp-card-h3,
		.cp-card-meta
	) {
	color: var(--theme-text);
}

:where(
		.theme-context,
		[class*='is-style-theme-'],
		[class~='theme-dark'],
		[class~='theme-surface'],
		[class~='theme-dark3'],
		[class~='theme-light'],
		[class~='theme-cream'],
		[class~='theme-sand']
	)
	:where(
		.section-subhead,
		.program-band-desc,
		.cp-hero-lede,
		.cp-roman-lede,
		.cp-quote-cap,
		.cp-card-foot
	) {
	color: var(--theme-muted);
}

:where(
		.theme-context,
		[class*='is-style-theme-'],
		[class~='theme-dark'],
		[class~='theme-surface'],
		[class~='theme-dark3'],
		[class~='theme-light'],
		[class~='theme-cream'],
		[class~='theme-sand']
	)
	:where(
		.section-heading em,
		.accent,
		.cp-hero-h1 .accent,
		.cp-card-eyebrow,
		.program-band-arrow
	) {
	color: var(--theme-accent);
}

.no-para-gap p + p {
	margin-top: 0;
}

/* ══════════════════════════════════════════════════════════
   4. BLOCKS — components
══════════════════════════════════════════════════════════ */

/* ── Shared elements ── */
h1 em,
h2 em,
h3 em,
h4 em,
.wp-block-heading em {
	color: var(--theme-accent);
	font-style: inherit;
}

mark.text-accent {
	background: none;
	color: var(--theme-accent);
}

.section-eyebrow {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 400;
	font-style: italic;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--theme-text);
	margin-bottom: 20px;
	display: flex;
	align-items: center;
	gap: 14px;
}
.section-eyebrow::before,
.section-eyebrow::after {
	content: '';
	display: block;
	width: 28px;
	height: 1px;
	background: var(--theme-accent);
	flex-shrink: 0;
}

/* Base Gutenberg button — renders crimson by default, no class needed */
.wp-block-button .wp-block-button__link {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	font-weight: 400;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--theme-accent-contrast);
	background: var(--theme-accent);
	border-radius: var(--radius);
	padding: 15px 36px;
	display: inline-block;
	border: none;
	cursor: pointer;
	transition: opacity 0.15s;
}
.wp-block-button .wp-block-button__link:hover {
	opacity: 0.85;
	color: var(--theme-accent-contrast);
}

.btn-primary {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--theme-accent-contrast);
	background: var(--theme-accent);
	border: none;
	border-radius: var(--radius);
	padding: 15px 36px;
	cursor: pointer;
	transition: opacity 0.2s;
	text-decoration: none;
	display: inline-block;
}
.btn-primary:hover {
	opacity: 0.85;
}
.wp-block-button.btn-primary .wp-block-button__link {
	color: inherit;
	background: transparent;
	padding: 0;
	border-radius: 0;
}

.btn-ghost {
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-weight: 300;
	font-style: italic;
	color: var(--theme-muted);
	background: none;
	border: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	white-space: nowrap;
	transition: color 0.2s;
	text-decoration: none;
}
.btn-ghost::after {
	content: '→';
	flex: 0 0 auto;
	font-style: normal;
	transition: transform 0.25s cubic-bezier(0.25, 1, 0.5, 1);
}
.btn-ghost:hover {
	color: var(--theme-text);
}
.btn-ghost:hover::after {
	transform: translateX(3px);
}
@media (prefers-reduced-motion: reduce) {
	.btn-ghost:hover::after {
		transform: none;
	}
}
.wp-block-button.btn-ghost .wp-block-button__link {
	color: inherit;
	background: transparent;
	padding: 0;
}

/* ── Nav ── */
.site-header {
	background: var(--color-surface-1);
	border-bottom: 1px solid var(--border);
	padding: 0 var(--section-px);
}
.site-header nav {
	display: flex;
	align-items: center;
	height: 72px;
	position: relative;
}
.logo {
	height: 40px;
	width: auto;
}
.nav-links {
	display: none;
	align-items: center;
	gap: 32px;
	margin-left: auto;
	list-style: none;
}
.nav-links.open {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	position: absolute;
	top: 72px;
	left: 0;
	right: 0;
	background: var(--color-surface-1);
	border-bottom: 1px solid var(--border);
	padding: 20px var(--section-px) 28px;
	gap: 20px;
	z-index: 100;
}
.nav-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-left: auto;
	background: none;
	border: none;
	cursor: pointer;
	color: var(--color-text-dim);
	padding: 8px;
	min-width: 44px;
	min-height: 44px;
	transition: color 0.2s;
}
.nav-toggle:hover {
	color: var(--color-text);
}
.nav-toggle-icon {
	display: flex;
	flex-direction: column;
	gap: 5px;
	width: 22px;
}
.nav-toggle-icon span {
	display: block;
	height: 1.5px;
	background: currentColor;
	transition:
		transform 0.2s,
		opacity 0.2s;
}
.nav-toggle.open .nav-toggle-icon span:nth-child(1) {
	transform: translateY(6.5px) rotate(45deg);
}
.nav-toggle.open .nav-toggle-icon span:nth-child(2) {
	opacity: 0;
}
.nav-toggle.open .nav-toggle-icon span:nth-child(3) {
	transform: translateY(-6.5px) rotate(-45deg);
}
.nav-links a {
	font-family: var(--font-body);
	font-size: 1.125rem;
	font-weight: 300;
	letter-spacing: 0.03em;
	color: var(--color-text-dim);
	text-decoration: none;
	transition: color 0.2s;
}
.nav-links a:hover {
	color: var(--color-text);
}
.nav-links li.nav-cta > a {
	font-size: var(--text-xs);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	border: 1px solid var(--color-accent);
	border-radius: var(--radius);
	padding: 9px 22px;
	color: var(--color-text);
	transition: background 0.2s;
}
.nav-links li.nav-cta > a:hover {
	background: var(--red-dim);
}

/* ── Nav dropdown ── */
.nav-links li.menu-item-has-children {
	position: relative;
}
.nav-links .sub-menu {
	display: none;
	flex-direction: column;
	gap: var(--sp-1);
	list-style: none;
	padding: 0 0 0 var(--sp-4);
	margin: var(--sp-2) 0 0;
}
.nav-links li.menu-item-has-children.open > .sub-menu {
	display: flex;
}
.sub-menu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: none;
	cursor: pointer;
	color: var(--color-text-dim);
	padding: 4px 6px;
	transition: color 0.2s, transform 0.2s;
}
.sub-menu-toggle:hover {
	color: var(--color-text);
}
.menu-item-has-children.open .sub-menu-toggle {
	transform: rotate(180deg);
}

/* ── Hero ── */
.hero {
	position: relative;
	overflow: hidden;
	background: var(--color-bg);
	min-height: 480px;
	height: auto;
	display: flex;
	flex-direction: column;
}
.hero-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: 68% center;
	opacity: 0;
	transition: opacity 1.8s ease;
}
.hero-bg.active {
	opacity: 0.72;
}
.hero-overlay {
	position: absolute;
	inset: 0;
	background: rgba(8, 8, 8, 0.65);
}
.hero-content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: start;
	text-align: left;
	flex: 1;
	justify-content: center;
	max-width: 100rem;
	padding-block: var(--sp-8) var(--sp-6);
}
.hero-display {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-weight: 700;
	line-height: var(--lh-tight);
	color: var(--color-text);
	max-width: 700px;
	/* padding-bottom gives descenders (g/y/p/q) room inside the element's
	   own box before the clip-path wipe clips to it; margin-bottom is
	   reduced by the same amount so the gap to .hero-subhead is unchanged. */
	padding-bottom: 0.25em;
	margin-bottom: calc(22px - 0.25em);
	letter-spacing: -0.02em;
}
.hero-display em {
	font-style: italic;
	color: var(--red-vivid);
}
.hero-subhead {
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-weight: 300;
	font-style: italic;
	line-height: var(--lh-relaxed);
	color: var(--color-text);
	max-width: 680px;
	margin-bottom: 32px;
}
.hero-actions {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 16px;
	width: 100%;
	max-width: 280px;
}

/* Homepage hero entrance: overlay lifts from black toward its resting
   density while the claim reveals underneath (lights coming up on a
   stage), the headline wipes open left-to-right via clip-path (the one
   bespoke treatment, reserved for this single line), everything else
   keeps a simpler fade+rise. Pure CSS on purpose - a GSAP timeline drove
   this originally (see assets/js/motion.js's "Hero" comment for the full
   history) but being a footer script it could only start animating after
   the real, visible-by-default hero had already painted (a flash-then-
   vanish), and its rAF ticker turned out to get stuck mid-reveal in
   practice besides. @keyframes with fill-mode: both apply from the very
   first paint - no script, no flash, no stuck-mid-reveal failure mode.
   The overlay keyframe animates background-color itself (not opacity) so
   it lands on exactly the authored rgba(8,8,8,0.65) - a reduced-motion
   visitor, who skips this animation entirely via the media query below,
   sees that same resting value from the first frame. */
@keyframes hero-rise {
	from {
		opacity: 0;
		transform: translateY(16px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
@keyframes hero-rule-draw {
	from {
		transform: scaleX(0);
	}
	to {
		transform: scaleX(1);
	}
}
@keyframes hero-clip-wipe {
	from {
		clip-path: inset(0% 100% 0% 0%);
	}
	to {
		clip-path: inset(0% 0% 0% 0%);
	}
}
@keyframes hero-overlay-lift {
	from {
		background-color: rgba(8, 8, 8, 0.95);
	}
	to {
		background-color: rgba(8, 8, 8, 0.65);
	}
}
@media (prefers-reduced-motion: no-preference) {
	.hero-overlay {
		animation: hero-overlay-lift 1.8s cubic-bezier(0.16, 1, 0.3, 1) both;
	}
	.hero-content .section-eyebrow {
		animation: hero-rise 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.2s both;
	}
	.hero-content .section-eyebrow::before,
	.hero-content .section-eyebrow::after {
		transform-origin: center;
		animation: hero-rule-draw 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.3s both;
	}
	.hero-display {
		animation: hero-clip-wipe 1.1s cubic-bezier(0.16, 1, 0.3, 1) 0.45s both;
	}
	.hero-subhead {
		animation: hero-rise 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.9s both;
	}
	.hero-actions {
		animation: hero-rise 0.7s cubic-bezier(0.16, 1, 0.3, 1) 1.05s both;
	}
}

/* ── Art of Living ── */
.art-living {
	padding-block: var(--sp-10);
	overflow: hidden;
}
.art-living-quote {
	margin: var(--sp-6) 0 0;
	padding-left: var(--sp-5);
	border-left: 2px solid var(--theme-accent);
}
.art-living-quote blockquote {
	margin: 0;
	max-width: 36rem;
	font-family: var(--font-heading);
	font-size: var(--text-md);
	font-style: italic;
	font-weight: 600;
	line-height: 1.35;
	color: var(--theme-text);
}
.art-living-quote cite {
	margin-top: var(--sp-3);
	font-family: var(--sans);
	font-size: var(--text-xs);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--theme-muted);
}
.art-living-quote cite::before {
	content: '- ';
}
/* ── Stats bar ── */
.stats-bar {
	list-style: none;
	background: var(--color-bg);
	border-bottom: 1px solid var(--border);
	padding-block: 32px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
}
.stats-credits {
	flex: none;
	text-align: left;
	padding: 20px 0 0;
	border-top: 1px solid var(--border);
	border-left: none;
	width: 100%;
	font-family: var(--font-body);
	font-size: var(--text-sm);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-text-dim);
}
.credits-prefix {
	color: var(--color-text-dim);
}
.credits-sep {
	color: var(--color-text-soft);
}
.credit-name {
	color: var(--color-text);
	letter-spacing: 0.12em;
}
.stats-credits--logos {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
}
.credits-logo-viewport {
	width: 100%;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
	mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
}
.credits-logo-track {
	display: flex;
	width: max-content;
	animation: credits-ticker 32s linear infinite;
}
.credits-logo-set {
	display: flex;
	align-items: center;
	gap: 48px;
	padding-right: 48px;
	flex-shrink: 0;
}
@keyframes credits-ticker {
	to {
		transform: translateX(-50%);
	}
}
.credit-logo {
	height: 22px;
	width: auto;
	flex-shrink: 0;
	filter: grayscale(1);
	opacity: 0.55;
	transition:
		opacity 0.25s ease,
		filter 0.25s ease;
}
.credit-logo--invert {
	filter: invert(1) grayscale(1);
}
/* Pausing lets a curious visitor actually read a name; the credit
   resolving to full color rewards the hover with recognition. */
.credits-logo-track:hover {
	animation-play-state: paused;
}
.credit-logo:hover {
	opacity: 1;
}
.credit-logo:not(.credit-logo--invert):hover {
	filter: grayscale(0);
}
@media (prefers-reduced-motion: reduce) {
	.credits-logo-track {
		animation: none;
		flex-wrap: wrap;
		width: auto;
	}
	.credits-logo-set {
		flex-wrap: wrap;
		padding-right: 0;
	}
	.credits-logo-set[aria-hidden] {
		display: none;
	}
}

.classes-no-bottom-pad {
	padding-bottom: 0;
}
.classes-more {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	padding: var(--sp-5) 0 var(--sp-6);
	border-top: 1px solid var(--theme-border);
	margin-top: var(--sp-6);
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--theme-text-dim);
}
.classes-more a {
	color: var(--theme-text);
	text-decoration: underline;
	text-underline-offset: 3px;
	white-space: nowrap;
	transition: opacity 0.2s;
}
.classes-more a:hover {
	opacity: 0.7;
}

.studio-strip {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-3);
	padding-block: var(--sp-6);
}
.studio-strip-item {
	font-family: var(--font-heading);
	font-size: var(--text-md);
	font-style: italic;
	font-weight: 400;
	color: var(--color-text);
	line-height: 1.3;
	margin: 0;
}

/* ── Mission statement ── */
.mission-statement {
	padding: var(--sp-8) 0;
	background: var(--theme-bg);
}
.mission-inner {
	display: flex;
	flex-direction: column;
	gap: var(--sp-8);
}
.mission-photo {
	width: 200px;
	height: 280px;
	border-radius: var(--radius);
	overflow: hidden;
	flex-shrink: 0;
}
.mission-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 20%;
	filter: grayscale(20%);
}
.mission-content {
	display: flex;
	flex-direction: column;
	gap: var(--sp-5);
	flex: 1;
	min-width: 0;
}
.mission-text {
	font-family: var(--font-heading);
	font-size: var(--text-lg);
	font-weight: 400;
	font-style: italic;
	color: var(--theme-text);
	line-height: var(--lh-relaxed);
}
.mission-footer {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: var(--sp-6);
}
.mission-attr {
	display: flex;
	flex-direction: column;
	gap: 3px;
}
.mission-name {
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-weight: 600;
	color: var(--theme-accent);
}
.mission-role {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--theme-muted);
}

/* ── Jim Jarrett page content (page-jim-jarrett.php, the_content()) ── */
/* Gutenberg's block-supports layout CSS sets margin-left/right: auto !important
   to center constrained children; matching !important here is the documented
   way to override it (see .is-layout-constrained > :where(...) in core block
   library CSS) -- without it, capping width would float these paragraphs into
   the middle instead of letting them hug the left edge. The ACT sections'
   image+paragraph groups use the group block's own native "Content width"
   setting (layout.contentSize) instead of a custom class here, so alternating
   which side an image is aligned to needs no CSS changes at all. */
.jim-page .is-layout-constrained > p,
.jim-page .is-layout-flow > p {
	max-width: 70ch;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Un-aligned theme-light/cream/sand groups are inline accent callouts, not
   full-bleed sections -- without a width cap they stretch to fill whatever
   container they're in (here, a stark full-width white slab crammed flush
   against the next section). The aligned/full-bleed uses of these same
   classes elsewhere on the site are deliberate section backgrounds and are
   untouched by the :not() exclusions below. */
.wp-block-group.is-style-theme-light:not(.alignfull):not(.alignwide),
.wp-block-group.is-style-theme-cream:not(.alignfull):not(.alignwide),
.wp-block-group.is-style-theme-sand:not(.alignfull):not(.alignwide) {
	max-width: 40rem;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-bottom: var(--sp-10);
}

/* Hero lede statement: unboxed, but still needs a controlled measure at
   this font size (the raw container width ran ~85-90 characters per line).
   Vertical breathing room now comes from the block's own native top/bottom
   padding (sp-6), matching how the Sanford Meisner quote below it is
   spaced, rather than an external margin override. */
.jim-lede {
	max-width: 50rem;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Van Gogh epigraph: the very first thing on the page, before the hero
   even loads. A plain wp-block-quote (no theme-wide styling exists for
   that block - checked) read as an afterthought at this size and
   position; a large tone-on-tone quotation mark gives it the weight of
   an actual epigraph opening the page, and a quiet load-in keeps it from
   just snapping in ahead of the hero's own entrance below it. Scoped to
   :first-child specifically, not every .wp-block-quote on this page -
   the Sanford Meisner quote further down (.jim-lede's sibling) is a
   plainer in-flow citation and should stay exactly that. */
.jim-page > .wp-block-group:first-child .wp-block-quote {
	position: relative;
}
.jim-page > .wp-block-group:first-child .wp-block-quote::before {
	content: '\201C';
	position: absolute;
	top: -1.5rem;
	left: 50%;
	transform: translateX(-50%);
	font-family: var(--font-heading);
	font-style: italic;
	font-size: 6rem;
	line-height: 1;
	color: var(--red);
	opacity: 0.12;
	pointer-events: none;
}
@keyframes jim-quote-rise {
	from {
		opacity: 0;
		transform: translateY(14px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
/* Ends at the mark's own authored opacity (0.12, not 1) - reusing the
   plain jim-quote-rise keyframe here would override that resting value
   for as long as the animation's fill-mode holds it, leaving the mark
   fully opaque instead of a quiet watermark once it "finishes" rising. */
@keyframes jim-quote-mark-rise {
	from {
		opacity: 0;
		transform: translateX(-50%) translateY(14px);
	}
	to {
		opacity: 0.12;
		transform: translateX(-50%) translateY(0);
	}
}
@media (prefers-reduced-motion: no-preference) {
	.jim-page > .wp-block-group:first-child .wp-block-quote {
		animation: jim-quote-rise 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
	}
	.jim-page > .wp-block-group:first-child .wp-block-quote::before {
		animation: jim-quote-mark-rise 1s cubic-bezier(0.16, 1, 0.3, 1) 0.1s both;
	}
}

/* Mobile-first: un-float the ACT-section photos so paragraph text isn't
   squeezed into a narrow column beside a 300-457px fixed-width image; float
   resumes at tablet+ where there's room (mirrors .post-content's pattern
   elsewhere on the site, which doesn't reach this page's own wrapper). */
.jim-page .alignleft,
.jim-page .alignright {
	float: none !important;
	margin: 0 0 var(--sp-6);
}

/* Give the Sanford Meisner pull-quote a deliberate, contained measure so it
   reads as a featured quote rather than a full-width wall of text. */
.jim-quote-contained {
	max-width: 42rem;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* ── Jim section (page-jim-jarrett.php) ── */
.jim-section {
	background: var(--color-bg);
	border-top: 1px solid var(--border);
}
.jim-section .container {
	display: grid;
	grid-template-columns: 1fr;
	overflow: hidden;
}
.jim-image-col {
	position: relative;
	overflow: hidden;
	max-height: 300px;
}
.jim-image-col img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 20%;
	display: block;
	filter: grayscale(20%);
}
.jim-image-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		transparent 60%,
		var(--color-bg) 100%
	);
}
.jim-content-col {
	padding: 40px 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.jim-heading {
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	font-weight: 700;
	line-height: var(--lh-tight);
	color: var(--color-text);
	margin-bottom: 28px;
	letter-spacing: -0.01em;
}
.jim-heading em {
	font-style: italic;
	color: var(--color-accent);
}
.jim-deck {
	font-family: var(--font-body);
	font-size: var(--text-lg);
	font-style: italic;
	font-weight: 300;
	line-height: var(--lh-snug);
	color: var(--color-text);
	margin-bottom: 32px;
	max-width: 600px;
}
.jim-body {
	font-family: var(--font-body);
	font-size: var(--text-md);
	font-weight: 400;
	line-height: var(--lh-relaxed);
	color: var(--color-text);
}
.jim-body p {
	margin-bottom: 1.4em;
}
.jim-body p:last-child {
	margin-bottom: 0;
}
.jim-body strong {
	color: var(--color-text);
	font-weight: 600;
}
.jim-body--drop-cap p:first-child::first-letter {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: var(--text-3xl);
	font-weight: 700;
	line-height: 0.82;
	float: left;
	margin-right: 10px;
	margin-top: 6px;
	color: var(--color-accent);
}
.jim-divider {
	width: 48px;
	height: 1px;
	background: var(--border);
	margin: 32px 0;
}
.jim-credentials {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-bottom: 44px;
}
.jim-cred-item {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-weight: 300;
	color: var(--color-text-dim);
	line-height: var(--lh-base);
}
.jim-cred-dot {
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--color-accent);
	flex-shrink: 0;
	margin-top: 8px;
}

/* ── Meisner technique ── */
.technique-intro {
	align-content: start;
}
.technique-aside {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--sp-6);
}
/* ── Classes section (front-page.php) ── */
.classes-section {
	padding: 0 0 var(--sp-6);
	position: relative;
}
.classes-section-head {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--sp-8);
	margin-bottom: var(--sp-6);
}
.classes-section-eyebrow {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--color-highlight);
	margin-bottom: 14px;
}
.classes-section-accent {
	color: var(--color-accent);
}
.classes-section-lede {
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-style: italic;
	line-height: 1.35;
	color: var(--color-text-dim);
	margin: 0;
}
.classes-section-doors {
	border-top: 1px solid var(--border);
}
.classes-section-door {
	display: grid;
	grid-template-columns: 1fr;
	padding-inline: var(--sp-4);
	border-bottom: 1px solid var(--border);
}
.classes-section-door:nth-child(even) {
	background: var(--theme-surface, var(--color-surface-2));
}
.classes-section-door-left {
	padding: var(--sp-6) 0 var(--sp-3);
}
.classes-section-door-tag {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	text-transform: uppercase;
	letter-spacing: 0.15em;
	opacity: 0.4;
	margin-bottom: 0.5rem;
}
.classes-section-door-title {
	font-family: var(--font-heading);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-style: italic;
	line-height: 1.05;
	letter-spacing: -0.025em;
	color: var(--color-text);
}
.classes-section-door-sessions {
	margin-top: var(--sp-4);
	display: flex;
	flex-direction: column;
}
.classes-section-door-session {
	padding-block: var(--sp-3);
	border-top: 1px solid rgba(245, 240, 235, 0.12);
}
.classes-section-door-session:first-child {
	border-top: none;
	padding-top: 0;
}
.classes-section-door-date {
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-weight: 300;
	color: var(--color-text);
	line-height: 1.3;
}
.classes-section-door-schedule {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--color-text-dim);
	line-height: 1.7;
	margin-top: var(--sp-1);
}
.classes-section-door-status {
	display: inline-block;
	align-self: flex-start;
	font-family: var(--font-body);
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	padding: 3px 9px;
	border-radius: var(--radius);
	margin-bottom: var(--sp-2);
}
.classes-section-door-status--open {
	background: rgba(196, 151, 58, 0.12);
	color: var(--color-highlight);
}
.classes-section-door-status--forming {
	background: rgba(190, 10, 10, 0.14);
	color: var(--color-accent);
}
.classes-section-door-status--full {
	background: rgba(245, 240, 235, 0.06);
	color: var(--color-text);
	opacity: 0.5;
}
.classes-section-door-right {
	padding: 0 0 var(--sp-6);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--sp-3);
}
.classes-section-cta-btn {
	font-size: var(--text-xs);
	letter-spacing: 0.1em;
	white-space: nowrap;
}
.classes-section-details {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	text-decoration: none;
	color: var(--color-text);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	border: 1px solid rgba(245, 240, 235, 0.45);
	padding: 10px 18px;
	display: inline-block;
	transition: border-color 0.2s, background 0.2s;
	white-space: nowrap;
}
.classes-section-details:hover {
	border-color: rgba(245, 240, 235, 0.9);
	background: rgba(245, 240, 235, 0.06);
}
.classes-section-edit-link {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	opacity: 0.3;
	text-decoration: none;
	color: var(--color-text);
}
.classes-section-edit-link:hover {
	opacity: 0.7;
}

/* ── Programs ── */
.programs-intro {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-5);
	align-items: end;
	margin-bottom: var(--sp-10);
}
.programs-bands {
	display: flex;
	flex-direction: column;
	counter-reset: prog;
}
.program-band {
	counter-increment: prog;
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: var(--sp-3);
	padding: var(--sp-4);
	border-top: 1px solid var(--border);
	text-decoration: none;
	transition: background 0.15s;
}
.program-band:last-child {
	border-bottom: 1px solid var(--border);
}
.program-band:hover {
	background: rgba(245, 240, 235, 0.02);
}
.program-band::before {
	content: counter(prog, decimal-leading-zero);
	display: none;
	font-family: var(--font-heading);
	font-size: var(--text-3xl);
	font-weight: 900;
	color: var(--color-text-ghost);
	line-height: 1;
}
.program-band-name {
	font-family: var(--font-heading);
	font-size: var(--text-lg);
	font-weight: 700;
	font-style: italic;
	color: var(--color-text);
	line-height: var(--lh-snug);
	transition: color 0.2s;
}
.program-band:hover .program-band-name {
	color: var(--color-text-dim);
}
.program-band-desc {
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-weight: 300;
	color: var(--color-text-dim);
	line-height: var(--lh-relaxed);
}
.program-band-arrow {
	display: none;
	font-size: var(--text-md);
	color: var(--color-accent);
	opacity: 0;
	transform: translateX(-6px);
	transition:
		opacity 0.2s,
		transform 0.2s;
}
.program-band:hover .program-band-arrow {
	opacity: 1;
	transform: translateX(0);
}
.videos-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-5);
	margin-bottom: var(--sp-10);
}
.video-card {
	background: var(--color-surface-1);
	border-radius: var(--radius);
	border: 1px solid var(--border);
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	transition: border-color 0.2s;
}
.video-card:hover {
	border-color: rgba(190, 10, 10, 0.4);
}
.video-thumb {
	aspect-ratio: 16/9;
	background: var(--color-surface-2);
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	border-radius: var(--radius) var(--radius) 0 0;
}
.video-thumb-bg {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		135deg,
		var(--color-surface-3) 0%,
		var(--color-bg) 100%
	);
}
.video-thumb img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.7;
}
.video-play {
	position: relative;
	z-index: 1;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: 1.5px solid var(--color-text-soft);
	display: flex;
	align-items: center;
	justify-content: center;
	transition:
		border-color 0.2s,
		background 0.2s;
}
.video-card:hover .video-play {
	border-color: var(--color-accent);
	background: var(--red-dim);
}
.video-play::after {
	content: '';
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 8px 0 8px 14px;
	border-color: transparent transparent transparent rgba(245, 240, 235, 0.7);
	margin-left: 3px;
}
.video-duration {
	position: absolute;
	bottom: 10px;
	right: 10px;
	font-family: var(--font-body);
	font-size: var(--text-xs);
	color: var(--color-text-dim);
	background: rgba(8, 8, 8, 0.7);
	padding: 2px 7px;
}
.video-info {
	padding: var(--sp-5);
}
.video-topic {
	font-family: var(--font-body);
	font-size: var(--text-2xs);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-accent);
	margin-bottom: 8px;
}
.video-title {
	font-family: var(--font-heading);
	font-size: var(--text-md);
	font-weight: 700;
	color: var(--color-text);
	line-height: 1.3;
}

/* ── Free teachings ── */
.free-teachings-header {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-6);
	margin-bottom: var(--sp-8);
}
.teachings-row-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-top: 1px solid var(--border);
	padding-top: var(--sp-6);
	margin-top: var(--sp-10);
	margin-bottom: var(--sp-6);
}
.teachings-row-label {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-text-dim);
}

/* ── Testimonials ── */
.testimonials-card {
	background: none;
	padding: 0;
	border-top: 1px solid var(--border);
	padding-top: 52px;
}
.testimonials-card .section-eyebrow {
	margin-bottom: var(--sp-8);
}
.testimonials-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-8);
}
/* ── Testimonial slider ── */
.tslider-header {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	margin-bottom: var(--sp-8);
}
.tslider-header .section-eyebrow {
	margin-bottom: 0;
}
.tslider-nav {
	display: flex;
	align-items: center;
	gap: 8px;
}
.tslider-count {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--color-text-dim);
	margin-left: var(--sp-3);
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.02em;
}
.tslider-nav button {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--border);
	background: none;
	cursor: pointer;
	font-size: var(--text-base);
	color: var(--color-text-dim);
	display: flex;
	align-items: center;
	justify-content: center;
	transition:
		background 0.2s,
		border-color 0.2s,
		color 0.2s;
}
.tslider-nav button:hover {
	background: var(--color-accent);
	border-color: var(--color-accent);
	color: var(--color-text);
}
@keyframes tslide-in {
	from { opacity: 0; transform: translateY(6px); }
	to   { opacity: 1; transform: translateY(0); }
}
.testimonial-slide {
	display: none;
}
.testimonial-slide.active {
	display: block;
	animation: tslide-in 0.4s ease-out;
}
.testimonial-slide.has-image.active {
	display: grid;
	gap: var(--sp-6);
}
@media (prefers-reduced-motion: reduce) {
	.testimonial-slide.active {
		animation: none;
	}
}
.tslide-media {
	margin: 0;
	width: min(10rem, 42vw);
	/* aspect-ratio: 4 / 5; */
	overflow: hidden;
	border: 1px solid var(--border);
	background: var(--color-surface-1);
}
.tslide-media img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}
.tslide-body {
	min-width: 0;
}
.tslide-quote {
	font-family: var(--font-heading);
	font-size: var(--text-md);
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-loose);
	color: var(--color-text);
	margin-bottom: 28px;
	max-width: 68ch;
}
.tslide-attr {
	display: flex;
	flex-direction: column;
	gap: 3px;
}
.tslide-name {
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-weight: 600;
	color: var(--color-highlight);
}
.tslide-role {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--color-text-dim);
}
.rb-logo {
	width: 28px;
	height: 28px;
	flex-shrink: 0;
}
.review-statement {
	background: var(--color-surface-1);
	border-top: 1px solid var(--border);
	border-bottom: 1px solid var(--border);
	padding: var(--section-py) var(--section-px);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--sp-3);
}
.review-statement-text {
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	font-style: italic;
	color: var(--color-text);
	text-align: center;
	line-height: 1.5;
}
.review-statement-text em {
	color: var(--color-accent);
	font-style: italic;
}
.review-statement-link {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	color: var(--color-text);
	text-decoration: none;
	border-bottom: 1px solid var(--border);
	transition: border-color 0.2s;
	vertical-align: middle;
	line-height: 1;
}
.review-statement-link:hover {
	border-color: var(--color-text);
}
.review-statement-link .rb-logo {
	width: 18px;
	height: 18px;
}
.review-statement-stars {
	font-size: var(--text-base);
	color: var(--red-vivid);
	letter-spacing: 0.12em;
}
.review-statement-stars span {
	display: inline-block;
}
/* One-shot ripple across the five stars when the strip scrolls into
   view — a quiet nod, not a loop. Stars are fully visible without it. */
@keyframes star-pulse {
	0% {
		transform: scale(1);
		filter: brightness(1);
	}
	45% {
		transform: scale(1.18);
		filter: brightness(1.3);
	}
	100% {
		transform: scale(1);
		filter: brightness(1);
	}
}
@media (prefers-reduced-motion: no-preference) {
	.review-statement.in-view .review-statement-stars span {
		animation: star-pulse 0.5s cubic-bezier(0.25, 1, 0.5, 1) both;
	}
	.review-statement.in-view .review-statement-stars span:nth-child(1) {
		animation-delay: 0s;
	}
	.review-statement.in-view .review-statement-stars span:nth-child(2) {
		animation-delay: 0.07s;
	}
	.review-statement.in-view .review-statement-stars span:nth-child(3) {
		animation-delay: 0.14s;
	}
	.review-statement.in-view .review-statement-stars span:nth-child(4) {
		animation-delay: 0.21s;
	}
	.review-statement.in-view .review-statement-stars span:nth-child(5) {
		animation-delay: 0.28s;
	}
}
.review-card {
	background: var(--color-surface-2);
	border: 1px solid var(--border);
	padding: var(--sp-8) var(--sp-10);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--sp-3);
	text-decoration: none;
	min-width: 220px;
	transition: border-color 0.2s;
}
.review-card:hover {
	border-color: var(--color-text-mid);
}
.review-card .rb-logo {
	width: 32px;
	height: 32px;
	margin-bottom: var(--sp-2);
}

/* ── Instructors ── */
.instructors-section .section-eyebrow {
	color: rgba(8, 8, 8, 0.45);
	margin-bottom: 16px;
}
.instructors-section .section-eyebrow::before {
	background: var(--color-accent);
}
.instructors-heading {
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	font-weight: 700;
	color: var(--color-bg);
	line-height: var(--lh-tight);
	margin-bottom: var(--sp-8);
}
.instructors-heading em {
	font-style: italic;
	color: var(--color-accent);
}
.instructors-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--sp-5);
}
.instructor-photo-wrap {
	position: relative;
	overflow: hidden;
	border-radius: var(--radius);
	margin-bottom: 16px;
	cursor: pointer;
}
.instructor-photo {
	width: 100%;
	aspect-ratio: 3/4;
	object-fit: cover;
	object-position: center top;
	display: block;
	filter: grayscale(15%);
	transition:
		filter 0.4s ease,
		transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
}
.instructor-photo-wrap:hover .instructor-photo {
	filter: grayscale(0);
	transform: scale(1.045);
}
@media (prefers-reduced-motion: reduce) {
	.instructor-photo-wrap:hover .instructor-photo {
		transform: none;
	}
}
.instructor-photo-placeholder {
	width: 100%;
	aspect-ratio: 3/4;
	background: var(--bg-sand);
	display: flex;
	align-items: center;
	justify-content: center;
}
.instructor-photo-placeholder span {
	font-family: var(--font-heading);
	font-size: var(--text-3xl);
	font-weight: 700;
	color: var(--bg-sand-text-secondary);
	line-height: 1;
	letter-spacing: 0.04em;
}
.instructor-photo-overlay {
	position: absolute;
	inset: 0;
	background: rgba(8, 8, 8, 0.52);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity 0.22s ease;
	text-decoration: none;
}
.instructor-photo-overlay span {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--white);
	border: 1px solid rgba(255, 255, 255, 0.55);
	padding: 9px 22px;
	border-radius: 2px;
}
.instructor-photo-wrap:hover .instructor-photo-overlay {
	opacity: 1;
}
.instructor-name {
	font-family: var(--font-heading);
	/* font-size: var(--text-md); */
	font-weight: 700;
	color: var(--dark);
	margin-bottom: 4px;
	line-height: 1;
}
.instructor-role {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 300;
	color: var(--bg-light-text-muted);
	margin-bottom: 12px;
	line-height: var(--lh-base);
}

/* ── Blog ── */
.blog-header {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: var(--sp-8);
}
.blog-heading {
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	font-weight: 700;
	line-height: var(--lh-tight);
	color: var(--color-text);
}
.blog-heading em {
	font-style: italic;
	color: var(--color-accent);
}
.blog-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-3);
}
.blog-card {
	background: var(--color-surface-1);
	border-radius: var(--radius);
	border: 1px solid var(--border);
	padding: var(--sp-5);
	display: flex;
	flex-direction: column;
	gap: 14px;
	text-decoration: none;
	color: inherit;
	transition: background 0.2s;
}
.blog-card:hover {
	background: var(--color-surface-2);
}
.blog-cluster {
	font-family: var(--font-body);
	font-size: var(--text-2xs);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--color-accent);
}
.blog-title {
	font-family: var(--font-heading);
	font-size: var(--text-lg);
	font-weight: 700;
	color: var(--color-text);
	line-height: var(--lh-snug);
}
.blog-excerpt {
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-weight: 300;
	color: var(--color-text-dim);
	line-height: var(--lh-relaxed);
}
.blog-meta {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	font-weight: 300;
	color: var(--color-text-soft);
	letter-spacing: 0.04em;
	padding-top: 14px;
	border-top: 1px solid var(--border);
}

/* ── CTA section ── */
.cta-section {
	text-align: center;
}
.cta-section .section-heading {
	max-width: 820px;
	margin-inline: auto;
	/* padding-bottom gives descenders (g/y/p/q) room inside the element's
	   own box before the GSAP clip-path wipe clips to it; margin-bottom is
	   reduced by the same amount from the global h1-h6 default (0.5em) so
	   the gap to .section-subhead is unchanged. */
	padding-bottom: 0.25em;
	margin-bottom: calc(0.5em - 0.25em);
}
.cta-section .section-subhead {
	margin-inline: auto;
}
.cta-eyebrow {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 400;
	font-style: italic;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-text);
	margin-bottom: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
}
.cta-eyebrow::before,
.cta-eyebrow::after {
	content: '';
	display: block;
	width: 28px;
	height: 1px;
	background: var(--color-accent);
}
.cta-heading {
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	font-weight: 700;
	line-height: var(--lh-tight);
	color: var(--color-text);
	margin-bottom: 20px;
	letter-spacing: -0.01em;
}

.cta-actions {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 16px;
}

/* ── Pull quote ── */
.pull-quote-section {
	position: relative;
	padding: 140px var(--section-px);
	background: var(--color-bg);
	border-top: 1px solid var(--border);
	border-bottom: 1px solid var(--border);
	overflow: hidden;
	text-align: center;
}
.pull-quote-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center 30%;
	background-repeat: no-repeat;
	filter: grayscale(1) contrast(1.1);
	opacity: 0.18;
}
.pull-quote-overlay {
	position: absolute;
	inset: 0;
	background: radial-gradient(
		ellipse at center,
		rgba(8, 8, 8, 0.55) 0%,
		rgba(8, 8, 8, 0.92) 100%
	);
}
.pull-quote-inner {
	position: relative;
	z-index: 1;
	max-width: 900px;
	margin: 0 auto;
}
.pull-quote-mark {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: var(--text-display);
	line-height: 0.5;
	color: var(--color-accent);
	opacity: 0.65;
	margin-bottom: 20px;
}
.pull-quote-text {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: var(--text-xl);
	font-weight: 400;
	line-height: 1.32;
	letter-spacing: -0.012em;
	color: var(--color-text);
	margin: 0 0 56px;
}
.pull-quote-attribution {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
}
.pull-quote-rule {
	display: block;
	height: 1px;
	width: 80px;
	background: rgba(245, 240, 235, 0.5);
}
.pull-quote-attr-text {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	letter-spacing: 0.4em;
	text-transform: uppercase;
	color: var(--color-text-dim);
}

/* ── Footer ── */
footer {
	background: var(--color-surface-1);
	border-top: 1px solid var(--border);
	padding: 48px var(--section-px) 32px;
}
.wp-site-blocks footer {
	margin-inline: calc(-1 * var(--section-px));
}
.footer-top {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-8);
	margin-bottom: var(--sp-8);
	padding-bottom: 48px;
	border-bottom: 1px solid var(--border);
}
.footer-logo {
	height: 32px;
	width: auto;
	margin-bottom: 16px;
}
.footer-tagline {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 300;
	font-style: italic;
	color: var(--color-text-dim);
	line-height: var(--lh-relaxed);
	max-width: 220px;
}
.footer-col-title {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--color-text);
	margin-bottom: 16px;
}
.footer-links,
footer .menu {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.footer-links li a,
.footer-links a,
footer .menu a {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 300;
	color: var(--color-text-dim);
	text-decoration: none;
	transition: color 0.2s;
}
.footer-links li a:hover,
.footer-links a:hover,
footer .menu a:hover {
	color: var(--color-text);
}
.footer-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.footer-copy {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	font-weight: 300;
	color: rgba(245, 240, 235, 0.25);
}
.footer-brand {
	display: flex;
	flex-direction: column;
}
.footer-contact {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}
.footer-contact a.footer-copy {
	text-decoration: none;
	transition: color 0.2s;
}
.footer-contact a.footer-copy:hover {
	color: var(--color-text);
}

/* ── Content section ── */
.content-section {
}
.content-section h2 {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-weight: 700;
	color: var(--color-text);
	margin-bottom: 28px;
	line-height: var(--lh-tight);
}
.content-section h2 em {
	font-style: italic;
	color: var(--color-accent);
}
.content-section p {
	font-family: var(--font-body);
	font-size: var(--text-md);
	font-weight: 300;
	color: var(--color-text-dim);
	line-height: var(--lh-loose);
	margin-bottom: 20px;
}
.content-section p:last-child {
	margin-bottom: 0;
}

/* ── FAQ ── */
.faq-list {
	display: flex;
	flex-direction: column;
	gap: 0;
}
.faq-item {
	border-top: 1px solid var(--border);
	padding: 28px 0;
}
.faq-item:last-child {
	border-bottom: 1px solid var(--border);
}
.faq-question {
	font-family: var(--font-heading);
	font-size: var(--text-md);
	font-weight: 700;
	color: var(--color-text);
	margin-bottom: 12px;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 20px;
}
.faq-answer {
	font-family: var(--font-body);
	font-size: var(--text-md);
	font-weight: 300;
	color: var(--color-text-dim);
	line-height: var(--lh-loose);
}
details.faq-item > summary {
	list-style: none;
}
details.faq-item > summary::-webkit-details-marker {
	display: none;
}
details.faq-item > summary.faq-question {
	margin-bottom: 0;
}
details.faq-item[open] > summary.faq-question {
	margin-bottom: 12px;
}
.faq-toggle {
	flex-shrink: 0;
	font-family: var(--sans);
	font-size: var(--text-lg);
	font-weight: 300;
	color: var(--color-text-dim);
	transition: transform 0.2s;
	line-height: 1;
	margin-top: 2px;
}
details[open] > summary .faq-toggle {
	transform: rotate(45deg);
}

/* ── FAQ Page — Index ── */
.faq-index-meta {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding-bottom: var(--sp-6);
	border-bottom: 2px solid var(--color-text);
	margin-bottom: var(--sp-6);
}
.faq-index-heading {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-style: italic;
	font-weight: 400;
	color: var(--color-text);
	line-height: var(--lh-snug);
	letter-spacing: -0.02em;
}
.faq-index-hint {
	font-family: var(--sans);
	font-size: var(--text-2xs);
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--color-text-dim);
	display: none;
}
.faq-index-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-8);
}
.faq-index-chapter-header {
	display: flex;
	align-items: baseline;
	margin-bottom: var(--sp-4);
}
.faq-index-kicker {
	font-family: var(--sans);
	font-size: var(--text-2xs);
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--color-accent);
}
.faq-index-chapter-open {
	font-family: var(--sans);
	font-size: var(--text-2xs);
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--color-text-dim);
	text-decoration: none;
	white-space: nowrap;
	transition: color 0.2s;
	display: block;
	margin-top: var(--sp-3);
}
.faq-index-chapter-open:hover {
	color: var(--color-text);
}
.faq-index-chapter-title {
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	font-style: italic;
	font-weight: 400;
	color: var(--color-text);
	line-height: var(--lh-snug);
	margin-bottom: var(--sp-2);
}
.faq-index-list {
	list-style: none;
	padding: 0;
	margin: var(--sp-5) 0 0;
	border-top: 1px solid var(--border);
}
.faq-index-item a {
	display: grid;
	grid-template-columns: 2.25rem 1fr auto;
	align-items: baseline;
	column-gap: var(--sp-4);
	padding: var(--sp-3) 0;
	text-decoration: none;
	color: var(--color-text);
	border-bottom: 1px solid var(--border);
	transition: background 0.15s;
}
.faq-index-item a:hover {
	background: var(--color-text-ghost);
}
.faq-index-num {
	font-family: var(--sans);
	font-size: var(--text-2xs);
	letter-spacing: 0.2em;
	color: var(--color-accent);
}
.faq-index-q {
	font-family: var(--font-body);
	font-size: calc(.85 * var(--text-base));
	font-style: normal;
	font-weight: 300;
	line-height: var(--lh-snug);
	color: var(--color-text-dim);
}
.faq-index-arrow {
	font-family: var(--sans);
	font-size: var(--text-xs);
	color: var(--color-text-dim);
}

/* ── FAQ Page — Pull Quote ── */
.faq-pullquote {
	padding: var(--sp-7) var(--sp-7);
	background: rgba(190, 10, 10, 0.06);
	border: 1px solid rgba(190, 10, 10, 0.2);
	margin: 0;
}
.faq-pullquote-text {
	font-family: var(--font-heading);
	font-size: var(--text-lg);
	font-style: italic;
	font-weight: 400;
	color: var(--color-text);
	line-height: var(--lh-relaxed);
	margin: 0 0 var(--sp-5);
}
.faq-pullquote-cite {
	font-family: var(--sans);
	font-size: var(--text-xs);
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--color-text-dim);
	font-style: normal;
}

/* ── FAQ Page — Chapter Opener ── */
.faq-chapter {
	scroll-margin-top: var(--sp-5);
}
.faq-chapter-opener {
	display: flex;
	flex-direction: column;
	gap: var(--sp-5);
	margin-bottom: var(--sp-8);
}
.faq-chapter-num-col {
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
}
.faq-chapter-num {
	font-family: var(--font-heading);
	font-size: clamp(4.5rem, 10vw, 6.5rem);
	font-style: italic;
	font-weight: 500;
	color: var(--color-accent);
	line-height: 0.85;
	letter-spacing: -0.04em;
}
.faq-chapter-kicker {
	font-family: var(--sans);
	font-size: var(--text-xs);
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--color-text-dim);
}
.faq-chapter-body {
	padding-left: 0;
}
.faq-chapter-title {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-style: italic;
	font-weight: 400;
	color: var(--color-text);
	line-height: var(--lh-snug);
	letter-spacing: -0.025em;
	margin-bottom: 0;
}

/* ── FAQ Page — Q&A Entries ── */
.faq-qa {
	display: flex;
	flex-direction: column;
	gap: var(--sp-4);
	padding: var(--sp-7) 0;
	border-top: 1px solid var(--border);
	scroll-margin-top: var(--sp-5);
}
.faq-qa:last-child {
	border-bottom: 1px solid var(--border);
}
.faq-qa-meta {
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
}
.faq-qa-label {
	font-family: var(--sans);
	font-size: var(--text-2xs);
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--color-accent);
}
.faq-qa-ghost {
	font-family: var(--font-heading);
	font-size: clamp(3rem, 7vw, 4.5rem);
	font-style: italic;
	font-weight: 500;
	color: var(--color-text);
	opacity: 0.12;
	line-height: 0.85;
	letter-spacing: -0.04em;
}
.faq-back-top {
	position: fixed;
	bottom: var(--sp-6);
	right: var(--sp-6);
	font-family: var(--sans);
	font-size: var(--text-2xs);
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--color-text-dim);
	text-decoration: none;
	background: var(--color-surface-2);
	border: 1px solid var(--border);
	padding: 10px 16px;
	transition: color 0.2s, opacity 0.3s, transform 0.3s;
	z-index: 90;
	opacity: 0;
	transform: translateY(8px);
	pointer-events: none;
}
.faq-back-top.is-visible {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}
.faq-back-top:hover {
	color: var(--color-text);
}
.faq-qa-body {
	padding-left: 0;
}
.faq-qa-question {
	font-family: var(--font-heading);
	font-size: var(--text-lg);
	font-style: italic;
	font-weight: 400;
	color: var(--color-text);
	line-height: var(--lh-snug);
	letter-spacing: -0.01em;
	margin-bottom: var(--sp-4);
}

/* ── FAQ Page — Contact / Hours ── */
.faq-contact {
	background: var(--color-surface-1);
}
.faq-contact-inner {
	display: flex;
	flex-direction: column;
	gap: var(--sp-8);
}
.faq-contact-heading {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-style: italic;
	font-weight: 400;
	color: var(--color-text);
	line-height: var(--lh-snug);
	margin-bottom: var(--sp-4);
}
.faq-contact-heading em {
	font-style: italic;
	color: var(--color-accent);
}
.faq-contact-text {
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-weight: 300;
	color: var(--color-text-dim);
	line-height: var(--lh-loose);
	max-width: 520px;
	margin-bottom: var(--sp-6);
}
.faq-hours-card {
	border: 1px solid var(--border);
	padding: var(--sp-6);
	background: var(--color-bg);
}
.faq-hours-label {
	font-family: var(--sans);
	font-size: var(--text-xs);
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--color-accent);
	padding-bottom: var(--sp-4);
	margin-bottom: var(--sp-4);
	border-bottom: 1px solid var(--border);
}
.faq-hours-grid {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--sp-3) var(--sp-5);
	align-items: baseline;
}
.faq-hours-key {
	font-family: var(--sans);
	font-size: var(--text-xs);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--color-accent);
	opacity: 0.9;
	white-space: nowrap;
}
.faq-hours-val {
	font-family: var(--font-heading);
	font-size: var(--text-base);
	font-style: italic;
	color: var(--color-text-dim);
}

/* ── FAQ Page — Final CTA ── */
.faq-final-cta {
	text-align: center;
}
.faq-final-cta-heading {
	font-family: var(--font-heading);
	font-size: var(--text-3xl);
	font-style: italic;
	font-weight: 400;
	color: var(--color-text);
	line-height: var(--lh-tight);
	letter-spacing: -0.035em;
	max-width: 860px;
	margin: var(--sp-4) auto var(--sp-6);
}
.faq-final-cta-heading em {
	font-style: italic;
	color: var(--color-accent);
}
.faq-final-cta .section-subhead {
	margin-inline: auto;
	text-align: center;
}

/* ── FAQ Page — Related Links ── */
.faq-related-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-4);
	margin-top: var(--sp-7);
}
.faq-related-card {
	display: block;
	text-decoration: none;
	color: var(--color-text);
	padding: var(--sp-5);
	border: 1px solid var(--border);
	position: relative;
	transition: border-color 0.2s;
}
.faq-related-card:hover {
	border-color: var(--color-text-dim);
}
.faq-related-eyebrow {
	font-family: var(--sans);
	font-size: var(--text-2xs);
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--color-text-dim);
	margin-bottom: var(--sp-2);
}
.faq-related-title {
	font-family: var(--font-heading);
	font-size: var(--text-md);
	font-style: italic;
	font-weight: 400;
	color: var(--color-text);
	line-height: var(--lh-snug);
}
.faq-related-arrow {
	position: absolute;
	top: var(--sp-4);
	right: var(--sp-4);
	color: var(--color-accent);
	font-size: var(--text-base);
	font-style: normal;
}

.faq-teaser-inner {
	display: flex;
	flex-direction: column;
	gap: var(--sp-7);
}
.faq-teaser-header {
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
}
.faq-teaser-all {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 300;
	color: var(--color-text);
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, currentColor 35%, transparent);
	text-underline-offset: 3px;
	letter-spacing: 0.04em;
	transition: opacity 0.2s;
}
.faq-teaser-all:hover {
	opacity: 0.7;
}

/* ── Student Stories page (.ss-*) ── */
.ss-intro {
	padding-block: var(--sp-6);
}
.ss-intro-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-5);
}
.ss-intro-note {
	font-family: var(--font-body);
	font-size: var(--text-md);
	font-style: italic;
	color: var(--color-text-dim);
	line-height: var(--lh-relaxed);
	max-width: 44rem;
	margin: 0;
}
.ss-account-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-7);
}
.ss-account-header {
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
}
.ss-account-num {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--color-text-dim);
}
.ss-account-attr {
	display: flex;
	flex-direction: column;
	gap: var(--sp-1);
}
.ss-account-name {
	font-family: var(--font-heading);
	font-size: var(--text-md);
	font-weight: 600;
	color: var(--color-text);
	letter-spacing: 0.01em;
}
.ss-account-now {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--color-text-dim);
	font-style: italic;
}
.ss-account-body {
	display: flex;
	flex-direction: column;
	gap: var(--sp-6);
}
.ss-account-text {
	font-family: var(--font-body);
	font-size: var(--text-base);
	line-height: var(--lh-relaxed);
	color: var(--color-text);
}
.ss-account-text p {
	margin: 0 0 var(--sp-4);
}
.ss-account-text p:last-child {
	margin-bottom: 0;
}
.ss-pull {
	border-left: 2px solid var(--color-highlight);
	padding-left: var(--sp-5);
	margin: 0;
}
.ss-pull p {
	font-family: var(--font-heading);
	font-size: var(--text-md);
	font-style: italic;
	line-height: var(--lh-relaxed);
	color: var(--color-text);
	margin: 0;
}
.ss-empty {
	padding-block: var(--sp-8);
}
.ss-empty-note {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--color-text-dim);
	font-style: italic;
}
.reviews-featured {
	padding-block-start: var(--sp-6);
}
.reviews-featured-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-8);
	margin: 0;
	padding: 0;
	list-style: none;
}
.reviews-featured-card {
	border-top: 1px solid var(--theme-border);
	padding-top: var(--sp-7);
}
.reviews-featured-card:first-child {
	border-top: none;
}
.reviews-featured-card:first-child .reviews-featured-quote {
	font-size: var(--text-xl);
	line-height: var(--lh-normal);
}
.reviews-featured-card:first-child .reviews-name {
	font-size: var(--text-md);
}
.reviews-featured-card:first-child .reviews-role {
	font-size: var(--text-base);
}
.reviews-featured-card.has-image,
.reviews-featured-card:has(.reviews-featured-media) {
	display: grid;
	gap: var(--sp-6);
}
.reviews-featured-media {
	margin: 0;
	width: 100%;
	max-width: 24rem;
	overflow: hidden;
	border: 1px solid var(--theme-border);
	background: var(--theme-surface);
}
.reviews-featured-media img {
	width: 100%;
	height: auto;
	display: block;
}
.reviews-featured-quote {
	max-width: 48rem;
	margin-bottom: var(--sp-4);
	font-family: var(--font-heading);
	font-size: var(--text-lg);
	font-style: italic;
	line-height: var(--lh-loose);
	color: var(--theme-text);
}
.reviews-featured-quote p,
.review-card-quote p {
	margin: 0;
}
.reviews-featured-quote.wp-block-post-excerpt
	.wp-block-post-excerpt__excerpt::before,
.review-card-quote.wp-block-post-excerpt
	.wp-block-post-excerpt__excerpt::before,
.reviews-featured-quote.wp-block-post-content > :first-child::before,
.review-card-quote.wp-block-post-content > :first-child::before {
	content: '\201C';
}
.reviews-featured-quote.wp-block-post-excerpt
	.wp-block-post-excerpt__excerpt::after,
.review-card-quote.wp-block-post-excerpt .wp-block-post-excerpt__excerpt::after,
.reviews-featured-quote.wp-block-post-content > :last-child::after,
.review-card-quote.wp-block-post-content > :last-child::after {
	content: '\201D';
}
.reviews-featured-quote .wp-block-post-excerpt__more-text,
.review-card-quote .wp-block-post-excerpt__more-text {
	display: none;
}
.reviews-attr {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}
.reviews-name {
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-weight: 600;
	color: var(--theme-accent);
}
.reviews-role {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--theme-muted);
}
.reviews-index {
	padding-top: var(--section-py);
	padding-bottom: var(--sp-8);
}
.reviews-index-inner {
	display: grid;
	gap: var(--sp-7);
}
.reviews-index-note {
	border-top: 1px solid var(--theme-border);
	padding-top: var(--sp-5);
}
.reviews-index-note p {
	margin: 0;
	max-width: 40rem;
	font-family: var(--font-body);
	font-size: var(--text-md);
	line-height: var(--lh-loose);
	color: var(--theme-muted);
}
.reviews-index-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--sp-3) var(--sp-5);
	padding-top: var(--sp-6);
}
.reviews-list {
	padding-block: var(--section-py);
}
.reviews-grid {
	display: grid;
	grid-template-columns: 1fr;
	grid-auto-flow: row dense;
	gap: var(--sp-7);
	margin: 0;
	padding: 0;
	list-style: none;
}
.review-card {
	min-height: 100%;
	padding: var(--sp-6);
	border: 1px solid var(--theme-border);
	background: var(--theme-card-bg);
}
.review-card-quote {
	margin-bottom: var(--sp-4);
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-style: italic;
	line-height: var(--lh-relaxed);
	color: var(--theme-text);
}
.review-card .reviews-name,
.reviews-featured-card .reviews-name {
	margin: 0;
}
.review-card--featured {
	container-type: inline-size;
	background: var(--theme-card-bg);
}
.review-card--featured .review-card-quote {
	font-family: var(--font-heading);
	font-size: clamp(1.25rem, 4cqi, var(--text-xl));
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-normal);
	color: var(--theme-text);
}
.review-card--platform {
	display: flex;
	justify-content: center;
	align-items: center;
	align-self: stretch;
	padding: var(--sp-5);
	background: rgba(190, 10, 10, 0.07);
	border-color: rgba(190, 10, 10, 0.2);
}
.review-platform-link {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--sp-3);
	text-decoration: none;
	color: var(--theme-text);
	transition: opacity 0.2s;
	text-align: center;
}
.review-platform-link:hover {
	opacity: 0.7;
}
.review-platform-name {
	font-family: var(--font-body);
	font-size: var(--text-base);
	font-style: italic;
	color: var(--theme-muted);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.review-platform-stars {
	font-size: 1.25rem;
	letter-spacing: 0.1em;
	color: var(--red-vivid);
	line-height: 1;
}
.review-platform-combined {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--sp-2);
	text-align: center;
}
.review-platform-combined-text {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--theme-muted);
	letter-spacing: 0.04em;
}
.review-platform-combined-links {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	flex-wrap: wrap;
	justify-content: center;
}
.review-platform-combined-sep {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--theme-muted);
	font-style: italic;
}
.review-platform-link--inline {
	flex-direction: row;
	gap: var(--sp-2);
}
.review-platform-link--inline .rb-logo {
	width: 16px;
	height: 16px;
}
.reviews-cta-inner {
	display: grid;
	gap: var(--sp-7);
}
.reviews-cta-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-4);
	align-items: center;
}
/* ── Meisner Trained archive ── */
.mt-archive {
	overflow-x: hidden;
}

/* Hero */
.mt-hero-eyebrow {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gold);
	margin-bottom: var(--sp-5);
}
.mt-hero-h1 {
	font-family: var(--font-heading);
	font-size: var(--text-display);
	font-weight: 700;
	font-style: italic;
	line-height: var(--lh-tight);
	letter-spacing: -0.02em;
	color: var(--color-text);
	margin-bottom: var(--sp-6);
}
.mt-hero-h1 em {
	color: var(--color-accent);
}
.mt-hero-lede {
	font-family: var(--font-body);
	font-size: var(--text-md);
	font-weight: 300;
	line-height: var(--lh-loose);
	color: var(--color-text-dim);
	max-width: 52ch;
}

/* Featured episode */
.mt-featured {
	border-top: 1px solid var(--border);
	border-bottom: 1px solid var(--border);
	background: rgba(0, 0, 0, 0.3);
	padding: var(--sp-8) var(--section-px);
}
.mt-featured-inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-8);
	align-items: center;
}
.mt-featured-thumb {
	position: relative;
	aspect-ratio: 16/9;
	display: block;
	background: var(--color-surface-2);
	overflow: hidden;
	text-decoration: none;
}
.mt-featured-thumb img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.75;
	transition: opacity 0.3s;
}
.mt-featured-thumb:hover img {
	opacity: 0.9;
}
.mt-featured-thumb-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(8,8,8,0.6) 0%, transparent 60%);
}
.mt-featured-thumb .video-play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 64px;
	height: 64px;
}
.mt-featured-dur {
	position: absolute;
	bottom: 14px;
	right: 16px;
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.1em;
	color: var(--color-text);
	background: rgba(8,8,8,0.85);
	padding: 4px 10px;
}
.mt-featured-title {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-style: italic;
	font-weight: 700;
	line-height: var(--lh-snug);
	letter-spacing: -0.01em;
	color: var(--color-text);
	margin: var(--sp-4) 0 0;
}
.mt-rule {
	border: none;
	border-top: 1px solid var(--border);
	margin: var(--sp-5) 0;
}
.mt-featured-desc {
	font-size: var(--text-base);
	font-weight: 300;
	line-height: var(--lh-relaxed);
	color: var(--color-text-dim);
	max-width: 52ch;
}
.mt-featured-actions {
	display: flex;
	gap: var(--sp-4);
	margin-top: var(--sp-6);
}
.mt-featured-byline {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--color-text-soft);
	margin-top: var(--sp-4);
}

/* Filter strip */
.mt-filters {
	border-bottom: 1px solid var(--border);
	padding: var(--sp-4) var(--section-px);
	position: sticky;
	top: 0;
	z-index: 10;
	background: var(--color-bg);
}
.mt-filters-inner {
	display: flex;
	align-items: center;
	gap: var(--sp-5);
	flex-wrap: wrap;
}
.mt-filters-label {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--color-text-soft);
	flex-shrink: 0;
}
.mt-filter-btn {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-text-dim);
	text-decoration: none;
	padding-bottom: 3px;
	border-bottom: 2px solid transparent;
	transition: color 0.2s, border-color 0.2s;
	white-space: nowrap;
}
.mt-filter-btn:hover {
	color: var(--color-text);
	border-bottom-color: var(--color-text-soft);
}

/* Row eyebrow (shared) */
.mt-row-eyebrow {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--color-highlight);
	margin-bottom: var(--sp-3);
}

/* Curated rows */
.mt-row {
	border-top: 1px solid var(--border);
}
.mt-row-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	margin-bottom: var(--sp-8);
	gap: var(--sp-5);
}
.mt-row-header-left {
	display: flex;
	align-items: flex-start;
	gap: var(--sp-5);
}
.mt-row-roman {
	font-family: var(--font-heading);
	font-size: var(--text-3xl);
	font-style: italic;
	color: var(--color-accent);
	opacity: 0.6;
	line-height: 1;
	flex-shrink: 0;
}
.mt-row-title {
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	font-style: italic;
	font-weight: 700;
	color: var(--color-text);
	line-height: var(--lh-snug);
}
.mt-row-desc {
	font-size: var(--text-sm);
	font-weight: 300;
	color: var(--color-text-dim);
	line-height: var(--lh-relaxed);
	max-width: 60ch;
	margin-top: var(--sp-3);
}
.mt-row-count {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--color-text-soft);
	white-space: nowrap;
	flex-shrink: 0;
	padding-top: var(--sp-3);
}

/* Episode cards */
.mt-cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-5);
}
.mt-card {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	cursor: pointer;
}
.mt-card-thumb {
	position: relative;
	aspect-ratio: 16/9;
	background: var(--color-surface-2);
	overflow: hidden;
}
.mt-card-thumb img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.72;
	transition: opacity 0.3s;
}
.mt-card:hover .mt-card-thumb img {
	opacity: 0.9;
}
.mt-card-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(8,8,8,0.5) 0%, transparent 55%);
}
.mt-card-thumb .video-play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.mt-card-info {
	padding: var(--sp-4) 0 0;
}
.mt-card-guest {
	font-family: var(--font-body);
	font-size: var(--text-2xs);
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--color-highlight);
	margin-bottom: var(--sp-2);
}
.mt-card-title {
	font-family: var(--font-heading);
	font-size: var(--text-base);
	font-style: italic;
	font-weight: 700;
	color: var(--color-text);
	line-height: var(--lh-snug);
}
.mt-card:hover .mt-card-title {
	color: var(--color-text-dim);
}

/* Shared badges */

/* Full index */
.mt-index {
	border-top: 1px solid var(--border);
	counter-reset: ep-counter;
}
.mt-index-hd {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: var(--sp-6);
}
.mt-index-heading {
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	font-style: italic;
	font-weight: 700;
	color: var(--color-text);
}
.mt-index-cols {
	display: none;
}
.mt-index-row {
	display: grid;
	grid-template-columns: 36px 1fr auto;
	grid-template-areas:
		"ep  name  watch"
		"ep  tag   dur";
	gap: 2px var(--sp-4);
	padding: var(--sp-4) 0;
	border-bottom: 1px dashed var(--border);
	text-decoration: none;
	align-items: center;
	transition: background 0.15s;
	counter-increment: ep-counter;
}
.mt-index-row:hover {
	background: var(--color-text-ghost);
}
.mt-index-ep {
	grid-area: ep;
	font-family: var(--font-heading);
	font-size: var(--text-md);
	font-style: italic;
	color: var(--color-accent);
	line-height: 1;
}
.mt-index-ep::before {
	content: counter(ep-counter, decimal-leading-zero);
}
.mt-index-still {
	display: none;
}
.mt-index-name {
	grid-area: name;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.mt-index-name-title {
	font-family: var(--font-heading);
	font-size: var(--text-base);
	font-style: italic;
	font-weight: 700;
	color: var(--color-text);
	line-height: var(--lh-snug);
}
.mt-index-row:hover .mt-index-name-title {
	color: var(--color-text-dim);
}
.mt-index-guest {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.1em;
	color: var(--color-highlight);
}
.mt-index-tag {
	grid-area: tag;
	display: flex;
	gap: var(--sp-2);
	flex-wrap: wrap;
}
.mt-tag {
	font-family: var(--font-body);
	font-size: var(--text-2xs);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-text-dim);
	border: 1px solid var(--border);
	padding: 1px 6px;
}
.mt-index-year {
	display: none;
}
.mt-index-dur {
	grid-area: dur;
	font-family: var(--font-body);
	font-size: var(--text-xs);
	color: var(--color-text-soft);
	text-align: right;
	justify-self: end;
}
.mt-index-watch {
	grid-area: watch;
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-highlight);
	justify-self: end;
}

/* CTA quote */
.cta-quote {
	border-top: 1px solid var(--border);
	text-align: center;
}
.cta-quote-inner {
	max-width: 900px;
	margin-inline: auto;
}
.cta-quote-text {
	font-family: var(--font-heading);
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-style: italic;
	font-weight: 700;
	line-height: var(--lh-tight);
	letter-spacing: -0.01em;
	color: var(--color-text);
}
.cta-quote-text em {
	color: var(--theme-accent);
	font-style: inherit;
}
.cta-quote-attr {
	font-family: var(--font-body);
	font-size: var(--text-md);
	font-weight: 300;
	font-style: italic;
	color: var(--theme-muted);
	margin-top: var(--sp-3);
}
.cta-quote-actions {
	display: flex;
	gap: var(--sp-4);
	justify-content: center;
	margin-top: var(--sp-6);
	flex-wrap: wrap;
}

/* ── Meisner Trained single episode ── */
.ms-single {
	background: var(--dark);
	color: var(--white);
	overflow-x: hidden;
}

/* Breadcrumb */
.ms-breadcrumb {
	padding: var(--sp-4) 0;
	border-bottom: 1px solid var(--border);
}
.ms-breadcrumb-inner {
	display: flex;
	align-items: center;
	gap: var(--sp-2);
	flex-wrap: wrap;
}
.ms-breadcrumb-back {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--white);
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, currentColor 35%, transparent);
	text-underline-offset: 3px;
	transition: opacity 0.2s;
}
.ms-breadcrumb-back:hover {
	opacity: 0.7;
}
.ms-breadcrumb-sep {
	color: var(--color-highlight);
	font-size: var(--text-xs);
}
.ms-breadcrumb-topic {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-text-dim);
}
.ms-breadcrumb-ep {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.14em;
	color: var(--color-highlight);
}

/* Player section */
.ms-player-section {
	padding: var(--sp-8) 0 var(--sp-10);
}
.ms-player-inner {
	display: flex;
	flex-direction: column;
	gap: var(--sp-8);
}
.ms-player-col {
	width: 100%;
}
.ms-embed-wrap {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	background: #000;
}
.ms-embed-wrap iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: none;
}
.ms-embed-wrap--poster {
	padding-bottom: 0;
	height: auto;
	position: relative;
}
.ms-embed-wrap--poster img {
	width: 100%;
	display: block;
}
.ms-poster-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, 0.5);
	color: var(--color-text-dim);
	font-family: var(--font-body);
}
.ms-under-player {
	display: flex;
	gap: var(--sp-3);
	flex-wrap: wrap;
	margin-top: var(--sp-4);
}
.ms-meta-chip {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-text-dim);
	padding: var(--sp-1) var(--sp-3);
	border: 1px solid var(--border);
}

/* Meta rail */
.ms-meta-col {
	width: 100%;
}
.ms-meta-eyebrow {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--color-highlight);
	margin-bottom: var(--sp-3);
}
.ms-meta-title {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-style: italic;
	line-height: var(--lh-snug);
	letter-spacing: -0.02em;
	color: var(--white);
}
.ms-meta-guest {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-text-dim);
	margin-top: var(--sp-2);
}
.ms-rule {
	border: none;
	border-top: 1px solid var(--border);
	margin: var(--sp-5) 0;
}
.ms-meta-desc {
	font-family: var(--font-body);
	font-size: var(--text-base);
	line-height: var(--lh-relaxed);
	color: var(--color-text-dim);
	margin-bottom: var(--sp-6);
}
.ms-meta-table {
	display: grid;
	grid-template-columns: 5.5rem 1fr;
	row-gap: var(--sp-3);
	column-gap: var(--sp-4);
	font-family: var(--font-body);
	font-size: var(--text-sm);
	margin-bottom: var(--sp-7);
}
.ms-meta-table dt {
	font-size: var(--text-2xs);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-text-soft);
	padding-top: 0.15em;
}
.ms-meta-table dd {
	color: var(--white);
	line-height: var(--lh-base);
}
.ms-meta-table dd em {
	font-style: italic;
}
.ms-meta-actions {
	display: flex;
	gap: var(--sp-3);
	flex-wrap: wrap;
}

/* Arc strip */
.ms-arc {
	background: var(--dark2);
	border-top: 1px solid var(--border);
	border-bottom: 1px solid var(--border);
}
.ms-arc-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--sp-5);
}
.ms-arc-eyebrow {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-highlight);
}
.ms-arc-count {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-text-soft);
}
.ms-arc-strip {
	display: flex;
	gap: var(--sp-3);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding-bottom: var(--sp-2);
}
.ms-arc-strip::-webkit-scrollbar {
	display: none;
}
.ms-arc-item {
	flex: 0 0 auto;
	width: 9rem;
	border-top: 2px solid rgba(245, 240, 235, 0.15);
	padding-top: var(--sp-3);
	text-decoration: none;
	transition: border-color 0.2s;
}
.ms-arc-item:hover {
	border-top-color: rgba(196, 151, 58, 0.6);
}
.ms-arc-item--current {
	border-top-color: var(--color-highlight);
}
.ms-arc-item-label {
	font-family: var(--font-body);
	font-size: var(--text-2xs);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-text-soft);
	margin-bottom: var(--sp-1);
	display: flex;
	align-items: center;
	gap: var(--sp-2);
}
.ms-arc-item--current .ms-arc-item-label {
	color: var(--color-highlight);
}
.ms-arc-now {
	font-size: var(--text-2xs);
	letter-spacing: 0.1em;
	color: var(--color-highlight);
	background: rgba(196, 151, 58, 0.15);
	padding: 1px 5px;
}
.ms-arc-item-title {
	font-family: var(--font-heading);
	font-size: 0.8125rem;
	font-style: italic;
	line-height: 1.25;
	color: var(--color-text-dim);
	margin-bottom: var(--sp-1);
}
.ms-arc-item--current .ms-arc-item-title {
	color: var(--white);
}
.ms-arc-item-dur {
	font-family: var(--font-body);
	font-size: var(--text-2xs);
	letter-spacing: 0.1em;
	color: var(--color-text-soft);
}

/* Jim's Notes */
.ms-notes {
	border-bottom: 1px solid var(--border);
}
.ms-notes-eyebrow {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-highlight);
	margin-bottom: var(--sp-5);
}
.ms-notes-content {
	font-family: var(--font-body);
	font-size: var(--text-base);
	line-height: var(--lh-relaxed);
	color: var(--color-text-dim);
}
.ms-notes-content p {
	margin-bottom: 1em;
}
.ms-notes-content p:last-child {
	margin-bottom: 0;
}

/* Transcript */
.ms-transcript {
	border-top: 1px solid var(--border);
}
.ms-transcript-eyebrow {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-highlight);
	margin-bottom: var(--sp-6);
}
.ms-transcript-body {
	font-family: var(--font-body);
	font-size: var(--text-base);
	line-height: var(--lh-relaxed);
	color: var(--color-text-dim);
	columns: 1;
}
.ms-transcript-body p {
	margin-bottom: 1em;
}
.ms-transcript-body p:last-child {
	margin-bottom: 0;
}

/* Watch Next */
.ms-watch-next {
	border-top: 1px solid var(--border);
}
.ms-watch-next-header {
	margin-bottom: var(--sp-6);
}
.ms-watch-next-sub {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--color-text-dim);
	margin-top: var(--sp-2);
}
.ms-watch-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--sp-4);
}

/* ── Single post ── */
.single-post-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-12);
	padding-block: var(--section-py);
}
.single-post-main {
	min-width: 0;
}
.single-post-aside {
	display: flex;
	flex-direction: column;
	gap: var(--sp-6);
}
.aside-image {
	border-radius: var(--radius);
	overflow: hidden;
}
.aside-image img {
	width: 100%;
	height: auto;
	display: block;
}
.aside-cta {
	padding: var(--sp-5);
	background: var(--color-surface-1);
	border-radius: var(--radius);
	border: 1px solid var(--border);
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
}
.aside-cta-heading {
	font-family: var(--font-heading);
	font-size: var(--text-md);
	font-weight: 700;
	color: var(--color-text);
	line-height: var(--lh-snug);
}
.aside-cta-body {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 300;
	color: var(--color-text-dim);
	line-height: var(--lh-relaxed);
}
.aside-cta-btn {
	text-align: center;
	/* font-size: var(--text-sm) !important; */
	padding-block: var(--sp-3);
}
.aside-related {
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
	padding-top: var(--sp-5);
	border-top: 1px solid var(--border);
}
.aside-related-label {
	font-family: var(--font-body);
	font-size: var(--text-2xs);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-text-soft);
}
.aside-related-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
}
.aside-related-list li {
	padding-bottom: var(--sp-3);
	border-bottom: 1px solid var(--border);
}
.aside-related-list li:last-child {
	padding-bottom: 0;
	border-bottom: none;
}
.aside-related-list a {
	font-family: var(--font-heading);
	font-size: var(--text-sm);
	font-weight: 700;
	color: var(--color-text);
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, currentColor 35%, transparent);
	text-underline-offset: 3px;
	line-height: var(--lh-snug);
	display: block;
	transition: opacity 0.2s;
}
.aside-related-list a:hover {
	opacity: 0.7;
}
.single-post-category {
	font-family: var(--font-body);
	font-size: var(--text-2xs);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--color-accent);
	margin-bottom: var(--sp-4);
	display: flex;
	align-items: center;
	gap: var(--sp-2);
}
.single-post-category::before {
	content: '';
	width: 20px;
	height: 1px;
	background: var(--color-accent);
}
.single-post-main h1 {
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	font-weight: 700;
	line-height: var(--lh-tight);
	color: var(--color-text);
	margin-bottom: var(--sp-6);
	letter-spacing: -0.02em;
}
.single-post-meta {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--color-text-soft);
	margin-bottom: var(--sp-8);
	padding-bottom: var(--sp-8);
	border-bottom: 1px solid var(--border);
}
.post-content {
	font-family: var(--font-body);
	font-weight: 300;
	line-height: var(--lh-loose);
	color: var(--color-text-dim);
}
.post-content h2 {
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	font-weight: 700;
	color: var(--color-text);
	margin: var(--sp-12) 0 var(--sp-5);
	line-height: var(--lh-snug);
}
.post-content h3 {
	font-family: var(--font-heading);
	font-size: var(--text-lg);
	font-weight: 700;
	color: var(--color-text);
	margin: var(--sp-9) 0 var(--sp-4);
}
.post-content p {
	margin-bottom: var(--sp-6);
}
.post-content p:last-child {
	margin-bottom: 0;
}
.post-content strong {
	color: var(--color-text);
	font-weight: 400;
}
.post-content em {
	font-style: italic;
}
.post-content a {
	color: var(--color-accent);
	text-decoration: underline;
}
.post-content blockquote {
	background: none;
	border-radius: 0;
	padding: 0;
	margin: var(--sp-8) 0 var(--sp-6);
	position: relative;
}
.post-content blockquote::before {
	content: '\201C';
	font-family: var(--font-heading);
	font-size: 4rem;
	line-height: 1;
	color: var(--gold);
	display: block;
	margin-bottom: var(--sp-3);
	font-style: italic;
}
.post-content blockquote p {
	font-family: var(--font-heading);
	font-size: var(--text-md);
	font-style: italic;
	color: var(--color-text);
	line-height: var(--lh-snug);
	margin-bottom: var(--sp-5);
}
.post-content blockquote cite {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-style: normal;
	font-weight: 400;
	color: var(--gold);
	display: block;
	letter-spacing: 0.06em;
}
.post-content ul,
.post-content ol {
	list-style: none;
	padding: 0;
	margin-bottom: 24px;
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
}
.post-content ul li {
	padding-left: var(--sp-5);
	position: relative;
	color: var(--color-text-dim);
}
.post-content ul li::before {
	content: '-';
	position: absolute;
	left: 0;
	color: var(--color-accent);
}
.post-content ol {
	counter-reset: post-ol;
}
.post-content ol li {
	padding-left: var(--sp-5);
	position: relative;
	counter-increment: post-ol;
	color: var(--color-text-dim);
}
.post-content ol li::before {
	content: counter(post-ol) '.';
	position: absolute;
	left: 0;
	color: var(--color-accent);
}
.post-content .alignleft,
.post-content .alignright {
	display: block;
	width: 100%;
	margin: 0 0 var(--sp-6);
}
.post-content .aligncenter {
	display: block;
	margin: 0 auto var(--sp-6);
}
.pagination-wrap {
	margin-top: 40px;
}
.empty-state {
	color: var(--color-text-dim);
	font-family: var(--font-body);
	font-size: var(--text-base);
}
.back-link {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 300;
	color: var(--color-text);
	border-bottom: 1px solid color-mix(in srgb, currentColor 35%, transparent);
	padding-bottom: 2px;
	margin-bottom: var(--sp-8);
	transition: opacity 0.2s;
}
.back-link::before {
	content: '\2190';
}
.back-link:hover {
	opacity: 0.7;
}
.related-posts {
	padding: var(--sp-10) var(--section-px) var(--sp-16);
	border-top: 1px solid var(--border);
}
.related-posts h3 {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--color-accent);
	margin-bottom: var(--sp-7);
}
.related-posts-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-3);
}

/* ── Single class ── */
.single-class-header {
	padding-block: var(--sp-7) var(--sp-6);
	border-bottom: 1px solid var(--border);
}
.single-class-header .single-class-label {
	margin-top: var(--sp-4);
	margin-bottom: var(--sp-3);
}
.single-class-header .single-class-h1 {
	margin-bottom: 0;
}
.single-class-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-8);
	padding-block: var(--sp-8);
}
.single-class-label {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	text-transform: uppercase;
	letter-spacing: 0.15em;
	opacity: 0.45;
	margin-bottom: var(--sp-3);
}
.single-class-h1 {
	font-family: var(--font-heading);
	font-size: clamp(2rem, 4vw, 3rem);
	font-style: italic;
	font-weight: 400;
	line-height: 1.05;
	letter-spacing: -0.025em;
	color: var(--color-text);
	margin-bottom: var(--sp-6);
}
.single-class-content {
	font-family: var(--font-body);
	font-size: var(--text-base);
	line-height: 1.75;
	max-width: 68ch;
}
.single-class-content p {
	margin-bottom: var(--sp-5);
}
/* sidebar */
.single-class-aside {
	display: flex;
	flex-direction: column;
	gap: 0;
	background: var(--color-surface-1);
	padding: var(--sp-5) var(--sp-4);
	order: -1;
}
.single-class-status {
	display: inline-block;
	font-family: var(--font-body);
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	padding: 4px 10px;
	border-radius: 3px;
	margin-bottom: var(--sp-4);
	align-self: flex-start;
}
.single-class-status--open {
	background: rgba(196, 151, 58, 0.12);
	color: var(--color-highlight);
}
.single-class-status--forming {
	background: rgba(190, 10, 10, 0.14);
	color: var(--color-accent);
}
.single-class-status--full {
	background: rgba(245, 240, 235, 0.06);
	color: var(--color-text);
	opacity: 0.5;
}
.single-class-aside-section {
	padding-block: var(--sp-4);
	border-bottom: 1px solid var(--border);
}
.single-class-aside-label {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	opacity: 0.55;
	margin-bottom: var(--sp-1);
}
.single-class-aside-value {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 400;
	line-height: 1.5;
	color: var(--color-text);
}
.single-class-aside-value--dim {
	opacity: 0.5;
	font-style: italic;
}
.single-class-cta {
	display: none;
}
.single-class-mobile-cta {
	display: block;
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	padding: var(--sp-3) var(--sp-4) calc(var(--sp-3) + env(safe-area-inset-bottom, 0px));
	background: var(--color-bg);
	border-top: 1px solid var(--border);
	z-index: 40;
}
.single-class-bar-spacer {
	height: calc(4rem + env(safe-area-inset-bottom, 0px));
}
.single-class-context-links {
	display: flex;
	flex-direction: column;
	gap: var(--sp-4);
	border-top: 1px solid var(--border);
	border-bottom: 1px solid var(--border);
	padding-block: var(--sp-6);
	margin-block: var(--sp-8);
}
.single-class-context-link {
	font-family: var(--font-body);
	font-size: var(--text-base);
	text-decoration: none;
	color: var(--color-text);
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	transition: color 0.15s;
}
.single-class-context-link::after {
	content: '→';
	color: var(--color-accent);
	transition: transform 0.15s;
}
.single-class-context-link:hover {
	color: var(--white);
}
.single-class-context-link:hover::after {
	transform: translateX(3px);
}
.single-class-edit {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	text-decoration: none;
	color: var(--color-text);
	opacity: 0.25;
	margin-top: var(--sp-3);
	display: inline-block;
}
.single-class-edit:hover {
	opacity: 0.6;
}

/* ── Single Faculty Member ── */
.single-faculty-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-8);
	padding: 40px var(--section-px);
}
.single-faculty-photo-col {
	max-width: 420px;
}
.single-faculty-photo {
	width: 100%;
	aspect-ratio: 3/4;
	object-fit: cover;
	object-position: center top;
	border-radius: var(--radius);
	filter: grayscale(15%);
	display: block;
}
.faculty-role {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-accent);
	margin-bottom: 10px;
}
.single-faculty-main h1 {
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	font-weight: 700;
	color: var(--color-text);
	line-height: var(--lh-tight);
	margin-bottom: 28px;
}
.single-faculty-main .post-content {
	margin-bottom: 40px;
}

/* ── Single Program ── */
.aside-cta-ghost {
	font-size: var(--text-sm);
	margin-top: var(--sp-2);
}
.single-program-excerpt {
	font-family: var(--font-body);
	font-size: var(--text-md);
	font-weight: 600;
	font-style: italic;
	color: var(--color-text);
	line-height: var(--lh-snug);
	margin-bottom: var(--sp-8);
}
.single-program-img {
	width: 100%;
	height: auto;
	border-radius: var(--radius);
	display: block;
	margin-bottom: var(--sp-8);
}

/* ── Archive ── */
.archive-wrap {
}
.archive-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-5);
	border-radius: var(--radius);
	overflow: hidden;
}
.archive-grid .blog-card {

}
.blog-thumb {
	aspect-ratio: 16/9;
	overflow: hidden;
	margin: calc(var(--sp-6) * -1) calc(var(--sp-6) * -1) 0;
}
.blog-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ── 404 ── */
.not-found-wrap {
	min-height: 60vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: var(--section-py) var(--section-px);
}
.not-found-wrap h1 {
	font-family: var(--font-heading);
	font-size: var(--text-3xl);
	font-weight: 700;
	color: var(--color-accent);
	opacity: 0.3;
	line-height: 1;
	margin-bottom: 20px;
}
.not-found-wrap h2 {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-weight: 700;
	color: var(--color-text);
	margin-bottom: 16px;
}
.not-found-wrap p {
	font-family: var(--font-body);
	font-size: var(--text-md);
	font-weight: 300;
	color: var(--color-text-dim);
	margin-bottom: 40px;
}

/* Quiet page-load entrance, same family as the page-hero block's. The
   ghost numeral's keyframe ends at its own authored opacity (0.3, not 1)
   so a reduced-motion visitor sees the identical resting look. */
@keyframes not-found-rise {
	from {
		opacity: 0;
		transform: translateY(14px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
@keyframes not-found-ghost-rise {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
	to {
		opacity: 0.3;
		transform: translateY(0);
	}
}
@media (prefers-reduced-motion: no-preference) {
	.not-found-wrap h1 {
		animation: not-found-ghost-rise 0.7s cubic-bezier(0.16, 1, 0.3, 1) both;
	}
	.not-found-wrap h2 {
		animation: not-found-rise 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.1s both;
	}
	.not-found-wrap p {
		animation: not-found-rise 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.2s both;
	}
	.not-found-wrap .cta-actions {
		animation: not-found-rise 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.3s both;
	}
}

/* ── video-gate ── */
.video-gate {
	border-top: 1px solid var(--border);
}
.video-gate-inner {
	max-width: 520px;
	margin-inline: auto;
	text-align: center;
	padding-block: var(--sp-10) var(--sp-12);
}
.video-gate-inner--card {
	padding: var(--sp-8) var(--sp-7) var(--sp-6);
	background: rgba(20,20,20,0.96);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border: 1px solid rgba(255,255,255,0.14);
	border-radius: var(--radius);
}
.video-gate-eyebrow {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-highlight);
	margin-bottom: var(--sp-3);
}
.video-gate-heading {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-weight: 700;
	color: var(--color-text);
	margin-bottom: var(--sp-3);
	line-height: 1.1;
}
.video-gate-sub {
	color: var(--color-text-dim);
	font-size: var(--text-md);
	max-width: 38ch;
	margin-inline: auto;
	margin-bottom: var(--sp-6);
	line-height: var(--lh-base);
}
.video-gate-form {
	text-align: left;
}
/* Scoped Formidable overrides inside the gate card */
.video-gate-form .frm_form_field {
	position: relative;
	width: 100% !important;
	float: none !important;
	clear: both;
	margin-bottom: var(--sp-4);
	padding: 0 !important;
}
.video-gate-form .frm_required_field {
	padding-top: var(--sp-6) !important;
}
.video-gate-form .frm_required_field::after {
	content: 'required';
	position: absolute;
	top: 0;
	right: 0;
	font-family: var(--font-body);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-highlight);
	background: rgba(95,73,27,0.18);
	border: 1px solid rgba(95,73,27,0.4);
	border-radius: 3px;
	padding: 2px 7px;
	line-height: 1.6;
}
.video-gate-form .frm_primary_label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
}
.video-gate-form input[type='text'],
.video-gate-form input[type='email'] {
	background: rgba(255,255,255,0.06) !important;
	border-color: rgba(255,255,255,0.12) !important;
	color: var(--color-text) !important;
	padding: 13px 14px !important;
	border-radius: var(--radius) !important;
}
.video-gate-form input[type='text']:focus,
.video-gate-form input[type='email']:focus {
	border-color: var(--color-highlight) !important;
	outline: none;
}
.video-gate-form input:-webkit-autofill,
.video-gate-form input:-webkit-autofill:hover,
.video-gate-form input:-webkit-autofill:focus {
	-webkit-text-fill-color: var(--color-text) !important;
	-webkit-box-shadow: 0 0 0px 1000px rgba(255,255,255,0.06) inset !important;
	transition: background-color 9999s ease-in-out 0s;
}
.video-gate-form input::placeholder {
	color: rgba(255,255,255,0.25) !important;
}
.video-gate-form .frm_submit {
	margin-top: var(--sp-2);
	width: 100%;
}
.video-gate-form .frm_submit button,
.video-gate-form .frm_submit input[type='submit'] {
	width: 100% !important;
	padding: 15px !important;
	font-size: var(--text-sm) !important;
	letter-spacing: 0.1em !important;
}
.video-gate-error {
	background: rgba(190,10,10,0.1);
	border: 1px solid rgba(190,10,10,0.3);
	border-radius: var(--radius);
	padding: var(--sp-3) var(--sp-4);
	color: var(--color-text);
	font-size: var(--text-sm);
	margin-bottom: var(--sp-5);
	text-align: left;
}
.video-gate-unconfigured {
	color: var(--color-text-dim);
	font-size: var(--text-sm);
	font-style: italic;
}
/* Overlay container (used in archive + single) */
.video-gate-overlay {
	position: absolute;
	inset: 0;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--sp-8);
	background: linear-gradient(to bottom, rgba(8,8,8,0.5) 0%, rgba(8,8,8,0.75) 40%, rgba(8,8,8,0.92) 100%);
}
/* Archive blurred preview */
.mt-gate-wrap {
	position: relative;
	overflow: hidden;
	min-height: 540px;
}
.mt-gate-preview {
	filter: blur(4px) brightness(0.35);
	transform: scale(1.02);
	pointer-events: none;
	user-select: none;
	padding-block: var(--sp-8);
}
/* Single gated player */
.ms-player-section--gated {
	position: relative;
	overflow: hidden;
	display: grid;
}
/* Stack the blurred background and the gate card in the same grid cell so
   the section always sizes to whichever is taller, instead of guessing a
   fixed min-height that breaks whenever the card's content changes. */
.ms-player-section--gated .ms-player-gated-content {
	grid-area: 1 / 1;
}
.ms-player-section--gated .video-gate-overlay {
	grid-area: 1 / 1;
	position: relative;
	inset: auto;
}
.ms-player-gated-content {
	filter: blur(6px) brightness(0.3);
	transform: scale(1.02);
	pointer-events: none;
	user-select: none;
}

/* ── Personas ── */
.personas-cta {
	margin-top: var(--sp-10);
	text-align: center;
}
.personas-cta-note {
	font-family: var(--font-body);
	font-size: var(--text-base);
	color: var(--theme-muted);
	margin: 0 0 var(--sp-5);
}

/* ── Persona Stage ── */
.ps-header {
	margin-bottom: var(--sp-8);
}
.ps-heading {
	font-family: var(--font-heading);
	font-size: clamp(2.25rem, 4vw, 3.5rem);
	font-style: italic;
	font-weight: 400;
	line-height: 1.05;
	letter-spacing: -0.025em;
	color: var(--color-text);
	text-wrap: balance;
}
.ps-heading em {
	color: var(--color-accent);
}
.ps-subhead {
	font-family: var(--font-body);
	font-size: var(--text-base);
	color: var(--color-text-dim);
	margin-top: var(--sp-3);
}
.ps-grid {
	display: flex;
	gap: var(--sp-4);
	overflow-x: auto;
	scrollbar-width: none;
	scroll-snap-type: x mandatory;
}
.ps-grid::-webkit-scrollbar {
	display: none;
}
.ps-card {
	position: relative;
	background: var(--theme-card-bg);
	padding: var(--sp-5);
	overflow: hidden;
	flex: 0 0 85%;
	scroll-snap-align: start;
}
.ps-q {
	font-family: var(--font-heading);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(1.1rem, 1.8vw, 1.35rem);
	line-height: 1.4;
	letter-spacing: -0.015em;
	color: var(--color-text);
	margin: 0;
	transition: opacity 0.25s ease;
}
.ps-card-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: color-mix(in oklch, var(--theme-bg) 55%, transparent);
	opacity: 0;
	transition: opacity 0.2s ease;
	pointer-events: none;
}
.ps-card:hover .ps-card-overlay,
.ps-card:focus-within .ps-card-overlay {
	opacity: 1;
	pointer-events: auto;
}
.ps-card.is-open .ps-card-overlay {
	opacity: 0;
	pointer-events: none;
}
.ps-thats-me {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	letter-spacing: 0.06em;
	color: var(--white);
	background: var(--color-accent);
	border: none;
	padding: var(--sp-3) var(--sp-6);
	cursor: pointer;
	transition: opacity 0.15s;
	transform: translateY(4px);
	transition: opacity 0.2s ease, transform 0.2s ease;
}
.ps-card-overlay:hover .ps-thats-me,
.ps-card:hover .ps-thats-me {
	transform: translateY(0);
}
.ps-thats-me:hover {
	opacity: 0.85;
}
.ps-card-answer {
	position: absolute;
	inset: 0;
	padding: var(--sp-7) var(--sp-6);
	background: var(--theme-card-bg);
	border-top: 2px solid var(--color-accent);
	opacity: 0;
	transition: opacity 0.3s ease;
	pointer-events: none;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.ps-card.is-open .ps-card-answer {
	opacity: 1;
	pointer-events: auto;
}
.ps-a {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(1rem, 1.6vw, 1.2rem);
	line-height: 1.55;
	letter-spacing: -0.01em;
	color: var(--color-text);
	margin: 0;
}

/* ── Formidable Pro forms ── */
.with_frm_style {
	--bg-color: #141414;
	--bg-color-active: #141414;
	--text-color: #f5f0eb;
	--border-color: rgba(245, 240, 235, 0.08);
	--border-color-active: #be0a0a;
	--label-color: rgba(245, 240, 235, 0.58);
	--font-size: 1.125rem;
	--field-font-size: 1.125rem;
	--field-pad: 14px 16px;
	--field-margin: 24px;
	--field-border-width: 1px;
	--field-border-style: solid;
	--border-radius: 4px;
	--submit-bg-color: #be0a0a;
	--submit-border-color: #be0a0a;
	--submit-text-color: #f5f0eb;
	--submit-font-size: 0.75rem;
	--submit-border-radius: 4px;
	--submit-weight: normal;
	--required-color: #e84040;
	--description-color: rgba(245, 240, 235, 0.3);
	--section-color: #f5f0eb;
	--section-bg-color: transparent;
	--section-border-color: rgba(245, 240, 235, 0.08);
	--fieldset-bg-color: transparent;
	--bg-color-disabled: #1a1a1a;
	--border-color-disabled: rgba(245, 240, 235, 0.08);
	--text-color-disabled: rgba(245, 240, 235, 0.3);
}
.frm_forms {
	width: 100%;
}
.frm_primary_label {
	display: block;
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-text-dim);
	margin-bottom: var(--sp-2);
}
.frm_forms input[type='text'],
.frm_forms input[type='email'],
.frm_forms input[type='tel'],
.frm_forms input[type='number'],
.frm_forms input[type='url'],
.frm_forms input[type='date'],
.frm_forms input[type='password'],
.frm_forms textarea,
.frm_forms select {
	width: 100%;
	font-family: var(--font-body);
	font-size: var(--text-base);
	color: var(--color-text);
	background: var(--color-surface-2);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 14px 16px;
	box-sizing: border-box;
	box-shadow: none;
}
.frm_forms input:focus,
.frm_forms textarea:focus,
.frm_forms select:focus {
	outline: none;
	border-color: var(--color-accent);
}
.frm_forms input:-webkit-autofill,
.frm_forms input:-webkit-autofill:hover,
.frm_forms input:-webkit-autofill:focus {
	-webkit-text-fill-color: var(--color-text) !important;
	-webkit-box-shadow: 0 0 0px 1000px var(--color-surface-2) inset !important;
	transition: background-color 9999s ease-in-out 0s;
}
.frm_forms input::placeholder,
.frm_forms textarea::placeholder {
	color: var(--color-text-soft);
}
.frm_forms textarea {
	min-height: 140px;
	resize: vertical;
}
.frm_submit {
	margin-top: var(--sp-6);
	background: transparent;
	border: none;
	padding: 0;
}
.frm_style_formidable-style.with_frm_style input[type='submit'],
.frm_style_formidable-style.with_frm_style .frm_submit input[type='button'],
.frm_style_formidable-style.with_frm_style .frm_submit button {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--color-text);
	background: var(--color-accent);
	border: none;
	border-radius: var(--radius);
	padding: 15px 36px;
	cursor: pointer;
	transition: opacity 0.2s;
	box-shadow: none;
	margin: 0;
}
.frm_style_formidable-style.with_frm_style input[type='submit']:hover,
.frm_style_formidable-style.with_frm_style input[type='submit']:focus,
.frm_style_formidable-style.with_frm_style .frm_submit button:hover,
.frm_style_formidable-style.with_frm_style .frm_submit button:focus {
	background: var(--color-accent) !important;
	opacity: 0.85;
}
.frm_message {
	background: var(--color-surface-2);
	border: 1px solid var(--color-accent);
	border-radius: var(--radius);
	padding: 16px 20px;
	font-size: var(--text-base);
	color: var(--color-text-dim);
}
.frm_error_style {
	background: var(--red-dim);
	border: 1px solid var(--color-accent);
	color: var(--red-vivid);
}
.frm_error {
	color: var(--red-vivid);
	font-size: var(--text-sm);
}
.frm_forms .frm_html_container .alert {
	background: transparent;
	color: var(--color-text-soft);
	font-size: var(--text-sm);
	border: none;
	padding: var(--sp-4) 0;
}

/* ── meisner technique page (.mt-*) ── */

.mt-hero {
	min-height: 85vh;
	display: flex;
	align-items: center;
	background: var(--color-bg);
	padding-block: var(--sp-20) var(--sp-16);
}
.mt-hero-inner {
	display: flex;
	flex-direction: column;
	gap: var(--sp-8);
}
.mt-hero-eyebrow {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gold);
	margin-bottom: var(--sp-4);
}
.mt-hero-h1 {
	font-family: var(--font-heading);
	font-size: var(--text-display);
	font-style: italic;
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.02em;
	text-wrap: balance;
	margin: 0;
}
.mt-hero-h1 em {
	color: var(--gold);
	font-style: inherit;
}
.mt-hero-line {
	display: block;
}
.mt-hero-aside p {
	font-size: var(--text-lg);
	line-height: var(--lh-relaxed);
	color: var(--color-text);
	max-width: 44ch;
}
.mt-hero-aside p + p {
	margin-top: var(--sp-4);
}
.mt-hero-aside-attr {
	font-size: var(--text-sm);
	color: var(--color-text-dim);
	font-style: italic;
}

/* Entrance, scoped under .mt-hero-inner: archive-episode.php's own hero
   reuses the bare .mt-hero/.mt-hero-eyebrow/.mt-hero-h1 class names for a
   simpler one-line heading (pre-existing collision in this codebase), so
   every rule here is scoped through .mt-hero-inner/.mt-hero-text/.mt-hero-
   aside, which only exist in this page's markup. The three words are three
   separate qualities, not one phrase, so each .mt-hero-line lands as its
   own beat rather than the whole heading arriving as one block; the gold
   payoff word gets a quiet glow settle right after its line lands. */
@keyframes mt-hero-rise {
	from {
		opacity: 0;
		transform: translateY(16px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
@keyframes mt-hero-accent-settle {
	0%,
	60% {
		text-shadow: 0 0 0 rgba(196, 151, 58, 0);
	}
	80% {
		text-shadow: 0 0 18px rgba(196, 151, 58, 0.5);
	}
	100% {
		text-shadow: 0 0 0 rgba(196, 151, 58, 0);
	}
}
@media (prefers-reduced-motion: no-preference) {
	.mt-hero-inner .mt-hero-eyebrow {
		animation: mt-hero-rise 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
	}
	.mt-hero-text .mt-hero-h1 .mt-hero-line {
		animation: mt-hero-rise 0.7s cubic-bezier(0.16, 1, 0.3, 1) both;
	}
	.mt-hero-text .mt-hero-h1 .mt-hero-line:nth-child(1) {
		animation-delay: 0.15s;
	}
	.mt-hero-text .mt-hero-h1 .mt-hero-line:nth-child(2) {
		animation-delay: 0.38s;
	}
	.mt-hero-text .mt-hero-h1 .mt-hero-line:nth-child(3) {
		animation-delay: 0.61s;
	}
	.mt-hero-text .mt-hero-h1 em {
		animation: mt-hero-accent-settle 1.3s ease-out 1.35s both;
	}
	.mt-hero-aside {
		animation: mt-hero-rise 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.85s both;
	}
}

/* section skip nav */
.mt-skiplinks {
	position: sticky;
	top: 0;
	z-index: 90;
	background: var(--color-bg);
}
.mt-skiplinks .container {
	overflow-x: auto;
	scrollbar-width: none;
}
.mt-skiplinks .container::-webkit-scrollbar {
	display: none;
}
.mt-skiplinks-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	align-items: stretch;
}
.mt-skiplinks-list li {
	flex: 0 0 auto;
}
.mt-skiplinks-list a {
	display: flex;
	align-items: center;
	padding-block: var(--sp-4);
	padding-inline: var(--sp-4);
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-text-dim);
	text-decoration: none;
	white-space: nowrap;
	border-right: 1px solid var(--border);
	transition: color 0.15s;
}
.mt-skiplinks-list li:last-child a {
	border-right: none;
}
.mt-skiplinks-list a:hover {
	color: var(--color-text);
}

/* intro with drop cap */
.mt-intro-grid {
	display: flex;
	flex-direction: column;
	gap: var(--sp-8);
}
.mt-intro-heading {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-snug);
	text-wrap: balance;
	margin-bottom: 0;
}
.mt-intro-body p {
	font-size: var(--text-md);
	line-height: var(--lh-relaxed);
	color: var(--color-text-dim);
	max-width: 65ch;
}
.mt-intro-body p + p {
	margin-top: var(--sp-4);
}
.mt-intro-dropcap::first-letter {
	font-family: var(--font-heading);
	font-size: clamp(4rem, 8vw, 5.5rem);
	font-style: italic;
	font-weight: 400;
	float: left;
	line-height: 0.78;
	margin-right: 0.08em;
	margin-top: 0.1em;
	color: var(--color-accent);
}

/* process grid */
.mt-process-heading {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-snug);
	text-wrap: balance;
	max-width: 38ch;
	margin-bottom: var(--sp-10);
}
.mt-process-heading em {
	color: var(--color-text-dim);
}
.mt-process-format {
	font-size: var(--text-md);
	line-height: var(--lh-relaxed);
	color: var(--color-text-dim);
	max-width: 56ch;
	margin-bottom: var(--sp-12);
}
.mt-sessions-grid {
	list-style: none;
	padding: 0;
	margin: 0 0 var(--sp-12);
	display: grid;
	gap: 1px;
	background: var(--border);
	border: 1px solid var(--border);
}
.mt-sessions-entry {
	background: var(--color-bg);
	padding: var(--sp-8);
}
.mt-sessions-label {
	display: block;
	font-family: var(--font-heading);
	font-size: var(--text-lg);
	font-style: italic;
	font-weight: 400;
	color: var(--color-text);
	margin-bottom: var(--sp-3);
}
.mt-sessions-sublabel {
	display: block;
	font-family: var(--font-body);
	font-size: var(--text-xs);
	font-weight: 400;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--red-vivid);
	margin-top: var(--sp-2);
}
.mt-sessions-body {
	font-size: var(--text-base);
	line-height: var(--lh-relaxed);
	color: var(--color-text-dim);
	max-width: 54ch;
}
.mt-sessions-goal {
	background: var(--color-surface-1);
	border-radius: var(--radius);
	padding: var(--sp-8);
	position: relative;
}
.mt-sessions-goal-intro {
	font-size: var(--text-sm);
	color: var(--color-text-dim);
	margin: 0 0 var(--sp-5);
}
.mt-sessions-goal-quote::before {
	content: '\201C';
	display: block;
	font-family: var(--font-heading);
	font-size: var(--text-3xl);
	font-style: italic;
	color: var(--gold);
	line-height: 0.6;
	margin-bottom: var(--sp-2);
}
.mt-sessions-goal-quote p {
	font-family: var(--font-heading);
	font-size: var(--text-lg);
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-relaxed);
	color: var(--color-text);
	max-width: 58ch;
	margin: 0 0 var(--sp-5);
}
.mt-sessions-goal-quote cite {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--gold);
	font-style: normal;
	letter-spacing: 0.05em;
}

/* pullquote */
.mt-pullquote {
	background: var(--color-surface-1);
	padding-block: var(--sp-16) var(--sp-20);
	padding-inline: var(--section-px);
	text-align: center;
}
.mt-pullquote-figure {
	max-width: 52ch;
	margin-inline: auto;
}
.mt-pullquote-quote p {
	font-family: var(--font-heading);
	font-size: var(--text-3xl);
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-snug);
	text-wrap: balance;
	color: var(--color-text);
	margin: 0;
}
.mt-pullquote-caption {
	margin-top: var(--sp-8);
}
.mt-pullquote-attr {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-text-dim);
	display: block;
	margin-bottom: var(--sp-4);
	font-style: normal;
}

/* two levels */
.mt-levels-heading {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-snug);
	text-wrap: balance;
	margin-bottom: var(--sp-10);
}
.mt-levels-grid {
	display: grid;
	gap: 1px;
	background: var(--border);
}
.mt-levels-col {
	background: var(--color-bg);
	padding: var(--sp-8);
	display: flex;
	flex-direction: column;
	gap: var(--sp-5);
}
.mt-levels-col--featured {
	background: var(--color-surface-1);
}
.mt-levels-label {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--red-vivid);
}
.mt-levels-title {
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-snug);
	margin: 0;
}
.mt-levels-desc {
	font-size: var(--text-base);
	line-height: var(--lh-relaxed);
	color: var(--color-text-dim);
	max-width: 48ch;
}
.mt-levels-details {
	display: flex;
	flex-direction: column;
	border-top: 1px solid var(--border);
}
.mt-levels-detail-row {
	display: flex;
	justify-content: space-between;
	gap: var(--sp-4);
	padding-block: var(--sp-2);
	border-bottom: 1px solid var(--border);
	font-size: var(--text-sm);
}
.mt-levels-detail-row dt {
	color: var(--color-text-dim);
}
.mt-levels-detail-row dd {
	color: var(--color-text);
	text-align: right;
}

.mt-levels-actions {
	display: flex;
	align-items: center;
	gap: var(--sp-5);
	margin-top: auto;
}
.mt-levels-detail-link {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--color-text);
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, currentColor 35%, transparent);
	text-underline-offset: 3px;
	white-space: nowrap;
	transition: opacity 0.15s;
}
.mt-levels-detail-link:hover {
	opacity: 0.7;
}

/* timeline */
.mt-timeline-heading {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-snug);
	text-wrap: balance;
	margin-bottom: var(--sp-10);
}
.mt-timeline-track {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	position: relative;
}
.mt-timeline-track::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.3em;
	bottom: 0.3em;
	width: 1px;
	background: linear-gradient(
		to bottom,
		transparent,
		rgba(190, 10, 10, 0.4) 4%,
		rgba(190, 10, 10, 0.4) 96%,
		transparent
	);
}
.mt-timeline-entry {
	display: flex;
	gap: var(--sp-6);
	padding-left: var(--sp-6);
	padding-bottom: var(--sp-8);
	position: relative;
}
.mt-timeline-entry::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.4em;
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: var(--color-accent);
	outline: 4px solid var(--color-bg);
	transform: translateX(-50%);
}
.mt-timeline-year {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 500;
	letter-spacing: 0.06em;
	color: var(--red-vivid);
	min-width: 9ch;
	flex-shrink: 0;
	padding-top: 0.15em;
}
.mt-timeline-event {
	font-size: var(--text-base);
	line-height: var(--lh-relaxed);
	color: var(--color-text);
	max-width: 58ch;
}

/* method vs meisner */
.mt-method-grid {
	display: flex;
	flex-direction: column;
	gap: var(--sp-10);
}
.mt-method-heading {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-snug);
	text-wrap: balance;
	margin-bottom: var(--sp-6);
}
.mt-method-copy p {
	font-size: var(--text-base);
	line-height: var(--lh-relaxed);
	color: var(--color-text-dim);
	max-width: 58ch;
}
.mt-method-copy p + p {
	margin-top: var(--sp-4);
}
.mt-method-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--sp-6);
	margin-top: var(--sp-6);
}
.mt-method-actions .mt-method-link {
	margin-top: 0;
}
.mt-method-video-caption {
	margin-top: var(--sp-4);
	font-size: var(--text-sm);
	color: var(--color-text-dim);
}
.mt-method-video-caption a {
	color: var(--red-vivid);
	text-decoration: none;
}
.mt-method-video-caption a:hover {
	text-decoration: underline;
}
.mt-video-wrap {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: var(--color-surface-1);
}
.mt-video-wrap iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
/* who was sandy */
.mt-sandy-heading {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-snug);
	text-wrap: balance;
	margin-bottom: var(--sp-10);
}
.mt-sandy-grid {
	display: flex;
	flex-direction: column;
	gap: var(--sp-8);
}
.mt-sandy-quote {
	border-left: 1px solid var(--border);
	padding-left: var(--sp-6);
}
.mt-sandy-quote p {
	font-family: var(--font-heading);
	font-size: var(--text-lg);
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-relaxed);
	color: var(--color-text);
	margin: 0 0 var(--sp-4);
}
.mt-sandy-quote cite {
	font-size: var(--text-sm);
	color: var(--color-text-dim);
	font-style: normal;
	letter-spacing: 0.05em;
}
.mt-sandy-col--bio p {
	font-size: var(--text-base);
	line-height: var(--lh-relaxed);
	color: var(--color-text-dim);
	max-width: 60ch;
}
.mt-sandy-col--bio p + p {
	margin-top: var(--sp-4);
}
.mt-sandy-link,
.mt-method-link {
	display: inline-block;
	margin-top: var(--sp-5);
	font-size: var(--text-sm);
	color: var(--red-vivid);
	text-decoration: none;
	letter-spacing: 0.04em;
}
.mt-sandy-link:hover,
.mt-method-link:hover {
	text-decoration: underline;
}

/* alumni names - flowing centered layout */
.mt-alumni-names {
	text-align: center;
}
.mt-alumni-names-eyebrow {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gold);
	margin-bottom: var(--sp-5);
}
.mt-alumni-names-heading {
	font-family: var(--font-heading);
	font-size: var(--text-3xl);
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-snug);
	text-wrap: balance;
	margin-bottom: var(--sp-10);
}
.mt-alumni-names-heading em {
	color: var(--gold);
	font-style: italic;
}
.mt-alumni-names-flow {
	font-family: var(--font-heading);
	font-size: var(--text-base);
	font-style: italic;
	line-height: var(--lh-relaxed);
	color: var(--color-text);
}
.mt-alumni-name {
	display: inline;
}
.mt-alumni-sep {
	color: var(--gold);
	margin-inline: 0.1em;
}
.mt-alumni-names-note {
	margin-top: var(--sp-8);
	font-size: var(--text-xs);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-text-dim);
	font-style: normal;
}

/* vocabulary */
.mt-vocab-heading {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-snug);
	text-wrap: balance;
	margin-bottom: var(--sp-10);
}
.mt-vocab-grid {
	display: grid;
	gap: 1px;
	background: var(--border);
	border: 1px solid var(--border);
}
.mt-vocab-entry {
	background: var(--color-bg);
	padding: var(--sp-8);
}
.mt-vocab-term {
	font-family: var(--font-heading);
	font-size: var(--text-lg);
	font-style: italic;
	font-weight: 400;
	color: var(--color-text);
	margin-bottom: var(--sp-3);
}
.mt-vocab-def {
	font-size: var(--text-base);
	line-height: var(--lh-relaxed);
	color: var(--color-text-dim);
	max-width: 54ch;
}

/* faq */
.mt-faq-heading {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-snug);
	text-wrap: balance;
	margin-bottom: var(--sp-10);
}
.mt-faq-list {
	border-top: 1px solid var(--border);
}
.mt-faq-item {
	border-bottom: 1px solid var(--border);
}
.mt-faq-question {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-4);
	padding-block: var(--sp-5);
	font-family: var(--font-body);
	font-size: var(--text-md);
	font-weight: 400;
	color: var(--color-text);
	cursor: pointer;
	user-select: none;
	max-width: 65ch;
	transition: color 0.2s ease;
}
.mt-faq-item:hover .mt-faq-question {
	color: var(--color-accent);
}
.mt-faq-question::-webkit-details-marker { display: none; }
.mt-faq-toggle {
	display: block;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	position: relative;
}
.mt-faq-toggle::before,
.mt-faq-toggle::after {
	content: '';
	position: absolute;
	background: var(--color-text-dim);
	transition: transform 0.2s ease, opacity 0.2s ease, background 0.2s ease;
}
.mt-faq-item:hover .mt-faq-toggle::before,
.mt-faq-item:hover .mt-faq-toggle::after {
	background: var(--color-accent);
}
.mt-faq-toggle::before {
	width: 1px;
	height: 100%;
	left: 50%;
	top: 0;
	transform: translateX(-50%);
}
.mt-faq-toggle::after {
	height: 1px;
	width: 100%;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
}
details[open] .mt-faq-toggle::before {
	transform: translateX(-50%) rotate(90deg);
	opacity: 0;
}
/* Native <details> snaps open/closed with no transition of its own; this
   overrides the UA's display:none toggle and instead animates a grid
   track from 0fr to 1fr, so opening actually eases rather than jumping.
   Three levels on purpose: the clip wrapper is the actual grid item and
   carries no padding of its own, so it can be compressed to a true zero
   height by the collapsed track; the inner-most div carries the real
   typography/padding and gets clipped away with it while closed. Padding
   living on the same element as the grid item would keep contributing to
   its minimum size and stop the track from ever reaching zero. */
.mt-faq-answer {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}
.mt-faq-item[open] .mt-faq-answer {
	grid-template-rows: 1fr;
}
.mt-faq-answer-clip {
	overflow: hidden;
	min-height: 0;
}
.mt-faq-answer-inner {
	font-size: var(--text-base);
	line-height: var(--lh-relaxed);
	color: var(--color-text-dim);
	max-width: 65ch;
	padding-bottom: var(--sp-5);
}
@media (prefers-reduced-motion: reduce) {
	.mt-faq-answer {
		transition: none;
	}
}
.mt-faq-footer {
	margin-top: var(--sp-8);
	display: flex;
	align-items: center;
	gap: var(--sp-5);
}
.mt-faq-footer-text {
	font-size: var(--text-sm);
	color: var(--color-text-dim);
	font-style: italic;
}

/* resources grid */
.mt-resources-heading {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-snug);
	text-wrap: balance;
	margin-bottom: var(--sp-10);
}
.mt-resources-grid {
	display: flex;
	flex-direction: column;
	border-bottom: 1px solid var(--border);
}
.mt-resource {
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
	padding-block: var(--sp-6);
	border-top: 1px solid var(--border);
	text-decoration: none;
	transition: opacity 0.15s;
}
a.mt-resource:hover {
	opacity: 0.7;
}
.mt-resource--static {
	opacity: 0.65;
}
.mt-resource-type {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--red-vivid);
	flex-shrink: 0;
}
.mt-resource-main {
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
}
.mt-resource-title {
	font-family: var(--font-body);
	font-size: var(--text-md);
	color: var(--color-text);
	line-height: 1.35;
}
.mt-resource-desc {
	font-size: var(--text-sm);
	color: var(--color-text-dim);
	line-height: var(--lh-relaxed);
	max-width: 60ch;
}

/* closing cta */
.mt-cta {
	background: var(--color-surface-1);
	text-align: center;
}
.mt-cta-kicker {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-text-dim);
	font-style: italic;
	margin-bottom: var(--sp-4);
}
.mt-cta-heading {
	font-family: var(--font-heading);
	font-size: var(--text-3xl);
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-snug);
	text-wrap: balance;
	margin-bottom: var(--sp-5);
}
.mt-cta-sub {
	font-size: var(--text-base);
	color: var(--color-text-dim);
	line-height: var(--lh-relaxed);
	max-width: 50ch;
	margin-inline: auto;
	margin-bottom: var(--sp-8);
}

/* three more things */
.mt-more-heading {
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	font-style: italic;
	font-weight: 400;
	line-height: var(--lh-snug);
	margin-bottom: var(--sp-8);
}
.mt-more-grid {
	display: grid;
	gap: 1px;
	background: var(--border);
}
.mt-more-card {
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
	padding: var(--sp-8);
	background: var(--color-bg);
	text-decoration: none;
	position: relative;
	transition: background 0.15s;
}
.mt-more-card:hover {
	background: var(--color-surface-1);
}
.mt-more-eyebrow {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--color-text-soft);
}
.mt-more-title {
	font-family: var(--font-body);
	font-size: var(--text-md);
	color: var(--color-text);
	line-height: 1.3;
}
.mt-more-arrow {
	position: absolute;
	top: var(--sp-6);
	right: var(--sp-6);
	font-size: var(--text-lg);
	color: var(--color-text-dim);
	transition: transform 0.15s;
	font-family: var(--font-body);
	font-style: normal;
	display: block;
	width: 1em;
	height: 1em;
	line-height: 1;
}
.mt-more-arrow::after {
	content: '\2197\FE0E';
}
.mt-more-card:hover .mt-more-arrow {
	transform: translate(3px, -3px);
}

/* ══════════════════════════════════════════════════════════
   5. EXCEPTIONS — modifiers, states, context overrides
══════════════════════════════════════════════════════════ */

/* Links on light backgrounds: switch to crimson (contrast passes AAA on white) */
.bg-light a,
.bg-cream a,
.bg-sand a {
	color: var(--color-accent);
}

/* CTA pattern - full-bleed breakout */
.wp-block-group.cta-section {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	max-width: none;
}

/* CTA pattern - force static accent on WP button (theme-accent-contrast may vary) */
.cta-section {
	--theme-accent-contrast: var(--color-text);
}

/* Button modifiers */
.btn-primary--full {
	width: 100%;
	text-align: center;
}
.btn-ghost--sm {
	font-size: var(--text-sm);
	padding: 8px 16px;
	color: var(--theme-text);
	border-bottom: 1px solid color-mix(in srgb, currentColor 35%, transparent);
}
.btn-ghost--sm:hover {
	opacity: 0.7;
}

/* Blog modifiers */
.blog-card.featured .blog-title {
	font-size: var(--text-xl);
}

/* Post content modifiers */
.post-content--narrow {
	max-width: 720px;
	margin-inline: auto;
}

/* Video hidden state */
.video-card[style*='none'] {
	display: none;
}

/* Themed context overrides for programs block */
:where(
		.theme-context,
		[class*='is-style-theme-'],
		[class~='theme-light'],
		[class~='theme-cream'],
		[class~='theme-sand'],
		[class~='theme-surface'],
		[class~='theme-dark'],
		[class~='theme-dark3']
	)
	.section-heading {
	color: var(--theme-text);
}
:where(
		.theme-context,
		[class*='is-style-theme-'],
		[class~='theme-light'],
		[class~='theme-cream'],
		[class~='theme-sand'],
		[class~='theme-surface'],
		[class~='theme-dark'],
		[class~='theme-dark3']
	)
	.programs-statement {
	color: var(--theme-muted);
	border-color: var(--theme-accent);
}
:where(
		.theme-context,
		[class*='is-style-theme-'],
		[class~='theme-light'],
		[class~='theme-cream'],
		[class~='theme-sand'],
		[class~='theme-surface'],
		[class~='theme-dark'],
		[class~='theme-dark3']
	)
	.program-band {
	border-top-color: var(--theme-border);
}
:where(
		.theme-context,
		[class*='is-style-theme-'],
		[class~='theme-light'],
		[class~='theme-cream'],
		[class~='theme-sand'],
		[class~='theme-surface'],
		[class~='theme-dark'],
		[class~='theme-dark3']
	)
	.program-band:last-child {
	border-bottom-color: var(--theme-border);
}
:where(
		.theme-context,
		[class*='is-style-theme-'],
		[class~='theme-light'],
		[class~='theme-cream'],
		[class~='theme-sand'],
		[class~='theme-surface'],
		[class~='theme-dark'],
		[class~='theme-dark3']
	)
	.program-band:hover {
	background: var(--theme-hover);
}
:where(
		.theme-context,
		[class*='is-style-theme-'],
		[class~='theme-light'],
		[class~='theme-cream'],
		[class~='theme-sand'],
		[class~='theme-surface'],
		[class~='theme-dark'],
		[class~='theme-dark3']
	)
	.program-band::before {
	color: var(--theme-ghost);
}
:where(
		.theme-context,
		[class*='is-style-theme-'],
		[class~='theme-light'],
		[class~='theme-cream'],
		[class~='theme-sand'],
		[class~='theme-surface'],
		[class~='theme-dark'],
		[class~='theme-dark3']
	)
	.program-band-name {
	color: var(--theme-text);
}
:where(
		.theme-context,
		[class*='is-style-theme-'],
		[class~='theme-light'],
		[class~='theme-cream'],
		[class~='theme-sand'],
		[class~='theme-surface'],
		[class~='theme-dark'],
		[class~='theme-dark3']
	)
	.program-band:hover
	.program-band-name {
	color: var(--theme-muted);
}
:where(
		.theme-context,
		[class*='is-style-theme-'],
		[class~='theme-light'],
		[class~='theme-cream'],
		[class~='theme-sand'],
		[class~='theme-surface'],
		[class~='theme-dark'],
		[class~='theme-dark3']
	)
	.program-band-desc {
	color: var(--theme-muted);
}
.theme-cream .programs-bands .program-band:nth-child(odd),
.is-style-theme-cream .programs-bands .program-band:nth-child(odd),
.theme-sand .programs-bands .program-band:nth-child(odd),
.is-style-theme-sand .programs-bands .program-band:nth-child(odd) {
	background-color: var(--theme-surface);
}
.theme-cream .programs-bands .program-band:nth-child(even),
.is-style-theme-cream .programs-bands .program-band:nth-child(even),
.theme-sand .programs-bands .program-band:nth-child(even),
.is-style-theme-sand .programs-bands .program-band:nth-child(even) {
	background-color: var(--theme-surface-2);
}

/* Admin bar — prevent hero from being pushed down */
body.admin-bar .hero {
	margin-top: 0;
}

/* ── Classes page (page-classes.php) ── */
.page-template-page-classes-php {
	background: var(--white);
	color: var(--black);
}

/* hero */
.cp-hero {
	--theme-bg: var(--dark);
	--theme-text: var(--white);
	--theme-muted: rgba(245, 240, 235, 0.6);
	--theme-border: rgba(245, 240, 235, 0.12);
	--theme-accent: var(--gold);
	padding-block: var(--sp-10) var(--sp-7);
	padding-inline: var(--section-px);
	text-align: left;
	background: var(--theme-bg);
	color: var(--theme-text);
}
.cp-hero-eyebrow {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	text-transform: uppercase;
	letter-spacing: 0.25em;
	opacity: 0.55;
	display: inline-flex;
	align-items: center;
	gap: 9px;
}
/* A live/enrolling status reads better with a small pulse than as static
   text alone - reinforces "now" without adding another word to the line. */
.cp-hero-eyebrow::after {
	content: '';
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--gold);
	flex-shrink: 0;
}
@media (prefers-reduced-motion: no-preference) {
	.cp-hero-eyebrow::after {
		animation: cp-hero-pulse 2.2s cubic-bezier(0.25, 1, 0.5, 1) infinite;
	}
}
@keyframes cp-hero-pulse {
	0%,
	100% {
		opacity: 0.4;
		transform: scale(0.85);
	}
	50% {
		opacity: 1;
		transform: scale(1.15);
	}
}
.cp-hero-h1 {
	font-family: var(--font-heading);
	font-size: clamp(3rem, 9vw, 5.5rem);
	font-style: italic;
	line-height: 0.92;
	letter-spacing: -0.025em;
	margin: 1rem 0 0;
	max-width: 900px;
	color: var(--theme-text);
	/* padding-bottom gives descenders (g/y/p/q) room inside the element's
	   own box before the clip-path wipe clips to it; the negative
	   margin-bottom cancels it exactly so .cp-hero-lede's position (set by
	   its own margin-top) is unchanged. */
	padding-bottom: 0.25em;
	margin-bottom: -0.25em;
}
.cp-hero-h1 .accent {
	color: var(--theme-accent);
}
.cp-hero-lede {
	font-family: var(--font-body);
	font-style: italic;
	font-size: var(--text-md);
	margin: 1.25rem 0 0;
	max-width: 50ch;
	line-height: 1.3;
	opacity: 0.85;
	color: var(--theme-text);
}

/* Entrance: eyebrow, then the headline wipes open left-to-right (the
   payoff phrase "...Sandy taught it." gets a quiet glow settle right as
   it lands - a small nod to the fact that this is a quote of a claim,
   not just a styled span), then the lede follows. Pure CSS - see
   assets/js/motion.js's "Hero" comment for why the homepage's own
   equivalent moved off GSAP; the same reasoning applies to every
   load-time entrance in this theme now. */
@keyframes cp-hero-rise {
	from {
		opacity: 0;
		transform: translateY(14px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
@keyframes cp-hero-clip-wipe {
	from {
		clip-path: inset(0% 100% 0% 0%);
	}
	to {
		clip-path: inset(0% 0% 0% 0%);
	}
}
@keyframes cp-hero-accent-settle {
	0%,
	60% {
		text-shadow: 0 0 0 rgba(196, 151, 58, 0);
	}
	80% {
		text-shadow: 0 0 18px rgba(196, 151, 58, 0.5);
	}
	100% {
		text-shadow: 0 0 0 rgba(196, 151, 58, 0);
	}
}
@media (prefers-reduced-motion: no-preference) {
	.cp-hero-eyebrow {
		animation: cp-hero-rise 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
	}
	.cp-hero-h1 {
		animation: cp-hero-clip-wipe 1s cubic-bezier(0.16, 1, 0.3, 1) 0.15s both;
	}
	.cp-hero-h1 .accent {
		animation: cp-hero-accent-settle 1.3s ease-out 1.2s both;
	}
	.cp-hero-lede {
		animation: cp-hero-rise 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.85s both;
	}
}

/* jump nav */
.cp-jump-nav {
	position: sticky;
	top: 0;
	z-index: 90;
	border-top: 1px solid rgba(0,0,0,0.1);
	border-bottom: 1px solid rgba(0,0,0,0.1);
	background: var(--bg-light);
}
.cp-jump-nav .container {
	display: flex;
	align-items: stretch;
	overflow-x: auto;
	scrollbar-width: none;
}
.cp-jump-nav .container::-webkit-scrollbar {
	display: none;
}
.cp-jump-link {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	padding: 0.875rem 1.25rem;
	text-decoration: none;
	border-right: 1px solid rgba(0,0,0,0.08);
	transition: background 0.15s;
	white-space: nowrap;
}
.cp-jump-link:last-child {
	border-right: none;
}
.cp-jump-link:hover {
	background: rgba(0,0,0,0.04);
}
.cp-jump-title {
	font-family: var(--font-heading);
	font-size: var(--text-sm);
	font-style: italic;
	font-weight: 400;
	color: #1a1a1a;
	line-height: 1.2;
}
.cp-specialty-intro {
	padding-block: var(--sp-12);
	padding-inline: var(--section-px);
	text-align: center;
}
.cp-specialty-intro .content-wrap {
	max-width: 51.25rem;
}
.cp-specialty-eyebrow {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 400;
	font-style: italic;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--theme-muted);
	margin: 0 0 var(--sp-3);
}
.cp-specialty-eyebrow::before,
.cp-specialty-eyebrow::after {
	content: '';
	display: block;
	width: 28px;
	height: 1px;
	background: var(--theme-accent);
	flex-shrink: 0;
}
.cp-specialty-heading {
	font-family: var(--font-heading);
	font-size: var(--text-2xl);
	font-weight: 400;
	font-style: italic;
	color: var(--theme-text);
	margin: 0 0 var(--sp-3);
}
.cp-specialty-lede {
	font-family: var(--font-body);
	font-size: var(--text-base);
	color: var(--theme-muted);
	max-width: 55ch;
	margin-inline: auto;
	text-wrap: balance;
}

/* poster blocks */
.cp-poster {
	--theme-bg: var(--bg-light);
	--theme-surface: var(--bg-light);
	--theme-card-bg: var(--bg-light);
	--theme-text: var(--bg-light-text);
	--theme-muted: var(--bg-light-text-muted);
	--theme-secondary: var(--bg-light-text-secondary);
	--theme-border: var(--bg-light-border);
	--theme-accent: var(--color-accent);
	padding-block: var(--sp-10) var(--sp-6);
	padding-inline: var(--section-px);
	background: var(--theme-bg);
	color: var(--theme-text);
}
.cp-poster-warm {
	--theme-bg: var(--bg-sand);
	--theme-surface: #f2eae0;
	--theme-card-bg: var(--bg-light);
	--theme-text: var(--bg-sand-text);
	--theme-muted: var(--bg-sand-text-muted);
	--theme-secondary: var(--bg-sand-text-secondary);
	--theme-border: var(--bg-sand-border);
	--theme-accent: var(--color-accent);
	background: var(--theme-bg);
	color: var(--theme-text);
	border-top: 1.2px solid var(--theme-border);
	border-bottom: 1.2px solid var(--theme-border);
	padding-block: var(--sp-8);
	padding-inline: var(--section-px);
}
.cp-roman-label {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--red);
	margin: 0;
}
.cp-roman-h2 {
	font-family: var(--font-heading);
	font-size: clamp(2.25rem, 5vw, 4rem);
	font-style: italic;
	line-height: 0.95;
	letter-spacing: -0.02em;
	margin-top: 0.5rem;
	color: var(--theme-text);
	font-weight: 400;
}
.cp-roman-lede {
	font-family: var(--font-body);
	font-style: italic;
	font-size: var(--text-md);
	margin-top: 1rem;
	margin-bottom: 0.25rem;
	line-height: 1.3;
	max-width: 700px;
	opacity: 0.9;
	color: var(--theme-text);
}
.cp-twocol {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.75rem;
	align-items: start;
}
.cp-outcome {
	font-family: var(--font-heading);
	font-size: var(--text-lg);
	font-style: italic;
	line-height: 1.3;
	color: var(--theme-text);
	font-weight: 400;
}
.cp-hr-dash {
	border: 0;
	border-top: 1.5px dashed var(--theme-border);
	margin: 1.5rem 0;
}
.cp-quote {
	font-family: var(--font-heading);
	font-size: var(--text-base);
	font-style: italic;
	line-height: 1.4;
	opacity: 0.92;
	color: var(--theme-text);
	font-weight: 400;
}
.cp-quote-cap {
	display: block;
	font-style: normal;
	font-family: var(--font-body);
	font-size: var(--text-xs);
	margin-top: 0.625rem;
	color: var(--theme-muted);
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

/* enrollment card */
.cp-card {
	background: var(--theme-card-bg);
	padding: 1.5rem;
	position: relative;
	border: 1.5px solid var(--theme-text);
	border-radius: 3px;
	order: -1;
}
.cp-card-eyebrow {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	color: var(--theme-accent);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	margin-bottom: 0.25rem;
}
.cp-card--multi .cp-card-eyebrow {
	margin-bottom: var(--sp-2);
	padding-bottom: var(--sp-2);
	border-bottom: 1px solid var(--theme-border, var(--border));
}
.cp-card-h3 {
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	font-style: italic;
	margin-top: 0.375rem;
	color: var(--theme-text);
	font-weight: 400;
}
.cp-card-dates {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.25rem 1rem;
	margin-top: 0.75rem;
}
.cp-card-date-col {
	display: flex;
	flex-direction: column;
	gap: var(--sp-1);
}
.cp-card-date-val {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--theme-text);
	line-height: 1.2;
}
.cp-card-meta {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--theme-text);
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
	margin-top: var(--sp-3);
}
.cp-card-meta-row {
	display: grid;
	grid-template-columns: 3rem 1fr;
	gap: 0.5rem;
	align-items: start;
}
.cp-card-lbl {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	color: var(--theme-muted);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding-top: 0.15em;
}
.cp-card-schedule {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}
.cp-card-schedule-row {
	line-height: 1.5;
}
.cp-card-cta {
	margin-top: var(--sp-3);
	display: flex;
	gap: var(--sp-2);
}
.cp-card-no-session {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--theme-muted);
	line-height: 1.5;
	margin-top: 0.5rem;
}
.cp-card-foot {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	color: var(--theme-muted);
	margin-top: 0.75rem;
	text-align: center;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}
.cp-card-edit {
	display: block;
	margin-top: var(--sp-4);
	font-family: var(--font-body);
	font-size: var(--text-2xs);
	color: currentColor;
	text-decoration: none;
	opacity: 0.25;
	text-align: center;
	letter-spacing: 0.08em;
	transition: opacity 0.15s;
}
.cp-card--multi .cp-card-dates {
	margin-top: var(--sp-2);
}
.cp-session-block {
	padding-block: var(--sp-4);
	border-top: 1px solid var(--theme-border, var(--border));
}
.cp-session-block:last-of-type {
	padding-bottom: var(--sp-1);
}
.cp-session-block:first-of-type {
	border-top: none;
	padding-top: var(--sp-1);
}
.cp-session-status-row {
	margin-bottom: 0.625rem;
}
.cp-session-status {
	display: inline-block;
	font-family: var(--font-body);
	font-size: var(--text-xs);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.10em;
	padding: 3px 9px;
	border-radius: 2px;
	white-space: nowrap;
}
.cp-session-status--open {
	background: rgba(196,151,58,0.16);
	color: color-mix(in srgb, var(--color-highlight) 65%, black);
}
.cp-session-status--forming {
	background: rgba(190,10,10,0.14);
	color: var(--color-accent);
}
.single-class-aside-session {
	padding-block: var(--sp-4);
	border-bottom: 1px solid var(--border);
}
.single-class-aside-session:last-of-type {
	padding-bottom: 0;
	border-bottom: none;
}
.single-class-aside-session + .single-class-aside-session {
	border-top: none;
}
.single-class-aside-dates {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--sp-2);
}
.single-class-aside-dates .single-class-aside-value {
	white-space: nowrap;
}
.single-class-aside-session .single-class-status {
	margin-bottom: var(--sp-3);
}
.single-class-aside-session .single-class-aside-section {
	padding-block: var(--sp-3);
	border-bottom: none;
}
.cp-card-edit:hover { opacity: 0.7; }

/* btn-outline: bordered button for light backgrounds
   Also applied via core/button is-style-outline block variation */
.btn-outline,
.wp-block-button.is-style-outline .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 18px;
	border: 1.5px solid var(--theme-text, var(--black));
	background: var(--theme-card-bg, var(--white));
	color: var(--theme-text, var(--black));
	font-family: var(--font-body);
	font-size: var(--text-xs);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	text-decoration: none;
	cursor: pointer;
	border-radius: 2px;
	transition: opacity 0.15s;
}
.btn-outline:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	opacity: 0.7;
}
/* alumni */
.cp-alumni {
	background: var(--color-bg);
	padding-block: var(--sp-10) var(--sp-8);
	padding-inline: var(--section-px);
}
.cp-alumni-intro {
	font-family: var(--font-heading);
	font-size: clamp(2rem, 4vw, 3rem);
	font-style: italic;
	font-weight: 400;
	color: var(--color-text);
	letter-spacing: -0.02em;
	line-height: 1.1;
	margin: 0 0 var(--sp-8);
}
.cp-alumni-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--sp-6) var(--sp-8);
	list-style: none;
}
.cp-alumni-cell {
	padding: 0;
}
.cp-alumni-name {
	font-family: var(--font-heading);
	font-size: var(--text-base);
	font-style: italic;
	font-weight: 400;
	color: var(--color-text);
	line-height: 1.25;
}
.cp-alumni-cred {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	color: var(--color-highlight);
	margin-top: 3px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.cp-alumni-more {
	display: block;
	font-family: var(--font-body);
	font-size: var(--text-xs);
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--color-text-dim);
	margin-top: var(--sp-7);
	text-decoration: none;
	transition: color 0.15s;
}
.cp-alumni-more:hover {
	color: var(--color-text);
}

/* pillars */
.cp-pillars {
	--theme-bg: #4a443c;
	--theme-text: var(--white);
	--theme-muted: rgba(245, 240, 235, 0.65);
	--theme-border: rgba(245, 240, 235, 0.18);
	--theme-accent: var(--color-accent);
	padding-block: var(--sp-9);
	padding-inline: var(--section-px);
	border-top: 3px solid var(--color-accent);
	background: var(--theme-bg);
	color: var(--theme-text);
}
.cp-pillars-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
}
.cp-pillar {
	padding-block: var(--sp-6);
	border-top: 1px solid var(--theme-border);
}
.cp-pillar:last-child {
	border-bottom: 1px solid var(--theme-border);
}
.cp-pillar h3 {
	font-family: var(--font-heading);
	font-size: clamp(1.25rem, 2vw, 1.625rem);
	font-style: italic;
	line-height: 1.1;
	margin: 0;
	font-weight: 400;
}
.cp-pillar p {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	margin-top: var(--sp-3);
	color: var(--theme-muted);
	line-height: 1.6;
}

/* closing CTA */
.cp-close {
	--theme-bg: var(--dark);
	--theme-text: var(--white);
	--theme-muted: color-mix(in srgb, var(--white) 70%, transparent);
	--theme-border: var(--border);
	--theme-accent: var(--gold);
	padding-block: var(--sp-10) var(--sp-11);
	padding-inline: var(--section-px);
	background: var(--theme-bg);
	color: var(--theme-text);
	text-align: center;
	margin-top: 2rem;
}
.cp-close h2 {
	font-family: var(--font-heading);
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-style: italic;
	line-height: 1;
	max-width: 820px;
	margin: 0 auto;
	letter-spacing: -0.02em;
	font-weight: 400;
	color: var(--theme-text);
}
.cp-close-sub {
	font-family: var(--font-body);
	font-style: italic;
	font-size: var(--text-base);
	margin: 1.375rem auto 0;
	max-width: 560px;
	line-height: 1.3;
	color: var(--theme-muted);
}
.cp-close-cta {
	margin-top: 1.875rem;
	display: flex;
	gap: 0.75rem;
	justify-content: center;
	flex-wrap: wrap;
}

/* ── Academic Calendar (page-calendar.php) ── */
.acal-focus {
	display: flex;
	flex-direction: column;
	gap: var(--sp-5);
}
.acal-focus-now {
	background: var(--color-surface-1);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: var(--sp-6) var(--sp-6) var(--sp-7);
}
.acal-focus-pill {
	display: inline-block;
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-highlight);
	border: 1px solid var(--color-highlight);
	border-radius: var(--radius);
	padding: 5px 14px;
	margin-bottom: var(--sp-4);
}
.acal-focus-now--break .acal-focus-pill,
.acal-focus-now--pre .acal-focus-pill {
	color: var(--color-text-dim);
	border-color: var(--border);
}
.acal-focus-title {
	font-family: var(--font-heading);
	font-size: var(--text-lg);
	font-weight: 400;
	color: var(--color-text);
	margin: 0 0 var(--sp-2);
	line-height: var(--lh-snug);
}
.acal-focus-range {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--color-text-dim);
	margin: 0 0 var(--sp-5);
}
.acal-focus-entries {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--border);
}
.acal-focus-entry {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-1);
	padding: var(--sp-3) 0;
	border-bottom: 1px solid var(--border);
	font-family: var(--font-body);
	font-size: var(--text-sm);
}
.acal-focus-entry-date {
	color: var(--color-text-dim);
}
.acal-focus-entry-desc {
	color: var(--color-text);
}
.acal-focus-entry--break {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: var(--sp-1);
	padding-block: var(--sp-5);
	border-bottom: 1px solid var(--border);
}
.acal-focus-entry--break .acal-focus-entry-desc {
	order: 1;
	display: block;
	color: var(--color-text-dim);
	font-size: var(--text-sm);
	font-style: normal;
	line-height: var(--lh-base);
}
.acal-focus-entry--break .acal-focus-entry-date {
	order: 2;
	display: block;
	color: var(--color-text-soft);
	font-size: var(--text-xs);
	font-style: italic;
}
.acal-focus-meta {
	display: grid;
	gap: var(--sp-4);
}
.acal-focus-card {
	background: var(--color-surface-1);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: var(--sp-4) var(--sp-5);
}
.acal-focus-card-label {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-text-dim);
	margin-bottom: var(--sp-2);
}
.acal-focus-card-title {
	font-family: var(--font-heading);
	font-size: var(--text-base);
	font-weight: 400;
	color: var(--color-text);
	margin-bottom: var(--sp-1);
}
.acal-focus-card-range {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	color: var(--color-text-dim);
}
.acal-strip-section {
	padding-block: var(--sp-6);
}
.acal-strip-wrap {
	overflow-x: auto;
	scrollbar-width: none;
}
.acal-strip-wrap::-webkit-scrollbar {
	display: none;
}
.acal-strip {
	display: flex;
	height: 44px;
	min-width: 48rem;
	border-radius: var(--radius);
	overflow: hidden;
	border: 1px solid var(--border);
}
.acal-strip-seg {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 var(--sp-2);
	overflow: hidden;
	border-right: 1px solid var(--border);
	font-family: var(--font-body);
	font-size: var(--text-xs);
	letter-spacing: 0.06em;
	white-space: nowrap;
	flex-shrink: 0;
}
.acal-strip-seg:last-child {
	border-right: none;
}
.acal-strip-seg--session {
	background: var(--color-surface-2);
	color: var(--color-text);
}
.acal-strip-seg--break {
	background: var(--color-surface-1);
	color: var(--color-text-dim);
	font-style: italic;
}
.acal-strip-seg--current {
	background: rgba(190,10,10,0.14);
	color: var(--color-highlight);
}
.acal-strip-seg span {
	overflow: hidden;
	text-overflow: ellipsis;
}
.acal-strip-months {
	display: flex;
	min-width: 48rem;
	margin-top: var(--sp-2);
}
.acal-strip-month {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	color: var(--color-text-dim);
	text-align: center;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}
.acal-strip-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
	gap: var(--sp-3);
	margin-top: var(--sp-5);
}
.acal-strip-card {
	background: var(--color-surface-1);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: var(--sp-4);
}
.acal-strip-card--current {
	border-color: var(--gold-dark);
}
.acal-strip-card-title {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 500;
	color: var(--color-text);
	margin-bottom: var(--sp-1);
}
.acal-strip-card-range {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	color: var(--color-text-dim);
}
.acal-sessions {
	display: flex;
	flex-direction: column;
	gap: 0;
}
.acal-session {
	background: var(--color-surface-1);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	overflow: hidden;
	margin-bottom: var(--sp-3);
}
.acal-session--current {
	border-color: var(--gold-dark);
}
.acal-session-header {
	padding: var(--sp-4) var(--sp-5) var(--sp-4);
	border-bottom: 1px solid var(--border);
	display: flex;
	flex-direction: column;
	gap: var(--sp-1);
}
.acal-session-title {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 500;
	letter-spacing: 0.04em;
	color: var(--color-text);
	margin: 0;
}
.acal-session-range {
	font-family: var(--font-body);
	font-size: var(--text-xs);
	color: var(--color-text-dim);
}
.acal-entries {
	list-style: none;
	margin: 0;
	padding: 0 var(--sp-5);
}
.acal-entry {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-1);
	padding: var(--sp-3) 0;
	border-bottom: 1px solid var(--border);
	font-family: var(--font-body);
	font-size: var(--text-sm);
}
.acal-entry:last-child {
	border-bottom: none;
}
.acal-entry-date {
	color: var(--color-text-dim);
}
.acal-entry-desc {
	color: var(--color-text);
	line-height: var(--lh-base);
}
.acal-entry--break {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: var(--sp-1);
	padding-block: var(--sp-5);
	padding-inline: var(--sp-5);
	margin-inline: calc(-1 * var(--sp-5));
	background: var(--color-bg);
	border-bottom: 1px solid var(--border);
}
.acal-entry--break .acal-entry-desc {
	order: 1;
	display: block;
	color: var(--color-text-dim);
	font-size: var(--text-sm);
	font-style: normal;
	line-height: var(--lh-base);
}
.acal-entry--break .acal-entry-date {
	order: 2;
	display: block;
	color: var(--color-text-soft);
	font-size: var(--text-xs);
	font-style: italic;
}
.acal-gap {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	font-family: var(--font-body);
	font-size: var(--text-xs);
	color: var(--color-text-dim);
	font-style: italic;
	padding: var(--sp-3) 0;
	margin-bottom: var(--sp-3);
}
.acal-gap::before,
.acal-gap::after {
	content: '';
	flex: 1;
	height: 1px;
	background: var(--border);
}
.acal-gap-dates {
	white-space: nowrap;
}
.acal-empty {
	color: var(--color-text-dim);
	font-style: italic;
}

/* ── Alt color scheme (template-front-alt.php) ── */
body.theme-alt {
	/* Backgrounds: warm cream instead of near-black */
	--color-bg: #f0e8dc;
	--color-surface-1: #eae0d2;
	--color-surface-2: #e4d8c8;
	--color-surface-3: #ddd1bf;

	/* Text: dark on light */
	--color-text: #1c1010;
	--color-text-dim: rgba(28, 16, 16, 0.6);
	--color-text-soft: rgba(28, 16, 16, 0.35);
	--color-text-mid: rgba(28, 16, 16, 0.2);
	--color-text-ghost: rgba(28, 16, 16, 0.05);
	--color-text-faint: rgba(28, 16, 16, 0.08);

	/* Borders: dark on light */
	--border: rgba(28, 16, 16, 0.1);

	/* Accent: deep burgundy */
	--red: #5e1725;
	--red-vivid: #7a2035;
	--red-dim: rgba(94, 23, 37, 0.1);
	--color-accent: var(--red);
}

/* Hero has a hardcoded dark overlay — keep text light in alt theme */
body.theme-alt .hero-display,
body.theme-alt .hero-subhead,
body.theme-alt .hero-content .section-eyebrow {
	color: #f5f0eb;
}
/* btn-primary: light text on dark accent background */
body.theme-alt .btn-primary {
	color: #f5f0eb;
}

/* bg-white utility: --white is now dark text; keep surface near-white */
body.theme-alt .bg-white {
	background: #f8f3ec;
}

.wp-block-separator.is-style-light {
	border: none;
	border-top: 1px solid;
	opacity: 0.3;
}

/* ── Block layout fallbacks (hybrid theme - dynamic wp-container CSS unreliable) ── */
.wp-site-blocks {
	padding-inline: var(--section-px);
}

/* Classic page templates outputting the_content() directly into <main> */
main > .wp-block-group {
	padding-inline: var(--section-px);
}

/* Contain floats within each group block */
.wp-block-group:not(.is-layout-flex):not(.is-layout-grid) {
	display: flow-root;
}

/* Avoid orphaned last words in prose paragraphs */
.wp-block-paragraph {
	text-wrap: pretty;
}

/* Gutenberg embed blocks - responsive sizing + alignment */
.wp-block-embed {
	width: 100%;
	margin-bottom: var(--sp-8);
}
.wp-block-embed.aligncenter {
	margin-inline: auto;
}
.wp-block-embed__wrapper {
	position: relative;
}
.wp-block-embed.is-type-video .wp-block-embed__wrapper::before {
	content: "";
	display: block;
	padding-top: 56.25%;
}
.wp-block-embed.is-type-video .wp-block-embed__wrapper iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.wp-site-blocks
	:where(.entry-content, .wp-block-post-content)
	> :where(.alignfull):not(main),
.wp-site-blocks
	:where(main, .wp-block-post-content)
	> .wp-block-group.alignfull {
	position: relative;
	left: 50%;
	width: 100vw;
	max-width: 100vw;
	padding-inline: var(--section-px);
	transform: translateX(-50%);
}

.is-layout-flex {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--style--block-gap, 0.5em);
}
.is-layout-grid {
	display: grid;
	gap: var(--wp--style--block-gap, 0.5em);
}
.wp-block-columns {
	gap: var(--wp--style--block-gap, 2em);
}
.wp-block-column.is-layout-flow > * + *,
.wp-block-column.is-layout-constrained > * + * {
	margin-block-start: var(--wp--style--block-gap, 1.5rem);
	margin-block-end: 0;
}
.is-layout-flow > * + *,
.is-layout-constrained > * + * {
	margin-block-start: var(--wp--style--block-gap, 1.5rem);
	margin-block-end: 0;
}
.has-sp-1-padding {
	padding: var(--sp-1);
}
.has-sp-2-padding {
	padding: var(--sp-2);
}
.has-sp-3-padding {
	padding: var(--sp-3);
}
.has-sp-4-padding {
	padding: var(--sp-4);
}
.has-sp-5-padding {
	padding: var(--sp-5);
}
.has-sp-6-padding {
	padding: var(--sp-6);
}
.has-sp-7-padding {
	padding: var(--sp-7);
}
.has-sp-8-padding {
	padding: var(--sp-8);
}
.has-sp-10-padding {
	padding: var(--sp-10);
}
.has-sp-11-padding {
	padding: var(--sp-11);
}
.has-sp-12-padding {
	padding: var(--sp-12);
}
.has-sp-16-padding {
	padding: var(--sp-16);
}
.has-sp-20-padding {
	padding: var(--sp-20);
}
.is-content-justification-space-between {
	justify-content: space-between;
}
/* ══════════════════════════════════════════════════════════
   6. RESPONSIVE
══════════════════════════════════════════════════════════ */

@media (min-width: 40rem) {
	:root {
		--section-px: 2rem;
	}
	.videos-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.archive-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Slightly below the 48rem (768px) tier on purpose: a nominal 768px viewport
   can measure a few px narrower once a scrollbar or non-default root font
   size is factored in, and this was landing on the wrong side of an exact
   48rem boundary in testing -- 44rem gives headroom while still being
   comfortably past real mobile widths. */
@media (min-width: 44rem) {
	.mission-inner {
		flex-direction: row;
		align-items: center;
	}
	.classes-section-door {
		grid-template-columns: 1fr auto;
	}
	.classes-section-door-left {
		padding: var(--sp-7) var(--sp-7) var(--sp-7) 0;
		border-right: 1px solid var(--border);
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
	}
	.classes-section-door-right {
		padding: var(--sp-7) 0 var(--sp-7) var(--sp-7);
		align-items: flex-start;
		justify-content: center;
		min-width: 260px;
	}
}

@media (min-width: 48rem) {
	.post-content .alignleft {
		float: left;
		width: auto;
		max-width: 45%;
		margin: 0.25rem 2rem 1rem 0;
	}
	.post-content .alignright {
		float: right;
		width: auto;
		max-width: 45%;
		margin: 0.25rem 0 1rem 2rem;
	}
	.jim-page .alignleft {
		float: left !important;
		margin: 0.25rem 2rem 1rem 0;
	}
	.jim-page .alignright {
		float: right !important;
		margin: 0.25rem 0 1rem 2rem;
	}

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

	.personas-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 0 var(--sp-10);
	}

	

	.hero {
		min-height: 560px;
	}
	.hero-content {
		padding-block: var(--sp-12) var(--sp-11);
	}
	.hero-display {
		font-size: var(--text-3xl);
	}
	.hero-subhead {
		font-size: var(--text-lg);
	}
	.hero-actions {
		flex-direction: row;
		align-items: center;
		width: auto;
		max-width: none;
		gap: 28px;
	}

	.jim-image-col {
		max-height: 360px;
	}
	.jim-image-col img {
		object-position: right center;
	}
	.classes-section-head {
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-end;
	}
	.blog-header {
		flex-direction: row;
		align-items: flex-end;
		justify-content: space-between;
	}
	.tslider-header {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}
	.tslide-quote {
		font-size: var(--text-lg);
	}
	.testimonial-slide.has-image.active {
		grid-template-columns: minmax(10rem, 14rem) minmax(0, 1fr);
		align-items: start;
		gap: var(--sp-8);
	}
	.tslide-media {
		width: 100%;
	}
	.free-teachings-header {
		grid-template-columns: 1fr 1fr;
		gap: var(--sp-8);
	}

	.programs-intro {
		grid-template-columns: 1fr 1fr;
		gap: var(--sp-8);
		margin-bottom: 56px;
		align-items: start;
	}
	.programs-bands {
		display: grid;
		gap: var(--sp-5);
		grid-template-columns: 1fr 1fr;
	}
	.program-band {
		grid-template-rows: 1fr 1fr;
		padding: var(--sp-5);
		gap: var(--sp-5);
	}

	.stats-bar {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 0;
		padding-block: 32px;
		align-items: center;
	}
	.stats-credits {
		width: auto;
		text-align: center;
	}
	.stats-credits--logos {
		width: auto;
		flex: 1 1 0%;
		min-width: 0;
	}

	.blog-grid {
		grid-template-columns: 1fr 1fr;
	}
	.blog-card {
		padding: var(--sp-6);
	}
	.blog-card.featured {
		grid-column: 1 / -1;
		padding: var(--sp-7);
	}

	.footer-top {
		grid-template-columns: 1fr 1fr;
		gap: 32px;
	}

	.cta-actions {
		flex-direction: row;
		align-items: center;
		justify-content: center;
		gap: 28px;
	}

	.related-posts-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 48rem) {
	.instructors-grid {
		grid-template-columns: repeat(4, 1fr);
	}

	.reviews-featured-card.has-image,
	.reviews-featured-card:has(.reviews-featured-media) {
		grid-template-columns: minmax(10rem, 16rem) minmax(0, 1fr);
		align-items: start;
		gap: var(--sp-7);
	}
	.reviews-featured-media {
		width: 100%;
		max-width: none;
	}
	.reviews-index-inner,
	.reviews-cta-inner {
		grid-template-columns: minmax(0, 1.2fr) minmax(12rem, 0.8fr);
		align-items: end;
	}
	.reviews-cta-actions {
		justify-content: flex-end;
	}
	.reviews-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
	}
	.review-card--featured {
		grid-column: span 2;
	}
	.review-card--platform {
		min-height: 8rem;
	}
}
@media (min-width: 56.25rem) {
	:root {
		--section-px: 2.5rem;
	}
	.nav-links {
		display: flex;
		flex-direction: row;
		position: static;
		background: none;
		border: none;
		padding: 0;
	}
	.nav-toggle {
		display: none;
	}
	.site-header nav {
		position: relative;
	}
	.sub-menu-toggle {
		display: none;
	}
	.nav-links li.menu-item-has-children > a::after {
		content: '▾';
		margin-left: 4px;
		font-size: 0.7em;
		opacity: 0.5;
		vertical-align: middle;
	}
	.nav-links .sub-menu {
		display: flex;
		flex-direction: column;
		position: absolute;
		top: 100%;
		left: 50%;
		translate: -50% -4px;
		min-width: 200px;
		padding: calc(var(--sp-2) + 10px) 0 var(--sp-2);
		margin: 0;
		gap: 0;
		background: var(--color-surface-1);
		border: 1px solid var(--border);
		border-radius: var(--radius);
		opacity: 0;
		pointer-events: none;
		transition: opacity 0.15s ease, translate 0.15s ease;
		z-index: 200;
	}
	.nav-links li.menu-item-has-children:hover > .sub-menu,
	.nav-links li.menu-item-has-children:focus-within > .sub-menu {
		opacity: 1;
		pointer-events: auto;
		translate: -50% 0;
	}
	.nav-links li.menu-item-has-children.open > .sub-menu {
		display: flex;
	}
	.nav-links .sub-menu a {
		display: block;
		padding: var(--sp-2) var(--sp-4);
		font-size: var(--text-sm) !important;
		white-space: nowrap;
	}
}

@media (min-width: 64rem) {
	:root {
		--section-px: 3.25rem;
		--section-py: var(--sp-12);
	}
	.classes-section-door-right {
		min-width: 400px;
	}
	.grid-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.personas-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.grid-4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.hero {
		min-height: 640px;
	}
	.hero-display {
		font-size: var(--text-3xl);
	}

	.art-living {
		padding-block: var(--sp-12);
	}

	.jim-section .container {
		grid-template-columns: 1fr 2fr;
		border-radius: var(--radius);
	}
	.jim-image-col {
		max-height: none;
	}
	.jim-image-col img {
		object-position: right 40%;
	}
	.jim-image-overlay {
		background: linear-gradient(
			to right,
			transparent 70%,
			var(--color-bg) 100%
		);
	}
	.jim-content-col {
		padding: 72px 0 72px 56px;
	}
	.jim-heading {
		font-size: var(--text-3xl);
	}

	.studio-strip {
		grid-template-columns: repeat(3, 1fr);
		gap: var(--sp-10);
	}

	.videos-grid {
		grid-template-columns: repeat(3, 1fr);
	}
	.free-teachings-header {
		grid-template-columns: 1fr 1fr;
		gap: var(--sp-10);
	}

	.testimonials-grid {
		grid-template-columns: repeat(3, 1fr);
	}
	.reviews-featured-card.has-image,
	.reviews-featured-card:has(.reviews-featured-media) {
		grid-template-columns: minmax(12rem, 24rem) minmax(0, 1fr);
		gap: var(--sp-8);
	}
	.reviews-featured-card:first-child .reviews-featured-quote {
		font-size: var(--text-xl);
	}
	.reviews-index-inner,
	.reviews-cta-inner {
		grid-template-columns: minmax(0, 1.2fr) minmax(16rem, 0.8fr);
	}

	.stats-bar {
		flex-wrap: nowrap;
		padding-block: 36px;
	}

	.blog-grid {
		grid-template-columns: 1.6fr 1fr;
	}

	.footer-top {
		grid-template-columns: 1.5fr 1fr 1fr 1fr;
	}

	.instructors-grid {
		grid-template-columns: repeat(5, 1fr);
		gap: 32px;
	}
	.instructors-heading {
		font-size: var(--text-3xl);
	}

	.programs-intro {
		grid-template-columns: 1fr 1fr;
		gap: var(--sp-10);
		margin-bottom: 64px;
	}
	.programs-bands {
		grid-template-columns: repeat(4, 1fr);
		/* gap: var(--sp-5); */
	}
	.program-band {
		grid-template-rows: initial;
		/* grid-template-columns: 56px 1fr 1fr 24px; */
		gap: var(--sp-8);
		padding: var(--sp-4);
		align-items: start;
	}
	.program-band::before {
		display: none;
	}
	.program-band-desc {
		display: block;
	}
	.program-band-arrow {
		display: block;
		opacity: 0;
	}
	.program-band:hover .program-band-arrow {
		opacity: 1;
		transform: translateX(0);
	}

	.archive-grid {
		grid-template-columns: repeat(3, 1fr);
	}
	.single-class-layout {
		grid-template-columns: 1fr 320px;
		align-items: start;
		padding-block: var(--sp-10);
		gap: var(--sp-12);
		padding-bottom: var(--sp-10);
	}
	.single-class-aside {
		order: 0;
		position: sticky;
		top: var(--sp-8);
	}
	.single-class-mobile-cta {
		display: none;
	}
	.single-class-bar-spacer {
		display: none;
	}
	.single-class-cta {
		display: block;
		margin-bottom: var(--sp-4);
		padding-bottom: var(--sp-4);
		border-bottom: 1px solid var(--border);
	}
	.single-faculty-layout {
		grid-template-columns: 300px 1fr;
		align-items: start;
		padding: 60px 52px;
	}
	.single-faculty-photo-col {
		max-width: none;
	}
	.single-faculty-main h1 {
		font-size: var(--text-2xl);
	}
	.single-post-layout {
		grid-template-columns: 1fr 280px;
		gap: var(--sp-16);
		align-items: start;
		max-width: 1060px;
	}
	.single-program-layout {
		grid-template-columns: 1fr 240px;
		max-width: 1160px;
	}
	.single-post-aside {
		position: sticky;
		top: calc(72px + var(--sp-8));
		align-self: start;
	}
	.single-post-main h1 {
		font-size: var(--text-3xl);
	}

	.cta-heading {
		font-size: var(--text-3xl);
	}
	.cta-section {
		padding: var(--sp-16) var(--section-px);
	}

	.section-heading,
	.blog-heading {
		font-size: var(--text-3xl);
	}
}

@media (min-width: 40rem) {
	.cp-alumni-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

@media (min-width: 48rem) {
	.cp-twocol {
		grid-template-columns: 1.2fr 1fr;
	}
	.cp-card {
		order: 0;
	}
	.cp-pillars-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 0;
	}
	.cp-pillar {
		padding-block: var(--sp-7);
		padding-inline: var(--sp-6);
		border-top: 1px solid var(--theme-border);
		border-bottom: 1px solid var(--theme-border);
		border-left: none;
	}
	.cp-pillar + .cp-pillar {
		border-left: 1px solid var(--theme-border);
	}
	.cp-pillar:last-child {
		border-bottom: 1px solid var(--theme-border);
	}
}

@media (min-width: 40rem) {
	.mt-cards {
		grid-template-columns: repeat(2, 1fr);
	}
	.mt-featured-inner {
		grid-template-columns: 1.4fr 1fr;
	}
	.mt-featured-title {
		font-size: var(--text-2xl);
	}
	.mt-index-row {
		grid-template-columns: 48px 1fr auto auto;
		grid-template-areas:
			"ep  name  dur  watch"
			"ep  tag   dur  watch";
	}
}

@media (min-width: 48rem) {
	.mt-cards {
		grid-template-columns: repeat(3, 1fr);
	}
	.mt-index-cols {
		display: grid;
		grid-template-columns: 48px 100px 1fr 140px 60px 60px 70px;
		gap: var(--sp-4);
		padding: var(--sp-3) 0;
		border-top: 1.5px solid rgba(245,240,235,0.3);
		border-bottom: 1px dashed var(--border);
		font-family: var(--font-body);
		font-size: var(--text-2xs);
		letter-spacing: 0.18em;
		text-transform: uppercase;
		color: var(--color-text-soft);
	}
	.mt-index-row {
		grid-template-columns: 48px 100px 1fr 140px 60px 60px 70px;
		grid-template-areas: "ep still name tag year dur watch";
		align-items: center;
		padding: var(--sp-4) 0;
	}
	.mt-index-still {
		grid-area: still;
		display: block;
		position: relative;
		aspect-ratio: 16/9;
		overflow: hidden;
		background: var(--color-surface-2);
	}
	.mt-index-still img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		opacity: 0.7;
	}
	.mt-index-tag {
		grid-area: tag;
	}
	.mt-index-year {
		grid-area: year;
		display: block;
		font-family: var(--font-body);
		font-size: var(--text-xs);
		color: var(--color-text-soft);
	}
	.mt-index-dur {
		grid-area: dur;
		text-align: left;
		justify-self: auto;
	}
	.mt-index-watch {
		grid-area: watch;
		text-align: right;
		justify-self: end;
	}
}

@media (min-width: 64rem) {
	.mt-cards {
		grid-template-columns: repeat(4, 1fr);
	}
	.mt-featured-inner {
		grid-template-columns: 1.6fr 1fr;
		gap: var(--sp-10);
	}
	.mt-featured-title {
		font-size: var(--text-2xl);
	}
}

@media (min-width: 40rem) {
	.ms-watch-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.ms-arc-item {
		width: 10rem;
	}
}

@media (min-width: 48rem) {
	.ms-player-inner {
		display: grid;
		grid-template-columns: 1.5fr 1fr;
		gap: var(--sp-8);
		align-items: start;
	}
	.ms-meta-title {
		font-size: var(--text-2xl);
	}
	.ms-watch-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (min-width: 64rem) {
	.ms-player-inner {
		grid-template-columns: 1.6fr 1fr;
		gap: var(--sp-12);
	}
	.ms-meta-title {
		font-size: var(--text-3xl);
	}
	.ms-watch-grid {
		grid-template-columns: repeat(4, 1fr);
	}
	.ms-arc-item {
		width: 11rem;
	}
}

@media (min-width: 48rem) {
	.faq-index-hint {
		display: block;
	}
	.faq-index-grid {
		grid-template-columns: 1fr 1fr;
		column-gap: var(--sp-12);
	}
	.faq-chapter-opener {
		flex-direction: row;
		gap: var(--sp-10);
		align-items: flex-start;
	}
	.faq-chapter-num-col {
		flex: 0 0 160px;
	}
	.faq-chapter-body {
		flex: 1;
		border-left: 1px solid var(--border);
		padding-left: var(--sp-7);
	}
	.faq-qa {
		flex-direction: row;
		gap: var(--sp-8);
	}
	.faq-qa-meta {
		flex: 0 0 160px;
	}
	.faq-qa-body {
		flex: 1;
		border-left: 1px solid var(--border);
		padding-left: var(--sp-7);
	}
	.faq-contact-inner {
		flex-direction: row;
		align-items: flex-start;
		gap: var(--sp-12);
	}
	.faq-contact-cta {
		flex: 1;
	}
	.faq-hours-card {
		flex: 0 0 340px;
	}
	.faq-related-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (min-width: 48rem) {
	.faq-teaser-inner {
		flex-direction: row;
		gap: var(--sp-12);
		align-items: flex-start;
	}
	.faq-teaser-header {
		flex: 0 0 220px;
		position: sticky;
		top: var(--sp-8);
	}
}

@media (min-width: 64rem) {
	.mt-alumni-names-flow {
		font-size: var(--text-xl);
	}
}

@media (min-width: 75rem) {
	.reviews-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.review-card--featured {
		grid-column: span 2;
	}
}

/* On touch devices show button inline since there's no hover */
@media (hover: none) {
	.ps-card-overlay {
		position: static;
		background: none;
		opacity: 1;
		pointer-events: auto;
		display: block;
		padding-top: var(--sp-4);
	}
	.ps-thats-me {
		transform: none;
	}
	.ps-card.is-open .ps-card-overlay {
		display: none;
	}
}

@media (min-width: 40rem) {
	.ps-grid {
		display: grid;
		grid-template-columns: 1fr 1fr;
		overflow-x: visible;
		scroll-snap-type: none;
	}
	.ps-card {
		padding: var(--sp-7) var(--sp-6);
	}
}

@media (min-width: 64rem) {
	.ps-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* ── mt-* responsive ── */
@media (min-width: 40rem) {
	.mt-hero-inner {
		flex-direction: row;
		align-items: center;
	}
	.mt-hero-text {
		flex: 1;
	}
	.mt-hero-aside {
		flex: 1;
	}
	.mt-levels-grid {
		grid-template-columns: 1fr 1fr;
	}
	.mt-more-grid {
		grid-template-columns: 1fr 1fr 1fr;
	}
}

@media (min-width: 48rem) {
	.mt-intro-grid {
		display: grid;
		grid-template-columns: 1fr 1.8fr;
		align-items: start;
		gap: var(--sp-12);
	}
	.mt-method-grid {
		flex-direction: row;
		align-items: start;
		gap: var(--sp-12);
	}
	.mt-method-copy {
		flex: 1;
	}
	.mt-method-media {
		flex: 1;
	}
	.mt-vocab-grid {
		grid-template-columns: 1fr 1fr;
	}
	.mt-sandy-grid {
		display: grid;
		grid-template-columns: 1fr 1.5fr;
		gap: var(--sp-8);
	}
	.mt-timeline-entry {
		gap: var(--sp-10);
	}
	.mt-timeline-year {
		min-width: 11ch;
	}
	.mt-sessions-grid {
		grid-template-columns: 1fr 1fr;
	}
	.mt-alumni-names-flow {
		font-size: var(--text-lg);
	}
	.mt-resource {
		flex-direction: row;
		align-items: baseline;
		gap: var(--sp-8);
	}
	.mt-resource-type {
		width: 8rem;
	}
	.mt-resource-main {
		flex: 1;
		min-width: 0;
	}
}

@media (min-width: 64rem) {
	.mt-hero {
		min-height: 88vh;
	}
}

@media (min-width: 48rem) {
	.ss-account-grid {
		grid-template-columns: 14rem 1fr;
		gap: var(--sp-10);
	}
	.ss-account-header {
		padding-top: var(--sp-1);
	}
	.ss-pull p {
		font-size: var(--text-lg);
	}
}

@media (min-width: 40rem) {
	.acal-focus-entry {
		grid-template-columns: 14rem 1fr;
		gap: var(--sp-4);
	}
	.acal-entry {
		grid-template-columns: 14rem 1fr;
		gap: var(--sp-4);
	}
	.acal-focus-meta {
		grid-template-columns: 1fr 1fr;
	}
}

@media (min-width: 48rem) {
	.acal-focus-now {
		padding: var(--sp-7) var(--sp-8) var(--sp-8);
	}
	.acal-focus-title {
		font-size: var(--text-xl);
	}
	.acal-session-header {
		flex-direction: row;
		align-items: baseline;
		justify-content: space-between;
	}
}

