/* =========================================================
   DESIGN TOKENS
   ========================================================= */

:root {

	/* Fonts */

	--font-display: "Cormorant Garamond", Georgia, serif;
	--font-body: "Manrope", Arial, sans-serif;


	/* Colors */

	--color-ink: #171512;
	--color-paper: #f2efe8;
	--color-ivory: #e8e3da;
	--color-muted: #726d65;
	--color-line: rgba(23, 21, 18, 0.17);
	--color-dark: #131210;
	--color-light: #f4f1ea;
	--color-champagne: #b4a083;
	--color-accent: #9d8969;


	/* Layout */

	--container: 1460px;
	--container-text: 780px;
	--side-padding: clamp(28px, 4vw, 76px);


	/* Spacing */

	--space-xs: 8px;
	--space-sm: 16px;
	--space-md: 32px;
	--space-lg: 64px;
	--space-xl: 112px;
	--space-xxl: 176px;


	/* Motion */

	--ease: cubic-bezier(.22, 1, .36, 1);
	--duration: 700ms;
}



/* =========================================================
   RESET
   ========================================================= */

*,
*::before,
*::after {
	box-sizing: border-box;
}


html {
	scroll-behavior: smooth;
}


body {
	margin: 0;

	background: var(--color-paper);
	color: var(--color-ink);

	font-family: var(--font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.65;

	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}


body.menu-open {
	overflow: hidden;
}


img,
video {
	display: block;

	max-width: 100%;
	height: auto;
}


a {
	color: inherit;
	text-decoration: none;
}


button,
input,
textarea,
select {
	font: inherit;
}


button {
	color: inherit;
}


h1,
h2,
h3,
h4,
h5,
h6,
p {
	margin-top: 0;
}


h1,
h2,
h3 {
	font-family: var(--font-display);
	font-weight: 400;
}



/* =========================================================
   GLOBAL TYPOGRAPHY
   ========================================================= */

h1 {
	font-size: clamp(64px, 8vw, 132px);
	line-height: .88;
	letter-spacing: -.035em;
}


h2 {
	font-size: clamp(50px, 5.5vw, 88px);
	line-height: .94;
	letter-spacing: -.025em;
}



/* =========================================================
   GLOBAL LAYOUT
   ========================================================= */

.container {
	width: min(
		calc(100% - var(--side-padding) * 2),
		var(--container)
	);

	margin-inline: auto;
}


.container--text {
	width: min(
		calc(100% - var(--side-padding) * 2),
		var(--container-text)
	);

	margin-inline: auto;
}


.site-main {
	padding-top: 140px;
	padding-bottom: 140px;
}


.anchor-placeholder {
	height: 0;
	overflow: hidden;
}


.section-kicker {
	margin: 0;

	font-size: 10px;
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: .17em;

	text-transform: uppercase;
}


.section-kicker--light {
	color: rgba(244, 241, 234, .58);
}



/* =========================================================
   HEADER
   ========================================================= */

.site-header {
	position: absolute;

	top: 0;
	left: 0;

	width: 100%;
	z-index: 100;

	color: var(--color-ink);

	background: transparent;
	border-bottom: 1px solid transparent;

	transform: translate3d(0, 0, 0);

	will-change: transform;

	-webkit-backdrop-filter: blur(0);
	backdrop-filter: blur(0);

	transition:
		transform 520ms var(--ease),
		background-color 360ms ease,
		border-color 360ms ease,
		backdrop-filter 360ms ease;
}


.site-header.is-scrolled {
	position: fixed;

	background: rgba(242, 239, 232, .86);

	border-bottom-color: rgba(23, 21, 18, .08);

	-webkit-backdrop-filter: blur(18px) saturate(115%);
	backdrop-filter: blur(18px) saturate(115%);
}


.site-header.is-hidden {
	transform: translate3d(0, calc(-100% - 2px), 0);
}


.site-header__inner {
	height: 90px;

	display: grid;

	grid-template-columns:
		minmax(0, 61fr)
		minmax(360px, 39fr);

	align-items: center;
}


.site-header.is-scrolled .site-header__inner {
	height: 70px;
}


.site-header__left {
	min-width: 0;

	display: flex;
	align-items: center;
	justify-content: space-between;

	gap: clamp(28px, 3vw, 54px);

	padding-left: var(--side-padding);
	padding-right: clamp(28px, 3vw, 54px);
}


.site-header__right {
	display: flex;
	align-items: center;
	justify-content: flex-end;

	padding-left: 22px;
	padding-right: var(--side-padding);
}


.site-logo {
	flex: 0 0 auto;

	font-family: var(--font-body);

	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .17em;

	white-space: nowrap;
}


.site-nav {
	min-width: 0;
}


.site-nav__list {
	display: flex;
	align-items: center;
	justify-content: flex-end;

	gap: clamp(20px, 1.8vw, 34px);

	margin: 0;
	padding: 0;

	list-style: none;
}


.site-nav__list a {
	position: relative;

	display: inline-block;

	font-size: 13px;
	font-weight: 500;
	line-height: 1;

	white-space: nowrap;
}


.site-nav__list a::after {
	content: "";

	position: absolute;

	left: 0;
	bottom: -8px;

	width: 100%;
	height: 1px;

	background: currentColor;

	transform: scaleX(0);
	transform-origin: right;

	transition: transform 450ms var(--ease);
}


.site-nav__list a:hover::after {
	transform: scaleX(1);
	transform-origin: left;
}


.site-header__cta {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;

	gap: 18px;

	min-height: 46px;

	padding:
		0
		18px
		0
		20px;

	border: 1px solid rgba(247, 245, 240, .18);

	background: rgba(19, 18, 16, .82);
	color: var(--color-light);

	-webkit-backdrop-filter: blur(12px) saturate(115%);
	backdrop-filter: blur(12px) saturate(115%);

	font-size: 11px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .09em;

	white-space: nowrap;

	box-shadow:
		0 1px 0 rgba(255, 255, 255, .04) inset;

	transition:
		background-color 360ms var(--ease),
		color 360ms var(--ease),
		border-color 360ms var(--ease);
}


.site-header.is-scrolled .site-header__cta {
	border-color: rgba(23, 21, 18, .14);

	background: var(--color-dark);
	color: var(--color-light);

	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}


.site-header__cta-arrow {
	display: inline-block;

	font-size: 13px;
	font-weight: 400;
	line-height: 1;

	transform: translate3d(0, 0, 0);

	transition:
		transform 420ms var(--ease);
}


.site-header__cta:hover,
.site-header__cta:focus-visible {
	border-color: rgba(23, 21, 18, .18);

	background: var(--color-champagne);
	color: var(--color-ink);
}


.site-header__cta:hover .site-header__cta-arrow,
.site-header__cta:focus-visible .site-header__cta-arrow {
	transform: translate3d(3px, -3px, 0);
}


.menu-toggle {
	display: none;

	padding: 0;

	border: 0;
	background: transparent;
}


.mobile-menu {
	display: none;
}


/* WordPress admin bar */

body.admin-bar .site-header.is-scrolled {
	top: 32px;
}



/* =========================================================
   EDITORIAL CTA
   ========================================================= */

.editorial-cta {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;

	gap: 8px;

	width: max-content;
	max-width: 100%;

	text-decoration: none;
}


.editorial-cta__main {
	position: relative;

	display: inline-flex;
	align-items: center;

	gap: 18px;

	padding-bottom: 9px;

	font-size: 13px;
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: .075em;

	white-space: nowrap;
}


.editorial-cta__main::after {
	content: "";

	position: absolute;

	left: 0;
	bottom: 0;

	width: 100%;
	height: 1px;

	background: currentColor;

	transform: scaleX(.62);
	transform-origin: left center;

	transition:
		transform 520ms var(--ease);
}


.editorial-cta:hover .editorial-cta__main::after,
.editorial-cta:focus-visible .editorial-cta__main::after {
	transform: scaleX(1);
}


.editorial-cta__arrow {
	display: inline-block;

	font-size: 14px;
	font-weight: 400;
	line-height: 1;

	transform: translate3d(0, 0, 0);

	transition:
		transform 420ms var(--ease);
}


.editorial-cta:hover .editorial-cta__arrow,
.editorial-cta:focus-visible .editorial-cta__arrow {
	transform: translate3d(3px, -3px, 0);
}


.editorial-cta__meta {
	font-size: 10px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: .06em;

	opacity: .60;
}


.editorial-cta--dark {
	color: var(--color-ink);
}


/* Hero: noticeably clearer, but still editorial and unboxed. */

.editorial-cta--hero .editorial-cta__main {
	font-size: 13px;
	letter-spacing: .085em;
}


.editorial-cta--hero .editorial-cta__main::after {
	transform: scaleX(.86);
}


.editorial-cta--hero .editorial-cta__meta {
	opacity: .78;
}


/* Primary conversion action: square, flat, private-club style. */

.editorial-cta--primary {
	min-width: 320px;

	gap: 10px;

	padding:
		17px
		20px
		15px;

	background: var(--color-dark);
	color: var(--color-light);

	transition:
		background-color 360ms ease,
		color 360ms ease,
		transform 420ms var(--ease);
}


.editorial-cta--primary .editorial-cta__main {
	width: 100%;

	justify-content: space-between;

	font-size: 12px;
	letter-spacing: .08em;
}


.editorial-cta--primary .editorial-cta__main::after {
	height: 1px;

	background: rgba(244, 241, 234, .46);

	transform: scaleX(1);
}


.editorial-cta--primary .editorial-cta__meta {
	color: rgba(244, 241, 234, .62);

	opacity: 1;
}


.editorial-cta--primary:hover,
.editorial-cta--primary:focus-visible {
	background: #1d1b18;

	transform: translateY(-2px);
}


/* Large editorial action.
   Used when the visitor already understands the context,
   but we do not want another filled button. */

.editorial-cta--action {
	width: min(100%, 460px);
}


.editorial-cta--action .editorial-cta__main {
	width: 100%;

	justify-content: space-between;

	font-size: 13px;
	letter-spacing: .08em;
}


.editorial-cta--action .editorial-cta__main::after {
	transform: scaleX(.88);
}


.editorial-cta--action .editorial-cta__meta {
	opacity: .70;
}


.editorial-cta--action:hover .editorial-cta__main::after,
.editorial-cta--action:focus-visible .editorial-cta__main::after {
	transform: scaleX(1);
}



/* =========================================================
   01. HERO
   ========================================================= */

.hero {
	position: relative;

	min-height: 100svh;

	background: var(--color-paper);

	overflow: hidden;
}


.hero__content {
	display: grid;

	grid-template-columns:
		minmax(0, 61fr)
		minmax(360px, 39fr);

	min-height: 100svh;
}


.hero__text {
	position: relative;
	z-index: 2;

	display: flex;
	flex-direction: column;
	justify-content: center;

	padding:
		clamp(146px, 13vh, 196px)
		var(--side-padding)
		clamp(90px, 10vh, 130px);

	border-right: 1px solid rgba(23, 21, 18, .08);
}


.hero__eyebrow {
	margin:
		0
		0
		clamp(44px, 5vh, 68px);

	padding-bottom: 14px;

	border-bottom: 1px solid var(--color-line);

	font-size: 10px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .17em;

	text-transform: uppercase;
}


.hero__title {
	max-width: 980px;

	margin: 0;

	font-family: var(--font-display);

	font-size: clamp(76px, 6.3vw, 124px);
	font-weight: 400;
	line-height: .87;
	letter-spacing: -.047em;
}


.hero__title span {
	display: block;
}


.hero__bottom {
	display: flex;
	align-items: baseline;
	justify-content: space-between;

	gap: 56px;

	margin-top: clamp(62px, 7vh, 94px);
}


.hero__statement {
	max-width: 510px;

	margin: 0;

	font-size: clamp(14px, .95vw, 16px);
	font-weight: 400;
	line-height: 1.68;

	color: #393631;
}


.hero__media {
	position: relative;

	min-height: 100svh;

	overflow: hidden;

	background: #cfcac1;
}


.hero__video {
	position: absolute;

	inset: 0;

	width: 100%;
	height: 100%;

	max-width: none;

	object-fit: cover;
	object-position: 50% 50%;

	background: #cfcac1;

	filter:
		saturate(.84)
		contrast(1.035)
		brightness(.97);
}


.hero__media-shade {
	position: absolute;

	inset: 0;

	pointer-events: none;

	background:
		linear-gradient(
			to bottom,
			rgba(16, 15, 13, .04) 0%,
			rgba(16, 15, 13, 0) 36%,
			rgba(16, 15, 13, .08) 100%
		);
}


.hero__scroll {
	position: absolute;

	left: var(--side-padding);
	bottom: 22px;

	z-index: 3;

	display: flex;
	align-items: center;

	gap: 14px;

	font-size: 9px;
	font-weight: 600;
	letter-spacing: .16em;

	text-transform: uppercase;
}


.hero__scroll-line {
	display: block;

	width: 44px;
	height: 1px;

	background: var(--color-ink);
}



/* =========================================================
   02. PROBLEM
   ========================================================= */

.problem-section {
	padding:
		clamp(126px, 12vw, 204px)
		0;

	background: var(--color-dark);
	color: var(--color-light);
}


.problem-section .section-kicker {
	margin-bottom: clamp(66px, 7vw, 108px);
}


.problem-section__grid {
	display: grid;

	grid-template-columns:
		minmax(0, 1.64fr)
		minmax(300px, .66fr);

	gap: clamp(72px, 10vw, 170px);

	align-items: center;
}


.problem-section__title {
	max-width: 900px;

	margin: 0;

	font-family: var(--font-display);

	font-size: clamp(58px, 5vw, 86px);
	font-weight: 400;
	line-height: .94;
	letter-spacing: -.036em;
}


.problem-section__copy {
	max-width: 430px;

	transform: translateY(28px);
}


.problem-section__copy p {
	margin: 0;

	font-size: 15px;
	font-weight: 400;
	line-height: 1.82;

	color: rgba(244, 241, 234, .68);
}


.problem-section__accent {
	margin-top: 26px !important;

	color: rgba(244, 241, 234, .94) !important;
}


.text-link {
	display: inline-flex;
	align-items: center;

	gap: 18px;

	margin-top: 44px;
	padding-bottom: 8px;

	border-bottom: 1px solid rgba(244, 241, 234, .45);

	font-size: 11px;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: .08em;

	text-transform: uppercase;

	transition:
		border-color 320ms ease;
}


.text-link--strong {
	margin-top: 50px;

	padding-bottom: 10px;

	border-bottom-color: rgba(244, 241, 234, .92);

	font-size: 13px;
	color: rgba(244, 241, 234, 1);
}


.text-link:hover,
.text-link:focus-visible {
	border-color: currentColor;
}


.text-link span:last-child {
	display: inline-block;

	transition:
		transform 380ms var(--ease);
}


.text-link:hover span:last-child,
.text-link:focus-visible span:last-child {
	transform: translate3d(3px, 3px, 0);
}



/* =========================================================
   03. METHOD
   ========================================================= */

.method-section {
	scroll-margin-top: 90px;

	padding:
		clamp(118px, 11vw, 188px)
		0
		clamp(128px, 12vw, 208px);

	background: var(--color-paper);
	color: var(--color-ink);
}


.method-section__head {
	display: grid;

	grid-template-columns:
		minmax(230px, .62fr)
		minmax(0, 1.38fr);

	gap: clamp(52px, 8vw, 132px);

	margin-bottom: clamp(86px, 9vw, 146px);
}


.method-section__intro {
	display: grid;

	grid-template-columns:
		minmax(0, 1.35fr)
		minmax(260px, .65fr);

	gap: clamp(48px, 7vw, 112px);

	align-items: end;
}


.method-section__title {
	max-width: 760px;

	margin: 0;

	font-family: var(--font-display);

	font-size: clamp(54px, 4.9vw, 84px);
	font-weight: 400;
	line-height: .95;
	letter-spacing: -.034em;
}


.method-section__lead {
	max-width: 390px;

	margin: 0;

	font-size: 14px;
	font-weight: 400;
	line-height: 1.78;

	color: var(--color-muted);
}


.method-list {
	border-bottom: 1px solid var(--color-line);
}


.method-item {
	position: relative;

	display: grid;

	grid-template-columns:
		64px
		minmax(270px, .86fr)
		minmax(330px, 1.14fr);

	gap: clamp(28px, 4vw, 64px);

	align-items: center;

	min-height: clamp(142px, 12vw, 190px);

	border-top: 1px solid var(--color-line);
}


.method-item::before {
	content: "";

	position: absolute;

	inset: 0;

	z-index: 0;

	background: rgba(180, 160, 131, .12);

	transform: scaleY(0);
	transform-origin: bottom;

	transition:
		transform 480ms var(--ease);
}


.method-item > * {
	position: relative;
	z-index: 1;
}


.method-item:hover::before {
	transform: scaleY(1);
}


.method-item__number {
	align-self: start;

	padding-top: 36px;

	font-size: 9px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .12em;

	color: var(--color-muted);
}


.method-item__title {
	margin: 0;

	font-family: var(--font-display);

	font-size: clamp(58px, 5.3vw, 92px);
	font-weight: 400;
	line-height: .88;
	letter-spacing: -.04em;

	transition:
		transform 460ms var(--ease);
}


.method-item:hover .method-item__title {
	transform: translateX(10px);
}


.method-item__text {
	max-width: 470px;

	margin: 0;

	font-size: 14px;
	font-weight: 400;
	line-height: 1.72;

	color: #393631;
}



/* =========================================================
   04. DIAGNOSTIC
   ========================================================= */

.diagnostic-section {
	display: grid;

	grid-template-columns:
		minmax(0, 46fr)
		minmax(0, 54fr);

	min-height: clamp(780px, 92svh, 1000px);

	background: var(--color-champagne);
	color: var(--color-ink);

	overflow: hidden;
}


.diagnostic-section__media {
	position: relative;

	min-width: 0;
	min-height: inherit;

	overflow: hidden;

	background: #27231f;
}


.diagnostic-section__video {
	position: absolute;

	inset: 0;

	width: 100%;
	height: 100%;

	max-width: none;

	object-fit: cover;
	object-position: 50% 48%;

	filter:
		saturate(.78)
		contrast(1.04)
		brightness(.92);
}


.diagnostic-section__shade {
	position: absolute;

	inset: 0;

	pointer-events: none;

	background:
		linear-gradient(
			to bottom,
			rgba(13, 12, 10, .02) 0%,
			rgba(13, 12, 10, .03) 58%,
			rgba(13, 12, 10, .12) 100%
		);
}


.diagnostic-section__content {
	min-width: 0;

	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		minmax(240px, .62fr);

	grid-template-areas:
		"kicker kicker"
		"title title"
		"copy outcomes"
		". cta";

	column-gap: clamp(44px, 5vw, 84px);
	row-gap: clamp(38px, 4.2vw, 68px);

	align-content: center;

	padding:
		clamp(68px, 5.4vw, 98px)
		clamp(50px, 5vw, 90px);
}


.diagnostic-section__content > .section-kicker {
	grid-area: kicker;
}


.diagnostic-section__title {
	grid-area: title;

	max-width: 820px;

	margin: 0;

	font-family: var(--font-display);

	font-size: clamp(66px, 5.45vw, 106px);
	font-weight: 400;
	line-height: .9;
	letter-spacing: -.043em;
}


.diagnostic-section__copy {
	grid-area: copy;

	max-width: 440px;

	margin: 0;

	font-size: 15px;
	font-weight: 400;
	line-height: 1.78;

	color: rgba(23, 21, 18, .74);
}


.diagnostic-section__outcomes {
	grid-area: outcomes;

	align-self: start;

	border-top: 1px solid rgba(23, 21, 18, .24);
}


.diagnostic-outcome {
	display: grid;

	grid-template-columns: 34px 1fr;

	gap: 12px;

	padding:
		14px
		0;

	border-bottom: 1px solid rgba(23, 21, 18, .18);
}


.diagnostic-outcome__label {
	font-size: 9px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .10em;

	color: rgba(23, 21, 18, .50);
}


.diagnostic-outcome__value {
	font-size: 11px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: .06em;

	text-transform: uppercase;
}


.diagnostic-section__cta {
	grid-area: cta;

	justify-self: end;
}



/* =========================================================
   05. PROGRAMS
   ========================================================= */

.programs-section {
	scroll-margin-top: 90px;

	padding:
		clamp(122px, 11vw, 190px)
		0
		clamp(130px, 12vw, 210px);

	background: var(--color-dark);
	color: var(--color-light);
}


.programs-section__head {
	display: grid;

	grid-template-columns:
		minmax(230px, .62fr)
		minmax(0, 1.38fr);

	gap: clamp(52px, 8vw, 132px);

	margin-bottom: clamp(88px, 9vw, 148px);
}


.programs-section__intro {
	display: grid;

	grid-template-columns:
		minmax(0, 1.38fr)
		minmax(260px, .62fr);

	gap: clamp(48px, 7vw, 112px);

	align-items: end;
}


.programs-section__title {
	max-width: 820px;

	margin: 0;

	font-family: var(--font-display);

	font-size: clamp(54px, 4.8vw, 84px);
	font-weight: 400;
	line-height: .95;
	letter-spacing: -.034em;
}


.programs-section__lead {
	max-width: 390px;

	margin: 0;

	font-size: 14px;
	font-weight: 400;
	line-height: 1.78;

	color: rgba(244, 241, 234, .62);
}


.programs-list {
	border-bottom: 1px solid rgba(244, 241, 234, .18);
}


.program-item {
	position: relative;

	display: grid;

	grid-template-columns:
		64px
		minmax(330px, .92fr)
		minmax(300px, .86fr)
		42px;

	gap: clamp(28px, 4vw, 64px);

	align-items: center;

	min-height: clamp(150px, 12.5vw, 198px);

	border-top: 1px solid rgba(244, 241, 234, .18);

	overflow: hidden;
}


.program-item::before {
	content: "";

	position: absolute;

	inset: 0;

	background: var(--color-champagne);

	transform: translateY(102%);

	transition:
		transform 520ms var(--ease);
}


.program-item > * {
	position: relative;
	z-index: 1;
}


.program-item:hover::before,
.program-item:focus-visible::before {
	transform: translateY(0);
}


.program-item__number {
	align-self: start;

	padding-top: 38px;

	font-size: 9px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .12em;

	color: rgba(244, 241, 234, .50);

	transition:
		color 360ms ease;
}


.program-item__title {
	font-family: var(--font-display);

	font-size: clamp(54px, 4.7vw, 82px);
	font-weight: 400;
	line-height: .9;
	letter-spacing: -.038em;

	transition:
		color 360ms ease,
		transform 460ms var(--ease);
}


.program-item__text {
	max-width: 390px;

	font-size: 14px;
	font-weight: 400;
	line-height: 1.72;

	color: rgba(244, 241, 234, .66);

	transition:
		color 360ms ease;
}


.program-item__arrow {
	justify-self: end;

	font-size: 18px;
	line-height: 1;

	transition:
		color 360ms ease,
		transform 420ms var(--ease);
}


.program-item:hover .program-item__number,
.program-item:hover .program-item__title,
.program-item:hover .program-item__text,
.program-item:hover .program-item__arrow,
.program-item:focus-visible .program-item__number,
.program-item:focus-visible .program-item__title,
.program-item:focus-visible .program-item__text,
.program-item:focus-visible .program-item__arrow {
	color: var(--color-ink);
}


.program-item:hover .program-item__title,
.program-item:focus-visible .program-item__title {
	transform: translateX(10px);
}


.program-item:hover .program-item__arrow,
.program-item:focus-visible .program-item__arrow {
	transform: translate3d(4px, -4px, 0);
}


.programs-section__footer {
	display: flex;
	align-items: center;
	justify-content: flex-end;

	gap: 34px;

	margin-top: 54px;
}


.programs-section__footer p {
	margin: 0;

	font-size: 12px;
	font-weight: 400;

	color: rgba(244, 241, 234, .52);
}


.programs-section__cta {
	width: min(100%, 470px);

	margin-top: 0;
}



/* =========================================================
   06. WHEN IT MATTERS
   ========================================================= */

.situations-section {
	padding:
		clamp(122px, 11vw, 194px)
		0
		clamp(126px, 12vw, 206px);

	background: var(--color-paper);
	color: var(--color-ink);
}


.situations-section__head {
	display: grid;

	grid-template-columns:
		minmax(220px, .58fr)
		minmax(0, 1.42fr);

	gap: clamp(54px, 8vw, 136px);

	align-items: start;

	margin-bottom: clamp(86px, 9vw, 148px);
}


.situations-section__title {
	max-width: 960px;

	margin: 0;

	font-family: var(--font-display);

	font-size: clamp(56px, 5.2vw, 90px);
	font-weight: 400;
	line-height: .94;
	letter-spacing: -.037em;
}


.situations-list {
	border-bottom: 1px solid var(--color-line);
}


.situation-item {
	position: relative;

	display: grid;

	grid-template-columns:
		64px
		minmax(300px, .82fr)
		minmax(320px, 1.18fr);

	gap: clamp(28px, 4vw, 64px);

	align-items: center;

	min-height: clamp(130px, 11vw, 176px);

	border-top: 1px solid var(--color-line);

	overflow: hidden;
}


.situation-item::before {
	content: "";

	position: absolute;

	inset: 0;

	background: rgba(180, 160, 131, .11);

	transform: translateY(102%);

	transition:
		transform 500ms var(--ease);
}


.situation-item > * {
	position: relative;
	z-index: 1;
}


.situation-item:hover::before {
	transform: translateY(0);
}


.situation-item__number {
	align-self: start;

	padding-top: 34px;

	font-size: 9px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .12em;

	color: var(--color-muted);
}


.situation-item__title {
	margin: 0;

	font-family: var(--font-display);

	font-size: clamp(52px, 4.7vw, 82px);
	font-weight: 400;
	line-height: .9;
	letter-spacing: -.038em;

	transition:
		transform 440ms var(--ease);
}


.situation-item:hover .situation-item__title {
	transform: translateX(10px);
}


.situation-item__text {
	max-width: 500px;

	margin: 0;

	font-size: 14px;
	font-weight: 400;
	line-height: 1.75;

	color: #393631;
}


.situations-section__footer {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		auto;

	gap: 48px;

	align-items: end;

	margin-top: 58px;
}


.situations-section__footer p {
	max-width: 420px;

	margin: 0;

	font-size: 14px;
	font-weight: 400;
	line-height: 1.7;

	color: var(--color-muted);
}


.situations-section__cta {
	width: min(100%, 470px);
}



/* =========================================================
   RESPONSIVE — SITUATIONS
   ========================================================= */

@media (max-width: 1140px) {

	.situations-section__head {
		grid-template-columns: 1fr;

		gap: 46px;
	}


	.situation-item {
		grid-template-columns:
			48px
			minmax(250px, .8fr)
			minmax(300px, 1fr);

		gap: 28px;

		padding:
			30px
			0;
	}


	.situation-item__number {
		padding-top: 10px;
	}

}


@media (max-width: 700px) {

	.situations-section {
		padding:
			94px
			0
			108px;
	}


	.situations-section__head {
		gap: 38px;

		margin-bottom: 70px;
	}


	.situations-section__title {
		font-size: clamp(48px, 13vw, 66px);
	}


	.situation-item {
		grid-template-columns:
			36px
			1fr;

		gap:
			10px
			18px;

		min-height: auto;

		padding:
			34px
			0
			38px;
	}


	.situation-item::before {
		display: none;
	}


	.situation-item__number {
		grid-column: 1;

		padding-top: 8px;
	}


	.situation-item__title {
		grid-column: 2;

		font-size: clamp(50px, 15vw, 70px);
	}


	.situation-item:hover .situation-item__title {
		transform: none;
	}


	.situation-item__text {
		grid-column:
			2
			/
			3;

		margin-top: 14px;

		font-size: 14px;
	}


	.situations-section__footer {
		grid-template-columns: 1fr;

		gap: 32px;

		margin-top: 44px;
	}


	.situations-section__footer p {
		max-width: none;
	}

}



/* =========================================================
   07. RESULTS / CASES
   ========================================================= */

.results-section {
	scroll-margin-top: 90px;

	padding:
		clamp(124px, 11vw, 194px)
		0
		clamp(132px, 12vw, 214px);

	background: var(--color-dark);
	color: var(--color-light);
}


.results-section__head {
	display: grid;

	grid-template-columns:
		minmax(220px, .58fr)
		minmax(0, 1.42fr);

	gap: clamp(54px, 8vw, 136px);

	margin-bottom: clamp(88px, 9vw, 150px);
}


.results-section__intro {
	display: grid;

	grid-template-columns:
		minmax(0, 1.34fr)
		minmax(260px, .66fr);

	gap: clamp(48px, 7vw, 112px);

	align-items: end;
}


.results-section__title {
	max-width: 800px;

	margin: 0;

	font-family: var(--font-display);

	font-size: clamp(56px, 5vw, 86px);
	font-weight: 400;
	line-height: .94;
	letter-spacing: -.036em;
}


.results-section__lead {
	max-width: 390px;

	margin: 0;

	font-size: 14px;
	line-height: 1.78;

	color: rgba(244, 241, 234, .62);
}


.results-grid {
	display: grid;

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

	gap: 34px;
}


.result-card {
	display: flex;
	flex-direction: column;

	min-width: 0;

	border-top: 1px solid rgba(244, 241, 234, .18);
}


.result-card--wide {
	grid-column: 1 / -1;
}


.result-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;

	gap: 20px;

	padding:
		14px
		0;

	font-size: 9px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .12em;

	text-transform: uppercase;

	color: rgba(244, 241, 234, .48);
}


.result-card__media-pair {
	display: grid;

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

	gap: 14px;
}


.result-media {
	position: relative;

	aspect-ratio: 4 / 5;

	overflow: hidden;

	background: #211f1c;
}


.result-card--wide .result-media {
	aspect-ratio: 16 / 10;
}


.result-media--placeholder {
	display: flex;
	flex-direction: column;
	justify-content: space-between;

	padding: 24px;

	border: 1px solid rgba(244, 241, 234, .12);

	background:
		linear-gradient(
			135deg,
			rgba(180, 160, 131, .08),
			rgba(255, 255, 255, .015)
		);
}


.result-media__label {
	font-family: var(--font-display);

	font-size: clamp(46px, 4vw, 72px);
	font-weight: 400;
	line-height: 1;

	color: rgba(244, 241, 234, .82);
}


.result-media__hint {
	font-size: 9px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .10em;

	text-transform: uppercase;

	color: rgba(244, 241, 234, .36);
}


.result-card__body {
	padding:
		30px
		0
		18px;
}


.result-card__title {
	margin:
		0
		0
		26px;

	font-family: var(--font-display);

	font-size: clamp(42px, 3.6vw, 64px);
	font-weight: 400;
	line-height: .95;
	letter-spacing: -.032em;
}


.result-card__details {
	display: grid;

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

	gap: 34px;
}


.result-card__label {
	display: block;

	margin-bottom: 10px;

	font-size: 9px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .10em;

	text-transform: uppercase;

	color: rgba(244, 241, 234, .42);
}


.result-card__details p,
.result-card__summary {
	margin: 0;

	font-size: 13px;
	line-height: 1.7;

	color: rgba(244, 241, 234, .66);
}


.results-section__footer {
	display: flex;
	justify-content: flex-end;

	margin-top: 52px;
}


.results-section__footer p {
	max-width: 420px;

	margin: 0;

	font-size: 12px;
	line-height: 1.7;

	color: rgba(244, 241, 234, .42);
}



/* =========================================================
   08. AUTHORITY / REGALIA
   ========================================================= */

.authority-section {
	padding:
		clamp(122px, 11vw, 190px)
		0
		clamp(126px, 12vw, 206px);

	background: var(--color-champagne);
	color: var(--color-ink);
}


.authority-section__head {
	display: grid;

	grid-template-columns:
		minmax(220px, .58fr)
		minmax(0, 1.42fr);

	gap: clamp(54px, 8vw, 136px);

	margin-bottom: clamp(82px, 8vw, 132px);
}


.authority-section__intro {
	display: grid;

	grid-template-columns:
		minmax(0, 1.34fr)
		minmax(260px, .66fr);

	gap: clamp(48px, 7vw, 112px);

	align-items: end;
}


.authority-section__title {
	max-width: 860px;

	margin: 0;

	font-family: var(--font-display);

	font-size: clamp(56px, 5vw, 86px);
	font-weight: 400;
	line-height: .94;
	letter-spacing: -.036em;
}


.authority-section__lead {
	max-width: 380px;

	margin: 0;

	font-size: 14px;
	line-height: 1.75;

	color: rgba(23, 21, 18, .64);
}


.authority-feature {
	display: grid;

	grid-template-columns:
		64px
		minmax(180px, .5fr)
		minmax(0, 1.5fr);

	gap: clamp(28px, 4vw, 64px);

	align-items: end;

	padding:
		34px
		0
		46px;

	border-top: 1px solid rgba(23, 21, 18, .28);
	border-bottom: 1px solid rgba(23, 21, 18, .28);
}


.authority-feature__number {
	align-self: start;

	padding-top: 10px;

	font-size: 9px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .12em;

	color: rgba(23, 21, 18, .48);
}


.authority-feature__label {
	margin: 0;

	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .08em;

	text-transform: uppercase;
}


.authority-feature__title {
	margin: 0;

	font-family: var(--font-display);

	font-size: clamp(58px, 5.4vw, 96px);
	font-weight: 400;
	line-height: .9;
	letter-spacing: -.04em;
}


.authority-list {
	border-bottom: 1px solid rgba(23, 21, 18, .22);
}


.authority-item {
	display: grid;

	grid-template-columns:
		minmax(130px, .34fr)
		minmax(0, 1.46fr)
		80px;

	gap: 28px;

	align-items: center;

	min-height: 92px;

	border-top: 1px solid rgba(23, 21, 18, .18);
}


.authority-item__type,
.authority-item__year {
	font-size: 9px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .11em;

	text-transform: uppercase;

	color: rgba(23, 21, 18, .50);
}


.authority-item__name {
	font-family: var(--font-display);

	font-size: clamp(28px, 2.4vw, 42px);
	font-weight: 400;
	line-height: 1.05;
	letter-spacing: -.022em;
}


.authority-item__year {
	justify-self: end;
}



/* =========================================================
   09. TESTIMONIALS
   ========================================================= */

.testimonials-section {
	padding:
		clamp(122px, 11vw, 190px)
		0
		clamp(132px, 12vw, 212px);

	background: var(--color-paper);
	color: var(--color-ink);
}


.testimonials-section__head {
	display: grid;

	grid-template-columns:
		minmax(220px, .58fr)
		minmax(0, 1.42fr);

	gap: clamp(54px, 8vw, 136px);

	align-items: start;

	margin-bottom: clamp(84px, 8vw, 136px);
}


.testimonials-section__title {
	max-width: 900px;

	margin: 0;

	font-family: var(--font-display);

	font-size: clamp(56px, 5vw, 86px);
	font-weight: 400;
	line-height: .94;
	letter-spacing: -.036em;
}


.testimonials-grid {
	display: grid;

	grid-template-columns:
		minmax(0, 1.25fr)
		minmax(0, .75fr);

	gap: 32px;
}


.testimonial {
	display: flex;
	flex-direction: column;
	justify-content: space-between;

	min-height: 330px;

	margin: 0;
	padding:
		34px
		0
		26px;

	border-top: 1px solid var(--color-line);
	border-bottom: 1px solid var(--color-line);
}


.testimonial--featured {
	grid-row: span 2;

	min-height: 692px;

	padding:
		48px
		0
		34px;
}


.testimonial__quote {
	max-width: 670px;

	margin: 0;

	font-family: var(--font-display);

	font-size: clamp(32px, 3.1vw, 54px);
	font-weight: 400;
	line-height: 1.08;
	letter-spacing: -.026em;
}


.testimonial--featured .testimonial__quote {
	font-size: clamp(44px, 4.2vw, 72px);
	line-height: 1.02;
}


.testimonial__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;

	gap: 24px;

	margin-top: 48px;

	font-size: 10px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: .08em;

	text-transform: uppercase;
}


.testimonial__program {
	color: var(--color-muted);
}



/* =========================================================
   RESPONSIVE — RESULTS / AUTHORITY / TESTIMONIALS
   ========================================================= */

@media (max-width: 1140px) {

	.results-section__head,
	.authority-section__head,
	.testimonials-section__head {
		grid-template-columns: 1fr;

		gap: 46px;
	}


	.results-section__intro,
	.authority-section__intro {
		grid-template-columns:
			minmax(0, 1.2fr)
			minmax(260px, .8fr);
	}


	.authority-feature {
		grid-template-columns:
			48px
			180px
			1fr;
	}


	.testimonials-grid {
		grid-template-columns: 1fr;
	}


	.testimonial--featured {
		grid-row: auto;

		min-height: 520px;
	}

}


@media (max-width: 700px) {

	.results-section,
	.authority-section,
	.testimonials-section {
		padding:
			96px
			0
			108px;
	}


	.results-section__head,
	.authority-section__head,
	.testimonials-section__head {
		gap: 38px;

		margin-bottom: 70px;
	}


	.results-section__intro,
	.authority-section__intro {
		grid-template-columns: 1fr;

		gap: 30px;
	}


	.results-section__title,
	.authority-section__title,
	.testimonials-section__title {
		font-size: clamp(48px, 13vw, 66px);
	}


	.results-grid {
		grid-template-columns: 1fr;
	}


	.result-card--wide {
		grid-column: auto;
	}


	.result-card__media-pair {
		grid-template-columns: 1fr;
	}


	.result-card--wide .result-media,
	.result-media {
		aspect-ratio: 4 / 5;
	}


	.result-card__details {
		grid-template-columns: 1fr;

		gap: 24px;
	}


	.authority-feature {
		grid-template-columns:
			36px
			1fr;

		gap:
			14px
			18px;
	}


	.authority-feature__number {
		grid-column: 1;
		grid-row: 1 / 3;
	}


	.authority-feature__label,
	.authority-feature__title {
		grid-column: 2;
	}


	.authority-feature__title {
		font-size: clamp(50px, 14vw, 72px);
	}


	.authority-item {
		grid-template-columns:
			1fr
			auto;

		gap:
			6px
			20px;

		padding:
			22px
			0;
	}


	.authority-item__type {
		grid-column: 1;
	}


	.authority-item__name {
		grid-column: 1;

		font-size: 30px;
	}


	.authority-item__year {
		grid-column: 2;
		grid-row: 1 / 3;

		align-self: center;
	}


	.testimonial,
	.testimonial--featured {
		min-height: auto;

		padding:
			34px
			0;
	}


	.testimonial__quote,
	.testimonial--featured .testimonial__quote {
		font-size: clamp(34px, 10vw, 48px);
	}


	.testimonial__footer {
		align-items: flex-start;
		flex-direction: column;

		gap: 8px;

		margin-top: 40px;
	}

}



/* =========================================================
   IMAGE BREAKS
   ========================================================= */

.image-break {
	background: var(--color-paper);
	color: var(--color-ink);
}


.image-break--stage {
	padding: 0;
}


.image-break__media {
	position: relative;

	overflow: hidden;
}


.image-break--stage .image-break__media {
	aspect-ratio: 2.15 / 1;
}


.image-break__media--placeholder {
	display: flex;
	align-items: flex-end;

	background:
		linear-gradient(
			135deg,
			rgba(180, 160, 131, .22),
			rgba(23, 21, 18, .06)
		);
}


.image-break__placeholder-content {
	width: 100%;

	display: grid;

	grid-template-columns:
		90px
		minmax(0, 1fr)
		minmax(220px, .48fr);

	gap: 28px;

	align-items: end;

	padding:
		clamp(28px, 3vw, 54px)
		var(--side-padding);

	border-top: 1px solid rgba(23, 21, 18, .16);
}


.image-break__index {
	font-size: 9px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .14em;

	color: rgba(23, 21, 18, .48);
}


.image-break__placeholder-title {
	font-family: var(--font-display);

	font-size: clamp(36px, 3.6vw, 62px);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -.03em;
}


.image-break__placeholder-note {
	justify-self: end;

	max-width: 360px;

	font-size: 10px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: .08em;

	text-transform: uppercase;
	text-align: right;

	color: rgba(23, 21, 18, .50);
}


.image-break--speaker {
	padding:
		clamp(112px, 10vw, 170px)
		0;

	background: var(--color-paper);
}


.image-break__split {
	display: grid;

	grid-template-columns:
		minmax(0, .68fr)
		minmax(420px, 1.32fr);

	gap: clamp(60px, 9vw, 150px);

	align-items: end;
}


.image-break__statement {
	padding-bottom: 20px;
}


.image-break__statement-text {
	max-width: 500px;

	margin:
		48px
		0
		0;

	font-family: var(--font-display);

	font-size: clamp(42px, 4.1vw, 70px);
	font-weight: 400;
	line-height: 1.02;
	letter-spacing: -.032em;
}


.image-break--speaker .image-break__media {
	aspect-ratio: 4 / 5;
}


.image-break--speaker .image-break__placeholder-content {
	grid-template-columns: 1fr;
	gap: 12px;

	padding:
		28px;
}


.image-break--speaker .image-break__placeholder-note {
	justify-self: start;

	max-width: 340px;

	text-align: left;
}



/* =========================================================
   EDITORIAL CTA — LIGHT
   ========================================================= */

.editorial-cta--light {
	color: var(--color-light);
}



/* =========================================================
   RESULTS CTA — stronger presence
   ========================================================= */

.results-section__footer {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		auto;

	gap: 48px;

	align-items: end;

	margin-top: 58px;
}


.results-section__footer p {
	max-width: 430px;

	margin: 0;

	font-size: 12px;
	line-height: 1.7;

	color: rgba(244, 241, 234, .42);
}


.results-section__cta .editorial-cta__main {
	font-size: 13px;
}


.results-section__cta .editorial-cta__meta {
	color: rgba(244, 241, 234, .52);
}



/* =========================================================
   AUTHORITY — VISUAL FEATURE
   ========================================================= */

.authority-feature {
	display: grid;

	grid-template-columns:
		minmax(360px, .88fr)
		minmax(0, 1.12fr);

	gap: clamp(56px, 8vw, 132px);

	align-items: stretch;

	padding:
		0
		0
		clamp(68px, 7vw, 110px);

	border-top: 1px solid rgba(23, 21, 18, .28);
	border-bottom: 0;
}


.authority-feature__media {
	position: relative;

	aspect-ratio: 4 / 5;

	overflow: hidden;
}


.authority-feature__media--placeholder {
	display: flex;
	align-items: flex-end;

	background:
		linear-gradient(
			145deg,
			rgba(23, 21, 18, .18),
			rgba(244, 241, 234, .16)
		);
}


.authority-feature__media-content {
	width: 100%;

	display: flex;
	flex-direction: column;

	gap: 10px;

	padding: 26px;

	border-top: 1px solid rgba(23, 21, 18, .20);
}


.authority-feature__media-index {
	font-size: 9px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .12em;

	color: rgba(23, 21, 18, .48);
}


.authority-feature__media-title {
	font-family: var(--font-display);

	font-size: clamp(34px, 3vw, 50px);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -.03em;
}


.authority-feature__media-note {
	margin-top: 2px;

	font-size: 9px;
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: .08em;

	text-transform: uppercase;

	color: rgba(23, 21, 18, .48);
}


.authority-feature__content {
	align-self: center;

	display: grid;

	grid-template-columns:
		64px
		1fr;

	column-gap: 24px;
	row-gap: 20px;

	padding:
		clamp(34px, 4vw, 64px)
		0;
}


.authority-feature__number {
	grid-column: 1;
	grid-row: 1 / 5;

	align-self: start;

	padding-top: 9px;
}


.authority-feature__label,
.authority-feature__title,
.authority-feature__description {
	grid-column: 2;
}


.authority-feature__label {
	margin: 0;
}


.authority-feature__title {
	margin: 0;
}


.authority-feature__description {
	max-width: 520px;

	margin: 10px 0 0;

	font-size: 14px;
	line-height: 1.75;

	color: rgba(23, 21, 18, .64);
}



/* =========================================================
   RESPONSIVE — IMAGE BREAKS / AUTHORITY / RESULTS CTA
   ========================================================= */

@media (max-width: 1140px) {

	.image-break__split {
		grid-template-columns: 1fr;

		gap: 54px;
	}


	.image-break--speaker .image-break__media {
		aspect-ratio: 16 / 10;
	}


	.authority-feature {
		grid-template-columns:
			minmax(300px, .85fr)
			minmax(0, 1.15fr);

		gap: 54px;
	}


	.results-section__footer {
		grid-template-columns: 1fr;

		gap: 32px;
	}


	.results-section__cta {
		justify-self: start;
	}

}


@media (max-width: 700px) {

	.image-break--stage .image-break__media,
	.image-break--speaker .image-break__media {
		aspect-ratio: 4 / 5;
	}


	.image-break__placeholder-content {
		grid-template-columns: 1fr;

		gap: 14px;

		padding:
			24px
			var(--side-padding);
	}


	.image-break__placeholder-note {
		justify-self: start;

		text-align: left;
	}


	.image-break--speaker {
		padding:
			88px
			0;
	}


	.image-break__statement-text {
		margin-top: 34px;

		font-size: clamp(42px, 12vw, 58px);
	}


	.authority-feature {
		grid-template-columns: 1fr;

		gap: 42px;

		padding-bottom: 74px;
	}


	.authority-feature__media {
		aspect-ratio: 4 / 5;
	}


	.authority-feature__content {
		grid-template-columns:
			36px
			1fr;

		padding: 0;
	}


	.authority-feature__number {
		grid-column: 1;
		grid-row: 1 / 5;
	}


	.authority-feature__label,
	.authority-feature__title,
	.authority-feature__description {
		grid-column: 2;
	}

}



/* =========================================================
   PROOF CTA — RESULTS / TESTIMONIALS
   ========================================================= */

.proof-footer {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		minmax(360px, .82fr);

	gap: clamp(48px, 7vw, 112px);

	align-items: end;

	margin-top: clamp(58px, 6vw, 94px);
	padding-top: clamp(30px, 3vw, 48px);

	border-top: 1px solid var(--color-line);
}


.proof-footer--dark {
	border-top-color: rgba(244, 241, 234, .18);
}


.proof-footer__copy {
	max-width: 460px;

	margin: 0;

	font-size: 12px;
	font-weight: 400;
	line-height: 1.72;

	color: var(--color-muted);
}


.proof-footer--dark .proof-footer__copy {
	color: rgba(244, 241, 234, .48);
}


.proof-link {
	position: relative;

	justify-self: end;

	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		auto;

	grid-template-areas:
		"label arrow"
		"meta meta";

	column-gap: 24px;
	row-gap: 12px;

	width: min(100%, 590px);

	padding:
		0
		0
		18px;

	border-bottom: 1px solid rgba(23, 21, 18, .46);

	color: var(--color-ink);

	transition:
		padding-left 480ms var(--ease),
		border-color 320ms ease;
}


.proof-link::before {
	content: "";

	position: absolute;

	left: 0;
	bottom: -1px;

	width: 100%;
	height: 2px;

	background: var(--color-champagne);

	transform: scaleX(.72);
	transform-origin: left center;

	transition:
		transform 560ms var(--ease);
}


.proof-link--light {
	border-bottom-color: rgba(244, 241, 234, .38);

	color: var(--color-light);
}


.proof-link--light::before {
	background: var(--color-champagne);
}


.proof-link:hover,
.proof-link:focus-visible {
	padding-left: 12px;

	border-color: transparent;
}


.proof-link:hover::before,
.proof-link:focus-visible::before {
	transform: scaleX(1);
}


.proof-link__label {
	grid-area: label;

	font-family: var(--font-display);

	font-size: clamp(34px, 3vw, 52px);
	font-weight: 400;
	line-height: .98;
	letter-spacing: -.028em;
}


.proof-link__arrow {
	grid-area: arrow;

	align-self: start;

	font-size: 20px;
	line-height: 1;

	transform: translate3d(0, 4px, 0);

	transition:
		transform 420ms var(--ease);
}


.proof-link:hover .proof-link__arrow,
.proof-link:focus-visible .proof-link__arrow {
	transform: translate3d(4px, 0, 0);
}


.proof-link__meta {
	grid-area: meta;

	font-size: 9px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .10em;

	text-transform: uppercase;

	opacity: .54;
}


.testimonials-section__footer {
	margin-top: clamp(64px, 7vw, 108px);
}



/* =========================================================
   RESPONSIVE — PROOF CTA
   ========================================================= */

@media (max-width: 900px) {

	.proof-footer {
		grid-template-columns: 1fr;

		gap: 34px;
	}


	.proof-link {
		justify-self: start;

		width: min(100%, 650px);
	}

}


@media (max-width: 700px) {

	.proof-footer {
		margin-top: 52px;
		padding-top: 28px;
	}


	.proof-link {
		column-gap: 16px;

		padding-bottom: 14px;
	}


	.proof-link:hover,
	.proof-link:focus-visible {
		padding-left: 0;
	}


	.proof-link__label {
		font-size: clamp(34px, 10vw, 46px);
	}


	.proof-link__arrow {
		font-size: 17px;
	}

}



/* =========================================================
   10. ABOUT NATALIA
   ========================================================= */

.about-home {
	display: grid;

	grid-template-columns:
		minmax(380px, 48fr)
		minmax(0, 52fr);

	min-height: clamp(760px, 88svh, 980px);

	background: var(--color-dark);
	color: var(--color-light);

	overflow: hidden;
}


.about-home__media {
	position: relative;

	min-height: inherit;

	overflow: hidden;
}


.about-home__media--placeholder {
	display: flex;
	align-items: flex-end;

	background:
		linear-gradient(
			145deg,
			rgba(180, 160, 131, .18),
			rgba(255, 255, 255, .025)
		);
}


.about-home__placeholder {
	width: 100%;

	display: flex;
	flex-direction: column;

	gap: 12px;

	padding:
		clamp(28px, 3vw, 52px)
		var(--side-padding);

	border-top: 1px solid rgba(244, 241, 234, .14);
}


.about-home__placeholder-index {
	font-size: 9px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .13em;

	color: rgba(244, 241, 234, .42);
}


.about-home__placeholder-title {
	font-family: var(--font-display);

	font-size: clamp(42px, 4vw, 70px);
	font-weight: 400;
	line-height: .95;
	letter-spacing: -.034em;
}


.about-home__placeholder-note {
	max-width: 420px;

	font-size: 9px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: .09em;

	text-transform: uppercase;

	color: rgba(244, 241, 234, .42);
}


.about-home__content {
	display: flex;
	flex-direction: column;
	justify-content: center;

	min-width: 0;

	padding:
		clamp(86px, 7vw, 130px)
		clamp(54px, 6vw, 104px);
}


.about-home__title {
	max-width: 820px;

	margin:
		clamp(58px, 6vw, 92px)
		0
		0;

	font-size: clamp(58px, 5.2vw, 92px);
	line-height: .93;
	letter-spacing: -.038em;
}


.about-home__copy {
	max-width: 520px;

	margin:
		clamp(54px, 5vw, 82px)
		0
		0
		auto;
}


.about-home__copy p {
	margin: 0;

	font-size: 14px;
	line-height: 1.78;

	color: rgba(244, 241, 234, .66);
}


.about-home__copy p + p {
	margin-top: 24px;

	color: rgba(244, 241, 234, .90);
}


.about-home__link {
	width: min(100%, 570px);

	margin-top: clamp(64px, 6vw, 94px);
	margin-left: auto;
}



/* =========================================================
   11. JOURNAL
   ========================================================= */

.journal-home {
	padding:
		clamp(124px, 11vw, 194px)
		0
		clamp(132px, 12vw, 214px);

	background: var(--color-paper);
	color: var(--color-ink);
}


.journal-home__head {
	display: grid;

	grid-template-columns:
		minmax(220px, .58fr)
		minmax(0, 1.42fr);

	gap: clamp(54px, 8vw, 136px);

	margin-bottom: clamp(86px, 8vw, 134px);
}


.journal-home__intro {
	display: grid;

	grid-template-columns:
		minmax(0, 1.34fr)
		minmax(260px, .66fr);

	gap: clamp(48px, 7vw, 112px);

	align-items: end;
}


.journal-home__title {
	max-width: 860px;

	margin: 0;

	font-size: clamp(56px, 5vw, 86px);
	line-height: .94;
	letter-spacing: -.036em;
}


.journal-home__lead {
	max-width: 390px;

	margin: 0;

	font-size: 14px;
	line-height: 1.78;

	color: var(--color-muted);
}


.journal-home__grid {
	display: grid;

	grid-template-columns:
		repeat(3, minmax(0, 1fr));

	gap: clamp(24px, 2.6vw, 42px);
}


.journal-card {
	position: relative;

	display: flex;
	flex-direction: column;

	min-width: 0;

	padding-bottom: 26px;

	border-bottom: 1px solid var(--color-line);
}


.journal-card__media {
	position: relative;

	aspect-ratio: 4 / 5;

	margin-bottom: 24px;

	overflow: hidden;
}


.journal-card__media--placeholder {
	display: flex;
	flex-direction: column;
	justify-content: space-between;

	padding: 24px;

	background:
		linear-gradient(
			145deg,
			rgba(180, 160, 131, .22),
			rgba(23, 21, 18, .05)
		);

	transition:
		transform 650ms var(--ease);
}


.journal-card:hover .journal-card__media--placeholder,
.journal-card:focus-visible .journal-card__media--placeholder {
	transform: scale(.985);
}


.journal-card__media-index,
.journal-card__media-note {
	font-size: 9px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .10em;

	text-transform: uppercase;

	color: rgba(23, 21, 18, .46);
}


.journal-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;

	gap: 18px;

	margin-bottom: 20px;

	font-size: 9px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .08em;

	text-transform: uppercase;

	color: var(--color-muted);
}


.journal-card__title {
	max-width: 430px;

	margin: 0;

	font-size: clamp(32px, 2.7vw, 48px);
	line-height: 1.02;
	letter-spacing: -.028em;
}


.journal-card__arrow {
	align-self: flex-end;

	margin-top: 28px;

	font-size: 17px;
	line-height: 1;

	transition:
		transform 420ms var(--ease);
}


.journal-card:hover .journal-card__arrow,
.journal-card:focus-visible .journal-card__arrow {
	transform: translate3d(4px, -4px, 0);
}


.journal-home__footer {
	display: flex;
	justify-content: flex-end;

	margin-top: clamp(62px, 7vw, 104px);
}


.journal-home__footer .proof-link {
	width: min(100%, 560px);
}



/* =========================================================
   12. FINAL CTA
   ========================================================= */

.final-cta {
	padding:
		clamp(132px, 12vw, 210px)
		0
		clamp(136px, 13vw, 224px);

	background: var(--color-champagne);
	color: var(--color-ink);
}


.final-cta__grid {
	display: grid;

	grid-template-columns:
		minmax(220px, .58fr)
		minmax(0, 1.42fr);

	gap: clamp(54px, 8vw, 136px);
}


.final-cta__content {
	max-width: 980px;
}


.final-cta__title {
	max-width: 900px;

	margin: 0;

	font-size: clamp(64px, 6.2vw, 108px);
	line-height: .90;
	letter-spacing: -.043em;
}


.final-cta__copy {
	max-width: 460px;

	margin:
		clamp(48px, 5vw, 76px)
		0
		0
		auto;

	font-size: 14px;
	line-height: 1.75;

	color: rgba(23, 21, 18, .68);
}


.final-cta__link {
	position: relative;

	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		auto;

	grid-template-areas:
		"label arrow"
		"meta meta";

	column-gap: 24px;
	row-gap: 12px;

	width: min(100%, 430px);

	margin:
		clamp(62px, 6vw, 94px)
		0
		0
		auto;

	padding-bottom: 20px;

	border-bottom: 1px solid rgba(23, 21, 18, .46);
}


.final-cta__link::before {
	content: "";

	position: absolute;

	left: 0;
	bottom: -1px;

	width: 100%;
	height: 2px;

	background: var(--color-ink);

	transform: scaleX(.18);
	transform-origin: left center;

	transition:
		transform 560ms var(--ease);
}


.final-cta__link:hover::before,
.final-cta__link:focus-visible::before {
	transform: scaleX(1);
}


.final-cta__link-label {
	grid-area: label;

	font-family: var(--font-body);

	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .085em;

	text-transform: uppercase;
}


.final-cta__link-arrow {
	grid-area: arrow;

	align-self: start;

	font-size: 17px;
	line-height: 1;

	transform: translateY(4px);

	transition:
		transform 420ms var(--ease);
}


.final-cta__link:hover .final-cta__link-arrow,
.final-cta__link:focus-visible .final-cta__link-arrow {
	transform: translate3d(4px, 0, 0);
}


.final-cta__link-meta {
	grid-area: meta;

	font-size: 10px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .08em;

	text-transform: uppercase;

	opacity: .58;
}



/* =========================================================
   RESPONSIVE — ABOUT / JOURNAL / FINAL CTA
   ========================================================= */

@media (max-width: 1140px) {

	.about-home {
		grid-template-columns: 1fr;

		min-height: auto;
	}


	.about-home__media {
		min-height: min(78svh, 860px);
	}


	.about-home__content {
		padding:
			96px
			var(--side-padding)
			112px;
	}


	.journal-home__head,
	.final-cta__grid {
		grid-template-columns: 1fr;

		gap: 46px;
	}


	.journal-home__intro {
		grid-template-columns:
			minmax(0, 1.2fr)
			minmax(260px, .8fr);
	}


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


	.journal-card:last-child {
		grid-column: 1 / -1;

		width: calc(50% - 12px);
	}

}


@media (max-width: 700px) {

	.about-home__media {
		min-height: 68svh;
	}


	.about-home__placeholder {
		padding:
			24px
			var(--side-padding);
	}


	.about-home__content {
		padding:
			82px
			var(--side-padding)
			94px;
	}


	.about-home__title {
		margin-top: 44px;

		font-size: clamp(50px, 14vw, 70px);
	}


	.about-home__copy {
		max-width: none;

		margin-top: 42px;
		margin-left: 0;
	}


	.about-home__link {
		margin-top: 52px;
		margin-left: 0;
	}


	.journal-home,
	.final-cta {
		padding:
			96px
			0
			108px;
	}


	.journal-home__head {
		gap: 38px;

		margin-bottom: 70px;
	}


	.journal-home__intro {
		grid-template-columns: 1fr;

		gap: 30px;
	}


	.journal-home__title {
		font-size: clamp(48px, 13vw, 66px);
	}


	.journal-home__lead {
		max-width: none;
	}


	.journal-home__grid {
		grid-template-columns: 1fr;
	}


	.journal-card:last-child {
		grid-column: auto;

		width: auto;
	}


	.journal-card__media {
		aspect-ratio: 4 / 5;
	}


	.journal-card__title {
		font-size: clamp(34px, 10vw, 46px);
	}


	.journal-home__footer {
		justify-content: flex-start;

		margin-top: 52px;
	}


	.final-cta__grid {
		gap: 42px;
	}


	.final-cta__title {
		font-size: clamp(54px, 15vw, 76px);
	}


	.final-cta__copy {
		max-width: none;

		margin-top: 42px;
		margin-left: 0;
	}


	.final-cta__link {
		margin-top: 54px;
		margin-left: 0;
	}


	.final-cta__link-label {
		font-size: 12px;
		letter-spacing: .075em;
	}

}



/* =========================================================
   FOOTER
   Quiet finish after the final conversion block.
   ========================================================= */

.site-footer {
	padding:
		58px
		0
		30px;

	background: var(--color-paper);
	color: var(--color-ink);
}


.site-footer__main {
	display: grid;

	grid-template-columns:
		minmax(220px, .72fr)
		minmax(0, 1.28fr)
		minmax(190px, .48fr);

	gap: clamp(46px, 7vw, 112px);

	align-items: start;

	padding-bottom: 72px;
}


.site-footer__brand {
	display: inline-block;

	width: max-content;

	font-size: 11px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .17em;

	text-transform: uppercase;
}


.site-footer__nav-list {
	display: grid;

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

	gap:
		16px
		42px;

	margin: 0;
	padding: 0;

	list-style: none;
}


.site-footer__nav-list a {
	position: relative;

	display: inline-block;

	width: max-content;

	font-size: 12px;
	font-weight: 500;
	line-height: 1.35;
}


.site-footer__nav-list a::after,
.site-footer__utility a::after {
	content: "";

	position: absolute;

	left: 0;
	bottom: -5px;

	width: 100%;
	height: 1px;

	background: currentColor;

	transform: scaleX(0);
	transform-origin: right center;

	transition:
		transform 420ms var(--ease);
}


.site-footer__nav-list a:hover::after,
.site-footer__nav-list a:focus-visible::after,
.site-footer__utility a:hover::after,
.site-footer__utility a:focus-visible::after {
	transform: scaleX(1);
	transform-origin: left center;
}


.site-footer__utility {
	justify-self: end;

	display: flex;
	flex-direction: column;
	align-items: flex-start;

	gap: 18px;
}


.site-footer__utility a {
	position: relative;

	display: inline-flex;
	align-items: center;

	gap: 10px;

	font-size: 10px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: .08em;

	text-transform: uppercase;
}


.site-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;

	gap: 30px;

	padding-top: 22px;

	border-top: 1px solid var(--color-line);

	font-size: 9px;
	font-weight: 500;
	line-height: 1.5;

	color: var(--color-muted);
}


.site-footer__bottom p {
	margin: 0;
}


.site-footer__legal {
	display: flex;
	align-items: center;

	gap: 22px;
}


.site-footer__legal a {
	border-bottom: 1px solid transparent;

	transition:
		border-color 260ms ease;
}


.site-footer__legal a:hover,
.site-footer__legal a:focus-visible {
	border-bottom-color: currentColor;
}



/* =========================================================
   RESPONSIVE — DESKTOP NAVIGATION
   ========================================================= */

@media (max-width: 1320px) {

	.site-header__left {
		gap: 22px;
		padding-right: 26px;
	}


	.site-nav__list {
		gap: 18px;
	}


	.site-nav__list a {
		font-size: 12px;
	}

}



/* =========================================================
   RESPONSIVE — TABLET / SMALL DESKTOP
   ========================================================= */

@media (max-width: 1140px) {

	.site-header__inner {
		grid-template-columns: 1fr auto;

		padding-inline: var(--side-padding);
	}


	.site-header__left,
	.site-header__right {
		padding: 0;
	}


	.site-nav,
	.site-header__cta {
		display: none;
	}


	.menu-toggle {
		position: relative;
		z-index: 110;

		display: flex;
		flex-direction: column;

		gap: 7px;

		width: 32px;

		cursor: pointer;
	}


	.menu-toggle span {
		display: block;

		width: 100%;
		height: 1px;

		background: currentColor;

		transition:
			transform 400ms var(--ease),
			opacity 300ms ease;
	}


	.mobile-menu {
		position: fixed;

		inset: 0;

		z-index: 90;

		display: flex;
		flex-direction: column;
		justify-content: center;

		padding:
			100px
			var(--side-padding)
			50px;

		background: var(--color-dark);
		color: var(--color-light);

		opacity: 0;
		visibility: hidden;
		pointer-events: none;

		transition:
			opacity 450ms var(--ease),
			visibility 450ms;
	}


	.menu-open .mobile-menu {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}


	.menu-open .site-header {
		position: fixed;

		top: 0;

		transform: translateY(0);

		background: transparent;
		border-bottom-color: transparent;

		color: var(--color-light);

		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}


	body.admin-bar.menu-open .site-header {
		top: 32px;
	}


	.mobile-menu__list {
		margin: 0;
		padding: 0;

		list-style: none;
	}


	.mobile-menu__list li + li {
		margin-top: 12px;
	}


	.mobile-menu__list a {
		font-family: var(--font-display);

		font-size: clamp(48px, 9vw, 80px);
		font-weight: 400;
		line-height: 1;
	}


	.mobile-menu__cta {
		display: inline-block;

		margin-top: 56px;

		font-size: 12px;
		font-weight: 500;

		text-transform: uppercase;
		letter-spacing: .1em;
	}


	.menu-open .menu-toggle span:first-child {
		transform:
			translateY(4px)
			rotate(45deg);
	}


	.menu-open .menu-toggle span:last-child {
		transform:
			translateY(-4px)
			rotate(-45deg);
	}


	/* Hero */

	.hero__content {
		grid-template-columns: 1fr;
	}


	.hero__text {
		min-height: 72svh;

		border-right: 0;
	}


	.hero__media {
		min-height: 68svh;
		max-height: 860px;
	}


	.hero__video {
		object-position: 50% 42%;
	}


	.hero__bottom {
		align-items: flex-start;
		flex-direction: column;
	}


	/* Problem */

	.problem-section__grid {
		grid-template-columns: 1fr;

		gap: 62px;
	}


	.problem-section__copy {
		max-width: 540px;

		margin-left: auto;

		transform: none;
	}


	/* Method */

	.method-section__head,
	.programs-section__head {
		grid-template-columns: 1fr;

		gap: 46px;
	}


	.method-section__intro,
	.programs-section__intro {
		grid-template-columns:
			minmax(0, 1.2fr)
			minmax(260px, .8fr);
	}


	.method-item {
		grid-template-columns:
			48px
			minmax(250px, .8fr)
			minmax(300px, 1fr);

		gap: 28px;

		padding:
			30px
			0;
	}


	.method-item__number {
		padding-top: 10px;
	}


	/* Diagnostic */

	.diagnostic-section {
		grid-template-columns: 1fr;

		min-height: auto;
	}


	.diagnostic-section__media {
		min-height: min(78svh, 860px);
	}


	.diagnostic-section__content {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(240px, .62fr);

		padding:
			88px
			var(--side-padding)
			104px;
	}


	/* Programs */

	.program-item {
		grid-template-columns:
			48px
			minmax(280px, .95fr)
			minmax(280px, 1fr)
			36px;

		gap: 26px;

		padding:
			30px
			0;
	}


	.program-item__number {
		padding-top: 12px;
	}

}



/* =========================================================
   RESPONSIVE — MOBILE
   ========================================================= */

@media (max-width: 700px) {

	:root {
		--side-padding: 20px;
	}

	.editorial-cta--primary {
		width: 100%;
		min-width: 0;
	}


	.editorial-cta--primary .editorial-cta__main {
		font-size: 11px;
		white-space: normal;
	}




	.site-header__inner,
	.site-header.is-scrolled .site-header__inner {
		height: 74px;
	}


	.site-logo {
		font-size: 10px;
	}


	/* Hero */

	.hero__text {
		min-height: auto;

		padding-top: 116px;
		padding-bottom: 64px;
	}


	.hero__eyebrow {
		margin-bottom: 38px;

		font-size: 9px;
	}


	.hero__title {
		font-size: clamp(54px, 15.5vw, 74px);

		line-height: .89;
		letter-spacing: -.043em;
	}


	.hero__bottom {
		margin-top: 46px;
	}


	.hero__statement {
		font-size: 14px;
	}


	.editorial-cta__main {
		font-size: 11px;
		letter-spacing: .06em;
		white-space: normal;
	}


	.hero__media {
		min-height: 68svh;
		max-height: none;
	}


	.hero__scroll {
		display: none;
	}


	/* Problem */

	.problem-section {
		padding:
			98px
			0
			104px;
	}


	.problem-section .section-kicker {
		margin-bottom: 52px;
	}


	.problem-section__grid {
		gap: 44px;
	}


	.problem-section__title {
		font-size: clamp(48px, 13vw, 66px);
	}


	.problem-section__copy {
		max-width: none;

		margin-left: 0;
	}


	.problem-section__copy p {
		font-size: 14px;
	}


	/* Method */

	.method-section {
		scroll-margin-top: 74px;

		padding:
			94px
			0
			106px;
	}


	.method-section__head,
	.programs-section__head {
		gap: 38px;

		margin-bottom: 70px;
	}


	.method-section__intro,
	.programs-section__intro {
		grid-template-columns: 1fr;

		gap: 30px;
	}


	.method-section__title,
	.programs-section__title {
		font-size: clamp(48px, 13vw, 66px);
	}


	.method-section__lead,
	.programs-section__lead {
		max-width: none;

		font-size: 14px;
	}


	.method-item {
		grid-template-columns:
			36px
			1fr;

		gap:
			10px
			18px;

		min-height: auto;

		padding:
			34px
			0
			38px;
	}


	.method-item::before {
		display: none;
	}


	.method-item__number {
		grid-column: 1;

		padding-top: 8px;
	}


	.method-item__title {
		grid-column: 2;

		font-size: clamp(54px, 17vw, 78px);
	}


	.method-item:hover .method-item__title {
		transform: none;
	}


	.method-item__text {
		grid-column:
			2
			/
			3;

		margin-top: 14px;

		font-size: 14px;
	}


	/* Diagnostic */

	.diagnostic-section__media {
		min-height: 66svh;
	}


	.diagnostic-section__video {
		object-position: 50% 45%;
	}


	.diagnostic-section__content {
		display: flex;
		flex-direction: column;

		gap: 0;

		padding:
			80px
			var(--side-padding)
			90px;
	}


	.diagnostic-section__content .section-kicker {
		margin-bottom: 48px;
	}


	.diagnostic-section__title {
		font-size: clamp(54px, 15vw, 74px);
	}


	.diagnostic-section__copy {
		max-width: none;

		margin-top: 42px;

		font-size: 14px;
	}


	.diagnostic-section__outcomes {
		width: 100%;

		margin-top: 44px;
	}


	.diagnostic-section__cta {
		align-self: flex-start;

		margin-top: 50px;
	}


	/* Programs */

	.programs-section {
		scroll-margin-top: 74px;

		padding:
			96px
			0
			108px;
	}


	.program-item {
		grid-template-columns:
			36px
			1fr
			28px;

		gap:
			10px
			18px;

		min-height: auto;

		padding:
			34px
			0
			40px;
	}


	.program-item::before {
		display: none;
	}


	.program-item__number {
		grid-column: 1;
		grid-row: 1;

		padding-top: 8px;
	}


	.program-item__title {
		grid-column: 2;
		grid-row: 1;

		font-size: clamp(48px, 14vw, 68px);
	}


	.program-item__arrow {
		grid-column: 3;
		grid-row: 1;

		align-self: start;

		padding-top: 10px;
	}


	.program-item__text {
		grid-column:
			2
			/
			4;

		margin-top: 14px;

		font-size: 14px;
	}


	.program-item:hover .program-item__title {
		transform: none;
	}


	.programs-section__footer {
		align-items: flex-start;
		flex-direction: column;

		gap: 16px;

		margin-top: 44px;
	}


	.site-footer {
		padding-top: 72px;
	}


	.site-footer__top {
		align-items: flex-start;
		flex-direction: column;

		padding-bottom: 70px;
	}


	.site-footer__bottom {
		align-items: flex-start;
		flex-direction: column;
	}

}



/* =========================================================
   RESPONSIVE — FOOTER
   ========================================================= */

@media (max-width: 1140px) {

	.site-footer__main {
		grid-template-columns:
			minmax(200px, .7fr)
			minmax(0, 1.3fr);

		gap: 48px;
	}


	.site-footer__utility {
		grid-column: 2;

		justify-self: start;

		flex-direction: row;

		gap: 28px;
	}

}


@media (max-width: 700px) {

	.site-footer {
		padding:
			46px
			0
			26px;
	}


	.site-footer__main {
		grid-template-columns: 1fr;

		gap: 42px;

		padding-bottom: 54px;
	}


	.site-footer__nav-list {
		grid-template-columns: 1fr;

		gap: 14px;
	}


	.site-footer__utility {
		grid-column: auto;

		justify-self: start;

		flex-direction: column;

		gap: 16px;
	}


	.site-footer__bottom {
		align-items: flex-start;
		flex-direction: column;

		gap: 12px;
	}


	.site-footer__legal {
		align-items: flex-start;
		flex-direction: column;

		gap: 8px;
	}

}



/* =========================================================
   MOBILE POLISH / SMALL VIEWPORT HARDENING
   320–700 px
   ========================================================= */

html,
body {
	max-width: 100%;
	overflow-x: hidden;
}


@media (max-width: 700px) {

	/* -----------------------------------------------------
	   Mobile menu
	   ----------------------------------------------------- */

	.mobile-menu {
		inset: 0;

		min-height: 100dvh;

		justify-content: flex-start;

		padding:
			calc(96px + env(safe-area-inset-top))
			var(--side-padding)
			calc(28px + env(safe-area-inset-bottom));

		overflow-y: auto;
		overflow-x: hidden;

		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
	}


	.mobile-menu::before {
		content: "МЕНЮ";

		display: block;

		margin-bottom: 24px;

		font-size: 9px;
		font-weight: 600;
		line-height: 1;
		letter-spacing: .18em;

		color: rgba(244, 241, 234, .42);
	}


	.mobile-menu nav {
		width: 100%;
	}


	.mobile-menu__list {
		width: 100%;
	}


	.mobile-menu__list li,
	.mobile-menu__list li + li {
		margin: 0;

		border-top: 1px solid rgba(244, 241, 234, .14);
	}


	.mobile-menu__list li:last-child {
		border-bottom: 1px solid rgba(244, 241, 234, .14);
	}


	.mobile-menu__list a {
		display: flex;
		align-items: center;

		width: 100%;

		padding:
			10px
			0
			11px;

		font-size: clamp(34px, 11vw, 46px);
		line-height: .96;
		letter-spacing: -.025em;

		overflow-wrap: normal;
		word-break: normal;
	}


	.mobile-menu__cta {
		position: relative;

		display: flex;
		align-items: center;
		justify-content: space-between;

		width: 100%;

		margin-top: 26px;
		padding:
			18px
			0
			12px;

		border-bottom: 1px solid rgba(244, 241, 234, .52);

		font-size: 11px;
		font-weight: 600;
		line-height: 1.35;
		letter-spacing: .09em;

		color: var(--color-light);
	}


	.mobile-menu__cta::after {
		content: "";

		position: absolute;

		left: 0;
		bottom: -1px;

		width: 34%;
		height: 2px;

		background: var(--color-champagne);

		transition:
			width 420ms var(--ease);
	}


	.mobile-menu__cta:hover::after,
	.mobile-menu__cta:focus-visible::after {
		width: 100%;
	}


	.menu-open .site-logo {
		color: var(--color-light);
	}


	.menu-open .menu-toggle {
		color: var(--color-light);
	}


	/* -----------------------------------------------------
	   Prevent horizontal overflow in all editorial grids
	   ----------------------------------------------------- */

	.hero__text,
	.problem-section__grid,
	.problem-section__copy,
	.method-section__head,
	.method-section__intro,
	.method-item,
	.diagnostic-section__content,
	.programs-section__head,
	.programs-section__intro,
	.program-item,
	.situations-section__head,
	.situation-item,
	.image-break__split,
	.results-section__head,
	.results-section__intro,
	.results-grid,
	.result-card,
	.authority-section__head,
	.authority-section__intro,
	.authority-feature,
	.authority-feature__content,
	.authority-item,
	.testimonials-section__head,
	.testimonials-grid,
	.about-home__content,
	.journal-home__head,
	.journal-home__intro,
	.journal-home__grid,
	.final-cta__grid,
	.final-cta__content,
	.proof-footer {
		min-width: 0;
		max-width: 100%;
	}


	.hero__title,
	.problem-section__title,
	.method-section__title,
	.method-item__title,
	.diagnostic-section__title,
	.programs-section__title,
	.program-item__title,
	.situations-section__title,
	.situation-item__title,
	.image-break__statement-text,
	.results-section__title,
	.result-card__title,
	.authority-section__title,
	.authority-feature__title,
	.authority-item__name,
	.testimonials-section__title,
	.testimonial__quote,
	.about-home__title,
	.journal-home__title,
	.journal-card__title,
	.final-cta__title,
	.proof-link__label {
		max-width: 100%;

		hyphens: auto;
		overflow-wrap: break-word;
		word-break: normal;
	}


	/* -----------------------------------------------------
	   Small-screen typography and grids
	   ----------------------------------------------------- */

	.hero__title {
		font-size: clamp(52px, 16vw, 70px);
	}


	.problem-section__title,
	.method-section__title,
	.programs-section__title,
	.situations-section__title,
	.results-section__title,
	.authority-section__title,
	.testimonials-section__title,
	.journal-home__title {
		font-size: clamp(44px, 13.5vw, 62px);
	}


	.method-item,
	.situation-item {
		grid-template-columns:
			28px
			minmax(0, 1fr);

		column-gap: 14px;
	}


	.method-item__title,
	.situation-item__title {
		font-size: clamp(44px, 13.2vw, 62px);
	}


	.program-item {
		grid-template-columns:
			28px
			minmax(0, 1fr)
			22px;

		column-gap: 14px;
	}


	.program-item__title {
		font-size: clamp(42px, 13vw, 60px);
	}


	.program-item__text {
		grid-column:
			2
			/
			4;
	}


	/* Authority block: remove the narrow side-number column.
	   This is the main source of overflow at 320–375 px. */

	.authority-feature__content {
		display: block;
	}


	.authority-feature__number {
		display: block;

		margin-bottom: 20px;
		padding-top: 0;
	}


	.authority-feature__label {
		margin-bottom: 16px;
	}


	.authority-feature__title {
		font-size: clamp(42px, 13.4vw, 58px);
		line-height: .94;
	}


	.authority-feature__description {
		margin-top: 28px;
	}


	.authority-item {
		display: grid;

		grid-template-columns:
			minmax(0, 1fr)
			auto;

		column-gap: 14px;
	}


	.authority-item__name {
		min-width: 0;

		font-size: clamp(26px, 8.6vw, 34px);
		line-height: 1.05;
	}


	/* Proof/result CTA should never create a wide fixed column. */

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


	.proof-link,
	.results-section__cta,
	.about-home__link,
	.journal-home__footer .proof-link,
	.final-cta__link,
	.editorial-cta--action,
	.programs-section__cta,
	.situations-section__cta {
		width: 100%;
		max-width: 100%;
	}


	.proof-link__label {
		font-size: clamp(30px, 9.6vw, 42px);
	}


	/* Footer */

	.site-footer__brand,
	.site-footer__nav-list a {
		max-width: 100%;
		white-space: normal;
	}

}


/* Extra-small devices: iPhone SE / 320–375 px */

@media (max-width: 380px) {

	:root {
		--side-padding: 16px;
	}


	.site-header__inner,
	.site-header.is-scrolled .site-header__inner {
		height: 68px;
	}


	.site-logo {
		font-size: 9px;
		letter-spacing: .14em;
	}


	.menu-toggle {
		width: 28px;
	}


	.mobile-menu {
		padding-top:
			calc(84px + env(safe-area-inset-top));
	}


	.mobile-menu::before {
		margin-bottom: 18px;
	}


	.mobile-menu__list a {
		padding:
			8px
			0
			9px;

		font-size: clamp(32px, 10.7vw, 40px);
	}


	.mobile-menu__cta {
		margin-top: 20px;
		padding-top: 15px;

		font-size: 10px;
	}


	.hero__text {
		padding-top: 104px;
	}


	.hero__title {
		font-size: clamp(48px, 15.6vw, 60px);
	}


	.method-item__title,
	.situation-item__title {
		font-size: clamp(40px, 12.8vw, 50px);
	}


	.program-item__title {
		font-size: clamp(38px, 12.2vw, 48px);
	}


	.authority-feature__title {
		font-size: clamp(38px, 12.4vw, 48px);
	}


	.authority-item__name {
		font-size: clamp(24px, 8.2vw, 30px);
	}

}


/* Very short phones: keep the mobile menu fully usable. */

@media (max-width: 700px) and (max-height: 640px) {

	.mobile-menu {
		padding-top:
			calc(78px + env(safe-area-inset-top));
		padding-bottom:
			calc(18px + env(safe-area-inset-bottom));
	}


	.mobile-menu::before {
		margin-bottom: 14px;
	}


	.mobile-menu__list a {
		padding:
			7px
			0
			8px;

		font-size: clamp(30px, 9.8vw, 38px);
	}


	.mobile-menu__cta {
		margin-top: 16px;
		padding-top: 13px;
	}

}


/* WordPress admin bar consumes vertical space on phones. */

@media (max-width: 782px) {

	body.admin-bar .mobile-menu {
		padding-top:
			calc(124px + env(safe-area-inset-top));
	}

}


@media (max-width: 380px) and (max-height: 640px) {

	body.admin-bar .mobile-menu {
		padding-top:
			calc(112px + env(safe-area-inset-top));
	}

}



/* =========================================================
   WORDPRESS ADMIN BAR — MOBILE
   ========================================================= */

@media (max-width: 782px) {

	body.admin-bar .site-header.is-scrolled,
	body.admin-bar.menu-open .site-header {
		top: 46px;
	}

}



/* =========================================================
   ACCESSIBILITY
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	html {
		scroll-behavior: auto;
	}


	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;

		transition-duration: .01ms !important;

		animation-duration: .01ms !important;

		animation-iteration-count: 1 !important;
	}

}
