:root {
	--ink: #111715;
	--ink-soft: #1a211e;
	--paper: #f2efe7;
	--paper-bright: #faf8f2;
	--muted: #747871;
	--accent: #0033ae;
	--accent-strong: #002781;
	--accent-soft: #a8c1ff;
	--accent-dark: #0033ae;
	--on-accent: #ffffff;
	--line: rgba(17, 23, 21, 0.2);
	--line-light: rgba(242, 239, 231, 0.22);
	--font-sans: Inter, Aptos, "Helvetica Neue", Arial, sans-serif;
	--shell: min(1380px, calc(100vw - 80px));
	--header-height: 86px;
}

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

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--font-sans);
	font-size: 16px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}

body.nav-open {
	overflow: hidden;
}

img {
	display: block;
	max-width: 100%;
	height: auto;
}

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

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

::selection {
	background: var(--accent);
	color: var(--on-accent);
}

:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 5px;
}

.skip-link {
	position: fixed;
	top: 12px;
	left: 12px;
	z-index: 200;
	transform: translateY(-160%);
	background: var(--paper);
	color: var(--ink);
	padding: 10px 16px;
	font-weight: 700;
}

.skip-link:focus {
	transform: translateY(0);
}

.shell {
	width: var(--shell);
	margin-inline: auto;
}

.shell-wide {
	width: min(1540px, calc(100vw - 40px));
	margin-inline: auto;
}

.section {
	padding-block: clamp(90px, 11vw, 180px);
}

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

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

.section--accent {
	background: var(--accent);
	color: var(--paper);
}

.eyebrow {
	margin: 0 0 24px;
	color: var(--accent-soft);
	font-size: 0.72rem;
	font-weight: 750;
	letter-spacing: 0.18em;
	line-height: 1.25;
	text-transform: uppercase;
}

.eyebrow--dark {
	color: var(--accent-dark);
}

.button-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
}

.button {
	display: inline-flex;
	min-height: 50px;
	align-items: center;
	justify-content: center;
	border: 1px solid transparent;
	border-radius: 2px;
	padding: 12px 22px;
	font-size: 0.78rem;
	font-weight: 750;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
	transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.button:hover {
	transform: translateY(-2px);
}

.button--accent {
	background: var(--accent);
	color: var(--on-accent);
}

.button--accent:hover {
	background: #174bc9;
}

.button--ghost {
	border-color: rgba(255, 255, 255, 0.48);
	color: var(--paper);
}

.button--ghost:hover {
	border-color: var(--paper);
	background: var(--paper);
	color: var(--ink);
}

.text-link {
	display: inline-flex;
	gap: 12px;
	align-items: center;
	border-bottom: 1px solid currentColor;
	padding-block: 4px 6px;
	font-size: 0.76rem;
	font-weight: 750;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	transition: color 180ms ease, gap 180ms ease;
}

.text-link:hover {
	gap: 18px;
	color: var(--accent-dark);
}

.text-link--light:hover {
	color: var(--accent-soft);
}

/* Header */
.site-header {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 100;
	width: 100%;
	container-type: inline-size;
	height: var(--header-height);
	border-bottom: 1px solid var(--line-light);
	background: rgba(0, 0, 0, 0.2);
	color: var(--paper);
	transition: background-color 220ms ease, box-shadow 220ms ease, color 220ms ease;
}

body:not(.has-cinematic-hero) .site-header,
.site-header.is-scrolled {
	position: fixed;
	background: rgba(17, 23, 21, 0.96);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
	backdrop-filter: blur(14px);
}

.site-header__inner {
	display: grid;
	height: 100%;
	grid-template-columns: auto 1fr auto;
	gap: clamp(28px, 4vw, 68px);
	align-items: center;
}

.site-brand {
	display: inline-flex;
	gap: 13px;
	align-items: center;
	min-width: max-content;
}

.brand-mark {
	display: inline-grid;
	width: 43px;
	height: 43px;
	place-items: center;
	border: 2px solid var(--accent-soft);
	border-radius: 50%;
	color: var(--accent-soft);
	font-size: 0.82rem;
	font-weight: 850;
	letter-spacing: -0.06em;
	transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.site-brand:hover .brand-mark,
.footer-brand:hover .brand-mark {
	transform: rotate(-8deg);
	background: var(--accent);
	color: var(--on-accent);
}

.site-brand__type {
	display: grid;
	gap: 1px;
	line-height: 1.05;
}

.site-brand__type strong {
	font-size: 0.92rem;
	font-weight: 760;
	letter-spacing: 0.02em;
}

.site-brand__type small {
	color: rgba(242, 239, 231, 0.6);
	font-size: 0.59rem;
	font-weight: 650;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.primary-nav {
	justify-self: end;
}

.primary-nav ul {
	display: flex;
	margin: 0;
	padding: 0;
	gap: clamp(18px, 2.1vw, 36px);
	align-items: center;
	list-style: none;
}

.primary-nav a {
	position: relative;
	display: block;
	padding-block: 10px;
	font-size: 0.69rem;
	font-weight: 720;
	letter-spacing: 0.105em;
	text-transform: uppercase;
}

.primary-nav a::after {
	position: absolute;
	right: 0;
	bottom: 4px;
	left: 0;
	height: 1px;
	background: var(--accent-soft);
	content: "";
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 180ms ease;
}

.primary-nav a:hover::after,
.primary-nav .current-menu-item > a::after,
.primary-nav .current_page_item > a::after {
	transform: scaleX(1);
	transform-origin: left;
}

.header-action {
	min-height: 42px;
	padding-inline: 17px;
}

.nav-toggle {
	display: none;
	width: 48px;
	height: 48px;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(242, 239, 231, 0.4);
	background: transparent;
	color: inherit;
	cursor: pointer;
}

.nav-toggle__lines,
.nav-toggle__lines::before,
.nav-toggle__lines::after {
	display: block;
	width: 18px;
	height: 1px;
	background: currentColor;
	content: "";
	transition: transform 180ms ease, opacity 180ms ease;
}

.nav-toggle__lines::before {
	transform: translateY(-6px);
}

.nav-toggle__lines::after {
	transform: translateY(5px);
}

.nav-toggle[aria-expanded="true"] .nav-toggle__lines {
	background: transparent;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__lines::before {
	transform: translateY(1px) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .nav-toggle__lines::after {
	transform: rotate(-45deg);
}

/* Cinematic hero */
.home-hero {
	position: relative;
	min-height: 100svh;
	overflow: hidden;
	background: var(--ink);
	color: var(--paper);
}

.home-hero__media,
.home-hero__shade {
	position: absolute;
	inset: -5% 0;
}

.home-hero__media img {
	width: 100%;
	height: 110%;
	object-fit: cover;
	object-position: center 45%;
	filter: saturate(0.78) contrast(1.06);
	transform: scale(1.045);
}

.home-hero__shade {
	background: rgba(7, 12, 10, 0.54);
	box-shadow: inset 0 -42vh 30vh -20vh rgba(4, 8, 7, 0.86), inset 0 20vh 22vh -17vh rgba(4, 8, 7, 0.72);
}

.home-hero__content {
	position: relative;
	z-index: 2;
	display: flex;
	min-height: 100svh;
	flex-direction: column;
	justify-content: flex-end;
	padding-top: calc(var(--header-height) + 70px);
	padding-bottom: clamp(70px, 8vw, 120px);
}

.home-hero h1 {
	display: grid;
	margin: 0;
	font-size: clamp(4.6rem, 10.3vw, 10.8rem);
	font-weight: 790;
	letter-spacing: -0.075em;
	line-height: 0.77;
}

.home-hero h1 span:last-child {
	margin-left: clamp(44px, 8.8vw, 150px);
	color: var(--paper);
}

.home-hero__intro {
	display: grid;
	max-width: 950px;
	margin-top: clamp(40px, 5vw, 70px);
	margin-left: clamp(44px, 8.8vw, 150px);
	grid-template-columns: minmax(260px, 1fr) auto;
	gap: clamp(30px, 6vw, 90px);
	align-items: end;
}

.home-hero__intro > p {
	max-width: 510px;
	margin: 0;
	color: rgba(242, 239, 231, 0.84);
	font-size: clamp(1rem, 1.35vw, 1.28rem);
	line-height: 1.55;
}

.scroll-cue {
	position: absolute;
	right: 34px;
	bottom: 38px;
	z-index: 4;
	display: flex;
	gap: 13px;
	align-items: center;
	color: rgba(242, 239, 231, 0.62);
	font-size: 0.61rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	transform: rotate(90deg) translateX(-100%);
	transform-origin: bottom left;
}

.scroll-cue i {
	display: block;
	width: 52px;
	height: 1px;
	background: currentColor;
}

/* Homepage narrative */
.split {
	display: grid;
	gap: clamp(54px, 8vw, 130px);
	align-items: center;
}

.split--training {
	grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
}

.section-copy h2,
.section-heading h2,
.contact-intro h2,
.site-footer h2 {
	margin: 0;
	font-size: clamp(3rem, 6vw, 6.5rem);
	font-weight: 700;
	letter-spacing: -0.065em;
	line-height: 0.95;
}

.section-copy .lede {
	max-width: 600px;
	margin: clamp(28px, 4vw, 52px) 0 35px;
	color: #4d524d;
	font-size: clamp(1.05rem, 1.45vw, 1.3rem);
	line-height: 1.65;
}

.section-copy--light .lede {
	color: rgba(242, 239, 231, 0.66);
}

.training-visual {
	position: relative;
	padding-bottom: 70px;
}

.image-frame {
	margin: 0;
	overflow: hidden;
	background: var(--ink-soft);
}

.image-frame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms cubic-bezier(0.2, 0.75, 0.2, 1), filter 400ms ease;
}

.image-frame:hover img {
	transform: scale(1.025);
	filter: saturate(1.08);
}

.image-frame--portrait {
	width: 83%;
	margin-left: auto;
	aspect-ratio: 4 / 5;
}

.training-times {
	position: absolute;
	bottom: 0;
	left: 0;
	width: min(390px, 65%);
	background: var(--ink);
	color: var(--paper);
	padding: 28px 32px;
}

.training-times > p {
	margin: 0 0 17px;
	color: var(--accent-soft);
	font-size: 0.67rem;
	font-weight: 750;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.training-times dl,
.training-times dd {
	margin: 0;
}

.training-times dl > div {
	display: flex;
	justify-content: space-between;
	border-top: 1px solid var(--line-light);
	padding-block: 11px;
	gap: 20px;
	font-size: 0.82rem;
}

.training-times dd {
	color: rgba(242, 239, 231, 0.65);
}

.hall-moment {
	position: relative;
	min-height: min(780px, 82svh);
	overflow: hidden;
	background: var(--ink);
	color: var(--paper);
}

.hall-moment__media,
.hall-moment__shade {
	position: absolute;
	inset: -7% 0;
}

.hall-moment__media img {
	width: 100%;
	height: 114%;
	object-fit: cover;
	filter: grayscale(0.15) saturate(0.75) contrast(1.05);
}

.hall-moment__shade {
	background: rgba(7, 12, 10, 0.52);
	box-shadow: inset 0 -35vh 26vh -20vh rgba(0, 0, 0, 0.65);
}

.hall-moment__copy {
	position: relative;
	z-index: 2;
	display: flex;
	min-height: min(780px, 82svh);
	flex-direction: column;
	justify-content: flex-end;
	padding-bottom: clamp(64px, 8vw, 120px);
}

.hall-moment__copy > p:last-child {
	margin: 0;
	font-size: clamp(3.4rem, 7.6vw, 8rem);
	font-weight: 680;
	letter-spacing: -0.065em;
	line-height: 0.94;
}

.split--teams {
	grid-template-columns: minmax(0, 1.18fr) minmax(360px, 0.82fr);
}

.image-frame--team {
	aspect-ratio: 4 / 3;
}

.section-heading {
	display: flex;
	justify-content: space-between;
	gap: 40px;
	align-items: end;
	margin-bottom: clamp(50px, 7vw, 90px);
}

.story-list {
	border-top: 1px solid var(--line);
}

.story-row {
	display: grid;
	grid-template-columns: 120px minmax(0, 1fr) 52px;
	gap: clamp(24px, 4vw, 70px);
	align-items: start;
	border-bottom: 1px solid var(--line);
	padding-block: clamp(30px, 4vw, 52px);
}

.story-row__date,
.journal-row__meta,
.journal-meta {
	margin: 6px 0 0;
	color: var(--muted);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.story-row__body h3,
.story-row__body p {
	margin: 0;
}

.story-row__body h3 {
	font-size: clamp(1.55rem, 2.5vw, 2.7rem);
	font-weight: 650;
	letter-spacing: -0.045em;
	line-height: 1.08;
}

.story-row__body h3 a,
.journal-row h2 a,
.journal-feature h2 a {
	background-image: linear-gradient(currentColor, currentColor);
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0 1px;
	transition: background-size 250ms ease;
}

.story-row:hover .story-row__body h3 a,
.journal-row:hover h2 a,
.journal-feature h2 a:hover {
	background-size: 100% 1px;
}

.story-row__body p {
	max-width: 740px;
	margin-top: 14px;
	color: #656a64;
}

.story-row__arrow,
.journal-row__arrow {
	display: grid;
	width: 46px;
	height: 46px;
	place-items: center;
	border: 1px solid var(--line);
	font-size: 1.2rem;
	transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.story-row:hover .story-row__arrow,
.journal-row:hover .journal-row__arrow {
	transform: translate(3px, -3px);
	border-color: var(--accent-dark);
	background: var(--accent);
	color: var(--on-accent);
}

.contact-finale {
	background: var(--ink);
	color: var(--paper);
	padding-block: clamp(90px, 12vw, 190px);
}

.contact-finale__inner h2 {
	max-width: 1100px;
	margin: 0 0 clamp(42px, 5vw, 70px);
	font-size: clamp(3.8rem, 8.8vw, 9.5rem);
	font-weight: 760;
	letter-spacing: -0.075em;
	line-height: 0.83;
}

.contact-finale .eyebrow {
	color: rgba(255, 255, 255, 0.72);
}

.contact-finale .button--accent {
	border-color: var(--paper);
	background: var(--paper);
	color: var(--accent-strong);
}

.contact-finale .button--accent:hover {
	background: transparent;
	color: var(--paper);
}

/* Page and article heroes */
.page-hero {
	position: relative;
	min-height: 66svh;
	overflow: hidden;
	background: var(--ink);
	color: var(--paper);
}

.page-hero--compact {
	min-height: 48svh;
}

.page-hero__media,
.page-hero__shade {
	position: absolute;
	inset: 0;
}

.page-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.72) contrast(1.05);
}

.page-hero__shade {
	background: rgba(7, 12, 10, 0.58);
	box-shadow: inset 0 -32vh 28vh -18vh rgba(2, 5, 4, 0.8);
}

.page-hero__inner {
	position: relative;
	z-index: 2;
	display: flex;
	min-height: 66svh;
	flex-direction: column;
	justify-content: flex-end;
	padding-top: calc(var(--header-height) + 80px);
	padding-bottom: clamp(52px, 7vw, 95px);
}

.page-hero--compact .page-hero__inner {
	min-height: 48svh;
}

.page-hero h1,
.journal-header h1,
.article-hero h1 {
	max-width: 1180px;
	margin: 0;
	font-size: clamp(3.8rem, 8.7vw, 9rem);
	font-weight: 740;
	letter-spacing: -0.072em;
	line-height: 0.9;
}

.page-content {
	min-height: 40vh;
}

.prose {
	width: min(780px, var(--shell));
	font-size: clamp(1rem, 1.2vw, 1.14rem);
}

.prose > *:first-child {
	margin-top: 0;
}

.prose > *:last-child {
	margin-bottom: 0;
}

.prose h2,
.prose h3,
.prose h4 {
	margin: 2.2em 0 0.65em;
	font-weight: 680;
	letter-spacing: -0.04em;
	line-height: 1.08;
}

.prose h2 {
	font-size: clamp(2.2rem, 4.5vw, 4.5rem);
}

.prose h3 {
	font-size: clamp(1.55rem, 2.5vw, 2.4rem);
}

.prose p,
.prose ul,
.prose ol {
	margin-block: 1.2em;
}

.prose a:not(.wp-element-button) {
	border-bottom: 1px solid currentColor;
	color: var(--accent-dark);
}

.prose figure,
.prose .wp-block-image,
.prose .alignwide {
	width: min(1120px, calc(100vw - 80px));
	max-width: none;
	margin-block: clamp(45px, 6vw, 80px);
	margin-left: 50%;
	transform: translateX(-50%);
}

.prose figcaption {
	color: var(--muted);
	font-size: 0.76rem;
}

.prose .wp-block-group.has-background {
	border-left: 4px solid var(--accent);
	padding: clamp(24px, 4vw, 46px);
}

/* Journal */
.journal-header,
.article-hero {
	background: var(--ink);
	color: var(--paper);
}

body.blog .site-header {
	background: var(--ink);
}

body.blog .journal-header {
	background: var(--accent);
}

body.blog .journal-header .eyebrow {
	color: rgba(255, 255, 255, 0.72);
}

body.blog .journal-header__inner > p:last-child {
	color: rgba(255, 255, 255, 0.76);
}

.journal-header__inner {
	display: flex;
	min-height: 62svh;
	flex-direction: column;
	justify-content: flex-end;
	padding-top: calc(var(--header-height) + 80px);
	padding-bottom: clamp(62px, 8vw, 110px);
}

.journal.section {
	padding-top: clamp(70px, 7vw, 100px);
}

.journal-header--compact .journal-header__inner {
	min-height: 48svh;
}

.journal-header__inner > p:last-child {
	max-width: 560px;
	margin: 34px 0 0 clamp(40px, 8vw, 140px);
	color: rgba(242, 239, 231, 0.62);
	font-size: clamp(1rem, 1.4vw, 1.25rem);
}

.journal-list {
	border-top: 1px solid var(--line);
}

.journal-feature {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
	gap: clamp(40px, 7vw, 100px);
	align-items: center;
	border-bottom: 1px solid var(--line);
	padding-bottom: clamp(55px, 8vw, 110px);
}

.journal-feature__media {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--ink-soft);
}

.journal-feature__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 600ms cubic-bezier(0.2, 0.75, 0.2, 1);
}

.journal-feature:hover .journal-feature__media img {
	transform: scale(1.025);
}

.journal-feature h2,
.journal-feature__body > p {
	margin: 0;
}

.journal-feature h2 {
	margin: 22px 0;
	font-size: clamp(2.2rem, 4vw, 4.4rem);
	font-weight: 670;
	letter-spacing: -0.055em;
	line-height: 0.98;
}

.journal-feature__body > p:not(.journal-meta) {
	margin-bottom: 26px;
	color: #60655f;
}

.journal-meta {
	display: flex;
	gap: 18px;
}

.journal-meta span::before {
	margin-right: 18px;
	content: "·";
}

.journal-row {
	display: grid;
	grid-template-columns: 150px minmax(260px, 0.75fr) minmax(250px, 1fr) 52px;
	gap: clamp(24px, 3.5vw, 56px);
	align-items: start;
	border-bottom: 1px solid var(--line);
	padding-block: clamp(32px, 4vw, 52px);
}

.journal-row h2,
.journal-row > p {
	margin: 0;
}

.journal-row h2 {
	font-size: clamp(1.45rem, 2.25vw, 2.35rem);
	font-weight: 650;
	letter-spacing: -0.045em;
	line-height: 1.08;
}

.journal-row > p:not(.journal-row__meta) {
	color: #676c66;
}

.journal-row__meta {
	display: grid;
	gap: 4px;
}

.navigation.pagination {
	margin-top: 60px;
}

.nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.page-numbers {
	display: grid;
	min-width: 42px;
	height: 42px;
	place-items: center;
	border: 1px solid var(--line);
	padding-inline: 10px;
	font-size: 0.78rem;
	font-weight: 700;
}

.page-numbers.current,
.page-numbers:hover {
	border-color: var(--ink);
	background: var(--ink);
	color: var(--paper);
}

.article-hero__inner {
	display: flex;
	min-height: 70svh;
	flex-direction: column;
	justify-content: flex-end;
	padding-top: calc(var(--header-height) + 90px);
	padding-bottom: clamp(70px, 9vw, 130px);
}

.article-hero h1 {
	max-width: 1250px;
	margin-top: 30px;
	font-size: clamp(3.4rem, 7.5vw, 8.2rem);
}

.back-link {
	margin-bottom: 24px;
	color: var(--accent-soft);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.article-featured {
	position: relative;
	z-index: 2;
	margin-top: -62px;
	aspect-ratio: 16 / 7;
	overflow: hidden;
	background: var(--ink-soft);
}

.article-featured img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.post-navigation {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 30px;
	border-top: 1px solid var(--line);
	padding-block: 60px 100px;
}

.post-navigation > div:last-child {
	text-align: right;
}

.post-navigation a {
	display: grid;
	gap: 8px;
	font-size: clamp(1.1rem, 2vw, 1.8rem);
	font-weight: 650;
	letter-spacing: -0.03em;
}

.post-navigation a span {
	color: var(--muted);
	font-size: 0.64rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* Contact */
.contact-layout {
	display: grid;
	grid-template-columns: minmax(300px, 0.82fr) minmax(440px, 1.18fr);
	gap: clamp(70px, 11vw, 170px);
	align-items: start;
}

.contact-intro h2 {
	font-size: clamp(2.8rem, 5vw, 5.4rem);
}

.contact-intro > p:not(.eyebrow) {
	margin: 36px 0;
	color: #555a54;
	font-size: 1.08rem;
}

.contact-details {
	margin: 48px 0;
}

.contact-details > div {
	display: grid;
	grid-template-columns: 120px 1fr;
	border-top: 1px solid var(--line);
	padding-block: 17px;
	gap: 24px;
}

.contact-details > div:last-child {
	border-bottom: 1px solid var(--line);
}

.contact-details dt {
	color: var(--muted);
	font-size: 0.67rem;
	font-weight: 720;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.contact-details dd {
	margin: 0;
}

.contact-form-panel {
	border-top: 4px solid var(--accent-soft);
	background: var(--ink);
	color: var(--paper);
	padding: clamp(30px, 5vw, 64px);
}

.contact-form-panel__label {
	margin: 0 0 30px;
	color: var(--accent-soft);
	font-size: 0.7rem;
	font-weight: 750;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.contact-form-panel .ttv-contact-form {
	max-width: none;
	margin: 0;
	gap: 22px;
}

.contact-form-panel .ttv-contact-form__intro {
	display: none;
}

.contact-form-panel .ttv-contact-form label {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
}

.contact-form-panel .ttv-contact-form input[type="text"],
.contact-form-panel .ttv-contact-form input[type="email"],
.contact-form-panel .ttv-contact-form textarea {
	border: 0;
	border-bottom: 1px solid rgba(242, 239, 231, 0.35);
	border-radius: 0;
	padding: 12px 0;
	background: transparent;
	color: var(--paper);
}

.contact-form-panel .ttv-contact-form textarea {
	min-height: 150px;
	resize: vertical;
}

.contact-form-panel .ttv-contact-form input:focus-visible,
.contact-form-panel .ttv-contact-form textarea:focus-visible {
	border-bottom-color: var(--accent-soft);
	outline: 0;
}

.contact-form-panel .ttv-contact-form__consent {
	grid-template-columns: 22px minmax(0, 1fr);
}

.contact-form-panel .ttv-contact-form__consent input {
	accent-color: var(--accent);
}

.contact-form-panel .ttv-contact-form__consent label,
.contact-form-panel .ttv-contact-form__help {
	color: rgba(242, 239, 231, 0.64);
	font-size: 0.78rem;
	font-weight: 450;
	letter-spacing: 0;
}

.contact-form-panel .ttv-contact-form a {
	border-bottom: 1px solid currentColor;
	color: var(--accent-soft);
}

.contact-form-panel .ttv-contact-form button {
	min-height: 50px;
	border: 1px solid var(--accent);
	border-radius: 2px;
	padding: 12px 22px;
	background: var(--accent);
	color: var(--on-accent);
	font-size: 0.76rem;
	font-weight: 750;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	transition: background-color 180ms ease, color 180ms ease, opacity 180ms ease;
}

.contact-form-panel .ttv-contact-form button:hover {
	background: transparent;
	border-color: var(--accent-soft);
	color: var(--accent-soft);
}

.contact-form-panel .ttv-contact-form button[aria-busy="true"] {
	cursor: wait;
	opacity: 0.6;
}

.contact-form-panel .ttv-contact-form__notice {
	border-width: 1px;
	border-radius: 0;
}

/* Editorial club, teams and statute pages */
.editorial-intro__grid,
.statute-intro__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.72fr);
	gap: clamp(60px, 10vw, 170px);
	align-items: end;
}

.editorial-intro h2,
.editorial-section-heading h2,
.venue-training h2,
.membership h2,
.statute-intro h2 {
	margin: 0;
	font-size: clamp(3.2rem, 6.5vw, 7rem);
	font-weight: 710;
	letter-spacing: -0.066em;
	line-height: 0.92;
}

.editorial-intro__copy,
.statute-intro__copy {
	padding-bottom: 6px;
}

.editorial-intro__copy > p:first-child,
.statute-intro__copy > p:first-child {
	margin: 0 0 34px;
	color: #535852;
	font-size: clamp(1.03rem, 1.35vw, 1.24rem);
	line-height: 1.68;
}

.editorial-note,
.document-meta {
	margin-top: 28px;
	color: var(--muted);
	font-size: 0.78rem;
	line-height: 1.55;
}

.venue-photo {
	height: min(82svh, 880px);
	overflow: hidden;
	background: var(--ink);
}

.venue-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 55%;
	transition: transform 900ms cubic-bezier(0.2, 0.75, 0.2, 1);
}

.venue-photo:hover img {
	transform: scale(1.018);
}

.editorial-section-heading {
	display: grid;
	margin-bottom: clamp(55px, 8vw, 110px);
	grid-template-columns: 0.4fr 1fr;
	gap: 40px;
	align-items: start;
}

.editorial-section-heading .eyebrow {
	margin-top: 12px;
}

.fact-lines {
	border-top: 1px solid var(--line);
}

.fact-line {
	display: grid;
	grid-template-columns: 70px 220px minmax(0, 1fr);
	gap: clamp(22px, 4vw, 68px);
	align-items: start;
	border-bottom: 1px solid var(--line);
	padding-block: clamp(24px, 3vw, 40px);
}

.fact-line > span {
	color: var(--accent-dark);
	font-size: 0.68rem;
	font-weight: 760;
	letter-spacing: 0.12em;
}

.fact-line > strong {
	font-size: clamp(1.15rem, 1.8vw, 1.7rem);
	font-weight: 650;
	letter-spacing: -0.03em;
}

.fact-line > p {
	max-width: 640px;
	margin: 0;
	color: #5d625c;
}

.venue-training__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(390px, 0.72fr);
	gap: clamp(65px, 10vw, 170px);
	align-items: start;
}

.venue-training__grid > div > p:last-child {
	max-width: 520px;
	margin: 40px 0 0;
	color: rgba(242, 239, 231, 0.62);
	font-size: 1.05rem;
}

.schedule-lines,
.schedule-lines dd {
	margin: 0;
}

.schedule-lines {
	border-top: 1px solid var(--line-light);
}

.schedule-lines > div {
	display: flex;
	justify-content: space-between;
	gap: 25px;
	border-bottom: 1px solid var(--line-light);
	padding-block: 18px;
}

.schedule-lines dt {
	font-weight: 630;
}

.schedule-lines dd {
	color: var(--accent-soft);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.06em;
}

.membership__grid {
	display: grid;
	grid-template-columns: minmax(300px, 0.72fr) minmax(480px, 1.28fr);
	gap: clamp(70px, 11vw, 180px);
	align-items: start;
}

.membership header > p:last-child {
	max-width: 480px;
	margin-top: 38px;
	color: #5d625c;
}

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

.price-line {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 5px 28px;
	align-items: baseline;
	border-bottom: 1px solid var(--line);
	padding-block: 24px;
}

.price-line strong {
	font-size: clamp(1.25rem, 2.2vw, 2.1rem);
	font-weight: 650;
	letter-spacing: -0.035em;
}

.price-line span {
	color: var(--accent-dark);
	font-size: clamp(1.65rem, 3vw, 3rem);
	font-weight: 720;
	letter-spacing: -0.05em;
}

.price-line small {
	grid-column: 1 / -1;
	color: var(--muted);
}

.payment-note {
	padding-top: clamp(50px, 7vw, 90px);
}

.payment-note h3 {
	margin: 0 0 20px;
	font-size: clamp(1.8rem, 3vw, 3rem);
	font-weight: 660;
	letter-spacing: -0.045em;
}

.payment-note > p {
	max-width: 650px;
	color: #5d625c;
}

.payment-note dl {
	margin-top: 38px;
}

.payment-note dl > div {
	display: grid;
	grid-template-columns: 170px 1fr;
	gap: 24px;
	border-top: 1px solid var(--line);
	padding-block: 13px;
}

.payment-note dt {
	color: var(--muted);
	font-size: 0.68rem;
	font-weight: 720;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.payment-note dd {
	margin: 0;
	overflow-wrap: anywhere;
}

.team-directory {
	padding-bottom: clamp(100px, 14vw, 210px);
}

.team-chapter {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.14fr) minmax(330px, 0.72fr);
	gap: clamp(55px, 9vw, 145px);
	align-items: center;
	border-top: 1px solid var(--line);
	padding-block: clamp(75px, 10vw, 145px);
}

.team-chapter__number {
	position: absolute;
	top: 22px;
	left: 0;
	margin: 0;
	color: var(--accent-dark);
	font-size: 0.7rem;
	font-weight: 780;
	letter-spacing: 0.14em;
}

.team-chapter__media {
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--ink);
}

.team-chapter__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 750ms cubic-bezier(0.2, 0.75, 0.2, 1);
}

.team-chapter:hover .team-chapter__media img {
	transform: scale(1.025);
}

.team-chapter--reverse .team-chapter__media {
	order: 2;
}

.team-chapter--reverse .team-chapter__body {
	order: 1;
}

.team-chapter__body h2 {
	margin: 0;
	font-size: clamp(2.8rem, 5.5vw, 5.8rem);
	font-weight: 700;
	letter-spacing: -0.065em;
	line-height: 0.92;
}

.team-chapter__body dl {
	margin: clamp(35px, 5vw, 60px) 0 34px;
}

.team-chapter__body dl > div {
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: 24px;
	border-top: 1px solid var(--line);
	padding-block: 14px;
}

.team-chapter__body dl > div:last-child {
	border-bottom: 1px solid var(--line);
}

.team-chapter__body dt {
	color: var(--muted);
	font-size: 0.66rem;
	font-weight: 720;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.team-chapter__body dd {
	margin: 0;
	font-weight: 600;
}

.statute-intro {
	padding-bottom: clamp(70px, 9vw, 130px);
}

.statute-intro__copy .button {
	width: fit-content;
}

.legal-review-note {
	display: grid;
	margin-top: clamp(70px, 10vw, 135px);
	grid-template-columns: 180px 1fr;
	gap: clamp(30px, 6vw, 90px);
	border-top: 1px solid #a66b22;
	border-bottom: 1px solid #a66b22;
	padding-block: 22px;
	color: #724915;
}

.legal-review-note strong {
	font-size: 0.7rem;
	font-weight: 780;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.legal-review-note p {
	max-width: 850px;
	margin: 0;
}

.statute-document {
	padding-top: 0;
}

.statute-document__header,
.statute-document__footer {
	display: flex;
	justify-content: space-between;
	gap: 30px;
	border-top: 4px solid var(--ink);
	border-bottom: 1px solid var(--line);
	padding-block: 20px;
}

.statute-document__header p,
.statute-document__footer p {
	margin: 0;
	font-weight: 700;
}

.statute-document__header span,
.statute-document__footer span {
	color: var(--muted);
	font-size: 0.78rem;
}

.statute-row {
	display: grid;
	grid-template-columns: 130px minmax(0, 790px);
	gap: clamp(35px, 8vw, 120px);
	justify-content: start;
	border-bottom: 1px solid var(--line);
	padding-block: clamp(50px, 7vw, 90px);
}

.statute-row__number {
	margin: 7px 0 0;
	color: var(--accent-dark);
	font-size: clamp(1.15rem, 2vw, 1.7rem);
	font-weight: 730;
	letter-spacing: -0.03em;
}

.statute-row__body h2 {
	margin: 0 0 30px;
	font-size: clamp(2rem, 3.8vw, 3.7rem);
	font-weight: 670;
	letter-spacing: -0.05em;
	line-height: 1;
}

.statute-row__body p,
.statute-row__body ul {
	margin-block: 0 1.15em;
	color: #3e433e;
	font-size: clamp(1rem, 1.15vw, 1.1rem);
	line-height: 1.75;
}

.statute-document__footer {
	border-top: 0;
	border-bottom: 4px solid var(--ink);
}

/* Footer */
.site-footer {
	background: var(--ink);
	color: var(--paper);
	padding: 0;
}

.site-footer__upper {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: var(--accent);
	padding-top: clamp(56px, 7vw, 96px);
}

.site-footer__lower {
	background: var(--ink);
	padding-bottom: 40px;
}

.site-footer__lead {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(180px, 0.42fr) minmax(0, 1fr);
	gap: 40px;
}

.site-footer h2 {
	margin-bottom: 0;
	font-size: clamp(3.5rem, 7.8vw, 8.2rem);
}

.site-footer__lead > div {
	min-width: 0;
}

.site-footer__lead > div > .text-link {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 2;
}

.site-footer__statement {
	position: relative;
	display: flex;
	width: min(100%, 440px);
	max-width: 100%;
	margin-inline: auto;
	align-items: center;
	justify-content: center;
}

.site-footer__lockup {
	display: block;
	width: 100%;
	height: auto;
}

.site-footer__rule {
	margin-top: clamp(36px, 5vw, 72px);
	border-top: 1px solid var(--line-light);
}

.site-footer__bottom {
	display: grid;
	grid-template-columns: 1.2fr 1.2fr 1fr auto;
	gap: 35px;
	align-items: start;
	color: rgba(242, 239, 231, 0.62);
	font-size: 0.72rem;
	padding-top: 36px;
}

.footer-brand {
	display: inline-flex;
	gap: 13px;
	align-items: center;
	color: var(--paper);
	font-size: 0.92rem;
	font-weight: 720;
}

.site-footer address {
	font-style: normal;
}

.footer-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
}

.footer-nav a,
.site-footer__copyright {
	margin: 0;
}

.footer-nav a:hover {
	color: var(--accent-soft);
}

/* Empty/error */
.error-page {
	min-height: 100svh;
	background: var(--ink);
	color: var(--paper);
}

.error-page__inner {
	display: flex;
	min-height: 100svh;
	flex-direction: column;
	justify-content: center;
	padding-top: var(--header-height);
}

.error-page h1 {
	margin: 0;
	font-size: clamp(4rem, 10vw, 10rem);
	font-weight: 750;
	letter-spacing: -0.075em;
	line-height: 0.82;
}

.error-page__inner > p:not(.eyebrow) {
	margin: 40px 0;
	color: rgba(242, 239, 231, 0.62);
}

/* Motion */
.js .hero-enter {
	opacity: 0;
	transform: translateY(28px);
}

.js.is-ready .hero-enter {
	opacity: 1;
	transform: translateY(0);
	transition: opacity 750ms ease, transform 750ms cubic-bezier(0.2, 0.75, 0.2, 1);
}

.js.is-ready .hero-enter--1 { transition-delay: 120ms; }
.js.is-ready .hero-enter--2 { transition-delay: 220ms; }
.js.is-ready .hero-enter--3 { transition-delay: 360ms; }
.js.is-ready .hero-enter--4 { transition-delay: 520ms; }

.js [data-reveal] {
	opacity: 0;
	transform: translateY(34px);
	transition: opacity 700ms ease, transform 800ms cubic-bezier(0.2, 0.75, 0.2, 1);
}

.js [data-reveal-delay="1"] {
	transition-delay: 120ms;
}

.js [data-reveal].is-visible {
	opacity: 1;
	transform: translateY(0);
}

[data-depth] {
	transform: translate3d(0, var(--depth-y, 0), 0);
	will-change: transform;
}

@media (max-width: 1120px) {
	.site-header__inner {
		grid-template-columns: auto 1fr auto;
	}

	.header-action {
		display: none;
	}

	.primary-nav {
		justify-self: end;
	}

	.split--training,
	.split--teams {
		gap: 60px;
	}

	.journal-row {
		grid-template-columns: 125px minmax(220px, 0.85fr) minmax(220px, 1fr) 48px;
	}
}

@media (max-width: 900px) {
	:root {
		--shell: calc(100vw - 40px);
		--header-height: 74px;
	}

	.nav-toggle {
		display: inline-flex;
		justify-self: end;
	}

	.primary-nav {
		position: fixed;
		top: var(--header-height);
		right: auto;
		bottom: 0;
		left: 0;
		width: 100cqi;
		display: flex;
		visibility: hidden;
		align-items: center;
		justify-content: center;
		background: var(--ink);
		opacity: 0;
		transform: translateY(-12px);
		transition: opacity 200ms ease, transform 200ms ease, visibility 200ms;
	}

	.nav-open .primary-nav {
		visibility: visible;
		opacity: 1;
		transform: translateY(0);
	}

	.primary-nav ul {
		width: var(--shell);
		margin-inline: auto;
		flex-direction: column;
		gap: 0;
		align-items: stretch;
	}

	.primary-nav li {
		border-bottom: 1px solid var(--line-light);
	}

	.primary-nav a {
		padding-block: 18px;
		font-size: clamp(1.3rem, 4vw, 2.1rem);
		font-weight: 620;
		letter-spacing: -0.02em;
		text-transform: none;
	}

	.primary-nav a::after {
		display: none;
	}

	.home-hero h1 span:last-child {
		margin-left: 0;
	}

	.home-hero__intro {
		margin-left: 0;
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.scroll-cue {
		display: none;
	}

	.split--training,
	.split--teams,
	.contact-layout,
	.journal-feature {
		grid-template-columns: 1fr;
	}

	.split--teams .image-frame {
		order: 2;
	}

	.split--teams .section-copy {
		order: 1;
	}

	.journal-row {
		grid-template-columns: 112px minmax(0, 1fr) 48px;
	}

	.journal-row > p:not(.journal-row__meta) {
		display: none;
	}

	.site-footer__bottom {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 620px) {
	:root {
		--shell: calc(100vw - 30px);
	}

	.shell-wide {
		width: 100%;
	}

	.section {
		padding-block: 80px;
	}

	.site-brand__type small {
		display: none;
	}

	.brand-mark {
		width: 38px;
		height: 38px;
	}

	.home-hero__content {
		padding-bottom: 42px;
	}

	.home-hero h1 {
		font-size: clamp(4rem, 20vw, 6.8rem);
		line-height: 0.8;
	}

	.home-hero__intro {
		margin-top: 34px;
	}

	.home-hero__intro .button-row {
		display: grid;
	}

	.button {
		width: 100%;
	}

	.image-frame--portrait {
		width: 100%;
	}

	.training-visual {
		padding-bottom: 0;
	}

	.training-times {
		position: relative;
		width: 100%;
	}

	.hall-moment,
	.hall-moment__copy {
		min-height: 68svh;
	}

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

	.story-row {
		grid-template-columns: 1fr 44px;
		gap: 14px 20px;
	}

	.story-row__date {
		grid-column: 1 / -1;
	}

	.story-row__body p {
		display: none;
	}

	.story-row__arrow {
		width: 42px;
		height: 42px;
	}

	.page-hero,
	.page-hero__inner {
		min-height: 57svh;
	}

	.page-hero--compact,
	.page-hero--compact .page-hero__inner {
		min-height: 45svh;
	}

	.page-hero h1,
	.journal-header h1,
	.article-hero h1 {
		font-size: clamp(3.4rem, 17vw, 6rem);
	}

	.prose figure,
	.prose .wp-block-image,
	.prose .alignwide {
		width: calc(100vw - 30px);
	}

	.journal-header__inner > p:last-child {
		margin-left: 0;
	}

	.journal-feature__media {
		aspect-ratio: 4 / 3;
	}

	.journal-row {
		grid-template-columns: 1fr 42px;
		gap: 16px;
	}

	.journal-row__meta {
		grid-column: 1 / -1;
	}

	.journal-row h2 {
		font-size: 1.65rem;
	}

	.article-featured {
		width: 100%;
		margin-top: -32px;
		aspect-ratio: 4 / 3;
	}

	.post-navigation {
		grid-template-columns: 1fr;
	}

	.post-navigation > div:last-child {
		text-align: left;
	}

	.contact-form-panel {
		margin-inline: 0;
		padding: 30px 22px;
	}

	.contact-details > div {
		grid-template-columns: 1fr;
		gap: 6px;
	}

	.site-footer__lead {
		grid-template-columns: 1fr;
	}

	.site-footer__statement {
		width: min(100%, 300px);
	}

	.site-footer__lead > div > .text-link {
		top: 24px;
	}

	.site-footer__bottom {
		grid-template-columns: 1fr;
		gap: 24px;
	}

}

@media (max-width: 900px) {
	.editorial-intro__grid,
	.statute-intro__grid,
	.venue-training__grid,
	.membership__grid,
	.team-chapter {
		grid-template-columns: 1fr;
	}

	.editorial-section-heading {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.editorial-section-heading .eyebrow {
		margin-top: 0;
	}

	.venue-photo {
		height: 62svh;
	}

	.fact-line {
		grid-template-columns: 55px 170px minmax(0, 1fr);
	}

	.team-chapter--reverse .team-chapter__media,
	.team-chapter--reverse .team-chapter__body {
		order: initial;
	}

	.team-chapter__body {
		max-width: 680px;
	}
}

@media (max-width: 620px) {
	.editorial-intro h2,
	.editorial-section-heading h2,
	.venue-training h2,
	.membership h2,
	.statute-intro h2 {
		font-size: clamp(3rem, 14.5vw, 5rem);
	}

	.venue-photo {
		width: 100%;
		height: 54svh;
	}

	.fact-line {
		grid-template-columns: 42px 1fr;
		gap: 12px 18px;
	}

	.fact-line > p {
		grid-column: 2;
	}

	.schedule-lines > div {
		font-size: 0.9rem;
	}

	.price-line {
		grid-template-columns: 1fr auto;
	}

	.payment-note dl > div,
	.team-chapter__body dl > div {
		grid-template-columns: 1fr;
		gap: 5px;
	}

	.team-chapter {
		padding-top: 72px;
	}

	.team-chapter__media {
		aspect-ratio: 1 / 1;
	}

	.team-chapter__body h2 {
		font-size: clamp(2.8rem, 14vw, 4.4rem);
	}

	.statute-intro__copy .button {
		width: 100%;
	}

	.legal-review-note {
		grid-template-columns: 1fr;
		gap: 9px;
	}

	.statute-document__header,
	.statute-document__footer {
		align-items: flex-start;
		flex-direction: column;
		gap: 5px;
	}

	.statute-row {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.statute-row__number {
		margin: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}

	.js .hero-enter,
	.js [data-reveal] {
		opacity: 1;
		transform: none;
	}

	[data-depth] {
		transform: none !important;
	}
}


/* Gutenberg migration compatibility: preserve legacy prose spacing. */
.prose .wp-block-group.is-layout-flow > * {
  margin-block: 0;
}

.prose .wp-block-group.is-layout-flow > p,
.prose .wp-block-group.is-layout-flow > ul,
.prose .wp-block-group.is-layout-flow > ol {
  margin-block: 1.2em;
}

.prose .wp-block-group.is-layout-flow > h2,
.prose .wp-block-group.is-layout-flow > h3,
.prose .wp-block-group.is-layout-flow > h4 {
  margin: 2.2em 0 0.65em;
}

.prose .wp-block-group.is-layout-flow > figure,
.prose .wp-block-group.is-layout-flow > .wp-block-image,
.prose .wp-block-group.is-layout-flow > .alignwide {
  width: min(1120px, calc(100vw - 80px));
  max-width: none;
  margin-block: clamp(45px, 6vw, 80px);
  margin-left: 50%;
  transform: translateX(-50%);
}


/* Live editorial override: favicon brand mark. */
.brand-mark {
	display: inline-grid;
	width: 43px;
	height: 43px;
	flex: 0 0 auto;
	place-items: center;
	transition: transform 180ms ease;
}

.brand-mark__icon {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	border-radius: 10%;
}

.site-brand:hover .brand-mark,
.footer-brand:hover .brand-mark {
	transform: rotate(-8deg);
}

/* Remove legacy circular brand styling. */
.brand-mark {
	border: 0;
	border-radius: 0;
	background: transparent;
}

/* Live editorial override: split training schedule panel. */
.training-times {
	padding: 0;
}

.training-times > p {
	margin: 0;
	padding: 18px 24px;
	background: var(--accent);
	color: #fff;
}

.training-times dl {
	padding: 18px 24px 26px;
}

/* Live editorial override: requested hall photo shade. */
.hall-moment__shade {
	background: linear-gradient(to top, rgba(7, 12, 10, 0.52), rgba(7, 12, 10, 0));
	box-shadow: none;
}

/* Live editorial override: Gutenberg venue and team content. */
.editorial-gutenberg-content--venue .prose,
.editorial-gutenberg-content--teams .prose {
	width: min(900px, var(--shell));
}

.editorial-gutenberg-content--venue .prose a:not(.wp-element-button),
.editorial-gutenberg-content--teams .prose a:not(.wp-element-button) {
	color: var(--accent-soft);
}

.editorial-gutenberg-content--venue .prose > p:first-child,
.editorial-gutenberg-content--teams .prose > p:first-child {
	color: var(--accent-soft);
	font-size: 0.72rem;
	font-weight: 750;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.editorial-gutenberg-content--venue .prose ul.wp-block-list {
	margin-left: 0;
	padding-left: 0;
	border-top: 1px solid var(--line-light);
	list-style: none;
}

.editorial-gutenberg-content--venue .prose ul.wp-block-list li {
	position: relative;
	margin: 0;
	border-bottom: 1px solid var(--line-light);
	padding: 16px 0 16px 26px;
	color: rgba(242, 239, 231, 0.78);
}

.editorial-gutenberg-content--venue .prose ul.wp-block-list li::before {
	position: absolute;
	top: 1.05em;
	left: 0;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--accent-soft);
	content: '';
}

/* Live editorial override: editor-controlled featured image position. */
.article-featured img {
	object-position: center var(--ttv-featured-image-position, 50%);
}

/* Live editorial override: responsive mobile layout. */
@media (max-width: 900px) {
	.journal-row .journal-row__meta {
		display: none;
	}

	.primary-nav {
		opacity: 1;
		pointer-events: none;
		transform: translateX(-100%);
		transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 420ms;
	}

	.nav-open .primary-nav {
		pointer-events: auto;
		transform: translateX(0);
		transition: transform 420ms cubic-bezier(0.4, 0, 1, 1), visibility 0s;
	}

	.home-hero h1 span:last-child {
		margin-left: clamp(28px, 8vw, 88px);
	}

	.home-hero__intro {
		margin-left: clamp(28px, 8vw, 88px);
	}

	.section-copy .lede {
		max-width: none;
	}

	.training-visual .image-frame--portrait {
		width: 100%;
		aspect-ratio: 4 / 3;
	}

	.training-visual .image-frame--portrait img {
		object-position: center 38%;
	}

	.site-footer__statement {
		width: min(100%, 260px);
		margin-inline: 0;
		justify-self: center;
	}

	.site-footer__lead > div > .text-link {
		position: static;
		margin-top: 22px;
	}
}

@media (max-width: 620px) {
	body {
		font-size: clamp(14px, calc(11.875px + 0.665vw), 16px);
	}

	.home-hero h1 {
		font-size: clamp(3.6rem, 18.5vw, 6rem);
	}

	.home-hero h1 span:last-child {
		margin-left: clamp(22px, 7vw, 55px);
	}

	.site-footer__lead {
		display: flex;
		flex-direction: column;
		gap: 28px;
	}

	.site-footer__lead > div {
		display: flex;
		flex-direction: column;
	}

	.site-footer__lead > div > .text-link {
		align-self: flex-start;
		order: 2;
	}

	.site-footer__statement {
		width: 180px;
		align-self: center;
		margin: 0;
	}

	.site-footer__bottom {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.site-footer__upper {
		padding-top: 42px;
	}

	.site-footer h2 {
		font-size: clamp(2.7rem, 13vw, 4.5rem);
	}
}

/* Live editorial override: center footer lockup below 1280px. */
@media (max-width: 1280px) and (min-width: 901px) {
	.site-footer__lead {
		grid-template-columns: 1fr;
	}

	.site-footer__lead > .eyebrow {
		text-align: center;
	}

	.site-footer__lead > div {
		display: grid;
		justify-items: center;
	}

	.site-footer__lead > div > .text-link {
		position: static;
		margin-top: 22px;
	}
}

@media (max-width: 620px) {
	html {
		font-size: clamp(14px, calc(11.875px + 0.665vw), 16px);
	}

	body {
		font-size: 1rem;
	}
}


/* Live-Nachbesserung: Trainingszeiten */
.training-times dl { padding: 0 18px 12px 26px; }


/* Live-Nachbesserung: Listenpunkte auf der Grundlinie */
.editorial-gutenberg-content--venue .prose ul.wp-block-list li::before,
.editorial-gutenberg-content--teams .prose ul.wp-block-list li::before { top: 1.4em; }


/* Live-Nachbesserung: Mobile-Navigation als rechter Seitenbereich */
@media (max-width: 900px) {
	.primary-nav {
		left: auto;
		right: 0;
		width: min(86vw, 420px);
		max-width: calc(100vw - 24px);
		transform: translateX(100%);
		visibility: hidden;
		will-change: transform;
		transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 420ms;
	}

	.nav-open .primary-nav {
		transform: translateX(0);
		visibility: visible;
		transition: transform 420ms cubic-bezier(0.4, 0, 1, 1), visibility 0s linear 0s;
	}
}


/* Live-Nachbesserung: Footer und lineare Typografie bis 621 px */
@media (max-width: 900px) {
	.site-footer__lead {
		display: flex;
		flex-direction: column;
		gap: 28px;
	}

	.site-footer__lead > .eyebrow {
		text-align: center;
	}

	.site-footer__lead > div {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.site-footer__statement {
		width: min(100%, 260px);
		margin-inline: auto;
		align-self: center;
		justify-self: center;
	}

	.site-footer__lead > div > .text-link {
		position: static;
		margin-top: 22px;
		align-self: center;
	}
}

@media (max-width: 620px) {
	html {
		font-size: clamp(14px, calc(11.875px + 0.665vw), 16px);
	}

	body,
	button,
	input,
	textarea,
	select {
		font-size: 1rem;
	}

	.site-footer__lead {
		display: flex;
		flex-direction: column;
		gap: 28px;
	}

	.site-footer__lead > div {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.site-footer__lead > div > .text-link {
		align-self: center;
	}

	.site-footer__statement {
		width: min(180px, 70vw);
		align-self: center;
	}

	.site-footer__bottom {
		display: grid;
		grid-template-columns: 1fr;
		gap: 18px;
		justify-items: stretch;
	}

	.site-footer__bottom > * {
		min-width: 0;
	}
}


/* Live-Nachbesserung: Brandmark und mobiles Menü */
.brand-mark {
	width: 36px;
	height: 36px;
	flex: 0 0 auto;
	overflow: hidden;
	border: 0;
	border-radius: 50%;
	background: var(--ink-soft);
}

.brand-mark__icon {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 42%;
	border-radius: inherit;
}

@media (max-width: 620px) {
	.brand-mark {
		width: 30px;
		height: 30px;
	}
}

@media (max-width: 900px) {
	.primary-nav {
		top: var(--header-height);
		right: 0;
		bottom: 0;
		left: 0;
		width: 100vw;
		max-width: none;
		min-height: calc(100svh - var(--header-height));
		display: flex;
		visibility: hidden;
		align-items: center;
		justify-content: center;
		padding-block: clamp(24px, 5vw, 48px);
		background: var(--ink);
		opacity: 0;
		pointer-events: none;
		transform: translateY(-12px);
		will-change: auto;
		transition: opacity 200ms ease, transform 200ms ease, visibility 200ms linear;
	}

	.nav-open .primary-nav {
		visibility: visible;
		opacity: 1;
		pointer-events: auto;
		transform: translateY(0);
	}

	.primary-nav ul {
		width: var(--shell);
		margin-inline: auto;
		padding-inline: 16px;
		flex-direction: column;
		gap: 0;
		align-items: stretch;
	}

	.primary-nav a {
		padding: 18px 16px;
	}
}


/* Korrektur: klares Vereins-Signet statt Foto-Thumbnail */
.brand-mark {
	border-radius: 10px;
	background: transparent;
}

.brand-mark__icon {
	object-fit: contain;
	object-position: center;
	border-radius: inherit;
}


/* Sofort-Fallback, bis der PHP-Cache den neuen Markup-Quelltext ausliefert */
.brand-mark {
	background-image: url("https://www.ttvtreptow90.de/wp-content/uploads/2026/08/site-icon-ttv-treptow-90.png");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
}

.brand-mark__icon {
	visibility: hidden;
}
