/* ═══════════════════════════════════════════════════════════
   Barre Muse — Editorial homepage stylesheet.
   Strict B&W. Helvetica Neue system stack — no external fonts.
   Responsive scale (clamp + mobile breakpoint at 880px).
   ═══════════════════════════════════════════════════════════ */

/* ── Tokens ──────────────────────────────────────────────── */
:root {
	--paper: #ffffff;
	--paper-2: #f7f7f7;
	--ink: #0a0a0a;
	--ink-soft: #1a1a1a;
	--ink-mute: #666666;
	--rule: #e5e5e5;
	--rule-soft: #f0f0f0;
	--accent: #0a0a0a;
	--serif:   Barlow, sans-serif;
	--display: Mangogrotesque, Arial, sans-serif;
	--sans:    Barlow, sans-serif;
	--mono:    Barlow, sans-serif;
}

/* ── Reset ───────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body.ed-root,
body {
	background: var(--paper);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
.ed-root img, .ed-root video { display: block; max-width: 100%; }
.ed-root a { color: inherit; text-decoration: none; }
.ed-root h1, .ed-root h2, .ed-root h3, .ed-root h4 {
	font-family: var(--display);
	font-weight: 400;
	letter-spacing: -0.02em;
	margin: 0;
	text-wrap: balance;
	line-height: 0.95;
}
.ed-root p { margin: 0; text-wrap: pretty; }
.ed-root button { font-family: inherit; cursor: pointer; }
.ed-root ul, .ed-root ol { margin: 0; padding: 0; list-style: none; }

/* ── Atoms ───────────────────────────────────────────────── */
.ed-eyebrow {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-mute);
	display: block;
}

.ed-link {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ink);
	border-bottom: 1px solid var(--ink);
	padding-bottom: 3px;
	display: inline-block;
	transition: opacity .15s;
}
.ed-link:hover { opacity: 0.55; }

.ed-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 24px;
	border-radius: 0;
	border: 1px solid var(--ink);
	background: var(--ink);
	color: var(--paper);
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	cursor: pointer;
	transition: opacity .15s, background .15s, color .15s;
	text-decoration: none;
}
.ed-btn:hover { opacity: 0.85; }
.ed-btn--ghost {
	background: transparent;
	color: var(--ink);
}
.ed-btn--ghost:hover {
	background: var(--ink);
	color: var(--paper);
	opacity: 1;
}
.ed-btn--on-dark {
	background: var(--paper);
	color: var(--ink);
	border-color: var(--paper);
}
.ed-btn--on-dark.ed-btn--ghost {
	background: transparent;
	color: var(--paper);
	border-color: var(--paper);
}
.ed-btn svg { width: 14px; height: 10px; }

/* Photo — placeholder gradient + optional real image background */
.ed-photo {
	background:
		repeating-linear-gradient(135deg, rgba(10,10,10,0.04) 0 6px, transparent 6px 14px),
		linear-gradient(180deg, #efefef, #d6d6d6);
	position: relative;
	overflow: hidden;
}
.ed-photo--warm {
	background:
		repeating-linear-gradient(135deg, rgba(10,10,10,0.06) 0 6px, transparent 6px 14px),
		linear-gradient(180deg, #d8d8d8, #a8a8a8);
}
.ed-photo--dark {
	background:
		repeating-linear-gradient(135deg, rgba(255,255,255,0.04) 0 6px, transparent 6px 14px),
		linear-gradient(180deg, #1a1a1a, #0b0b0b);
	color: #ffffff;
}
.ed-photo--has-image {
	background-size: cover !important;
	background-position: center !important;
	background-repeat: no-repeat !important;
}
.ed-photo__cap {
	position: absolute;
	bottom: 12px;
	left: 14px;
	font-family: var(--mono);
	font-size: 9px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(10,10,10,0.65);
}
.ed-photo--dark .ed-photo__cap,
.ed-photo--has-image .ed-photo__cap {
	color: rgba(255,255,255,0.85);
	background: rgba(0,0,0,0.32);
	padding: 4px 8px;
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}
.ed-photo__fig {
	position: absolute;
	top: 18px;
	right: 18px;
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(10,10,10,0.7);
}
.ed-photo--dark .ed-photo__fig,
.ed-photo--has-image .ed-photo__fig {
	color: rgba(255,255,255,0.85);
	background: rgba(0,0,0,0.28);
	padding: 4px 8px;
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}

/* ── Layout helpers ──────────────────────────────────────── */
.ed-wrap { padding-inline: clamp(20px, 4vw, 40px); }

/* ── Site header (top nav) ───────────────────────────────── */
.ed-nav {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	padding: 22px clamp(20px, 4vw, 40px);
	border-bottom: 1px solid var(--rule);
}
.ed-nav__menu { display: flex; gap: 32px; }
.ed-nav__menu a,
.ed-nav__actions a,
.ed-nav__actions span {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-mute);
	transition: color .15s;
}
.ed-nav__menu a.is-active,
.ed-nav__menu a:hover,
.ed-nav__actions a:hover { color: var(--ink); }
.ed-nav__brand {
	font-family: var(--display);
	font-style: italic;
	font-size: 26px;
	font-weight: 400;
	letter-spacing: -0.01em;
	color: var(--ink);
	line-height: 1;
}
.ed-nav__actions {
	display: flex;
	gap: 24px;
	justify-content: flex-end;
	align-items: center;
}
.ed-nav__actions .ed-cart sup { font-size: 8px; }
.ed-nav__toggle { display: none; }

/* ── Issue strip ─────────────────────────────────────────── */
.ed-issue {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	padding: 14px clamp(20px, 4vw, 40px);
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-mute);
	border-bottom: 1px solid var(--rule-soft);
}

/* ── Hero ────────────────────────────────────────────────── */
.ed-hero {
	padding: clamp(56px, 8vw, 100px) clamp(20px, 4vw, 40px) clamp(40px, 5vw, 60px);
}
.ed-hero__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: clamp(24px, 4vw, 48px);
	align-items: end;
}
.ed-hero h1 {
	font-size: clamp(72px, 14vw, 200px);
	line-height: 0.86;
	letter-spacing: -0.04em;
	margin-top: 24px;
	font-weight: 400;
}
.ed-hero h1 em { font-style: italic; }
.ed-hero__copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 32px;
	padding-bottom: 24px;
}
.ed-hero__lede {
	font-family: var(--display);
	font-style: italic;
	font-size: clamp(20px, 2.2vw, 30px);
	line-height: 1.25;
	color: var(--ink-soft);
	max-width: 380px;
}
.ed-hero__cta {
	display: flex;
	gap: 14px;
	margin-top: 8px;
	flex-wrap: wrap;
}

/* ── Plate I — full bleed image ──────────────────────────── */
.ed-plate {
	padding: 40px clamp(20px, 4vw, 40px) 0;
}
.ed-plate__img {
	width: 100%;
	height: clamp(360px, 45vw, 560px);
}
.ed-plate__captions {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 24px;
	padding-top: 18px;
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-mute);
}
.ed-plate__captions span:last-child { text-align: right; }

/* ── Section heading (eyebrow + serif h2) ────────────────── */
.ed-section {
	padding: clamp(80px, 10vw, 160px) clamp(20px, 4vw, 40px) clamp(56px, 8vw, 120px);
}
.ed-section__head {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 48px;
	margin-bottom: 56px;
}
.ed-section__head h2 {
	font-size: clamp(48px, 8vw, 96px);
	line-height: 0.95;
	letter-spacing: -0.03em;
	font-weight: 400;
}
.ed-section__head h2 em { font-style: italic; }

/* ── Course spreads ──────────────────────────────────────── */
.ed-course {
	display: grid;
	gap: clamp(28px, 4vw, 48px);
	align-items: center;
	padding: clamp(40px, 5vw, 56px) 0;
	border-top: 1px solid var(--rule);
}
.ed-course:last-of-type { border-bottom: 1px solid var(--rule); }
.ed-course--right { grid-template-columns: 1fr 1.4fr; }
.ed-course--left  { grid-template-columns: 1.4fr 1fr; }
.ed-course__photo { height: clamp(280px, 32vw, 420px); }
.ed-course__copy { padding-block: 0; }
.ed-course__meta {
	display: flex;
	align-items: baseline;
	gap: 18px;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.22em;
	color: var(--ink-mute);
}
.ed-course__meta .ed-course__num { color: var(--ink-mute); }
.ed-course__meta .ed-course__lvl { font-size: 10px; text-transform: uppercase; }
.ed-course h3 {
	font-size: clamp(48px, 7vw, 88px);
	line-height: 0.95;
	letter-spacing: -0.03em;
	font-weight: 400;
	margin-top: 14px;
}
.ed-course--italic h3 { font-style: italic; }
.ed-course p {
	margin-top: 20px;
	font-family: var(--display);
	font-style: italic;
	font-size: clamp(16px, 1.6vw, 22px);
	line-height: 1.4;
	color: var(--ink-soft);
	max-width: 480px;
}
.ed-course .ed-link { margin-top: 28px; }

/* ── Qualities (benefits) ────────────────────────────────── */
.ed-qualities {
	padding: clamp(80px, 10vw, 120px) clamp(20px, 4vw, 40px);
	border-top: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
}
.ed-qualities__grid {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 48px;
}
.ed-qualities__intro {
	font-family: var(--display);
	font-style: italic;
	font-size: clamp(18px, 1.8vw, 22px);
	line-height: 1.4;
	color: var(--ink-soft);
	max-width: 280px;
	margin-top: 24px;
}
.ed-quality {
	display: grid;
	grid-template-columns: 40px 1fr 1fr;
	gap: 32px;
	padding: 36px 0;
	border-top: 1px solid var(--rule);
	align-items: baseline;
}
.ed-quality:last-child { border-bottom: 1px solid var(--rule); }
.ed-quality__num {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.22em;
	color: var(--ink-mute);
}
.ed-quality h3 {
	font-size: clamp(36px, 6vw, 72px);
	line-height: 0.95;
	letter-spacing: -0.03em;
	font-weight: 400;
}
.ed-quality--italic h3 { font-style: italic; }
.ed-quality p {
	font-family: var(--display);
	font-style: italic;
	font-size: clamp(16px, 1.6vw, 22px);
	line-height: 1.4;
	color: var(--ink-soft);
}

/* ── Method (dark spread) ────────────────────────────────── */
.ed-method {
	background: var(--ink);
	color: var(--paper);
	padding: clamp(80px, 10vw, 160px) clamp(20px, 4vw, 40px);
}
.ed-method__grid {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: clamp(40px, 6vw, 80px);
	align-items: center;
}
.ed-method .ed-eyebrow { color: rgba(255, 255, 255, 0.55); }
.ed-method h2 {
	font-size: clamp(80px, 13vw, 160px);
	line-height: 0.86;
	letter-spacing: -0.04em;
	margin-top: 24px;
	font-weight: 400;
	color: var(--paper);
}
.ed-method h2 em { font-style: italic; color: #fff; }
.ed-method__lede {
	margin-top: 32px;
	font-family: var(--display);
	font-style: italic;
	font-size: clamp(20px, 2.2vw, 30px);
	line-height: 1.3;
	max-width: 520px;
	color: rgba(255, 255, 255, 0.82);
}
.ed-method__link {
	margin-top: 36px;
	display: inline-block;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--paper);
	border-bottom: 1px solid var(--paper);
	padding-bottom: 4px;
	text-decoration: none;
}
.ed-method__pillars {
	border-left: 1px solid rgba(255, 255, 255, 0.18);
	padding-left: clamp(24px, 4vw, 48px);
	display: flex;
	flex-direction: column;
	gap: 28px;
}
.ed-method__pillars h4 {
	font-family: var(--display);
	font-style: italic;
	font-size: clamp(24px, 2.6vw, 36px);
	font-weight: 400;
	line-height: 1;
	color: var(--paper);
}
.ed-method__pillars p {
	margin-top: 8px;
	font-size: 14px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.65);
}

/* ── Instructor ──────────────────────────────────────────── */
.ed-instructor {
	padding: clamp(80px, 10vw, 160px) clamp(20px, 4vw, 40px) clamp(80px, 10vw, 120px);
}
.ed-instructor__grid {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: clamp(40px, 6vw, 80px);
}
.ed-instructor__photo {
	width: 100%;
	height: clamp(440px, 60vw, 780px);
}
.ed-instructor__copy {
	padding-top: 60px;
	position: sticky;
	top: 40px;
	align-self: start;
}
.ed-instructor h2 {
	font-size: clamp(56px, 8vw, 96px);
	line-height: 0.92;
	letter-spacing: -0.03em;
	margin-top: 24px;
	font-weight: 400;
}
.ed-instructor h2 em { font-style: italic; }
.ed-instructor__bio {
	margin-top: 28px;
	font-family: var(--display);
	font-style: italic;
	font-size: clamp(18px, 1.8vw, 24px);
	line-height: 1.35;
	color: var(--ink-soft);
	max-width: 440px;
}
.ed-instructor__detail {
	margin-top: 24px;
	font-size: 14px;
	line-height: 1.7;
	color: var(--ink-soft);
	max-width: 420px;
}
.ed-instructor__credentials {
	margin-top: 36px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
	max-width: 440px;
}
.ed-instructor__credentials > div {
	padding-top: 14px;
	border-top: 1px solid var(--rule);
}
.ed-instructor__credentials dt,
.ed-instructor__credentials .ed-credential__label {
	font-family: var(--mono);
	font-size: 9px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-mute);
}
.ed-instructor__credentials dd,
.ed-instructor__credentials .ed-credential__value {
	margin: 8px 0 0;
	font-family: var(--display);
	font-style: italic;
	font-size: 18px;
	line-height: 1.3;
}

/* ── How it works ────────────────────────────────────────── */
.ed-how {
	padding: 40px clamp(20px, 4vw, 40px) clamp(80px, 10vw, 120px);
}
.ed-how__grid {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 48px;
}
.ed-how h2 {
	font-size: clamp(40px, 5vw, 64px);
	line-height: 1;
	letter-spacing: -0.03em;
	font-weight: 400;
	max-width: 780px;
}
.ed-how h2 em { font-style: italic; }
.ed-how__steps {
	margin-top: 48px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
}
.ed-how__roman {
	font-family: var(--display);
	font-style: italic;
	font-size: clamp(28px, 3vw, 36px);
	color: var(--accent);
}
.ed-how__step h4 {
	font-family: var(--display);
	font-size: clamp(24px, 2.4vw, 28px);
	font-weight: 400;
	margin-top: 8px;
}
.ed-how__step p {
	margin-top: 10px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--ink-soft);
}

/* ── Pricing ─────────────────────────────────────────────── */
.ed-pricing {
	padding: clamp(80px, 10vw, 120px) clamp(20px, 4vw, 40px);
	border-top: 1px solid var(--rule);
}
.ed-pricing__head {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 48px;
	margin-bottom: 56px;
}
.ed-pricing__head h2 {
	font-size: clamp(56px, 8vw, 96px);
	line-height: 0.95;
	letter-spacing: -0.03em;
	font-weight: 400;
}
.ed-pricing__head h2 em { font-style: italic; }
.ed-pricing__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid var(--rule);
}
.ed-tier {
	padding: 40px 36px 36px;
	border-right: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
	background: transparent;
	color: var(--ink);
	display: flex;
	flex-direction: column;
	gap: 14px;
	min-height: 340px;
}
.ed-tier:last-child { border-right: none; }
.ed-tier--featured {
	background: var(--ink);
	color: var(--paper);
}
.ed-tier__num {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-mute);
}
.ed-tier--featured .ed-tier__num { color: rgba(255, 255, 255, 0.6); }
.ed-tier h3 {
	font-family: var(--display);
	font-size: clamp(32px, 4vw, 48px);
	font-weight: 400;
	letter-spacing: -0.02em;
	line-height: 1;
}
.ed-tier--italic h3 { font-style: italic; }
.ed-tier__price {
	font-family: var(--display);
	font-size: clamp(24px, 2.5vw, 32px);
	font-style: italic;
	letter-spacing: -0.01em;
}
.ed-tier__desc {
	font-size: 14px;
	line-height: 1.5;
	color: var(--ink-soft);
	max-width: 240px;
}
.ed-tier--featured .ed-tier__desc { color: rgba(255, 255, 255, 0.7); }
.ed-tier__cta {
	margin-top: auto;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink);
	border-bottom: 1px solid var(--ink);
	padding-bottom: 3px;
	align-self: flex-start;
	text-decoration: none;
}
.ed-tier--featured .ed-tier__cta {
	color: var(--paper);
	border-color: var(--paper);
}

/* ── Object (Barre Stand) ────────────────────────────────── */
.ed-object {
	padding: clamp(80px, 10vw, 160px) clamp(20px, 4vw, 40px) clamp(80px, 10vw, 120px);
}
.ed-object__grid {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: clamp(40px, 6vw, 80px);
	align-items: end;
}
.ed-object__copy { padding-bottom: 60px; }
.ed-object h2 {
	font-size: clamp(64px, 10vw, 120px);
	line-height: 0.9;
	letter-spacing: -0.03em;
	margin-top: 24px;
	font-weight: 400;
}
.ed-object h2 em { font-style: italic; }
.ed-object__lede {
	margin-top: 24px;
	font-family: var(--display);
	font-style: italic;
	font-size: clamp(18px, 1.8vw, 22px);
	line-height: 1.4;
	color: var(--ink-soft);
	max-width: 380px;
}
.ed-object__price {
	margin-top: 36px;
	display: flex;
	align-items: baseline;
	gap: 16px;
	padding-top: 20px;
	border-top: 1px solid var(--rule);
	max-width: 420px;
}
.ed-object__price strong {
	font-family: var(--display);
	font-style: italic;
	font-size: clamp(36px, 4vw, 48px);
	letter-spacing: -0.02em;
	font-weight: 400;
}
.ed-object__price span {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-mute);
}
.ed-object__cta { margin-top: 24px; display: flex; gap: 14px; flex-wrap: wrap; }
.ed-object__photo { width: 100%; height: clamp(420px, 56vw, 680px); }

/* ── FAQ ─────────────────────────────────────────────────── */
.ed-faq {
	padding: clamp(80px, 10vw, 120px) clamp(20px, 4vw, 40px);
	border-top: 1px solid var(--rule);
}
.ed-faq__grid {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 48px;
}
.ed-faq h2 {
	font-size: clamp(40px, 5vw, 64px);
	line-height: 0.95;
	letter-spacing: -0.03em;
	margin-top: 24px;
	font-weight: 400;
}
.ed-faq h2 em { font-style: italic; }
.ed-faq details {
	border-top: 1px solid var(--rule);
	padding: 28px 0;
}
.ed-faq details:last-child { border-bottom: 1px solid var(--rule); }
.ed-faq summary {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 24px;
	cursor: pointer;
	list-style: none;
}
.ed-faq summary::-webkit-details-marker { display: none; }
.ed-faq summary > span:first-child {
	font-family: var(--display);
	font-size: clamp(22px, 2.6vw, 32px);
	font-weight: 400;
	letter-spacing: -0.02em;
}
.ed-faq details:nth-child(even) summary > span:first-child { font-style: italic; }
.ed-faq__icon {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	color: var(--ink-mute);
	flex-shrink: 0;
}
.ed-faq details[open] .ed-faq__icon::before { content: "—"; }
.ed-faq details:not([open]) .ed-faq__icon::before { content: "+"; }
.ed-faq details p {
	margin-top: 14px;
	font-family: var(--display);
	font-style: italic;
	font-size: clamp(16px, 1.6vw, 22px);
	line-height: 1.4;
	color: var(--ink-soft);
	max-width: 680px;
}

/* ── Coda (final close) ──────────────────────────────────── */
.ed-coda {
	padding: clamp(120px, 18vw, 200px) clamp(20px, 4vw, 40px);
	text-align: center;
}
.ed-coda h2 {
	font-size: clamp(72px, 14vw, 200px);
	line-height: 0.86;
	letter-spacing: -0.04em;
	margin-top: 36px;
	font-weight: 400;
}
.ed-coda h2 em { font-style: italic; }
.ed-coda__lede {
	margin-top: 36px;
	font-family: var(--display);
	font-style: italic;
	font-size: clamp(20px, 2.2vw, 30px);
	color: var(--ink-soft);
}
.ed-coda__cta {
	margin-top: 48px;
	display: inline-flex;
	gap: 14px;
	flex-wrap: wrap;
	justify-content: center;
}

/* ── Footer ──────────────────────────────────────────────── */
.ed-footer {
	padding: clamp(48px, 8vw, 80px) clamp(20px, 4vw, 40px) 32px;
	border-top: 1px solid var(--rule);
}
.ed-footer__grid {
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr 1fr;
	gap: 48px;
	align-items: start;
}
.ed-footer__brand .ed-nav__brand { font-size: clamp(32px, 4vw, 42px); }
.ed-footer__tag {
	margin-top: 18px;
	font-family: var(--display);
	font-style: italic;
	font-size: clamp(18px, 1.8vw, 22px);
	line-height: 1.3;
	color: var(--ink-soft);
	max-width: 340px;
}
.ed-footer__col h4 {
	font-family: var(--mono);
	font-size: 9px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-mute);
	font-weight: 500;
	margin-bottom: 18px;
}
.ed-footer__col ul {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.ed-footer__col li {
	font-family: var(--display);
	font-size: 18px;
	font-style: italic;
}
.ed-footer__col a:hover { opacity: 0.55; }
.ed-footer__base {
	margin-top: clamp(40px, 6vw, 64px);
	padding-top: 20px;
	border-top: 1px solid var(--rule-soft);
	display: flex;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	font-family: var(--mono);
	font-size: 9px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-mute);
}

/* ═══════════════════════════════════════════════════════════
   MOBILE — collapse below 880px to vertical editorial flow
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 880px) {
	.ed-nav {
		grid-template-columns: 1fr auto 1fr;
		padding: 14px 18px;
	}
	.ed-nav__menu { display: none; }
	.ed-nav__actions { gap: 14px; }
	.ed-nav__actions .ed-cart,
	.ed-nav__actions .ed-locale { display: none; }
	.ed-nav__brand { font-size: 18px; }
	.ed-nav__toggle {
		display: inline-flex;
		font-family: var(--mono);
		font-size: 10px;
		letter-spacing: 0.22em;
		text-transform: uppercase;
		color: var(--ink);
		justify-self: end;
	}

	.ed-issue {
		padding: 14px 18px;
		font-size: 9px;
	}
	.ed-issue span:nth-child(2) { display: none; }

	.ed-hero { padding: 36px 18px 24px; }
	.ed-hero__grid {
		grid-template-columns: 1fr;
		row-gap: 28px;
	}
	.ed-hero h1 { font-size: 84px; line-height: 0.86; margin-top: 14px; }
	.ed-hero__copy { padding-bottom: 0; gap: 20px; }
	.ed-hero__lede { font-size: 18px; }

	.ed-plate { padding: 24px 18px 0; }
	.ed-plate__img { height: 340px; }
	.ed-plate__captions {
		grid-template-columns: 1fr;
		gap: 8px;
	}
	.ed-plate__captions span:last-child { text-align: left; }

	.ed-section { padding: 56px 18px 56px; }
	.ed-section__head {
		grid-template-columns: 1fr;
		gap: 14px;
		margin-bottom: 28px;
	}
	.ed-section__head h2 { font-size: 48px; }

	.ed-course {
		grid-template-columns: 1fr !important;
		gap: 18px;
		padding: 28px 0;
	}
	.ed-course__photo { height: 220px; order: -1; }
	.ed-course h3 { font-size: 42px; }
	.ed-course p { font-size: 16px; max-width: none; }

	.ed-qualities { padding: 56px 18px; }
	.ed-qualities__grid { grid-template-columns: 1fr; gap: 14px; }
	.ed-qualities__intro { max-width: none; }
	.ed-quality {
		grid-template-columns: 36px 1fr;
		grid-template-rows: auto auto;
		gap: 8px 16px;
		padding: 24px 0;
	}
	.ed-quality__num { grid-row: 1 / 3; }
	.ed-quality h3 { font-size: 36px; }
	.ed-quality p { grid-column: 2; font-size: 16px; }

	.ed-method { padding: 56px 18px; }
	.ed-method__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.ed-method h2 { font-size: 80px; }
	.ed-method__pillars { border-left: 0; padding-left: 0; gap: 18px; }
	.ed-method__pillars h4 { font-size: 24px; }

	.ed-instructor { padding: 56px 18px; }
	.ed-instructor__grid { grid-template-columns: 1fr; gap: 28px; }
	.ed-instructor__photo { height: 460px; }
	.ed-instructor__copy { position: static; padding-top: 0; }
	.ed-instructor h2 { font-size: 56px; }
	.ed-instructor__bio,
	.ed-instructor__detail { max-width: none; }
	.ed-instructor__credentials { max-width: none; }

	.ed-how { padding: 0 18px 56px; }
	.ed-how__grid { grid-template-columns: 1fr; gap: 14px; }
	.ed-how h2 { font-size: 36px; }
	.ed-how__steps {
		margin-top: 28px;
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.ed-pricing { padding: 56px 18px; }
	.ed-pricing__head {
		grid-template-columns: 1fr;
		gap: 14px;
		margin-bottom: 28px;
	}
	.ed-pricing__head h2 { font-size: 48px; }
	.ed-pricing__grid { grid-template-columns: 1fr; }
	.ed-tier {
		border-right: none;
		padding: 32px 24px;
		min-height: 0;
	}

	.ed-object { padding: 56px 18px; }
	.ed-object__grid { grid-template-columns: 1fr; gap: 28px; align-items: stretch; }
	.ed-object__copy { padding-bottom: 0; }
	.ed-object h2 { font-size: 64px; }
	.ed-object__photo { height: 380px; order: -1; }

	.ed-faq { padding: 56px 18px; }
	.ed-faq__grid { grid-template-columns: 1fr; gap: 14px; }
	.ed-faq h2 { font-size: 36px; }

	.ed-coda { padding: 80px 18px; }
	.ed-coda h2 { font-size: 72px; }
	.ed-coda__lede { font-size: 20px; }

	.ed-footer { padding: 48px 18px 24px; }
	.ed-footer__grid { grid-template-columns: 1fr 1fr; gap: 28px; }
	.ed-footer__brand { grid-column: 1 / -1; }
	.ed-footer__base { flex-direction: column; gap: 8px; margin-top: 32px; }

	/* Mobile sticky bottom CTA */
	.ed-sticky-cta {
		position: fixed;
		bottom: 16px;
		left: 16px;
		right: 16px;
		padding: 14px 18px;
		background: var(--ink);
		color: var(--paper);
		font-family: var(--mono);
		font-size: 10px;
		letter-spacing: 0.22em;
		text-transform: uppercase;
		text-align: center;
		text-decoration: none;
		z-index: 50;
		box-shadow: 0 14px 40px rgba(0, 0, 0, 0.16);
	}
	body { padding-bottom: 80px; }
}

@media (min-width: 881px) {
	.ed-sticky-cta { display: none; }
}

/* ═══════════════════════════════════════════════════════════
   MVP product layer — components for free tiles, marathons,
   dashboard, week list, player, lock overlays.
   ═══════════════════════════════════════════════════════════ */

/* ── Generic 4-up & 3-up grids ───────────────────────────── */
.ed-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.ed-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(28px, 4vw, 48px); }

/* ── Free trial tile / Marathon-preview tile ─────────────── */
.ed-tile { display: flex; flex-direction: column; gap: 12px; }
.ed-tile__photo {
	display: block;
	width: 100%;
	height: clamp(220px, 24vw, 320px);
	margin-bottom: 4px;
	transition: transform .8s ease;
}
.ed-tile__photo:hover { transform: scale(1.005); }
.ed-tile__badge {
	position: absolute; top: 16px; left: 16px;
	padding: 6px 12px;
	background: var(--ink); color: var(--paper);
	font-family: var(--mono); font-size: 9px;
	letter-spacing: 0.22em; text-transform: uppercase;
}
.ed-tile__badge--mute { background: rgba(0,0,0,0.6); }
.ed-tile__meta {
	display: flex; justify-content: space-between;
	font-family: var(--mono); font-size: 10px;
	letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--ink-mute);
}
.ed-tile__title {
	font-family: var(--display);
	font-size: clamp(22px, 2.4vw, 28px);
	font-weight: 400;
	letter-spacing: -0.02em;
	line-height: 1.05;
}

/* ── Marathon catalog card ───────────────────────────────── */
.ed-mar { display: flex; flex-direction: column; gap: 14px; }
.ed-mar__photo {
	display: block;
	width: 100%;
	height: clamp(280px, 30vw, 380px);
	margin-bottom: 6px;
}
.ed-mar__meta {
	display: flex; justify-content: space-between;
	font-family: var(--mono); font-size: 10px;
	letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--ink-mute);
}
.ed-mar__title {
	font-family: var(--display);
	font-size: clamp(28px, 3vw, 40px);
	font-weight: 400;
	letter-spacing: -0.02em;
	line-height: 1.05;
}
.ed-mar__line {
	font-family: var(--display);
	font-style: italic;
	font-size: clamp(15px, 1.4vw, 18px);
	line-height: 1.4;
	color: var(--ink-soft);
}
.ed-mar__facts {
	display: grid; grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	padding: 18px 0;
	border-top: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
}
.ed-mar__facts dt {
	font-family: var(--mono); font-size: 9px;
	letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--ink-mute);
}
.ed-mar__facts dd {
	margin: 6px 0 0;
	font-family: var(--display);
	font-style: italic;
	font-size: 18px;
	letter-spacing: -0.01em;
}
.ed-mar__cta {
	display: flex; gap: 18px; align-items: center;
	flex-wrap: wrap;
	margin-top: 4px;
}

/* ── Marathon detail layout ──────────────────────────────── */
.ed-mar-detail {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(32px, 5vw, 64px);
	align-items: start;
	margin-bottom: clamp(48px, 6vw, 80px);
}
.ed-mar-detail__photo {
	width: 100%;
	height: clamp(420px, 56vw, 680px);
}

/* ── Week list (workouts inside a marathon) ──────────────── */
.ed-week { padding: 28px 0; border-top: 1px solid var(--rule); }
.ed-week:first-of-type { border-top: 1px solid var(--ink); }
.ed-week__head { margin-bottom: 16px; }
.ed-week__list { display: flex; flex-direction: column; }
.ed-week__row {
	display: grid;
	grid-template-columns: 80px 1fr 100px 120px;
	gap: 24px;
	align-items: center;
	padding: 18px 0;
	border-top: 1px solid var(--rule-soft);
	font-family: var(--display);
	font-size: 18px;
}
.ed-week__row:first-child { border-top: 0; }
.ed-week__num {
	font-family: var(--mono); font-size: 10px;
	letter-spacing: 0.22em; color: var(--ink-mute);
}
.ed-week__title { font-style: italic; }
.ed-week__title a { border-bottom: 1px solid transparent; transition: border-color .15s; }
.ed-week__title a:hover { border-bottom-color: var(--ink); }
.ed-week__duration {
	font-family: var(--mono); font-size: 11px;
	letter-spacing: 0.16em; color: var(--ink-mute);
}
.ed-week__state {
	font-family: var(--mono); font-size: 10px;
	letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--ink);
	text-align: right;
}
.ed-week__row--locked { opacity: 0.55; }
.ed-week__row--locked .ed-week__state { color: var(--ink-mute); }
.ed-week__row--free .ed-week__state { color: var(--ink); }
.ed-week__row--placeholder { opacity: 0.5; }

/* ── Workout player ──────────────────────────────────────── */
.ed-player { width: 100%; }
.ed-player__video,
.ed-player__embed {
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #000;
}
.ed-player__embed iframe {
	width: 100%; height: 100%; border: 0;
}
.ed-player__placeholder {
	aspect-ratio: 16 / 9;
	display: flex; align-items: center; justify-content: center;
}
.ed-player__locked {
	position: relative;
	aspect-ratio: 16 / 9;
	min-height: 380px;
	overflow: hidden;
}
.ed-player__lock-overlay {
	position: absolute; inset: 0;
	background: rgba(10, 10, 10, 0.78);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	color: var(--paper);
	display: flex; flex-direction: column;
	align-items: center; justify-content: center;
	text-align: center;
	padding: 32px;
}
.ed-player__lock-overlay h3 {
	font-family: var(--display);
	font-size: clamp(36px, 6vw, 64px);
	font-weight: 400;
	letter-spacing: -0.03em;
	margin-top: 14px;
	color: var(--paper);
}
.ed-player__lock-overlay p {
	margin-top: 14px;
	font-family: var(--display);
	font-style: italic;
	font-size: clamp(16px, 1.6vw, 20px);
	color: rgba(255,255,255,0.78);
	max-width: 480px;
}
.ed-player__meta {
	margin-top: 32px;
	padding: 20px 0;
	border-top: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
}
.ed-player__meta dl {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}
.ed-player__meta dt {
	font-family: var(--mono); font-size: 10px;
	letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--ink-mute);
}
.ed-player__meta dd {
	margin: 6px 0 0;
	font-family: var(--display);
	font-style: italic;
	font-size: 20px;
}
.ed-player__notes {
	margin-top: 32px;
	font-size: 16px;
	line-height: 1.7;
	color: var(--ink-soft);
	max-width: 680px;
}

/* ── Dashboard ───────────────────────────────────────────── */
.ed-dash {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(24px, 3vw, 48px);
	border-top: 1px solid var(--ink);
	padding-top: 32px;
}
.ed-dash__col { display: flex; flex-direction: column; gap: 16px; }
.ed-dash__head {
	display: flex; align-items: baseline; justify-content: space-between;
	border-bottom: 1px solid var(--rule);
	padding-bottom: 12px;
}
.ed-dash__head h3 {
	font-family: var(--display);
	font-style: italic;
	font-size: clamp(48px, 5vw, 72px);
	font-weight: 400;
	letter-spacing: -0.03em;
	line-height: 1;
}
.ed-dash__list { display: flex; flex-direction: column; }
.ed-dash__item {
	border-top: 1px solid var(--rule-soft);
	padding: 14px 0;
}
.ed-dash__item:first-child { border-top: 0; }
.ed-dash__item a, .ed-dash__item > span {
	display: grid;
	grid-template-columns: 80px 1fr auto;
	gap: 14px;
	align-items: center;
	color: inherit;
}
.ed-dash__num {
	font-family: var(--mono); font-size: 10px;
	letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--ink-mute);
}
.ed-dash__title {
	font-family: var(--display);
	font-style: italic;
	font-size: 18px;
	letter-spacing: -0.01em;
}
.ed-dash__duration {
	font-family: var(--mono); font-size: 10px;
	letter-spacing: 0.22em; color: var(--ink-mute);
}
.ed-dash__item--locked { opacity: 0.55; }
.ed-dash__empty {
	font-family: var(--display); font-style: italic;
	font-size: 16px; color: var(--ink-mute);
	line-height: 1.5;
}

/* ── Dashboard preview block on homepage ─────────────────── */
.ed-dash-preview {
	padding: clamp(80px, 10vw, 120px) clamp(20px, 4vw, 40px);
	border-top: 1px solid var(--rule);
}
.ed-dash-preview__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(32px, 5vw, 64px);
	align-items: center;
}
.ed-dash-preview h2 {
	font-size: clamp(48px, 7vw, 88px);
	line-height: 0.95;
	letter-spacing: -0.03em;
	font-weight: 400;
	margin-top: 24px;
}
.ed-dash-preview h2 em { font-style: italic; }
.ed-dash-preview__lede {
	margin-top: 24px;
	font-family: var(--display);
	font-style: italic;
	font-size: clamp(16px, 1.6vw, 22px);
	line-height: 1.4;
	color: var(--ink-soft);
	max-width: 460px;
}
.ed-dash-preview__panel {
	border: 1px solid var(--rule);
	padding: 32px 28px;
	display: flex; flex-direction: column; gap: 18px;
}
.ed-dash-preview__row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 18px;
	padding: 16px 0;
	border-top: 1px solid var(--rule-soft);
	font-family: var(--display);
	font-style: italic;
	font-size: 22px;
}
.ed-dash-preview__row:first-child { border-top: 0; padding-top: 0; }
.ed-dash-preview__label {
	font-family: var(--mono);
	font-style: normal;
	font-size: 10px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-mute);
}

/* ── 4-tier pricing grid override ────────────────────────── */
.ed-pricing__grid--4 { grid-template-columns: repeat(4, 1fr); }
.ed-pricing__grid--4 .ed-tier:nth-child(3) { background: var(--ink); color: var(--paper); }
.ed-pricing__grid--4 .ed-tier:nth-child(3) .ed-tier__num { color: rgba(255,255,255,0.6); }
.ed-pricing__grid--4 .ed-tier:nth-child(3) .ed-tier__cta {
	color: var(--paper);
	border-color: var(--paper);
}
.ed-pricing__grid--4 .ed-tier:nth-child(3) .ed-tier__desc { color: rgba(255,255,255,0.7); }

/* ═══════════════════════════════════════════════════════════
   Mobile overrides for the MVP layer
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 880px) {
	.ed-grid-4 { grid-template-columns: 1fr 1fr; gap: 24px; }
	.ed-grid-3 { grid-template-columns: 1fr; gap: 32px; }

	.ed-tile__photo { height: 220px; }
	.ed-tile__title { font-size: 20px; }

	.ed-mar__photo { height: 220px; }
	.ed-mar__title { font-size: 28px; }
	.ed-mar__facts { grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
	.ed-mar__facts dd { font-size: 16px; }

	.ed-mar-detail { grid-template-columns: 1fr; }
	.ed-mar-detail__photo { height: 320px; }

	.ed-week__row {
		grid-template-columns: 60px 1fr;
		grid-template-rows: auto auto;
		gap: 6px 14px;
		padding: 16px 0;
	}
	.ed-week__num { grid-row: 1 / 3; align-self: start; padding-top: 4px; }
	.ed-week__duration,
	.ed-week__state {
		font-size: 9px;
	}
	.ed-week__state { text-align: left; }

	.ed-player__meta dl { grid-template-columns: 1fr 1fr; gap: 18px; }

	.ed-dash {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.ed-dash-preview { padding: 56px 20px; }
	.ed-dash-preview__inner { grid-template-columns: 1fr; gap: 28px; }
	.ed-dash-preview h2 { font-size: 48px; }

	.ed-pricing__grid--4 { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════
   ANIMATION LAYER — initial hidden states (.js-anim only)
   The `.js-anim` class is added synchronously in <head> ONLY
   when JavaScript is enabled AND prefers-reduced-motion is off.
   Reduced-motion users and no-JS users see content normally.
   ═══════════════════════════════════════════════════════════ */

/* Page chrome — fade in on load */
.js-anim .ed-nav,
.js-anim .ed-issue {
	opacity: 0;
}

/* fade-up — translateY + opacity */
.js-anim [data-animate="fade-up"] {
	opacity: 0;
	transform: translateY(28px);
	will-change: opacity, transform;
}

/* image-reveal — opacity + slow scale 1.06 → 1 */
.js-anim [data-animate="image-reveal"] {
	opacity: 0;
	transform: scale(1.06);
	transform-origin: center;
	will-change: opacity, transform;
}

/* line-reveal — clip-mask container. JS wraps content into .ed-line
   blocks and runs GSAP. The h1 stays opacity:0 until JS finishes wrapping
   so users never see unwrapped raw text flash in. GSAP sets opacity:1
   on the h1 itself just before animating the inner lines. */
.js-anim [data-animate="line-reveal"] {
	opacity: 0;
	will-change: opacity;
}
.js-anim [data-animate="line-reveal"] .ed-line {
	display: block;
	overflow: hidden;
}
.js-anim [data-animate="line-reveal"] .ed-line__inner {
	display: block;
	will-change: transform;
}

/* stagger grid children — fade-up in sequence */
.js-anim [data-stagger] > * {
	opacity: 0;
	transform: translateY(20px);
	will-change: opacity, transform;
}

/* Sticky CTA stays hidden until JS shows it */
.js-anim .ed-sticky-cta {
	opacity: 0;
	transform: translateY(80px);
	will-change: opacity, transform;
}

/* ── Hover refinements — soft transitions ──────────────── */
.ed-photo--has-image,
.ed-tile__photo,
.ed-mar__photo {
	transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-tile:hover .ed-tile__photo,
.ed-mar:hover .ed-mar__photo {
	transform: scale(1.015);
}

.ed-btn,
.ed-link,
.ed-tier__cta,
.ed-method__link {
	transition: opacity 0.35s ease, background 0.35s ease, color 0.35s ease, border-color 0.35s ease;
}

/* Subtle arrow movement on text-link hover */
.ed-link:hover { letter-spacing: 0.18em; }
.ed-link { transition: opacity 0.35s ease, letter-spacing 0.5s cubic-bezier(0.2, 0.7, 0.3, 1); }

/* FAQ — keep CSS rotation as fallback when JS is off; JS handles height */
.ed-faq__icon {
	transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.3, 1);
	display: inline-block;
}
.ed-faq details[open] .ed-faq__icon {
	transform: rotate(45deg);
}
.ed-faq details p {
	transition: opacity 0.4s ease;
}
/* When JS smooths height, native + → − content swap is jarring; keep static + */
.js-anim .ed-faq__icon::before { content: '+' !important; }

/* Reduce-motion safety: explicitly disable transitions for those users */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ═══════════════════════════════════════════════════════════
   2026 GROTESK SYSTEM — Satoshi-led typography
   Drops DM Serif Display. Headlines move to Satoshi 600–700
   with tighter letter-spacing. Buttons become pill-shaped.
   `em` accents switch from italic to weight contrast.
   Keeps Inter as fallback/UI; mono for technical labels.
   ═══════════════════════════════════════════════════════════ */

:root {
	--display: Mangogrotesque, Arial, sans-serif;
	--serif:   Barlow, sans-serif;
	--sans:    Barlow, sans-serif;
	--mono:    Barlow, sans-serif;
}

/* ── Headlines — confident, tight, modern ───────────────── */
.ed-root h1,
.ed-root h2,
.ed-root h3,
.ed-root h4 {
	font-family: var(--display);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 0.95;
}
.ed-hero h1,
.ed-page-hero h1,
.ed-coda h2 {
	font-weight: 700;
	letter-spacing: -0.04em;
}
.ed-method h2,
.ed-section__head h2 {
	font-weight: 700;
	letter-spacing: -0.035em;
}

/* `em` accents — weight contrast instead of italic flourish */
.ed-root h1 em,
.ed-root h2 em,
.ed-root h3 em,
.ed-root h4 em,
.ed-faq summary > span:first-child {
	font-style: normal;
	font-weight: 700;
}

/* Specific overrides where italic was intentional editorial — kill it */
.ed-hero__lede,
.ed-mar__line,
.ed-mar-feature__line,
.ed-method__lede,
.ed-instructor__bio,
.ed-instructor__credentials dd,
.ed-instructor__credentials .ed-credential__value,
.ed-quality p,
.ed-qualities__intro,
.ed-tile__title,
.ed-tier__price,
.ed-tier h3,
.ed-faq summary > span:first-child,
.ed-faq details p,
.ed-coda__lede,
.ed-footer__col li,
.ed-footer__tag,
.ed-dash-preview__lede,
.ed-dash-preview__row,
.ed-dash__title,
.ed-dash__head h3,
.ed-week__title,
.ed-mar__facts dd,
.ed-week__row,
.ed-player__meta dd,
.ed-object__price strong,
.ed-object__lede {
	font-style: normal;
}

/* Body lede paragraphs gain a touch more weight for product clarity */
.ed-hero__lede,
.ed-method__lede,
.ed-instructor__bio,
.ed-mar-feature__line,
.ed-coda__lede,
.ed-section__head .ed-eyebrow + h2 + p {
	font-weight: 400;
	letter-spacing: -0.005em;
}

/* Brand wordmark — drop the editorial italic for a cleaner mark */
.ed-nav__brand,
.ed-footer__brand .ed-nav__brand {
	font-family: var(--display);
	font-style: normal;
	font-weight: 700;
	letter-spacing: -0.025em;
}

/* Tier headlines — heavier, no italic */
.ed-tier h3 { font-weight: 600; }
.ed-tier__price { font-weight: 700; }
.ed-tier--italic h3 { font-style: normal; font-weight: 700; }

/* Footer link list — clean grotesk, weight 500 */
.ed-footer__col li {
	font-family: var(--display);
	font-weight: 500;
	letter-spacing: -0.01em;
}

/* Small editorial italics in lede paragraphs become non-italic */
.ed-tile__title { font-weight: 600; }
.ed-mar__title,
.ed-mar-feature__title { font-weight: 700; }

/* ── Buttons — modern pill, larger padding, weight 600 ────
   Selectors prefixed with `.ed-root` to win specificity over the
   global `.ed-root a { color: inherit }` rule above (which would
   otherwise make the primary button's white text inherit black). */
.ed-root .ed-btn,
.ed-root a.ed-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 18px 32px;
	border-radius: 999px;
	border: 1px solid var(--ink);
	background: var(--ink);
	color: var(--paper);
	font-family: var(--display);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: -0.005em;
	text-transform: none;
	cursor: pointer;
	transition: background 0.35s ease, color 0.35s ease, border-color 0.35s ease, transform 0.35s ease;
	text-decoration: none;
}
.ed-root .ed-btn:hover,
.ed-root a.ed-btn:hover { transform: translateY(-1px); }
.ed-root .ed-btn--ghost,
.ed-root a.ed-btn--ghost {
	background: transparent;
	color: var(--ink);
}
.ed-root .ed-btn--ghost:hover,
.ed-root a.ed-btn--ghost:hover {
	background: var(--ink);
	color: var(--paper);
}
.ed-root .ed-btn--on-dark,
.ed-root a.ed-btn--on-dark {
	background: var(--paper);
	color: var(--ink);
	border-color: var(--paper);
}
.ed-root .ed-btn--on-dark.ed-btn--ghost,
.ed-root a.ed-btn--on-dark.ed-btn--ghost {
	background: transparent;
	color: var(--paper);
	border-color: var(--paper);
}
.ed-root .ed-btn svg { width: 14px; height: 10px; }

/* Tier CTA links + ed-link underline-style links. Prefixed with
   .ed-root so explicit color wins over the global a { color: inherit }. */
.ed-root .ed-tier__cta,
.ed-root .ed-link {
	font-family: var(--display);
	font-weight: 600;
	font-size: 12px;
	letter-spacing: -0.005em;
	text-transform: none;
	color: var(--ink);
}
.ed-root .ed-tier--featured .ed-tier__cta { color: var(--paper); }
.ed-root .ed-pricing__grid--4 .ed-tier:nth-child(3) .ed-tier__cta { color: var(--paper); }

/* Eyebrows — keep mono for product/technical feel; tighten */
.ed-eyebrow {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

/* Sticky mobile CTA — modern grotesk, no uppercase. Prefixed with
   .ed-root to override `.ed-root a { color: inherit }`. */
.ed-root .ed-sticky-cta,
.ed-root a.ed-sticky-cta {
	font-family: var(--display);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: -0.005em;
	text-transform: none;
	border-radius: 999px;
	padding: 16px 24px;
	color: var(--paper);
	background: var(--ink);
}

/* Eyebrow on dark sections + footer base — small mono labels stay mono */
.ed-footer__base,
.ed-issue,
.ed-nav__menu a,
.ed-nav__actions a,
.ed-nav__actions span,
.ed-photo__cap,
.ed-photo__fig,
.ed-tile__meta,
.ed-mar__meta,
.ed-mar__facts dt,
.ed-week__num,
.ed-week__duration,
.ed-week__state,
.ed-tier__num,
.ed-quality__num,
.ed-plate__captions,
.ed-faq__icon,
.ed-method__link,
.ed-tier__cta,
.ed-link,
.ed-dash-preview__label,
.ed-dash__num,
.ed-dash__duration,
.ed-instructor__credentials dt,
.ed-player__meta dt,
.ed-object__price span {
	/* leave existing font-family declarations as-is — they're mostly mono
	   for product/data labels which still works in a 2026 grotesk system */
}

/* ═══════════════════════════════════════════════════════════
   2026 HIGH-IMPACT PRODUCT LAYER
   Controlled bump (~15–20%) — bigger headlines, dominant CTAs,
   marathon hierarchy (1 featured + 2 supporting), WOW statement
   block, mobile horizontal scroll for free workouts.
   Keeps clean minimal base; adds visual confidence.
   ═══════════════════════════════════════════════════════════ */

/* ── HERO — +15% headline scale ──────────────────────────── */
.ed-hero {
	padding: clamp(64px, 9vw, 120px) clamp(20px, 4vw, 40px) clamp(36px, 5vw, 64px);
}
.ed-hero h1 {
	font-size: clamp(80px, 16vw, 224px);
	line-height: 0.86;
	letter-spacing: -0.045em;
}
.ed-hero__lede {
	font-size: clamp(16px, 1.5vw, 22px);
	max-width: 420px;
}

/* ── BUTTONS — dominant primary CTA (+20% padding, +contrast) ── */
.ed-root .ed-btn,
.ed-root a.ed-btn {
	padding: 22px 38px;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: -0.005em;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.10);
	transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
.ed-root .ed-btn:hover,
.ed-root a.ed-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 32px rgba(0, 0, 0, 0.14);
}
.ed-root .ed-btn--ghost,
.ed-root a.ed-btn--ghost {
	box-shadow: none;
	border-width: 1.5px;
}

/* Hero CTA spacing — primary feels dominant against ghost */
.ed-hero__cta {
	gap: 18px;
	flex-wrap: wrap;
}

/* ── FREE WORKOUTS — bigger photos, less text clutter ────── */
.ed-tile__photo { height: clamp(280px, 32vw, 420px); }
.ed-tile__title {
	font-size: clamp(22px, 2.4vw, 30px);
	font-weight: 600;
	letter-spacing: -0.02em;
}
.ed-tile__meta {
	font-size: 11px;
	letter-spacing: 0.16em;
}

/* Mobile: horizontal scroll on free + marathons grids */
@media (max-width: 880px) {
	.ed-grid-4 {
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: 78%;
		grid-template-columns: none;
		gap: 16px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding: 4px 18px 24px;
		margin: 0 -18px;
		scrollbar-width: thin;
	}
	.ed-grid-4::-webkit-scrollbar { height: 2px; }
	.ed-grid-4::-webkit-scrollbar-thumb { background: var(--ink); }
	.ed-grid-4 > * { scroll-snap-align: start; }
	.ed-tile__photo { height: 280px; }
}

/* ── MARATHONS — 1 featured + 2 supporting hierarchy ─────── */
.ed-section--marathons { padding-bottom: clamp(80px, 10vw, 140px); }

.ed-mar-feature {
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: clamp(40px, 5vw, 80px);
	align-items: end;
	margin-bottom: clamp(56px, 7vw, 100px);
}
.ed-mar-feature__photo {
	display: block;
	width: 100%;
	height: clamp(440px, 56vw, 720px);
	position: relative;
}
.ed-mar-feature__copy {
	padding-bottom: clamp(24px, 4vw, 56px);
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.ed-mar-feature__title {
	font-family: var(--display);
	font-size: clamp(48px, 6.5vw, 104px);
	font-weight: 700;
	letter-spacing: -0.04em;
	line-height: 0.92;
	margin: 14px 0 0;
}
.ed-mar-feature__line {
	font-size: clamp(17px, 1.6vw, 22px);
	line-height: 1.45;
	color: var(--ink-soft);
	max-width: 480px;
	font-weight: 400;
}
.ed-mar-feature .ed-mar__facts {
	max-width: 520px;
	margin-top: 8px;
}

.ed-mar-pair {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(24px, 4vw, 56px);
}
.ed-mar--small .ed-mar__photo { height: clamp(260px, 28vw, 380px); }
.ed-mar--small .ed-mar__title { font-size: clamp(24px, 2.4vw, 32px); }
.ed-mar--small .ed-mar__facts { display: none; }

.ed-mar-all {
	margin-top: clamp(56px, 8vw, 96px);
	text-align: right;
}

/* ── WOW · full-bleed typographic statement ──────────────── */
.ed-wow {
	width: 100%;
	background: var(--ink);
	color: var(--paper);
	padding: clamp(120px, 16vw, 220px) clamp(20px, 5vw, 80px);
	overflow: hidden;
}
.ed-wow__inner {
	max-width: 1920px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: clamp(28px, 4vw, 56px);
}
.ed-wow__eyebrow {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.55);
	font-weight: 500;
}
.ed-wow__head {
	margin: 0;
	font-family: var(--display);
	font-weight: 700;
	font-size: clamp(96px, 18vw, 240px);
	line-height: 0.86;
	letter-spacing: -0.045em;
	color: var(--paper);
}
.ed-wow__head br + * { padding-left: clamp(24px, 4vw, 96px); }
.ed-wow__line {
	max-width: 540px;
	font-family: var(--display);
	font-size: clamp(17px, 1.5vw, 22px);
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.7);
	font-weight: 400;
	font-style: normal;
}

/* Apply line-reveal mask on dark-bg too */
.ed-wow .ed-line__inner { color: var(--paper); }

/* ── MOBILE — bigger spacing, sticky CTA polish ──────────── */
@media (max-width: 880px) {
	.ed-hero { padding: 32px 18px 24px; }
	.ed-hero h1 { font-size: clamp(72px, 18vw, 112px); }
	.ed-hero__lede { font-size: 16px; max-width: none; }
	.ed-hero__cta { gap: 14px; flex-direction: column; align-items: stretch; }
	.ed-root .ed-btn { width: 100%; justify-content: center; padding: 20px 28px; }

	.ed-section { padding: 64px 18px 56px; }

	.ed-mar-feature {
		grid-template-columns: 1fr;
		gap: 20px;
		margin-bottom: 40px;
	}
	.ed-mar-feature__photo { height: 320px; order: -1; }
	.ed-mar-feature__title { font-size: 44px; }
	.ed-mar-feature__line { font-size: 16px; }
	.ed-mar-feature__copy { padding-bottom: 0; }

	.ed-mar-pair { grid-template-columns: 1fr; gap: 28px; }
	.ed-mar-all { text-align: left; }

	.ed-wow { padding: 80px 18px; }
	.ed-wow__head { font-size: 72px; }
	.ed-wow__line { font-size: 16px; }

	/* Sticky CTA polish — bigger tap target */
	.ed-sticky-cta {
		padding: 18px 24px;
		font-size: 14px;
		font-weight: 700;
		min-height: 56px;
		display: flex;
		align-items: center;
		justify-content: center;
	}
}

/* ═══════════════════════════════════════════════════════════
   LAYOUT NORMALISATION
   Unifies every section onto a single vertical grid so the
   site reads as a structured product, not a stack of floating
   blocks. Every outer section gets the same horizontal padding
   and every inner content block aligns to one 1200px container.
   Vertical rhythm: 100px desktop / 64px mobile.
   No markup or content changes — only layout / spacing.
   ═══════════════════════════════════════════════════════════ */

:root {
	--bm-max:        95%;
	--bm-pad:        24px;
	--bm-pad-mob:    16px;
	--bm-section:    100px;
	--bm-section-mob: 64px;
	--bm-gap-sm:     24px;
	--bm-gap-md:     32px;
	--bm-gap-lg:     40px;
	--bm-text-w:     520px;
	--bm-copy-w:     420px;
}

/* ── Outer sections: same horizontal padding everywhere ──── */
.ed-nav,
.ed-issue,
.ed-hero,
.ed-plate,
.ed-section,
.ed-method,
.ed-instructor,
.ed-pricing,
.ed-faq,
.ed-coda,
.ed-footer,
.ed-wow,
.ed-qualities,
.ed-dash-preview,
.ed-how,
.ed-object,
.ed-tangible,
.ed-pricing-teaser,
.ed-final-cta,
.ed-page-hero {
	width: 100%;
	max-width: 100%;
	margin-left: 0;
	margin-right: 0;
	padding-left: var(--bm-pad);
	padding-right: var(--bm-pad);
	box-sizing: border-box;
}

/* ── Vertical rhythm: standardised section padding ───────── */
.ed-section,
.ed-method,
.ed-instructor,
.ed-pricing,
.ed-faq,
.ed-coda,
.ed-qualities,
.ed-dash-preview,
.ed-how,
.ed-object,
.ed-wow,
.ed-tangible,
.ed-pricing-teaser,
.ed-final-cta {
	padding-top: var(--bm-section);
	padding-bottom: var(--bm-section);
}
.ed-hero {
	padding-top: 80px;
	padding-bottom: 56px;
}
.ed-plate {
	padding-top: 0;
	padding-bottom: 0;
}
.ed-coda {
	padding-top: calc(var(--bm-section) * 1.4);
	padding-bottom: calc(var(--bm-section) * 1.4);
}

/* ── Inner content: unified 1200px container ─────────────── */
.ed-nav,
.ed-issue,
.ed-hero__grid,
.ed-section__head,
.ed-grid-3,
.ed-grid-4,
.ed-method__grid,
.ed-instructor__grid,
.ed-pricing__head,
.ed-pricing__grid,
.ed-faq__grid,
.ed-footer__grid,
.ed-footer__base,
.ed-wow__inner,
.ed-qualities__grid,
.ed-dash-preview__inner,
.ed-how__grid,
.ed-object__grid,
.ed-mar-feature,
.ed-mar-pair,
.ed-mar-all,
.ed-plate__img,
.ed-plate__captions,
.ed-statement__inner,
.ed-tangible__head,
.ed-tangible__grid,
.ed-pricing-teaser__inner {
	max-width: var(--bm-max);
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}

/* Coda is centered text — wrap its children in container width */
.ed-coda {
	text-align: center;
}
.ed-coda > * {
	max-width: var(--bm-max);
	margin-left: auto;
	margin-right: auto;
}

/* ── Hero: 1:1 grid, right copy column max 420 ───────────── */
.ed-hero__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--bm-gap-lg);
	align-items: center;
}
.ed-hero__copy {
	max-width: var(--bm-copy-w);
	margin-left: auto;
}

/* ── Text width limits — readability + alignment ─────────── */
.ed-hero__lede,
.ed-method__lede,
.ed-instructor__bio,
.ed-instructor__detail,
.ed-coda__lede,
.ed-wow__line,
.ed-qualities__intro,
.ed-mar__line,
.ed-mar-feature__line,
.ed-section__head p,
.ed-faq details p,
.ed-dash-preview__lede,
.ed-object__lede {
	max-width: var(--bm-text-w);
}
.ed-coda__lede,
.ed-wow__line {
	margin-left: auto;
	margin-right: auto;
}

/* ── Grid gaps: standardised ─────────────────────────────── */
.ed-grid-3 { gap: var(--bm-gap-md); }
.ed-grid-4 { gap: var(--bm-gap-sm); }
.ed-mar-pair { gap: var(--bm-gap-md); }
.ed-mar-feature { gap: var(--bm-gap-lg); }
.ed-method__grid,
.ed-instructor__grid { gap: var(--bm-gap-lg); }
.ed-section__head { margin-bottom: 56px; }
.ed-pricing__head { margin-bottom: 56px; }

/* ── Header: nav grid 3-column (already grid; align edges) ── */
.ed-nav {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	padding-top: 22px;
	padding-bottom: 22px;
}

/* ── Issue strip: same container, full justified ─────────── */
.ed-issue {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	padding-top: 14px;
	padding-bottom: 14px;
}

/* ── Plate I: image inside container, captions below ─────── */
.ed-plate {
	margin-top: 0;
	margin-bottom: 0;
}
.ed-plate__captions {
	padding-top: 16px;
	padding-bottom: 0;
}

/* ── WOW: padded full-bleed bg, content in container ─────── */
.ed-wow {
	padding-top: 140px;
	padding-bottom: 140px;
}

/* ── Footer: container alignment, base row ───────────────── */
.ed-footer { padding-top: 80px; padding-bottom: 32px; }
.ed-footer__base { padding-top: 20px; }

/* ── Final tightening: remove any rogue margins on direct
       children that pushed content off-grid                 ── */
.ed-mar-feature,
.ed-mar-pair,
.ed-mar-all,
.ed-grid-3,
.ed-grid-4 { margin-top: 0; margin-bottom: 0; }
.ed-mar-feature { margin-bottom: 56px; }
.ed-mar-all { margin-top: 64px; }

/* ── Mobile (≤ 880px) ────────────────────────────────────── */
@media (max-width: 880px) {
	:root {
		--bm-pad: var(--bm-pad-mob);
		--bm-section: var(--bm-section-mob);
		--bm-gap-sm: 16px;
		--bm-gap-md: 24px;
		--bm-gap-lg: 28px;
	}

	.ed-section,
	.ed-method,
	.ed-instructor,
	.ed-pricing,
	.ed-faq,
	.ed-coda,
	.ed-qualities,
	.ed-dash-preview,
	.ed-how,
	.ed-object,
	.ed-wow,
	.ed-tangible,
	.ed-pricing-teaser,
	.ed-final-cta {
		padding-top: var(--bm-section);
		padding-bottom: var(--bm-section);
	}

	.ed-hero { padding-top: 32px; padding-bottom: 24px; }
	.ed-coda { padding-top: 96px; padding-bottom: 96px; }
	.ed-wow  { padding-top: 80px; padding-bottom: 80px; }
	.ed-footer { padding-top: 48px; padding-bottom: 24px; }

	.ed-hero__grid { grid-template-columns: 1fr; gap: 24px; }
	.ed-hero__copy { max-width: 100%; margin-left: 0; }

	.ed-method__grid,
	.ed-instructor__grid,
	.ed-mar-feature,
	.ed-mar-pair,
	.ed-how__grid,
	.ed-object__grid,
	.ed-qualities__grid,
	.ed-dash-preview__inner,
	.ed-statement__grid,
	.ed-pricing-teaser__inner {
		grid-template-columns: 1fr;
	}

	.ed-section__head,
	.ed-pricing__head { margin-bottom: 28px; }

	.ed-mar-feature { margin-bottom: 32px; }
	.ed-mar-all { margin-top: 32px; }

	/* Free-workouts: keep horizontal scroll-snap on mobile,
	   but bleed cleanly to container edges. */
	.ed-grid-4 {
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: 78%;
		grid-template-columns: none;
		gap: 16px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding: 4px var(--bm-pad-mob) 24px;
		margin-left: calc(-1 * var(--bm-pad-mob));
		margin-right: calc(-1 * var(--bm-pad-mob));
		max-width: calc(100% + var(--bm-pad-mob) * 2);
	}
	.ed-grid-4 > * { scroll-snap-align: start; }

	/* Plate image keeps full container width on mobile too */
	.ed-plate__img { height: 320px; }

	body { padding-bottom: 88px; /* clear sticky CTA */ }
}

/* ── Prevent horizontal overflow site-wide ─────────────── */
html, body { overflow-x: hidden; }

/* ── Plate I hero reel — video covers the figure container ── */
.ed-plate__img { position: relative; }
.ed-plate__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	background: #1a1a1a;
}
/* FIG/cap labels stay above the video */
.ed-plate__img .ed-photo__cap,
.ed-plate__img .ed-photo__fig { z-index: 2; }
/* Reduced-motion: pause and rely on poster image */
@media (prefers-reduced-motion: reduce) {
	.ed-plate__video { display: none; }
	.ed-plate__img {
		background-size: cover;
		background-position: center;
	}
}

/* ═══════════════════════════════════════════════════════════
   STYLISH 2026 TYPOGRAPHY — Clash Display + Satoshi
   Distinctive editorial display for big headlines, modern
   grotesk for body/UI. Tighter letter-spacing on big type.
   ═══════════════════════════════════════════════════════════ */

:root {
	--display:      Mangogrotesque, Arial, sans-serif;
	--display-grot: Barlow, sans-serif;
	--sans:         Barlow, sans-serif;
}

/* Big editorial headlines explicitly use Clash Display */
.ed-hero h1,
.ed-page-hero h1,
.ed-coda h2,
.ed-method h2,
.ed-section__head h2,
.ed-pricing__head h2,
.ed-mar-feature__title,
.ed-mar__title,
.ed-mar-feature h3,
.ed-faq summary > span:first-child,
.ed-instructor h2 {
	font-family: var(--display);
	font-weight: 600;
	letter-spacing: -0.04em;
}

/* Mega scale — even tighter tracking for hero / coda / method */
.ed-hero h1,
.ed-coda h2,
.ed-method h2 {
	font-weight: 700;
	letter-spacing: -0.045em;
	line-height: 0.88;
}

/* Smaller titles + UI keep Satoshi (modern grotesk, more readable at small sizes) */
.ed-tile__title,
.ed-mar--small .ed-mar__title,
.ed-tier h3,
.ed-method__pillars h4,
.ed-instructor__credentials dd,
.ed-quality h3,
.ed-week__title,
.ed-dash__title,
.ed-mar__line,
.ed-mar-feature__line,
.ed-method__lede,
.ed-instructor__bio,
.ed-instructor__detail,
.ed-hero__lede,
.ed-coda__lede,
.ed-tier__price,
.ed-faq details p {
	font-family: var(--display-grot);
}

/* em accents — heavier weight in Clash Display, no italic */
.ed-hero h1 em,
.ed-coda h2 em,
.ed-method h2 em,
.ed-section__head h2 em,
.ed-pricing__head h2 em,
.ed-instructor h2 em,
.ed-mar-feature__title em,
.ed-page-hero h1 em {
	font-style: normal;
	font-weight: 700;
}

/* Body / paragraphs density refinement */
body.ed-root,
body {
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.55;
	font-weight: 400;
}
.ed-hero__lede,
.ed-method__lede,
.ed-mar-feature__line,
.ed-instructor__bio {
	font-size: clamp(16px, 1.4vw, 20px);
	line-height: 1.5;
}

/* Hero scale bump for stronger presence */
.ed-hero h1 {
	font-size: clamp(88px, 17vw, 240px);
}
.ed-coda h2 {
	font-size: clamp(80px, 16vw, 220px);
}
.ed-method h2 {
	font-size: clamp(72px, 13vw, 180px);
}
@media (max-width: 880px) {
	.ed-hero h1   { font-size: clamp(72px, 17vw, 112px); letter-spacing: -0.04em; }
	.ed-coda h2   { font-size: clamp(64px, 16vw, 96px); }
	.ed-method h2 { font-size: clamp(56px, 14vw, 88px); }
}

/* ═══════════════════════════════════════════════════════════
   CALM TYPOGRAPHY RESET — Satoshi-only, weight 600 on heads,
   readable body (#555 weight 400), restored hierarchy, no
   text decoration tricks. Hero dominates; nothing competes.
   ═══════════════════════════════════════════════════════════ */

:root {
	/* Display = Mango Grotesque (headlines, falls back to Arial).
	   Body / UI / mono = Barlow (Google Fonts). */
	--display:      Mangogrotesque, Arial, sans-serif;
	--display-grot: Barlow, sans-serif;
	--sans:         Barlow, sans-serif;
	--mono:         Barlow, sans-serif;

	/* Body grey — calmer than pure black */
	--ink-soft: #555555;
}

/* All headings: weight 600, calm letter-spacing -0.02em ── */
.ed-root h1,
.ed-root h2,
.ed-root h3,
.ed-root h4,
.ed-hero h1,
.ed-page-hero h1,
.ed-coda h2,
.ed-method h2,
.ed-section__head h2,
.ed-pricing__head h2,
.ed-mar-feature__title,
.ed-mar__title,
.ed-instructor h2,
.ed-faq summary > span:first-child,
.ed-tile__title,
.ed-tier h3,
.ed-method__pillars h4 {
	font-family: var(--display);
	font-weight: 600;
	letter-spacing: -0.02em;
	font-style: normal;
}

/* em — same weight, no decoration */
.ed-root em,
.ed-hero h1 em,
.ed-coda h2 em,
.ed-method h2 em,
.ed-section__head h2 em,
.ed-instructor h2 em,
.ed-pricing__head h2 em,
.ed-mar-feature__title em,
.ed-page-hero h1 em {
	font-style: normal;
	font-weight: 600;
	color: inherit;
}

/* ── Hierarchy — hero dominates, others sit calmly below ── */
.ed-hero h1 {
	font-size: clamp(72px, 13vw, 184px);
	line-height: 0.95;
	letter-spacing: -0.025em;
}
.ed-coda h2 {
	font-size: clamp(56px, 9vw, 128px);
	line-height: 0.96;
}
.ed-method h2 {
	font-size: clamp(48px, 7vw, 96px);
	line-height: 0.96;
}
.ed-section__head h2,
.ed-pricing__head h2 {
	font-size: clamp(40px, 5vw, 72px);
	line-height: 1;
}
.ed-mar-feature__title { font-size: clamp(36px, 4.5vw, 64px); line-height: 1; }
.ed-mar__title         { font-size: clamp(22px, 2vw, 28px); line-height: 1.15; }
.ed-tile__title        { font-size: clamp(20px, 1.8vw, 24px); line-height: 1.2; }
.ed-tier h3            { font-size: clamp(28px, 3vw, 40px); }
.ed-instructor h2      { font-size: clamp(48px, 6vw, 88px); line-height: 1; }
.ed-faq summary > span:first-child { font-size: clamp(20px, 2vw, 26px); }

/* Mobile downsize — keep hero strongest */
@media (max-width: 880px) {
	.ed-hero h1            { font-size: clamp(56px, 13vw, 88px); }
	.ed-coda h2            { font-size: 56px; }
	.ed-method h2          { font-size: 48px; }
	.ed-section__head h2,
	.ed-pricing__head h2   { font-size: 40px; }
	.ed-instructor h2      { font-size: 44px; }
	.ed-mar-feature__title { font-size: 36px; }
}

/* ── Body — calm grey, weight 400, generous line-height ── */
body.ed-root,
body {
	font-family: var(--sans);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.6;
	color: var(--ink);
}
.ed-hero__lede,
.ed-method__lede,
.ed-instructor__bio,
.ed-instructor__detail,
.ed-mar__line,
.ed-mar-feature__line,
.ed-coda__lede,
.ed-qualities__intro,
.ed-quality p,
.ed-tile__title + .ed-link,
.ed-faq details p,
.ed-dash-preview__lede,
.ed-object__lede,
.ed-section__head p,
.ed-tier__desc {
	color: var(--ink-soft);
	font-weight: 400;
	line-height: 1.6;
	font-style: normal;
}
.ed-hero__lede {
	font-size: 17px;
	line-height: 1.5;
}
.ed-method__lede,
.ed-instructor__bio {
	font-size: 17px;
	line-height: 1.55;
}
.ed-mar__line,
.ed-mar-feature__line {
	font-size: 16px;
	line-height: 1.55;
}

/* ── Buttons — clean pill, subtle shadow on hover only ─── */
.ed-root .ed-btn,
.ed-root a.ed-btn {
	padding: 18px 32px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0;
	box-shadow: none;
	border-width: 1px;
}
.ed-root .ed-btn:hover,
.ed-root a.ed-btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
}

/* ── Links — clean, no letter-spacing widen on hover ──── */
.ed-link {
	transition: opacity 0.25s ease;
	letter-spacing: 0.12em;
}
.ed-link:hover {
	letter-spacing: 0.12em; /* override the prior widen-on-hover */
	opacity: 0.6;
}

/* ── Increased whitespace — calmer rhythm ──────────────── */
.ed-section__head { margin-bottom: 64px; }
.ed-pricing__head { margin-bottom: 64px; }
.ed-section { padding-top: 120px; padding-bottom: 120px; }

@media (max-width: 880px) {
	.ed-section { padding-top: 72px; padding-bottom: 72px; }
	.ed-section__head,
	.ed-pricing__head { margin-bottom: 32px; }
}

/* ═══════════════════════════════════════════════════════════
   HERO ALIGNMENT — baseline-anchored editorial layout
   Left h1 and right copy/CTA sit on the same bottom line.
   Targeted tweaks only — no redesign, no typography change.
   ═══════════════════════════════════════════════════════════ */

.ed-hero__grid {
	align-items: end;
}
.ed-hero__head {
	align-self: end;
}
.ed-hero__copy {
	align-self: end;
	max-width: 420px;
}
.ed-hero h1 {
	margin: 0;
}
.ed-hero__cta {
	margin-top: 24px;
}

/* Mobile: stack normally, no baseline alignment needed */
@media (max-width: 880px) {
	.ed-hero__grid { align-items: stretch; }
	.ed-hero__head,
	.ed-hero__copy { align-self: stretch; }
}

/* ═══════════════════════════════════════════════════════════
   PRODUCTION POLISH PASS
   Targeted refinements for balance + clarity. No redesign.
   Spacing scale: 24 / 40 / 80 / 100 px.
   ═══════════════════════════════════════════════════════════ */

/* ── HERO — anchor right column, tighten flow ─────────── */
.ed-hero__copy {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding-bottom: 4px;
}
.ed-hero__lede {
	margin: 0;
}
.ed-hero__cta {
	margin-top: 8px;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

/* ── BUTTONS — consistent sizing, primary slightly bigger ── */
.ed-root .ed-btn,
.ed-root a.ed-btn {
	padding: 18px 36px;
	font-size: 14px;
	font-weight: 600;
	min-height: 52px;
	letter-spacing: 0;
}
.ed-root .ed-btn--ghost,
.ed-root a.ed-btn--ghost {
	padding: 18px 32px;
}

/* ── FREE WORKOUTS — clearer entry point ───────────────── */
.ed-grid-4 { gap: 32px; }
.ed-tile { display: flex; flex-direction: column; gap: 14px; }
.ed-tile__photo {
	height: clamp(320px, 36vw, 460px);
	overflow: hidden;
	transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-tile:hover .ed-tile__photo { transform: translateY(-4px); }
.ed-tile__photo .ed-photo__cap {
	transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-tile:hover .ed-tile__photo .ed-photo__cap { transform: translateY(-2px); }
.ed-tile__title { margin-top: 4px; }

/* ── MARATHONS — stronger featured/supporting contrast ── */
.ed-mar-feature {
	gap: 56px;
	padding-bottom: 80px;
	margin-bottom: 80px;
	border-bottom: 1px solid var(--rule);
}
.ed-mar-feature__photo {
	height: clamp(480px, 60vw, 760px);
}
.ed-mar-feature__title {
	font-size: clamp(40px, 5.5vw, 80px);
}
.ed-mar-pair { gap: 40px; }
.ed-mar--small {
	opacity: 0.92;
	transition: opacity 0.3s ease;
}
.ed-mar--small:hover { opacity: 1; }
.ed-mar--small .ed-mar__photo { height: clamp(260px, 28vw, 360px); }
.ed-mar--small .ed-mar__title { font-size: 22px; }
.ed-mar--small .ed-mar__line {
	font-size: 14px;
	line-height: 1.55;
	color: var(--ink-mute);
	max-width: 360px;
}

/* ── METHOD (black) — anchored, balanced ───────────────── */
.ed-method__grid {
	align-items: end;
	gap: 80px;
}
.ed-method__grid > div:first-child {
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.ed-method h2 { margin: 0; }
.ed-method__lede {
	margin: 0;
	max-width: 480px;
}
.ed-method__link {
	margin-top: 8px;
	align-self: flex-start;
}
.ed-method__pillars {
	gap: 32px;
	padding-bottom: 4px;
}
.ed-method__pillars > div {
	padding: 24px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.ed-method__pillars > div:first-child { border-top: 0; padding-top: 0; }
.ed-method__pillars h4 {
	font-size: 22px;
	font-weight: 600;
	letter-spacing: -0.015em;
}
.ed-method__pillars p {
	margin-top: 8px;
	font-size: 15px;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.7);
}

/* ── INSTRUCTOR — balanced, image dominant ─────────────── */
.ed-instructor__grid {
	grid-template-columns: 1.05fr 1fr;
	gap: 80px;
	align-items: start;
}
.ed-instructor__photo {
	height: clamp(560px, 72vw, 820px);
}
.ed-instructor__copy { padding-top: 24px; }
.ed-instructor h2 { margin-top: 16px; }
.ed-instructor__bio {
	margin-top: 20px;
	max-width: 460px;
}
.ed-instructor__detail {
	margin-top: 14px;
	max-width: 460px;
}
.ed-instructor__credentials { margin-top: 32px; }

/* ── SECTION RHYTHM — normalised 80/100 scale ──────────── */
.ed-section,
.ed-method,
.ed-instructor,
.ed-pricing,
.ed-faq,
.ed-qualities,
.ed-dash-preview {
	padding-top: 100px;
	padding-bottom: 100px;
}
.ed-coda { padding-top: 140px; padding-bottom: 140px; }

/* ── FOOTER — denser, aligned, finished feel ──────────── */
.ed-footer {
	padding-top: 80px;
	padding-bottom: 32px;
}
.ed-footer__grid {
	gap: 64px;
	align-items: start;
}
.ed-footer__col h4 { margin-bottom: 20px; }
.ed-footer__col ul { gap: 12px; }
.ed-footer__tag {
	margin-top: 16px;
	max-width: 320px;
	color: var(--ink-mute);
}
.ed-footer__base {
	margin-top: 56px;
	padding-top: 24px;
	border-top: 1px solid var(--rule-soft);
}

/* ── MOBILE — calmer spacing, smoother scroll ─────────── */
@media (max-width: 880px) {
	.ed-section,
	.ed-method,
	.ed-instructor,
	.ed-pricing,
	.ed-faq,
	.ed-qualities,
	.ed-dash-preview { padding-top: 72px; padding-bottom: 72px; }
	.ed-coda { padding-top: 96px; padding-bottom: 96px; }

	.ed-hero__copy { gap: 14px; }
	.ed-hero__cta { margin-top: 4px; }

	.ed-grid-4 {
		gap: 16px;
		padding: 4px var(--bm-pad-mob) 24px;
		scroll-padding-inline: var(--bm-pad-mob);
	}
	.ed-tile__photo { height: 320px; }

	.ed-mar-feature {
		gap: 24px;
		padding-bottom: 40px;
		margin-bottom: 40px;
	}
	.ed-mar-feature__photo { height: 320px; }

	.ed-method__grid { gap: 32px; }
	.ed-method__pillars { gap: 0; }

	.ed-instructor__grid { gap: 28px; }
	.ed-instructor__photo { height: 460px; }

	.ed-footer__grid { gap: 32px; }
	.ed-footer__base { margin-top: 32px; flex-direction: column; gap: 8px; }
}

/* ═══════════════════════════════════════════════════════════
   CLEANUP — labels removed, refresh spacing + new badges
   ═══════════════════════════════════════════════════════════ */

/* Hide any remaining decorative labels site-wide */
.ed-photo__fig,
.ed-photo__cap,
.ed-plate__captions,
.ed-quality__num,
.ed-tier__num,
.ed-issue { display: none !important; }

/* Tier badge replaces the "01 · Recommended" mono number */
.ed-tier { position: relative; }
.ed-tier__badge {
	position: absolute;
	top: 18px;
	right: 24px;
	padding: 5px 12px;
	background: #fff;
	color: var(--ink);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: -0.005em;
	border-radius: 999px;
	border: 1px solid var(--ink);
}
.ed-tier--featured .ed-tier__badge {
	background: var(--ink);
	color: #fff;
	border-color: #fff;
}

/* Plate / hero reel — drop caption padding, fully bleed */
.ed-plate { padding-bottom: 0; }
.ed-plate__img {
	height: clamp(420px, 56vw, 720px);
	margin-bottom: 0;
}

/* Free tile — keep only the small "Free" badge, no all-caps cap */
.ed-tile__badge {
	left: 16px;
	top: 16px;
	padding: 6px 12px;
	background: var(--ink);
	color: #fff;
	font-family: var(--sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	border-radius: 999px;
}
.ed-tile__badge--mute { background: rgba(0,0,0,0.6); }

/* Section heads no longer have eyebrow — center / stretch heading,
   tighten margin since label is gone */
.ed-section__head h2,
.ed-pricing__head h2,
.ed-qualities__grid h2,
.ed-dash-preview h2,
.ed-faq h2,
.ed-coda h2,
.ed-method h2,
.ed-instructor h2 {
	margin-top: 0;
}

/* Pricing footer note — cleaner */
.ed-pricing__note {
	margin-top: 32px;
	font-family: var(--sans);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	color: var(--ink-mute);
	text-align: center;
}

/* Dashboard preview CTA spacing */
.ed-dash-preview__cta {
	margin-top: 32px;
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
}

/* Quality items: lose roman numerals, keep clean text rows */
.ed-quality {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 32px 0;
	border-top: 1px solid var(--rule);
}
.ed-quality:last-child { border-bottom: 1px solid var(--rule); }
.ed-quality h3 { font-size: clamp(28px, 3vw, 40px); }
.ed-quality p {
	font-size: 16px;
	color: var(--ink-soft);
	line-height: 1.6;
	max-width: 560px;
}

/* ═══════════════════════════════════════════════════════════
   PREMIUM POLISH PASS — depth, motion, microinteractions
   Inspired by Apple / Aesop / Alo Yoga / Nike Training Club.
   No redesign — only refinement of existing components.
   ═══════════════════════════════════════════════════════════ */

/* ── Subtle SVG grain for depth (page-wide, very low opacity) */
body.ed-root::before {
	content: '';
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 1;
	opacity: 0.025;
	mix-blend-mode: multiply;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	background-size: 220px 220px;
}

/* ── Free workout tiles — premium hover (image zoom + text shift) */
.ed-tile {
	transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-tile__photo {
	overflow: hidden;
	will-change: transform;
}
.ed-tile__photo::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.18) 100%);
	opacity: 0;
	transition: opacity 0.5s ease;
	pointer-events: none;
}
.ed-tile:hover .ed-tile__photo::after { opacity: 1; }
.ed-tile__photo {
	background-size: 105% 105% !important;
	background-position: center !important;
	transition: background-size 0.9s cubic-bezier(0.2, 0.7, 0.3, 1), transform 0.6s ease;
}
.ed-tile:hover .ed-tile__photo {
	background-size: 112% 112% !important;
}
.ed-tile__title {
	transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-tile:hover .ed-tile__title { transform: translateX(4px); }
.ed-tile .ed-link {
	transition: opacity 0.3s ease, transform 0.4s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-tile:hover .ed-link { transform: translateX(6px); }

/* ── Marathon photos — soft zoom on hover ─────────────── */
.ed-mar__photo,
.ed-mar-feature__photo {
	background-size: 105% 105% !important;
	background-position: center !important;
	transition: background-size 1s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-mar:hover .ed-mar__photo,
.ed-mar-feature:hover .ed-mar-feature__photo {
	background-size: 110% 110% !important;
}
.ed-mar-feature__photo,
.ed-mar__photo {
	position: relative;
	overflow: hidden;
}
.ed-mar-feature__photo::after,
.ed-mar__photo::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 70%, rgba(0,0,0,0.22) 100%);
	opacity: 0;
	transition: opacity 0.5s ease;
	pointer-events: none;
}
.ed-mar-feature:hover .ed-mar-feature__photo::after,
.ed-mar:hover .ed-mar__photo::after { opacity: 1; }
.ed-mar__title,
.ed-mar-feature__title {
	transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-mar:hover .ed-mar__title,
.ed-mar-feature:hover .ed-mar-feature__title { transform: translateX(3px); }

/* ── Pricing tiers — premium product feel with lift + border ── */
.ed-tier {
	position: relative;
	transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1),
	            box-shadow 0.5s ease,
	            border-color 0.4s ease;
	cursor: pointer;
}
.ed-tier:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.08);
	border-color: var(--ink);
}
.ed-tier--featured:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 56px rgba(0, 0, 0, 0.20);
}
.ed-tier__cta {
	position: relative;
	overflow: hidden;
}
.ed-tier__cta::after {
	content: '';
	position: absolute;
	bottom: -1px;
	left: 0;
	right: 0;
	height: 1px;
	background: currentColor;
	transform: scaleX(0.3);
	transform-origin: right;
	transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-tier:hover .ed-tier__cta::after {
	transform: scaleX(1);
	transform-origin: left;
}

/* ── Method dark section — soft vignette for depth ─── */
.ed-method::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at top, rgba(255,255,255,0.04), transparent 70%);
	pointer-events: none;
}
.ed-method { position: relative; }

/* ── Coda — soft top vignette ─────────────────────── */
.ed-coda { position: relative; }
.ed-coda::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 200px;
	background: linear-gradient(180deg, var(--paper-2) 0%, transparent 100%);
	pointer-events: none;
	opacity: 0.4;
}

/* ── FAQ details — smooth expansion ──────────────── */
.ed-faq details summary {
	transition: opacity 0.3s ease;
}
.ed-faq details summary:hover { opacity: 0.65; }

/* ── Buttons — refined hover with subtle slide ──── */
.ed-root .ed-btn,
.ed-root a.ed-btn {
	position: relative;
	overflow: hidden;
}
.ed-root .ed-btn::before,
.ed-root a.ed-btn::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(255,255,255,0.06), transparent);
	opacity: 0;
	transition: opacity 0.4s ease;
	pointer-events: none;
}
.ed-root .ed-btn:hover::before,
.ed-root a.ed-btn:hover::before { opacity: 1; }

/* ── Instructor portrait — subtle mask reveal on scroll ─ */
.ed-instructor__photo {
	overflow: hidden;
	background-size: 102% 102% !important;
	background-position: center !important;
	transition: background-size 1.4s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-instructor:hover .ed-instructor__photo {
	background-size: 106% 106% !important;
}

/* ── Sections — every block needs breath at the top edge ── */
.ed-section + .ed-section,
.ed-section + .ed-method,
.ed-method + .ed-section,
.ed-instructor + .ed-section,
.ed-section + .ed-instructor {
	border-top: 1px solid var(--rule-soft);
}

/* ── Stronger contrast in headlines vs body — fewer sizes ── */
.ed-section__head h2 { line-height: 0.96; letter-spacing: -0.025em; }
body.ed-root, body { letter-spacing: -0.005em; }

/* ── Mobile polish ─────────────────────────────── */
@media (max-width: 880px) {
	body.ed-root::before { opacity: 0.02; }

	/* Disable photo zoom on mobile (tap doesn't trigger hover, no benefit) */
	.ed-tile__photo,
	.ed-mar__photo,
	.ed-mar-feature__photo,
	.ed-instructor__photo {
		background-size: cover !important;
	}

	/* Tier hover lift becomes light shadow on tap */
	.ed-tier:hover { transform: none; box-shadow: none; }
	.ed-tier:active { transform: translateY(-2px); }
}

/* ── Reduced motion: disable all hover transforms ─── */
@media (prefers-reduced-motion: reduce) {
	body.ed-root::before { display: none; }
	.ed-tile, .ed-tile__photo, .ed-tile__title, .ed-tile .ed-link,
	.ed-mar__photo, .ed-mar-feature__photo,
	.ed-mar__title, .ed-mar-feature__title,
	.ed-tier, .ed-instructor__photo {
		transition: none !important;
	}
}

/* ═══════════════════════════════════════════════════════════
   EDITORIAL ASYMMETRY — premium-brand 2026 polish
   • Free workouts: offset/masonry feel (no strict 4-equal grid)
   • Marathon supporting pair: vertical offset, editorial rhythm
   • Typography: consolidated scale (≤3 heading sizes)
   • 8pt-inspired spacing rhythm
   ═══════════════════════════════════════════════════════════ */

/* ── Free workouts — editorial offset grid (desktop) ──── */
@media (min-width: 881px) {
	.ed-grid-4 {
		grid-template-columns: 1.15fr 1fr 1fr 1.05fr;
		gap: 32px;
		align-items: start;
	}
	/* Vertical rhythm: alternating heights for editorial feel */
	.ed-grid-4 > .ed-tile:nth-child(1) .ed-tile__photo { height: clamp(360px, 38vw, 480px); }
	.ed-grid-4 > .ed-tile:nth-child(2) .ed-tile__photo { height: clamp(300px, 32vw, 400px); }
	.ed-grid-4 > .ed-tile:nth-child(3) .ed-tile__photo { height: clamp(340px, 36vw, 460px); }
	.ed-grid-4 > .ed-tile:nth-child(4) .ed-tile__photo { height: clamp(290px, 30vw, 380px); }
	/* Subtle top-offset on alternating tiles */
	.ed-grid-4 > .ed-tile:nth-child(2) { margin-top: 40px; }
	.ed-grid-4 > .ed-tile:nth-child(4) { margin-top: 32px; }
}

/* ── Marathon supporting pair — asymmetric vertical offset ── */
@media (min-width: 881px) {
	.ed-mar-pair {
		grid-template-columns: 1fr 1fr;
		gap: 56px;
		align-items: start;
	}
	.ed-mar-pair > .ed-mar:nth-child(2) {
		margin-top: 64px;
	}
	.ed-mar-pair > .ed-mar:nth-child(1) .ed-mar__photo {
		height: clamp(320px, 32vw, 440px);
	}
	.ed-mar-pair > .ed-mar:nth-child(2) .ed-mar__photo {
		height: clamp(280px, 28vw, 380px);
	}
}

/* ── Consolidated heading scale (≤3 sizes per breakpoint) ─ */
:root {
	/* Three core scale steps */
	--h-display:  clamp(72px, 13vw, 184px);   /* hero, coda */
	--h-section:  clamp(40px, 6vw, 88px);     /* method, instructor, section heads, pricing */
	--h-card:     clamp(22px, 2.2vw, 32px);   /* tile/marathon/tier titles */
}
.ed-hero h1,
.ed-coda h2 {
	font-size: var(--h-display);
}
.ed-section__head h2,
.ed-pricing__head h2,
.ed-method h2,
.ed-instructor h2,
.ed-faq h2,
.ed-dash-preview h2,
.ed-qualities h2 {
	font-size: var(--h-section);
}
.ed-tile__title,
.ed-mar__title,
.ed-mar-feature__title,
.ed-tier h3,
.ed-method__pillars h4,
.ed-quality h3,
.ed-faq summary > span:first-child {
	font-size: var(--h-card);
}

/* Featured marathon title slightly larger to telegraph editorial feature */
.ed-mar-feature__title {
	font-size: clamp(40px, 5vw, 72px);
	line-height: 0.95;
}

/* ── 8pt-inspired tight rhythm in cards / lists ─────── */
.ed-tile,
.ed-mar,
.ed-mar-feature__copy { gap: 16px; }
.ed-tier { padding: 32px 28px 28px; gap: 8px; }

/* Pricing tier hierarchy — featured visibly bigger */
.ed-tier--featured {
	transform: scale(1.02);
	z-index: 1;
}
.ed-tier--featured:hover { transform: translateY(-4px) scale(1.02); }

/* Pricing tier inner spacing — premium product feel */
.ed-tier h3 { margin-top: 4px; }
.ed-tier__price { margin-top: 12px; }
.ed-tier__desc { margin-top: 8px; }
.ed-tier__cta { margin-top: 28px; }

/* ── FAQ minimal dividers — slightly thinner ─────────── */
.ed-faq details {
	border-top-color: var(--rule-soft);
	padding: 32px 0;
}
.ed-faq details:first-of-type { border-top: 0; }
.ed-faq details summary > span:first-child {
	font-weight: 500;
}

/* ── Mobile: drop offset grid to clean stack ────────── */
@media (max-width: 880px) {
	.ed-grid-4 > .ed-tile { margin-top: 0 !important; }
	.ed-grid-4 > .ed-tile .ed-tile__photo { height: 320px !important; }
	.ed-mar-pair > .ed-mar { margin-top: 0 !important; }
	.ed-mar-pair > .ed-mar .ed-mar__photo { height: 240px !important; }
	.ed-tier--featured {
		transform: none;
	}
	.ed-tier--featured:active { transform: translateY(-2px); }
}

/* ═══════════════════════════════════════════════════════════
   CRITICAL REVIEW REFINEMENTS
   1. Section rhythm via background alternation (not just borders)
   2. Two-tier typography hierarchy (primary vs secondary section h2)
   3. Hero composition tightened (no dead space, CTA closer to lede)
   4. Featured tier sole emphasis (marathon featured loses scale)
   5. FAQ generous breathing room
   6. Coda single emotional CTA
   ═══════════════════════════════════════════════════════════ */

/* ── 1. Section rhythm — alternating light/tone for visual contrast ── */
.ed-qualities,
.ed-dash-preview,
.ed-faq {
	background: var(--paper-2);
}
/* Hairline dividers no longer needed where bg shifts */
.ed-section + .ed-qualities,
.ed-qualities + .ed-section,
.ed-section + .ed-dash-preview,
.ed-pricing + .ed-dash-preview,
.ed-dash-preview + .ed-faq,
.ed-instructor + .ed-pricing,
.ed-method + .ed-instructor {
	border-top: 0;
}

/* ── 2. Two-tier headline hierarchy ───────────────────── */
:root {
	/* Primary (Hero, Coda, Method) — full presence */
	--h-primary: clamp(72px, 13vw, 184px);
	/* Section primary (Marathons, Instructor, Pricing) */
	--h-section: clamp(40px, 6vw, 88px);
	/* Section secondary (Free workouts, Formats, FAQ, Dashboard preview) — quieter */
	--h-section-quiet: clamp(32px, 4vw, 56px);
}
.ed-section__head h2 {
	font-size: var(--h-section);
}
/* Free workouts and FAQ titles step down — they're not the main story */
.ed-section[id="free"] .ed-section__head h2,
.ed-faq h2,
.ed-qualities h2,
.ed-dash-preview h2 {
	font-size: var(--h-section-quiet);
	letter-spacing: -0.025em;
	line-height: 1;
}

/* ── 3. Hero composition — tighten the right column ───── */
.ed-hero__copy {
	gap: 18px;
}
.ed-hero__lede {
	max-width: 380px;
	font-size: 16px;
	line-height: 1.5;
}
.ed-hero__cta {
	margin-top: 8px;
	gap: 12px;
}
/* Reduce overall hero padding so headline + reel feel like one composition */
.ed-hero {
	padding-bottom: 40px;
}
.ed-plate {
	padding-top: 0;
	margin-top: 0;
}

/* ── 4. Featured marathon loses scale — only featured tier scales ─ */
.ed-mar-feature { transform: none; }
.ed-mar-feature:hover { transform: none; }
/* Featured marathon distinguished only by photo size and asymmetry */
.ed-mar--small { opacity: 1; } /* lose the dimming — supporting still readable */

/* Featured tier remains the only physically-scaled element on the page */
.ed-tier--featured { transform: scale(1.04); }
.ed-tier--featured:hover { transform: translateY(-4px) scale(1.04); }

/* ── 5. FAQ — premium breathing room ──────────────────── */
.ed-faq details {
	padding: 48px 0;
}
.ed-faq summary > span:first-child {
	font-size: clamp(20px, 2.2vw, 28px);
	font-weight: 500;
	letter-spacing: -0.015em;
	line-height: 1.2;
}
.ed-faq details p {
	margin-top: 20px;
	font-size: 17px;
	line-height: 1.6;
	color: var(--ink-soft);
	max-width: 60ch;
}

/* ── 6. Coda — single emotional CTA, ghost downgraded to text-link ── */
.ed-coda { padding-top: 160px; padding-bottom: 160px; }
.ed-coda h2 {
	max-width: 14ch;
	margin-left: auto;
	margin-right: auto;
}
.ed-coda__lede {
	margin-top: 28px;
	font-size: 18px;
	color: var(--ink-mute);
	max-width: 36ch;
}
.ed-coda__cta {
	margin-top: 56px;
	flex-direction: column;
	gap: 20px;
	align-items: center;
}
.ed-coda__cta .ed-btn:not(.ed-btn--ghost) {
	min-width: 280px;
	padding: 22px 40px;
	font-size: 15px;
}
/* Demote secondary CTA to a calm text-link (single dominant action) */
.ed-coda__cta .ed-btn--ghost {
	background: transparent;
	border: 0;
	padding: 0;
	min-height: 0;
	border-bottom: 1px solid var(--ink);
	border-radius: 0;
	color: var(--ink);
	font-size: 13px;
	letter-spacing: 0.02em;
	font-weight: 500;
}
.ed-coda__cta .ed-btn--ghost:hover {
	background: transparent;
	color: var(--ink);
	opacity: 0.6;
}

/* ── Tighter section heads — more breath between title and content ── */
.ed-section__head { margin-bottom: 72px; }
.ed-pricing__head { margin-bottom: 72px; }
@media (max-width: 880px) {
	.ed-section__head { margin-bottom: 36px; }
	.ed-pricing__head { margin-bottom: 36px; }
	.ed-faq details { padding: 32px 0; }
	.ed-coda { padding-top: 96px; padding-bottom: 96px; }
	.ed-coda__cta .ed-btn:not(.ed-btn--ghost) { min-width: 0; width: 100%; }
}

/* ── Method bg alternation — already dark, keep ─────── */
/* Method uses --ink as bg (sole dark moment between lights) */

/* ── Final flow contract (computed effect):
       Hero       white
       Reel       white (just video)
       Free       paper-2     (alt)
       Formats    paper-2     (alt — same as Free, single sub-block)
       Marathons  white
       Method     ink (dark)  ← dramatic contrast moment
       Instructor white
       Pricing    white
       Dashboard  paper-2     (alt)
       FAQ        paper-2     (alt — same band, single sub-block)
       Coda       white
       Footer     white
   Light → light → tone → white → DARK → white → white → tone → white → footer
   ═══════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════
   HERO · EDITORIAL LAYERED COMPOSITION
   60% headline / 35% support+CTA · CTA pinned to middle of h1
   Reel image overlaps upward into hero → layering + depth
   ═══════════════════════════════════════════════════════════ */

.ed-hero--editorial {
	padding-top: clamp(60px, 9vw, 120px);
	padding-bottom: 0;
	position: relative;
	overflow: hidden;
}

.ed-hero--editorial .ed-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 60fr) minmax(0, 35fr);
	column-gap: 5%;
	align-items: start;
	position: relative;
	z-index: 2;
	padding-bottom: clamp(60px, 7vw, 100px);
}

/* Headline — 600px max, tight line-height, 3 lines */
.ed-hero--editorial .ed-hero__head {
	grid-column: 1;
	grid-row: 1;
}
.ed-hero--editorial .ed-hero__head h1 {
	margin: 0;
	font-size: clamp(72px, 13vw, 184px);
	line-height: 0.92;
	letter-spacing: -0.04em;
	font-weight: 700;
	max-width: 600px;
}

/* Right copy — pinned to MIDDLE of headline, not bottom */
.ed-hero--editorial .ed-hero__copy {
	grid-column: 2;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	gap: 18px;
	align-self: start;
	margin-top: clamp(48px, 8vw, 140px);
	max-width: 360px;
}
.ed-hero--editorial .ed-hero__lede {
	margin: 0;
	font-size: 16px;
	line-height: 1.55;
	color: var(--ink-soft);
	font-weight: 400;
}
.ed-hero--editorial .ed-hero__cta {
	margin-top: 8px;
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}

/* Reel — full-bleed, overlaps upward into hero (layered depth) */
.ed-hero--editorial .ed-hero__media {
	position: relative;
	margin: 0;
	width: 100%;
	height: clamp(420px, 52vw, 560px);
	margin-top: clamp(-160px, -9vw, -80px); /* overlap upward */
	z-index: 1;
	overflow: hidden;
	background-size: cover !important;
	background-position: center !important;
}
.ed-hero--editorial .ed-hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
/* Subtle gradient overlay for depth */
.ed-hero--editorial .ed-hero__media::after {
	content: '';
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(255,255,255,0.04) 0%, transparent 18%),
		linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.22) 100%);
	pointer-events: none;
}

/* Anchor headline above the rising image (z-index won the stacking war
   already via .ed-hero__grid z-index: 2 — last line of h1 is drawn over
   the image's top edge, creating editorial layering). */

/* Reduced-motion: disable parallax + image scale */
@media (prefers-reduced-motion: reduce) {
	.ed-hero--editorial .ed-hero__video { display: none; }
}

/* ── Mobile: stack, no overlap ──────────────────────── */
@media (max-width: 880px) {
	.ed-hero--editorial { padding-top: 32px; }
	.ed-hero--editorial .ed-hero__grid {
		grid-template-columns: 1fr;
		gap: 24px;
		padding-bottom: 32px;
	}
	.ed-hero--editorial .ed-hero__head h1 {
		font-size: clamp(56px, 14vw, 88px);
		max-width: 100%;
	}
	.ed-hero--editorial .ed-hero__copy {
		grid-column: 1;
		grid-row: 2;
		margin-top: 0;
		max-width: 100%;
	}
	.ed-hero--editorial .ed-hero__media {
		margin-top: 0;
		height: 360px;
	}
}

/* ── Hide the old standalone .ed-plate (now merged into hero) ── */
.ed-plate { display: none; }

/* ═══════════════════════════════════════════════════════════
   HERO · ART-DIRECTOR REFINEMENTS
   1. Headline 13% smaller for better proportion (184 → 160)
   2. Right column tighter (340px) + buttons on one line
   3. Stronger upward overlap (image rises further into text)
   4. Cinematic crop — subject shifted off-center (35%)
   5. Tri-layer gradient — left readability fade + top edge merge
      with hero-bg + bottom vignette
   6. Lede slightly bigger + calmer color
   ═══════════════════════════════════════════════════════════ */

/* 1. Headline proportion — reduced 13% from 184 → 160px max,
      tighter line-height 0.9 (per brief) */
.ed-hero--editorial .ed-hero__head h1 {
	font-size: clamp(64px, 11vw, 160px);
	line-height: 0.9;
	letter-spacing: -0.04em;
	max-width: 580px;
}

/* 2. Right column — tighter, buttons inline */
.ed-hero--editorial .ed-hero__copy {
	max-width: 340px;
	gap: 16px;
}
.ed-hero--editorial .ed-hero__lede {
	font-size: 17px;
	line-height: 1.55;
	color: var(--ink-soft);
	max-width: 320px;
}
@media (min-width: 881px) {
	.ed-hero--editorial .ed-hero__cta {
		flex-wrap: nowrap;
		gap: 10px;
	}
	.ed-hero--editorial .ed-hero__cta .ed-btn {
		padding: 16px 26px;
		font-size: 13px;
		min-height: 48px;
	}
	.ed-hero--editorial .ed-hero__cta .ed-btn--ghost {
		padding: 16px 22px;
	}
}

/* 3. Stronger upward overlap — image rises further into text */
.ed-hero--editorial .ed-hero__media {
	margin-top: clamp(-220px, -12vw, -120px);
	height: clamp(440px, 54vw, 580px);
}

/* 4. Cinematic crop — shift subject off-center (left third) */
.ed-hero--editorial .ed-hero__media {
	background-position: 35% center !important;
	background-size: 112% 112% !important;
	transition: background-size 2s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-hero--editorial .ed-hero__video {
	object-position: 35% 50%;
	transform: scale(1.04);
	transition: transform 2.4s cubic-bezier(0.2, 0.7, 0.3, 1);
}
/* On scroll-reveal: subtle settle to scale 1 */
.ed-hero--editorial[data-scrolled] .ed-hero__video {
	transform: scale(1);
}

/* 5. Tri-layer gradient — depth + readability + edge merge */
.ed-hero--editorial .ed-hero__media::after {
	background:
		/* Left-side fade for headline overlap readability */
		linear-gradient(90deg, rgba(255,255,255,0.48) 0%, rgba(255,255,255,0) 38%),
		/* Top edge softens transition from hero white background */
		linear-gradient(180deg, rgba(255,255,255,0.08) 0%, transparent 14%),
		/* Bottom vignette for cinematic feel + footer transition */
		linear-gradient(180deg, transparent 58%, rgba(0,0,0,0.28) 100%);
}

/* 6. Headline text-shadow boost when overlapping image
      (very subtle, only enhances contrast on overlap) */
.ed-hero--editorial .ed-hero__head h1 {
	text-shadow: 0 1px 0 rgba(255,255,255,0.0);
	transition: text-shadow 0.6s ease;
}

/* Mobile: revert to clean stack, no overlap */
@media (max-width: 880px) {
	.ed-hero--editorial .ed-hero__head h1 {
		font-size: clamp(56px, 13vw, 80px);
	}
	.ed-hero--editorial .ed-hero__media {
		margin-top: 0;
		height: 360px;
		background-position: center !important;
	}
	.ed-hero--editorial .ed-hero__cta { flex-wrap: wrap; }
}

/* ═══════════════════════════════════════════════════════════
   HERO · HIERARCHY PASS
   1. Subordinate video — desaturate + soften → ATMOSPHERE not focus
   2. Stronger left wash — protect headline readability
   3. Deeper overlap — text + media = real layering, not "touching"
   4. CTA refinement — intentional spacing + soft scale on hover
   5. Subtle inner glow on hero bg — NOT pure flat white
   ═══════════════════════════════════════════════════════════ */

/* 1. VIDEO TREATMENT — subordinate to headline */
.ed-hero--editorial .ed-hero__video {
	filter: brightness(0.94) saturate(0.85) contrast(0.96);
	opacity: 0.94;
}

/* 2. STRONGER LEFT WASH — headline must read */
.ed-hero--editorial .ed-hero__media::after {
	background:
		/* Headline-side white wash — much stronger near left */
		linear-gradient(95deg,
			rgba(255,255,255,0.72) 0%,
			rgba(255,255,255,0.42) 22%,
			rgba(255,255,255,0.0)  52%
		),
		/* Top edge merges into hero white background */
		linear-gradient(180deg,
			rgba(255,255,255,0.18) 0%,
			rgba(255,255,255,0.0) 16%
		),
		/* Bottom soft vignette */
		linear-gradient(180deg,
			transparent 60%,
			rgba(0,0,0,0.18) 100%
		);
}

/* 3. DEEPER OVERLAP — image rises further behind headline */
.ed-hero--editorial .ed-hero__media {
	margin-top: clamp(-280px, -14vw, -160px);
}

/* 4. CTA — intentional spacing + soft scale on hover */
@media (min-width: 881px) {
	.ed-hero--editorial .ed-hero__cta {
		gap: 14px;
		margin-top: 12px;
	}
	.ed-hero--editorial .ed-hero__cta .ed-btn {
		padding: 18px 28px;
		min-height: 50px;
		transition: background 0.4s ease, color 0.4s ease,
		            border-color 0.4s ease, transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1),
		            box-shadow 0.4s ease;
	}
	.ed-hero--editorial .ed-hero__cta .ed-btn:hover {
		transform: translateY(-1px) scale(1.025);
		box-shadow: 0 10px 28px rgba(0, 0, 0, 0.10);
	}
}

/* 5. HERO BG — subtle inner glow, not pure flat white */
.ed-hero--editorial {
	background:
		radial-gradient(ellipse 120% 80% at 30% 30%,
			rgba(245,243,239,0.6) 0%,
			rgba(255,255,255,0) 60%
		),
		var(--paper);
}

/* Typography hierarchy — h1 still dominant but breathes */
.ed-hero--editorial .ed-hero__head h1 {
	color: var(--ink);
	position: relative;
	z-index: 3; /* explicit — above grid (z-2) and media (z-1) */
}
.ed-hero--editorial .ed-hero__lede {
	color: var(--ink-soft);
	font-weight: 400;
}

/* Mobile: simpler treatment, no filter on video, no scale on tap */
@media (max-width: 880px) {
	.ed-hero--editorial .ed-hero__video {
		filter: none;
		opacity: 1;
	}
	.ed-hero--editorial .ed-hero__media::after {
		background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.20) 100%);
	}
	.ed-hero--editorial .ed-hero__cta .ed-btn:active {
		transform: scale(0.98);
	}
	.ed-hero--editorial { background: var(--paper); }
}

/* ═══════════════════════════════════════════════════════════
   REVERT — back to clean two-section layout
   Hero (text only) → Plate (video reel below, no overlap)
   Cancels all `.ed-hero--editorial` overlap rules above.
   ═══════════════════════════════════════════════════════════ */

/* Restore plate visibility (was hidden during editorial overlap) */
.ed-plate {
	display: block;
	padding: 0 var(--bm-pad);
	margin-top: 0;
	margin-bottom: 0;
}
.ed-plate__img {
	width: 100%;
	max-width: var(--bm-max);
	margin: 0 auto;
	height: clamp(420px, 56vw, 720px);
	position: relative;
	overflow: hidden;
	background-size: cover !important;
	background-position: center !important;
}

/* Hero — back to clean text-only section, no overlap, no media inside */
.ed-hero {
	padding-top: clamp(60px, 9vw, 120px);
	padding-bottom: clamp(40px, 5vw, 64px);
	background: var(--paper);
	overflow: visible;
}
/* Legacy hero-editorial cleanup: hide leftover media element used in an
   earlier hero variant. Scoped to that variant only — must NOT hide the
   cinematic hero's video. */
.ed-hero--editorial .ed-hero__media,
.ed-hero--editorial figure.ed-hero__media {
	display: none !important;
}

/* Override any leftover editorial-mode rules that grab .ed-hero generically */
.ed-hero .ed-hero__head h1 {
	font-size: clamp(72px, 13vw, 184px);
	line-height: 0.92;
	letter-spacing: -0.04em;
	max-width: 600px;
}

/* Plate video — full coverage of its container, no left-wash, no filter */
.ed-plate__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	filter: none;
	opacity: 1;
}

/* Plate has no decorative gradient overlay (text doesn't sit over it) */
.ed-plate__img::after { display: none; }

/* Restore body background — drop the radial glow specific to merged hero */
body.ed-root,
body { background: var(--paper); }

/* Mobile */
@media (max-width: 880px) {
	.ed-hero { padding-top: 32px; padding-bottom: 24px; }
	.ed-plate__img { height: 320px; }
}

/* ═══════════════════════════════════════════════════════════
   INSTRUCTOR · EDITORIAL FOUNDER SPREAD
   Asymmetric 1.2 / 1 grid, primary portrait full-bleed left,
   off-center crop, secondary lifestyle accent floats inside copy,
   credentials as airy text rows (no table feel).
   ═══════════════════════════════════════════════════════════ */

.ed-instructor--editorial {
	padding-top: clamp(96px, 12vw, 160px);
	padding-bottom: clamp(96px, 12vw, 160px);
	overflow: hidden;
	position: relative;
}

.ed-instructor--editorial .ed-instructor__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	gap: clamp(40px, 6vw, 96px);
	align-items: stretch;
}

/* Primary portrait — full-bleed left, off-center editorial crop */
.ed-instructor--editorial .ed-instructor__media {
	margin: 0;
	width: calc(100% + var(--bm-pad));
	margin-left: calc(-1 * var(--bm-pad));
	height: clamp(620px, 78vw, 920px);
	background-size: cover;
	background-position: 35% 28%;          /* crop face/upper body off-center */
	background-repeat: no-repeat;
	position: relative;
	overflow: hidden;
}
.ed-instructor--editorial .ed-instructor__media::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 70%, rgba(0,0,0,0.16) 100%);
	pointer-events: none;
}

/* Copy column — calm vertical flow, no table */
.ed-instructor--editorial .ed-instructor__copy {
	padding-top: clamp(32px, 6vw, 80px);
	display: flex;
	flex-direction: column;
	max-width: 460px;
}

/* Mono overline — small confident label */
.ed-instructor__overline {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin: 0 0 24px;
}

/* Name — large, confident, but breathes */
.ed-instructor--editorial .ed-instructor__copy h2 {
	font-size: clamp(56px, 7.5vw, 112px);
	line-height: 0.92;
	letter-spacing: -0.035em;
	font-weight: 600;
	margin: 0 0 32px;
}
.ed-instructor--editorial .ed-instructor__copy h2 em {
	font-style: normal;
	font-weight: 700;
}

/* Bio — calm, readable, slightly larger than body */
.ed-instructor--editorial .ed-instructor__bio {
	font-size: 18px;
	line-height: 1.55;
	color: var(--ink-soft);
	font-weight: 400;
	margin: 0 0 24px;
	max-width: 440px;
}

/* Detail — secondary, slightly smaller */
.ed-instructor--editorial .ed-instructor__detail {
	font-size: 16px;
	line-height: 1.7;
	color: var(--ink-soft);
	font-weight: 400;
	margin: 0 0 48px;
	max-width: 440px;
}

/* Secondary lifestyle accent — small floating image inside copy */
.ed-instructor--editorial .ed-instructor__accent {
	margin: 0 0 56px;
	width: clamp(220px, 28vw, 320px);
	height: clamp(280px, 36vw, 420px);
	background-size: cover;
	background-position: 50% 35%;
	background-repeat: no-repeat;
	margin-left: clamp(60px, 10vw, 140px); /* pushed right for editorial offset */
	transform: rotate(-1deg);
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.10);
}

/* Credentials — airy text rows, no table lines */
.ed-instructor--editorial .ed-instructor__credentials {
	margin: 0;
	padding: 32px 0 0;
	border-top: 1px solid var(--rule);
	display: flex;
	flex-direction: column;
	gap: 24px;
	max-width: 440px;
}
.ed-instructor--editorial .ed-instructor__credentials > div {
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: 24px;
	align-items: baseline;
	padding: 0;
	border: 0;
}
.ed-instructor--editorial .ed-instructor__credentials dt {
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin: 0;
}
.ed-instructor--editorial .ed-instructor__credentials dd {
	margin: 0;
	font-family: var(--display);
	font-size: 17px;
	line-height: 1.4;
	color: var(--ink);
	font-weight: 500;
	font-style: normal;
}

/* Mobile: stack, no rotation, no bleed */
@media (max-width: 880px) {
	.ed-instructor--editorial { padding: 64px 0; }
	.ed-instructor--editorial .ed-instructor__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.ed-instructor--editorial .ed-instructor__media {
		width: 100%;
		margin-left: 0;
		height: 480px;
		background-position: 35% 25%;
	}
	.ed-instructor--editorial .ed-instructor__copy {
		padding-top: 0;
		max-width: 100%;
	}
	.ed-instructor--editorial .ed-instructor__copy h2 {
		font-size: clamp(48px, 11vw, 72px);
		margin-bottom: 24px;
	}
	.ed-instructor--editorial .ed-instructor__accent {
		display: none;          /* hide secondary on mobile — keep section calm */
	}
	.ed-instructor--editorial .ed-instructor__credentials > div {
		grid-template-columns: 96px 1fr;
		gap: 16px;
	}
}

/* Reduced motion — no rotation on accent */
@media (prefers-reduced-motion: reduce) {
	.ed-instructor--editorial .ed-instructor__accent {
		transform: none;
		box-shadow: none;
	}
}

/* ═══════════════════════════════════════════════════════════
   INSTRUCTOR — final override (single confident founder spread)
   Removes: secondary accent image, credential table, oversize headline.
   Adds:    1.4:1 asymmetric grid, single inline credential row,
            calmer name scale, single ghost CTA.
   ═══════════════════════════════════════════════════════════ */

/* Section rhythm — calmer than 160px towers */
.ed-instructor--editorial {
	padding-top: clamp(80px, 10vw, 120px);
	padding-bottom: clamp(80px, 10vw, 120px);
}

/* True asymmetric grid — 1.4 : 1 instead of 1.2 : 1 */
.ed-instructor--editorial .ed-instructor__grid {
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: clamp(48px, 7vw, 112px);
	align-items: start;
}

/* Single hero portrait — bleed left, classic editorial portrait ratio */
.ed-instructor--editorial .ed-instructor__media {
	width: calc(100% + var(--bm-pad));
	margin-left: calc(-1 * var(--bm-pad));
	height: clamp(560px, 70vh, 820px);
	aspect-ratio: 4 / 5;
	background-size: cover;
	background-position: 35% 30%;
	background-repeat: no-repeat;
}

/* Headline — name only, section-quiet scale (no display) */
.ed-instructor--editorial .ed-instructor__copy {
	padding-top: clamp(8px, 2vw, 32px);
	max-width: 460px;
}
.ed-instructor--editorial .ed-instructor__copy h2 {
	font-size: clamp(40px, 4.4vw, 64px);
	line-height: 1.02;
	letter-spacing: -0.025em;
	font-weight: 600;
	margin: 0 0 28px;
}
.ed-instructor--editorial .ed-instructor__copy h2 em {
	font-style: normal;
	font-weight: 600;
}

/* Bio + detail — disciplined measure, never wider than text col */
.ed-instructor--editorial .ed-instructor__bio {
	font-size: 17px;
	line-height: 1.55;
	color: var(--ink-soft);
	margin: 0 0 20px;
	max-width: 460px;
}
.ed-instructor--editorial .ed-instructor__detail {
	font-size: 16px;
	line-height: 1.65;
	color: var(--ink-soft);
	margin: 0 0 32px;
	max-width: 460px;
}

/* Kill the rotated lifestyle accent everywhere — no decoration */
.ed-instructor--editorial .ed-instructor__accent { display: none !important; }

/* Single inline credential line — replaces the dl table entirely */
.ed-instructor__creds-line {
	margin: 0 0 32px;
	padding: 20px 0 0;
	border-top: 1px solid var(--rule);
	font-family: var(--mono);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ink-mute);
	line-height: 1.6;
}
.ed-instructor__creds-line span {
	margin: 0 0.5em;
	color: var(--ink-mute);
	opacity: 0.5;
}

/* Single ghost CTA — text-link styling, calm */
.ed-instructor__more {
	display: inline-block;
	font-family: var(--display);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--ink);
	text-decoration: none;
	border-bottom: 1px solid var(--ink);
	padding-bottom: 4px;
	transition: opacity 0.4s ease;
}
.ed-instructor__more:hover { opacity: 0.55; }

/* Mobile — stack, no bleed */
@media (max-width: 880px) {
	.ed-instructor--editorial { padding: 64px 0; }
	.ed-instructor--editorial .ed-instructor__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.ed-instructor--editorial .ed-instructor__media {
		width: 100%;
		margin-left: 0;
		height: 480px;
		aspect-ratio: 4 / 5;
	}
	.ed-instructor--editorial .ed-instructor__copy h2 {
		font-size: 40px;
		margin-bottom: 20px;
	}
	.ed-instructor__creds-line {
		font-size: 11px;
		letter-spacing: 0.1em;
	}
}

/* ═══════════════════════════════════════════════════════════
   CODA — final override (calmer close, not a second hero)
   Reduces title from --h-display to a section-confident scale,
   trims vertical padding, brings buttons closer to headline,
   adds a thin top rule to mark the chapter break.
   ═══════════════════════════════════════════════════════════ */

/* The whole section is one centered column — headline, lede, buttons,
   all aligned to a single vertical axis with disciplined gaps. */
.ed-coda {
	padding-top: clamp(96px, 10vw, 140px) !important;
	padding-bottom: clamp(96px, 10vw, 140px) !important;
	border-top: 1px solid var(--rule-soft);
	text-align: center !important;
	display: flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

/* Headline — confident close, not a second hero.
   Capped tight so it never balloons on wide viewports. */
.ed-coda h2 {
	font-size: clamp(44px, 6vw, 88px) !important;
	line-height: 1.02 !important;
	letter-spacing: -0.03em !important;
	font-weight: 700 !important;
	max-width: 16ch !important;
	margin: 0 auto !important;
	text-align: center !important;
}
.ed-coda h2 em {
	font-style: normal !important;
	font-weight: 700 !important;
}

/* Lede — sits directly under the headline, centered as one unit */
.ed-coda__lede {
	margin: 20px auto 0 !important;
	font-family: var(--display) !important;
	font-style: normal !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	color: var(--ink-mute) !important;
	max-width: 40ch !important;
	text-align: center !important;
	letter-spacing: 0.01em !important;
}

/* Buttons — side by side, never stacked on desktop */
.ed-coda__cta {
	margin: 36px auto 0 !important;
	display: inline-flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 14px !important;
	flex-wrap: wrap;
}

/* Restore the ghost CTA as a real pill button (not the demoted text-link),
   so primary + ghost read as a pair, equal weight, equal height. */
.ed-coda__cta .ed-btn {
	min-width: 200px !important;
	min-height: 52px !important;
	padding: 16px 32px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	letter-spacing: 0.02em !important;
	border-radius: 999px !important;
	border: 1px solid var(--ink) !important;
}
.ed-coda__cta .ed-btn:not(.ed-btn--ghost) {
	background: var(--ink) !important;
	color: var(--paper) !important;
}
.ed-coda__cta .ed-btn--ghost {
	background: transparent !important;
	color: var(--ink) !important;
	border-bottom: 1px solid var(--ink) !important;
	border-radius: 999px !important;
	padding: 16px 32px !important;
}
.ed-coda__cta .ed-btn--ghost:hover {
	background: var(--ink) !important;
	color: var(--paper) !important;
}

@media (max-width: 880px) {
	.ed-coda {
		padding-top: 80px !important;
		padding-bottom: 80px !important;
	}
	.ed-coda h2 {
		font-size: clamp(36px, 9vw, 56px) !important;
	}
	.ed-coda__lede {
		font-size: 15px !important;
		margin-top: 16px !important;
	}
	.ed-coda__cta {
		margin-top: 28px !important;
		flex-direction: column !important;
		gap: 10px !important;
		width: 100%;
		max-width: 360px;
	}
	.ed-coda__cta .ed-btn {
		width: 100% !important;
		min-width: 0 !important;
	}
}

/* ═══════════════════════════════════════════════════════════
   FREE WORKOUTS — final override (uniform editorial grid)
   Kills the asymmetric photo-height + offset-margin trick
   that read as random rather than artful. Locks every card
   to the same 4:5 aspect ratio, aligns bottoms, refines the
   Free badge, fixes link-underline span.
   ═══════════════════════════════════════════════════════════ */

/* Section frame — clean container, breathing side padding */
#free.ed-section {
	padding-top: clamp(96px, 10vw, 140px) !important;
	padding-bottom: clamp(96px, 10vw, 140px) !important;
}

#free .ed-section__head {
	margin-bottom: clamp(48px, 6vw, 72px) !important;
	max-width: 100%;
}
#free .ed-section__head h2 {
	font-size: clamp(48px, 6.5vw, 96px) !important;
	line-height: 0.96 !important;
	letter-spacing: -0.025em !important;
	font-weight: 700 !important;
	max-width: 18ch !important;
}
#free .ed-section__head h2 em {
	font-style: normal !important;
	font-weight: 700 !important;
}

/* Grid — uniform 4-up, equal cards, equal gap */
#free .ed-grid-4 {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: clamp(20px, 2vw, 32px) !important;
	align-items: start !important;
}

/* Kill the asymmetric per-child rules — uniform from now on */
#free .ed-grid-4 > .ed-tile,
#free .ed-grid-4 > .ed-tile:nth-child(1),
#free .ed-grid-4 > .ed-tile:nth-child(2),
#free .ed-grid-4 > .ed-tile:nth-child(3),
#free .ed-grid-4 > .ed-tile:nth-child(4) {
	margin-top: 0 !important;
}

/* Tile — flex column, equal heights, content stays bottom-aligned */
#free .ed-tile {
	display: flex !important;
	flex-direction: column !important;
	gap: 0 !important;
	height: 100%;
	position: relative;
}

/* Photo — locked 4:5 aspect ratio for all four, no per-child variance */
#free .ed-tile__photo,
#free .ed-grid-4 > .ed-tile:nth-child(1) .ed-tile__photo,
#free .ed-grid-4 > .ed-tile:nth-child(2) .ed-tile__photo,
#free .ed-grid-4 > .ed-tile:nth-child(3) .ed-tile__photo,
#free .ed-grid-4 > .ed-tile:nth-child(4) .ed-tile__photo {
	aspect-ratio: 4 / 5 !important;
	height: auto !important;
	width: 100% !important;
	border-radius: 4px;
	overflow: hidden;
	background-size: cover !important;
	background-position: center 30% !important;
	display: block;
	position: relative;
	margin: 0 0 20px !important;
}

/* Free badge — smaller, refined, consistent position top-left */
#free .ed-tile__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	background: var(--ink) !important;
	color: var(--paper) !important;
	font-family: var(--mono) !important;
	font-size: 10px !important;
	font-weight: 600 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	padding: 6px 12px !important;
	border-radius: 999px !important;
	line-height: 1 !important;
	z-index: 2;
}

/* Meta row — single mono line, format on left, duration on right */
#free .ed-tile__meta {
	display: flex !important;
	justify-content: space-between !important;
	align-items: baseline !important;
	font-family: var(--mono) !important;
	font-size: 11px !important;
	font-weight: 500 !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	color: var(--ink-mute) !important;
	margin: 0 0 12px !important;
	border-bottom: 0 !important;
}

/* Title — disciplined cap, balanced line-height, min-height for grid alignment */
#free .ed-tile__title {
	font-family: var(--display) !important;
	font-size: clamp(20px, 1.7vw, 26px) !important;
	font-weight: 600 !important;
	line-height: 1.15 !important;
	letter-spacing: -0.015em !important;
	color: var(--ink) !important;
	margin: 0 0 16px !important;
	min-height: 2.3em;          /* reserve space for 2 lines so cards align */
	display: flex;
	align-items: flex-start;
}

/* Link — fix the full-width underline bug.
   In a flex-column tile, inline-block stretches to cross-axis.
   align-self: flex-start collapses it to content width. */
#free .ed-tile .ed-link {
	align-self: flex-start !important;
	display: inline-block !important;
	font-family: var(--display) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: 0.02em !important;
	text-transform: none !important;
	color: var(--ink) !important;
	border-bottom: 1px solid var(--ink) !important;
	padding-bottom: 4px !important;
	margin-top: auto;            /* push to bottom of flex tile */
	transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.2, 0.7, 0.3, 1);
}
#free .ed-tile .ed-link:hover {
	opacity: 0.6 !important;
	letter-spacing: 0.02em !important;
	transform: translateX(4px);
}

/* Hover refinement — quiet zoom, no badge shift */
#free .ed-tile__photo {
	transition: background-size 0.9s cubic-bezier(0.2, 0.7, 0.3, 1) !important;
	background-size: 105% !important;
}
#free .ed-tile:hover .ed-tile__photo {
	background-size: 112% !important;
}
#free .ed-tile__photo::after {
	background: linear-gradient(180deg, transparent 65%, rgba(0,0,0,0.18) 100%) !important;
}

/* Tablet — 2 across */
@media (max-width: 1080px) and (min-width: 561px) {
	#free .ed-grid-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 24px !important;
	}
}

/* Mobile — single column, tighter */
@media (max-width: 560px) {
	#free.ed-section {
		padding-top: 72px !important;
		padding-bottom: 72px !important;
	}
	#free .ed-grid-4 {
		grid-template-columns: 1fr !important;
		gap: 32px !important;
	}
	#free .ed-section__head h2 {
		font-size: clamp(36px, 11vw, 56px) !important;
	}
	#free .ed-tile__title {
		font-size: 22px !important;
		min-height: 0 !important;
	}
	#free .ed-tile__photo {
		margin-bottom: 16px !important;
	}
}

/* ═══════════════════════════════════════════════════════════
   LAUNCH CONTENT LAYER
   Rich course details, evergreen pages, journal, auth, and contact.
   ═══════════════════════════════════════════════════════════ */

.ed-section__intro {
	max-width: 560px;
	color: var(--ink-soft);
	font-size: 17px;
	line-height: 1.65;
	margin-top: 8px;
}

.ed-mini-list {
	display: grid;
	gap: 8px;
	margin: 4px 0 0;
	color: var(--ink-mute);
	font-size: 14px;
	line-height: 1.5;
}
.ed-mini-list li::before {
	content: "";
	display: inline-block;
	width: 5px;
	height: 5px;
	margin: 0 10px 2px 0;
	border-radius: 999px;
	background: var(--ink);
	opacity: 0.5;
}

.ed-mar-detail__lede {
	font-size: clamp(18px, 1.8vw, 24px);
	max-width: 620px;
}
.ed-mar-detail__facts {
	grid-template-columns: repeat(4, 1fr);
	margin-top: 32px;
	max-width: 620px;
}

.ed-section--compact {
	padding-top: 0;
}
.ed-course-detail-grid,
.ed-page-split,
.ed-contact-grid,
.ed-auth {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(40px, 6vw, 88px);
	max-width: var(--bm-max);
	margin: 0 auto;
	align-items: start;
}
.ed-course-richtext {
	display: grid;
	gap: 18px;
	max-width: 680px;
}
.ed-course-richtext p,
.ed-page-content p {
	color: var(--ink-soft);
	font-size: 17px;
	line-height: 1.75;
}
.ed-course-richtext .ed-eyebrow {
	margin-bottom: 10px;
}

.ed-course-side {
	display: grid;
	gap: 24px;
}
.ed-side-block {
	border-top: 1px solid var(--rule);
	padding-top: 24px;
}
.ed-side-block h3 {
	font-size: clamp(24px, 2.4vw, 34px);
	line-height: 1.05;
	margin-bottom: 18px;
}
.ed-check-list {
	display: grid;
	gap: 12px;
	color: var(--ink-soft);
	font-size: 15px;
	line-height: 1.55;
}
.ed-check-list li {
	position: relative;
	padding-left: 22px;
}
.ed-check-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.72em;
	width: 8px;
	height: 8px;
	border: 1px solid var(--ink);
	border-radius: 999px;
}

.ed-course-instructor {
	background: var(--paper-2);
}
.ed-course-instructor .ed-instructor__grid {
	max-width: var(--bm-max);
	margin: 0 auto;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr);
	align-items: center;
}
.ed-course-instructor .ed-instructor__media {
	min-height: 560px;
	background-size: cover;
	background-position: 35% 30%;
}
.ed-course-instructor .ed-instructor__copy {
	position: static;
	padding-top: 0;
}

.ed-course-cta {
	background: var(--ink);
	color: var(--paper);
}
.ed-course-cta .ed-eyebrow,
.ed-course-cta .ed-section__intro {
	color: rgba(255, 255, 255, 0.62);
}
.ed-course-cta h2 {
	color: var(--paper);
}
.ed-course-cta__panel {
	max-width: var(--bm-max);
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	padding-top: 32px;
	border-top: 1px solid rgba(255,255,255,0.16);
}
.ed-course-cta__panel p {
	max-width: 560px;
	color: rgba(255,255,255,0.72);
	font-size: 18px;
	line-height: 1.6;
}
.ed-course-cta .ed-btn--ghost {
	color: var(--paper) !important;
	border-color: var(--paper) !important;
}
.ed-course-cta .ed-btn--ghost:hover {
	background: var(--paper) !important;
	color: var(--ink) !important;
}

.ed-tier__features {
	display: grid;
	gap: 8px;
	margin-top: 14px;
	color: var(--ink-soft);
	font-size: 13px;
	line-height: 1.45;
}
.ed-tier__features li::before {
	content: "";
	display: inline-block;
	width: 4px;
	height: 4px;
	margin: 0 9px 2px 0;
	border-radius: 999px;
	background: currentColor;
	opacity: 0.6;
}
.ed-tier--featured .ed-tier__features,
.ed-pricing__grid--4 .ed-tier:nth-child(3) .ed-tier__features {
	color: rgba(255,255,255,0.72);
}

.ed-page-split__media,
.ed-contact-grid__media {
	min-height: clamp(420px, 52vw, 640px);
}
.ed-page-content {
	max-width: 760px;
	margin: 0 auto;
	color: var(--ink-soft);
	font-size: 17px;
	line-height: 1.75;
}

.ed-contact-card,
.ed-auth__panel {
	border: 1px solid var(--rule);
	padding: clamp(28px, 4vw, 48px);
	display: grid;
	gap: 28px;
	background: var(--paper);
}
.ed-contact-card a,
.ed-contact-card strong {
	display: inline-block;
	margin-top: 10px;
	font-family: var(--display);
	font-size: clamp(24px, 2.4vw, 34px);
	font-weight: 600;
	letter-spacing: -0.02em;
}
.ed-contact-card p,
.ed-auth__copy p,
.ed-auth__panel p {
	margin-top: 10px;
	color: var(--ink-soft);
	font-size: 16px;
	line-height: 1.65;
}
.ed-contact-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.ed-auth {
	align-items: center;
}
.ed-auth__copy h2 {
	font-size: var(--h-section);
	margin-top: 18px;
}
.ed-auth__panel form {
	display: grid;
	gap: 18px;
}
.ed-auth__panel label {
	display: block;
	margin-bottom: 8px;
	font-size: 13px;
	color: var(--ink-mute);
}
.ed-auth__panel input[type="text"],
.ed-auth__panel input[type="password"],
.ed-auth__panel input[type="email"] {
	width: 100%;
	border: 1px solid var(--rule);
	border-radius: 999px;
	padding: 14px 18px;
	font: inherit;
}
.ed-auth__panel input[type="submit"] {
	border: 1px solid var(--ink);
	background: var(--ink);
	color: var(--paper);
	border-radius: 999px;
	padding: 16px 24px;
	font-weight: 600;
	cursor: pointer;
}
.ed-auth__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 16px;
	padding-top: 18px;
	border-top: 1px solid var(--rule-soft);
}
.ed-auth__links a {
	font-weight: 600;
	border-bottom: 1px solid currentColor;
}

.ed-journal-grid {
	max-width: var(--bm-max);
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(28px, 4vw, 48px);
}
.ed-journal-card {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.ed-journal-card__media {
	display: block;
	aspect-ratio: 4 / 5;
	min-height: 0;
}
.ed-journal-card__meta {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ink-mute);
}
.ed-journal-card h3 {
	font-size: clamp(24px, 2.6vw, 36px);
	line-height: 1.08;
}
.ed-journal-card p {
	color: var(--ink-soft);
	line-height: 1.6;
}
.ed-journal-card .ed-link {
	align-self: flex-start;
	margin-top: auto;
}

.ed-programs {
	max-width: var(--bm-max);
	margin: 0 auto;
	display: grid;
	gap: 32px;
}
.ed-program {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: clamp(28px, 5vw, 72px);
	padding: 32px 0;
	border-top: 1px solid var(--rule);
}
.ed-program:last-child {
	border-bottom: 1px solid var(--rule);
}
.ed-program__head h3 {
	font-size: clamp(28px, 3vw, 44px);
}
.ed-program__head p {
	margin-top: 16px;
	color: var(--ink-soft);
	line-height: 1.6;
	max-width: 460px;
}
.ed-program__courses {
	display: grid;
	gap: 12px;
}
.ed-program__course {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	align-items: baseline;
	padding: 18px 0;
	border-top: 1px solid var(--rule-soft);
}
.ed-program__course:first-child {
	border-top: 0;
}
.ed-program__course span {
	font-size: 20px;
	font-weight: 600;
	letter-spacing: -0.01em;
}
.ed-program__course small {
	color: var(--ink-mute);
	font-size: 12px;
	text-align: right;
}

@media (max-width: 880px) {
	.ed-section__intro {
		font-size: 16px;
	}
	.ed-mar-detail__facts {
		grid-template-columns: repeat(2, 1fr);
	}
	.ed-course-detail-grid,
	.ed-page-split,
	.ed-contact-grid,
	.ed-auth,
	.ed-course-instructor .ed-instructor__grid,
	.ed-program {
		grid-template-columns: 1fr;
	}
	.ed-course-instructor .ed-instructor__media,
	.ed-page-split__media,
	.ed-contact-grid__media {
		min-height: 380px;
	}
	.ed-course-cta__panel {
		flex-direction: column;
		align-items: flex-start;
	}
	.ed-course-cta__panel .ed-mar__cta {
		width: 100%;
	}
	.ed-course-cta__panel .ed-btn {
		width: 100%;
		justify-content: center;
	}
	.ed-contact-card__actions,
	.ed-auth__links {
		flex-direction: column;
		align-items: flex-start;
	}
	.ed-journal-grid {
		grid-template-columns: 1fr;
		gap: 36px;
	}
	.ed-program__course {
		align-items: flex-start;
		flex-direction: column;
		gap: 6px;
	}
	.ed-program__course small {
		text-align: left;
	}
}

/* ═══════════════════════════════════════════════════════════
   GLOBAL CONTAINER LOCK — every section, every inner block
   Hard cap at 1920px on wide screens, 95vw at smaller viewports.
   Identical horizontal padding everywhere (24/16). No more drift.
   ═══════════════════════════════════════════════════════════ */

:root {
	/* Hard cap. min() picks the smaller — the cap on big screens,
	   95vw on smaller ones. Final padding controls gutter. */
	--bm-max:     min(1920px, 100% - 48px);
	--bm-max-mob: min(100% - 32px, 1920px);
	--bm-pad:     24px;
	--bm-pad-mob: 16px;
}

/* All TOP-LEVEL sections: full width, identical padding, no max here.
   The inner content is what caps — sections still let bg/photos bleed. */
.ed-root .ed-nav,
.ed-root .ed-hero,
.ed-root .ed-plate,
.ed-root .ed-section,
.ed-root .ed-method,
.ed-root .ed-instructor,
.ed-root .ed-pricing,
.ed-root .ed-faq,
.ed-root .ed-coda,
.ed-root .ed-footer,
.ed-root .ed-qualities,
.ed-root .ed-dash-preview,
.ed-root .ed-mar,
.ed-root .ed-page-hero,
.ed-root .ed-issue {
	padding-left:  var(--bm-pad) !important;
	padding-right: var(--bm-pad) !important;
	box-sizing: border-box;
	width: 100%;
}

/* All INNER content blocks: same hard cap, centered.
   This is what stops the "wandering width" — every grid lines up. */
.ed-root .ed-nav,
.ed-root .ed-hero__grid,
.ed-root .ed-section__head,
.ed-root .ed-section > *,
.ed-root .ed-grid-3,
.ed-root .ed-grid-4,
.ed-root .ed-method__grid,
.ed-root .ed-instructor__grid,
.ed-root .ed-pricing__head,
.ed-root .ed-pricing__grid,
.ed-root .ed-faq__grid,
.ed-root .ed-footer__grid,
.ed-root .ed-footer__base,
.ed-root .ed-qualities__grid,
.ed-root .ed-dash-preview__inner,
.ed-root .ed-mar-feature,
.ed-root .ed-mar-pair,
.ed-root .ed-mar-all,
.ed-root .ed-coda > *,
.ed-root .ed-page-hero > * {
	max-width: 1920px !important;
	margin-left: auto;
	margin-right: auto;
	width: 100%;
	box-sizing: border-box;
}

/* Plate / hero photo block: bleed full-width by design, but inner
   text captions stay capped */
.ed-root .ed-plate__img {
	max-width: 1920px !important;
	margin-left: auto;
	margin-right: auto;
}

/* Free workouts grid container — already capped via #free rules,
   ensure it inherits same max */
.ed-root #free .ed-grid-4 {
	max-width: 1920px !important;
	margin-left: auto;
	margin-right: auto;
}

/* Mobile — tighter padding, same logic */
@media (max-width: 880px) {
	.ed-root .ed-nav,
	.ed-root .ed-hero,
	.ed-root .ed-plate,
	.ed-root .ed-section,
	.ed-root .ed-method,
	.ed-root .ed-instructor,
	.ed-root .ed-pricing,
	.ed-root .ed-faq,
	.ed-root .ed-coda,
	.ed-root .ed-footer,
	.ed-root .ed-qualities,
	.ed-root .ed-dash-preview,
	.ed-root .ed-mar,
	.ed-root .ed-page-hero,
	.ed-root .ed-issue {
		padding-left:  var(--bm-pad-mob) !important;
		padding-right: var(--bm-pad-mob) !important;
	}
}

/* ═══════════════════════════════════════════════════════════
   CINEMATIC HERO — full-bleed dark moment
   100vh, video bg with slow zoom, dark gradient overlay,
   white text bottom-left, scroll cue. Premium boutique feel.
   ═══════════════════════════════════════════════════════════ */

.ed-root .ed-hero--cinematic {
	position: relative;
	min-height: 100vh;
	height: 100vh;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	overflow: hidden;
	padding: 0 !important;
	color: var(--paper);
	display: flex;
	align-items: flex-end;
	background: var(--ink);
	max-width: none !important;
}

.ed-hero--cinematic .ed-hero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
}

.ed-hero--cinematic .ed-hero__video {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	object-position: center 40%;
	filter: brightness(0.85) contrast(1.05);
	animation: ed-hero-zoom 14s cubic-bezier(0.2, 0.7, 0.3, 1) forwards;
	will-change: transform;
	z-index: 0;
	pointer-events: none;
}

@keyframes ed-hero-zoom {
	from { transform: scale(1.08); }
	to   { transform: scale(1.00); }
}

.ed-hero--cinematic .ed-hero__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg,
			rgba(10,10,10,0.35) 0%,
			rgba(10,10,10,0.10) 30%,
			rgba(10,10,10,0.55) 75%,
			rgba(10,10,10,0.85) 100%);
	pointer-events: none;
}

.ed-hero--cinematic .ed-hero__content {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1920px;
	margin: 0 auto;
	padding: 0 clamp(24px, 4vw, 64px) clamp(72px, 10vh, 120px);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: clamp(20px, 2.4vw, 32px);
}

.ed-hero--cinematic .ed-hero__eyebrow {
	font-family: var(--mono);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.78);
	margin: 0;
}

.ed-hero--cinematic .ed-hero__title {
	font-family: var(--display);
	font-size: clamp(64px, 9vw, 184px);
	font-weight: 700;
	line-height: 0.92;
	letter-spacing: -0.035em;
	color: var(--paper);
	margin: 0;
	max-width: 14ch;
	text-transform: none;
}

.ed-hero--cinematic .ed-hero__lede {
	font-family: var(--sans);
	font-size: clamp(16px, 1.3vw, 19px);
	line-height: 1.55;
	font-weight: 400;
	color: rgba(255,255,255,0.78);
	max-width: 52ch;
	margin: 0;
}

.ed-hero--cinematic .ed-hero__cta {
	display: inline-flex;
	flex-direction: row;
	gap: 12px;
	margin-top: 8px;
	flex-wrap: wrap;
}

/* Light-on-dark button variants — for cinematic hero only */
.ed-root .ed-btn--light {
	background: var(--paper);
	color: var(--ink);
	border: 1px solid var(--paper);
	border-radius: 999px;
	padding: 18px 36px;
	min-height: 56px;
	font-family: var(--display);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.01em;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.3, 1),
	            opacity 0.45s ease,
	            box-shadow 0.6s cubic-bezier(0.2, 0.7, 0.3, 1);
	will-change: transform;
}
.ed-root .ed-btn--light:hover {
	transform: scale(1.03) translateY(-1px);
	box-shadow: 0 12px 32px rgba(0,0,0,0.20);
	opacity: 0.96;
}

.ed-root .ed-btn--ghost-light {
	background: transparent;
	color: var(--paper);
	border: 1px solid rgba(255,255,255,0.45);
	border-radius: 999px;
	padding: 18px 36px;
	min-height: 56px;
	font-family: var(--display);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.01em;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.3, 1),
	            background 0.45s ease,
	            border-color 0.45s ease,
	            color 0.45s ease;
}
.ed-root .ed-btn--ghost-light:hover {
	transform: scale(1.03) translateY(-1px);
	background: rgba(255,255,255,0.10);
	border-color: rgba(255,255,255,0.85);
	color: var(--paper);
}

/* Scroll cue — bottom-right vertical mono line */
.ed-hero--cinematic .ed-hero__scroll {
	position: absolute;
	right: clamp(24px, 4vw, 64px);
	bottom: clamp(40px, 5vh, 60px);
	z-index: 2;
	color: rgba(255,255,255,0.7);
	text-decoration: none;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}
.ed-hero--cinematic .ed-hero__scroll span {
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	writing-mode: vertical-rl;
	transform: rotate(180deg);
}
.ed-hero--cinematic .ed-hero__scroll::after {
	content: '';
	width: 1px;
	height: 60px;
	background: rgba(255,255,255,0.45);
	animation: ed-scroll-pulse 2.4s cubic-bezier(0.4, 0, 0.2, 1) infinite;
	transform-origin: top center;
}
@keyframes ed-scroll-pulse {
	0%, 100% { transform: scaleY(0.3); opacity: 0.3; }
	50%      { transform: scaleY(1.0); opacity: 0.9; }
}

/* Hero h1 — guaranteed visible at all times. fade-up handles entrance. */
.ed-hero--cinematic .ed-hero__title {
	opacity: 1;
}
.ed-hero--cinematic .ed-hero__title em {
	font-style: normal;
	font-weight: 700;
}

/* ═══════════════════════════════════════════════════════════
   NAV — bold, confident, premium label hierarchy.
   IMPORTANT: color: is NOT !important here so GSAP can drive
   the scroll-bg-morph color tween on nav text.
   ═══════════════════════════════════════════════════════════ */

/* Pin nav to top of viewport so it stays visible across all bg zones */
.ed-root .ed-nav {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 50;
	background: transparent;
}
/* Push body content below the fixed nav */
.ed-root .ed-hero--cinematic { margin-top: 0; }
body.ed-root { padding-top: 0; }

.ed-root .ed-nav__menu a,
.ed-root .ed-nav__actions a,
.ed-root .ed-nav__actions span {
	font-family: var(--display) !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	transition: opacity 0.3s ease !important;
	/* color set initially by GSAP, then animated on scroll */
}
.ed-root .ed-nav__menu a:hover,
.ed-root .ed-nav__actions a:hover {
	opacity: 0.55 !important;
}
.ed-root .ed-nav__menu a.is-active {
	opacity: 1 !important;
}

/* Brand mark also confident */
.ed-root .ed-nav__brand {
	font-family: var(--display) !important;
	font-style: normal !important;
	font-weight: 700 !important;
	letter-spacing: -0.015em !important;
}

/* "Start" cart pill stays distinct */
.ed-root .ed-cart {
	font-family: var(--display) !important;
	font-weight: 700 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
}

/* ═══════════════════════════════════════════════════════════
   GLOBAL CONTAINER SYSTEM (revised for premium spacing)
   Outer max-width: 1920px. Horizontal gutters: 60-80px desktop,
   20-24px mobile. Inner content wrapper: 1280px for text-heavy.
   Single source of truth — every section obeys the same grid.
   ═══════════════════════════════════════════════════════════ */

:root {
	--bm-pad:        clamp(20px, 4vw, 80px);   /* 20→80 fluid */
	--bm-pad-mob:    20px;
	--bm-content-w:  1280px;                    /* inner cap for text */
	--bm-outer-w:    1920px;                    /* outer cap */
}

/* Outer container — every top-level section uses this padding */
.ed-root .ed-nav,
.ed-root .ed-hero,
.ed-root .ed-section,
.ed-root .ed-statement,
.ed-root .ed-method,
.ed-root .ed-instructor,
.ed-root .ed-pricing,
.ed-root .ed-faq,
.ed-root .ed-coda,
.ed-root .ed-footer,
.ed-root .ed-qualities,
.ed-root .ed-dash-preview,
.ed-root .ed-mar,
.ed-root .ed-page-hero,
.ed-root .ed-issue,
.ed-root .ed-course-hero,
.ed-root .ed-course-method,
.ed-root .ed-course-visual,
.ed-root .ed-course-library,
.ed-root .ed-course-final,
.ed-root .ed-course-why,
.ed-root .ed-course-levels,
.ed-root .ed-course-feature {
	padding-left:  var(--bm-pad) !important;
	padding-right: var(--bm-pad) !important;
	box-sizing: border-box;
	width: 100%;
}

@media (max-width: 880px) {
	:root { --bm-pad: var(--bm-pad-mob); }
	.ed-root .ed-nav,
	.ed-root .ed-hero,
	.ed-root .ed-section,
	.ed-root .ed-statement,
	.ed-root .ed-method,
	.ed-root .ed-instructor,
	.ed-root .ed-pricing,
	.ed-root .ed-faq,
	.ed-root .ed-coda,
	.ed-root .ed-footer,
	.ed-root .ed-qualities,
	.ed-root .ed-dash-preview,
	.ed-root .ed-mar,
	.ed-root .ed-page-hero,
	.ed-root .ed-issue,
	.ed-root .ed-course-hero,
	.ed-root .ed-course-method,
	.ed-root .ed-course-visual,
	.ed-root .ed-course-library,
	.ed-root .ed-course-final,
	.ed-root .ed-course-why,
	.ed-root .ed-course-levels,
	.ed-root .ed-course-feature {
		padding-left:  var(--bm-pad-mob) !important;
		padding-right: var(--bm-pad-mob) !important;
	}
}

/* Inner content wrapper — for text-heavy blocks. Use as utility class. */
.ed-content,
.ed-root .ed-content {
	max-width: var(--bm-content-w);
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}

/* Outer cap — applies to all main inner grids. 1920 hard cap. */
.ed-root .ed-nav,
.ed-root .ed-hero__grid,
.ed-root .ed-section__head,
.ed-root .ed-section > *,
.ed-root .ed-grid-3,
.ed-root .ed-grid-4,
.ed-root .ed-method__grid,
.ed-root .ed-instructor__grid,
.ed-root .ed-pricing__head,
.ed-root .ed-pricing__grid,
.ed-root .ed-faq__grid,
.ed-root .ed-footer__grid,
.ed-root .ed-footer__base,
.ed-root .ed-qualities__grid,
.ed-root .ed-dash-preview__inner,
.ed-root .ed-mar-feature,
.ed-root .ed-mar-pair,
.ed-root .ed-mar-all,
.ed-root .ed-coda > *,
.ed-root .ed-page-hero > *,
.ed-root .ed-statement__inner,
.ed-root .ed-course-hero__content,
.ed-root .ed-course-method__inner,
.ed-root .ed-course-visual,
.ed-root .ed-course-library__head,
.ed-root .ed-course-grid,
.ed-root .ed-course-final__inner,
.ed-root .ed-course-why__inner,
.ed-root .ed-course-levels__inner,
.ed-root .ed-course-feature__inner {
	max-width: 1920px !important;
	margin-left: auto;
	margin-right: auto;
	width: 100%;
	box-sizing: border-box;
}

/* ═══════════════════════════════════════════════════════════
   BG CANVAS — scroll-driven color morph
   A single fixed div behind all content. JS tweens its color
   between --ink and --paper as scroll progresses through zones.
   Sections marked [data-bg] become transparent so canvas shows.
   The hero is exempt — keeps its video bg as-is.
   ═══════════════════════════════════════════════════════════ */

.ed-bg-canvas {
	position: fixed;
	inset: 0;
	z-index: -1;
	background-color: var(--paper);  /* default: white. Pages with [data-bg="ink"] zones flip via JS */
	pointer-events: none;
	will-change: background-color;
	transition: none; /* GSAP drives the transition, not CSS */
}

/* Zones with data-bg — transparent so canvas shows */
.ed-root [data-bg="ink"]:not(.ed-hero--cinematic),
.ed-root [data-bg="paper"] {
	background: transparent !important;
}

/* Hero stays on its own video bg, but mark it as ink-zone for canvas init */
.ed-root .ed-hero--cinematic[data-bg="ink"] {
	/* keep its own ink + video background, no override */
}

/* Body itself transparent so canvas shows through — but keep a fallback
   ink color so if JS fails, the page still renders consistently */
.ed-root,
body.ed-root {
	background: transparent;
}
html { background: var(--paper); }  /* default: white. Canvas + JS handle ink zones on homepage */

/* Statement text always white — it lives in the ink zone */
.ed-root [data-bg="ink"] .ed-statement__line,
.ed-root [data-bg="ink"] .ed-statement__eyebrow {
	color: var(--paper);
}

/* When scroll has progressed past the dark zones, body color tween
   handles the page — but locally, sections force their text colors
   so they never depend on inherited body color. */
.ed-root .ed-statement {
	color: var(--paper);
}
.ed-root #free.ed-section,
.ed-root #free .ed-tile,
.ed-root #free .ed-tile__title {
	color: var(--ink);
}

/* Reduced motion — hero loses zoom + scroll pulse */
@media (prefers-reduced-motion: reduce) {
	.ed-hero--cinematic .ed-hero__video { animation: none !important; }
	.ed-hero--cinematic .ed-hero__scroll::after { animation: none; transform: scaleY(1); opacity: 0.45; }
}

/* Mobile hero — calm, less aggressive */
@media (max-width: 880px) {
	.ed-root .ed-hero--cinematic {
		min-height: 92vh;
		height: 92vh;
	}
	.ed-hero--cinematic .ed-hero__content {
		padding: 0 var(--bm-pad-mob) 64px;
		gap: 18px;
	}
	.ed-hero--cinematic .ed-hero__title {
		font-size: clamp(48px, 13vw, 80px);
		max-width: 12ch;
	}
	.ed-hero--cinematic .ed-hero__lede { font-size: 15px; max-width: 100%; }
	.ed-hero--cinematic .ed-hero__cta { width: 100%; }
	.ed-hero--cinematic .ed-hero__cta .ed-btn--light,
	.ed-hero--cinematic .ed-hero__cta .ed-btn--ghost-light { flex: 1; }
	.ed-hero--cinematic .ed-hero__scroll { display: none; }
}

/* ═══════════════════════════════════════════════════════════
   STATEMENT BAND — dark editorial breath
   Single line, mono eyebrow, used immediately after hero to
   give the page rhythm. Paper → Dark → Paper alternation.
   ═══════════════════════════════════════════════════════════ */

.ed-root .ed-statement {
	background: var(--ink);
	color: var(--paper);
	padding-top:    clamp(96px, 12vw, 160px) !important;
	padding-bottom: clamp(96px, 12vw, 160px) !important;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	max-width: none !important;
}

.ed-statement__inner {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 clamp(24px, 4vw, 64px);
	display: flex;
	flex-direction: column;
	gap: 32px;
	text-align: center;
}

.ed-statement__eyebrow {
	font-family: var(--mono);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.55);
	margin: 0;
}

.ed-statement__line {
	font-family: var(--display);
	font-size: clamp(32px, 4.4vw, 64px);
	line-height: 1.18;
	letter-spacing: -0.02em;
	font-weight: 600;
	color: var(--paper);
	margin: 0;
	text-wrap: balance;
}

@media (max-width: 880px) {
	.ed-root .ed-statement {
		padding-top: 72px !important;
		padding-bottom: 72px !important;
	}
	.ed-statement__line {
		font-size: clamp(24px, 7vw, 36px);
		line-height: 1.25;
	}
}

/* ═══════════════════════════════════════════════════════════
   GLOBAL HOVER PHYSICS REFINEMENTS
   Smoother button hover, card lift, link letter-spacing widen.
   ═══════════════════════════════════════════════════════════ */

.ed-root .ed-btn,
.ed-root .ed-tier__cta {
	transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.3, 1),
	            opacity 0.45s ease,
	            box-shadow 0.6s cubic-bezier(0.2, 0.7, 0.3, 1),
	            background 0.45s ease,
	            color 0.45s ease;
}
.ed-root .ed-btn:hover {
	transform: scale(1.02) translateY(-1px);
	box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}

/* Card hover — refined lift + soft shadow */
.ed-root .ed-tile,
.ed-root .ed-mar,
.ed-root .ed-tier {
	transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1),
	            box-shadow 0.6s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-root .ed-tile:hover,
.ed-root .ed-mar:hover {
	transform: translateY(-3px);
}

/* Increased global section rhythm — luxurious breath */
.ed-root .ed-section,
.ed-root .ed-method,
.ed-root .ed-instructor,
.ed-root .ed-pricing,
.ed-root .ed-faq,
.ed-root .ed-qualities,
.ed-root .ed-dash-preview {
	padding-top:    clamp(96px, 11vw, 140px) !important;
	padding-bottom: clamp(96px, 11vw, 140px) !important;
}

@media (max-width: 880px) {
	.ed-root .ed-section,
	.ed-root .ed-method,
	.ed-root .ed-instructor,
	.ed-root .ed-pricing,
	.ed-root .ed-faq,
	.ed-root .ed-qualities,
	.ed-root .ed-dash-preview {
		padding-top: 72px !important;
		padding-bottom: 72px !important;
	}
}

/* ═══════════════════════════════════════════════════════════
   COURSE LANDING — premium editorial collection page
   Scoped to /course/ template. Image-led, dark/light rhythm.
   ═══════════════════════════════════════════════════════════ */

:root {
	--display: Satoshi, "General Sans", Inter, Barlow, Arial, sans-serif;
	--sans: Satoshi, "General Sans", Inter, Barlow, Arial, sans-serif;
	--mono: Satoshi, "General Sans", Inter, Barlow, Arial, sans-serif;
}

.js-anim [data-animate="word-stagger"] {
	opacity: 0;
	will-change: opacity;
}

[data-animate="word-stagger"] .ed-word {
	display: inline-block;
	overflow: hidden;
	vertical-align: top;
}

[data-animate="word-stagger"] .ed-word__inner {
	display: inline-block;
	will-change: transform;
}

.ed-course-label {
	margin: 0;
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.24em;
	line-height: 1.3;
	text-transform: uppercase;
}

.ed-course-hero {
	position: relative;
	isolation: isolate;
	min-height: 100vh;
	overflow: hidden;
	background: var(--ink) !important;
	color: var(--paper);
	display: grid;
	align-items: end;
	padding: clamp(128px, 13vw, 190px) clamp(22px, 6vw, 92px) clamp(76px, 9vw, 128px);
}

.ed-course-hero__media {
	position: absolute;
	inset: 0;
	z-index: -3;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	transform-origin: center;
	will-change: opacity, transform;
}

.ed-course-hero__shade {
	position: absolute;
	inset: 0;
	z-index: -2;
	background:
		radial-gradient(circle at 58% 32%, rgba(255,255,255,0.11), transparent 26%),
		linear-gradient(90deg, rgba(0,0,0,0.84) 0%, rgba(0,0,0,0.52) 42%, rgba(0,0,0,0.20) 72%),
		linear-gradient(180deg, rgba(0,0,0,0.28) 0%, rgba(0,0,0,0.18) 46%, rgba(0,0,0,0.82) 100%);
}

.ed-course-hero__content {
	width: min(1180px, 100%);
	margin: 0 auto;
	padding-left: clamp(0px, 6vw, 110px);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: clamp(22px, 2.4vw, 34px);
}

.ed-course-hero .ed-course-label {
	color: rgba(255,255,255,0.78);
}

.ed-course-hero__title {
	max-width: 10.5ch;
	font-size: clamp(72px, 11vw, 168px);
	font-weight: 650;
	line-height: 0.84;
	letter-spacing: 0.005em;
	color: var(--paper);
}

.ed-course-hero__lede {
	max-width: 640px;
	font-size: clamp(18px, 1.5vw, 23px);
	font-weight: 400;
	line-height: 1.62;
	color: rgba(255,255,255,0.82);
}

.ed-course-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
}

.ed-root .ed-course-btn,
.ed-root a.ed-course-btn {
	min-height: 50px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.18em;
	transition:
		transform 0.55s cubic-bezier(0.2, 0.7, 0.3, 1),
		opacity 0.45s ease,
		background 0.45s ease,
		color 0.45s ease,
		border-color 0.45s ease;
}

.ed-root .ed-course-btn:hover,
.ed-root a.ed-course-btn:hover {
	transform: scale(1.035) translateY(-2px);
	opacity: 0.86;
}

.ed-root .ed-course-btn--light,
.ed-root a.ed-course-btn--light {
	background: var(--paper);
	border-color: var(--paper);
	color: var(--ink);
}

.ed-root .ed-course-btn--ghost,
.ed-root a.ed-course-btn--ghost {
	background: rgba(255,255,255,0.06);
	border-color: rgba(255,255,255,0.48);
	color: var(--paper);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

.ed-root .ed-course-btn--ghost:hover,
.ed-root a.ed-course-btn--ghost:hover {
	background: rgba(255,255,255,0.16);
	color: var(--paper);
}

.ed-course-hero__cue {
	position: absolute;
	left: 50%;
	bottom: 30px;
	width: 1px;
	height: 54px;
	overflow: hidden;
	opacity: 0.72;
	transform: translateX(-50%);
}

.ed-course-hero__cue span {
	display: block;
	width: 1px;
	height: 100%;
	background: linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,0.9), rgba(255,255,255,0));
	animation: ed-course-cue 2.2s ease-in-out infinite;
}

@keyframes ed-course-cue {
	0% { transform: translateY(-105%); }
	55%, 100% { transform: translateY(105%); }
}

.ed-course-method {
	background: var(--ink) !important;
	color: var(--paper);
	padding: clamp(110px, 12vw, 180px) clamp(22px, 6vw, 92px);
}

.ed-course-method__inner {
	width: min(1180px, 100%);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 0.78fr 1.22fr;
	gap: clamp(42px, 7vw, 110px);
	align-items: start;
}

.ed-course-method .ed-course-label {
	color: rgba(255,255,255,0.5);
	grid-column: 1 / -1;
}

.ed-course-method h2 {
	font-size: clamp(44px, 6.4vw, 104px);
	font-weight: 620;
	line-height: 0.94;
	letter-spacing: 0.004em;
	color: var(--paper);
}

.ed-course-method__intro {
	max-width: 640px;
	font-size: clamp(18px, 1.5vw, 22px);
	line-height: 1.76;
	color: rgba(255,255,255,0.68);
}

.ed-course-pillars {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(28px, 4vw, 62px);
	margin-top: clamp(24px, 3vw, 52px);
}

.ed-course-pillars > div {
	border-top: 1px solid rgba(255,255,255,0.22);
	padding-top: 24px;
}

.ed-course-pillars span {
	display: block;
	margin-bottom: 34px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.2em;
	color: rgba(255,255,255,0.46);
}

.ed-course-pillars h3 {
	margin: 0 0 16px;
	font-size: clamp(22px, 2.1vw, 34px);
	font-weight: 650;
	line-height: 1.02;
	letter-spacing: 0.02em;
	color: var(--paper);
}

.ed-course-pillars p {
	font-size: 15px;
	line-height: 1.75;
	color: rgba(255,255,255,0.62);
}

.ed-course-visual {
	width: min(1340px, calc(100% - clamp(44px, 10vw, 148px)));
	margin: 0 auto;
	padding: clamp(108px, 12vw, 180px) 0;
	background: var(--paper) !important;
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(340px, 0.88fr);
	gap: clamp(42px, 6vw, 92px);
	align-items: center;
}

.ed-course-visual__image {
	min-height: clamp(520px, 62vw, 780px);
	border-radius: 6px;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	box-shadow: 0 34px 90px rgba(10,10,10,0.12);
}

.ed-course-visual__copy {
	max-width: 560px;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.ed-course-visual .ed-course-label,
.ed-course-library .ed-course-label {
	color: rgba(10,10,10,0.48);
}

.ed-course-visual h2,
.ed-course-library__head h2,
.ed-course-final h2 {
	font-weight: 650;
	line-height: 0.94;
	letter-spacing: 0.006em;
}

.ed-course-visual h2 {
	font-size: clamp(44px, 5.4vw, 92px);
	color: var(--ink);
}

.ed-course-visual p {
	font-size: clamp(17px, 1.35vw, 20px);
	line-height: 1.78;
	color: rgba(10,10,10,0.68);
}

.ed-course-visual__link {
	margin-top: 8px;
}

.ed-course-library {
	background: var(--paper) !important;
	padding: clamp(96px, 11vw, 160px) clamp(22px, 5vw, 76px) clamp(124px, 13vw, 190px);
}

.ed-course-library__head {
	width: min(900px, 100%);
	margin: 0 auto clamp(58px, 7vw, 102px);
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 22px;
}

.ed-course-library__head h2 {
	max-width: 820px;
	font-size: clamp(44px, 6.1vw, 104px);
	color: var(--ink);
}

.ed-course-library__head p {
	max-width: 660px;
	font-size: clamp(17px, 1.35vw, 20px);
	line-height: 1.75;
	color: rgba(10,10,10,0.62);
}

.ed-course-grid {
	width: min(1380px, 100%);
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(30px, 3.2vw, 52px);
	align-items: start;
}

.ed-course-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	transition:
		transform 0.65s cubic-bezier(0.2, 0.7, 0.3, 1),
		filter 0.65s cubic-bezier(0.2, 0.7, 0.3, 1);
}

.ed-course-card--featured {
	/* No span — all 9 cards uniform 3-col grid */
	grid-column: auto;
}

.ed-course-card:hover {
	transform: translateY(-8px);
	filter: drop-shadow(0 30px 38px rgba(10,10,10,0.13));
}

.ed-course-card__image {
	position: relative;
	min-height: clamp(420px, 42vw, 620px);
	border-radius: 6px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 30px;
	padding: clamp(22px, 2.5vw, 36px);
	color: var(--paper);
	background: var(--ink);
}

.ed-course-card--featured .ed-course-card__image {
	min-height: clamp(520px, 48vw, 720px);
}

.ed-course-card__image::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image: var(--course-img);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	transform: scale(1.01);
	transition: transform 0.95s cubic-bezier(0.2, 0.7, 0.3, 1), filter 0.95s ease;
	will-change: transform;
}

.ed-course-card__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(180deg, rgba(0,0,0,0.56) 0%, rgba(0,0,0,0.08) 42%, rgba(0,0,0,0.74) 100%),
		linear-gradient(120deg, rgba(0,0,0,0.42) 0%, rgba(0,0,0,0) 58%);
	transition: opacity 0.65s ease;
}

.ed-course-card:hover .ed-course-card__image::before {
	transform: scale(1.085);
	filter: saturate(1.04) contrast(1.04);
}

.ed-course-card:hover .ed-course-card__overlay {
	opacity: 0.92;
}

.ed-course-card__topline {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.18em;
	line-height: 1.4;
	text-transform: uppercase;
	color: rgba(255,255,255,0.78);
}

.ed-course-card__title {
	position: relative;
	z-index: 2;
	display: block;
	max-width: 10ch;
	font-family: var(--display);
	font-size: clamp(34px, 4.2vw, 70px);
	font-weight: 650;
	line-height: 0.94;
	letter-spacing: 0.006em;
	color: var(--paper);
	transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.3, 1);
}

.ed-course-card:not(.ed-course-card--featured) .ed-course-card__title {
	font-size: clamp(30px, 2.8vw, 48px);
}

.ed-course-card:hover .ed-course-card__title {
	transform: translateY(-12px);
}

.ed-course-card__body {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 24px 2px 0;
}

.ed-course-card__body p {
	font-size: 16px;
	line-height: 1.72;
	color: rgba(10,10,10,0.68);
}

.ed-course-card__body ul {
	display: grid;
	gap: 10px;
	padding-top: 2px;
}

.ed-course-card__body li {
	position: relative;
	padding-left: 18px;
	font-size: 13px;
	line-height: 1.55;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: rgba(10,10,10,0.78);
}

.ed-course-card__body li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.74em;
	width: 6px;
	height: 1px;
	background: rgba(10,10,10,0.72);
}

.ed-course-card__body dl {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin: 4px 0 0;
	padding-top: 18px;
	border-top: 1px solid rgba(10,10,10,0.12);
}

.ed-course-card__body dt {
	margin: 0 0 7px;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(10,10,10,0.42);
}

.ed-course-card__body dd {
	margin: 0;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--ink);
}

.ed-course-card__cta {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 22px;
	align-items: center;
	justify-content: space-between;
	padding-top: 2px;
}

.ed-course-final {
	background: var(--ink) !important;
	color: var(--paper);
	padding: clamp(118px, 14vw, 210px) clamp(22px, 6vw, 92px);
	text-align: center;
}

.ed-course-final__inner {
	width: min(1000px, 100%);
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(22px, 2.7vw, 36px);
}

.ed-course-final .ed-course-label {
	color: rgba(255,255,255,0.5);
}

.ed-course-final h2 {
	max-width: 9ch;
	font-size: clamp(72px, 11vw, 168px);
	color: var(--paper);
}

.ed-course-final p {
	max-width: 620px;
	font-size: clamp(18px, 1.5vw, 23px);
	line-height: 1.68;
	color: rgba(255,255,255,0.68);
}

@media (max-width: 1100px) {
	.ed-course-method__inner,
	.ed-course-visual {
		grid-template-columns: 1fr;
	}

	.ed-course-method__intro {
		max-width: 780px;
	}

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

	.ed-course-card--featured {
		grid-column: auto;
	}
}

@media (max-width: 760px) {
	.ed-course-hero {
		min-height: 100svh;
		padding: 112px 20px 72px;
	}

	.ed-course-hero__shade {
		background:
			linear-gradient(180deg, rgba(0,0,0,0.34) 0%, rgba(0,0,0,0.36) 34%, rgba(0,0,0,0.86) 100%),
			linear-gradient(90deg, rgba(0,0,0,0.66), rgba(0,0,0,0.24));
	}

	.ed-course-hero__content {
		padding-left: 0;
		gap: 20px;
	}

	.ed-course-hero__title,
	.ed-course-final h2 {
		font-size: clamp(58px, 16vw, 86px);
		line-height: 0.9;
	}

	.ed-course-hero__lede,
	.ed-course-final p {
		font-size: 16px;
		line-height: 1.62;
	}

	.ed-course-actions,
	.ed-course-actions .ed-course-btn {
		width: 100%;
	}

	.ed-course-actions .ed-course-btn {
		justify-content: center;
	}

	.ed-course-hero__cue {
		display: none;
	}

	.ed-course-method,
	.ed-course-library,
	.ed-course-final {
		padding-left: 20px;
		padding-right: 20px;
	}

	.ed-course-method,
	.ed-course-library {
		padding-top: 84px;
		padding-bottom: 92px;
	}

	.ed-course-method h2,
	.ed-course-visual h2,
	.ed-course-library__head h2 {
		font-size: clamp(38px, 11vw, 58px);
		line-height: 1;
	}

	.ed-course-pillars,
	.ed-course-grid {
		grid-template-columns: 1fr;
	}

	.ed-course-card--featured {
		grid-column: auto;
	}

	.ed-course-visual {
		width: calc(100% - 40px);
		padding: 88px 0;
		gap: 34px;
	}

	.ed-course-visual__image {
		min-height: 420px;
	}

	.ed-course-card__image,
	.ed-course-card--featured .ed-course-card__image {
		min-height: 440px;
	}

	.ed-course-card__body dl {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.ed-course-card__cta {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ed-course-hero__cue span {
		animation: none;
	}

	.ed-course-card,
	.ed-course-card__image::before,
	.ed-course-card__title,
	.ed-course-btn {
		transition: none;
	}
}

/* ═══════════════════════════════════════════════════════════
   COURSES PAGE — premium boutique experience
   Editorial 7-section flow. Real images, calm rhythm,
   typographic hierarchy. Apple / fashion editorial inspiration.
   ═══════════════════════════════════════════════════════════ */

/* Eyebrow used across courses page */
.ed-root .ed-course-eyebrow {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin: 0 0 24px;
}
.ed-root [data-bg="ink"] .ed-course-eyebrow {
	color: rgba(255,255,255,0.55);
}

/* ── 1. Hero — full-bleed cinematic ────────────────────── */
.ed-root .ed-course-hero {
	position: relative;
	min-height: 100vh;
	height: 100vh;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	overflow: hidden;
	padding: 0 !important;
	color: var(--paper);
	background: var(--ink);
	display: flex;
	align-items: flex-end;
	max-width: none !important;
}

.ed-root .ed-course-hero__media {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center 40%;
	background-repeat: no-repeat;
	filter: brightness(0.9) contrast(1.05) grayscale(0.15);
	animation: ed-hero-zoom 14s cubic-bezier(0.2, 0.7, 0.3, 1) forwards;
	z-index: 0;
}

.ed-root .ed-course-hero__shade {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(180deg,
			rgba(10,10,10,0.30) 0%,
			rgba(10,10,10,0.05) 30%,
			rgba(10,10,10,0.55) 75%,
			rgba(10,10,10,0.88) 100%);
	pointer-events: none;
}

.ed-root .ed-course-hero__content {
	position: relative;
	z-index: 2;
	padding: 0 var(--bm-pad) clamp(72px, 10vh, 120px) !important;
	max-width: 1920px !important;
	margin: 0 auto;
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: clamp(20px, 2.4vw, 32px);
}

.ed-root .ed-course-hero__content .ed-course-eyebrow {
	color: rgba(255,255,255,0.78);
	margin: 0;
}

.ed-root .ed-course-hero__title {
	font-family: var(--display);
	font-size: clamp(56px, 8vw, 168px);
	font-weight: 700;
	line-height: 0.94;
	letter-spacing: -0.035em;
	color: var(--paper);
	margin: 0;
	max-width: 18ch;
}
.ed-root .ed-course-hero__title em {
	font-style: normal;
	font-weight: 700;
}

.ed-root .ed-course-hero__lede {
	font-family: var(--sans);
	font-size: clamp(16px, 1.3vw, 19px);
	line-height: 1.55;
	color: rgba(255,255,255,0.78);
	max-width: 56ch;
	margin: 0;
}

.ed-root .ed-course-hero__cue {
	position: absolute;
	right: clamp(20px, 4vw, 60px);
	bottom: clamp(40px, 5vh, 60px);
	z-index: 3;
	width: 1px;
	height: 60px;
	overflow: hidden;
}
.ed-root .ed-course-hero__cue span {
	display: block;
	width: 1px;
	height: 100%;
	background: rgba(255,255,255,0.55);
	animation: ed-scroll-pulse 2.4s cubic-bezier(0.4, 0, 0.2, 1) infinite;
	transform-origin: top center;
}

/* Course buttons */
.ed-root .ed-course-actions {
	display: inline-flex;
	flex-direction: row;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 8px;
}
.ed-root .ed-course-btn {
	min-width: 200px;
	min-height: 56px;
	padding: 18px 36px;
	border-radius: 999px;
	font-family: var(--display);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.02em;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.3, 1),
	            background 0.45s ease,
	            color 0.45s ease,
	            box-shadow 0.6s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-root .ed-course-btn--light {
	background: var(--paper);
	color: var(--ink);
	border: 1px solid var(--paper);
}
.ed-root .ed-course-btn--light:hover {
	transform: scale(1.03) translateY(-1px);
	box-shadow: 0 12px 32px rgba(0,0,0,0.20);
}
.ed-root .ed-course-btn--ghost {
	background: transparent;
	color: var(--paper);
	border: 1px solid rgba(255,255,255,0.45);
}
.ed-root .ed-course-btn--ghost:hover {
	background: rgba(255,255,255,0.10);
	border-color: rgba(255,255,255,0.85);
	transform: scale(1.03) translateY(-1px);
}

/* ── 2. Why this method — typographic philosophy ──────── */
.ed-root .ed-course-why {
	padding-top: clamp(120px, 14vw, 200px) !important;
	padding-bottom: clamp(120px, 14vw, 200px) !important;
	background: transparent;
}
.ed-course-why__inner {
	max-width: 1200px;
	margin: 0 auto;
	text-align: center;
}
.ed-course-why__inner .ed-course-eyebrow {
	margin-bottom: 64px;
}
.ed-course-why__lines {
	display: flex;
	flex-direction: column;
	gap: 24px;
	margin-bottom: 80px;
}
.ed-course-why__line {
	font-family: var(--display);
	font-size: clamp(36px, 6vw, 88px);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.025em;
	color: var(--ink);
	margin: 0;
	text-wrap: balance;
}
.ed-course-why__caption {
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.6;
	color: var(--ink-mute);
	max-width: 56ch;
	margin: 0 auto;
}

@media (max-width: 880px) {
	.ed-root .ed-course-why {
		padding-top: 80px !important;
		padding-bottom: 80px !important;
	}
	.ed-course-why__line {
		font-size: clamp(28px, 9vw, 48px);
	}
	.ed-course-why__inner .ed-course-eyebrow { margin-bottom: 40px; }
	.ed-course-why__lines { margin-bottom: 56px; gap: 14px; }
}

/* ── 3. Method / Program structure ────────────────────── */
.ed-root .ed-course-method {
	padding-top: clamp(96px, 12vw, 160px) !important;
	padding-bottom: clamp(96px, 12vw, 160px) !important;
	border-top: 1px solid var(--rule-soft);
}

.ed-course-method__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
	gap: clamp(48px, 8vw, 120px);
	max-width: 1640px !important;
	margin: 0 auto;
}

.ed-course-method__copy h2 {
	font-family: var(--display);
	font-size: clamp(40px, 5.4vw, 80px);
	font-weight: 700;
	line-height: 0.96;
	letter-spacing: -0.025em;
	margin: 0 0 28px;
	color: var(--ink);
}
.ed-course-method__copy h2 em {
	font-style: normal;
	font-weight: 700;
}
.ed-course-method__intro {
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.6;
	color: var(--ink-soft);
	margin: 0 0 48px;
	max-width: 52ch;
}

.ed-course-stats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px;
	border-top: 1px solid var(--rule);
	padding-top: 32px;
	margin: 0;
	max-width: 460px;
}
.ed-course-stats > div {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.ed-course-stats dt {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin: 0;
	font-weight: 500;
}
.ed-course-stats dd {
	font-family: var(--display);
	font-size: 40px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--ink);
	margin: 0;
}

/* Levels list */
.ed-course-levels {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
}
.ed-course-level {
	display: grid;
	grid-template-columns: 80px minmax(0, 1fr);
	gap: 32px;
	padding: 32px 0;
	border-top: 1px solid var(--rule);
	align-items: start;
}
.ed-course-level:last-child { border-bottom: 1px solid var(--rule); }
.ed-course-level__num {
	font-family: var(--mono);
	font-size: 13px;
	letter-spacing: 0.18em;
	color: var(--ink-mute);
	font-weight: 500;
	padding-top: 6px;
}
.ed-course-level__body { display: flex; flex-direction: column; gap: 8px; }
.ed-course-level h3 {
	font-family: var(--display);
	font-size: clamp(22px, 2.2vw, 30px);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.015em;
	margin: 0;
	color: var(--ink);
}
.ed-course-level__tag {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink);
	font-weight: 500;
	margin: 0;
}
.ed-course-level__desc {
	font-family: var(--sans);
	font-size: 15px;
	line-height: 1.55;
	color: var(--ink-mute);
	margin: 0;
	max-width: 62ch;
}

@media (max-width: 1080px) {
	.ed-course-method__inner {
		grid-template-columns: 1fr;
		gap: 56px;
	}
}
@media (max-width: 880px) {
	.ed-root .ed-course-method {
		padding-top: 80px !important;
		padding-bottom: 80px !important;
	}
	.ed-course-stats { grid-template-columns: 1fr 1fr; gap: 20px; }
	.ed-course-stats dd { font-size: 32px; }
	.ed-course-level {
		grid-template-columns: 56px minmax(0, 1fr);
		gap: 16px;
		padding: 24px 0;
	}
}

/* ── 4. Featured course — asymmetric editorial ─────────── */
.ed-root .ed-course-feature {
	padding-top: clamp(96px, 12vw, 160px) !important;
	padding-bottom: clamp(96px, 12vw, 160px) !important;
}

.ed-course-feature__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: clamp(40px, 6vw, 96px);
	align-items: stretch;
	max-width: 1640px !important;
	margin: 0 auto;
}

.ed-course-feature__photo {
	display: block;
	position: relative;
	overflow: hidden;
	height: clamp(520px, 65vh, 800px);
	background-size: cover;
	background-position: center 30%;
	border-radius: 4px;
	text-decoration: none;
	transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-course-feature__photo:hover {
	transform: scale(1.005);
}

.ed-course-feature__photo-shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.30) 100%);
	pointer-events: none;
}

.ed-course-feature__badge {
	position: absolute;
	top: 24px;
	left: 24px;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	padding: 8px 16px;
	border-radius: 999px;
}

.ed-course-feature__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	max-width: 480px;
}
.ed-course-feature__copy h2 {
	font-family: var(--display);
	font-size: clamp(36px, 4.4vw, 64px);
	font-weight: 700;
	line-height: 0.98;
	letter-spacing: -0.025em;
	margin: 0 0 24px;
	color: var(--ink);
}
.ed-course-feature__lede {
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.6;
	color: var(--ink-soft);
	margin: 0 0 36px;
}
.ed-course-feature__facts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
	border-top: 1px solid var(--rule);
	padding-top: 28px;
	margin: 0 0 36px;
}
.ed-course-feature__facts dt {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin: 0 0 6px;
	font-weight: 500;
}
.ed-course-feature__facts dd {
	font-family: var(--display);
	font-size: 22px;
	font-weight: 600;
	letter-spacing: -0.01em;
	margin: 0;
	color: var(--ink);
}
.ed-course-feature .ed-course-actions { margin-top: 8px; }
.ed-course-feature__copy .ed-course-btn {
	background: var(--ink);
	color: var(--paper);
	border: 1px solid var(--ink);
}
.ed-course-feature__copy .ed-course-btn:hover {
	transform: scale(1.03) translateY(-1px);
	box-shadow: 0 12px 32px rgba(0,0,0,0.15);
}
.ed-course-feature__copy .ed-btn--ghost {
	background: transparent;
	color: var(--ink);
	border: 1px solid var(--ink);
}
.ed-course-feature__copy .ed-btn--ghost:hover {
	background: var(--ink);
	color: var(--paper);
}

@media (max-width: 1080px) {
	.ed-course-feature__inner {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	.ed-course-feature__photo { height: clamp(420px, 60vw, 600px); }
}
@media (max-width: 880px) {
	.ed-root .ed-course-feature {
		padding-top: 64px !important;
		padding-bottom: 64px !important;
	}
	.ed-course-feature__facts { grid-template-columns: repeat(3, 1fr); gap: 16px; }
	.ed-course-feature__facts dd { font-size: 18px; }
}

/* ── 5. Courses grid — full-bg image cards ─────────────── */
.ed-root .ed-course-library {
	padding-top: clamp(96px, 12vw, 140px) !important;
	padding-bottom: clamp(96px, 12vw, 140px) !important;
	border-top: 1px solid var(--rule-soft);
}

.ed-course-library__head {
	max-width: 980px;
	margin: 0 0 clamp(56px, 7vw, 96px);
	text-align: left;
}
.ed-course-library__head h2 {
	font-family: var(--display);
	font-size: clamp(40px, 5.4vw, 80px);
	font-weight: 700;
	line-height: 0.96;
	letter-spacing: -0.025em;
	margin: 0 0 24px;
	color: var(--ink);
}
.ed-course-library__lede {
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.6;
	color: var(--ink-mute);
	margin: 0;
	max-width: 60ch;
}

.ed-course-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(20px, 2.2vw, 32px);
	max-width: 1920px !important;
	margin: 0 auto;
}
/* All 9 cards uniform — no featured span. Single 3-col grid. */
.ed-course-grid > .ed-course-card:nth-child(1) {
	grid-column: auto !important;
	aspect-ratio: 4 / 5 !important;
}

.ed-course-card {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	overflow: hidden;
	aspect-ratio: 4 / 5;
	border-radius: 4px;
	text-decoration: none;
	color: var(--paper);
	transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.3, 1),
	            box-shadow 0.6s cubic-bezier(0.2, 0.7, 0.3, 1);
	cursor: pointer;
	min-height: 380px;
}
.ed-course-card__media {
	position: absolute;
	inset: 0;
	background-image: var(--course-img);
	background-size: cover;
	background-position: center 30%;
	background-repeat: no-repeat;
	transition: transform 1.0s cubic-bezier(0.2, 0.7, 0.3, 1);
	will-change: transform;
}
.ed-course-card__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg,
			rgba(0,0,0,0.10) 0%,
			rgba(0,0,0,0.20) 50%,
			rgba(0,0,0,0.78) 100%);
	transition: background 0.6s ease;
	pointer-events: none;
}

.ed-course-card:hover {
	box-shadow: 0 24px 60px rgba(0,0,0,0.18);
}
.ed-course-card:hover .ed-course-card__media {
	transform: scale(1.05);
}
.ed-course-card:hover .ed-course-card__overlay {
	background:
		linear-gradient(180deg,
			rgba(0,0,0,0.15) 0%,
			rgba(0,0,0,0.30) 50%,
			rgba(0,0,0,0.85) 100%);
}
.ed-course-card:hover .ed-course-card__content {
	transform: translateY(-6px);
}

.ed-course-card__badge {
	position: absolute;
	top: 18px;
	right: 18px;
	z-index: 3;
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	padding: 6px 12px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	line-height: 1;
}
.ed-course-card__badge--free {
	background: var(--paper);
	color: var(--ink);
}
.ed-course-card__badge--soon {
	background: rgba(255,255,255,0.18);
	backdrop-filter: blur(8px);
	color: var(--paper);
	border: 1px solid rgba(255,255,255,0.30);
}
.ed-course-card__badge--unlocked {
	background: var(--ink);
	color: var(--paper);
}
.ed-course-card__badge--locked {
	background: rgba(255,255,255,0.18);
	backdrop-filter: blur(8px);
	color: var(--paper);
	border: 1px solid rgba(255,255,255,0.25);
	padding: 8px 10px;
}

.ed-course-card__content {
	position: relative;
	z-index: 2;
	padding: 28px;
	transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1);
	will-change: transform;
}
.ed-course-card__meta {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.20em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.72);
	margin: 0 0 12px;
	display: inline-flex;
	gap: 8px;
	align-items: center;
}
.ed-course-card__meta span[aria-hidden="true"] { opacity: 0.4; }
.ed-course-card__title {
	font-family: var(--display);
	font-size: clamp(22px, 2.2vw, 32px);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.02em;
	margin: 0 0 12px;
	color: var(--paper);
	text-wrap: balance;
}
.ed-course-card__cta {
	font-family: var(--display);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--paper);
	margin: 0;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	transition: gap 0.4s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-course-card:hover .ed-course-card__cta {
	gap: 14px;
}
.ed-course-card__cta span {
	display: inline-block;
	transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-course-card:hover .ed-course-card__cta span {
	transform: translateX(4px);
}

.ed-course-card.is-soon { opacity: 0.85; }
.ed-course-card.is-soon:hover { opacity: 1; }
.ed-course-card.is-soon .ed-course-card__title { color: rgba(255,255,255,0.92); }

@media (max-width: 1080px) {
	.ed-course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ed-course-grid > .ed-course-card:nth-child(1) {
		grid-column: auto !important;
		aspect-ratio: 4 / 5 !important;
	}
}
@media (max-width: 660px) {
	.ed-course-grid { grid-template-columns: 1fr; }
	.ed-course-grid > .ed-course-card:nth-child(1) {
		grid-column: auto !important;
		aspect-ratio: 4 / 5 !important;
	}
	.ed-course-card { min-height: 460px; }
	.ed-course-card__content { padding: 22px; }
}

/* ── 6. Final CTA — dark emotional close ─────────────── */
.ed-root .ed-course-final {
	padding-top: clamp(120px, 14vw, 200px) !important;
	padding-bottom: clamp(120px, 14vw, 200px) !important;
	color: var(--paper);
	text-align: center;
	background: transparent;
}
.ed-course-final__inner {
	max-width: 900px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
}
.ed-course-final h2 {
	font-family: var(--display);
	font-size: clamp(56px, 8vw, 144px);
	font-weight: 700;
	line-height: 0.96;
	letter-spacing: -0.035em;
	margin: 0;
	color: var(--paper);
	max-width: 14ch;
	text-wrap: balance;
}
.ed-course-final h2 em {
	font-style: normal;
	font-weight: 700;
}
.ed-course-final__lede {
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.55;
	color: rgba(255,255,255,0.65);
	margin: 12px 0 0;
	max-width: 48ch;
}
.ed-course-final .ed-course-actions { margin-top: 32px; }

@media (max-width: 880px) {
	.ed-root .ed-course-final {
		padding-top: 80px !important;
		padding-bottom: 80px !important;
	}
	.ed-course-final h2 { font-size: clamp(40px, 11vw, 72px); }
	.ed-course-final .ed-course-actions { flex-direction: column; width: 100%; max-width: 360px; }
	.ed-course-final .ed-btn { width: 100%; }
}

/* ═══════════════════════════════════════════════════════════
   PREMIUM POLISH — final pass
   Stronger gradients, refined hovers, breathing block,
   bigger Final CTA, typography refinements, thin dividers,
   subtle grain overlay for film-stock depth.
   ═══════════════════════════════════════════════════════════ */

/* ── 1. Course card — stronger gradient, refined hover ──── */
.ed-root .ed-course-card__overlay {
	background:
		linear-gradient(180deg,
			rgba(0,0,0,0.05) 0%,
			rgba(0,0,0,0.18) 35%,
			rgba(0,0,0,0.62) 72%,
			rgba(0,0,0,0.92) 100%) !important;
	transition: background 0.6s cubic-bezier(0.2, 0.7, 0.3, 1) !important;
}

.ed-root .ed-course-card {
	transition: transform 0.55s cubic-bezier(0.2, 0.7, 0.3, 1),
	            box-shadow 0.65s cubic-bezier(0.2, 0.7, 0.3, 1) !important;
}

.ed-root .ed-course-card:hover {
	transform: translateY(-4px);
	box-shadow:
		0 28px 64px rgba(0, 0, 0, 0.22),
		0 8px 16px rgba(0, 0, 0, 0.10) !important;
}

.ed-root .ed-course-card:hover .ed-course-card__media {
	transform: scale(1.06) !important;
}

.ed-root .ed-course-card:hover .ed-course-card__overlay {
	background:
		linear-gradient(180deg,
			rgba(0,0,0,0.12) 0%,
			rgba(0,0,0,0.30) 40%,
			rgba(0,0,0,0.75) 75%,
			rgba(0,0,0,0.96) 100%) !important;
}

.ed-root .ed-course-card:hover .ed-course-card__content {
	transform: translateY(-10px) !important;
}

.ed-root .ed-course-card:hover .ed-course-card__title {
	letter-spacing: -0.022em;
}

/* Stronger contrast on card text */
.ed-root .ed-course-card__title {
	color: #ffffff !important;
	text-shadow: 0 1px 2px rgba(0,0,0,0.18);
}
.ed-root .ed-course-card__meta {
	color: rgba(255,255,255,0.85) !important;
	font-weight: 500;
}
.ed-root .ed-course-card__cta {
	color: #ffffff !important;
}

/* Refined badges */
.ed-root .ed-course-card__badge {
	font-weight: 700 !important;
	letter-spacing: 0.20em !important;
	box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
.ed-root .ed-course-card__badge--free {
	background: var(--paper) !important;
	color: var(--ink) !important;
}

/* ── 2. Breathing block — minimal centered interlude ───── */
.ed-root .ed-course-breath {
	padding-top: clamp(120px, 14vw, 200px) !important;
	padding-bottom: clamp(120px, 14vw, 200px) !important;
	border-top: 1px solid var(--rule-soft);
}
.ed-course-breath__inner {
	max-width: 920px;
	margin: 0 auto;
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.ed-course-breath__line {
	font-family: var(--display);
	font-size: clamp(40px, 5.4vw, 88px);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.025em;
	color: var(--ink);
	margin: 0;
	text-wrap: balance;
}
.ed-course-breath__line em {
	font-style: normal;
	font-weight: 700;
}
@media (max-width: 880px) {
	.ed-root .ed-course-breath {
		padding-top: 80px !important;
		padding-bottom: 80px !important;
	}
	.ed-course-breath__line {
		font-size: clamp(28px, 9vw, 48px);
	}
	.ed-course-breath__inner { gap: 8px; }
}

/* ── 3. Final CTA — bigger, more tactile ──────────────── */
.ed-root .ed-course-final {
	padding-top: clamp(140px, 18vw, 240px) !important;
	padding-bottom: clamp(140px, 18vw, 240px) !important;
	position: relative;
}

.ed-course-final__inner {
	gap: 32px !important;
}

.ed-course-final h2 {
	font-size: clamp(64px, 10vw, 184px) !important;
	line-height: 0.92 !important;
	letter-spacing: -0.04em !important;
	max-width: 13ch !important;
}

.ed-course-final__lede {
	font-size: 18px !important;
	line-height: 1.6 !important;
	color: rgba(255,255,255,0.72) !important;
	margin: 16px 0 0 !important;
	max-width: 50ch !important;
}

.ed-course-final .ed-course-actions {
	margin-top: 48px !important;
	gap: 16px !important;
	flex-wrap: wrap;
	justify-content: center;
}

/* Larger, more tactile pill buttons */
.ed-course-final .ed-btn--light,
.ed-course-final .ed-btn--ghost-light {
	min-height: 64px !important;
	padding: 22px 44px !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	letter-spacing: 0.03em !important;
	border-radius: 999px !important;
	min-width: 240px !important;
	transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1),
	            box-shadow 0.6s cubic-bezier(0.2, 0.7, 0.3, 1),
	            background 0.45s ease,
	            color 0.45s ease,
	            border-color 0.45s ease !important;
}
.ed-course-final .ed-btn--light:hover {
	transform: scale(1.04) translateY(-2px) !important;
	box-shadow: 0 18px 44px rgba(255,255,255,0.18) !important;
}
.ed-course-final .ed-btn--ghost-light:hover {
	transform: scale(1.04) translateY(-2px) !important;
	background: rgba(255,255,255,0.12) !important;
	border-color: rgba(255,255,255,0.95) !important;
}

/* Final CTA entrance — subtle fade + scale on scroll into view */
.js-anim .ed-course-final h2,
.js-anim .ed-course-final .ed-course-final__lede,
.js-anim .ed-course-final .ed-course-actions {
	opacity: 0;
	transform: translateY(28px) scale(0.985);
	will-change: opacity, transform;
}
.js-anim .ed-course-final.is-revealed h2,
.js-anim .ed-course-final.is-revealed .ed-course-final__lede,
.js-anim .ed-course-final.is-revealed .ed-course-actions {
	opacity: 1;
	transform: translateY(0) scale(1);
	transition: opacity 1.2s cubic-bezier(0.16, 1, 0.3, 1),
	            transform 1.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.js-anim .ed-course-final.is-revealed .ed-course-final__lede {
	transition-delay: 0.18s;
}
.js-anim .ed-course-final.is-revealed .ed-course-actions {
	transition-delay: 0.36s;
}

/* ── 4. Typography refinement (global) ────────────────── */
.ed-root {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

/* Body text — calmer line-height, better contrast */
.ed-root p,
.ed-root .ed-course-method__intro,
.ed-root .ed-course-feature__lede,
.ed-root .ed-course-library__lede,
.ed-root .ed-course-level__desc {
	line-height: 1.65 !important;
}

/* Lede sizes — clearer hierarchy contrast vs body */
.ed-root .ed-course-method__intro,
.ed-root .ed-course-feature__lede,
.ed-root .ed-course-library__lede,
.ed-root .ed-course-hero__lede {
	font-size: clamp(16px, 1.25vw, 18px) !important;
	color: var(--ink-soft);
}

/* Small labels — refined uppercase + tracking */
.ed-root .ed-course-eyebrow,
.ed-root .ed-course-card__meta,
.ed-root .ed-course-stats dt,
.ed-root .ed-course-feature__facts dt,
.ed-root .ed-course-level__num,
.ed-root .ed-course-level__tag {
	font-feature-settings: "ss01", "tnum";
	font-weight: 600 !important;
}

.ed-root .ed-course-eyebrow {
	font-size: 11px !important;
	letter-spacing: 0.24em !important;
}

.ed-root .ed-course-stats dt,
.ed-root .ed-course-feature__facts dt {
	font-size: 10px !important;
	letter-spacing: 0.22em !important;
}

/* Section headlines — tighter optical kerning */
.ed-root .ed-course-method__copy h2,
.ed-root .ed-course-feature__copy h2,
.ed-root .ed-course-library__head h2 {
	font-feature-settings: "ss01", "kern";
}

/* ── 5. Premium details — dividers + film grain ──────── */

/* Thin dividers between consecutive paper sections */
.ed-root .ed-course-why + .ed-course-method,
.ed-root .ed-course-method + .ed-course-feature,
.ed-root .ed-course-feature + .ed-course-library,
.ed-root .ed-course-library + .ed-course-breath {
	border-top: 1px solid var(--rule-soft);
}

/* Subtle film-grain overlay — adds tactile depth.
   SVG fractalNoise pattern; pointer-events disabled. */
.ed-root .ed-course-hero::after,
.ed-root .ed-course-final::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 4;
	pointer-events: none;
	opacity: 0.08;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	background-size: 200px 200px;
}

/* Smoother general transitions */
.ed-root .ed-course-hero,
.ed-root .ed-course-why,
.ed-root .ed-course-method,
.ed-root .ed-course-feature,
.ed-root .ed-course-library,
.ed-root .ed-course-breath,
.ed-root .ed-course-final {
	transition: background-color 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Refined button hover states — every CTA on the page */
.ed-root .ed-course-actions .ed-btn,
.ed-root .ed-course-feature__copy .ed-btn {
	transition:
		transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1),
		box-shadow 0.6s cubic-bezier(0.2, 0.7, 0.3, 1),
		background 0.45s ease,
		color 0.45s ease,
		border-color 0.45s ease,
		letter-spacing 0.5s cubic-bezier(0.2, 0.7, 0.3, 1) !important;
}
.ed-root .ed-course-actions .ed-btn:hover,
.ed-root .ed-course-feature__copy .ed-btn:hover {
	letter-spacing: 0.04em;
}

/* Reduced motion — no entrance animation, no grain animation */
@media (prefers-reduced-motion: reduce) {
	.js-anim .ed-course-final h2,
	.js-anim .ed-course-final .ed-course-final__lede,
	.js-anim .ed-course-final .ed-course-actions {
		opacity: 1 !important;
		transform: none !important;
	}
	.ed-root .ed-course-hero::after,
	.ed-root .ed-course-final::after {
		display: none;
	}
}

/* ═══════════════════════════════════════════════════════════
   ABOUT PAGE — premium editorial brand experience
   Real B&W portrait, calm prose with key-phrase weight,
   animated method list, quiet numbers band, dark final CTA.
   ═══════════════════════════════════════════════════════════ */

/* Outer container — ensure About sections obey the global grid */
.ed-root .ed-about-hero,
.ed-root .ed-about-band,
.ed-root .ed-about-story,
.ed-root .ed-about-method,
.ed-root .ed-about-numbers,
.ed-root .ed-about-final {
	padding-left:  var(--bm-pad) !important;
	padding-right: var(--bm-pad) !important;
	box-sizing: border-box;
	width: 100%;
}
@media (max-width: 880px) {
	.ed-root .ed-about-hero,
	.ed-root .ed-about-band,
	.ed-root .ed-about-story,
	.ed-root .ed-about-method,
	.ed-root .ed-about-numbers,
	.ed-root .ed-about-final {
		padding-left:  var(--bm-pad-mob) !important;
		padding-right: var(--bm-pad-mob) !important;
	}
}

/* About-page eyebrow — same family as courses */
.ed-root .ed-about-eyebrow {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin: 0 0 24px;
}
.ed-root [data-bg="ink"] .ed-about-eyebrow {
	color: rgba(255,255,255,0.55);
}

/* ── 1. Hero — full-bleed B&W portrait ────────────────── */
.ed-root .ed-about-hero {
	position: relative;
	min-height: 92vh;
	height: 92vh;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	overflow: hidden;
	padding: 0 !important;
	color: var(--paper);
	background: var(--ink);
	display: flex;
	align-items: flex-end;
	max-width: none !important;
}
.ed-about-hero__media {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center 22%;
	background-repeat: no-repeat;
	filter: grayscale(0.35) contrast(1.05) brightness(0.92);
	animation: ed-hero-zoom 14s cubic-bezier(0.2, 0.7, 0.3, 1) forwards;
	z-index: 0;
}
.ed-about-hero__shade {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(180deg,
			rgba(10,10,10,0.20) 0%,
			rgba(10,10,10,0.04) 28%,
			rgba(10,10,10,0.55) 75%,
			rgba(10,10,10,0.92) 100%);
	pointer-events: none;
}
.ed-about-hero__content {
	position: relative;
	z-index: 2;
	max-width: 1920px !important;
	margin: 0 auto;
	width: 100%;
	padding: 0 var(--bm-pad) clamp(72px, 10vh, 120px) !important;
	display: flex;
	flex-direction: column;
	gap: clamp(20px, 2.4vw, 32px);
}
.ed-about-hero__content .ed-about-eyebrow {
	color: rgba(255,255,255,0.78);
	margin: 0;
}
.ed-about-hero__title {
	font-family: var(--display);
	font-size: clamp(64px, 10vw, 200px);
	font-weight: 700;
	line-height: 0.92;
	letter-spacing: -0.04em;
	color: var(--paper);
	margin: 0;
	max-width: 14ch;
}
.ed-about-hero__title em {
	font-style: normal;
	font-weight: 700;
}
.ed-about-hero__lede {
	font-family: var(--sans);
	font-size: clamp(16px, 1.3vw, 19px);
	line-height: 1.6;
	color: rgba(255,255,255,0.78);
	max-width: 56ch;
	margin: 0;
}

/* Subtle film grain on hero */
.ed-root .ed-about-hero::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 4;
	pointer-events: none;
	opacity: 0.07;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	background-size: 200px 200px;
}

@media (max-width: 880px) {
	.ed-root .ed-about-hero { min-height: 85vh; height: 85vh; }
	.ed-about-hero__title { font-size: clamp(56px, 14vw, 96px); }
}

/* ── 2. Emotional band — typographic statement ──────── */
.ed-root .ed-about-band {
	padding-top: clamp(120px, 14vw, 200px) !important;
	padding-bottom: clamp(120px, 14vw, 200px) !important;
	border-top: 1px solid var(--rule-soft);
}
.ed-about-band__inner {
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 16px;
	text-align: center;
}
.ed-about-band__line {
	font-family: var(--display);
	font-size: clamp(40px, 6vw, 96px);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.025em;
	color: var(--ink);
	margin: 0;
	text-wrap: balance;
}
.ed-about-band__line em {
	font-style: normal;
	font-weight: 700;
}

@media (max-width: 880px) {
	.ed-root .ed-about-band {
		padding-top: 80px !important;
		padding-bottom: 80px !important;
	}
	.ed-about-band__line { font-size: clamp(28px, 9vw, 48px); }
}

/* ── 3. Founder story — editorial prose ──────────────── */
.ed-root .ed-about-story {
	padding-top: clamp(120px, 14vw, 180px) !important;
	padding-bottom: clamp(120px, 14vw, 180px) !important;
	border-top: 1px solid var(--rule-soft);
}
.ed-about-story__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
	gap: clamp(56px, 8vw, 120px);
	max-width: 1640px !important;
	margin: 0 auto;
	align-items: start;
}

.ed-about-story__media {
	position: sticky;
	top: 120px;
	margin: 0;
}
.ed-about-story__photo {
	width: 100%;
	aspect-ratio: 4 / 5;
	background-size: cover;
	background-position: center 28%;
	background-repeat: no-repeat;
	filter: grayscale(0.5) contrast(1.05);
	border-radius: 4px;
}
.ed-about-story__caption {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin: 16px 0 0;
}

.ed-about-story__copy {
	max-width: 580px;
}
.ed-about-story__copy h2 {
	font-family: var(--display);
	font-size: clamp(40px, 5.4vw, 80px);
	font-weight: 700;
	line-height: 0.96;
	letter-spacing: -0.03em;
	margin: 0 0 48px;
	color: var(--ink);
}
.ed-about-story__copy h2 em {
	font-style: normal;
	font-weight: 700;
}

.ed-about-story__prose {
	display: flex;
	flex-direction: column;
	gap: 36px;
	margin: 0 0 56px;
}
.ed-about-story__prose p {
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.75;
	color: var(--ink-soft);
	margin: 0;
}
.ed-about-story__prose p strong {
	font-weight: 600;
	color: var(--ink);
}

.ed-about-story__rule {
	border: 0;
	border-top: 1px solid var(--rule);
	margin: 0;
	width: 80px;
}

.ed-about-story__credentials {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px 32px;
	border-top: 1px solid var(--rule);
	padding-top: 32px;
	margin: 0;
}
.ed-about-story__credentials > div {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.ed-about-story__credentials dt {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin: 0;
	font-weight: 600;
}
.ed-about-story__credentials dd {
	font-family: var(--display);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--ink);
	margin: 0;
}

@media (max-width: 1080px) {
	.ed-about-story__inner {
		grid-template-columns: 1fr;
		gap: 56px;
	}
	.ed-about-story__media { position: static; max-width: 480px; }
}
@media (max-width: 880px) {
	.ed-root .ed-about-story {
		padding-top: 80px !important;
		padding-bottom: 80px !important;
	}
	.ed-about-story__prose { gap: 28px; }
	.ed-about-story__prose p { font-size: 16px; }
	.ed-about-story__credentials { grid-template-columns: 1fr; gap: 20px; }
}

/* ── 4. Method — animated list with hover micro-interaction ── */
.ed-root .ed-about-method {
	padding-top: clamp(96px, 12vw, 160px) !important;
	padding-bottom: clamp(96px, 12vw, 160px) !important;
	border-top: 1px solid var(--rule-soft);
}
.ed-about-method__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
	gap: clamp(56px, 8vw, 120px);
	max-width: 1640px !important;
	margin: 0 auto;
	align-items: start;
}
.ed-about-method__head {
	position: sticky;
	top: 120px;
}
.ed-about-method__head h2 {
	font-family: var(--display);
	font-size: clamp(36px, 4.4vw, 64px);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.025em;
	margin: 0;
	color: var(--ink);
}
.ed-about-method__head h2 em {
	font-style: normal;
	font-weight: 700;
}

.ed-about-method__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
}
.ed-about-method__item {
	display: grid;
	grid-template-columns: 80px minmax(0, 1fr) auto;
	gap: 32px;
	align-items: center;
	padding: 36px 0;
	border-top: 1px solid var(--rule);
	cursor: default;
	transition:
		padding 0.5s cubic-bezier(0.2, 0.7, 0.3, 1),
		background-color 0.4s ease,
		border-top-color 0.4s ease;
}
.ed-about-method__item:last-child {
	border-bottom: 1px solid var(--rule);
}
.ed-about-method__item:hover {
	padding-left: 16px;
	padding-right: 16px;
	background: var(--paper-2);
	border-top-color: var(--ink);
}
.ed-about-method__item:hover .ed-about-method__num {
	color: var(--ink);
	letter-spacing: 0.20em;
}
.ed-about-method__item:hover h3 {
	letter-spacing: -0.018em;
}
.ed-about-method__item:hover .ed-about-method__arrow {
	transform: translateX(8px);
	opacity: 1;
}

.ed-about-method__num {
	font-family: var(--mono);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.18em;
	color: var(--ink-mute);
	transition: color 0.4s ease, letter-spacing 0.5s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-about-method__body { display: flex; flex-direction: column; gap: 8px; }
.ed-about-method__body h3 {
	font-family: var(--display);
	font-size: clamp(22px, 2.2vw, 30px);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.015em;
	margin: 0;
	color: var(--ink);
	transition: letter-spacing 0.5s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-about-method__body p {
	font-family: var(--sans);
	font-size: 15px;
	line-height: 1.65;
	color: var(--ink-mute);
	margin: 0;
	max-width: 60ch;
}
.ed-about-method__arrow {
	font-family: var(--display);
	font-size: 22px;
	color: var(--ink-mute);
	opacity: 0.5;
	transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1), opacity 0.4s ease;
}

@media (max-width: 1080px) {
	.ed-about-method__inner {
		grid-template-columns: 1fr;
		gap: 48px;
	}
	.ed-about-method__head { position: static; }
}
@media (max-width: 880px) {
	.ed-root .ed-about-method {
		padding-top: 80px !important;
		padding-bottom: 80px !important;
	}
	.ed-about-method__item {
		grid-template-columns: 56px minmax(0, 1fr);
		gap: 16px;
		padding: 24px 0;
	}
	.ed-about-method__arrow { display: none; }
	.ed-about-method__item:hover {
		padding-left: 0;
		padding-right: 0;
	}
}

/* ── 5. Numbers band — quiet credibility ────────────── */
.ed-root .ed-about-numbers {
	padding-top: clamp(96px, 12vw, 160px) !important;
	padding-bottom: clamp(96px, 12vw, 160px) !important;
	border-top: 1px solid var(--rule-soft);
}
.ed-about-numbers__inner {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(32px, 4vw, 64px);
	max-width: 1280px !important;
	margin: 0 auto;
}
.ed-about-numbers__inner > div {
	display: flex;
	flex-direction: column;
	gap: 8px;
	border-left: 1px solid var(--rule);
	padding-left: 24px;
}
.ed-about-numbers__inner dt {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin: 0;
	font-weight: 600;
}
.ed-about-numbers__inner dd {
	font-family: var(--display);
	font-size: clamp(56px, 6vw, 88px);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.04em;
	color: var(--ink);
	margin: 0;
}
.ed-about-numbers__inner small {
	font-family: var(--sans);
	font-size: 13px;
	color: var(--ink-mute);
	margin: 0;
	line-height: 1.4;
}

@media (max-width: 880px) {
	.ed-root .ed-about-numbers {
		padding-top: 64px !important;
		padding-bottom: 64px !important;
	}
	.ed-about-numbers__inner {
		grid-template-columns: 1fr 1fr;
		gap: 32px 24px;
	}
}

/* ── 6. Final CTA — dark close ──────────────────────── */
.ed-root .ed-about-final {
	padding-top: clamp(140px, 18vw, 240px) !important;
	padding-bottom: clamp(140px, 18vw, 240px) !important;
	color: var(--paper);
	text-align: center;
	position: relative;
}
.ed-about-final__inner {
	max-width: 920px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
}
.ed-about-final h2 {
	font-family: var(--display);
	font-size: clamp(64px, 10vw, 184px);
	font-weight: 700;
	line-height: 0.92;
	letter-spacing: -0.04em;
	margin: 0;
	color: var(--paper);
	max-width: 13ch;
	text-wrap: balance;
}
.ed-about-final h2 em {
	font-style: normal;
	font-weight: 700;
}
.ed-about-final__lede {
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.6;
	color: rgba(255,255,255,0.7);
	margin: 12px 0 0;
	max-width: 48ch;
}
.ed-about-final__cta {
	display: inline-flex;
	gap: 16px;
	margin-top: 40px;
	flex-wrap: wrap;
	justify-content: center;
}
.ed-about-final__cta .ed-btn--light,
.ed-about-final__cta .ed-btn--ghost-light {
	min-height: 64px;
	padding: 22px 44px;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.03em;
	border-radius: 999px;
	min-width: 220px;
	transition:
		transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1),
		box-shadow 0.6s cubic-bezier(0.2, 0.7, 0.3, 1),
		background 0.45s ease,
		border-color 0.45s ease,
		letter-spacing 0.5s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-about-final__cta .ed-btn--light:hover {
	transform: scale(1.04) translateY(-2px);
	box-shadow: 0 18px 44px rgba(255,255,255,0.18);
	letter-spacing: 0.04em;
}
.ed-about-final__cta .ed-btn--ghost-light:hover {
	transform: scale(1.04) translateY(-2px);
	background: rgba(255,255,255,0.12);
	border-color: rgba(255,255,255,0.95);
	letter-spacing: 0.04em;
}

/* Subtle film grain on final */
.ed-root .ed-about-final::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 4;
	pointer-events: none;
	opacity: 0.07;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	background-size: 200px 200px;
}

@media (max-width: 880px) {
	.ed-root .ed-about-final {
		padding-top: 80px !important;
		padding-bottom: 80px !important;
	}
	.ed-about-final h2 { font-size: clamp(40px, 11vw, 72px); }
	.ed-about-final__cta { flex-direction: column; width: 100%; max-width: 360px; }
	.ed-about-final__cta .ed-btn { width: 100%; }
}

/* Reduced motion — disable hover transforms + grain */
@media (prefers-reduced-motion: reduce) {
	.ed-about-method__item:hover {
		padding-left: 0;
		padding-right: 0;
		background: transparent;
	}
	.ed-about-method__item:hover .ed-about-method__arrow { transform: none; }
	.ed-root .ed-about-hero::after,
	.ed-root .ed-about-final::after { display: none; }
}

/* ═══════════════════════════════════════════════════════════
   COURSES PAGE — STUDIO-LEVEL FINAL POLISH
   - Deeper card gradients + sharper hover physics
   - Cleaner featured composition (no top overlay clutter)
   - Increased section rhythm + breath before final CTA
   - Refined body typography for readability
   - Dramatic final CTA with reveal cascade
   ═══════════════════════════════════════════════════════════ */

/* ── 1. Course cards — deeper gradient, tactile hover ─── */
.ed-root .ed-course-card__overlay {
	background:
		linear-gradient(180deg,
			rgba(0,0,0,0.04) 0%,
			rgba(0,0,0,0.20) 30%,
			rgba(0,0,0,0.55) 65%,
			rgba(0,0,0,0.86) 88%,
			rgba(0,0,0,0.96) 100%) !important;
}

.ed-root .ed-course-card {
	transition:
		transform 0.55s cubic-bezier(0.2, 0.7, 0.3, 1),
		box-shadow 0.7s cubic-bezier(0.2, 0.7, 0.3, 1) !important;
}

.ed-root .ed-course-card:hover {
	transform: translateY(-6px) !important;
	box-shadow:
		0 36px 72px rgba(0,0,0,0.26),
		0 12px 24px rgba(0,0,0,0.12) !important;
}

.ed-root .ed-course-card:hover .ed-course-card__media {
	transform: scale(1.05) !important;
}

.ed-root .ed-course-card:hover .ed-course-card__overlay {
	background:
		linear-gradient(180deg,
			rgba(0,0,0,0.10) 0%,
			rgba(0,0,0,0.32) 35%,
			rgba(0,0,0,0.72) 70%,
			rgba(0,0,0,0.94) 90%,
			rgba(0,0,0,0.99) 100%) !important;
}

.ed-root .ed-course-card:hover .ed-course-card__content {
	transform: translateY(-8px) !important;
}

.ed-root .ed-course-card:hover .ed-course-card__title {
	letter-spacing: -0.024em;
}

/* Card text — sharper white, readable on rich gradient */
.ed-root .ed-course-card__title {
	color: #ffffff !important;
	text-shadow: 0 2px 6px rgba(0,0,0,0.25);
}
.ed-root .ed-course-card__meta {
	color: rgba(255,255,255,0.92) !important;
	font-weight: 600 !important;
	letter-spacing: 0.22em !important;
}
.ed-root .ed-course-card__cta {
	color: #ffffff !important;
	font-weight: 700 !important;
	letter-spacing: 0.04em;
}

/* ── 2. Featured photo — clean, intentional composition ─ */
.ed-root .ed-course-feature__photo {
	position: relative;
	height: clamp(560px, 70vh, 860px);
	background-size: cover;
	background-position: center 28%;
	border-radius: 4px;
	overflow: hidden;
	transition: transform 0.65s cubic-bezier(0.2, 0.7, 0.3, 1);
	display: block;
}
.ed-root .ed-course-feature__photo::before,
.ed-root .ed-course-feature__photo::after {
	display: none !important;     /* kill any leftover overlay/badge artifacts */
}
.ed-root .ed-course-feature__photo:hover {
	transform: scale(1.005);
}
/* Hide any old badge node that was rendered into this anchor */
.ed-root .ed-course-feature__badge,
.ed-root .ed-course-feature__photo-shade {
	display: none !important;
}

/* Featured eyebrow uses the section to telegraph importance,
   no on-photo pill needed. */
.ed-root .ed-course-feature__copy .ed-course-eyebrow {
	color: var(--ink) !important;
	letter-spacing: 0.24em !important;
	font-weight: 700 !important;
}

/* ── 3. Section rhythm — more breath ────────────────── */
.ed-root .ed-course-hero {
	margin-bottom: 0;
}
.ed-root .ed-course-why {
	padding-top: clamp(140px, 16vw, 220px) !important;
	padding-bottom: clamp(140px, 16vw, 220px) !important;
}
.ed-root .ed-course-method {
	padding-top: clamp(140px, 16vw, 200px) !important;
	padding-bottom: clamp(140px, 16vw, 200px) !important;
}
.ed-root .ed-course-feature {
	padding-top: clamp(120px, 14vw, 180px) !important;
	padding-bottom: clamp(120px, 14vw, 180px) !important;
}
.ed-root .ed-course-library {
	padding-top: clamp(120px, 14vw, 180px) !important;
	padding-bottom: clamp(140px, 16vw, 200px) !important;
}
.ed-root .ed-course-breath {
	padding-top: clamp(160px, 18vw, 240px) !important;
	padding-bottom: clamp(160px, 18vw, 240px) !important;
}
.ed-root .ed-course-final {
	padding-top: clamp(160px, 20vw, 280px) !important;
	padding-bottom: clamp(160px, 20vw, 280px) !important;
}

/* Section header to grid breathing */
.ed-root .ed-course-library__head {
	margin-bottom: clamp(72px, 9vw, 120px) !important;
	max-width: 1080px;
}

/* ── 4. Typography refinement — readable, premium ──── */
.ed-root .ed-course-hero__lede {
	font-size: clamp(17px, 1.35vw, 20px) !important;
	line-height: 1.65 !important;
	color: rgba(255,255,255,0.82) !important;
	max-width: 56ch !important;
}

.ed-root .ed-course-method__intro,
.ed-root .ed-course-feature__lede,
.ed-root .ed-course-library__lede {
	font-size: clamp(17px, 1.3vw, 19px) !important;
	line-height: 1.7 !important;
	color: var(--ink-soft) !important;
}

/* Secondary text contrast (descriptions, captions) */
.ed-root .ed-course-level__desc {
	font-size: 16px !important;
	line-height: 1.7 !important;
	color: var(--ink-mute);
}

/* Section h2 typographic harmony — balanced, kerned */
.ed-root .ed-course-method__copy h2,
.ed-root .ed-course-feature__copy h2,
.ed-root .ed-course-library__head h2 {
	font-size: clamp(44px, 5.6vw, 88px) !important;
	line-height: 0.96 !important;
	letter-spacing: -0.028em !important;
	margin-bottom: clamp(28px, 3vw, 40px) !important;
	text-wrap: balance;
}

/* Library lede gets a dedicated max width for editorial breathing */
.ed-root .ed-course-library__head h2 {
	max-width: 18ch;
}
.ed-root .ed-course-library__head h2 em {
	font-style: normal;
	font-weight: 700;
}

/* ── 5. Final CTA — dramatic, tactile, animated ─────── */
.ed-root .ed-course-final {
	position: relative;
}

.ed-course-final__inner {
	gap: 36px !important;
}

.ed-course-final h2 {
	font-size: clamp(72px, 11vw, 220px) !important;
	line-height: 0.90 !important;
	letter-spacing: -0.045em !important;
	max-width: 13ch !important;
}

.ed-course-final__lede {
	font-size: 19px !important;
	line-height: 1.7 !important;
	color: rgba(255,255,255,0.78) !important;
	margin: 20px 0 0 !important;
	max-width: 50ch !important;
}

.ed-course-final .ed-course-actions {
	margin-top: 56px !important;
	gap: 18px !important;
}

/* Larger pill buttons — tactile, weighty */
.ed-course-final .ed-btn--light,
.ed-course-final .ed-btn--ghost-light {
	min-height: 70px !important;
	padding: 24px 52px !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	letter-spacing: 0.04em !important;
	border-radius: 999px !important;
	min-width: 260px !important;
}

.ed-course-final .ed-btn--light {
	background: var(--paper) !important;
	color: var(--ink) !important;
	border: 1.5px solid var(--paper) !important;
}
.ed-course-final .ed-btn--light:hover {
	transform: scale(1.05) translateY(-3px) !important;
	box-shadow:
		0 24px 56px rgba(255,255,255,0.22),
		0 8px 16px rgba(255,255,255,0.10) !important;
	letter-spacing: 0.06em !important;
}

.ed-course-final .ed-btn--ghost-light {
	background: transparent !important;
	color: var(--paper) !important;
	border: 1.5px solid rgba(255,255,255,0.40) !important;
}
.ed-course-final .ed-btn--ghost-light:hover {
	transform: scale(1.05) translateY(-3px) !important;
	background: rgba(255,255,255,0.14) !important;
	border-color: rgba(255,255,255,1) !important;
	letter-spacing: 0.06em !important;
}

/* Reveal cascade on scroll into view */
.js-anim .ed-course-final h2,
.js-anim .ed-course-final .ed-course-final__lede,
.js-anim .ed-course-final .ed-course-actions,
.js-anim .ed-course-final .ed-course-eyebrow {
	opacity: 0;
	transform: translateY(36px) scale(0.97);
	will-change: opacity, transform;
}
.js-anim .ed-course-final.is-revealed .ed-course-eyebrow {
	opacity: 1;
	transform: translateY(0) scale(1);
	transition:
		opacity 1.0s cubic-bezier(0.16, 1, 0.3, 1),
		transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.js-anim .ed-course-final.is-revealed h2 {
	opacity: 1;
	transform: translateY(0) scale(1);
	transition:
		opacity 1.4s cubic-bezier(0.16, 1, 0.3, 1) 0.15s,
		transform 1.6s cubic-bezier(0.16, 1, 0.3, 1) 0.15s;
}
.js-anim .ed-course-final.is-revealed .ed-course-final__lede {
	opacity: 1;
	transform: translateY(0) scale(1);
	transition:
		opacity 1.0s cubic-bezier(0.16, 1, 0.3, 1) 0.45s,
		transform 1.2s cubic-bezier(0.16, 1, 0.3, 1) 0.45s;
}
.js-anim .ed-course-final.is-revealed .ed-course-actions {
	opacity: 1;
	transform: translateY(0) scale(1);
	transition:
		opacity 1.0s cubic-bezier(0.16, 1, 0.3, 1) 0.65s,
		transform 1.2s cubic-bezier(0.16, 1, 0.3, 1) 0.65s;
}

/* Slightly stronger film grain on final CTA — tactile depth */
.ed-root .ed-course-final::after {
	opacity: 0.10 !important;
}

/* Mobile recalibration */
@media (max-width: 880px) {
	.ed-root .ed-course-why,
	.ed-root .ed-course-method,
	.ed-root .ed-course-feature,
	.ed-root .ed-course-library,
	.ed-root .ed-course-breath {
		padding-top: 96px !important;
		padding-bottom: 96px !important;
	}
	.ed-root .ed-course-final {
		padding-top: 120px !important;
		padding-bottom: 120px !important;
	}
	.ed-course-final h2 {
		font-size: clamp(48px, 13vw, 80px) !important;
	}
	.ed-course-final__lede { font-size: 16px !important; }
	.ed-course-final .ed-btn--light,
	.ed-course-final .ed-btn--ghost-light {
		width: 100% !important;
		min-width: 0 !important;
		min-height: 60px !important;
		padding: 20px 36px !important;
	}
	.ed-course-final .ed-course-actions {
		flex-direction: column;
		width: 100%;
		max-width: 360px;
		margin-top: 36px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.js-anim .ed-course-final h2,
	.js-anim .ed-course-final .ed-course-final__lede,
	.js-anim .ed-course-final .ed-course-actions,
	.js-anim .ed-course-final .ed-course-eyebrow {
		opacity: 1 !important;
		transform: none !important;
	}
}

/* ═══════════════════════════════════════════════════════════
   FOOTER — always dark, regardless of bg-canvas state
   Sits above the bg-canvas with its own solid ink background.
   All text colors forced to paper variants — never inherits
   the body color tween that nav uses on light pages.
   ═══════════════════════════════════════════════════════════ */

.ed-root .ed-footer {
	background: var(--ink) !important;
	color: var(--paper) !important;
	position: relative;
	z-index: 5;                       /* above bg-canvas (-1) */
	border-top: 1px solid rgba(255,255,255,0.08);
}

/* Brand wordmark */
.ed-root .ed-footer__brand .ed-nav__brand,
.ed-root .ed-footer__brand a {
	color: var(--paper) !important;
	text-decoration: none;
}

/* Tag line beneath brand */
.ed-root .ed-footer__tag {
	color: rgba(255,255,255,0.55) !important;
	line-height: 1.65;
	font-weight: 400;
}

/* Column headings (PRACTICE / STUDIO / SUPPORT) — visible mono labels */
.ed-root .ed-footer__col h4 {
	color: rgba(255,255,255,0.85) !important;
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	margin: 0 0 20px;
}

/* Link list — was disappearing as black-on-black */
.ed-root .ed-footer__col ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.ed-root .ed-footer__col li a,
.ed-root .ed-footer__col a {
	color: rgba(255,255,255,0.78) !important;
	font-family: var(--sans);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;
	text-decoration: none;
	transition: color 0.3s ease, opacity 0.3s ease;
}
.ed-root .ed-footer__col a:hover {
	color: var(--paper) !important;
	opacity: 1;
}

/* Bottom strip — © Barre Muse · 2026 etc. */
.ed-root .ed-footer__base {
	border-top: 1px solid rgba(255,255,255,0.10) !important;
}
.ed-root .ed-footer__base,
.ed-root .ed-footer__base span,
.ed-root .ed-footer__base a {
	color: rgba(255,255,255,0.45) !important;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 500;
}
.ed-root .ed-footer__base a:hover {
	color: rgba(255,255,255,0.85) !important;
}

/* Override any earlier rules that set ink colors on these elements */
.ed-root .ed-footer *,
.ed-root .ed-footer__brand .ed-nav__brand {
	border-color: rgba(255,255,255,0.10);
}

/* Sticky mobile CTA — sits below footer-context, keep visible */
.ed-root .ed-sticky-cta {
	background: var(--paper);
	color: var(--ink);
}

/* ═══════════════════════════════════════════════════════════
   HOMEPAGE METHOD BAND — premium dark section
   Split layout: left label+headline, right paragraph + 4 pillars.
   Subtle radial gradient + film grain. Clean separation from
   following cards — no accidental overlap.
   ═══════════════════════════════════════════════════════════ */

.ed-root .ed-method-band {
	padding: 140px var(--bm-pad) !important;
	color: var(--paper);
	position: relative;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	max-width: none !important;
	overflow: hidden;
	background:
		radial-gradient(ellipse at 30% 20%, rgba(255,255,255,0.04) 0%, transparent 55%),
		radial-gradient(ellipse at 80% 90%, rgba(255,255,255,0.03) 0%, transparent 50%),
		linear-gradient(180deg, #0a0a0a 0%, #111111 100%);
	box-sizing: border-box;
	z-index: 1;
}

/* Subtle film grain — tactile depth */
.ed-root .ed-method-band::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	opacity: 0.06;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	background-size: 200px 200px;
}

.ed-method-band__inner {
	position: relative;
	z-index: 2;
	max-width: 1640px !important;
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
	gap: clamp(48px, 7vw, 120px);
	align-items: start;
}

/* ── Left: label + headline ────────────────────────── */
.ed-method-band__head {
	display: flex;
	flex-direction: column;
	gap: 28px;
	max-width: 560px;
}

.ed-method-band__eyebrow {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.55);
	margin: 0;
}

.ed-method-band__title {
	font-family: var(--display);
	font-size: clamp(36px, 4vw, 56px);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -0.025em;
	color: var(--paper);
	margin: 0;
	text-wrap: balance;
}
.ed-method-band__title em {
	font-style: normal;
	font-weight: 700;
	color: rgba(255,255,255,0.62);     /* second line softens for layered feel */
}

/* ── Right: paragraph + pillars ────────────────────── */
.ed-method-band__body {
	display: flex;
	flex-direction: column;
	gap: clamp(48px, 6vw, 88px);
	max-width: 720px;
}

.ed-method-band__lede {
	font-family: var(--sans);
	font-size: clamp(17px, 1.3vw, 19px);
	line-height: 1.6;
	color: rgba(255,255,255,0.78);
	margin: 0;
	max-width: 56ch;
}

/* 4 pillars — refined grid */
.ed-method-band__pillars {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
}
.ed-method-band__pillars li {
	border-top: 1px solid rgba(255,255,255,0.10);
	padding: 24px 0 24px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	transition: padding 0.5s cubic-bezier(0.2, 0.7, 0.3, 1),
	            border-top-color 0.4s ease;
}
.ed-method-band__pillars li:nth-child(odd) {
	padding-right: 24px;
}
.ed-method-band__pillars li:nth-child(even) {
	padding-left: 24px;
	border-left: 1px solid rgba(255,255,255,0.08);
}
.ed-method-band__pillars li:nth-child(3),
.ed-method-band__pillars li:nth-child(4) {
	border-bottom: 1px solid rgba(255,255,255,0.10);
}

.ed-method-band__num {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.20em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.50);
	font-weight: 600;
	margin-bottom: 6px;
}
.ed-method-band__pillars h3 {
	font-family: var(--display);
	font-size: clamp(20px, 1.7vw, 24px);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.015em;
	color: var(--paper);
	margin: 0;
}
.ed-method-band__pillars p {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.55);
	font-weight: 500;
	margin: 0;
}

/* ── Clean separation from following section — no overlap ─ */
.ed-root .ed-method-band + .ed-section {
	margin-top: 0;
	padding-top: clamp(96px, 11vw, 140px) !important;
	position: relative;
	z-index: 1;
	background: var(--paper);          /* solid paper, prevents bleed-through */
}

/* Mobile recalibration */
@media (max-width: 1080px) {
	.ed-method-band__inner {
		grid-template-columns: 1fr;
		gap: 48px;
	}
}

@media (max-width: 880px) {
	.ed-root .ed-method-band {
		padding: 80px var(--bm-pad-mob) !important;
	}
	.ed-method-band__title {
		font-size: clamp(32px, 8vw, 44px);
	}
	.ed-method-band__pillars {
		grid-template-columns: 1fr;
		gap: 0;
	}
	.ed-method-band__pillars li {
		padding: 22px 0 !important;
		border-left: 0 !important;
		border-bottom: 0 !important;
	}
	.ed-method-band__pillars li:last-child {
		border-bottom: 1px solid rgba(255,255,255,0.10) !important;
	}
}

/* Reduced motion — clean fallback */
@media (prefers-reduced-motion: reduce) {
	.ed-root .ed-method-band::after { display: none; }
}

/* ═══════════════════════════════════════════════════════════
   UNIFIED DESIGN SYSTEM — final source of truth
   Locks tokens, components, and layout consistency across
   ALL pages: Home, About, Free, Journal, Course, Pricing.
   No variants, no per-page divergence. One product.
   See docs/UNIFIED-SYSTEM.md.
   ═══════════════════════════════════════════════════════════ */

:root {
	/* Spacing scale — final */
	--space-xs:   8px;
	--space-sm:  16px;
	--space-md:  32px;
	--space-lg:  56px;
	--space-xl:  80px;
	--space-2xl: 120px;
	--space-3xl: 140px;
	--space-4xl: 200px;

	/* Grid */
	--bm-outer-w:   1920px;
	--bm-content-w: 1280px;

	/* Color (final lock) */
	--paper:    #ffffff;
	--paper-2:  #f5f5f5;
	--ink:      #0a0a0a;
	--ink-soft: #555555;
	--ink-mute: #888888;
	--rule:     #e5e5e5;
	--rule-soft: #f0f0f0;
}

/* ── Universal section padding (every page, every section) ── */
.ed-root section,
.ed-root .ed-section,
.ed-root [data-bg] {
	box-sizing: border-box;
}

/* Standard sections — desktop 120px, mobile 80px */
.ed-root .ed-section,
.ed-root .ed-page-hero,
.ed-root .ed-pricing,
.ed-root .ed-faq,
.ed-root .ed-instructor,
.ed-root .ed-dash-preview,
.ed-root .ed-about-band,
.ed-root .ed-about-numbers,
.ed-root .ed-course-feature,
.ed-root .ed-course-library {
	padding-top: var(--space-2xl) !important;
	padding-bottom: var(--space-2xl) !important;
}

/* Statement / Method bands — 140 desktop, 80 mobile */
.ed-root .ed-statement,
.ed-root .ed-method-band,
.ed-root .ed-about-method,
.ed-root .ed-about-story,
.ed-root .ed-course-method,
.ed-root .ed-course-why {
	padding-top: var(--space-3xl) !important;
	padding-bottom: var(--space-3xl) !important;
}

/* Final CTAs — 200px desktop, 120 mobile */
.ed-root .ed-coda,
.ed-root .ed-course-final,
.ed-root .ed-about-final,
.ed-root .ed-course-breath {
	padding-top: var(--space-4xl) !important;
	padding-bottom: var(--space-4xl) !important;
}

@media (max-width: 880px) {
	.ed-root .ed-section,
	.ed-root .ed-page-hero,
	.ed-root .ed-pricing,
	.ed-root .ed-faq,
	.ed-root .ed-instructor,
	.ed-root .ed-dash-preview,
	.ed-root .ed-about-band,
	.ed-root .ed-about-numbers,
	.ed-root .ed-about-method,
	.ed-root .ed-about-story,
	.ed-root .ed-statement,
	.ed-root .ed-method-band,
	.ed-root .ed-course-method,
	.ed-root .ed-course-feature,
	.ed-root .ed-course-library,
	.ed-root .ed-course-why {
		padding-top: var(--space-xl) !important;
		padding-bottom: var(--space-xl) !important;
	}
	.ed-root .ed-coda,
	.ed-root .ed-course-final,
	.ed-root .ed-about-final,
	.ed-root .ed-course-breath {
		padding-top: var(--space-2xl) !important;
		padding-bottom: var(--space-2xl) !important;
	}
}

/* ── Container max width — 1920 outer, 1280 inner content ── */
.ed-root .ed-section > *:not([class*="--bleed"]),
.ed-root .ed-statement__inner,
.ed-root .ed-method-band__inner,
.ed-root .ed-about-band__inner,
.ed-root .ed-about-story__inner,
.ed-root .ed-about-method__inner,
.ed-root .ed-about-numbers__inner,
.ed-root .ed-about-final__inner,
.ed-root .ed-course-method__inner,
.ed-root .ed-course-feature__inner,
.ed-root .ed-course-library__head,
.ed-root .ed-course-why__inner,
.ed-root .ed-course-final__inner,
.ed-root .ed-coda > * {
	max-width: var(--bm-outer-w);
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}

/* ── Section header pattern — same on every page ─────── */
.ed-root .ed-section__head,
.ed-root .ed-pricing__head,
.ed-root .ed-faq__head {
	margin-bottom: var(--space-lg) !important;
	max-width: var(--bm-outer-w);
	margin-left: auto;
	margin-right: auto;
}

@media (min-width: 881px) {
	.ed-root .ed-section__head,
	.ed-root .ed-pricing__head,
	.ed-root .ed-faq__head {
		margin-bottom: var(--space-xl) !important;
	}
}

/* ── Universal eyebrow label — same on every page ─────── */
.ed-root .ed-eyebrow,
.ed-root .ed-course-eyebrow,
.ed-root .ed-about-eyebrow,
.ed-root .ed-method-band__eyebrow,
.ed-root .ed-statement__eyebrow {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin: 0 0 var(--space-md);
	line-height: 1;
}

/* ── Body text harmony — same line-height everywhere ──── */
.ed-root p:not([class*="__title"]):not([class*="__line"]) {
	line-height: 1.65;
}

/* ── Lede class — for all section subheadings ─────────── */
.ed-root .ed-lede,
.ed-root .ed-course-hero__lede,
.ed-root .ed-course-method__intro,
.ed-root .ed-course-feature__lede,
.ed-root .ed-course-library__lede,
.ed-root .ed-about-hero__lede,
.ed-root .ed-method-band__lede,
.ed-root .ed-course-final__lede,
.ed-root .ed-about-final__lede {
	font-family: var(--sans);
	font-size: clamp(17px, 1.3vw, 19px);
	line-height: 1.65;
	font-weight: 400;
	margin: 0;
	max-width: 60ch;
}

/* Lede on dark sections — softer paper */
.ed-root [data-bg="ink"] .ed-lede,
.ed-root [data-bg="ink"] .ed-course-hero__lede,
.ed-root [data-bg="ink"] .ed-course-method__intro,
.ed-root [data-bg="ink"] .ed-method-band__lede,
.ed-root [data-bg="ink"] .ed-course-final__lede,
.ed-root [data-bg="ink"] .ed-about-final__lede {
	color: rgba(255,255,255,0.78);
}

/* ── Universal card hover — same physics on every page ── */
.ed-root .ed-tile,
.ed-root .ed-course-card,
.ed-root .ed-mar,
.ed-root .ed-tier {
	transition:
		transform 0.55s cubic-bezier(0.2, 0.7, 0.3, 1),
		box-shadow 0.7s cubic-bezier(0.2, 0.7, 0.3, 1) !important;
}

/* ── Universal button hover — same physics on every page ── */
.ed-root .ed-btn,
.ed-root .ed-course-btn,
.ed-root .ed-tier__cta {
	transition:
		transform 0.45s cubic-bezier(0.2, 0.7, 0.3, 1),
		box-shadow 0.6s cubic-bezier(0.2, 0.7, 0.3, 1),
		background 0.45s ease,
		color 0.45s ease,
		border-color 0.45s ease,
		letter-spacing 0.5s cubic-bezier(0.2, 0.7, 0.3, 1) !important;
	letter-spacing: 0.02em;
}
.ed-root .ed-btn:hover,
.ed-root .ed-course-btn:hover {
	letter-spacing: 0.04em;
}

/* ── Section header h2 — unified scale ────────────────── */
.ed-root .ed-section__head h2,
.ed-root .ed-pricing__head h2,
.ed-root .ed-method-band__title,
.ed-root .ed-course-method__copy h2,
.ed-root .ed-course-feature__copy h2,
.ed-root .ed-course-library__head h2,
.ed-root .ed-about-story__copy h2,
.ed-root .ed-about-method__head h2,
.ed-root .ed-faq h2 {
	font-family: var(--display);
	font-weight: 700;
	font-size: clamp(40px, 5.4vw, 80px) !important;
	line-height: 0.96 !important;
	letter-spacing: -0.025em !important;
	margin: 0 0 var(--space-md) !important;
	text-wrap: balance;
}

/* em accents — weight contrast, never italic */
.ed-root h1 em, .ed-root h2 em, .ed-root h3 em {
	font-style: normal;
	font-weight: 700;
}

/* ── Footer — always solid ink, always visible text ─── */
.ed-root .ed-footer {
	background: var(--ink) !important;
	color: var(--paper) !important;
	padding: var(--space-xl) var(--bm-pad) var(--space-md) !important;
	border-top: 1px solid rgba(255,255,255,0.08);
	z-index: 5;
	position: relative;
}

/* ── Header — fixed, transparent over canvas ─────────── */
.ed-root .ed-nav {
	padding: 22px var(--bm-pad) !important;
}

/* ── Final consistency lock — strip leftover overrides ── */

/* Force ALL eyebrow elements to use the unified label */
.ed-root [class*="__eyebrow"],
.ed-root [class*="__label"]:not([class*="ed-photo__cap"]) {
	font-family: var(--mono) !important;
	font-weight: 600 !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
}

/* Force consistent --paper-2 across all alt-bg sections */
.ed-root [data-bg="paper-2"] {
	background: var(--paper-2);
}

/* Reduced motion — kill all transitions */
@media (prefers-reduced-motion: reduce) {
	.ed-root *,
	.ed-root *::before,
	.ed-root *::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* ═══════════════════════════════════════════════════════════
   JOURNAL PAGE — uses the unified card + section system
   ═══════════════════════════════════════════════════════════ */

.ed-root .ed-journal-hero {
	padding-top: clamp(120px, 14vw, 200px) !important;
	padding-bottom: clamp(72px, 8vw, 120px) !important;
}
.ed-journal-hero__inner {
	max-width: var(--bm-content-w);
	margin: 0 auto;
}
.ed-journal-hero__title {
	font-family: var(--display);
	font-size: clamp(48px, 7vw, 120px);
	font-weight: 700;
	line-height: 0.96;
	letter-spacing: -0.03em;
	color: var(--ink);
	margin: 0 0 var(--space-md);
	max-width: 18ch;
	text-wrap: balance;
}
.ed-journal-hero__title em { font-style: normal; font-weight: 700; }

/* Featured article — 60/40 split */
.ed-root .ed-journal-featured {
	padding-top: var(--space-xl) !important;
	padding-bottom: var(--space-2xl) !important;
}
.ed-journal-featured__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: clamp(32px, 4vw, 64px);
	max-width: var(--bm-outer-w);
	margin: 0 auto;
	text-decoration: none;
	color: inherit;
	align-items: stretch;
	transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-journal-featured__inner:hover {
	transform: translateY(-2px);
}
.ed-journal-featured__photo {
	aspect-ratio: 5 / 4;
	background-size: cover;
	background-position: center 30%;
	border-radius: 4px;
	overflow: hidden;
	transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-journal-featured__inner:hover .ed-journal-featured__photo {
	transform: scale(1.01);
}
.ed-journal-featured__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	max-width: 480px;
	gap: var(--space-md);
}
.ed-journal-featured__title {
	font-family: var(--display);
	font-size: clamp(28px, 3.4vw, 44px);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -0.02em;
	color: var(--ink);
	margin: 0;
	text-wrap: balance;
}
.ed-journal-featured__cue {
	font-family: var(--display);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--ink);
	border-bottom: 1px solid var(--ink);
	padding-bottom: 4px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	align-self: flex-start;
	transition: gap 0.4s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-journal-featured__inner:hover .ed-journal-featured__cue {
	gap: 14px;
}

@media (max-width: 1080px) {
	.ed-journal-featured__inner { grid-template-columns: 1fr; }
}

/* Article grid — uses the same .ed-course-card model */
.ed-root .ed-journal-grid-wrap {
	padding-top: var(--space-xl) !important;
	padding-bottom: var(--space-2xl) !important;
}
.ed-journal-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(20px, 2.2vw, 32px);
	max-width: var(--bm-outer-w);
	margin: 0 auto;
}
@media (max-width: 1080px) {
	.ed-journal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 660px) {
	.ed-journal-grid { grid-template-columns: 1fr; }
}

/* Newsletter band */
.ed-root .ed-journal-newsletter {
	padding-top: var(--space-3xl) !important;
	padding-bottom: var(--space-3xl) !important;
	background: var(--paper-2);
	border-top: 1px solid var(--rule-soft);
	border-bottom: 1px solid var(--rule-soft);
	text-align: center;
}
.ed-journal-newsletter__inner {
	max-width: 720px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-md);
}
.ed-journal-newsletter h2 {
	font-family: var(--display);
	font-size: clamp(32px, 4.4vw, 56px) !important;
	font-weight: 700;
	line-height: 1.05 !important;
	letter-spacing: -0.025em !important;
	margin: 0 !important;
	color: var(--ink);
	text-wrap: balance;
}
.ed-journal-newsletter h2 em { font-style: normal; font-weight: 700; }

.ed-journal-newsletter__form {
	display: flex;
	gap: 12px;
	width: 100%;
	max-width: 480px;
	align-items: stretch;
}
.ed-journal-newsletter__form input {
	flex: 1;
	font-family: var(--sans);
	font-size: 15px;
	padding: 18px 24px;
	border: 1px solid var(--rule);
	border-radius: 999px;
	background: var(--paper);
	color: var(--ink);
	min-height: 52px;
	transition: border-color 0.3s ease;
}
.ed-journal-newsletter__form input:focus {
	outline: none;
	border-color: var(--ink);
}
.ed-journal-newsletter__form .ed-btn {
	min-height: 52px;
	padding: 0 32px;
	font-size: 14px;
	white-space: nowrap;
}

@media (max-width: 660px) {
	.ed-journal-newsletter__form { flex-direction: column; }
	.ed-journal-newsletter__form .ed-btn { width: 100%; }
}

/* ═══════════════════════════════════════════════════════════
   WHY THIS METHOD — editorial manifesto (final)
   Numbered list with calm typography, thin dividers,
   structured caption. Replaces the oversize centered
   billboard treatment with quiet luxury rhythm.
   ═══════════════════════════════════════════════════════════ */

.ed-root .ed-course-why {
	padding-top: clamp(120px, 13vw, 180px) !important;
	padding-bottom: clamp(120px, 13vw, 180px) !important;
}

.ed-root .ed-course-why__inner {
	max-width: 1200px !important;
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr);
	gap: clamp(48px, 6vw, 96px);
	align-items: start;
	text-align: left;
}

.ed-root .ed-course-why__head {
	display: flex;
	flex-direction: column;
	gap: 24px;
	position: sticky;
	top: 120px;
}

.ed-root .ed-course-why__head .ed-course-eyebrow {
	margin: 0;
}

.ed-root .ed-course-why__title {
	font-family: var(--display);
	font-size: clamp(32px, 3.6vw, 52px) !important;
	font-weight: 700;
	line-height: 1.04;
	letter-spacing: -0.025em;
	color: var(--ink);
	margin: 0;
	text-wrap: balance;
}
.ed-root .ed-course-why__title em {
	font-style: normal;
	font-weight: 700;
	color: var(--ink-soft);
}

/* ── Numbered manifesto list ─────────────────────── */
.ed-root .ed-course-why__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
}

.ed-root .ed-course-why__item {
	display: grid;
	grid-template-columns: 60px minmax(0, 1fr);
	gap: 32px;
	padding: 36px 0;
	border-top: 1px solid var(--rule);
	align-items: start;
	transition: padding 0.5s cubic-bezier(0.2, 0.7, 0.3, 1),
	            border-top-color 0.4s ease;
}
.ed-root .ed-course-why__item:last-child {
	border-bottom: 1px solid var(--rule);
}
.ed-root .ed-course-why__item:hover {
	border-top-color: var(--ink);
}

.ed-root .ed-course-why__num {
	font-family: var(--mono);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.20em;
	color: var(--ink-mute);
	padding-top: 8px;
}

.ed-root .ed-course-why__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

/* The principle headline — calm, controlled, not screaming */
.ed-root .ed-course-why__line {
	font-family: var(--display) !important;
	font-size: clamp(24px, 2.4vw, 34px) !important;
	font-weight: 600 !important;
	line-height: 1.15 !important;
	letter-spacing: -0.02em !important;
	color: var(--ink);
	margin: 0 !important;
	text-wrap: balance;
}

/* Brief expansion note below each principle */
.ed-root .ed-course-why__note {
	font-family: var(--sans);
	font-size: 15px;
	line-height: 1.6;
	color: var(--ink-mute);
	margin: 0;
	max-width: 56ch;
}

/* Closing caption — properly placed, not orphaned */
.ed-root .ed-course-why__caption {
	grid-column: 1 / -1;
	font-family: var(--sans);
	font-size: 15px;
	font-style: italic;
	line-height: 1.6;
	color: var(--ink-mute);
	margin: 48px 0 0;
	max-width: 56ch;
	text-align: left;
}

/* Override the old "billboard" rules that lived on .ed-course-why__lines */
.ed-root .ed-course-why__lines {
	display: contents;        /* let new list layout win */
}

/* Mobile — stack head above list, calmer scale */
@media (max-width: 1080px) {
	.ed-root .ed-course-why__inner {
		grid-template-columns: 1fr;
		gap: 48px;
	}
	.ed-root .ed-course-why__head {
		position: static;
	}
}

@media (max-width: 880px) {
	.ed-root .ed-course-why {
		padding-top: 80px !important;
		padding-bottom: 80px !important;
	}
	.ed-root .ed-course-why__title {
		font-size: clamp(28px, 8vw, 40px) !important;
	}
	.ed-root .ed-course-why__item {
		grid-template-columns: 40px minmax(0, 1fr);
		gap: 16px;
		padding: 28px 0;
	}
	.ed-root .ed-course-why__line {
		font-size: clamp(20px, 6vw, 26px) !important;
	}
	.ed-root .ed-course-why__num {
		font-size: 11px;
		padding-top: 4px;
	}
	.ed-root .ed-course-why__caption {
		font-size: 14px;
		margin-top: 32px;
	}
}

/* ═══════════════════════════════════════════════════════════
   INTERLUDE — unified editorial pause block
   Replaces the centered-billboard ".ed-course-breath" and
   ".ed-about-band" with a structured 2-col interlude:
   eyebrow + 2 columns each with a calm headline, thin rule,
   and supporting caption. Quiet luxury, not a poster.
   ═══════════════════════════════════════════════════════════ */

.ed-root .ed-interlude {
	padding-top: clamp(120px, 14vw, 180px) !important;
	padding-bottom: clamp(120px, 14vw, 180px) !important;
	border-top: 1px solid var(--rule-soft);
	border-bottom: 1px solid var(--rule-soft);
}

.ed-root .ed-interlude__inner {
	max-width: 1280px !important;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: clamp(48px, 6vw, 80px);
}

.ed-root .ed-interlude__eyebrow {
	margin: 0 !important;
	color: var(--ink-mute);
}

/* 2-column grid — each column is a complete statement unit */
.ed-root .ed-interlude__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(40px, 6vw, 96px);
	align-items: start;
}

.ed-root .ed-interlude__col {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

/* Calm display headline — controlled scale, never billboard */
.ed-root .ed-interlude__line {
	font-family: var(--display);
	font-size: clamp(32px, 3.6vw, 56px);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: -0.025em;
	color: var(--ink);
	margin: 0;
	max-width: 14ch;
	text-wrap: balance;
}
.ed-root .ed-interlude__line em {
	font-style: normal;
	font-weight: 700;
	color: var(--ink-soft);    /* second line softens — layered weight contrast */
}

/* Thin editorial rule between headline and supporting note */
.ed-root .ed-interlude__rule {
	display: block;
	width: 56px;
	height: 1px;
	background: var(--ink);
	margin: 4px 0;
}

/* Supporting caption — calm body tone */
.ed-root .ed-interlude__note {
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.65;
	color: var(--ink-mute);
	margin: 0;
	max-width: 38ch;
	font-weight: 400;
}

/* Mobile — stack columns, calmer scale */
@media (max-width: 880px) {
	.ed-root .ed-interlude {
		padding-top: 80px !important;
		padding-bottom: 80px !important;
	}
	.ed-root .ed-interlude__grid {
		grid-template-columns: 1fr;
		gap: 56px;
	}
	.ed-root .ed-interlude__line {
		font-size: clamp(26px, 8vw, 40px);
	}
	.ed-root .ed-interlude__col {
		gap: 20px;
	}
	.ed-root .ed-interlude__inner {
		gap: 40px;
	}
}

/* ═══════════════════════════════════════════════════════════
   KILL legacy "billboard" rules that targeted the old
   centered-massive-statement layouts. Their markup is gone
   on the live pages, but the rules linger in the cascade.
   ═══════════════════════════════════════════════════════════ */
.ed-root .ed-course-breath,
.ed-root .ed-about-band {
	display: none !important;
}

/* ═══════════════════════════════════════════════════════════
   COURSE INSTRUCTOR — final editorial block
   Real B&W portrait, asymmetric grid, premium typography.
   Same component shape as About story for system unity.
   ═══════════════════════════════════════════════════════════ */

.ed-root .ed-course-instructor.ed-instructor--editorial {
	padding-top: clamp(120px, 14vw, 180px) !important;
	padding-bottom: clamp(120px, 14vw, 180px) !important;
	border-top: 1px solid var(--rule-soft);
}

.ed-root .ed-course-instructor.ed-instructor--editorial .ed-instructor__grid {
	display: grid !important;
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) !important;
	gap: clamp(56px, 8vw, 120px) !important;
	max-width: 1640px !important;
	margin: 0 auto;
	align-items: start !important;
}

/* Primary portrait — bleeds left, real B&W treatment */
.ed-root .ed-course-instructor.ed-instructor--editorial .ed-instructor__media {
	width: calc(100% + var(--bm-pad)) !important;
	margin: 0 0 0 calc(-1 * var(--bm-pad)) !important;
	height: clamp(560px, 72vh, 820px) !important;
	aspect-ratio: 4 / 5 !important;
	background-size: cover !important;
	background-position: center top !important;
	background-repeat: no-repeat;
	filter: grayscale(0.35) contrast(1.05) brightness(0.96);
	border-radius: 4px;
}

/* Right column — calm typographic flow */
.ed-root .ed-course-instructor.ed-instructor--editorial .ed-instructor__copy {
	padding-top: clamp(8px, 2vw, 32px) !important;
	max-width: 480px !important;
	display: flex;
	flex-direction: column;
}

.ed-root .ed-course-instructor.ed-instructor--editorial .ed-instructor__overline {
	font-family: var(--mono) !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
	color: var(--ink-mute) !important;
	margin: 0 0 24px !important;
}

.ed-root .ed-course-instructor.ed-instructor--editorial h2 {
	font-family: var(--display) !important;
	font-size: clamp(40px, 5vw, 72px) !important;
	font-weight: 700 !important;
	line-height: 0.96 !important;
	letter-spacing: -0.03em !important;
	margin: 0 0 32px !important;
	color: var(--ink);
}
.ed-root .ed-course-instructor.ed-instructor--editorial h2 em {
	font-style: normal;
	font-weight: 700;
	color: var(--ink-soft);
}

/* Prose paragraphs — calm body for editorial reading */
.ed-root .ed-course-instructor.ed-instructor--editorial .ed-instructor__prose {
	margin: 0 0 36px !important;
}
.ed-root .ed-course-instructor.ed-instructor--editorial .ed-instructor__prose p {
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.75;
	color: var(--ink-soft);
	margin: 0 0 20px;
}
.ed-root .ed-course-instructor.ed-instructor--editorial .ed-instructor__prose p:last-child {
	margin-bottom: 0;
}

/* Inline credentials line above CTA */
.ed-root .ed-course-instructor.ed-instructor--editorial .ed-instructor__creds-line {
	border-top: 1px solid var(--rule);
	padding-top: 24px !important;
	margin: 0 0 24px !important;
	font-family: var(--mono) !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase !important;
	color: var(--ink-mute) !important;
	line-height: 1.6;
}
.ed-root .ed-course-instructor.ed-instructor--editorial .ed-instructor__creds-line span {
	margin: 0 0.5em;
	opacity: 0.5;
}

/* Single ghost text-link CTA */
.ed-root .ed-course-instructor.ed-instructor--editorial .ed-instructor__more {
	display: inline-block;
	font-family: var(--display);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--ink);
	text-decoration: none;
	border-bottom: 1px solid var(--ink);
	padding-bottom: 4px;
	align-self: flex-start;
	transition: opacity 0.4s ease, letter-spacing 0.5s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-root .ed-course-instructor.ed-instructor--editorial .ed-instructor__more:hover {
	opacity: 0.6;
	letter-spacing: 0.06em;
}

/* Mobile — stack, no bleed */
@media (max-width: 880px) {
	.ed-root .ed-course-instructor.ed-instructor--editorial {
		padding-top: 80px !important;
		padding-bottom: 80px !important;
	}
	.ed-root .ed-course-instructor.ed-instructor--editorial .ed-instructor__grid {
		grid-template-columns: 1fr !important;
		gap: 40px !important;
	}
	.ed-root .ed-course-instructor.ed-instructor--editorial .ed-instructor__media {
		width: 100% !important;
		margin: 0 !important;
		height: 480px !important;
		aspect-ratio: 4 / 5 !important;
	}
	.ed-root .ed-course-instructor.ed-instructor--editorial h2 {
		font-size: clamp(36px, 10vw, 56px) !important;
	}
	.ed-root .ed-course-instructor.ed-instructor--editorial .ed-instructor__copy {
		max-width: 100% !important;
	}
}

/* ═══════════════════════════════════════════════════════════
   INSTRUCTOR MEDIA — final position lock
   Earlier rules positioned the photo at 35% / 28-30% from top
   which cropped out the face on portrait shots. Force every
   instructor media element to crop from the top so the face
   is always visible.
   ═══════════════════════════════════════════════════════════ */

.ed-root .ed-instructor__media,
.ed-root .ed-course-instructor .ed-instructor__media,
.ed-root .ed-instructor--editorial .ed-instructor__media,
.ed-root .ed-about-story__photo,
.ed-root .ed-about-hero__media {
	background-position: center top !important;
	background-size: cover !important;
}

/* On the editorial instructor (courses + homepage), give a tiny offset
   from absolute top so the head isn't pressed against the upper edge. */
.ed-root .ed-instructor--editorial .ed-instructor__media {
	background-position: center 8% !important;
}
.ed-root .ed-about-hero__media {
	background-position: center 12% !important;
}

/* ═══════════════════════════════════════════════════════════
   COURSE CARD — disable text shift on hover.
   Image still zooms, overlay still darkens, shadow still lifts —
   only the content (text) stays in place. Calmer, more refined.
   ═══════════════════════════════════════════════════════════ */
.ed-root .ed-course-card:hover .ed-course-card__content {
	transform: none !important;
}
.ed-root .ed-course-card .ed-course-card__content {
	transform: none !important;
	transition: none !important;
}

/* ═══════════════════════════════════════════════════════════
   BUTTON UNIFICATION — final lock
   All buttons use identical: size, padding, font-size,
   font-weight, letter-spacing. No letter-spacing widen on hover.
   Text NEVER stretches or shifts in any state.
   Only lift + shadow + bg/color change on hover.
   ═══════════════════════════════════════════════════════════ */

.ed-root .ed-btn,
.ed-root .ed-course-btn,
.ed-root .ed-btn--light,
.ed-root .ed-btn--ghost,
.ed-root .ed-btn--ghost-light,
.ed-root .ed-course-final .ed-btn--light,
.ed-root .ed-course-final .ed-btn--ghost-light,
.ed-root .ed-about-final__cta .ed-btn--light,
.ed-root .ed-about-final__cta .ed-btn--ghost-light,
.ed-root .ed-hero--cinematic .ed-btn--light,
.ed-root .ed-hero--cinematic .ed-btn--ghost-light,
.ed-root .ed-course-hero .ed-btn,
.ed-root .ed-course-actions .ed-btn,
.ed-root .ed-course-actions .ed-course-btn {
	min-height: 56px !important;
	padding: 18px 36px !important;
	font-family: var(--display) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em !important;
	text-transform: none !important;
	border-radius: 999px !important;
	border-width: 1px !important;
	min-width: 200px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	white-space: nowrap;
	box-sizing: border-box;
	line-height: 1 !important;
}

/* Hover — ONLY lift + shadow + bg/border. No letter-spacing change. */
.ed-root .ed-btn:hover,
.ed-root .ed-course-btn:hover,
.ed-root .ed-btn--light:hover,
.ed-root .ed-btn--ghost:hover,
.ed-root .ed-btn--ghost-light:hover,
.ed-root .ed-course-final .ed-btn--light:hover,
.ed-root .ed-course-final .ed-btn--ghost-light:hover,
.ed-root .ed-about-final__cta .ed-btn--light:hover,
.ed-root .ed-about-final__cta .ed-btn--ghost-light:hover,
.ed-root .ed-hero--cinematic .ed-btn--light:hover,
.ed-root .ed-hero--cinematic .ed-btn--ghost-light:hover,
.ed-root .ed-course-hero .ed-btn:hover,
.ed-root .ed-course-actions .ed-btn:hover,
.ed-root .ed-course-actions .ed-course-btn:hover {
	letter-spacing: 0.04em !important;     /* same as default — no widen */
	font-size: 14px !important;
	font-weight: 600 !important;
	transform: translateY(-2px) !important;
}

/* Specific final-CTA buttons — slightly larger but still identical to each other */
.ed-root .ed-course-final .ed-btn--light,
.ed-root .ed-course-final .ed-btn--ghost-light,
.ed-root .ed-about-final__cta .ed-btn--light,
.ed-root .ed-about-final__cta .ed-btn--ghost-light {
	min-height: 64px !important;
	padding: 20px 44px !important;
	font-size: 15px !important;
	min-width: 220px !important;
}

/* Reset letter-spacing transition so it never animates */
.ed-root .ed-btn,
.ed-root .ed-course-btn,
.ed-root .ed-btn--light,
.ed-root .ed-btn--ghost-light {
	transition:
		transform 0.45s cubic-bezier(0.2, 0.7, 0.3, 1),
		box-shadow 0.6s cubic-bezier(0.2, 0.7, 0.3, 1),
		background 0.45s ease,
		color 0.45s ease,
		border-color 0.45s ease !important;
}

/* CTA pair container — equal-width buttons, consistent gap */
.ed-root .ed-course-actions,
.ed-root .ed-hero__cta,
.ed-root .ed-hero--cinematic .ed-hero__cta,
.ed-root .ed-course-final .ed-course-actions,
.ed-root .ed-about-final__cta {
	display: inline-flex !important;
	flex-wrap: wrap;
	gap: 14px !important;
	align-items: center;
}

/* On mobile pairs stack equal-width */
@media (max-width: 660px) {
	.ed-root .ed-course-actions .ed-btn,
	.ed-root .ed-hero--cinematic .ed-hero__cta .ed-btn,
	.ed-root .ed-course-final .ed-course-actions .ed-btn,
	.ed-root .ed-about-final__cta .ed-btn {
		width: 100% !important;
		min-width: 0 !important;
	}
}

/* ═══════════════════════════════════════════════════════════
   BUTTON UNIFICATION — NUCLEAR FINAL LOCK
   Every button on the site, every page, every variant,
   has IDENTICAL: min-height, padding, font-size, font-weight,
   letter-spacing, border-width, border-radius. No flex grow.
   No min-width auto-stretch. Width is content + padding only.
   ═══════════════════════════════════════════════════════════ */

.ed-root .ed-btn,
.ed-root .ed-btn--ghost,
.ed-root .ed-btn--light,
.ed-root .ed-btn--ghost-light,
.ed-root .ed-course-btn,
.ed-root .ed-course-btn--light,
.ed-root .ed-course-btn--ghost,
.ed-root a.ed-btn,
.ed-root button.ed-btn,
.ed-root .ed-tier__cta,
.ed-root .ed-cart {
	/* Box model — identical everywhere */
	box-sizing: border-box !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 56px !important;
	height: auto !important;
	padding: 16px 32px !important;
	border-radius: 999px !important;
	border: 1px solid currentColor;

	/* Type — identical everywhere */
	font-family: var(--display) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em !important;
	line-height: 1 !important;
	text-transform: none !important;
	text-decoration: none !important;
	white-space: nowrap !important;

	/* Sizing — content + padding, no stretch */
	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	flex: 0 0 auto !important;

	/* Motion — identical hover */
	transition:
		transform 0.4s cubic-bezier(0.2, 0.7, 0.3, 1),
		box-shadow 0.5s cubic-bezier(0.2, 0.7, 0.3, 1),
		background 0.4s ease,
		color 0.4s ease,
		border-color 0.4s ease !important;
	cursor: pointer;
}

/* Variant colors — only color/border differ, NEVER size or type */
.ed-root .ed-btn,
.ed-root a.ed-btn:not(.ed-btn--ghost):not(.ed-btn--light):not(.ed-btn--ghost-light) {
	background: var(--ink) !important;
	color: var(--paper) !important;
	border-color: var(--ink) !important;
}
.ed-root .ed-btn--ghost {
	background: transparent !important;
	color: var(--ink) !important;
	border-color: var(--ink) !important;
}
.ed-root .ed-btn--light {
	background: var(--paper) !important;
	color: var(--ink) !important;
	border-color: var(--paper) !important;
}
.ed-root .ed-btn--ghost-light {
	background: transparent !important;
	color: var(--paper) !important;
	border-color: rgba(255,255,255,0.40) !important;
}

/* Hover — identical lift, no text changes */
.ed-root .ed-btn:hover,
.ed-root .ed-btn--ghost:hover,
.ed-root .ed-btn--light:hover,
.ed-root .ed-btn--ghost-light:hover,
.ed-root .ed-course-btn:hover {
	transform: translateY(-2px) !important;
	font-size: 14px !important;            /* never changes */
	letter-spacing: 0.04em !important;     /* never changes */
}
.ed-root .ed-btn:hover {
	box-shadow: 0 12px 32px rgba(0,0,0,0.18) !important;
}
.ed-root .ed-btn--ghost:hover {
	background: var(--ink) !important;
	color: var(--paper) !important;
	border-color: var(--ink) !important;
}
.ed-root .ed-btn--light:hover {
	box-shadow: 0 12px 32px rgba(255,255,255,0.18) !important;
}
.ed-root .ed-btn--ghost-light:hover {
	background: rgba(255,255,255,0.12) !important;
	color: var(--paper) !important;
	border-color: rgba(255,255,255,1) !important;
}

/* CTA pair container — buttons size to content, no stretch */
.ed-root .ed-course-actions,
.ed-root .ed-hero__cta,
.ed-root .ed-hero--cinematic .ed-hero__cta,
.ed-root .ed-course-final .ed-course-actions,
.ed-root .ed-about-final__cta,
.ed-root .ed-coda__cta,
.ed-root .ed-tier__cta,
.ed-root .ed-hero-cta,
.ed-root .ed-course-feature__copy .ed-course-actions {
	display: inline-flex !important;
	flex-wrap: wrap;
	gap: 14px !important;
	align-items: center !important;
	justify-content: flex-start;
	width: auto;
}

/* Final CTA centered (when section is centered) */
.ed-root .ed-course-final .ed-course-actions,
.ed-root .ed-about-final__cta,
.ed-root .ed-coda__cta {
	justify-content: center !important;
}

/* Mobile — buttons stack full-width, still identical to each other */
@media (max-width: 660px) {
	.ed-root .ed-btn,
	.ed-root .ed-btn--ghost,
	.ed-root .ed-btn--light,
	.ed-root .ed-btn--ghost-light,
	.ed-root .ed-course-btn {
		width: 100% !important;
		flex: 1 1 auto !important;
	}
	.ed-root .ed-course-actions,
	.ed-root .ed-hero__cta,
	.ed-root .ed-coda__cta,
	.ed-root .ed-course-final .ed-course-actions,
	.ed-root .ed-about-final__cta {
		flex-direction: column;
		width: 100%;
		max-width: 360px;
	}
}

/* ═══════════════════════════════════════════════════════════
   COURSES GRID — final premium editorial system
   Subtle gradient, soft shadows, refined typography,
   increased breathing. All cards identical.
   ═══════════════════════════════════════════════════════════ */

/* ── Section padding — premium breath ──────────────── */
.ed-root .ed-course-library {
	padding-top: 140px !important;
	padding-bottom: 140px !important;
}
@media (max-width: 880px) {
	.ed-root .ed-course-library {
		padding-top: 100px !important;
		padding-bottom: 100px !important;
	}
}

/* Section header — generous space before grid */
.ed-root .ed-course-library__head {
	margin-bottom: clamp(64px, 7vw, 96px) !important;
	max-width: 1080px;
}

/* ── Grid — clean rhythm ──────────────────────────── */
.ed-root .ed-course-grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(24px, 2.4vw, 32px) !important;
	max-width: 1920px !important;
	margin: 0 auto;
}
@media (max-width: 1080px) {
	.ed-root .ed-course-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 24px !important;
	}
}
@media (max-width: 660px) {
	.ed-root .ed-course-grid {
		grid-template-columns: 1fr !important;
		gap: 20px !important;
	}
}

/* ── Card — uniform structure, soft depth ────────── */
.ed-root .ed-course-card {
	position: relative;
	display: flex !important;
	flex-direction: column;
	justify-content: flex-end;
	overflow: hidden;
	aspect-ratio: 4 / 5 !important;
	border-radius: 18px !important;        /* 16-20 range, soft */
	text-decoration: none;
	color: var(--paper);
	cursor: pointer;
	min-height: 0 !important;              /* let aspect-ratio drive */
	box-shadow:
		0 2px 6px rgba(10, 10, 10, 0.04),
		0 8px 24px rgba(10, 10, 10, 0.06);   /* always-on soft depth */
	transition:
		transform 0.55s cubic-bezier(0.2, 0.7, 0.3, 1),
		box-shadow 0.6s cubic-bezier(0.2, 0.7, 0.3, 1) !important;
}

/* Card hover — lift + stronger shadow, no text shift */
.ed-root .ed-course-card:hover {
	transform: translateY(-6px) !important;
	box-shadow:
		0 4px 12px rgba(10, 10, 10, 0.08),
		0 24px 56px rgba(10, 10, 10, 0.18) !important;
}

/* ── Image — fills card, gentle zoom on hover ─────── */
.ed-root .ed-course-card__media {
	position: absolute;
	inset: 0;
	background-image: var(--course-img);
	background-size: cover;
	background-position: center 30%;
	background-repeat: no-repeat;
	transition: transform 0.9s cubic-bezier(0.2, 0.7, 0.3, 1) !important;
	will-change: transform;
}
.ed-root .ed-course-card:hover .ed-course-card__media {
	transform: scale(1.05) !important;
}

/* ── Overlay — SUBTLE: only bottom 30% fade to 0.50 ─ */
.ed-root .ed-course-card__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(0, 0, 0, 0.00) 0%,
		rgba(0, 0, 0, 0.00) 55%,
		rgba(0, 0, 0, 0.30) 80%,
		rgba(0, 0, 0, 0.55) 100%
	) !important;
	transition: background 0.5s ease !important;
	pointer-events: none;
}
/* Hover deepens overlay slightly for stronger text readability */
.ed-root .ed-course-card:hover .ed-course-card__overlay {
	background: linear-gradient(
		180deg,
		rgba(0, 0, 0, 0.00) 0%,
		rgba(0, 0, 0, 0.05) 50%,
		rgba(0, 0, 0, 0.40) 78%,
		rgba(0, 0, 0, 0.65) 100%
	) !important;
}

/* ── Badge — refined position + style ─────────────── */
.ed-root .ed-course-card__badge {
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 3;
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.20em;
	text-transform: uppercase;
	padding: 7px 12px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	line-height: 1;
	backdrop-filter: blur(10px);
}
.ed-root .ed-course-card__badge--free,
.ed-root .ed-course-card__badge--unlocked {
	background: rgba(255,255,255,0.95);
	color: var(--ink);
}
.ed-root .ed-course-card__badge--soon,
.ed-root .ed-course-card__badge--locked {
	background: rgba(0,0,0,0.30);
	color: var(--paper);
	border: 1px solid rgba(255,255,255,0.18);
}
.ed-root .ed-course-card__badge--locked {
	padding: 8px 10px;
}

/* ── Content — refined hierarchy + spacing ────────── */
.ed-root .ed-course-card__content {
	position: relative;
	z-index: 2;
	padding: 22px 24px !important;
	display: flex;
	flex-direction: column;
	gap: 8px;
	transform: none !important;             /* never shifts */
	transition: none !important;
}

/* Small label — calm, low opacity */
.ed-root .ed-course-card__meta {
	font-family: var(--mono) !important;
	font-size: 10px !important;
	font-weight: 600 !important;
	letter-spacing: 0.20em !important;
	text-transform: uppercase !important;
	color: rgba(255, 255, 255, 0.75) !important;
	margin: 0 !important;
	line-height: 1.4;
	display: inline-flex;
	gap: 8px;
	align-items: center;
}
.ed-root .ed-course-card__meta span[aria-hidden="true"] {
	opacity: 0.45;
}

/* Title — bold, max 2 lines, comfortable line-height */
.ed-root .ed-course-card__title {
	font-family: var(--display) !important;
	font-size: clamp(20px, 1.7vw, 26px) !important;
	font-weight: 700 !important;
	line-height: 1.18 !important;
	letter-spacing: -0.018em !important;
	color: var(--paper) !important;
	margin: 4px 0 !important;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.20);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* CTA — calm caption with arrow */
.ed-root .ed-course-card__cta {
	font-family: var(--display) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em !important;
	color: rgba(255, 255, 255, 0.92) !important;
	margin: 6px 0 0 !important;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	transition: gap 0.4s cubic-bezier(0.2, 0.7, 0.3, 1) !important;
}
.ed-root .ed-course-card:hover .ed-course-card__cta {
	gap: 12px !important;
}
.ed-root .ed-course-card__cta span[aria-hidden="true"] {
	display: inline-block;
	transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-root .ed-course-card:hover .ed-course-card__cta span[aria-hidden="true"] {
	transform: translateX(4px);
}

/* Soon state — slightly faded, cleaner read */
.ed-root .ed-course-card.is-soon { opacity: 0.92; }
.ed-root .ed-course-card.is-soon:hover { opacity: 1; }

/* Mobile — same identical card model, minor padding tighten */
@media (max-width: 660px) {
	.ed-root .ed-course-card__content {
		padding: 20px !important;
	}
	.ed-root .ed-course-card__title {
		font-size: 22px !important;
	}
}

/* ═══════════════════════════════════════════════════════════
   COURSE PAGE — premium product page (single-bm_marathon)
   6 sections: hero / value / plan / instructor / cta / faq
   Unified spacing, strong hierarchy, clean structured lists.
   ═══════════════════════════════════════════════════════════ */

/* ── Section padding lock — 100-140px desktop, 80-96 mobile ── */
.ed-root .ed-coursepage-hero,
.ed-root .ed-coursepage-value,
.ed-root .ed-coursepage-plan,
.ed-root .ed-coursepage-cta,
.ed-root .ed-coursepage-faq {
	padding-left: var(--bm-pad) !important;
	padding-right: var(--bm-pad) !important;
	padding-top: 140px !important;
	padding-bottom: 140px !important;
	box-sizing: border-box;
	width: 100%;
}
@media (max-width: 880px) {
	.ed-root .ed-coursepage-hero,
	.ed-root .ed-coursepage-value,
	.ed-root .ed-coursepage-plan,
	.ed-root .ed-coursepage-cta,
	.ed-root .ed-coursepage-faq {
		padding-left: var(--bm-pad-mob) !important;
		padding-right: var(--bm-pad-mob) !important;
		padding-top: 96px !important;
		padding-bottom: 96px !important;
	}
}

/* ── 1. HERO — large image left, copy right ──────────── */
.ed-coursepage-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: clamp(48px, 6vw, 96px);
	max-width: 1640px;
	margin: 0 auto;
	align-items: stretch;
}

.ed-coursepage-hero__photo {
	aspect-ratio: 4 / 5;
	background-size: cover;
	background-position: center 28%;
	background-repeat: no-repeat;
	border-radius: 18px;
	overflow: hidden;
	min-height: 560px;
	box-shadow:
		0 2px 8px rgba(0,0,0,0.04),
		0 16px 48px rgba(0,0,0,0.08);
}

.ed-coursepage-hero__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	max-width: 560px;
	gap: 0;
}

.ed-coursepage-hero__eyebrow {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin: 0 0 24px;
	display: inline-flex;
	gap: 10px;
	align-items: center;
}
.ed-coursepage-hero__eyebrow span[aria-hidden="true"] {
	opacity: 0.45;
}

.ed-coursepage-hero__title {
	font-family: var(--display);
	font-size: clamp(48px, 6vw, 88px);
	font-weight: 700;
	line-height: 0.96;
	letter-spacing: -0.03em;
	color: var(--ink);
	margin: 0 0 28px;
	text-wrap: balance;
}

.ed-coursepage-hero__lede {
	font-family: var(--sans);
	font-size: clamp(17px, 1.3vw, 19px);
	line-height: 1.65;
	color: var(--ink-soft);
	margin: 0 0 40px;
	max-width: 56ch;
}

.ed-coursepage-hero__stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	border-top: 1px solid var(--rule);
	padding-top: 28px;
	margin: 0 0 40px;
}
.ed-coursepage-hero__stats > div {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.ed-coursepage-hero__stats dt {
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.20em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin: 0;
}
.ed-coursepage-hero__stats dd {
	font-family: var(--display);
	font-size: 18px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--ink);
	margin: 0;
	line-height: 1.2;
}

.ed-coursepage-hero__cta {
	display: inline-flex;
	gap: 14px;
	flex-wrap: wrap;
}

@media (max-width: 1080px) {
	.ed-coursepage-hero__grid {
		grid-template-columns: 1fr;
		gap: 48px;
	}
	.ed-coursepage-hero__photo {
		min-height: 0;
		max-height: 600px;
	}
}
@media (max-width: 660px) {
	.ed-coursepage-hero__stats {
		grid-template-columns: 1fr 1fr;
		gap: 24px 32px;
	}
}

/* ── 2. VALUE BLOCK — 2-col why this course ─────────── */
.ed-root .ed-coursepage-value {
	border-top: 1px solid var(--rule-soft);
}
.ed-coursepage-value__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	gap: clamp(56px, 7vw, 120px);
	max-width: 1640px;
	margin: 0 auto;
	align-items: start;
}

.ed-coursepage-value__copy {
	max-width: 600px;
}
.ed-coursepage-value__copy .ed-eyebrow {
	margin: 0 0 32px !important;
}
.ed-coursepage-value__para {
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.75;
	color: var(--ink-soft);
	margin: 0 0 24px;
}
.ed-coursepage-value__para:last-child {
	margin-bottom: 0;
}

.ed-coursepage-value__side {
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.ed-coursepage-value__group {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.ed-coursepage-value__label {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin: 0 0 16px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--rule);
}

.ed-coursepage-value__list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ed-coursepage-value__list li {
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.5;
	color: var(--ink);
	padding: 14px 0;
	border-bottom: 1px solid var(--rule-soft);
	display: flex;
	align-items: flex-start;
	gap: 12px;
}
.ed-coursepage-value__list li::before {
	content: '—';
	color: var(--ink-mute);
	font-weight: 500;
	flex-shrink: 0;
}
.ed-coursepage-value__list li:last-child {
	border-bottom: 0;
}

@media (max-width: 1080px) {
	.ed-coursepage-value__inner {
		grid-template-columns: 1fr;
		gap: 56px;
	}
}

/* ── 3. COURSE PLAN — structured lesson list ───────── */
.ed-root .ed-coursepage-plan {
	border-top: 1px solid var(--rule-soft);
}
.ed-coursepage-plan__inner {
	max-width: 1280px;
	margin: 0 auto;
}

.ed-coursepage-plan__head {
	margin-bottom: 64px;
	max-width: 720px;
}
.ed-coursepage-plan__head h2 {
	font-family: var(--display) !important;
	font-size: clamp(36px, 4.4vw, 56px) !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	letter-spacing: -0.025em !important;
	margin: 0 0 24px !important;
	color: var(--ink);
}
.ed-coursepage-plan__lede {
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.65;
	color: var(--ink-soft);
	margin: 0;
	max-width: 60ch;
}

/* Weeks list */
.ed-coursepage-plan__weeks {
	display: flex;
	flex-direction: column;
}

.ed-coursepage-plan__week {
	border-top: 1px solid var(--rule);
}
.ed-coursepage-plan__week:last-child {
	border-bottom: 1px solid var(--rule);
}

.ed-coursepage-plan__week-summary {
	display: grid;
	grid-template-columns: 80px minmax(0, 1fr) auto auto;
	gap: 32px;
	align-items: center;
	padding: 28px 0;
	cursor: pointer;
	list-style: none;
	transition: background-color 0.3s ease;
}
.ed-coursepage-plan__week-summary::-webkit-details-marker { display: none; }

.ed-coursepage-plan__week-summary:hover {
	background-color: var(--paper-2);
	margin-left: -16px;
	margin-right: -16px;
	padding-left: 16px;
	padding-right: 16px;
}

.ed-coursepage-plan__week-num {
	font-family: var(--mono);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	color: var(--ink-mute);
}

.ed-coursepage-plan__week-title {
	font-family: var(--display);
	font-size: clamp(20px, 1.8vw, 26px);
	font-weight: 600;
	letter-spacing: -0.015em;
	color: var(--ink);
	line-height: 1.2;
}

.ed-coursepage-plan__week-count {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ink-mute);
}

.ed-coursepage-plan__week-icon {
	font-family: var(--display);
	font-size: 22px;
	font-weight: 400;
	color: var(--ink);
	width: 24px;
	height: 24px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-coursepage-plan__week[open] .ed-coursepage-plan__week-icon {
	transform: rotate(45deg);
}

/* Lessons inside a week */
.ed-coursepage-plan__lessons {
	list-style: none;
	margin: 0;
	padding: 8px 0 28px;
	display: flex;
	flex-direction: column;
}

.ed-coursepage-plan__lesson {
	display: grid;
	grid-template-columns: 80px minmax(0, 1fr) 80px 100px;
	gap: 32px;
	align-items: center;
	padding: 18px 0;
	border-top: 1px solid var(--rule-soft);
	transition: background-color 0.3s ease;
}
.ed-coursepage-plan__lesson:hover {
	background-color: var(--paper-2);
	margin-left: -16px;
	margin-right: -16px;
	padding-left: 16px;
	padding-right: 16px;
}

.ed-coursepage-plan__lesson-num {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	color: var(--ink-mute);
}

.ed-coursepage-plan__lesson-title {
	font-family: var(--sans);
	font-size: 17px;
	font-weight: 500;
	color: var(--ink);
	line-height: 1.4;
}
.ed-coursepage-plan__lesson-title a {
	color: inherit;
	text-decoration: none;
	transition: opacity 0.3s ease;
}
.ed-coursepage-plan__lesson-title a:hover {
	opacity: 0.6;
}

.ed-coursepage-plan__lesson-duration {
	font-family: var(--mono);
	font-size: 12px;
	letter-spacing: 0.06em;
	color: var(--ink-mute);
	text-align: right;
}

.ed-coursepage-plan__lesson-state {
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	text-align: right;
}

.ed-coursepage-plan__lesson--free .ed-coursepage-plan__lesson-state {
	color: var(--ink);
}
.ed-coursepage-plan__lesson--locked .ed-coursepage-plan__lesson-state {
	color: var(--ink-mute);
}
.ed-coursepage-plan__lesson--locked .ed-coursepage-plan__lesson-title {
	color: var(--ink-mute);
}

.ed-coursepage-plan__empty {
	font-family: var(--display);
	font-style: italic;
	font-size: 22px;
	color: var(--ink-soft);
	margin: 0;
	max-width: 600px;
}

@media (max-width: 880px) {
	.ed-coursepage-plan__week-summary {
		grid-template-columns: auto minmax(0, 1fr) auto;
		gap: 16px;
	}
	.ed-coursepage-plan__week-count {
		grid-column: 1 / -1;
		justify-self: start;
	}
	.ed-coursepage-plan__lesson {
		grid-template-columns: auto minmax(0, 1fr) auto;
		gap: 12px;
	}
	.ed-coursepage-plan__lesson-state {
		grid-column: 1 / -1;
		text-align: left;
		padding-top: 4px;
	}
}

/* ── 5. CTA SECTION — centered dark band ─────────── */
.ed-root .ed-coursepage-cta {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	max-width: none !important;
	color: var(--paper);
	text-align: center;
	background: var(--ink);
}
.ed-coursepage-cta__inner {
	max-width: 920px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
}
.ed-coursepage-cta .ed-eyebrow {
	color: rgba(255,255,255,0.55) !important;
	margin: 0 !important;
}
.ed-coursepage-cta__title {
	font-family: var(--display);
	font-size: clamp(56px, 8vw, 144px);
	font-weight: 700;
	line-height: 0.96;
	letter-spacing: -0.035em;
	color: var(--paper);
	margin: 0;
	max-width: 14ch;
	text-wrap: balance;
}
.ed-coursepage-cta__title em {
	font-style: normal;
	font-weight: 700;
}
.ed-coursepage-cta__lede {
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.65;
	color: rgba(255,255,255,0.72);
	margin: 12px 0 0;
	max-width: 56ch;
}
.ed-coursepage-cta__actions {
	display: inline-flex;
	gap: 14px;
	margin-top: 32px;
	flex-wrap: wrap;
	justify-content: center;
}

@media (max-width: 660px) {
	.ed-coursepage-cta__title {
		font-size: clamp(40px, 11vw, 64px);
	}
	.ed-coursepage-cta__actions {
		flex-direction: column;
		width: 100%;
		max-width: 360px;
	}
}

/* ── 6. FAQ — clean accordion ────────────────────── */
.ed-root .ed-coursepage-faq {
	border-top: 1px solid var(--rule-soft);
}
.ed-coursepage-faq__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
	gap: clamp(56px, 7vw, 120px);
	max-width: 1640px;
	margin: 0 auto;
	align-items: start;
}

.ed-coursepage-faq__head {
	position: sticky;
	top: 120px;
}
.ed-coursepage-faq__head h2 {
	font-family: var(--display) !important;
	font-size: clamp(36px, 4.4vw, 56px) !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	letter-spacing: -0.025em !important;
	margin: 0 !important;
	color: var(--ink);
}

.ed-coursepage-faq__list {
	display: flex;
	flex-direction: column;
}

.ed-coursepage-faq__item {
	border-top: 1px solid var(--rule);
	padding: 32px 0;
	transition: background-color 0.3s ease;
}
.ed-coursepage-faq__item:last-child {
	border-bottom: 1px solid var(--rule);
}

.ed-coursepage-faq__item summary {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 24px;
	cursor: pointer;
	list-style: none;
}
.ed-coursepage-faq__item summary::-webkit-details-marker { display: none; }

.ed-coursepage-faq__q {
	font-family: var(--display);
	font-size: clamp(18px, 1.6vw, 22px);
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -0.015em;
	color: var(--ink);
	margin: 0;
}

.ed-coursepage-faq__icon {
	font-family: var(--display);
	font-size: 22px;
	font-weight: 400;
	color: var(--ink);
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.ed-coursepage-faq__item[open] .ed-coursepage-faq__icon {
	transform: rotate(45deg);
}

.ed-coursepage-faq__a {
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.7;
	color: var(--ink-soft);
	margin: 16px 0 0;
	max-width: 60ch;
	padding-right: 48px;
}

@media (max-width: 1080px) {
	.ed-coursepage-faq__inner {
		grid-template-columns: 1fr;
		gap: 48px;
	}
	.ed-coursepage-faq__head {
		position: static;
	}
}
@media (max-width: 660px) {
	.ed-coursepage-faq__item {
		padding: 24px 0;
	}
}

/* ═══════════════════════════════════════════════════════════
   LESSON PROGRESS — minimal monochrome bar
   3px tall, 999px radius, track + fill. Renders only when
   progress data exists. Animates width on scroll into view.
   ═══════════════════════════════════════════════════════════ */

/* Reusable progress component */
.ed-root .ed-progress {
	width: 100%;
	max-width: 240px;
	margin-top: 10px;
	display: block;
}

.ed-root .ed-progress__track {
	width: 100%;
	height: 3px;
	background: #E5E3DF;
	border-radius: 999px;
	overflow: hidden;
}

.ed-root .ed-progress__fill {
	display: block;
	height: 100%;
	width: 0;
	background: #0B0B0B;
	border-radius: 999px;
	transition: width 0.8s cubic-bezier(0.16, 1, 0.3, 1);
	will-change: width;
}

/* When animated state is added by JS, fill expands to its data-progress */
.ed-root .ed-progress.is-animated .ed-progress__fill {
	width: var(--progress, 0%);
}

/* Reduced motion — skip the animation, render at final width immediately */
@media (prefers-reduced-motion: reduce) {
	.ed-root .ed-progress__fill {
		transition: none !important;
		width: var(--progress, 0%);
	}
}

/* ── Lesson row layout — accommodate progress bar under title ── */

/* The new __lesson-main wrapper holds title + optional progress bar */
.ed-root .ed-coursepage-plan__lesson-main {
	display: flex;
	flex-direction: column;
	gap: 0;
	min-width: 0;
}

/* Re-grid the lesson row: num | main(title+progress) | duration | state */
.ed-root .ed-coursepage-plan__lesson {
	grid-template-columns: 80px minmax(0, 1fr) 80px 130px !important;
	align-items: center !important;
}

/* Locked rows with progress — muted visual state */
.ed-root .ed-coursepage-plan__lesson--locked.ed-coursepage-plan__lesson--has-progress
	.ed-progress__fill {
	background: var(--ink-mute);    /* #888 — clearly muted */
	opacity: 0.7;
}
.ed-root .ed-coursepage-plan__lesson--locked.ed-coursepage-plan__lesson--has-progress
	.ed-progress__track {
	background: rgba(229, 227, 223, 0.6);  /* lighter track too */
}

/* State text — uppercase, tight tracking, properly muted */
.ed-root .ed-coursepage-plan__lesson-state {
	font-feature-settings: "tnum";    /* tabular numbers for "65%" alignment */
}

/* Completed — keep ink color, weight 600 */
.ed-root .ed-coursepage-plan__lesson--completed .ed-coursepage-plan__lesson-state {
	color: var(--ink);
	font-weight: 600;
}
/* In progress — ink-soft */
.ed-root .ed-coursepage-plan__lesson--in-progress .ed-coursepage-plan__lesson-state {
	color: var(--ink-soft);
}
/* Not started — fully muted */
.ed-root .ed-coursepage-plan__lesson--not-started .ed-coursepage-plan__lesson-state {
	color: var(--ink-mute);
}

/* Mobile recalibration */
@media (max-width: 880px) {
	.ed-root .ed-coursepage-plan__lesson {
		grid-template-columns: auto minmax(0, 1fr) auto !important;
		gap: 12px;
	}
	.ed-root .ed-coursepage-plan__lesson-state {
		grid-column: 1 / -1;
		text-align: left;
		padding-top: 4px;
	}
	.ed-root .ed-progress {
		max-width: 100%;
	}
}

/* ═══════════════════════════════════════════════════════════
   COURSE HERO — final breathing-space polish
   Calm, spacious editorial layout. Wider grid, softer shadow,
   measured vertical rhythm in the copy column.
   ═══════════════════════════════════════════════════════════ */

/* ── 1. Section spacing ─────────────────────────────── */
.ed-root .ed-coursepage-hero {
	padding-top: clamp(120px, 12vw, 160px) !important;
	padding-bottom: clamp(100px, 10vw, 140px) !important;
}
@media (max-width: 880px) {
	.ed-root .ed-coursepage-hero {
		padding-top: 96px !important;
		padding-bottom: 80px !important;
	}
}

/* ── 8. Layout grid — 55:45 with generous gap ──────── */
.ed-root .ed-coursepage-hero__grid {
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) !important;  /* ≈ 56% / 44% */
	gap: clamp(80px, 9vw, 120px) !important;
	align-items: center !important;
	max-width: 1640px;
	margin: 0 auto;
}
@media (max-width: 1080px) {
	.ed-root .ed-coursepage-hero__grid {
		grid-template-columns: 1fr !important;
		gap: 56px !important;
	}
}

/* ── 2. Image block — radius + soft shadow + margin ── */
.ed-root .ed-coursepage-hero__photo {
	border-radius: 22px !important;            /* 20-24 range */
	box-shadow: 0 20px 60px rgba(0,0,0,0.06) !important;
	margin-right: 0;                            /* gap is on the grid, not this element */
	min-height: 600px !important;
}
@media (max-width: 1080px) {
	.ed-root .ed-coursepage-hero__photo {
		min-height: 520px !important;
	}
}

/* ── 3. Content block — vertical breathing ─────────── */
.ed-root .ed-coursepage-hero__copy {
	max-width: 600px !important;
	display: flex;
	flex-direction: column;
}
.ed-root .ed-coursepage-hero__eyebrow {
	margin: 0 0 28px !important;
}

/* ── 4. Title — line-height, max-width, calm wrap ─── */
.ed-root .ed-coursepage-hero__title {
	font-size: clamp(48px, 5.6vw, 80px) !important;
	line-height: 1.04 !important;
	letter-spacing: -0.028em !important;
	max-width: 560px !important;
	margin: 0 0 32px !important;
	text-wrap: balance;
}

/* ── 5. Description — soft color, contained width ── */
.ed-root .ed-coursepage-hero__lede {
	font-size: clamp(17px, 1.25vw, 18px) !important;
	line-height: 1.65 !important;
	color: #6F6F6F !important;                  /* softer than --ink-soft */
	max-width: 460px !important;                 /* 420-480 range */
	margin: 0 0 36px !important;
}

/* ── 6. Stats — wider gap + divider above ─────────── */
.ed-root .ed-coursepage-hero__stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(24px, 2.6vw, 40px) !important;
	border-top: 1px solid var(--rule) !important;
	padding-top: 28px !important;
	margin: 0 0 36px !important;
}
.ed-root .ed-coursepage-hero__stats > div {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.ed-root .ed-coursepage-hero__stats dt {
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-mute);
	margin: 0;
}
.ed-root .ed-coursepage-hero__stats dd {
	font-family: var(--display);
	font-size: 18px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--ink);
	margin: 0;
	line-height: 1.25;
}

@media (max-width: 660px) {
	.ed-root .ed-coursepage-hero__stats {
		grid-template-columns: 1fr 1fr;
		gap: 24px 32px !important;
	}
}

/* ── 7. Buttons — calm spacing, refined padding ──── */
.ed-root .ed-coursepage-hero__cta {
	display: inline-flex;
	gap: 14px !important;                       /* 12-16 range */
	flex-wrap: wrap;
	margin-top: 20px !important;                 /* 16-24 range */
}

/* Refined hero button padding (overrides nuclear lock for this section only) */
.ed-root .ed-coursepage-hero__cta .ed-btn,
.ed-root .ed-coursepage-hero__cta .ed-btn--ghost {
	padding: 18px 28px !important;
	min-height: 56px !important;
}

/* ═══════════════════════════════════════════════════════════
   LESSON PAGE — premium workout experience
   Real video player + rich details. Apple Fitness / Alo Moves
   inspired. Calm, structured, system-consistent.
   ═══════════════════════════════════════════════════════════ */

/* ── Section spacing — calm rhythm (40-60px between blocks) ── */
.ed-root .ed-lesson-hero {
	padding-top: clamp(96px, 10vw, 140px) !important;
	padding-bottom: clamp(40px, 4vw, 56px) !important;
}
.ed-root .ed-lesson-player {
	padding-top: 0 !important;
	padding-bottom: clamp(56px, 6vw, 80px) !important;
}
.ed-root .ed-lesson-details {
	padding-top: clamp(56px, 6vw, 80px) !important;
	padding-bottom: clamp(56px, 6vw, 80px) !important;
	border-top: 1px solid #E5E3DF;
}
.ed-root .ed-lesson-block {
	padding-top: clamp(48px, 5vw, 64px) !important;
	padding-bottom: clamp(48px, 5vw, 64px) !important;
	border-top: 1px solid #E5E3DF;
}
.ed-root .ed-lesson-block:last-of-type {
	padding-bottom: clamp(96px, 10vw, 140px) !important;
}

/* ── 1. Hero ───────────────────────────────────────── */
.ed-lesson-hero__inner {
	max-width: 1280px;
	margin: 0 auto;
}
.ed-lesson-hero__inner .ed-eyebrow {
	margin: 0 0 20px !important;
	display: inline-flex;
	gap: 10px;
	align-items: center;
}
.ed-lesson-hero__inner .ed-eyebrow span[aria-hidden="true"] {
	opacity: 0.45;
}
.ed-lesson-hero__title {
	font-family: var(--display);
	font-size: clamp(40px, 5vw, 72px);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.028em;
	color: var(--ink);
	margin: 0;
	max-width: 18ch;
	text-wrap: balance;
}

/* ── 2. Video player — 16:9, 20px radius, soft shadow ─ */
.ed-lesson-player__inner {
	max-width: 1280px;
	margin: 0 auto;
}

.ed-lesson-video {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	border-radius: 20px;
	overflow: hidden;
	background: var(--ink);
	box-shadow: 0 20px 60px rgba(0,0,0,0.08);
}

/* HTML5 video — fills container */
.ed-lesson-video__el {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	background: var(--ink);
	border: none;
	border-radius: inherit;
}

/* Embed iframe — fills container */
.ed-lesson-video--embed { background: var(--ink); }
.ed-lesson-video__iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

/* Soft dark overlay on hover (HTML5 only — embed has its own UI) */
.ed-lesson-video:not(.ed-lesson-video--embed):not(.ed-lesson-video--locked) .ed-lesson-video__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,0.20) 100%);
	opacity: 0;
	transition: opacity 0.4s cubic-bezier(0.2, 0.7, 0.3, 1);
	pointer-events: none;
	z-index: 1;
}
.ed-lesson-video:not(.ed-lesson-video--embed):not(.ed-lesson-video--locked):hover .ed-lesson-video__overlay {
	opacity: 1;
}

/* Center play button — visible until video plays, hides after */
.ed-lesson-video__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 88px;
	height: 88px;
	border-radius: 999px;
	background: rgba(255,255,255,0.95);
	color: var(--ink);
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 8px 24px rgba(0,0,0,0.18);
	transition:
		transform 0.45s cubic-bezier(0.2, 0.7, 0.3, 1),
		background 0.4s ease,
		opacity 0.4s ease;
	z-index: 2;
	pointer-events: auto;
}
.ed-lesson-video__play svg {
	margin-left: 4px;        /* optical centering of triangle */
}
.ed-lesson-video__play:hover {
	transform: translate(-50%, -50%) scale(1.08);
	background: var(--paper);
}
.ed-lesson-video__play:focus-visible {
	outline: 2px solid var(--ink);
	outline-offset: 4px;
}
/* When video starts playing, JS adds .is-playing — hides play button + overlay */
.ed-lesson-video.is-playing .ed-lesson-video__play,
.ed-lesson-video.is-playing .ed-lesson-video__overlay {
	opacity: 0;
	pointer-events: none;
}

/* Locked state */
.ed-lesson-video--locked {
	background-size: cover;
	background-position: center 30%;
}
.ed-lesson-video--locked::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.75) 100%);
	z-index: 1;
}
.ed-lesson-video__lock {
	position: relative;
	z-index: 2;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	color: var(--paper);
	padding: 40px 24px;
	gap: 12px;
}
.ed-lesson-video__lock h3 {
	font-family: var(--display);
	font-size: clamp(28px, 3vw, 40px);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.02em;
	margin: 0;
	color: var(--paper);
}
.ed-lesson-video__lock-text {
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.55;
	color: rgba(255,255,255,0.78);
	max-width: 48ch;
	margin: 0;
}
.ed-lesson-video__lock-cta {
	display: inline-flex;
	gap: 14px;
	margin-top: 16px;
	flex-wrap: wrap;
	justify-content: center;
}

/* ── 3. Lesson details — 2-col layout ──────────────── */
.ed-lesson-details__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: clamp(48px, 6vw, 96px);
	max-width: 1280px;
	margin: 0 auto;
	align-items: start;
}

.ed-lesson-details__copy .ed-eyebrow {
	margin: 0 0 20px !important;
}

.ed-lesson-details__prose {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.ed-lesson-details__prose p {
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.7;
	color: #6F6F6F;
	margin: 0;
}

/* Right meta column */
.ed-lesson-meta {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px 32px;
	margin: 0;
	padding-left: clamp(0px, 2vw, 24px);
	border-left: 1px solid #E5E3DF;
}
.ed-lesson-meta > div {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.ed-lesson-meta dt {
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: #6F6F6F;
	margin: 0;
}
.ed-lesson-meta dd {
	font-family: var(--display);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--ink);
	margin: 0;
	line-height: 1.3;
}

@media (max-width: 880px) {
	.ed-lesson-details__inner {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	.ed-lesson-meta {
		border-left: 0;
		padding-left: 0;
		border-top: 1px solid #E5E3DF;
		padding-top: 24px;
	}
}

/* ── 4-6. Lesson blocks (focus / equipment / approach) ─ */
.ed-lesson-block__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
	gap: clamp(40px, 5vw, 80px);
	max-width: 1280px;
	margin: 0 auto;
	align-items: start;
}

.ed-lesson-block__head .ed-eyebrow {
	margin: 0 0 16px !important;
}

.ed-lesson-block__title {
	font-family: var(--display);
	font-size: clamp(28px, 3vw, 40px) !important;
	font-weight: 700 !important;
	line-height: 1.1 !important;
	letter-spacing: -0.025em !important;
	color: var(--ink);
	margin: 0 !important;
	max-width: 16ch;
	text-wrap: balance;
}

/* Bullet list — minimal em-dash style, matching course page */
.ed-lesson-block__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
}
.ed-lesson-block__list li {
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.55;
	color: var(--ink);
	padding: 18px 0;
	border-bottom: 1px solid #E5E3DF;
	display: flex;
	align-items: baseline;
	gap: 16px;
}
.ed-lesson-block__list li::before {
	content: '—';
	color: #6F6F6F;
	font-weight: 500;
	flex-shrink: 0;
}
.ed-lesson-block__list li:first-child {
	border-top: 1px solid #E5E3DF;
}

/* "How to approach" — paragraph variant */
.ed-lesson-block--prose .ed-lesson-block__paragraph {
	font-family: var(--display);
	font-size: clamp(20px, 2.2vw, 28px);
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: -0.015em;
	color: var(--ink);
	margin: 0;
	max-width: 32ch;
	text-wrap: balance;
}

@media (max-width: 880px) {
	.ed-lesson-block__inner {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.ed-lesson-block__list li {
		font-size: 16px;
		padding: 16px 0;
	}
}

/* Reduced motion respect */
@media (prefers-reduced-motion: reduce) {
	.ed-lesson-video__play { transition: none !important; }
	.ed-lesson-video__overlay { transition: none !important; }
}
