/*
Theme Name: GTGF Performance
Theme URI: https://gtgf.nl/
Author: GTGF
Description: Premium performance-first WordPress-theme voor GTGF, met beheerbare Stories, Kenniscentrum, jaarplanner en Trainingsweek-aanvragen.
Version: 14.0.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: gtgf
Tags: custom-logo, custom-menu, featured-images, responsive-layout, accessibility-ready
*/

:root {
	--orange: #ff5a00;
	--orange-hot: #ff6a00;
	--black: #050505;
	--ink: #101010;
	--white: #ffffff;
	--paper: #f4f2ed;
	--muted: #a6a6a6;
	--line: rgba(255, 255, 255, .16);
	--line-dark: rgba(5, 5, 5, .14);
	--wrap: min(1180px, calc(100vw - 48px));
	--display: "Arial Black", "Helvetica Neue", Arial, sans-serif;
	--body: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--black); }
body {
	margin: 0;
	background: var(--black);
	color: var(--white);
	font-family: var(--body);
	font-size: 15px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .2em; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { background: var(--orange); color: var(--black); }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.screen-reader-text:focus {
	top: 8px; left: 8px; z-index: 100000; width: auto; height: auto; padding: 14px 18px;
	clip: auto; background: var(--white); color: var(--black); font-weight: 800;
}
.wrap { width: var(--wrap); margin-inline: auto; }
.narrow { width: min(760px, calc(100vw - 48px)); margin-inline: auto; }
.eyebrow {
	margin: 0 0 18px;
	color: var(--orange);
	font-size: .72rem;
	font-weight: 900;
	letter-spacing: .22em;
	line-height: 1.2;
	text-transform: uppercase;
}
.eyebrow--light { color: rgba(255,255,255,.68); }
.accent { color: var(--orange); }
.slash { color: var(--orange); padding-inline: .25em; }

.site-header {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 999;
	border-bottom: 1px solid transparent;
	background: linear-gradient(to bottom, rgba(5,5,5,.9), rgba(5,5,5,.15));
	transition: background .25s ease, border-color .25s ease, backdrop-filter .25s ease;
}
.site-header.is-scrolled {
	background: rgba(5,5,5,.9);
	border-color: var(--line);
	-webkit-backdrop-filter: blur(18px);
	backdrop-filter: blur(18px);
}
body.admin-bar .site-header { top: 32px; }
.header-inner {
	min-height: 86px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
}
.site-branding { position: relative; z-index: 3; flex: 0 0 auto; }
.site-nav { margin-left: auto; }
.header-actions { position: relative; z-index: 3; display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.header-account-link { display: inline-flex; min-height: 40px; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid rgba(255,255,255,.28); color: rgba(255,255,255,.86); font-size: .62rem; font-weight: 950; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; transition: border-color .2s ease, background .2s ease, color .2s ease, transform .2s ease; }
.header-account-link svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.header-account-link:hover, .header-account-link:focus-visible { border-color: var(--orange); background: var(--orange); color: var(--black); transform: translateY(-1px); }
.header-account-link.is-authenticated { border-color: rgba(255,90,0,.72); }
.custom-logo-link { display: block; }
.custom-logo { display: block; max-height: 64px; width: auto; }
.brand-fallback {
	display: block;
	width: 215px;
	height: 77px;
	overflow: hidden;
	text-decoration: none;
}
.brand-fallback__image {
	display: block;
	width: 100%; height: 100%;
	object-fit: contain;
	object-position: left center;
	filter: url("#gtgf-remove-black");
}
.gtgf-logo-filter { position: absolute; overflow: hidden; pointer-events: none; }
.site-nav ul { display: flex; align-items: center; gap: clamp(15px, 2vw, 30px); margin: 0; padding: 0; list-style: none; }
.site-nav a {
	position: relative;
	display: block;
	padding: 10px 0;
	color: rgba(255,255,255,.82);
	font-size: .68rem;
	font-weight: 900;
	letter-spacing: .14em;
	text-decoration: none;
	text-transform: uppercase;
}
.site-nav a::after {
	content: "";
	position: absolute;
	left: 0; right: 100%; bottom: 4px;
	height: 2px;
	background: var(--orange);
	transition: right .2s ease;
}
.site-nav a:hover, .site-nav a:focus-visible, .site-nav .current-menu-item > a { color: var(--white); }
.site-nav a:hover::after, .site-nav a:focus-visible::after, .site-nav .current-menu-item > a::after { right: 0; }
.nav-toggle {
	display: none;
	position: relative;
	z-index: 3;
	width: 48px; height: 48px;
	padding: 0;
	border: 1px solid var(--line);
	background: transparent;
	color: var(--white);
	cursor: pointer;
}
.nav-toggle span:not(.screen-reader-text) { position: absolute; left: 13px; width: 20px; height: 2px; background: currentColor; transition: transform .2s ease, top .2s ease; }
.nav-toggle span:nth-child(2) { top: 18px; }
.nav-toggle span:nth-child(3) { top: 27px; }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { top: 23px; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { top: 23px; transform: rotate(-45deg); }

.hero {
	position: relative;
	min-height: max(760px, 100svh);
	display: grid;
	align-items: end;
	overflow: hidden;
	padding: 160px 0 78px;
	background:
		radial-gradient(circle at 78% 30%, rgba(255,90,0,.18), transparent 26%),
		linear-gradient(115deg, #050505 0%, #050505 57%, #101010 100%);
}
.hero::before {
	content: "";
	position: absolute;
	width: 58vw; height: 130vh;
	right: -24vw; top: -28vh;
	border: 1px solid rgba(255,90,0,.26);
	background: linear-gradient(150deg, rgba(255,90,0,.15), transparent 52%);
	transform: rotate(21deg);
	box-shadow: 0 0 100px rgba(255,90,0,.08);
}
.hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: url("assets/images/topo.svg") 72% 52% / min(1080px, 92vw) auto no-repeat;
	opacity: .8;
	pointer-events: none;
}
.hero__mark {
	position: absolute;
	right: clamp(-50px, 2vw, 50px);
	top: 17%;
	width: min(520px, 42vw);
	aspect-ratio: 1.5;
	background: url("assets/images/gtgf-icon.png") center / contain no-repeat;
	opacity: .22;
	filter: saturate(1.25);
}
.hero__inner { position: relative; z-index: 2; }
.hero h1 {
	max-width: 1100px;
	margin: 0;
	font-family: var(--display);
	font-size: clamp(4.45rem, 13.7vw, 12.8rem);
	font-stretch: condensed;
	font-weight: 950;
	letter-spacing: -.075em;
	line-height: .78;
	text-transform: uppercase;
}
.hero h1 span { display: block; }
.hero h1 .hero__perform { color: var(--orange); }
.hero__lower {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 36px;
	margin-top: 50px;
	padding-top: 26px;
	border-top: 1px solid var(--line);
}
.hero__tagline { margin: 0; font-size: clamp(.76rem, 1.4vw, 1rem); font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.hero__copy { max-width: 500px; margin: 0; color: rgba(255,255,255,.68); font-size: .95rem; }
.hero__index {
	position: absolute;
	right: 0; bottom: 105px;
	color: rgba(255,255,255,.3);
	font-family: var(--display);
	font-size: .7rem;
	font-weight: 900;
	letter-spacing: .25em;
	writing-mode: vertical-rl;
}
.scroll-cue { display: inline-flex; align-items: center; gap: 12px; margin-top: 32px; color: rgba(255,255,255,.58); font-size: .65rem; font-weight: 800; letter-spacing: .18em; text-decoration: none; text-transform: uppercase; }
.scroll-cue::before { content: ""; width: 42px; height: 1px; background: var(--orange); }

.section { position: relative; padding: clamp(90px, 11vw, 150px) 0; }
.section--paper { background: var(--paper); color: var(--black); }
.section--white { background: var(--white); color: var(--black); }
.section--black { background: var(--black); color: var(--white); }
.section--orange { background: var(--orange); color: var(--black); }
.section--angled { padding-top: clamp(125px, 14vw, 190px); clip-path: polygon(0 4vw, 100% 0, 100% 100%, 0 100%); margin-top: -4vw; }
.section-head { display: grid; grid-template-columns: .55fr 1.45fr; gap: 32px; align-items: start; margin-bottom: clamp(48px, 7vw, 86px); }
.section-head h2 {
	max-width: 850px;
	margin: 0;
	font-family: var(--display);
	font-size: clamp(2.65rem, 7vw, 6.5rem);
	font-weight: 950;
	letter-spacing: -.055em;
	line-height: .92;
	text-transform: uppercase;
}
.section-intro { grid-column: 2; max-width: 620px; margin: -5px 0 0; color: #555; font-size: clamp(1rem, 1.8vw, 1.25rem); }
.section--black .section-intro { color: rgba(255,255,255,.62); }
.section--orange .eyebrow { color: var(--black); }

.manifesto-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(50px, 9vw, 120px); align-items: start; }
.manifesto-lead { margin: 0; font-size: clamp(1.7rem, 3.4vw, 3.1rem); font-weight: 650; letter-spacing: -.035em; line-height: 1.12; }
.manifesto-copy { color: #505050; }
.manifesto-copy p:first-child { margin-top: 0; }
.principles { margin: 48px 0 0; padding: 0; list-style: none; counter-reset: principles; }
.principles li { display: grid; grid-template-columns: 52px 1fr; gap: 20px; align-items: baseline; padding: 22px 0; border-top: 1px solid var(--line-dark); counter-increment: principles; }
.principles li::before { content: "0" counter(principles); color: var(--orange); font-size: .72rem; font-weight: 900; letter-spacing: .16em; }
.principles strong { font-family: var(--display); font-size: clamp(1.15rem, 2.2vw, 1.8rem); letter-spacing: -.025em; text-transform: uppercase; }

.card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line-dark); border: 1px solid var(--line-dark); }
.performance-card { position: relative; min-height: 390px; padding: 34px; overflow: hidden; background: var(--white); transition: background .2s ease, color .2s ease, transform .2s ease; }
.performance-card:hover { z-index: 2; background: var(--black); color: var(--white); transform: translateY(-4px); }
.performance-card__number { display: block; margin-bottom: 100px; color: var(--orange); font-family: var(--display); font-size: .82rem; letter-spacing: .18em; }
.performance-card h3 { margin: 0 0 16px; font-family: var(--display); font-size: clamp(1.65rem, 3vw, 2.7rem); letter-spacing: -.045em; line-height: .95; text-transform: uppercase; }
.performance-card p { margin: 0; color: #616161; font-size: .95rem; }
.performance-card:hover p { color: rgba(255,255,255,.62); }
.performance-card::after { content: "→"; position: absolute; right: 30px; top: 28px; color: var(--orange); font-size: 1.6rem; }

.feature-story { position: relative; display: grid; grid-template-columns: 1.15fr .85fr; min-height: 600px; overflow: hidden; border: 1px solid var(--line); background: #0c0c0c; }
.feature-story__visual { position: relative; min-height: 500px; background: radial-gradient(circle at 56% 45%, rgba(255,90,0,.28), transparent 24%), linear-gradient(145deg, #171717 0 49%, #060606 49%); }
.feature-story__visual::before { content: "04:15"; position: absolute; left: 8%; bottom: 7%; color: rgba(255,255,255,.05); font-family: var(--display); font-size: clamp(6rem, 14vw, 12rem); font-weight: 950; letter-spacing: -.08em; line-height: .8; }
.feature-story__visual::after { content: ""; position: absolute; inset: 0; background: url("assets/images/topo.svg") center / cover no-repeat; }
.feature-story__badge { position: absolute; z-index: 2; left: 30px; top: 30px; padding: 9px 12px; border: 1px solid rgba(255,255,255,.3); font-size: .63rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.feature-story__content { display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(38px, 6vw, 76px); }
.feature-story h3 { margin: 0 0 22px; font-family: var(--display); font-size: clamp(2.7rem, 5.5vw, 5.6rem); font-weight: 950; letter-spacing: -.06em; line-height: .87; text-transform: uppercase; }
.feature-story__content > p:not(.eyebrow) { color: rgba(255,255,255,.63); }

.button, .wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	min-height: 52px;
	padding: 14px 22px;
	border: 1px solid var(--orange);
	background: var(--orange);
	color: var(--black);
	font-size: .7rem;
	font-weight: 950;
	letter-spacing: .13em;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
	transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
}
.button::after { content: "→"; font-size: 1rem; }
.button:hover, .button:focus-visible { background: transparent; color: var(--orange); transform: translateY(-2px); }
.button--ghost { border-color: var(--line); background: transparent; color: var(--white); }
.button--ghost:hover, .button--ghost:focus-visible { border-color: var(--orange); }
.button--dark { border-color: var(--black); background: var(--black); color: var(--white); }
.button--dark:hover, .button--dark:focus-visible { background: transparent; color: var(--black); }

.brief-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.brief-card { position: relative; display: flex; min-height: 410px; flex-direction: column; padding: 30px; border: 1px solid var(--line-dark); background: var(--white); color: var(--black); text-decoration: none; overflow: hidden; transition: transform .2s ease, box-shadow .2s ease; }
.brief-card:hover, .brief-card:focus-visible { transform: translateY(-5px); box-shadow: 0 22px 55px rgba(0,0,0,.12); }
.brief-card::before { content: ""; position: absolute; width: 150px; height: 260px; right: -95px; top: -80px; background: var(--orange); transform: rotate(26deg); }
.brief-card__top { position: relative; display: flex; justify-content: space-between; gap: 16px; color: #777; font-size: .65rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.brief-card__issue { color: var(--orange); }
.brief-card h3 { margin: auto 0 20px; max-width: 90%; font-family: var(--display); font-size: clamp(1.8rem, 3.2vw, 3rem); font-weight: 950; letter-spacing: -.045em; line-height: .92; text-transform: uppercase; }
.brief-card p { margin: 0; color: #5d5d5d; font-size: .9rem; }
.brief-card__arrow { position: absolute; right: 28px; bottom: 24px; color: var(--orange); font-size: 1.4rem; }
.brief-card--dark { border-color: var(--line); background: #0b0b0b; color: var(--white); }
.brief-card--dark p, .brief-card--dark .brief-card__top { color: rgba(255,255,255,.58); }

.week-band { position: relative; overflow: hidden; }
.week-band::before { content: ""; position: absolute; inset: 0; background: url("assets/images/topo.svg") 92% 50% / 900px auto no-repeat; opacity: .45; }
.week-band__grid { position: relative; display: grid; grid-template-columns: 1.25fr .75fr; gap: 60px; align-items: end; }
.week-band h2 { max-width: 880px; margin: 0; font-family: var(--display); font-size: clamp(3.4rem, 9.5vw, 8.8rem); font-weight: 950; letter-spacing: -.07em; line-height: .83; text-transform: uppercase; }
.week-band__facts { padding-left: 32px; border-left: 1px solid rgba(0,0,0,.3); }
.week-band__facts p { margin: 0 0 26px; font-weight: 650; }
.fact-line { display: flex; justify-content: space-between; gap: 20px; padding: 14px 0; border-top: 1px solid rgba(0,0,0,.22); font-size: .72rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }

.page-hero { position: relative; min-height: 590px; display: flex; align-items: flex-end; overflow: hidden; padding: 180px 0 90px; background: #070707; }
.page-hero::after { content: ""; position: absolute; width: 40vw; height: 120%; right: -18vw; bottom: -30%; background: var(--orange); transform: rotate(18deg); opacity: .95; }
.topo-layer { position: absolute; inset: 0; background: url("assets/images/topo.svg") center / cover no-repeat; opacity: .72; }
.page-hero__inner { position: relative; z-index: 2; }
.page-hero h1 { max-width: 1050px; margin: 0; font-family: var(--display); font-size: clamp(3.5rem, 10vw, 9.4rem); font-weight: 950; letter-spacing: -.07em; line-height: .84; text-transform: uppercase; }
.page-hero__intro { max-width: 700px; margin: 34px 0 0; color: rgba(255,255,255,.68); font-size: clamp(1rem, 2vw, 1.3rem); }
.page-hero--orange { background: var(--orange); color: var(--black); }
.page-hero--orange .eyebrow { color: var(--black); }
.page-hero--orange .page-hero__intro { color: rgba(0,0,0,.66); }
.page-hero--orange::after { background: var(--black); opacity: .12; }

.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(50px, 9vw, 120px); align-items: start; }
.split h2, .content-block h2 { margin: 0 0 28px; font-family: var(--display); font-size: clamp(2.4rem, 5vw, 5.2rem); font-weight: 950; letter-spacing: -.055em; line-height: .92; text-transform: uppercase; }
.split__copy { color: #505050; }
.split__copy p:first-child { margin-top: 0; }
.split--dark .split__copy { color: rgba(255,255,255,.64); }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.metric { padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.metric strong { display: block; color: var(--orange); font-family: var(--display); font-size: clamp(2rem, 4.6vw, 4.5rem); letter-spacing: -.055em; line-height: 1; }
.metric span { display: block; margin-top: 10px; color: rgba(255,255,255,.58); font-size: .64rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.athlete-proof { max-width: 900px; margin: 42px 0 0 auto; padding-left: 28px; border-left: 4px solid var(--orange); color: rgba(255,255,255,.7); font-size: clamp(.95rem,1.5vw,1.2rem); }
.single-gtgf_story .section--orange .split h2 span { color: var(--white); }
.timeline { margin: 0; padding: 0; list-style: none; }
.timeline li { position: relative; display: grid; grid-template-columns: 130px 1fr; gap: 26px; padding: 0 0 48px 32px; border-left: 1px solid var(--line-dark); }
.timeline li::before { content: ""; position: absolute; width: 11px; height: 11px; left: -6px; top: 6px; border-radius: 50%; background: var(--orange); }
.timeline time { color: var(--orange); font-size: .68rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.timeline h3 { margin: 0 0 8px; font-family: var(--display); font-size: 1.5rem; letter-spacing: -.025em; text-transform: uppercase; }
.timeline p { margin: 0; color: #5c5c5c; }

.archive-intro { padding-bottom: 60px; }
.archive-grid { padding-bottom: 130px; }
.brief-filters { display: flex; flex-wrap: wrap; gap: 10px; margin: -20px 0 42px; padding-bottom: 22px; border-bottom: 1px solid var(--line-dark); }
.brief-filter { display: inline-flex; align-items: center; gap: 12px; min-height: 43px; padding: 9px 15px; border: 1px solid var(--line-dark); background: rgba(255,255,255,.45); color: var(--black); font-size: .66rem; font-weight: 900; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease; }
.brief-filter small { display: grid; min-width: 21px; height: 21px; place-items: center; border-radius: 50%; background: rgba(0,0,0,.08); font-size: .58rem; }
.brief-filter:hover, .brief-filter:focus-visible { border-color: var(--orange); color: var(--orange); transform: translateY(-2px); }
.brief-filter.is-active { border-color: var(--black); background: var(--black); color: var(--white); }
.brief-filter.is-active small { background: var(--orange); color: var(--black); }
.pagination { margin-top: 60px; }
.pagination .nav-links { display: flex; gap: 8px; }
.pagination a, .pagination span { display: grid; min-width: 44px; height: 44px; place-items: center; border: 1px solid var(--line-dark); text-decoration: none; }
.pagination .current { background: var(--orange); border-color: var(--orange); color: var(--black); }

.single-hero { min-height: 720px; }
.single-meta { display: flex; flex-wrap: wrap; gap: 12px 26px; margin-top: 30px; color: rgba(255,255,255,.56); font-size: .68rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.single-meta strong { color: var(--orange); }
.article-layout { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: clamp(45px, 8vw, 100px); }
.article-sidebar { position: sticky; top: 120px; align-self: start; }
.article-sidebar__number { display: block; color: var(--orange); font-family: var(--display); font-size: clamp(4rem, 9vw, 8rem); letter-spacing: -.07em; line-height: .8; }
.article-content { color: #333; }
.article-content > *:first-child { margin-top: 0; }
.article-content h2, .article-content h3 { color: var(--black); font-family: var(--display); letter-spacing: -.035em; line-height: 1; text-transform: uppercase; }
.article-content h2 { margin-top: 2em; font-size: clamp(2rem, 4vw, 3.6rem); }
.article-content p { font-size: 1.06rem; }
.pdf-frame { margin-top: 50px; border: 1px solid var(--line-dark); background: #e8e6e1; }
.pdf-frame iframe { display: block; width: 100%; height: min(80vh, 900px); border: 0; }
.pdf-actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px; background: var(--black); color: var(--white); }
.pdf-actions p { margin: 0; color: rgba(255,255,255,.55); font-size: .75rem; }

.story-cover { position: relative; min-height: 640px; display: grid; place-items: center; overflow: hidden; background: radial-gradient(circle at 50% 42%, rgba(255,90,0,.27), transparent 25%), #050505; text-align: center; }
.story-cover::before { content: "04:15"; position: absolute; color: rgba(255,255,255,.04); font-family: var(--display); font-size: 25vw; font-weight: 950; letter-spacing: -.08em; }
.story-cover__inner { position: relative; z-index: 2; }
.story-cover h1 { margin: 0; font-family: var(--display); font-size: clamp(3.5rem, 10vw, 9rem); font-weight: 950; letter-spacing: -.065em; line-height: .86; text-transform: uppercase; }
.story-cover__target { margin: 28px 0 0; color: var(--orange); font-size: .78rem; font-weight: 900; letter-spacing: .2em; text-transform: uppercase; }

.join-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(60px, 10vw, 130px); }
.join-points { margin: 36px 0 0; padding: 0; list-style: none; }
.join-points li { padding: 18px 0; border-top: 1px solid var(--line-dark); font-weight: 800; }
.join-form { display: grid; gap: 22px; }
.form-row { display: grid; gap: 8px; }
.form-row label { font-size: .68rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.form-row input, .form-row textarea { width: 100%; padding: 15px 0; border: 0; border-bottom: 1px solid #777; border-radius: 0; outline: 0; background: transparent; color: var(--black); }
.form-row input:focus, .form-row textarea:focus { border-color: var(--orange); box-shadow: 0 2px 0 var(--orange); }
.form-row textarea { min-height: 150px; resize: vertical; }
.form-honey { position: absolute; left: -9999px; }
.notice { margin: 0 0 28px; padding: 16px 18px; border-left: 4px solid var(--orange); background: rgba(255,90,0,.1); }

.site-footer { position: relative; padding: 92px 0 30px; overflow: hidden; border-top: 1px solid var(--line); background: var(--black); }
.site-footer::after { content: "GTGF"; position: absolute; right: -2vw; bottom: -7vw; color: rgba(255,255,255,.025); font-family: var(--display); font-size: 32vw; font-weight: 950; letter-spacing: -.09em; line-height: .8; }
.footer-grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1.25fr .75fr; gap: 80px; }
.footer-statement { max-width: 680px; margin: 0; font-family: var(--display); font-size: clamp(2.6rem, 6vw, 5.8rem); font-weight: 950; letter-spacing: -.06em; line-height: .88; text-transform: uppercase; }
.footer-side { display: grid; align-content: start; gap: 32px; }
.footer-nav ul { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 25px; margin: 0; padding: 0; list-style: none; }
.footer-nav a { color: rgba(255,255,255,.64); font-size: .68rem; font-weight: 900; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.footer-nav a:hover { color: var(--orange); }
.social-links { display: flex; flex-wrap: wrap; gap: 18px; }
.social-links a { color: var(--orange); font-size: .68rem; font-weight: 900; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; }
.footer-bottom { position: relative; z-index: 2; display: flex; justify-content: space-between; gap: 20px; margin-top: 80px; padding-top: 24px; border-top: 1px solid var(--line); color: rgba(255,255,255,.38); font-size: .62rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.empty-state { padding: 70px 0; border-top: 1px solid var(--line-dark); }
.error-404 { min-height: 80vh; display: grid; place-items: center; padding: 150px 0 80px; text-align: center; }
.error-404 h1 { margin: 0; color: var(--orange); font-family: var(--display); font-size: clamp(7rem, 24vw, 18rem); letter-spacing: -.08em; line-height: .75; }
.error-404 h2 { font-family: var(--display); font-size: clamp(2rem, 5vw, 4rem); letter-spacing: -.04em; text-transform: uppercase; }
.alignwide { width: min(1180px, calc(100vw - 48px)); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.alignfull { width: 100vw; max-width: none; margin-left: 50%; transform: translateX(-50%); }

.has-js .reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.has-js .reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 980px) {
	:root { --wrap: min(100% - 36px, 1180px); }
	.site-nav { margin-left: 0; }
	.header-actions { margin-left: auto; }
	.nav-toggle { display: block; }
	.site-nav { position: fixed; inset: 0; display: grid; align-items: center; padding: 110px 28px 40px; background: rgba(5,5,5,.98); opacity: 0; visibility: hidden; transform: translateY(-12px); transition: opacity .2s ease, visibility .2s ease, transform .2s ease; }
	.site-nav.is-open { opacity: 1; visibility: visible; transform: none; }
	.site-nav ul { display: grid; align-content: center; gap: 0; }
	.site-nav li { border-top: 1px solid var(--line); }
	.site-nav li:last-child { border-bottom: 1px solid var(--line); }
	.site-nav a { padding: 14px 0; font-family: var(--display); font-size: clamp(1.3rem, 5vw, 2.3rem); letter-spacing: -.02em; }
	.section-head { grid-template-columns: 1fr; }
	.section-intro { grid-column: 1; margin-top: 0; }
	.card-grid, .brief-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.performance-card:last-child { grid-column: 1 / -1; }
	.feature-story, .week-band__grid, .footer-grid { grid-template-columns: 1fr; }
	.feature-story__visual { min-height: 400px; }
	.metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.article-layout, .join-grid { grid-template-columns: 1fr; }
	.login-intro, .login-account-card { grid-template-columns: 1fr; }
	.login-account-card__actions { justify-items: start; }
	.article-sidebar { position: static; }
	.article-sidebar__number { font-size: 5rem; }
}

@media (max-width: 680px) {
	:root { --wrap: min(100% - 28px, 1180px); }
	body { font-size: 16px; }
	.header-inner { min-height: 74px; gap: 12px; }
	.header-actions { gap: 7px; }
	.header-account-link { min-height: 42px; padding: 8px 10px; font-size: .56rem; letter-spacing: .07em; }
	.header-account-link svg { width: 15px; height: 15px; }
	.brand-fallback { width: 170px; height: 61px; }
	.hero { min-height: max(680px, 100svh); padding: 130px 0 56px; }
	.hero h1 { font-size: clamp(3.7rem, 18vw, 6rem); letter-spacing: -.065em; }
	.hero__mark { width: 75vw; right: -25vw; top: 19%; opacity: .2; }
	.hero__lower { display: grid; margin-top: 36px; }
	.hero__copy { font-size: .85rem; }
	.hero__index { display: none; }
	.section { padding: 80px 0; }
	.section--angled { padding-top: 110px; }
	.manifesto-grid, .split { grid-template-columns: 1fr; gap: 40px; }
	.card-grid, .brief-grid { grid-template-columns: 1fr; }
	.performance-card:last-child { grid-column: auto; }
	.performance-card { min-height: 330px; }
	.performance-card__number { margin-bottom: 72px; }
	.feature-story { display: block; }
	.feature-story__visual { min-height: 320px; }
	.feature-story__content { padding: 34px 24px 44px; }
	.week-band__grid { gap: 48px; }
	.week-band__facts { padding-left: 0; border-left: 0; }
	.page-hero { min-height: 520px; padding: 145px 0 70px; }
	.page-hero h1 { max-width: 100%; font-size: clamp(3.4rem, 13vw, 5.2rem); overflow-wrap: anywhere; }
	.metric-grid { grid-template-columns: 1fr 1fr; }
	.metric { padding: 20px 16px; }
	.timeline li { grid-template-columns: 1fr; gap: 8px; padding-left: 24px; }
	.pdf-frame iframe { height: 65vh; }
	.pdf-actions { align-items: flex-start; flex-direction: column; }
	.story-cover { min-height: 560px; padding-inline: 14px; }
	.footer-nav ul { grid-template-columns: 1fr; }
	.footer-bottom { flex-direction: column; }
}

@media (max-width: 782px) {
	body.admin-bar .site-header { top: 46px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Reference-led homepage — GTGF 1.1 */
body.home .site-header { background: linear-gradient(to bottom, rgba(0,0,0,.82), transparent); }
body.home .header-inner { min-height: 90px; }
body.home .brand-fallback { width: 205px; height: 73px; }
body.home .site-nav ul { gap: clamp(18px, 2.5vw, 38px); }
body.home .site-nav > ul > li:last-child { margin-left: clamp(8px, 2vw, 26px); }
body.home .site-nav > ul > li:last-child > a { min-width: 118px; padding: 13px 18px; background: var(--orange); color: var(--white); text-align: center; }
body.home .site-nav > ul > li:last-child > a::after { display: none; }

.home-reference { background: var(--white); color: var(--black); }
.home-hero { position: relative; min-height: min(760px, 100svh); display: grid; align-items: center; overflow: hidden; background: #000; }
.home-hero__image { position: absolute; inset: 0; background: url("assets/images/home-hero.jpg") 65% 50% / cover no-repeat; }
.home-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.98) 27%, rgba(0,0,0,.78) 42%, rgba(0,0,0,.18) 64%, transparent 100%); }
.home-hero__topo { position: absolute; z-index: 1; inset: 0 48% 0 0; background: url("assets/images/topo.svg") 70% 65% / 720px auto no-repeat; opacity: .45; }
.home-hero__inner { position: relative; z-index: 2; padding-top: 118px; padding-bottom: 62px; }
.home-hero__content { width: min(540px, 47vw); }
.home-hero h1 { margin: 0; color: var(--white); font-family: var(--display); font-size: clamp(4rem, 7.6vw, 7.5rem); font-weight: 950; letter-spacing: -.065em; line-height: .82; text-transform: uppercase; }
.home-hero h1 span { color: var(--orange); }
.home-hero__tagline { margin: 25px 0 0; color: var(--white); font-family: var(--display); font-size: clamp(.78rem, 1.25vw, 1.08rem); font-weight: 950; letter-spacing: .07em; text-transform: uppercase; }
.home-hero__tagline i { padding: 0 .25em; color: var(--orange); font-style: normal; }
.home-hero__copy { max-width: 425px; margin: 22px 0 28px; color: rgba(255,255,255,.72); font-size: .92rem; line-height: 1.65; }
.home-hero__slashes { position: absolute; z-index: 2; right: -22px; top: 42%; color: var(--orange); font-family: var(--display); font-size: clamp(3rem, 6vw, 6rem); font-weight: 950; letter-spacing: -.24em; transform: skewX(-16deg); }

.discipline-bar { position: relative; z-index: 3; background: var(--white); }
.discipline-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); }
.discipline-card { min-height: 245px; padding: 30px clamp(20px, 3vw, 44px); border-right: 1px solid var(--line-dark); color: var(--black); text-align: center; text-decoration: none; transition: color .2s ease, background .2s ease; }
.discipline-card:first-child { border-left: 1px solid var(--line-dark); }
.discipline-card svg { width: 54px; height: 48px; margin-bottom: 8px; fill: none; stroke: var(--orange); stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.7; transition: transform .2s ease; }
.discipline-card h2 { margin: 0 0 8px; font-family: var(--display); font-size: 1.25rem; letter-spacing: -.03em; text-transform: uppercase; }
.discipline-card p { margin: 0 0 14px; color: #555; font-size: .82rem; line-height: 1.45; }
.discipline-card span { color: var(--black); font-size: .62rem; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.discipline-card span::first-letter { color: var(--orange); }
.discipline-card:hover { background: #f5f3ef; color: var(--orange); }
.discipline-card:hover svg { transform: translateY(-4px); }

.home-kicker { margin: 0 0 12px; font-family: var(--display); font-size: .8rem; font-weight: 950; letter-spacing: .04em; text-transform: uppercase; }
.home-kicker span { color: var(--orange); }
.mindset-band, .performance-week-band { position: relative; display: grid; grid-template-columns: 43% 57%; min-height: 410px; overflow: hidden; background: #f6f4f0; }
.mindset-band__copy, .performance-week-band__copy { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(48px, 6vw, 92px) max(40px, calc((100vw - 1180px) / 2)); padding-right: 8vw; }
.mindset-band__copy::after, .performance-week-band__copy::after { content: ""; position: absolute; inset: 0; z-index: -1; background: url("assets/images/topo.svg") center / 680px auto no-repeat; opacity: .12; }
.mindset-band h2, .performance-week-band h2, .stories-strip h2, .home-section-title h2, .home-join h2 { margin: 0; font-family: var(--display); font-weight: 950; letter-spacing: -.045em; line-height: .92; text-transform: uppercase; }
.mindset-band h2 { max-width: 460px; font-size: clamp(2rem, 4vw, 4.2rem); }
.mindset-band__copy > p:not(.home-kicker) { max-width: 430px; margin: 20px 0 26px; color: #363636; font-size: .92rem; }
.mindset-band__image, .performance-week-band__image { position: relative; margin-left: -10vw; clip-path: polygon(14% 0,100% 0,100% 100%,0 100%); background: url("assets/images/home-mindset.jpg") 65% 50% / cover no-repeat; }

.project-band { position: relative; overflow: hidden; padding: clamp(72px, 8vw, 110px) 0; background: var(--black); color: var(--white); }
.project-band::after { content: "04:15"; position: absolute; right: -1vw; bottom: -3vw; color: rgba(255,255,255,.035); font-family: var(--display); font-size: 18vw; font-weight: 950; letter-spacing: -.08em; line-height: .8; }
.project-band__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.25fr .75fr; gap: clamp(50px, 9vw, 120px); align-items: end; }
.project-band h2 { margin: 0; font-family: var(--display); font-size: clamp(3.4rem, 8vw, 8rem); font-weight: 950; letter-spacing: -.065em; line-height: .82; text-transform: uppercase; }
.project-band h2 span { color: var(--orange); }
.project-band__copy { padding-left: 30px; border-left: 1px solid var(--line); }
.project-band__copy > p:not(.home-kicker) { margin: 18px 0 28px; color: rgba(255,255,255,.65); }

.performance-week-band { grid-template-columns: 38% 62%; min-height: 430px; background: #f3efe8; }
.performance-week-band__copy { padding-right: 3vw; }
.performance-week-band h2 { font-size: clamp(2rem, 3.8vw, 4rem); }
.performance-week-band h2 span { color: var(--orange); }
.performance-week-band__copy > p:not(.home-kicker) { margin: 20px 0 26px; font-size: .88rem; }
.performance-week-band__image { margin-left: -6vw; background-image: linear-gradient(90deg, rgba(243,239,232,.12), transparent 30%), url("assets/images/casa-exterior.jpg"); background-position: center; }
.casa-wordmark { position: absolute; right: 7%; top: 14%; display: grid; color: var(--black); text-align: center; text-transform: uppercase; text-shadow: 0 1px 8px rgba(255,255,255,.75); }
.casa-wordmark span { font-size: clamp(1.15rem, 2.2vw, 2rem); letter-spacing: .12em; }
.casa-wordmark small { margin-top: 7px; font-size: .5rem; letter-spacing: .16em; }

.home-briefs { padding: clamp(80px, 9vw, 120px) 0; background: var(--paper); }
.home-section-title { display: grid; grid-template-columns: 1.2fr .8fr; gap: 50px; align-items: end; margin-bottom: 45px; }
.home-section-title h2 { font-size: clamp(2.5rem, 5.4vw, 5.6rem); }
.home-section-title > p { max-width: 430px; margin: 0; color: #555; }
.home-briefs__cta { margin: 34px 0 0; }

.stories-strip { display: grid; grid-template-columns: 31% 23% 23% 23%; min-height: 300px; overflow: hidden; background: var(--white); }
.stories-strip__intro { position: relative; z-index: 3; display: flex; flex-direction: column; justify-content: center; padding: 40px max(34px, calc((100vw - 1180px) / 2)); padding-right: 45px; background: var(--white); }
.stories-strip__intro::after { content: ""; position: absolute; z-index: -1; width: 100px; top: 0; bottom: 0; right: -55px; background: var(--white); transform: skewX(-15deg); }
.stories-strip h2 { font-size: clamp(1.9rem, 3vw, 3.25rem); }
.stories-strip__intro > p:not(.home-kicker) { margin: 8px 0 20px; color: #555; }
.button--outline-dark { border-color: var(--black); background: transparent; color: var(--black); }
.button--outline-dark:hover { background: var(--black); color: var(--white); }
.stories-strip__image { display: block; background-position: center; background-size: cover; clip-path: polygon(12% 0,100% 0,88% 100%,0 100%); transform: scale(1.04); transition: filter .25s ease, transform .25s ease; }
.stories-strip__image:hover { filter: saturate(1.15) contrast(1.05); transform: scale(1.07); }
.stories-strip__image--swim { background-image: url("assets/images/home-mindset.jpg"); background-position: 72% center; }
.stories-strip__image--bike { background-image: url("assets/images/home-hero.jpg"); background-position: 68% center; }
.stories-strip__image--run { background-image: url("assets/images/home-hero.jpg"); background-position: 91% center; }

.home-join { padding: clamp(80px, 9vw, 120px) 0; background: var(--orange); }
.home-join__inner { max-width: 980px; }
.home-join h2 { max-width: 800px; font-size: clamp(3rem, 7vw, 7rem); }
.home-join p:not(.home-kicker) { max-width: 630px; margin: 24px 0 30px; font-weight: 650; }

.site-footer { padding-top: 60px; }
.site-footer::after { content: "///"; right: -12px; bottom: -24px; color: var(--orange); font-size: 8rem; letter-spacing: -.26em; transform: skewX(-16deg); opacity: 1; }
.footer-grid--reference { grid-template-columns: 1.35fr .8fr .55fr .8fr 1.05fr; gap: clamp(26px, 4vw, 62px); align-items: start; }
.footer-brand .brand-fallback { width: 210px; height: 75px; }
.footer-brand > p { margin: 5px 0 24px; color: rgba(255,255,255,.6); font-size: .55rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.footer-label { margin: 0 0 14px; color: var(--white); font-size: .63rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.footer-grid--reference .footer-nav ul { grid-template-columns: 1fr; gap: 6px; }
.footer-grid--reference .footer-nav a, .footer-column a { display: block; padding: 2px 0; color: rgba(255,255,255,.58); font-size: .66rem; font-weight: 500; letter-spacing: 0; text-decoration: none; text-transform: none; }
.footer-column a:hover { color: var(--orange); }
.footer-grid--reference .footer-statement { padding-left: 30px; border-left: 1px solid var(--line); font-size: clamp(1.1rem, 1.8vw, 1.8rem); line-height: 1.05; }
.footer-grid--reference .footer-statement span { color: var(--orange); }
.site-footer .footer-bottom { margin-top: 50px; }

@media (max-width: 1050px) {
	body.home .site-nav ul { gap: 16px; }
	body.home .site-nav > ul > li:last-child { margin-left: 0; }
	.home-hero__content { width: min(540px, 54vw); }
	.footer-grid--reference { grid-template-columns: 1.4fr .8fr .7fr .9fr; }
	.footer-grid--reference .footer-statement { grid-column: 1 / -1; padding: 25px 0 0; border-top: 1px solid var(--line); border-left: 0; }
}

@media (max-width: 980px) {
	body.home .site-nav > ul > li:last-child > a { display: inline-flex; margin-top: 18px; padding-inline: 24px; }
	.home-hero { min-height: 700px; }
	.home-hero__content { width: min(590px, 65vw); }
	.discipline-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.discipline-card:nth-child(3), .discipline-card:nth-child(4) { border-top: 1px solid var(--line-dark); }
	.mindset-band, .performance-week-band { grid-template-columns: 48% 52%; }
	.project-band__grid { grid-template-columns: 1fr; align-items: start; }
	.project-band__copy { max-width: 620px; }
	.home-section-title { grid-template-columns: 1fr; }
	.stories-strip { grid-template-columns: 40% repeat(3, 1fr); }
}

@media (max-width: 680px) {
	body.home .header-inner { min-height: 74px; }
	body.home .brand-fallback { width: 170px; height: 61px; }
	.home-hero { min-height: 690px; align-items: end; }
	.home-hero__image { background-position: 69% 50%; }
	.home-hero::after { background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.9) 50%, rgba(0,0,0,.3) 100%), linear-gradient(0deg, #000 0%, transparent 45%); }
	.home-hero__inner { padding-top: 125px; padding-bottom: 48px; }
	.home-hero__content { width: 100%; }
	.home-hero h1 { font-size: clamp(3.7rem, 18vw, 5.7rem); }
	.home-hero__copy { max-width: 340px; font-size: .84rem; }
	.home-hero__slashes { top: 28%; }
	.discipline-card { min-height: 215px; padding: 26px 15px; }
	.discipline-card:nth-child(odd) { border-left: 0; }
	.mindset-band, .performance-week-band { grid-template-columns: 1fr; }
	.mindset-band__copy, .performance-week-band__copy { min-height: 360px; padding: 58px 28px; }
	.mindset-band__image, .performance-week-band__image { min-height: 330px; margin-left: 0; clip-path: polygon(0 10%,100% 0,100% 100%,0 100%); }
	.performance-week-band__image { min-height: 390px; }
	.casa-wordmark { top: 17%; }
	.project-band__copy { padding: 28px 0 0; border-top: 1px solid var(--line); border-left: 0; }
	.home-section-title { gap: 24px; }
	.stories-strip { grid-template-columns: 1fr 1fr 1fr; min-height: 540px; }
	.stories-strip__intro { grid-column: 1 / -1; min-height: 270px; padding: 45px 28px; }
	.stories-strip__intro::after { display: none; }
	.stories-strip__image { min-height: 270px; clip-path: none; }
	.home-join { padding-block: 75px; }
	.footer-grid--reference { grid-template-columns: 1fr 1fr; }
	.footer-brand { grid-column: 1 / -1; }
	.footer-grid--reference .footer-statement { grid-column: 1 / -1; }
}

/* Training planner */
.training-planner-cta { position: relative; overflow: hidden; padding: clamp(65px, 8vw, 105px) 0; background: #111; }
.training-planner-cta::after { content: "PLAN / EXECUTE / ADAPT"; position: absolute; right: -1vw; bottom: -1.2rem; color: rgba(255,255,255,.035); font-family: var(--display); font-size: clamp(3rem, 8vw, 8rem); font-weight: 950; letter-spacing: -.06em; line-height: .8; white-space: nowrap; }
.training-planner-cta__inner { position: relative; z-index: 1; display: flex; align-items: flex-end; justify-content: space-between; gap: 50px; }
.training-planner-cta h2 { margin: 0; font-family: var(--display); font-size: clamp(2.8rem, 6vw, 6rem); letter-spacing: -.055em; line-height: .9; text-transform: uppercase; }
.training-planner-cta p:not(.eyebrow) { max-width: 690px; margin: 22px 0 0; color: rgba(255,255,255,.62); }
.training-planner-cta .button { flex: 0 0 auto; }

.planner-section { padding: clamp(80px, 9vw, 125px) 0; background: var(--paper); color: var(--black); }
.planner-layout { display: grid; grid-template-columns: minmax(240px,.55fr) minmax(0,1.45fr); gap: clamp(45px, 7vw, 95px); align-items: start; }
.planner-sidebar { position: sticky; top: 125px; }
.planner-sidebar h2 { margin: 0; font-family: var(--display); font-size: clamp(2.8rem, 5vw, 5.2rem); letter-spacing: -.06em; line-height: .86; text-transform: uppercase; }
.planner-sidebar > p:not(.eyebrow) { margin: 24px 0 32px; color: #555; }
.planner-legend { display: grid; gap: 12px; padding-top: 24px; border-top: 1px solid var(--line-dark); color: #555; font-size: .69rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.planner-legend span { display: flex; align-items: center; gap: 10px; }
.planner-dot { width: 9px; height: 9px; border-radius: 50%; background: #999; }
.planner-dot--quality { background: var(--orange); }
.planner-dot--long { background: var(--black); }

.planner-tool { min-width: 0; }
.planner-form { position: relative; padding: clamp(28px, 4.5vw, 54px); overflow: hidden; background: var(--black); color: var(--white); }
.planner-form::after { content: ""; position: absolute; width: 330px; height: 520px; right: -250px; top: -180px; background: var(--orange); transform: rotate(23deg); opacity: .9; pointer-events: none; }
.planner-fields { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.planner-field { display: grid; gap: 9px; }
.planner-field--wide { grid-column: 1 / -1; }
.planner-field label { color: rgba(255,255,255,.65); font-size: .65rem; font-weight: 950; letter-spacing: .13em; text-transform: uppercase; }
.planner-field label span { color: rgba(255,255,255,.35); font-weight: 700; }
.planner-field select, .planner-field input { width: 100%; min-height: 52px; padding: 12px 15px; border: 1px solid rgba(255,255,255,.22); border-radius: 0; outline: 0; background: #111; color: var(--white); color-scheme: dark; }
.planner-field select:focus, .planner-field input:focus { border-color: var(--orange); box-shadow: 0 0 0 1px var(--orange); }
.planner-field input[readonly] { background: #181818; color: rgba(255,255,255,.72); cursor: default; }
.planner-date-hint { position: relative; z-index: 1; margin: -4px 0 0; padding: 14px 16px; border-left: 3px solid var(--orange); background: rgba(255,90,0,.08); color: rgba(255,255,255,.62); font-size: .78rem; line-height: 1.5; }
.planner-goal-context { position: relative; z-index: 1; display: grid; grid-template-columns: auto 1fr; gap: 18px 28px; align-items: center; margin-top: 24px; padding: 17px 20px; border-left: 4px solid var(--orange); background: rgba(255,255,255,.07); }
.planner-goal-context span { color: rgba(255,255,255,.55); font-size: .62rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.planner-goal-context strong { display: block; margin-top: 3px; color: var(--white); font-family: var(--display); font-size: 1rem; letter-spacing: -.02em; }
.planner-goal-context p { margin: 0; color: rgba(255,255,255,.7); font-size: .77rem; }
.planner-form__actions { position: relative; z-index: 1; display: flex; flex-wrap: wrap; align-items: center; gap: 20px; margin-top: 34px; }
.planner-text-button { padding: 8px 0; border: 0; border-bottom: 1px solid rgba(255,255,255,.3); background: transparent; color: rgba(255,255,255,.55); font-size: .63rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.planner-text-button:hover, .planner-text-button:focus-visible { border-color: var(--orange); color: var(--orange); }

.planner-results { scroll-margin-top: 115px; padding-top: 70px; }
.planner-results[hidden] { display: none; }
.planner-summary { display: grid; grid-template-columns: 1fr auto; gap: 35px; align-items: end; margin-bottom: 32px; }
.planner-summary h2 { margin: 0; font-family: var(--display); font-size: clamp(2.7rem, 5vw, 5rem); letter-spacing: -.055em; line-height: .88; text-transform: uppercase; }
.planner-summary__stats { display: flex; gap: 22px; }
.planner-summary__stats span { min-width: 104px; padding-left: 16px; border-left: 2px solid var(--orange); color: #666; font-size: .62rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.planner-summary__stats strong { display: block; margin-bottom: 3px; color: var(--black); font-family: var(--display); font-size: 1.05rem; letter-spacing: -.02em; }
.planner-week { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; border: 1px solid var(--line-dark); background: var(--line-dark); }
.planner-day { position: relative; min-height: 250px; padding: 25px; overflow: hidden; background: var(--white); }
.planner-day::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: #aaa; }
.planner-day--quality::before { background: var(--orange); }
.planner-day--long::before { background: var(--black); }
.planner-day--strength::before { background: #555; }
.planner-day.is-rest { min-height: 185px; background: #e9e7e2; }
.planner-day__top { display: flex; justify-content: space-between; gap: 20px; color: #777; font-size: .63rem; font-weight: 950; letter-spacing: .13em; text-transform: uppercase; }
.planner-day__label { display: grid; gap: 3px; }
.planner-day__label b { color: #777; font: inherit; }
.planner-day__date { color: #9a9a9a; font-size: .56rem; font-weight: 850; letter-spacing: .08em; }
.planner-day__top strong { color: var(--orange); }
.planner-day.is-rest .planner-day__top strong { color: #777; }
.planner-day h3 { margin: 48px 0 7px; font-family: var(--display); font-size: clamp(1.45rem, 2.6vw, 2.45rem); letter-spacing: -.04em; line-height: .95; text-transform: uppercase; }
.planner-day.is-rest h3 { margin-top: 26px; color: #686868; }
.planner-day__meta { margin: 0 0 15px !important; color: var(--orange) !important; font-size: .64rem !important; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.planner-day > p:last-child { margin: 0; color: #5c5c5c; font-size: .82rem; }
.planner-session + .planner-session { margin-top: 30px; padding-top: 28px; border-top: 1px solid var(--line-dark); }
.planner-session h3 { margin-top: 36px; }
.planner-session + .planner-session h3 { margin-top: 12px; }
.planner-session > p:last-child { margin: 0; color: #5c5c5c; font-size: .82rem; }
.planner-session__order { display: inline-block; color: #777; font-size: .58rem; font-weight: 950; letter-spacing: .13em; text-transform: uppercase; }
.planner-day.has-double { min-height: 430px; }
.planner-day.has-double::after { content: "DOUBLE DAY"; position: absolute; right: -34px; top: 86px; padding: 8px 40px; background: var(--orange); color: var(--black); font-size: .52rem; font-weight: 950; letter-spacing: .12em; transform: rotate(45deg); }
.planner-day.has-triple { min-height: 590px; }
.planner-day.has-triple::after { content: "TRIPLE DAY"; }
.planner-advice { display: grid; grid-template-columns: .7fr 1.3fr; gap: 45px; margin-top: 34px; padding: clamp(28px,4vw,46px); background: var(--orange); }
.planner-advice h3 { margin: 0; font-family: var(--display); font-size: clamp(2rem,3.7vw,3.8rem); letter-spacing: -.05em; line-height: .9; text-transform: uppercase; }
.planner-advice ul { margin: 0; padding: 0; list-style: none; }
.planner-advice li { position: relative; padding: 13px 0 13px 28px; border-top: 1px solid rgba(0,0,0,.22); font-size: .86rem; }
.planner-advice li::before { content: "→"; position: absolute; left: 0; font-weight: 950; }
.planner-results__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.planner-disclaimer { padding: clamp(75px,9vw,120px) 0; background: var(--black); color: var(--white); }
.planner-disclaimer .eyebrow { color: var(--orange); }

@media (max-width: 900px) {
	.planner-layout { grid-template-columns: 1fr; }
	.planner-sidebar { position: static; max-width: 680px; }
	.planner-summary { grid-template-columns: 1fr; }
	.planner-summary__stats { justify-content: flex-start; }
	.training-planner-cta__inner { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 680px) {
	.planner-fields, .planner-week, .planner-advice { grid-template-columns: 1fr; }
	.planner-field--wide { grid-column: auto; }
	.planner-goal-context { grid-template-columns: 1fr; }
	.planner-form { padding: 30px 20px; }
	.planner-results { padding-top: 55px; }
	.planner-summary__stats { gap: 12px; }
	.planner-summary__stats span { min-width: 0; }
	.planner-day { min-height: 225px; padding: 23px 20px; }
	.planner-day.is-rest { min-height: 160px; }
}

@media print {
	body.gtgf-planner-page .site-header,
	body.gtgf-planner-page .page-hero,
	body.gtgf-planner-page .planner-sidebar,
	body.gtgf-planner-page .planner-form,
	body.gtgf-planner-page .planner-results__actions,
	body.gtgf-planner-page .planner-mail-card,
	body.gtgf-planner-page .planner-export,
	body.gtgf-planner-page .planner-account,
	body.gtgf-planner-page .planner-disclaimer,
	body.gtgf-planner-page .site-footer,
	body.gtgf-planner-page #wpadminbar { display: none !important; }
	body.gtgf-planner-page { background: #fff; color: #000; }
	body.gtgf-planner-page .planner-section { padding: 0; background: #fff; }
	body.gtgf-planner-page .planner-layout { display: block; width: 100%; }
	body.gtgf-planner-page .planner-results { padding: 0; }
	body.gtgf-planner-page .planner-day { break-inside: avoid; }
	body.gtgf-planner-page .planner-advice { break-inside: avoid; }
}

/* Story week scroller */
.week-scroller { min-width: 0; }
.week-scroller__controls { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 14px; }
.week-scroller__position { color: var(--orange); font-size: .68rem; font-weight: 950; letter-spacing: .16em; text-transform: uppercase; }
.week-scroller__buttons { display: flex; gap: 7px; }
.week-scroller__buttons button { display: grid; width: 43px; height: 43px; place-items: center; border: 1px solid var(--line-dark); background: transparent; color: var(--black); font-size: 1.1rem; cursor: pointer; transition: background .2s ease, border-color .2s ease, color .2s ease; }
.week-scroller__buttons button:hover, .week-scroller__buttons button:focus-visible { border-color: var(--orange); background: var(--orange); }
.week-scroller__buttons button:disabled { cursor: default; opacity: .25; }
.week-scroller__progress { height: 3px; margin-bottom: 18px; overflow: hidden; background: rgba(0,0,0,.1); }
.week-scroller__progress span { display: block; width: 20%; height: 100%; background: var(--orange); transition: width .25s ease; }
.timeline.timeline--scroll { position: relative; display: flex; gap: 14px; max-width: 100%; margin: 0; padding: 0 0 16px; overflow-x: auto; overscroll-behavior-inline: contain; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-color: var(--orange) rgba(0,0,0,.08); scrollbar-width: thin; }
.timeline.timeline--scroll:focus-visible { outline: 2px solid var(--orange); outline-offset: 5px; }
.timeline.timeline--scroll::-webkit-scrollbar { height: 7px; }
.timeline.timeline--scroll::-webkit-scrollbar-track { background: rgba(0,0,0,.08); }
.timeline.timeline--scroll::-webkit-scrollbar-thumb { background: var(--orange); }
.timeline.timeline--scroll li { flex: 0 0 calc(100% - 10px); min-height: 340px; display: flex; flex-direction: column; gap: 0; padding: 34px 32px; border: 1px solid var(--line-dark); background: var(--white); scroll-snap-align: start; scroll-snap-stop: always; }
.timeline.timeline--scroll li::before { width: 13px; height: 13px; left: 31px; top: 35px; box-shadow: 0 0 0 8px var(--white); }
.timeline.timeline--scroll time { padding-left: 29px; }
.timeline.timeline--scroll li > div { margin-top: auto; padding-top: 75px; }
.timeline.timeline--scroll h3 { margin-bottom: 14px; font-size: clamp(1.75rem,3.2vw,3rem); line-height: .92; }
.timeline.timeline--scroll p { font-size: .94rem; }
.timeline.timeline--scroll li[aria-current="step"] { border-color: rgba(255,90,0,.5); }
.week-scroller__hint { display: flex; justify-content: space-between; margin: 9px 0 0; color: #777; font-size: .6rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.week-scroller__hint span { color: var(--orange); font-size: .9rem; }

@media (max-width: 680px) {
	.timeline.timeline--scroll li { flex-basis: 88%; min-height: 315px; padding: 28px 24px; }
	.timeline.timeline--scroll li::before { left: 23px; top: 29px; }
	.timeline.timeline--scroll time { padding-left: 27px; }
	.timeline.timeline--scroll li > div { padding-top: 58px; }
}

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

/* GTGF story / About — 1.6 */
.about-origin { position: relative; overflow: hidden; padding: clamp(78px,10vw,148px) 0; }
.about-origin::after { content: "ORIGIN"; position: absolute; right: -2vw; bottom: -3vw; color: rgba(0,0,0,.025); font-family: var(--display); font-size: clamp(8rem,23vw,22rem); font-weight: 950; letter-spacing: -.08em; line-height: .7; pointer-events: none; }
.about-origin__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(180px,.55fr) 1.8fr; gap: clamp(45px,8vw,120px); }
.about-origin__mark { margin: 38px 0 0; color: var(--orange); font-family: var(--display); font-size: clamp(3.5rem,7vw,7rem); font-weight: 950; letter-spacing: -.16em; line-height: .7; }
.about-origin__lead { max-width: 950px; margin: 0 0 clamp(42px,6vw,76px); font-family: var(--display); font-size: clamp(2.35rem,5.1vw,5.4rem); font-weight: 950; letter-spacing: -.055em; line-height: .92; text-transform: uppercase; }
.about-origin__columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(32px,5vw,74px); }
.about-origin__columns p { margin: 0; color: #515151; font-size: clamp(.96rem,1.25vw,1.12rem); line-height: 1.8; }

.about-definition { position: relative; overflow: hidden; padding: clamp(88px,10vw,148px) 0; }
.about-definition::after { content: "GTGF"; position: absolute; right: -4vw; bottom: -8vw; color: rgba(255,255,255,.035); font-family: var(--display); font-size: clamp(12rem,35vw,34rem); font-weight: 950; letter-spacing: -.1em; line-height: .7; pointer-events: none; }
.about-definition__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(55px,10vw,150px); align-items: start; margin-top: 40px; }
.about-definition h2 { margin: 0; font-family: var(--display); font-size: clamp(4rem,9vw,9rem); font-weight: 950; letter-spacing: -.07em; line-height: .8; text-transform: uppercase; }
.about-definition__copy { max-width: 580px; padding-top: 8px; }
.about-definition__copy > p:not(.about-definition__statement) { margin: 0 0 25px; color: rgba(255,255,255,.7); font-size: clamp(.98rem,1.25vw,1.12rem); line-height: 1.75; }
.about-definition__statement { margin: 58px 0 0; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.18); font-family: var(--display); font-size: clamp(2rem,3.8vw,3.6rem); font-weight: 950; letter-spacing: -.045em; line-height: .95; text-transform: uppercase; }
.about-definition__statement span { color: var(--orange); }

.about-pillars { padding: clamp(88px,11vw,158px) 0; }
.about-pillars__intro { display: grid; grid-template-columns: 1.25fr .75fr; gap: clamp(50px,10vw,145px); align-items: end; margin-bottom: clamp(60px,8vw,100px); }
.about-pillars__intro h2 { margin: 20px 0 0; font-family: var(--display); font-size: clamp(3.8rem,8.7vw,8.5rem); font-weight: 950; letter-spacing: -.07em; line-height: .78; text-transform: uppercase; }
.about-pillars__intro h2 span { color: var(--orange); }
.about-pillars__intro > p { max-width: 470px; margin: 0; color: #555; font-size: clamp(1rem,1.4vw,1.25rem); line-height: 1.65; }
.about-pillar-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.about-pillar { position: relative; min-height: 390px; padding: 35px clamp(25px,3vw,46px) 42px; border-left: 1px solid var(--line-dark); }
.about-pillar:last-child { border-right: 1px solid var(--line-dark); }
.about-pillar > span { color: var(--orange); font-family: var(--display); font-size: .75rem; font-weight: 950; letter-spacing: .15em; }
.about-pillar h3 { margin: 115px 0 19px; font-family: var(--display); font-size: clamp(2rem,3vw,3.2rem); font-weight: 950; letter-spacing: -.05em; line-height: .9; text-transform: uppercase; }
.about-pillar p { margin: 0; color: #5c5c5c; font-size: .9rem; line-height: 1.65; }
.about-pillar::after { content: ""; position: absolute; top: 0; left: 0; width: 0; height: 4px; background: var(--orange); transition: width .35s ease; }
.about-pillar:hover::after { width: 100%; }

.about-manifesto { position: relative; min-height: min(850px,82vh); display: flex; align-items: end; overflow: hidden; background: #050505; color: var(--white); }
.about-manifesto__image { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.72) 46%,rgba(0,0,0,.18) 100%), linear-gradient(0deg,rgba(0,0,0,.8),transparent 55%), url("assets/images/home-mindset.jpg") 66% center / cover no-repeat; filter: grayscale(1) contrast(1.08); transform: scale(1.01); }
.about-manifesto__inner { position: relative; z-index: 1; padding-top: 110px; padding-bottom: clamp(80px,10vw,140px); }
.about-manifesto h2 { max-width: 1050px; margin: 25px 0 32px; font-family: var(--display); font-size: clamp(3.2rem,7.8vw,8.2rem); font-weight: 950; letter-spacing: -.065em; line-height: .82; text-transform: uppercase; }
.about-manifesto h2 span { color: var(--orange); }
.about-manifesto__inner > p:last-child { max-width: 650px; margin: 0; color: rgba(255,255,255,.78); font-size: clamp(1rem,1.4vw,1.2rem); line-height: 1.7; }

.about-belong { position: relative; overflow: hidden; padding: clamp(88px,11vw,160px) 0; }
.about-belong::after { content: "JOIN"; position: absolute; left: -2vw; bottom: -7vw; color: rgba(0,0,0,.03); font-family: var(--display); font-size: 28vw; font-weight: 950; letter-spacing: -.08em; line-height: .8; pointer-events: none; }
.about-belong__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(55px,10vw,150px); align-items: start; }
.about-belong h2 { max-width: 720px; margin: 28px 0 0; font-family: var(--display); font-size: clamp(3.5rem,7.4vw,7.4rem); font-weight: 950; letter-spacing: -.065em; line-height: .83; text-transform: uppercase; }
.about-belong__copy { max-width: 590px; }
.about-belong__lead { margin: 0 0 27px; font-family: var(--display); font-size: clamp(1.8rem,3vw,3rem); font-weight: 950; letter-spacing: -.045em; line-height: 1; text-transform: uppercase; }
.about-belong__copy > p:not(.about-belong__lead) { margin: 0 0 20px; color: #555; line-height: 1.75; }
.about-belong__copy .button { margin-top: 25px; }

@media (max-width: 900px) {
	.about-origin__grid, .about-definition__grid, .about-pillars__intro, .about-belong__grid { grid-template-columns: 1fr; }
	.about-origin__grid, .about-definition__grid, .about-belong__grid { gap: 48px; }
	.about-origin__mark { margin-top: 22px; }
	.about-definition__copy { max-width: 680px; }
	.about-pillars__intro { gap: 38px; }
	.about-pillar-grid { grid-template-columns: 1fr; }
	.about-pillar { min-height: 260px; border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
	.about-pillar:last-child { border-bottom: 0; }
	.about-pillar h3 { margin-top: 70px; }
}

@media (max-width: 620px) {
	.gtgf-about-page .page-hero h1 { max-width: 100%; font-size: clamp(3rem,13vw,4.8rem); overflow-wrap: anywhere; }
	.gtgf-about-page .page-hero__intro { max-width: 100%; font-size: .95rem; }
	.about-origin__columns { grid-template-columns: 1fr; gap: 24px; }
	.about-origin__lead { font-size: clamp(2.35rem,11vw,4rem); }
	.about-definition h2, .about-pillars__intro h2, .about-manifesto h2, .about-belong h2 { font-size: clamp(3rem,15vw,5.2rem); }
	.about-manifesto { min-height: 720px; }
	.about-manifesto__image { background-image: linear-gradient(0deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.55) 75%,rgba(0,0,0,.2) 100%), url("assets/images/home-mindset.jpg"); background-position: 68% center; }
	.about-manifesto__inner { padding-bottom: 70px; }
}

@media (min-width: 621px) and (max-width: 680px) {
	.gtgf-about-page .page-hero h1 { max-width: 100%; font-size: clamp(3rem,12vw,4.7rem); overflow-wrap: anywhere; }
	.gtgf-about-page .page-hero__intro { max-width: 100%; font-size: .95rem; }
}

/* GTGF 1.7 — multi-week planning, knowledge, recipes and partnerships */
.training-planner-cta--priority { border-bottom: 1px solid rgba(255,255,255,.12); background: linear-gradient(125deg,#090909 0%,#111 67%,#1a0b03 100%); }
.training-discipline-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.training-discipline-grid .performance-card:last-child { grid-column: auto; }

.planner-week-navigation { display: grid; grid-template-columns: 45px minmax(0,1fr) 45px; gap: 10px; align-items: center; margin: 0 0 14px; }
.planner-week-navigation > button { width: 45px; height: 45px; border: 1px solid var(--line-dark); background: transparent; color: var(--black); cursor: pointer; }
.planner-week-navigation > button:hover, .planner-week-navigation > button:focus-visible { border-color: var(--orange); background: var(--orange); }
.planner-week-navigation > button:disabled { cursor: default; opacity: .25; }
.planner-week-tabs { display: flex; gap: 7px; overflow-x: auto; padding: 3px 1px 8px; scrollbar-width: thin; scrollbar-color: var(--orange) transparent; }
.planner-week-tabs button { flex: 0 0 45px; min-height: 42px; border: 1px solid var(--line-dark); background: var(--white); color: #666; font-size: .65rem; font-weight: 950; cursor: pointer; }
.planner-week-tabs button.is-active { border-color: var(--black); background: var(--black); color: var(--white); }
.planner-week-heading { display: flex; align-items: baseline; gap: 15px; padding: 20px 24px; border: 1px solid var(--line-dark); border-bottom: 0; background: var(--orange); text-transform: uppercase; }
.planner-week-heading span { display: grid; gap: 4px; font-size: .65rem; font-weight: 950; letter-spacing: .13em; }
.planner-week-heading span em { color: rgba(5,5,5,.64); font-size: .56rem; font-style: normal; letter-spacing: .08em; }
.planner-week-heading strong { font-family: var(--display); font-size: clamp(1.5rem,3vw,2.7rem); letter-spacing: -.04em; }
.planner-week-heading small { margin-left: auto; font-size: .67rem; font-weight: 950; letter-spacing: .08em; }

.knowledge-recipes { padding: clamp(85px,10vw,140px) 0; }
.recipe-library-tools { margin-top: 45px; padding: clamp(24px,3vw,38px); border: 1px solid var(--line-dark); background: var(--white); }
.recipe-search { display: grid; gap: 10px; }
.recipe-search span { font-size: .67rem; font-weight: 950; letter-spacing: .14em; text-transform: uppercase; }
.recipe-search input { width: 100%; padding: 17px 0; border: 0; border-bottom: 2px solid var(--black); border-radius: 0; outline: 0; background: transparent; color: var(--black); font-family: var(--display); font-size: clamp(1.25rem,2.5vw,2.2rem); text-transform: uppercase; }
.recipe-search input:focus { border-color: var(--orange); }
.recipe-library-tools__row { display: flex; gap: 24px; align-items: center; justify-content: space-between; margin-top: 28px; }
.recipe-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.recipe-filters a, .recipe-saved-filter { min-height: 42px; display: inline-flex; gap: 8px; align-items: center; padding: 10px 14px; border: 1px solid var(--line-dark); background: transparent; color: var(--black); font-size: .65rem; font-weight: 950; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; cursor: pointer; }
.recipe-filters a:hover, .recipe-filters a.is-active, .recipe-saved-filter:hover, .recipe-saved-filter.is-active { border-color: var(--black); background: var(--black); color: var(--white); }
.recipe-filters small, .recipe-saved-filter span { display: grid; min-width: 20px; height: 20px; place-items: center; border-radius: 50%; background: var(--orange); color: var(--black); font-size: .58rem; }
.recipe-filter-status { margin: 20px 0 0; color: #777; font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.recipe-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin-top: 34px; border: 1px solid rgba(255,255,255,.15); background: rgba(255,255,255,.15); }
.recipe-grid--light { border-color: var(--line-dark); background: var(--line-dark); }
.recipe-card { position: relative; min-height: 500px; display: flex; flex-direction: column; padding: clamp(28px,3.5vw,46px); background: #0d0d0d; color: var(--white); }
.recipe-card[hidden] { display: none; }
.recipe-grid--light .recipe-card { background: var(--white); color: var(--black); }
.recipe-card__top { display: flex; gap: 20px; align-items: flex-start; justify-content: space-between; }
.recipe-card__top .eyebrow { margin-bottom: 0; }
.recipe-save { border: 1px solid currentColor; background: transparent; color: inherit; font-size: .62rem; font-weight: 950; letter-spacing: .09em; text-transform: uppercase; cursor: pointer; }
.recipe-card .recipe-save { min-height: 36px; padding: 8px 11px; }
.recipe-save:hover, .recipe-save.is-saved { border-color: var(--orange); background: var(--orange); color: var(--black); }
.recipe-card h2, .recipe-card h3 { margin: 78px 0 18px; font-family: var(--display); font-size: clamp(2.25rem,4vw,4.3rem); letter-spacing: -.055em; line-height: .88; text-transform: uppercase; }
.recipe-card h2 a, .recipe-card h3 a { text-decoration: none; }
.recipe-card > p:not(.eyebrow) { max-width: 500px; margin: 0 0 28px; color: rgba(255,255,255,.62); font-size: .96rem; }
.recipe-grid--light .recipe-card > p:not(.eyebrow) { color: #5a5a5a; }
.recipe-card__meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.recipe-card__meta span { padding: 7px 9px; border: 1px solid var(--line-dark); font-size: .61rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.recipe-card > strong { display: block; margin-top: 15px; padding-top: 16px; border-top: 1px solid var(--line-dark); color: var(--orange); font-size: .66rem; letter-spacing: .07em; text-transform: uppercase; }
.recipe-card__link { margin-top: 20px; font-size: .7rem; font-weight: 950; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.recipe-card__link:hover { color: var(--orange); }
.recipe-empty { margin-top: 34px; padding: 55px; border: 1px solid var(--line-dark); text-align: center; }
.recipe-empty h2 { margin: 0; font-family: var(--display); font-size: clamp(2.3rem,5vw,5rem); text-transform: uppercase; }
.knowledge-recipes__action { margin: 36px 0 0; }
.nutrition-recipe-feature { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(45px,8vw,110px); align-items: end; margin-top: 50px; padding: clamp(30px,4vw,55px); background: var(--orange); color: var(--black); }
.nutrition-recipe-feature h3 { max-width: 690px; margin: 0; font-family: var(--display); font-size: clamp(2.7rem,5vw,5.6rem); letter-spacing: -.06em; line-height: .86; text-transform: uppercase; }
.nutrition-recipe-feature > div:last-child p { margin: 0 0 25px; font-weight: 700; }
.nutrition-recipe-feature .button { background: var(--black); color: var(--white); }
.nutrition-recipe-grid { margin-top: 1px; }
.recipe-single { display: grid; grid-template-columns: minmax(220px,.55fr) minmax(0,1.45fr); gap: clamp(50px,8vw,110px); align-items: start; }
.recipe-single__facts { position: sticky; top: 125px; }
.recipe-single__facts > p:not(.eyebrow) { display: grid; gap: 6px; padding: 21px 0; border-top: 1px solid var(--line-dark); }
.recipe-single__facts strong { font-family: var(--display); font-size: 1.25rem; text-transform: uppercase; }
.recipe-single__facts span { color: #777; font-size: .65rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.recipe-single__buttons { display: grid; gap: 10px; margin-top: 24px; }
.recipe-single__buttons .recipe-save { min-height: 50px; }
.recipe-print { min-height: 44px; border: 0; border-bottom: 1px solid var(--black); background: transparent; color: var(--black); font-size: .65rem; font-weight: 950; letter-spacing: .09em; text-transform: uppercase; cursor: pointer; }
.recipe-single .article-content { max-width: 760px; }
.recipe-intro { margin: 0 0 48px; padding: 26px; border-left: 5px solid var(--orange); background: var(--white); }
.recipe-intro p { margin: 0; }
.recipe-quantity { margin-top: -12px; color: #777; font-size: .72rem !important; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.recipe-ingredients { columns: 2; gap: 45px; margin: 25px 0 55px; padding: 0; list-style: none; }
.recipe-ingredients li { break-inside: avoid; padding: 12px 0; border-top: 1px solid var(--line-dark); }
.recipe-method { margin: 28px 0 65px; padding: 0; list-style: none; counter-reset: recipe-step; }
.recipe-method li { display: grid; grid-template-columns: 95px minmax(0,1fr); gap: 25px; padding: 24px 0; border-top: 1px solid var(--line-dark); counter-increment: recipe-step; }
.recipe-method li strong { color: var(--orange); font-family: var(--display); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.recipe-method li span { font-size: 1.05rem; line-height: 1.7; }
.recipe-timing, .recipe-coach-note, .recipe-allergen-note { margin: 50px 0; padding: clamp(24px,4vw,42px); }
.recipe-timing { border: 1px solid var(--black); }
.recipe-timing h2, .recipe-allergen-note h2 { margin-top: 0; }
.recipe-coach-note { background: var(--black); color: var(--white); }
.recipe-coach-note p:last-child { margin: 0; color: rgba(255,255,255,.76); font-size: 1.05rem; }
.recipe-allergen-note { background: #ebe7df; }
.recipe-mail { padding: clamp(85px,10vw,140px) 0; }
.recipe-mail__grid { display: grid; grid-template-columns: 1fr .8fr; gap: clamp(55px,9vw,130px); align-items: start; }
.recipe-mail h2 { margin: 0; font-family: var(--display); font-size: clamp(3.5rem,7vw,7rem); letter-spacing: -.065em; line-height: .82; text-transform: uppercase; }
.recipe-mail h2 span { color: var(--orange); }
.recipe-mail__grid > div > p:last-child { max-width: 530px; color: rgba(255,255,255,.62); }
.recipe-mail__form { padding: clamp(26px,4vw,45px); border: 1px solid var(--line); background: #0d0d0d; }
.recipe-mail__form .form-row { margin-bottom: 22px; }
.recipe-mail__form .form-row label { color: rgba(255,255,255,.65); }
.recipe-mail__form .form-row input { border-bottom-color: rgba(255,255,255,.4); color: var(--white); }
.recipe-mail__form .button { width: 100%; margin-top: 5px; }
.recipe-mail__form > small { display: block; margin-top: 15px; color: rgba(255,255,255,.45); }
.form-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-notice { padding: 14px 16px; border-left: 4px solid var(--orange); background: rgba(255,255,255,.08); }
.form-notice--success { border-left-color: #39d98a; }
.form-notice--error { border-left-color: #ff6b6b; }

.join-intro { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(50px,9vw,130px); align-items: end; margin-bottom: clamp(65px,8vw,105px); }
.join-intro h2, .whatsapp-card h2 { margin: 0; font-family: var(--display); font-size: clamp(2.8rem,5.5vw,5.8rem); letter-spacing: -.06em; line-height: .86; text-transform: uppercase; }
.join-intro > p { max-width: 590px; margin: 0; color: #555; font-size: 1.05rem; line-height: 1.7; }
.whatsapp-card { padding: clamp(30px,4vw,48px); background: #111; color: var(--white); }
.whatsapp-card h2 { font-size: clamp(2.2rem,4vw,4rem); }
.whatsapp-card > p:not(.eyebrow) { margin: 22px 0 28px; color: rgba(255,255,255,.66); }
.join-choices { margin: 0; padding: 0; border: 0; }
.join-choices legend { margin-bottom: 15px; font-size: .68rem; font-weight: 950; letter-spacing: .14em; text-transform: uppercase; }
.join-choice-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.join-choice { position: relative; display: block; cursor: pointer; }
.join-choice input { position: absolute; opacity: 0; pointer-events: none; }
.join-choice span { min-height: 125px; display: flex; flex-direction: column; gap: 8px; padding: 20px; border: 1px solid var(--line-dark); transition: border-color .2s ease, background .2s ease, color .2s ease; }
.join-choice strong { font-family: var(--display); font-size: 1.05rem; text-transform: uppercase; }
.join-choice small { color: #666; font-size: .75rem; line-height: 1.45; }
.join-choice input:checked + span { border-color: var(--orange); background: var(--orange); color: var(--black); }
.join-choice input:checked + span small { color: rgba(0,0,0,.68); }
.join-choice input:focus-visible + span { outline: 2px solid var(--orange); outline-offset: 2px; }
.join-form__columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.form-row select { width: 100%; min-height: 54px; padding: 12px 0; border: 0; border-bottom: 1px solid #777; border-radius: 0; background: transparent; color: var(--black); }
.form-row label span { color: #888; font-weight: 650; }

.roadmap-2028 { padding: clamp(85px,10vw,145px) 0; }
.roadmap-2028__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 60px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.roadmap-2028__grid article { min-height: 400px; padding: 34px clamp(24px,3vw,44px) 42px; border-left: 1px solid var(--line); }
.roadmap-2028__grid article:last-child { border-right: 1px solid var(--line); }
.roadmap-2028__grid span { color: var(--orange); font-family: var(--display); font-size: 1rem; letter-spacing: .13em; }
.roadmap-2028__grid h3 { margin: 125px 0 18px; font-family: var(--display); font-size: clamp(1.8rem,3vw,3rem); letter-spacing: -.045em; line-height: .92; text-transform: uppercase; }
.roadmap-2028__grid p { margin: 0; color: rgba(255,255,255,.62); font-size: .88rem; }
.sponsor-story { padding: clamp(90px,11vw,160px) 0; }
.sponsor-story__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(55px,9vw,135px); }
.sponsor-story h2 { margin: 22px 0 0; font-family: var(--display); font-size: clamp(3.5rem,7vw,7.2rem); letter-spacing: -.065em; line-height: .82; text-transform: uppercase; }
.sponsor-story h2 span { color: var(--white); }
.sponsor-story__copy > p { margin: 0 0 28px; font-size: 1.05rem; line-height: 1.7; }
.sponsor-story__copy ul { margin: 0 0 35px; padding: 0; list-style: none; }
.sponsor-story__copy li { padding: 14px 0; border-top: 1px solid rgba(0,0,0,.23); font-size: .86rem; font-weight: 800; }

@media (max-width: 1000px) {
	.training-discipline-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.recipe-grid { grid-template-columns: 1fr; }
	.recipe-card { min-height: 330px; }
	.roadmap-2028__grid { grid-template-columns: 1fr; }
	.roadmap-2028__grid article { min-height: 290px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
	.roadmap-2028__grid article:last-child { border-bottom: 0; }
	.roadmap-2028__grid h3 { margin-top: 70px; }
}

@media (max-width: 820px) {
	.join-intro, .sponsor-story__grid, .recipe-single, .recipe-mail__grid, .nutrition-recipe-feature { grid-template-columns: 1fr; }
	.recipe-single__facts { position: static; }
	.recipe-library-tools__row { align-items: stretch; flex-direction: column; }
}

@media (max-width: 680px) {
	.training-discipline-grid, .join-choice-grid, .join-form__columns { grid-template-columns: 1fr; }
	.planner-week-navigation { grid-template-columns: 40px minmax(0,1fr) 40px; }
	.planner-week-navigation > button { width: 40px; height: 40px; }
	.planner-week-heading { flex-wrap: wrap; padding: 17px; }
	.planner-week-heading small { width: 100%; margin-left: 0; }
	.join-choice span { min-height: 105px; }
	.recipe-ingredients { columns: 1; }
	.recipe-method li { grid-template-columns: 1fr; gap: 7px; }
	.recipe-card { min-height: 430px; }
}

@media print {
	.gtgf-recipe-page .site-header, .gtgf-recipe-page .site-footer, .gtgf-recipe-page .page-hero, .gtgf-recipe-page .recipe-single__buttons, .gtgf-recipe-page .recipe-mail, .gtgf-recipe-page .planner-disclaimer { display: none !important; }
	.gtgf-recipe-page, .gtgf-recipe-page .section--paper { background: #fff !important; color: #000 !important; }
	.gtgf-recipe-page .recipe-single { width: 100%; display: block; }
	.gtgf-recipe-page .recipe-single__facts { margin-bottom: 35px; }
	.gtgf-recipe-page .article-content { max-width: none; }
}

/* GTGF 1.9 — goal-driven year planner and qualify-2027 story */
.about-origin__principle { margin: clamp(42px,6vw,70px) 0 0; padding: 25px 0 0; border-top: 1px solid var(--line-dark); color: #5a5a5a; font-size: 1rem; font-weight: 750; }
.about-origin__principle span { display: inline-block; margin-right: 12px; color: var(--orange); font-family: var(--display); font-size: clamp(1.25rem,2vw,2rem); letter-spacing: -.03em; text-transform: uppercase; }

.athlete-week { padding: clamp(90px,11vw,155px) 0; overflow: hidden; }
.athlete-week__intro { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(50px,9vw,130px); align-items: end; margin-bottom: 58px; }
.athlete-week__intro h2 { margin: 0; font-family: var(--display); font-size: clamp(3.6rem,7vw,7.4rem); letter-spacing: -.065em; line-height: .82; text-transform: uppercase; }
.athlete-week__intro h2 span { color: var(--orange); }
.athlete-week__intro > div:last-child > p:last-child { color: rgba(255,255,255,.6); }
.athlete-week__track { display: grid; grid-template-columns: repeat(7,minmax(270px,1fr)); gap: 1px; overflow-x: auto; padding-bottom: 13px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); scrollbar-color: var(--orange) #111; scroll-snap-type: x mandatory; }
.athlete-day { min-height: 410px; display: flex; flex-direction: column; padding: 28px; border-left: 1px solid var(--line); background: #0b0b0b; scroll-snap-align: start; }
.athlete-day:last-child { border-right: 1px solid var(--line); }
.athlete-day > span { color: var(--orange); font-size: .65rem; font-weight: 950; letter-spacing: .17em; }
.athlete-day h3 { margin: 115px 0 28px; font-family: var(--display); font-size: 2.25rem; letter-spacing: -.045em; line-height: .92; text-transform: uppercase; }
.athlete-day p { margin: 0; padding: 13px 0; border-top: 1px solid var(--line); color: rgba(255,255,255,.62); font-size: .78rem; }
.athlete-day p strong { display: block; margin-bottom: 2px; color: var(--white); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; }
.athlete-day--key { background: var(--orange); color: var(--black); }
.athlete-day--key > span, .athlete-day--key p strong { color: var(--black); }
.athlete-day--key p { border-color: rgba(0,0,0,.25); color: rgba(0,0,0,.68); }
.athlete-week__footer { display: flex; align-items: center; justify-content: space-between; gap: 40px; margin-top: 34px; }
.athlete-week__footer p { max-width: 800px; margin: 0; color: rgba(255,255,255,.58); font-size: .82rem; }
.athlete-week__footer strong { color: var(--white); }
.athlete-week__footer .button { flex: 0 0 auto; }

.notice--planner { margin: 0 0 20px; }
.planner-mail-card { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(35px,6vw,80px); margin-top: 34px; padding: clamp(30px,5vw,62px); background: #111; color: var(--white); }
.planner-mail-card h3 { margin: 0; font-family: var(--display); font-size: clamp(2.4rem,4vw,4.4rem); letter-spacing: -.055em; line-height: .88; text-transform: uppercase; }
.planner-mail-card__intro > p:last-child { margin: 22px 0 0; color: rgba(255,255,255,.6); font-size: .86rem; }
.planner-mail-form__fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.planner-mail-form .form-row { margin: 0 0 20px; }
.planner-mail-form .form-row label { color: rgba(255,255,255,.62); }
.planner-mail-form .form-row input { width: 100%; border-bottom-color: rgba(255,255,255,.4); color: var(--white); }
.planner-join-consent { display: grid; grid-template-columns: 21px 1fr; gap: 12px; align-items: start; margin: 5px 0 26px; color: rgba(255,255,255,.68); font-size: .74rem; line-height: 1.55; cursor: pointer; }
.planner-join-consent input { width: 19px; height: 19px; margin: 1px 0 0; accent-color: var(--orange); }

.planner-export { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(35px,6vw,75px); margin-top: 34px; padding: clamp(30px,5vw,58px); border: 1px solid var(--line-dark); background: #ebe7df; }
.planner-export h3 { margin: 0; font-family: var(--display); font-size: clamp(2.5rem,4.7vw,5rem); letter-spacing: -.06em; line-height: .86; text-transform: uppercase; }
.planner-export__intro > p:last-child { margin: 22px 0 0; color: #5f5f5f; }
.planner-export-guide { display: grid; grid-template-columns: 24px 1fr; gap: 14px; align-items: start; padding: 22px; border: 1px solid var(--black); background: var(--white); cursor: pointer; }
.planner-export-guide input { width: 21px; height: 21px; margin: 2px 0 0; accent-color: var(--orange); }
.planner-export-guide span { display: grid; gap: 4px; color: #666; font-size: .76rem; line-height: 1.5; }
.planner-export-guide strong { color: var(--black); font-family: var(--display); font-size: .9rem; letter-spacing: .02em; text-transform: uppercase; }
.planner-calendar-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin-top: 22px; }
.planner-calendar-fields .form-row { margin: 0; }
.planner-export .planner-results__actions { margin-top: 24px; }
.planner-google-calendar { display: flex; gap: 24px; align-items: center; justify-content: space-between; margin-top: 22px; padding: 20px 22px; background: var(--black); color: var(--white); }
.planner-google-calendar strong { font-family: var(--display); text-transform: uppercase; }
.planner-google-calendar p { max-width: 520px; margin: 4px 0 0; color: rgba(255,255,255,.58); font-size: .73rem; }
.planner-google-link { flex: 0 0 auto; color: var(--orange); font-size: .67rem; font-weight: 950; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }

.login-section { min-height: 620px; }
.login-intro { display: grid; grid-template-columns: minmax(0,1fr) minmax(320px,.75fr); gap: 45px; align-items: end; margin-bottom: 45px; }
.login-intro h2, .login-account-card h2 { margin: 0; font-family: var(--display); font-size: clamp(3rem,6vw,6.3rem); letter-spacing: -.065em; line-height: .84; text-transform: uppercase; }
.login-intro > p:last-child { max-width: 620px; margin: 0; color: #5c5c5c; }
.login-auth-grid { margin-top: 10px; }
.login-remember { display: inline-flex; align-items: center; gap: 9px; margin: 2px 0 13px; color: rgba(255,255,255,.68); font-size: .72rem; }
.login-remember input { width: auto; margin: 0; accent-color: var(--orange); }
.login-help-link { align-self: flex-start; margin-bottom: 24px; color: rgba(255,255,255,.72); font-size: .68rem; font-weight: 850; text-underline-offset: .25em; }
.login-help-link:hover, .login-help-link:focus-visible { color: var(--orange); }
.login-register-note { margin: 0 0 25px; color: rgba(0,0,0,.64); font-size: .72rem; }
.login-account-card { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 45px; align-items: end; padding: clamp(35px,5vw,65px); border: 1px solid var(--line-dark); background: var(--white); color: var(--black); }
.login-account-card > div:first-child > p:last-child { margin: 18px 0 0; color: #656565; }
.login-account-card__actions { display: grid; gap: 16px; justify-items: start; }
.login-logout-link { color: #666; font-size: .68rem; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.login-logout-link:hover, .login-logout-link:focus-visible { color: var(--orange); }

.planner-account { margin-top: clamp(65px,9vw,120px); padding-top: clamp(50px,7vw,90px); border-top: 1px solid var(--line-dark); }
.planner-account__intro { max-width: 860px; margin-bottom: 45px; }
.planner-account__intro h2, .planner-account__head h2 { margin: 0; font-family: var(--display); font-size: clamp(3rem,6vw,6.3rem); letter-spacing: -.065em; line-height: .84; text-transform: uppercase; }
.planner-account__intro > p:last-child, .planner-account__head > div > p:last-child { max-width: 650px; color: #5c5c5c; }
.planner-auth-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; border: 1px solid var(--line-dark); background: var(--line-dark); }
.planner-auth-card { min-height: 610px; display: flex; flex-direction: column; padding: clamp(28px,4vw,48px); background: var(--black); color: var(--white); }
.planner-auth-card--orange { background: var(--orange); color: var(--black); }
.planner-auth-card h3 { margin: 60px 0 35px; font-family: var(--display); font-size: clamp(2.4rem,4.2vw,4.5rem); letter-spacing: -.055em; line-height: .88; text-transform: uppercase; }
.planner-auth-card .form-row { margin: 0 0 20px; }
.planner-auth-card .form-row label { color: rgba(255,255,255,.6); }
.planner-auth-card .form-row input { border-bottom-color: rgba(255,255,255,.4); color: var(--white); }
.planner-auth-card--orange .form-row label { color: rgba(0,0,0,.62); }
.planner-auth-card--orange .form-row input { border-bottom-color: rgba(0,0,0,.45); color: var(--black); }
.planner-auth-card .button { align-self: flex-start; margin-top: auto; }
.planner-remember { display: flex; gap: 9px; align-items: center; margin: 0 0 25px; color: rgba(255,255,255,.65); font-size: .72rem; cursor: pointer; }
.planner-remember input { width: 18px; height: 18px; accent-color: var(--orange); }
.planner-password-link { margin-top: 18px; color: rgba(255,255,255,.6); font-size: .7rem; }
.planner-account__head { display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: start; }
.planner-account__head > a { padding: 10px 0; font-size: .67rem; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.planner-save-form { display: grid; grid-template-columns: minmax(220px,1fr) auto; gap: 20px; align-items: end; margin: 45px 0; padding: 26px; border: 1px solid var(--line-dark); background: var(--white); }
.planner-save-form .form-row { margin: 0; }
.saved-plan-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; border: 1px solid var(--line-dark); background: var(--line-dark); }
.saved-plan-card { min-height: 310px; display: flex; flex-direction: column; padding: clamp(25px,3.5vw,40px); background: var(--white); }
.saved-plan-card h3 { margin: 45px 0 10px; font-family: var(--display); font-size: clamp(1.8rem,3.2vw,3rem); letter-spacing: -.045em; line-height: .9; text-transform: uppercase; }
.saved-plan-card > small { color: #777; }
.saved-plan-card > div { display: flex; gap: 15px; align-items: center; margin-top: auto; padding-top: 25px; }
.saved-plan-card > div form { margin: 0; }
.planner-delete-plan { border: 0; border-bottom: 1px solid currentColor; background: transparent; color: #777; font-size: .63rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.planner-delete-plan:hover { color: #b42318; }
.saved-plan-empty { grid-column: 1/-1; margin: 0; padding: 40px; background: var(--white); color: #666; }

.trip-opening { position: relative; min-height: min(78vw,780px); display: flex; align-items: end; overflow: hidden; background: #0a0a0a; }
.trip-opening__image { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(0,0,0,.8) 0%,rgba(0,0,0,.24) 56%,rgba(0,0,0,.05) 100%), url("assets/images/casa-exterior.jpg") center / cover no-repeat; transform: scale(1.015); }
.trip-opening__content { position: relative; z-index: 1; padding-bottom: clamp(55px,8vw,105px); }
.trip-opening__content h2 { max-width: 1050px; margin: 0; font-family: var(--display); font-size: clamp(3.4rem,7.5vw,8rem); letter-spacing: -.065em; line-height: .84; text-transform: uppercase; }
.trip-opening__content h2 span { color: var(--orange); }
.trip-opening__content > p:last-child { max-width: 640px; margin: 28px 0 0; color: rgba(255,255,255,.72); }
.trip-flow { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 70px; border: 1px solid var(--line); }
.trip-flow article { min-height: 350px; padding: 28px; border-right: 1px solid var(--line); }
.trip-flow article:last-child { border-right: 0; }
.trip-flow span { color: var(--orange); font-family: var(--display); font-size: .8rem; letter-spacing: .15em; }
.trip-flow h3 { margin: 105px 0 17px; font-family: var(--display); font-size: clamp(1.7rem,2.6vw,2.75rem); letter-spacing: -.045em; line-height: .92; text-transform: uppercase; }
.trip-flow p { margin: 0; color: rgba(255,255,255,.6); font-size: .82rem; }
.trip-packages { padding: clamp(90px,11vw,150px) 0; }
.trip-package-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-top: 55px; align-items: stretch; }
.trip-package { position: relative; min-height: 650px; display: flex; flex-direction: column; padding: clamp(28px,3.5vw,44px); border: 1px solid var(--line-dark); background: var(--white); }
.trip-package--featured { border: 2px solid var(--orange); background: var(--orange); transform: translateY(-16px); }
.trip-package__badge { position: absolute; top: 0; right: 0; margin: 0; padding: 10px 14px; background: var(--black); color: var(--white); font-size: .58rem; font-weight: 950; letter-spacing: .11em; text-transform: uppercase; }
.trip-package--featured .eyebrow { color: var(--black); }
.trip-package h3 { margin: 70px 0 20px; font-family: var(--display); font-size: clamp(2.1rem,3.4vw,3.6rem); letter-spacing: -.055em; line-height: .88; text-transform: uppercase; }
.trip-package__price { display: flex; align-items: baseline; gap: 10px; margin: 0 0 35px; }
.trip-package__price strong { font-family: var(--display); font-size: clamp(3rem,5vw,5rem); letter-spacing: -.06em; }
.trip-package__price span { color: #666; font-size: .65rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.trip-package--featured .trip-package__price span { color: rgba(0,0,0,.58); }
.trip-package ul { margin: 0 0 35px; padding: 0; list-style: none; }
.trip-package li { padding: 13px 0; border-top: 1px solid var(--line-dark); color: #565656; font-size: .81rem; }
.trip-package--featured li { border-color: rgba(0,0,0,.23); color: rgba(0,0,0,.72); }
.trip-package .button { margin-top: auto; align-self: flex-start; }
.trip-casa-band { display: grid; grid-template-columns: .72fr 1.28fr; min-height: 720px; background: var(--orange); color: var(--black); }
.trip-casa-band__copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(50px,8vw,120px) max(32px,calc((100vw - 1180px)/2)); padding-right: clamp(45px,6vw,90px); }
.trip-casa-band__copy .eyebrow { color: var(--black); }
.trip-casa-band__copy h2 { margin: 0; font-family: var(--display); font-size: clamp(3.8rem,7vw,7.3rem); letter-spacing: -.065em; line-height: .82; text-transform: uppercase; }
.trip-casa-band__copy h2 span { color: var(--white); }
.trip-casa-band__copy > p:not(.eyebrow) { max-width: 520px; margin: 28px 0 34px; }
.trip-casa-band__image { min-height: 600px; background: url("assets/images/casa-living.jpg") center / cover no-repeat; clip-path: polygon(12% 0,100% 0,100% 100%,0 100%); }
.trip-booking { padding: clamp(95px,12vw,165px) 0; scroll-margin-top: 85px; }
.trip-booking__grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(55px,8vw,115px); align-items: start; }
.trip-booking__intro { position: sticky; top: 125px; }
.trip-booking__intro h2 { margin: 0; font-family: var(--display); font-size: clamp(3.4rem,6vw,6.5rem); letter-spacing: -.065em; line-height: .84; text-transform: uppercase; }
.trip-booking__intro h2 span { color: var(--orange); }
.trip-booking__intro > p:not(.eyebrow) { margin: 28px 0 36px; color: rgba(255,255,255,.62); }
.trip-booking__steps { display: grid; border-top: 1px solid var(--line); }
.trip-booking__steps span { display: grid; grid-template-columns: 45px 1fr; gap: 14px; padding: 17px 0; border-bottom: 1px solid var(--line); color: rgba(255,255,255,.62); font-size: .76rem; }
.trip-booking__steps strong { color: var(--orange); }
.trip-booking__panel { padding: clamp(28px,4.5vw,55px); background: var(--white); color: var(--black); }
.trip-booking__panel .notice { margin-top: 0; }
.trip-package-choice { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; margin: 0 0 38px; padding: 0; border: 0; }
.trip-package-choice legend, .booking-calendar__step { grid-column: 1/-1; margin: 0 0 13px; font-size: .66rem; font-weight: 950; letter-spacing: .13em; text-transform: uppercase; }
.trip-package-choice label { position: relative; cursor: pointer; }
.trip-package-choice input { position: absolute; opacity: 0; }
.trip-package-choice span { min-height: 98px; display: flex; flex-direction: column; justify-content: space-between; padding: 16px; border: 1px solid var(--line-dark); }
.trip-package-choice strong { font-family: var(--display); font-size: .9rem; text-transform: uppercase; }
.trip-package-choice small { color: #686868; font-size: .62rem; }
.trip-package-choice input:checked + span { border-color: var(--orange); background: var(--orange); }
.trip-package-choice input:checked + span small { color: rgba(0,0,0,.63); }
.trip-package-choice input:focus-visible + span { outline: 2px solid var(--orange); outline-offset: 2px; }
.booking-calendar-wrap { margin-bottom: 38px; padding: 25px; background: #f0eee9; }
.booking-calendar__header { display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; margin-bottom: 20px; }
.booking-calendar__step { margin-bottom: 6px; color: #666; }
.booking-calendar__header h3 { margin: 0; font-family: var(--display); font-size: clamp(1.9rem,3vw,3rem); letter-spacing: -.04em; text-transform: uppercase; }
.booking-season-state { display: inline-flex; margin-top: 8px; padding: 5px 8px; background: var(--orange); color: var(--black); font-size: .55rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.booking-season-state.is-closed { background: #d5d2cb; color: #666; }
.booking-calendar__header > div:last-child { display: flex; gap: 6px; }
.booking-calendar__header button { width: 42px; height: 42px; border: 1px solid var(--line-dark); background: transparent; cursor: pointer; }
.booking-calendar__header button:hover, .booking-calendar__header button:focus-visible { border-color: var(--orange); background: var(--orange); }
.booking-calendar__header button:disabled { cursor: default; opacity: .25; }
.booking-calendar__weekdays, .booking-calendar { display: grid; grid-template-columns: repeat(7,1fr); gap: 5px; }
.booking-calendar__weekdays { margin-bottom: 6px; }
.booking-calendar__weekdays span { text-align: center; color: #777; font-size: .58rem; font-weight: 950; text-transform: uppercase; }
.booking-calendar button, .booking-calendar__blank { min-height: 47px; }
.booking-calendar button { border: 0; background: rgba(0,0,0,.035); color: #aaa; font-size: .76rem; font-weight: 850; }
.booking-calendar button:disabled { opacity: 1; }
.booking-calendar button.is-requestable { border: 1px solid rgba(255,90,0,.4); background: rgba(255,90,0,.1); color: var(--black); cursor: pointer; }
.booking-calendar button.is-requestable:hover, .booking-calendar button.is-requestable:focus-visible, .booking-calendar button.is-selected { background: var(--orange); color: var(--black); }
.booking-calendar button.is-season-closed { background: repeating-linear-gradient(-45deg,rgba(0,0,0,.025),rgba(0,0,0,.025) 5px,transparent 5px,transparent 10px); color: #bbb; }
.booking-date-status { margin: 16px 0 0; color: #656565; font-size: .7rem; }
.booking-date-status strong { color: var(--black); }
.trip-form-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.trip-form-fields .form-row { margin: 0 0 17px; }
.trip-form-fields input, .trip-form-fields select { width: 100%; min-height: 52px; padding: 12px 0; border: 0; border-bottom: 1px solid #777; border-radius: 0; background: transparent; color: var(--black); }
.trip-booking-form__note { margin: 5px 0 25px; color: #6a6a6a; font-size: .7rem; }
.trip-booking-form button[type="submit"]:disabled { cursor: not-allowed; filter: grayscale(1); opacity: .45; }

.casa-splash { position: relative; min-height: min(78vw,800px); overflow: hidden; background: #111; }
.casa-splash__image { position: absolute; inset: 0; background: linear-gradient(0deg,rgba(0,0,0,.45),transparent 45%), url("assets/images/casa-exterior.jpg") center / cover no-repeat; }
.casa-splash__rating { position: absolute; right: max(24px,calc((100vw - 1180px)/2)); bottom: clamp(30px,6vw,75px); display: flex; align-items: center; gap: 20px; padding: 20px 24px; background: var(--orange); color: var(--black); }
.casa-splash__rating strong { font-family: var(--display); font-size: clamp(3.4rem,6vw,6rem); letter-spacing: -.07em; line-height: .8; }
.casa-splash__rating span { font-size: .67rem; font-weight: 900; letter-spacing: .08em; line-height: 1.5; text-transform: uppercase; }
.casa-gallery { display: grid; grid-template-columns: 1.4fr repeat(3,1fr); min-height: 610px; overflow: hidden; background: #111; }
.casa-gallery figure { position: relative; min-width: 0; margin: 0; overflow: hidden; border-right: 1px solid rgba(255,255,255,.2); }
.casa-gallery figure:last-child { border-right: 0; }
.casa-gallery img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .5s ease, filter .5s ease; }
.casa-gallery figure:hover img { transform: scale(1.035); filter: contrast(1.05); }
.casa-gallery figcaption { position: absolute; left: 20px; right: 20px; bottom: 18px; color: var(--white); font-size: .62rem; font-weight: 950; letter-spacing: .13em; text-transform: uppercase; text-shadow: 0 2px 14px rgba(0,0,0,.75); }
.casa-sleeping { padding: clamp(90px,11vw,150px) 0; }
.casa-sleeping__intro { display: grid; grid-template-columns: 1fr .85fr; gap: clamp(50px,8vw,115px); align-items: end; }
.casa-sleeping__intro h2 { margin: 0; font-family: var(--display); font-size: clamp(3.5rem,6.8vw,7rem); letter-spacing: -.065em; line-height: .84; text-transform: uppercase; }
.casa-sleeping__intro h2 span { color: var(--orange); }
.casa-sleeping__intro > p { margin: 0; color: rgba(255,255,255,.64); }
.casa-bed-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; margin-top: 60px; border: 1px solid var(--line); background: var(--line); }
.casa-bed-grid article { min-height: 310px; display: flex; flex-direction: column; padding: clamp(28px,4vw,44px); background: #0b0b0b; }
.casa-bed-grid span { color: var(--orange); font-family: var(--display); font-size: clamp(2.8rem,5vw,5rem); letter-spacing: -.06em; line-height: .8; }
.casa-bed-grid strong { margin-top: auto; padding-top: 70px; font-family: var(--display); font-size: clamp(1.15rem,1.8vw,1.9rem); letter-spacing: -.035em; line-height: .95; overflow-wrap: anywhere; text-transform: uppercase; }
.casa-bed-grid p { margin: 15px 0 0; color: rgba(255,255,255,.55); font-size: .8rem; }
.casa-gallery--clean { display: block; min-height: 0; background: #111; }
.casa-gallery--clean img { width: 100%; height: min(40vw,650px); display: block; object-fit: cover; object-position: center; }
.casa-location { padding: clamp(95px,12vw,165px) 0; }
.casa-location__grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(55px,8vw,115px); align-items: stretch; }
.casa-location__copy h2 { margin: 0; font-family: var(--display); font-size: clamp(3.5rem,6.8vw,7rem); letter-spacing: -.065em; line-height: .84; text-transform: uppercase; }
.casa-location__copy h2 span { color: var(--orange); }
.casa-location__copy > p:not(.eyebrow) { margin: 27px 0; color: rgba(255,255,255,.62); }
.casa-location__copy address { margin: 0 0 31px; padding: 22px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: rgba(255,255,255,.78); font-style: normal; }
.casa-location__map { min-height: 600px; border: 1px solid var(--line); }
.casa-location__map iframe { width: 100%; height: 100%; min-height: 600px; display: block; border: 0; filter: grayscale(1) contrast(1.08); }
.casa-reviews { padding: clamp(90px,11vw,150px) 0; }
.casa-reviews__heading { display: grid; grid-template-columns: 1fr auto; gap: 45px; align-items: end; }
.casa-reviews__heading h2 { margin: 0; font-family: var(--display); font-size: clamp(3rem,6vw,6rem); letter-spacing: -.06em; line-height: .85; text-transform: uppercase; }
.casa-reviews__score { display: grid; grid-template-columns: auto auto; align-items: end; }
.casa-reviews__score strong { font-family: var(--display); font-size: clamp(5rem,10vw,10rem); letter-spacing: -.09em; line-height: .65; }
.casa-reviews__score span { margin-bottom: 7px; color: var(--orange); font-family: var(--display); font-size: 1.2rem; }
.casa-reviews__score small { grid-column: 1/-1; margin-top: 16px; color: #777; font-size: .58rem; font-weight: 900; letter-spacing: .12em; text-align: right; text-transform: uppercase; }
.casa-review-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; margin-top: 70px; border: 1px solid var(--line-dark); background: var(--line-dark); }
.casa-review-grid article { min-height: 300px; padding: clamp(28px,4vw,45px); background: var(--white); }
.casa-review-grid span { color: var(--orange); font-size: .63rem; font-weight: 950; letter-spacing: .11em; text-transform: uppercase; }
.casa-review-grid p { margin: 100px 0 0; font-family: var(--display); font-size: clamp(1.35rem,2.2vw,2.25rem); letter-spacing: -.035em; line-height: 1.02; text-transform: uppercase; }
.casa-reviews__source { max-width: 780px; margin: 22px 0 0; color: #777; font-size: .65rem; }
.casa-cta { position: relative; min-height: 760px; display: grid; align-items: end; overflow: hidden; }
.casa-cta__image { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(0,0,0,.84),rgba(0,0,0,.28)), url("assets/images/casa-exterior.jpg") center / cover no-repeat; }
.casa-cta__inner { position: relative; z-index: 1; padding-bottom: clamp(65px,9vw,115px); }
.casa-cta h2 { max-width: 980px; margin: 0; font-family: var(--display); font-size: clamp(3.5rem,7vw,7.5rem); letter-spacing: -.065em; line-height: .83; text-transform: uppercase; }
.casa-cta h2 span { color: var(--orange); }
.casa-cta__inner > p:not(.eyebrow) { max-width: 680px; margin: 28px 0 34px; color: rgba(255,255,255,.72); }

@media (max-width: 1050px) {
	.trip-flow { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.trip-flow article:nth-child(2) { border-right: 0; }
	.trip-flow article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
	.trip-package-grid { grid-template-columns: 1fr; }
	.trip-package { min-height: 560px; }
	.trip-package--featured { transform: none; }
	.casa-gallery { grid-template-columns: repeat(2,1fr); min-height: auto; }
	.casa-gallery figure { min-height: 520px; border-bottom: 1px solid rgba(255,255,255,.2); }
}

@media (max-width: 820px) {
	.athlete-week__intro, .planner-mail-card, .planner-export, .planner-account__head, .trip-booking__grid, .casa-location__grid, .casa-reviews__heading { grid-template-columns: 1fr; }
	.athlete-week__footer { align-items: flex-start; flex-direction: column; }
	.trip-casa-band { grid-template-columns: 1fr; }
	.trip-casa-band__copy { padding: 75px 28px; }
	.trip-casa-band__image { min-height: 520px; clip-path: none; }
	.trip-booking__intro { position: static; }
	.casa-location__map, .casa-location__map iframe { min-height: 480px; }
	.casa-reviews__score { justify-self: start; }
	.casa-reviews__score small { text-align: left; }
	.casa-review-grid { grid-template-columns: 1fr; }
	.casa-review-grid article { min-height: 240px; }
	.casa-review-grid p { margin-top: 60px; }
}

@media (max-width: 680px) {
	.planner-mail-form__fields, .planner-calendar-fields, .planner-auth-grid, .planner-save-form, .saved-plan-list, .trip-package-choice, .trip-form-fields { grid-template-columns: 1fr; }
	.planner-google-calendar { align-items: flex-start; flex-direction: column; }
	.planner-save-form .button { width: 100%; }
	.trip-opening, .casa-splash { min-height: 720px; }
	.trip-opening__image { background-position: 63% center; }
	.trip-flow { grid-template-columns: 1fr; }
	.trip-flow article { min-height: 285px; border-right: 0; border-bottom: 1px solid var(--line); }
	.trip-flow article:nth-child(3) { border-bottom: 1px solid var(--line); }
	.trip-flow h3 { margin-top: 70px; }
	.trip-package { min-height: 0; }
	.booking-calendar-wrap { padding: 20px 12px; }
	.booking-calendar button, .booking-calendar__blank { min-height: 42px; }
	.casa-splash__rating { left: 24px; right: 24px; justify-content: center; }
	.casa-gallery { grid-template-columns: 1fr; }
	.casa-gallery figure { min-height: 470px; border-right: 0; }
	.casa-gallery__wide { min-height: 390px !important; }
	.casa-location__map, .casa-location__map iframe { min-height: 400px; }
	.casa-cta { min-height: 700px; }
}

/* GTGF 2.0 — clickable session coaching and nutrition planning */
.planner-day__open { width: 100%; margin-top: 25px; padding: 13px 0 5px; border: 0; border-top: 1px solid var(--line-dark); background: transparent; color: var(--black); font-size: .62rem; font-weight: 950; letter-spacing: .11em; text-align: left; text-transform: uppercase; cursor: pointer; }
.planner-day__open:hover, .planner-day__open:focus-visible { color: var(--orange); }
.planner-day.is-rest .planner-day__open { color: #6d6d6d; }
.planner-day.is-rest .planner-day__open:hover, .planner-day.is-rest .planner-day__open:focus-visible { color: var(--orange); }

.planner-dialog { width: min(1120px,calc(100vw - 34px)); max-height: min(91vh,980px); margin: auto; padding: 0; overflow: auto; border: 0; background: var(--paper); color: var(--black); box-shadow: 0 30px 90px rgba(0,0,0,.55); }
.planner-dialog::backdrop { background: rgba(0,0,0,.82); backdrop-filter: blur(8px); }
.planner-dialog[open] { animation: planner-dialog-in .25s ease both; }
@keyframes planner-dialog-in { from { opacity: 0; transform: translateY(20px) scale(.985); } to { opacity: 1; transform: none; } }
.planner-dialog > form { position: sticky; z-index: 3; top: 0; height: 0; margin: 0; }
.planner-dialog__close { position: absolute; top: 19px; right: 19px; width: 48px; height: 48px; border: 0; background: var(--orange); color: var(--black); font-size: 2rem; line-height: 1; cursor: pointer; }
.planner-dialog__head { padding: clamp(45px,7vw,85px) clamp(28px,7vw,85px) clamp(35px,5vw,60px); background: var(--black); color: var(--white); }
.planner-dialog__head h2 { max-width: 850px; margin: 0; font-family: var(--display); font-size: clamp(3rem,7vw,7rem); letter-spacing: -.065em; line-height: .84; text-transform: uppercase; }
.planner-dialog__head > p:last-child { max-width: 680px; margin: 25px 0 0; color: rgba(255,255,255,.62); }
.planner-dialog__content { padding: clamp(34px,6vw,75px); }
.planner-guide-session + .planner-guide-session { margin-top: 65px; padding-top: 60px; border-top: 2px solid var(--black); }
.planner-guide-session__head { display: grid; grid-template-columns: 120px 1fr; gap: 12px 28px; align-items: end; }
.planner-guide-session__head > span { grid-row: 1/3; align-self: start; padding-top: 8px; color: var(--orange); font-size: .65rem; font-weight: 950; letter-spacing: .13em; text-transform: uppercase; }
.planner-guide-session__head h3 { margin: 0; font-family: var(--display); font-size: clamp(2rem,4.5vw,4.5rem); letter-spacing: -.055em; line-height: .9; text-transform: uppercase; }
.planner-guide-session__head p { margin: 0; color: #666; font-size: .66rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.planner-guide-purpose { display: grid; grid-template-columns: 120px 1fr; gap: 28px; margin-top: 35px; padding: 23px 0; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.planner-guide-purpose strong { color: var(--orange); font-size: .63rem; letter-spacing: .11em; text-transform: uppercase; }
.planner-guide-purpose p { margin: 0; }
.session-steps { margin: 35px 0 0; padding: 0; counter-reset: session-step; list-style: none; }
.session-steps li { position: relative; min-height: 80px; padding: 22px 20px 22px 90px; border-top: 1px solid var(--line-dark); counter-increment: session-step; }
.session-steps li::before { content: "0" counter(session-step); position: absolute; left: 5px; top: 18px; color: var(--orange); font-family: var(--display); font-size: 1.55rem; }
.exercise-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin-top: 38px; border: 1px solid var(--line-dark); background: var(--line-dark); }
.exercise-card { min-height: 360px; padding: clamp(24px,3.5vw,40px); background: var(--white); }
.exercise-card > span { color: var(--orange); font-family: var(--display); font-size: .82rem; }
.exercise-card h4 { margin: 70px 0 22px; font-family: var(--display); font-size: clamp(1.7rem,3vw,3rem); letter-spacing: -.045em; line-height: .9; text-transform: uppercase; }
.exercise-card dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0 0 22px; border-top: 1px solid var(--line-dark); }
.exercise-card dl > div { padding: 13px 0; border-bottom: 1px solid var(--line-dark); }
.exercise-card dt { color: #777; font-size: .55rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.exercise-card dd { margin: 3px 0 0; font-weight: 850; }
.exercise-card p { color: #4f4f4f; font-size: .8rem; }
.exercise-card small { display: block; margin-top: 18px; color: #777; font-size: .68rem; }
.planner-guide-note { margin: 25px 0 0; padding: 20px 24px; border-left: 4px solid var(--orange); background: #e9e7e2; font-size: .8rem; }
.planner-dialog__footer { display: grid; grid-template-columns: auto 1fr; gap: 28px; padding: 30px clamp(28px,7vw,85px); background: var(--orange); }
.planner-dialog__footer strong { font-family: var(--display); font-size: 1.2rem; text-transform: uppercase; }
.planner-dialog__footer span { font-size: .78rem; }
body.planner-dialog-open { overflow: hidden; }

.nutrition-training-link { padding: clamp(60px,8vw,100px) 0; }
.nutrition-training-link__inner { display: flex; align-items: end; justify-content: space-between; gap: 55px; padding: clamp(34px,5vw,65px); background: var(--orange); }
.nutrition-training-link h2 { max-width: 760px; margin: 0; font-family: var(--display); font-size: clamp(2.8rem,5.5vw,5.7rem); letter-spacing: -.06em; line-height: .88; text-transform: uppercase; }
.nutrition-training-link p:not(.eyebrow) { max-width: 720px; margin: 24px 0 0; }
.nutrition-training-link .button { flex: 0 0 auto; }

.nutrition-foundation { padding: clamp(90px,11vw,150px) 0; }
.nutrition-principles { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; margin-top: 60px; border: 1px solid var(--line-dark); background: var(--line-dark); }
.nutrition-principles article { min-height: 480px; display: flex; flex-direction: column; padding: clamp(28px,4vw,48px); background: var(--white); }
.nutrition-principles article > span { color: var(--orange); font-family: var(--display); letter-spacing: .12em; }
.nutrition-principles h3 { margin: 125px 0 22px; font-family: var(--display); font-size: clamp(2rem,3.8vw,4rem); letter-spacing: -.055em; line-height: .9; text-transform: uppercase; }
.nutrition-principles p { margin: 0; color: #5e5e5e; }
.nutrition-principles strong { margin-top: auto; padding-top: 28px; color: var(--orange); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }

.nutrition-planner { padding: clamp(95px,12vw,165px) 0; }
.nutrition-planner__intro { display: grid; grid-template-columns: 1fr .9fr; gap: clamp(50px,9vw,130px); align-items: end; }
.nutrition-planner__intro h2 { margin: 0; font-family: var(--display); font-size: clamp(3.8rem,7vw,7.4rem); letter-spacing: -.065em; line-height: .83; text-transform: uppercase; }
.nutrition-planner__intro h2 span { color: var(--orange); }
.nutrition-planner__intro > div:last-child > p:last-child { color: rgba(255,255,255,.62); }
.nutrition-form { margin-top: 65px; padding: clamp(28px,5vw,60px); border: 1px solid var(--line); background: #0b0b0b; }
.nutrition-fields { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.nutrition-allergens { margin: 40px 0 0; padding: 30px 0 0; border: 0; border-top: 1px solid var(--line); }
.nutrition-allergens legend { padding: 0; color: var(--white); font-family: var(--display); font-size: 1.25rem; letter-spacing: -.02em; text-transform: uppercase; }
.nutrition-allergens > p { max-width: 800px; margin: 10px 0 22px; color: rgba(255,255,255,.52); font-size: .75rem; }
.nutrition-allergen-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
.nutrition-allergen-grid label { position: relative; cursor: pointer; }
.nutrition-allergen-grid input { position: absolute; opacity: 0; }
.nutrition-allergen-grid span { min-height: 54px; display: flex; align-items: center; padding: 12px 14px; border: 1px solid var(--line); color: rgba(255,255,255,.64); font-size: .66rem; font-weight: 850; }
.nutrition-allergen-grid input:checked + span { border-color: var(--orange); background: var(--orange); color: var(--black); }
.nutrition-allergen-grid input:focus-visible + span { outline: 2px solid var(--orange); outline-offset: 2px; }
.nutrition-form__footer { display: flex; align-items: center; justify-content: space-between; gap: 35px; margin-top: 36px; }
.nutrition-form__footer p { max-width: 700px; margin: 0; color: rgba(255,255,255,.5); font-size: .72rem; }
.nutrition-form__footer p.is-imported { color: var(--orange); }
.nutrition-form__footer .button { flex: 0 0 auto; }
.nutrition-results { scroll-margin-top: 110px; padding-top: 100px; }
.nutrition-results[hidden] { display: none; }
.nutrition-results__head { display: grid; grid-template-columns: 1fr auto; gap: 45px; align-items: end; margin-bottom: 35px; }
.nutrition-results__head h2 { margin: 0; font-family: var(--display); font-size: clamp(3rem,6vw,6rem); letter-spacing: -.06em; line-height: .86; text-transform: uppercase; }
.nutrition-results__legend { display: flex; flex-wrap: wrap; gap: 18px; color: rgba(255,255,255,.58); font-size: .6rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.nutrition-results__legend span { display: flex; align-items: center; gap: 8px; }
.fuel-dot { width: 9px; height: 9px; border-radius: 50%; background: #777; }
.fuel-dot--medium { background: var(--white); }
.fuel-dot--high { background: var(--orange); }
.nutrition-week { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.nutrition-day { min-width: 0; padding: clamp(25px,4vw,42px); background: #0c0c0c; }
.nutrition-day--high { background: #15100d; }
.nutrition-day header { display: flex; align-items: start; justify-content: space-between; gap: 20px; padding-bottom: 25px; border-bottom: 1px solid var(--line); }
.nutrition-day header span { color: rgba(255,255,255,.48); font-size: .58rem; font-weight: 950; letter-spacing: .11em; text-transform: uppercase; }
.nutrition-day--high header span { color: var(--orange); }
.nutrition-day header h3 { margin: 6px 0 0; font-family: var(--display); font-size: clamp(2rem,3vw,3.2rem); letter-spacing: -.045em; text-transform: uppercase; }
.nutrition-day header > strong { color: var(--orange); font-size: .62rem; letter-spacing: .09em; text-transform: uppercase; }
.nutrition-day__fuel { padding: 20px 0; border-bottom: 1px solid var(--line); }
.nutrition-day__fuel p { margin: 0; color: rgba(255,255,255,.68); font-size: .76rem; }
.nutrition-day__fuel p + p { margin-top: 11px; }
.nutrition-day__fuel strong { color: var(--white); }
.nutrition-day__meals { display: grid; gap: 0; }
.nutrition-meal { display: grid; grid-template-columns: 90px 1fr; gap: 8px 20px; padding: 23px 0; border-bottom: 1px solid var(--line); }
.nutrition-meal > span { grid-row: 1/5; color: var(--orange); font-size: .58rem; font-weight: 950; letter-spacing: .09em; text-transform: uppercase; }
.nutrition-meal h4 { margin: 0; font-family: var(--display); font-size: 1.2rem; letter-spacing: -.025em; text-transform: uppercase; }
.nutrition-meal p { margin: 0; color: rgba(255,255,255,.55); font-size: .71rem; }
.nutrition-meal small { color: rgba(255,255,255,.35); font-size: .58rem; }
.nutrition-rules { display: grid; grid-template-columns: .7fr 1.3fr; gap: 45px; margin-top: 35px; padding: clamp(30px,5vw,55px); background: var(--orange); color: var(--black); }
.nutrition-rules h3 { margin: 0; font-family: var(--display); font-size: clamp(2.4rem,4.5vw,4.7rem); letter-spacing: -.055em; line-height: .88; text-transform: uppercase; }
.nutrition-rules ul { margin: 0; padding: 0; list-style: none; }
.nutrition-rules li { position: relative; padding: 13px 0 13px 28px; border-top: 1px solid rgba(0,0,0,.25); font-size: .82rem; }
.nutrition-rules li::before { content: "→"; position: absolute; left: 0; font-weight: 950; }
.nutrition-results .button--outline { border-color: var(--white); background: transparent; color: var(--white); }
.nutrition-results .button--outline:hover { border-color: var(--orange); background: var(--orange); color: var(--black); }

.supplement-guide { padding: clamp(95px,12vw,165px) 0; }
.supplement-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 60px; }
.supplement-card { min-height: 510px; display: flex; flex-direction: column; padding: clamp(28px,3.5vw,42px); border: 1px solid var(--line-dark); background: var(--white); }
.supplement-card > span { color: var(--orange); font-size: .6rem; font-weight: 950; letter-spacing: .13em; }
.supplement-card h3 { margin: 105px 0 22px; font-family: var(--display); font-size: clamp(2rem,3vw,3.2rem); letter-spacing: -.05em; line-height: .9; text-transform: uppercase; }
.supplement-card p { margin: 0; color: #5b5b5b; font-size: .8rem; }
.supplement-card > strong { margin-top: auto; padding-top: 28px; color: var(--orange); font-size: .64rem; letter-spacing: .1em; text-transform: uppercase; }
.supplement-card > strong + p { margin-top: 8px; }
.supplement-card--food { border-color: var(--orange); background: var(--orange); }
.supplement-card--food > span, .supplement-card--food > strong { color: var(--black); }
.supplement-card--medical { background: var(--black); color: var(--white); }
.supplement-card--medical p { color: rgba(255,255,255,.62); }
.supplement-warning { display: grid; grid-template-columns: auto 1fr; gap: 30px; margin-top: 30px; padding: 28px 32px; border-left: 5px solid var(--orange); background: #e9e7e2; }
.supplement-warning strong { font-family: var(--display); text-transform: uppercase; }
.supplement-warning p { margin: 0; font-size: .8rem; }
.nutrition-evidence { padding: clamp(90px,11vw,145px) 0; }
.nutrition-evidence__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(50px,9vw,125px); }
.nutrition-evidence h2 { margin: 0; font-family: var(--display); font-size: clamp(3.5rem,6.8vw,7rem); letter-spacing: -.065em; line-height: .84; text-transform: uppercase; }
.nutrition-evidence__grid > div:last-child > p:first-child { margin-top: 0; }
.nutrition-source-links { display: grid; margin-top: 30px; border-top: 1px solid rgba(0,0,0,.3); }
.nutrition-source-links a { padding: 13px 0; border-bottom: 1px solid rgba(0,0,0,.3); color: var(--black); font-size: .7rem; font-weight: 900; text-transform: uppercase; }

@media (max-width: 980px) {
	.nutrition-principles, .supplement-grid { grid-template-columns: 1fr; }
	.nutrition-principles article, .supplement-card { min-height: 390px; }
	.nutrition-principles h3, .supplement-card h3 { margin-top: 80px; }
	.nutrition-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.nutrition-allergen-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 760px) {
	.planner-guide-session__head, .planner-guide-purpose { grid-template-columns: 1fr; }
	.planner-guide-session__head > span { grid-row: auto; }
	.exercise-grid, .nutrition-planner__intro, .nutrition-results__head, .nutrition-week, .nutrition-rules, .nutrition-evidence__grid { grid-template-columns: 1fr; }
	.planner-dialog__footer, .supplement-warning { grid-template-columns: 1fr; }
	.nutrition-training-link__inner, .nutrition-form__footer { align-items: flex-start; flex-direction: column; }
	.nutrition-fields { grid-template-columns: 1fr; }
	.nutrition-allergen-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.nutrition-meal { grid-template-columns: 1fr; }
	.nutrition-meal > span { grid-row: auto; }
}

@media (max-width: 480px) {
	.nutrition-allergen-grid { grid-template-columns: 1fr; }
	.planner-dialog { width: calc(100vw - 18px); }
	.planner-dialog__close { top: 10px; right: 10px; }
	.exercise-card { min-height: 0; }
}

@media print {
	body.gtgf-nutrition-page .site-header,
	body.gtgf-nutrition-page .page-hero,
	body.gtgf-nutrition-page .nutrition-foundation,
	body.gtgf-nutrition-page .nutrition-planner__intro,
	body.gtgf-nutrition-page .nutrition-form,
	body.gtgf-nutrition-page .planner-results__actions,
	body.gtgf-nutrition-page .supplement-guide,
	body.gtgf-nutrition-page .nutrition-evidence,
body.gtgf-nutrition-page .site-footer { display: none !important; }
	body.gtgf-nutrition-page .nutrition-planner { padding: 0; background: var(--white); color: var(--black); }
	body.gtgf-nutrition-page .nutrition-results { padding: 0; }
	body.gtgf-nutrition-page .nutrition-week { grid-template-columns: 1fr 1fr; }
	body.gtgf-nutrition-page .nutrition-day { break-inside: avoid; border: 1px solid #ccc; background: var(--white); color: var(--black); }
	body.gtgf-nutrition-page .nutrition-day p, body.gtgf-nutrition-page .nutrition-meal p, body.gtgf-nutrition-page .nutrition-meal small { color: #444; }
}

/* GTGF 2.1 — safer contrast, open trip dates and athlete weekend */
.page-hero::before { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg,#070707 0%,rgba(7,7,7,.96) 48%,rgba(7,7,7,.72) 68%,transparent 83%); pointer-events: none; }
.page-hero--orange::before { background: linear-gradient(90deg,var(--orange) 0%,rgba(255,90,0,.96) 54%,rgba(255,90,0,.72) 72%,transparent 86%); }
.page-hero h1 { max-width: min(920px,72vw); overflow-wrap: break-word; }
.section--orange .accent, .section--orange h1 span, .section--orange h2 span { color: var(--white); }
.section--orange .section-intro { color: rgba(0,0,0,.68); }
.section--orange .home-kicker span { color: var(--black); }
.planner-form.is-athlete-weekend .planner-goal-context { border-left-color: var(--black); background: var(--orange); color: var(--black); }
.planner-form.is-athlete-weekend .planner-goal-context span,
.planner-form.is-athlete-weekend .planner-goal-context strong,
.planner-form.is-athlete-weekend .planner-goal-context p { color: var(--black); }
.planner-layout > *, .trip-booking__grid > *, .split > *, .section-head > *, .project-band__grid > * { min-width: 0; }
.planner-day h3, .trip-package h3, .section-head h2, .split h2, .project-band h2, .performance-week-band h2 { overflow-wrap: break-word; }

@media (max-width: 820px) {
	.casa-sleeping__intro, .casa-bed-grid { grid-template-columns: 1fr; }
	.casa-bed-grid article { min-height: 250px; }
	.casa-bed-grid strong { padding-top: 45px; }
}

@media (max-width: 680px) {
	.page-hero::before { background: linear-gradient(90deg,#070707 0%,rgba(7,7,7,.96) 72%,rgba(7,7,7,.35) 100%); }
	.page-hero--orange::before { background: linear-gradient(90deg,var(--orange) 0%,rgba(255,90,0,.96) 76%,rgba(255,90,0,.45) 100%); }
	.page-hero::after { right: -42vw; opacity: .55; }
	.page-hero h1 { max-width: 100%; overflow-wrap: normal; }
	.casa-gallery--clean { overflow-x: auto; }
	.casa-gallery--clean img { width: 1180px; max-width: none; height: 460px; }
	.planner-day.has-triple { min-height: 0; }
}


/* GTGF 2.3.4 — Mijn GTGF member dashboard */
.member-dashboard { padding: clamp(80px,10vw,145px) 0; }
.member-welcome { display: grid; grid-template-columns: minmax(0,1fr) minmax(320px,.75fr); gap: clamp(45px,8vw,110px); align-items: end; }
.member-welcome h2 { margin: 0; font-family: var(--display); font-size: clamp(3.8rem,7vw,7.5rem); letter-spacing: -.07em; line-height: .82; text-transform: uppercase; }
.member-welcome__copy > p { max-width: 600px; margin: 0 0 24px; color: #5e5e5e; }
.member-logout, .member-password-link { color: #676767; font-size: .66rem; font-weight: 950; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }
.member-logout:hover, .member-password-link:hover { color: var(--orange); }
.member-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: clamp(50px,7vw,85px); border: 1px solid var(--line-dark); background: var(--line-dark); gap: 1px; }
.member-stats article { min-height: 230px; display: flex; flex-direction: column; padding: 25px; background: var(--black); color: var(--white); }
.member-stats span { color: var(--orange); font-size: .62rem; font-weight: 950; letter-spacing: .13em; }
.member-stats strong { margin-top: auto; font-family: var(--display); font-size: clamp(3rem,5vw,5.4rem); letter-spacing: -.06em; line-height: .8; }
.member-stats p { margin: 12px 0 0; color: rgba(255,255,255,.55); font-size: .66rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.member-jump-nav { position: sticky; z-index: 15; top: 76px; display: flex; gap: 1px; margin-top: 35px; border: 1px solid var(--line-dark); background: var(--line-dark); }
.member-jump-nav a { flex: 1 1 0; padding: 15px 18px; background: var(--white); color: var(--black); font-size: .63rem; font-weight: 950; letter-spacing: .09em; text-align: center; text-decoration: none; text-transform: uppercase; }
.member-jump-nav a:hover, .member-jump-nav a:focus-visible { background: var(--orange); }
.member-section { scroll-margin-top: 150px; padding-top: clamp(90px,11vw,145px); }
.member-section + .member-section { margin-top: clamp(30px,4vw,55px); border-top: 1px solid var(--line-dark); }
.member-section__head { display: grid; grid-template-columns: minmax(0,1fr) minmax(300px,.72fr); gap: clamp(45px,8vw,110px); align-items: end; margin-bottom: 50px; }
.member-section__head h2 { margin: 0; font-family: var(--display); font-size: clamp(3.2rem,6.5vw,6.8rem); letter-spacing: -.065em; line-height: .84; text-transform: uppercase; }
.member-section__head > p, .member-section__head > div:last-child > p { margin: 0 0 24px; color: #606060; }
.member-profile-grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: 1px; border: 1px solid var(--line-dark); background: var(--line-dark); }
.member-profile-card, .member-profile-form { padding: clamp(28px,4.5vw,52px); background: var(--white); }
.member-profile-card { display: flex; flex-direction: column; }
.member-profile-card dl { margin: 50px 0 35px; border-top: 1px solid var(--line-dark); }
.member-profile-card dl div { display: grid; grid-template-columns: 115px 1fr; gap: 16px; padding: 15px 0; border-bottom: 1px solid var(--line-dark); }
.member-profile-card dt { color: #777; font-size: .61rem; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.member-profile-card dd { margin: 0; overflow-wrap: anywhere; font-weight: 800; }
.member-password-link { margin-top: auto; }
.member-profile-form { background: #efede8; }
.member-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px 30px; }
.member-profile-form .form-row { margin: 0; }
.member-profile-form input, .member-profile-form select { width: 100%; min-height: 49px; border: 0; border-bottom: 1px solid #6f6f6f; border-radius: 0; background: transparent; color: var(--black); }
.member-form-grid__wide { grid-column: 1/-1; }
.member-profile-form .button { margin-top: 35px; }
.member-plan-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; border: 1px solid var(--line-dark); background: var(--line-dark); }
.member-plan-card { min-height: 390px; display: flex; flex-direction: column; padding: clamp(28px,4vw,44px); background: var(--white); }
.member-plan-card--nutrition { background: #f3efe7; }
.member-plan-card__top { display: flex; justify-content: space-between; gap: 20px; align-items: center; }
.member-plan-card__top span { color: var(--orange); font-size: .62rem; font-weight: 950; letter-spacing: .11em; text-transform: uppercase; }
.member-plan-card__top small { color: #7b7b7b; font-size: .61rem; font-weight: 850; }
.member-plan-card h3 { margin: 75px 0 12px; font-family: var(--display); font-size: clamp(2rem,3.7vw,3.8rem); letter-spacing: -.052em; line-height: .88; text-transform: uppercase; }
.member-plan-card > p { margin: 0; color: #666; }
.member-plan-card__dates { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 24px; }
.member-plan-card__dates span { display: grid; gap: 4px; color: #777; font-size: .59rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.member-plan-card__dates strong { color: var(--black); font-size: .72rem; }
.member-plan-card__actions { display: flex; gap: 18px; align-items: center; margin-top: auto; padding-top: 35px; }
.member-plan-card__actions form { margin: 0; }
.member-empty { grid-column: 1/-1; min-height: 360px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(35px,6vw,70px); background: var(--white); }
.member-empty h3 { margin: 20px 0 12px; font-family: var(--display); font-size: clamp(2.5rem,5vw,5rem); letter-spacing: -.055em; line-height: .87; text-transform: uppercase; }
.member-empty > p:not(.eyebrow) { max-width: 550px; margin: 0 0 28px; color: #666; }
.nutrition-save-form, .nutrition-save-login { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(35px,6vw,80px); align-items: end; margin-top: 34px; padding: clamp(28px,4vw,48px); border: 1px solid rgba(255,255,255,.18); background: #111; color: var(--white); }
.nutrition-save-form h3, .nutrition-save-login h3 { margin: 0 0 12px; font-family: var(--display); font-size: clamp(2rem,3.7vw,3.8rem); letter-spacing: -.05em; line-height: .9; text-transform: uppercase; }
.nutrition-save-form > div:first-child > p:last-child, .nutrition-save-login > div > p:last-child { margin: 0; color: rgba(255,255,255,.58); }
.nutrition-save-form__fields { display: grid; grid-template-columns: minmax(220px,1fr) auto; gap: 20px; align-items: end; }
.nutrition-save-form__fields .form-row { margin: 0; }
.nutrition-save-form__fields label { color: rgba(255,255,255,.58); }
.nutrition-save-form__fields input { width: 100%; border-bottom-color: rgba(255,255,255,.45); color: var(--white); }
.nutrition-save-login { grid-template-columns: 1fr auto; }
.nutrition-save-login .button { align-self: end; }

@media (max-width: 900px) {
	.member-welcome, .member-section__head, .member-profile-grid, .nutrition-save-form, .nutrition-save-login { grid-template-columns: 1fr; }
	.member-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.member-jump-nav { top: 68px; overflow-x: auto; }
	.member-jump-nav a { min-width: 165px; }
}
@media (max-width: 680px) {
	.member-stats, .member-plan-grid, .member-form-grid, .nutrition-save-form__fields { grid-template-columns: 1fr; }
	.member-form-grid__wide { grid-column: auto; }
	.member-plan-card { min-height: 330px; }
	.member-profile-card dl div { grid-template-columns: 95px 1fr; }
	.member-plan-card__actions { align-items: flex-start; flex-direction: column; }
	.nutrition-save-login .button, .nutrition-save-form .button { width: 100%; }
}


/* GTGF 13.6: clean member header and dropdown navigation */
body.admin-bar .site-header { top: 0; }

.site-nav > ul > li { position: relative; display: flex; align-items: center; }
.site-nav .submenu-toggle {
	flex: 0 0 auto;
	width: 24px;
	height: 30px;
	margin-left: 2px;
	padding: 0;
	border: 0;
	background: transparent;
	color: rgba(255,255,255,.62);
	cursor: pointer;
}
.site-nav .submenu-toggle svg { width: 10px; height: 7px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5; transition: transform .2s ease; }
.site-nav li.is-submenu-open > .submenu-toggle svg { transform: rotate(180deg); }
.site-nav .sub-menu {
	position: absolute;
	top: calc(100% + 8px);
	left: -18px;
	z-index: 20;
	display: grid;
	min-width: 235px;
	gap: 0;
	padding: 10px 0;
	border: 1px solid rgba(255,255,255,.13);
	background: rgba(8,8,8,.98);
	box-shadow: 0 20px 45px rgba(0,0,0,.35);
	opacity: 0;
	visibility: hidden;
	transform: translateY(7px);
	transition: opacity .18s ease, visibility .18s ease, transform .18s ease;
}
.site-nav li:hover > .sub-menu,
.site-nav li:focus-within > .sub-menu,
.site-nav li.is-submenu-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.site-nav .sub-menu li { display: block; width: 100%; }
.site-nav .sub-menu a {
	width: 100%;
	padding: 10px 18px;
	color: rgba(255,255,255,.68);
	font-size: .66rem;
	font-weight: 800;
	letter-spacing: .06em;
	line-height: 1.35;
	text-transform: none;
	white-space: nowrap;
}
.site-nav .sub-menu a::after { display: none; }
.site-nav .sub-menu a:hover,
.site-nav .sub-menu a:focus-visible { background: rgba(255,90,0,.11); color: var(--white); }

.header-account-menu { position: relative; }
.header-account-toggle { background: rgba(5,5,5,.22); cursor: pointer; }
.header-account-chevron { width: 10px !important; height: 7px !important; margin-left: 1px; transition: transform .2s ease; }
.header-account-menu.is-open .header-account-chevron { transform: rotate(180deg); }
.header-account-dropdown {
	position: absolute;
	top: calc(100% + 12px);
	right: 0;
	z-index: 30;
	width: 255px;
	padding: 10px;
	border: 1px solid rgba(255,255,255,.14);
	background: rgba(8,8,8,.98);
	box-shadow: 0 22px 55px rgba(0,0,0,.42);
	opacity: 0;
	visibility: hidden;
	transform: translateY(7px);
	transition: opacity .18s ease, visibility .18s ease, transform .18s ease;
}
.header-account-menu.is-open .header-account-dropdown { opacity: 1; visibility: visible; transform: none; }
.header-account-dropdown__intro { padding: 10px 10px 12px; border-bottom: 1px solid var(--line); }
.header-account-dropdown__intro span { display: block; color: rgba(255,255,255,.44); font-size: .58rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.header-account-dropdown__intro strong { display: block; margin-top: 3px; color: var(--white); font-size: .82rem; }
.header-account-dropdown > a { display: block; padding: 10px; color: rgba(255,255,255,.72); font-size: .68rem; font-weight: 850; letter-spacing: .05em; text-decoration: none; }
.header-account-dropdown > a:hover,
.header-account-dropdown > a:focus-visible { background: rgba(255,90,0,.12); color: var(--white); }
.header-account-dropdown > .header-account-logout { margin-top: 4px; border-top: 1px solid var(--line); color: var(--orange); }

@media (max-width: 980px) {
	.site-nav > ul > li { display: grid; grid-template-columns: minmax(0,1fr) 48px; align-items: center; }
	.site-nav > ul > li > a { grid-column: 1; }
	.site-nav > ul > li > .submenu-toggle { grid-column: 2; grid-row: 1; width: 48px; height: 52px; margin: 0; justify-self: end; border-left: 1px solid var(--line); }
	.site-nav .submenu-toggle svg { width: 13px; height: 9px; }
	.site-nav .sub-menu {
		position: static;
		grid-column: 1 / -1;
		display: none;
		min-width: 0;
		padding: 4px 0 12px 18px;
		border: 0;
		border-top: 1px solid rgba(255,255,255,.08);
		background: transparent;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}
	.site-nav li:hover > .sub-menu,
	.site-nav li:focus-within > .sub-menu { display: none; }
	.site-nav li.is-submenu-open > .sub-menu { display: grid; }
	.site-nav .sub-menu li { border: 0; }
	.site-nav .sub-menu li:last-child { border: 0; }
	.site-nav .sub-menu a { padding: 9px 0; font-family: var(--body); font-size: .82rem; letter-spacing: .03em; white-space: normal; }
	body.home .site-nav > ul > li:last-child { margin-left: 0; }
	body.home .site-nav > ul > li:last-child > a { min-width: 0; margin-top: 0; padding: 14px 0; background: transparent; color: rgba(255,255,255,.82); text-align: left; }
	.header-account-dropdown { width: min(285px, calc(100vw - 28px)); }
}

@media (max-width: 782px) {
	body.admin-bar .site-header { top: 0; }
}

/* GTGF 13.7: event calendar, community attendance and trip booking refinements */
.member-stats { grid-template-columns: repeat(5,minmax(0,1fr)); }
.member-plan-card--event::before { content: "EVENT"; }

.events-hero .page-hero__copy { max-width: 780px; }
.events-intro { overflow: hidden; }
.events-intro__grid {
	display: grid;
	grid-template-columns: minmax(0,.9fr) minmax(340px,1.1fr);
	gap: clamp(45px,8vw,120px);
	align-items: end;
}
.events-intro h2,
.events-browser__head h2,
.events-community-cta h2 {
	margin: 0;
	font-family: var(--display);
	font-size: clamp(3.4rem,7vw,7.7rem);
	font-weight: 950;
	letter-spacing: -.065em;
	line-height: .82;
	text-transform: uppercase;
}
.events-intro__copy { max-width: 670px; }
.events-intro__copy p { margin: 0 0 18px; color: rgba(5,5,5,.67); font-size: clamp(.98rem,1.2vw,1.12rem); line-height: 1.75; }
.events-intro__copy p:last-child { margin-bottom: 0; }
.events-stat-grid {
	display: grid;
	grid-template-columns: repeat(5,minmax(0,1fr));
	margin-top: clamp(50px,7vw,88px);
	border: 1px solid rgba(5,5,5,.13);
	background: rgba(5,5,5,.13);
	gap: 1px;
}
.events-stat { min-height: 145px; padding: 22px; display: flex; flex-direction: column; justify-content: space-between; background: var(--paper); }
.events-stat strong { font-family: var(--display); font-size: clamp(2.7rem,4.5vw,5rem); line-height: .8; letter-spacing: -.06em; }
.events-stat span { color: rgba(5,5,5,.5); font-size: .65rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }

.events-browser { position: relative; overflow: hidden; }
.events-browser::before {
	content: "EVENTS";
	position: absolute;
	right: -2vw;
	top: 115px;
	color: rgba(255,255,255,.022);
	font-family: var(--display);
	font-size: clamp(8rem,20vw,20rem);
	font-weight: 950;
	letter-spacing: -.08em;
	line-height: .7;
	pointer-events: none;
}
.events-notice { position: relative; z-index: 2; margin-bottom: 34px; border-color: rgba(255,90,0,.45); color: var(--white); background: rgba(255,90,0,.12); }
.events-browser__head {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0,1fr) minmax(300px,.6fr);
	gap: 60px;
	align-items: end;
	margin-bottom: clamp(45px,6vw,78px);
}
.events-browser__head h2 { color: var(--white); }
.events-browser__head h2 span { color: var(--orange); }
.events-browser__head > p { margin: 0 0 8px; color: rgba(255,255,255,.58); line-height: 1.7; }
.events-filter-layout {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(320px,.8fr) minmax(0,1.2fr);
	gap: 1px;
	border: 1px solid rgba(255,255,255,.13);
	background: rgba(255,255,255,.13);
}
.events-map-panel,
.events-filter-panel { background: #0b0b0b; }
.events-map-panel { min-height: 590px; padding: clamp(22px,3vw,38px); }
.events-map-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.events-map-panel__head > span { color: var(--white); font-size: .7rem; font-weight: 950; letter-spacing: .14em; text-transform: uppercase; }
.events-map-reset,
.events-filter-summary button {
	padding: 0;
	border: 0;
	border-bottom: 1px solid currentColor;
	background: transparent;
	color: rgba(255,255,255,.5);
	font-size: .62rem;
	font-weight: 850;
	letter-spacing: .07em;
	cursor: pointer;
}
.events-map-reset:hover,
.events-filter-summary button:hover { color: var(--orange); }
.nl-event-map { display: block; width: min(100%,390px); height: auto; margin: 25px auto 10px; overflow: visible; }
.nl-event-map__outline { fill: rgba(255,255,255,.025); stroke: rgba(255,255,255,.14); stroke-width: 1.8; }
.nl-event-map__islands path { fill: rgba(255,255,255,.035); stroke: rgba(255,255,255,.22); stroke-width: 1.5; }
.province-shape { cursor: pointer; outline: none; }
.province-shape polygon, .province-shape path { fill: #191919; stroke: rgba(255,255,255,.30); stroke-width: 1.8; transition: fill .18s ease, stroke .18s ease, transform .18s ease; transform-origin: center; }
.province-shape text { fill: rgba(255,255,255,.68); font-family: var(--display); font-size: 15px; font-weight: 950; letter-spacing: .03em; pointer-events: none; text-anchor: middle; }
.province-shape:hover polygon,
.province-shape:hover path,
.province-shape:focus-visible polygon,
.province-shape:focus-visible path { fill: #242424; stroke: var(--orange); }
.province-shape:hover text,
.province-shape:focus-visible text { fill: var(--white); }
.province-shape.is-active polygon,
.province-shape.is-active path { fill: var(--orange); stroke: var(--orange); }
.province-shape.is-active text { fill: var(--black); }
.events-map-caption { margin: 12px 0 0; color: rgba(255,255,255,.38); font-size: .7rem; text-align: center; }
.events-filter-panel { display: flex; flex-direction: column; padding: clamp(24px,4vw,52px); }
.events-sport-filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 46px; }
.events-sport-filter button {
	min-height: 40px;
	padding: 10px 14px;
	border: 1px solid rgba(255,255,255,.16);
	background: transparent;
	color: rgba(255,255,255,.62);
	font-size: .65rem;
	font-weight: 900;
	letter-spacing: .07em;
	text-transform: uppercase;
	cursor: pointer;
	transition: .18s ease;
}
.events-sport-filter button:hover,
.events-sport-filter button.is-active { border-color: var(--orange); background: var(--orange); color: var(--black); }
.events-filter-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 24px; }
.events-filter-fields label { display: block; }
.events-filter-fields label > span { display: block; margin-bottom: 8px; color: rgba(255,255,255,.45); font-size: .61rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.events-filter-fields select,
.events-filter-fields input {
	width: 100%;
	min-height: 48px;
	padding: 0 0 9px;
	border: 0;
	border-bottom: 1px solid rgba(255,255,255,.28);
	border-radius: 0;
	outline: 0;
	background: transparent;
	color: var(--white);
	font: inherit;
}
.events-filter-fields select { color-scheme: dark; }
.events-filter-fields input::placeholder { color: rgba(255,255,255,.32); }
.events-filter-fields select:focus,
.events-filter-fields input:focus { border-bottom-color: var(--orange); }
.events-filter-search { grid-column: 1 / -1; }
.events-filter-summary { display: grid; grid-template-columns: auto 1fr auto; align-items: end; gap: 12px; margin-top: auto; padding-top: 48px; }
.events-filter-summary strong { color: var(--orange); font-family: var(--display); font-size: clamp(3.8rem,6vw,6.8rem); line-height: .75; letter-spacing: -.06em; }
.events-filter-summary span { padding-bottom: 2px; color: rgba(255,255,255,.4); font-size: .65rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.events-filter-summary button { align-self: end; margin-bottom: 3px; }

.events-grid { position: relative; z-index: 1; display: grid; gap: 1px; margin-top: clamp(40px,6vw,72px); border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.12); }
.event-card { position: relative; display: grid; grid-template-columns: 132px minmax(0,1fr); background: #0b0b0b; }
.event-card[hidden] { display: none !important; }
.event-card--featured { box-shadow: inset 4px 0 0 var(--orange); }
.event-card__date { display: flex; min-height: 292px; flex-direction: column; align-items: center; justify-content: center; border-right: 1px solid rgba(255,255,255,.12); text-align: center; }
.event-card__date span { color: var(--orange); font-size: .64rem; font-weight: 950; letter-spacing: .16em; }
.event-card__date strong { margin: 7px 0 2px; color: var(--white); font-family: var(--display); font-size: clamp(3.8rem,6vw,6.4rem); line-height: .75; letter-spacing: -.06em; }
.event-card__date small { color: rgba(255,255,255,.38); font-size: .67rem; font-weight: 800; letter-spacing: .08em; }
.event-card__body { padding: clamp(24px,3.6vw,46px); }
.event-card__labels { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; margin-bottom: 14px; }
.event-sport,
.event-featured { display: inline-flex; min-height: 26px; align-items: center; padding: 5px 9px; border: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.64); font-size: .58rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.event-sport::before { content: ""; width: 6px; height: 6px; margin-right: 7px; border-radius: 50%; background: var(--orange); }
.event-featured { border-color: var(--orange); color: var(--orange); }
.event-card h3 { margin: 0; color: var(--white); font-family: var(--display); font-size: clamp(2.25rem,4vw,4.8rem); line-height: .88; letter-spacing: -.05em; text-transform: uppercase; }
.event-card__location { margin: 12px 0 0; color: rgba(255,255,255,.49); font-size: .82rem; }
.event-card__meta { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin-top: 25px; border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.1); }
.event-card__meta > span { min-height: 75px; padding: 13px 15px; background: #101010; }
.event-card__meta small { display: block; color: rgba(255,255,255,.35); font-size: .55rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.event-card__meta strong { display: block; margin-top: 5px; color: rgba(255,255,255,.82); font-size: .78rem; line-height: 1.45; }
.event-community { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 22px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.1); }
.event-community__count { display: flex; align-items: baseline; gap: 9px; }
.event-community__count strong { color: var(--orange); font-family: var(--display); font-size: 2.5rem; line-height: .7; letter-spacing: -.04em; }
.event-community__count span { color: rgba(255,255,255,.42); font-size: .64rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.event-attendance-form { margin: 0; }
.event-attendance-button,
.event-login-link {
	display: inline-flex;
	min-height: 40px;
	align-items: center;
	justify-content: center;
	padding: 9px 13px;
	border: 1px solid var(--orange);
	background: transparent;
	color: var(--orange);
	font-size: .65rem;
	font-weight: 950;
	letter-spacing: .06em;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
}
.event-attendance-button:hover,
.event-attendance-button.is-attending { background: var(--orange); color: var(--black); }
.event-login-link:hover { background: var(--orange); color: var(--black); }
.event-attendee-list { display: flex; align-items: center; gap: 15px; margin-top: 15px; }
.event-attendee-list > span { color: rgba(255,255,255,.34); font-size: .57rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.event-attendee-list > div { display: flex; flex-wrap: wrap; gap: 6px; }
.event-attendee-list b { padding: 5px 8px; border: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.72); font-size: .58rem; font-weight: 800; }
.event-card__footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 22px; color: rgba(255,255,255,.29); font-size: .59rem; }
.event-card__footer a { color: rgba(255,255,255,.6); font-weight: 850; text-decoration: none; }
.event-card__footer a:hover { color: var(--orange); }
.events-empty { margin-top: 25px; padding: clamp(35px,6vw,70px); border: 1px solid rgba(255,255,255,.13); text-align: center; }
.events-empty h3 { margin: 6px 0 10px; color: var(--white); font-family: var(--display); font-size: clamp(2.2rem,4vw,4.4rem); letter-spacing: -.05em; text-transform: uppercase; }
.events-empty p:last-child { color: rgba(255,255,255,.48); }
.events-community-cta__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(320px,.75fr); gap: clamp(50px,8vw,120px); align-items: end; }
.events-community-cta h2 span { color: var(--orange); }
.events-community-cta__grid > div:last-child > p { margin: 0 0 25px; color: rgba(5,5,5,.63); font-size: 1rem; line-height: 1.75; }

.trip-booking .form-row select[name="package"] { font-weight: 800; }
.trip-booking-minimum,
.trip-minimum-note { font-size: .76rem; font-weight: 800; }

@media (max-width: 1050px) {
	.events-intro__grid,
	.events-browser__head,
	.events-community-cta__grid { grid-template-columns: 1fr; }
	.events-filter-layout { grid-template-columns: minmax(300px,.8fr) minmax(0,1.2fr); }
	.events-stat-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
	.member-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 820px) {
	.member-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.events-filter-layout { grid-template-columns: 1fr; }
	.events-map-panel { min-height: 0; }
	.nl-event-map { max-width: 330px; }
	.events-filter-summary { margin-top: 38px; }
	.event-card { grid-template-columns: 96px minmax(0,1fr); }
	.event-card__date { min-height: 280px; }
}
@media (max-width: 680px) {
	.events-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.events-stat { min-height: 115px; }
	.events-filter-panel { padding: 22px 18px 28px; }
	.events-filter-fields { grid-template-columns: 1fr; }
	.events-filter-search { grid-column: auto; }
	.events-filter-summary { grid-template-columns: auto 1fr; }
	.events-filter-summary button { grid-column: 1 / -1; justify-self: start; }
	.event-card { grid-template-columns: 1fr; }
	.event-card__date { min-height: 0; flex-direction: row; gap: 8px; justify-content: flex-start; padding: 15px 20px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
	.event-card__date strong { margin: 0; font-size: 2.3rem; }
	.event-card__date span { order: 2; }
	.event-card__date small { order: 3; }
	.event-card__meta { grid-template-columns: 1fr; }
	.event-community { align-items: flex-start; flex-direction: column; }
	.event-attendance-button,
	.event-login-link { width: 100%; }
	.event-attendee-list { align-items: flex-start; flex-direction: column; }
	.event-card__footer { align-items: flex-start; flex-direction: column; }
	.events-community-cta .button { width: 100%; }
	.member-stats { grid-template-columns: 1fr; }
}


/* GTGF 13.8: robust sport pictograms and fully responsive primary navigation */
.discipline-card .discipline-icon {
	width: 58px;
	height: 48px;
	margin-bottom: 10px;
	color: var(--orange);
	fill: currentColor;
	stroke: none;
	transition: transform .2s ease;
}
.discipline-card .discipline-icon .icon-fill { fill: currentColor; stroke: none; }
.discipline-card .discipline-icon .icon-stroke {
	fill: none;
	stroke: currentColor;
	stroke-width: 4;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.discipline-card .discipline-icon .icon-cut { fill: var(--white); stroke: none; }
.discipline-card:hover .discipline-icon { transform: translateY(-4px); }

/* Desktop navigation: keep spacing proportional instead of stretching across the header. */
.header-inner {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	justify-content: initial;
	column-gap: clamp(14px, 1.7vw, 28px);
}
.site-nav {
	min-width: 0;
	margin-left: 0;
	justify-self: stretch;
}
.site-nav > ul {
	justify-content: flex-end;
	gap: clamp(9px, 1.15vw, 20px);
	white-space: nowrap;
}
.site-nav > ul > li { min-width: 0; }
.site-nav > ul > li > a {
	font-size: clamp(.58rem, .62vw, .68rem);
	letter-spacing: clamp(.075em, .11vw, .13em);
}
body.home .site-nav > ul { gap: clamp(9px, 1.15vw, 20px); }
body.home .site-nav > ul > li:last-child { margin-left: clamp(2px, .5vw, 8px); }
.site-nav .sub-menu {
	grid-auto-rows: min-content;
	align-content: start;
	align-items: stretch;
	min-width: 215px;
	padding: 6px 0;
}
.site-nav .sub-menu a {
	padding: 8px 14px;
	line-height: 1.25;
}

/* Switch to the compact menu before the desktop labels become cramped. */
@media (max-width: 1180px) {
	.header-inner { display: flex; gap: 14px; }
	.site-nav { margin-left: 0; }
	.header-actions { margin-left: auto; }
	.nav-toggle { display: block; }

	/* The menu is anchored below the fixed header rather than fixed inside it.
	   This avoids viewport bugs caused by backdrop-filter creating a containing block. */
	.site-nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 2;
		display: block;
		height: calc(100dvh - 86px);
		padding: 18px 28px 38px;
		overflow-y: auto;
		overscroll-behavior: contain;
		background: #050505;
		opacity: 0;
		visibility: hidden;
		transform: translateY(-8px);
		transition: opacity .2s ease, visibility .2s ease, transform .2s ease;
	}
	body.home .site-nav { height: calc(100dvh - 90px); }
	.site-nav.is-open { opacity: 1; visibility: visible; transform: none; }
	body.menu-open .site-header {
		background: #050505;
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}
	.site-nav > ul {
		display: block;
		width: min(720px, 100%);
		margin: 0 auto;
		white-space: normal;
	}
	.site-nav > ul > li {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 52px;
		align-items: center;
		border-top: 1px solid var(--line);
	}
	.site-nav > ul > li:last-child { border-bottom: 1px solid var(--line); }
	.site-nav > ul > li > a {
		grid-column: 1;
		padding: 16px 0;
		font-family: var(--display);
		font-size: clamp(1.35rem, 3.2vw, 2rem);
		letter-spacing: -.025em;
		line-height: 1.05;
		white-space: normal;
	}
	.site-nav > ul > li > .submenu-toggle {
		grid-column: 2;
		grid-row: 1;
		width: 52px;
		height: 54px;
		margin: 0;
		justify-self: end;
		border-left: 1px solid var(--line);
	}
	.site-nav .submenu-toggle svg { width: 13px; height: 9px; }
	.site-nav .sub-menu {
		position: static;
		grid-column: 1 / -1;
		display: none;
		min-width: 0;
		padding: 2px 0 13px 18px;
		border: 0;
		border-top: 1px solid rgba(255,255,255,.08);
		background: transparent;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}
	.site-nav li:hover > .sub-menu,
	.site-nav li:focus-within > .sub-menu { display: none; }
	.site-nav li.is-submenu-open > .sub-menu { display: grid; }
	.site-nav .sub-menu li,
	.site-nav .sub-menu li:last-child { border: 0; }
	.site-nav .sub-menu a {
		padding: 9px 0;
		font-family: var(--body);
		font-size: .82rem;
		letter-spacing: .03em;
		line-height: 1.35;
		white-space: normal;
	}
	body.home .site-nav > ul { gap: 0; }
	body.home .site-nav > ul > li:last-child { margin-left: 0; }
	body.home .site-nav > ul > li:last-child > a {
		min-width: 0;
		margin-top: 0;
		padding: 16px 0;
		background: transparent;
		color: rgba(255,255,255,.82);
		text-align: left;
	}
	body.home .site-nav > ul > li:last-child > a::after { display: block; }
}

@media (max-width: 680px) {
	.header-inner,
	body.home .header-inner { min-height: 74px; }
	.site-nav,
	body.home .site-nav {
		height: calc(100dvh - 74px);
		padding: 12px 20px 28px;
	}
	.site-nav > ul > li { grid-template-columns: minmax(0, 1fr) 48px; }
	.site-nav > ul > li > a {
		padding: 15px 0;
		font-size: clamp(1.22rem, 6vw, 1.6rem);
	}
	.site-nav > ul > li > .submenu-toggle { width: 48px; height: 50px; }
	.header-account-link { min-height: 42px; padding: 8px 10px; }
	.header-account-link span { font-size: .58rem; letter-spacing: .075em; }
}

@media (max-width: 430px) {
	body.home .brand-fallback,
	.brand-fallback { width: 145px; height: 52px; }
	.header-inner { gap: 8px; }
	.header-actions { gap: 6px; }
	.header-account-link { gap: 6px; padding-inline: 9px; }
	.header-account-link svg { width: 15px; height: 15px; }
}

/* v13.8 navigation containment fixes */
@media (max-width: 1180px) {
	.site-nav {
		inset: auto 0 auto 0;
		bottom: auto;
		align-items: initial;
	}
	.site-nav > ul > li > a { display: block; }
	body.home .site-nav > ul > li:last-child > a { display: block; }
}

/* GTGF v13.9: compact planner + controlled desktop typography
   Desktop type no longer grows continuously with viewport width. */
html { font-size: 15px; }
body { font-size: 14.5px; }

/* Make the weekly planner denser and every day visually distinct. */
.planner-section { padding: 72px 0 92px; }
.planner-layout {
	grid-template-columns: minmax(230px, 290px) minmax(0, 1fr);
	gap: 42px;
}
.planner-sidebar { top: 108px; }
.planner-sidebar h2 { font-size: 3.25rem; line-height: .88; }
.planner-sidebar > p:not(.eyebrow) { margin: 18px 0 25px; font-size: .9rem; line-height: 1.55; }
.planner-legend { gap: 9px; padding-top: 18px; font-size: .64rem; }
.planner-results { padding-top: 50px; }
.planner-summary { gap: 24px; margin-bottom: 22px; }
.planner-summary h2 { font-size: 3.55rem; }
.planner-summary__stats { gap: 14px; }
.planner-summary__stats span { min-width: 92px; padding-left: 12px; }
.planner-week-navigation {
	grid-template-columns: 38px minmax(0,1fr) 38px;
	gap: 8px;
	margin-bottom: 10px;
}
.planner-week-navigation > button { width: 38px; height: 38px; }
.planner-week-tabs { gap: 5px; padding-bottom: 6px; }
.planner-week-tabs button { flex-basis: 40px; min-height: 36px; font-size: .61rem; }
.planner-week-heading {
	gap: 12px;
	padding: 12px 16px;
	border: 1px solid rgba(5,5,5,.28);
	border-bottom: 0;
}
.planner-week-heading span { font-size: .61rem; }
.planner-week-heading strong { font-size: 1.45rem; }
.planner-week-heading small { font-size: .62rem; }
.planner-week {
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 8px;
	padding: 8px;
	border: 1px solid rgba(5,5,5,.22);
	background: #dedbd4;
}
.planner-day {
	min-height: 205px;
	padding: 18px 18px 16px;
	border: 1px solid rgba(5,5,5,.18);
	background: #fff;
	box-shadow: 0 1px 0 rgba(5,5,5,.03);
}
.planner-day::before { width: 4px; }
.planner-day__top {
	margin: -18px -18px 16px;
	padding: 11px 14px 10px 18px;
	border-bottom: 1px solid rgba(5,5,5,.14);
	background: #f2f0eb;
	font-size: .6rem;
}
.planner-day--quality .planner-day__top { background: #fff4ed; }
.planner-day--long .planner-day__top { background: #ecebe7; }
.planner-day--strength .planner-day__top { background: #efeeea; }
.planner-day__date { font-size: .53rem; }
.planner-day h3 {
	margin: 22px 0 5px;
	font-size: 1.78rem;
	line-height: .94;
}
.planner-day__meta { margin-bottom: 10px !important; font-size: .6rem !important; }
.planner-day > p:last-child,
.planner-session > p:last-child { font-size: .77rem; line-height: 1.5; }
.planner-day__open { margin-top: 16px; padding-top: 10px; font-size: .58rem; }
.planner-session + .planner-session { margin-top: 20px; padding-top: 18px; }
.planner-session h3 { margin-top: 23px; }
.planner-session + .planner-session h3 { margin-top: 8px; }
.planner-day.has-double { min-height: 330px; }
.planner-day.has-triple { min-height: 455px; }
.planner-day.is-rest { min-height: 130px; background: #e6e3dd; }
.planner-day.is-rest h3 { margin-top: 10px; }
.planner-day.has-double::after { top: 67px; font-size: .48rem; }

/* On desktop, layout can breathe but type stays deliberately capped. */
@media (min-width: 981px) {
	.section { padding: 86px 0; }
	.section--angled { padding-top: 112px; }
	.section-head { margin-bottom: 48px; }
	.section-head h2 { font-size: 4.25rem; }
	.section-intro { font-size: 1rem; }
	.manifesto-grid { gap: 70px; }
	.manifesto-lead { font-size: 2.25rem; }
	.principles strong { font-size: 1.45rem; }
	.performance-card h3 { font-size: 2.05rem; }
	.feature-story h3 { font-size: 4rem; }
	.week-band__grid { gap: 48px; }
	.week-band h2 { font-size: 5.9rem; }
	.page-hero { min-height: 525px; padding: 155px 0 72px; }
	.page-hero h1 { font-size: 6.1rem; }
	.page-hero__intro { font-size: 1.05rem; }
	.split { gap: 72px; }
	.split h2, .content-block h2 { font-size: 3.55rem; }
	.metric strong { font-size: 3.15rem; }
	.article-sidebar__number { font-size: 5.4rem; }
	.article-content h2 { font-size: 2.75rem; }
	.story-cover h1 { font-size: 6.1rem; }
	.footer-statement { font-size: 4rem; }

	.home-hero h1 { font-size: 5.9rem; }
	.home-hero__tagline { font-size: .92rem; }
	.mindset-band__copy, .performance-week-band__copy { padding-top: 64px; padding-bottom: 64px; }
	.mindset-band h2 { font-size: 3.15rem; }
	.project-band { padding: 82px 0; }
	.project-band__grid { gap: 72px; }
	.project-band h2 { font-size: 5.25rem; }
	.performance-week-band h2 { font-size: 3.1rem; }
	.home-briefs, .home-join { padding: 84px 0; }
	.home-section-title h2 { font-size: 3.9rem; }
	.stories-strip h2 { font-size: 2.55rem; }
	.home-join h2 { font-size: 4.85rem; }

	.training-planner-cta { padding: 72px 0; }
	.training-planner-cta h2 { font-size: 4.15rem; }
	.planner-advice h3 { font-size: 2.75rem; }
	.planner-export h3 { font-size: 3.3rem; }
	.planner-account__intro h2,
	.planner-account__head h2 { font-size: 4.15rem; }
	.planner-auth-card h3 { font-size: 3.35rem; }
	.planner-dialog__head h2 { font-size: 5rem; }
	.planner-guide-session__head h3 { font-size: 3.1rem; }
}

/* Tablet: keep planner compact without forcing desktop columns too long. */
@media (max-width: 900px) {
	.planner-layout { grid-template-columns: 1fr; gap: 32px; }
	.planner-sidebar h2 { font-size: 3rem; }
}

@media (max-width: 680px) {
	html { font-size: 15px; }
	body { font-size: 14.5px; }
	.planner-section { padding: 54px 0 70px; }
	.planner-results { padding-top: 42px; }
	.planner-summary h2 { font-size: 2.65rem; }
	.planner-week { gap: 7px; padding: 7px; }
	.planner-day { min-height: 0; padding: 17px 16px 15px; }
	.planner-day__top { margin: -17px -16px 14px; padding: 10px 12px 9px 16px; }
	.planner-day h3 { margin-top: 18px; font-size: 1.65rem; }
	.planner-day.has-double, .planner-day.has-triple, .planner-day.is-rest { min-height: 0; }
}


/* GTGF v13.11: stable header across desktop, compact desktop and mobile. */
.site-header .header-inner {
	width: min(1360px, calc(100vw - 32px));
	min-height: 84px;
	column-gap: 18px;
}
.site-branding .brand-fallback { width: 182px; height: 65px; }
.site-branding .custom-logo { max-height: 58px; max-width: 190px; }
.site-nav > ul { gap: 16px; }
.site-nav > ul > li > a {
	font-size: .62rem;
	letter-spacing: .105em;
}
body.home .site-nav > ul { gap: 16px; }
body.home .site-nav > ul > li:last-child { margin-left: 4px; }
body.home .site-nav > ul > li:last-child > a {
	min-width: 106px;
	padding: 12px 16px;
}
.header-account-link {
	min-height: 40px;
	padding-inline: 11px;
	white-space: nowrap;
}

/* Compact desktop: keep the full navigation visible while it genuinely fits. */
@media (min-width: 1161px) and (max-width: 1320px) {
	.site-header .header-inner {
		width: calc(100vw - 24px);
		column-gap: 12px;
	}
	.site-branding .brand-fallback { width: 154px; height: 55px; }
	.site-branding .custom-logo { max-height: 50px; max-width: 160px; }
	.site-nav > ul,
	body.home .site-nav > ul { gap: 9px; }
	.site-nav > ul > li > a {
		font-size: .56rem;
		letter-spacing: .075em;
	}
	.site-nav .submenu-toggle {
		width: 18px;
		margin-left: 0;
	}
	body.home .site-nav > ul > li:last-child { margin-left: 1px; }
	body.home .site-nav > ul > li:last-child > a {
		min-width: 88px;
		padding-inline: 11px;
	}
	.header-account-link {
		gap: 6px;
		padding-inline: 9px;
		font-size: .56rem;
		letter-spacing: .075em;
	}
}

/* Compact menu: a contained two-column panel instead of an oversized mobile sheet. */
@media (max-width: 1160px) {
	.site-header .header-inner,
	body.home .header-inner {
		display: flex;
		width: min(100% - 28px, 1120px);
		min-height: 78px;
		gap: 12px;
	}
	.site-branding .brand-fallback,
	body.home .brand-fallback { width: 166px; height: 59px; }
	.site-branding .custom-logo { max-height: 52px; max-width: 172px; }
	.header-actions { margin-left: auto; gap: 8px; }
	.nav-toggle { display: block; flex: 0 0 46px; width: 46px; height: 46px; }

	.site-nav,
	body.home .site-nav {
		position: absolute;
		top: 100%;
		right: 14px;
		left: auto;
		bottom: auto;
		z-index: 20;
		display: block;
		width: min(760px, calc(100vw - 28px));
		height: auto;
		max-height: calc(100dvh - 92px);
		padding: 0;
		overflow-y: auto;
		overscroll-behavior: contain;
		border: 1px solid rgba(255,255,255,.16);
		border-top: 2px solid var(--orange);
		background: #050505;
		box-shadow: 0 28px 70px rgba(0,0,0,.58);
		opacity: 0;
		visibility: hidden;
		transform: translateY(-8px);
		transition: opacity .18s ease, visibility .18s ease, transform .18s ease;
	}
	.site-nav.is-open { opacity: 1; visibility: visible; transform: none; }
	body.menu-open .site-header {
		background: rgba(5,5,5,.98);
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}
	.site-nav > ul,
	body.home .site-nav > ul {
		display: grid;
		grid-template-columns: repeat(2, minmax(0,1fr));
		align-content: start;
		width: 100%;
		margin: 0;
		gap: 0;
		white-space: normal;
	}
	.site-nav > ul > li,
	body.home .site-nav > ul > li {
		display: grid;
		grid-template-columns: minmax(0,1fr) 44px;
		align-content: start;
		align-items: center;
		min-height: 58px;
		margin: 0;
		border: 0;
		border-bottom: 1px solid var(--line);
		border-right: 1px solid var(--line);
	}
	.site-nav > ul > li:nth-child(even) { border-right: 0; }
	.site-nav > ul > li > a,
	body.home .site-nav > ul > li:last-child > a {
		grid-column: 1;
		display: block;
		min-width: 0;
		margin: 0;
		padding: 19px 18px;
		background: transparent;
		color: rgba(255,255,255,.84);
		font-family: var(--display);
		font-size: 1rem;
		font-weight: 950;
		letter-spacing: -.015em;
		line-height: 1.05;
		text-align: left;
		white-space: normal;
	}
	.site-nav > ul > li > a::after,
	body.home .site-nav > ul > li:last-child > a::after { bottom: 10px; }
	.site-nav > ul > li > .submenu-toggle {
		grid-column: 2;
		grid-row: 1;
		width: 44px;
		height: 58px;
		margin: 0;
		justify-self: end;
		border: 0;
		border-left: 1px solid var(--line);
	}
	.site-nav .submenu-toggle svg { width: 12px; height: 8px; }
	.site-nav .sub-menu {
		position: static;
		grid-column: 1 / -1;
		display: none;
		min-width: 0;
		padding: 5px 18px 14px;
		border: 0;
		border-top: 1px solid rgba(255,255,255,.08);
		background: #0a0a0a;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}
	.site-nav li:hover > .sub-menu,
	.site-nav li:focus-within > .sub-menu { display: none; }
	.site-nav li.is-submenu-open > .sub-menu { display: grid; }
	.site-nav .sub-menu li,
	.site-nav .sub-menu li:last-child { min-height: 0; border: 0; }
	.site-nav .sub-menu a {
		padding: 9px 0;
		font-family: var(--body);
		font-size: .76rem;
		font-weight: 800;
		letter-spacing: .025em;
		line-height: 1.3;
		white-space: normal;
	}
}

/* True mobile: one calm column, fully contained below the header. */
@media (max-width: 720px) {
	.site-header .header-inner,
	body.home .header-inner {
		width: calc(100vw - 24px);
		min-height: 72px;
		gap: 8px;
	}
	.site-branding .brand-fallback,
	body.home .brand-fallback { width: 142px; height: 51px; }
	.site-branding .custom-logo { max-height: 46px; max-width: 148px; }
	.site-nav,
	body.home .site-nav {
		right: 0;
		left: 0;
		width: 100%;
		max-height: calc(100dvh - 72px);
		border-right: 0;
		border-left: 0;
	}
	.site-nav > ul,
	body.home .site-nav > ul { grid-template-columns: 1fr; }
	.site-nav > ul > li,
	body.home .site-nav > ul > li,
	.site-nav > ul > li:nth-child(even) { border-right: 0; }
	.site-nav > ul > li > a,
	body.home .site-nav > ul > li:last-child > a {
		padding: 16px 18px;
		font-size: 1.08rem;
	}
	.site-nav > ul > li > .submenu-toggle { height: 52px; }
	.header-account-link { min-height: 40px; padding: 7px 9px; }
}

@media (max-width: 440px) {
	.site-branding .brand-fallback,
	body.home .brand-fallback { width: 130px; height: 47px; }
	.site-branding .custom-logo { max-height: 43px; max-width: 136px; }
	.header-account-link { gap: 5px; padding-inline: 8px; }
	.header-account-link span { font-size: .54rem; letter-spacing: .06em; }
	.header-account-link svg { width: 14px; height: 14px; }
	.nav-toggle { width: 43px; height: 43px; flex-basis: 43px; }
}

/* GTGF v13.12: desktop navigation stays inline; only true mobile uses the menu panel. */
@media (min-width: 821px) {
	.site-header .header-inner,
	body.home .header-inner {
		display: flex;
		width: min(1440px, calc(100vw - 24px));
		min-height: 82px;
		gap: 12px;
	}
	.site-branding { flex: 0 0 auto; }
	.site-branding .brand-fallback,
	body.home .brand-fallback { width: 154px; height: 55px; }
	.site-branding .custom-logo { max-height: 50px; max-width: 160px; }
	.site-nav,
	body.home .site-nav {
		position: static;
		inset: auto;
		display: block;
		flex: 1 1 auto;
		width: auto;
		height: auto;
		max-height: none;
		margin: 0 0 0 auto;
		padding: 0;
		overflow: visible;
		border: 0;
		background: transparent;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}
	.site-nav > ul,
	body.home .site-nav > ul {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		grid-template-columns: none;
		width: auto;
		gap: clamp(7px, .85vw, 15px);
		margin: 0;
		white-space: nowrap;
	}
	.site-nav > ul > li,
	body.home .site-nav > ul > li,
	.site-nav > ul > li:nth-child(even) {
		display: flex;
		min-height: 0;
		margin: 0;
		border: 0;
	}
	.site-nav > ul > li > a,
	body.home .site-nav > ul > li > a,
	body.home .site-nav > ul > li:last-child > a {
		display: block;
		margin: 0;
		padding: 11px 3px;
		background: transparent;
		color: rgba(255,255,255,.78);
		font-family: var(--body);
		font-size: .56rem;
		font-weight: 900;
		letter-spacing: .085em;
		line-height: 1;
		text-align: center;
		text-transform: uppercase;
		white-space: nowrap;
	}
	body.home .site-nav > ul > li:last-child { margin-left: 4px; }
	body.home .site-nav > ul > li:last-child > a {
		min-width: 82px;
		padding: 12px 12px;
		background: var(--orange);
		color: var(--white);
	}
	.site-nav .submenu-toggle,
	.site-nav .sub-menu { display: none !important; }
	.nav-toggle { display: none !important; }
	.header-actions { margin-left: 8px; gap: 6px; }
	.header-account-link {
		min-height: 38px;
		padding: 8px 10px;
		font-size: .55rem;
		letter-spacing: .075em;
	}
}

/* Narrow desktop: keep every heading on one line rather than switching to a side panel. */
@media (min-width: 821px) and (max-width: 1080px) {
	.site-header .header-inner,
	body.home .header-inner { width: calc(100vw - 16px); gap: 7px; }
	.site-branding .brand-fallback,
	body.home .brand-fallback { width: 118px; height: 43px; }
	.site-branding .custom-logo { max-height: 42px; max-width: 124px; }
	.site-nav > ul,
	body.home .site-nav > ul { gap: 5px; }
	.site-nav > ul > li > a,
	body.home .site-nav > ul > li > a,
	body.home .site-nav > ul > li:last-child > a {
		padding-inline: 2px;
		font-size: .48rem;
		letter-spacing: .055em;
	}
	body.home .site-nav > ul > li:last-child > a {
		min-width: 62px;
		padding-inline: 7px;
	}
	.header-actions { margin-left: 4px; gap: 4px; }
	.header-account-link {
		gap: 4px;
		min-height: 36px;
		padding-inline: 7px;
		font-size: .48rem;
		letter-spacing: .05em;
	}
	.header-account-link svg { width: 13px; height: 13px; }
}


/* GTGF v13.13: one authoritative mobile menu below 821px.
   This intentionally overrides every older compact/mobile navigation rule. */
@media (max-width: 820px) {
	.site-header,
	.site-header.is-scrolled,
	body.menu-open .site-header {
		overflow: visible !important;
		background: #050505 !important;
		-webkit-backdrop-filter: none !important;
		backdrop-filter: none !important;
	}
	.site-header .header-inner,
	body.home .header-inner {
		position: relative;
		display: flex !important;
		width: calc(100vw - 24px) !important;
		min-height: 72px !important;
		gap: 8px !important;
	}
	.site-branding { flex: 0 1 auto; min-width: 0; }
	.site-branding .brand-fallback,
	body.home .brand-fallback { width: 140px !important; height: 50px !important; }
	.site-branding .custom-logo { max-width: 146px !important; max-height: 46px !important; }
	.header-actions { margin-left: auto !important; gap: 7px !important; }
	.nav-toggle {
		display: block !important;
		flex: 0 0 44px !important;
		width: 44px !important;
		height: 44px !important;
		z-index: 1002 !important;
	}
	.site-nav,
	body.home .site-nav {
		position: absolute !important;
		top: 100% !important;
		left: -12px !important;
		right: -12px !important;
		bottom: auto !important;
		inset: auto -12px auto -12px !important;
		z-index: 1001 !important;
		display: block !important;
		width: auto !important;
		height: calc(100dvh - 72px) !important;
		max-height: none !important;
		margin: 0 !important;
		padding: 12px 20px 32px !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		overscroll-behavior: contain;
		border: 0 !important;
		border-top: 1px solid rgba(255,255,255,.13) !important;
		background: #050505 !important;
		box-shadow: 0 26px 60px rgba(0,0,0,.5) !important;
		opacity: 0 !important;
		visibility: hidden !important;
		pointer-events: none !important;
		transform: none !important;
		transition: opacity .18s ease, visibility .18s ease !important;
	}
	.site-nav.is-open,
	body.home .site-nav.is-open {
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
	}
	.site-nav > ul,
	body.home .site-nav > ul {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		gap: 0 !important;
		white-space: normal !important;
	}
	.site-nav > ul > li,
	body.home .site-nav > ul > li,
	.site-nav > ul > li:nth-child(even) {
		display: grid !important;
		grid-template-columns: minmax(0,1fr) 48px !important;
		align-items: center !important;
		min-height: 54px !important;
		margin: 0 !important;
		border: 0 !important;
		border-bottom: 1px solid rgba(255,255,255,.13) !important;
	}
	.site-nav > ul > li > a,
	body.home .site-nav > ul > li > a,
	body.home .site-nav > ul > li:last-child > a {
		grid-column: 1 !important;
		display: block !important;
		min-width: 0 !important;
		margin: 0 !important;
		padding: 17px 4px !important;
		background: transparent !important;
		color: rgba(255,255,255,.9) !important;
		font-family: var(--display) !important;
		font-size: 1.22rem !important;
		font-weight: 950 !important;
		letter-spacing: -.015em !important;
		line-height: 1 !important;
		text-align: left !important;
		white-space: normal !important;
	}
	body.home .site-nav > ul > li:last-child { margin-left: 0 !important; }
	.site-nav > ul > li > .submenu-toggle {
		grid-column: 2 !important;
		grid-row: 1 !important;
		display: inline-flex !important;
		width: 48px !important;
		height: 54px !important;
		margin: 0 !important;
		align-items: center !important;
		justify-content: center !important;
		border: 0 !important;
		border-left: 1px solid rgba(255,255,255,.13) !important;
		background: transparent !important;
		color: var(--white) !important;
	}
	.site-nav .sub-menu {
		position: static !important;
		grid-column: 1 / -1 !important;
		display: none !important;
		min-width: 0 !important;
		margin: 0 !important;
		padding: 5px 4px 13px 16px !important;
		border: 0 !important;
		border-top: 1px solid rgba(255,255,255,.08) !important;
		background: #0a0a0a !important;
		box-shadow: none !important;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
	}
	.site-nav li:hover > .sub-menu,
	.site-nav li:focus-within > .sub-menu { display: none !important; }
	.site-nav li.is-submenu-open > .sub-menu { display: grid !important; }
	.site-nav .sub-menu li { border: 0 !important; }
	.site-nav .sub-menu a {
		padding: 10px 0 !important;
		font-family: var(--body) !important;
		font-size: .82rem !important;
		font-weight: 800 !important;
		letter-spacing: .03em !important;
		line-height: 1.35 !important;
	}
	body.menu-open { overflow: hidden !important; }
}

@media (max-width: 390px) {
	.site-branding .brand-fallback,
	body.home .brand-fallback { width: 122px !important; height: 44px !important; }
	.site-branding .custom-logo { max-width: 128px !important; max-height: 42px !important; }
	.header-account-link { padding-inline: 7px !important; }
	.header-account-link span { font-size: .51rem !important; letter-spacing: .045em !important; }
}

/* GTGF v13.14: definitive responsive header/navigation. */
@media (min-width: 901px) {
  .site-header .header-inner,
  body.home .header-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: min(1480px, calc(100vw - 28px)) !important;
    min-height: 82px !important;
    gap: 0 !important;
  }
  .site-branding {
    flex: 0 0 auto !important;
    margin-right: clamp(22px, 2.2vw, 38px) !important;
  }
  .site-branding .brand-fallback,
  body.home .brand-fallback { width: 150px !important; height: 54px !important; }
  .site-branding .custom-logo { max-width: 156px !important; max-height: 50px !important; }

  .site-nav,
  body.home .site-nav {
    position: static !important;
    display: block !important;
    flex: 0 1 auto !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
  }
  .site-nav > ul,
  body.home .site-nav > ul {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: auto !important;
    gap: clamp(10px, .9vw, 18px) !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
  }
  .site-nav > ul > li,
  body.home .site-nav > ul > li,
  .site-nav > ul > li:nth-child(even) {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    min-height: 0 !important;
    margin: 0 !important;
    border: 0 !important;
  }
  .site-nav > ul > li > a,
  body.home .site-nav > ul > li > a,
  body.home .site-nav > ul > li:last-child > a {
    display: block !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 11px 1px !important;
    background: transparent !important;
    color: rgba(255,255,255,.78) !important;
    font-family: var(--body) !important;
    font-size: .56rem !important;
    font-weight: 900 !important;
    letter-spacing: .08em !important;
    line-height: 1 !important;
    text-align: left !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
  }
  body.home .site-nav > ul > li:last-child { margin-left: 2px !important; }
  body.home .site-nav > ul > li:last-child > a {
    min-width: 76px !important;
    padding: 12px 12px !important;
    background: var(--orange) !important;
    color: var(--white) !important;
    text-align: center !important;
  }
  .site-nav .submenu-toggle {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    width: 19px !important;
    height: 30px !important;
    margin-left: 1px !important;
    align-items: center !important;
    justify-content: center !important;
    border: 0 !important;
    background: transparent !important;
    color: rgba(255,255,255,.62) !important;
  }
  .site-nav .submenu-toggle svg { width: 9px !important; height: 6px !important; }
  .site-nav .sub-menu {
    position: absolute !important;
    top: calc(100% + 8px) !important;
    left: -16px !important;
    z-index: 50 !important;
    display: grid !important;
    min-width: 220px !important;
    width: max-content !important;
    max-width: 300px !important;
    margin: 0 !important;
    padding: 9px 0 !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    background: rgba(8,8,8,.985) !important;
    box-shadow: 0 20px 45px rgba(0,0,0,.42) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(7px) !important;
  }
  .site-nav li:hover > .sub-menu,
  .site-nav li:focus-within > .sub-menu,
  .site-nav li.is-submenu-open > .sub-menu {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
  }
  .site-nav .sub-menu li { display: block !important; width: 100% !important; border: 0 !important; }
  .site-nav .sub-menu a {
    display: block !important;
    width: 100% !important;
    padding: 10px 17px !important;
    font-family: var(--body) !important;
    font-size: .65rem !important;
    font-weight: 800 !important;
    letter-spacing: .05em !important;
    line-height: 1.35 !important;
    text-transform: none !important;
    white-space: nowrap !important;
  }
  .nav-toggle { display: none !important; }
  .header-actions {
    flex: 0 0 auto !important;
    margin-left: auto !important;
    padding-left: 14px !important;
    gap: 6px !important;
  }
  .header-account-link {
    min-height: 38px !important;
    padding: 8px 10px !important;
    font-size: .53rem !important;
    letter-spacing: .065em !important;
  }
}

@media (min-width: 901px) and (max-width: 1120px) {
  .site-branding { margin-right: 15px !important; }
  .site-branding .brand-fallback,
  body.home .brand-fallback { width: 118px !important; height: 43px !important; }
  .site-branding .custom-logo { max-width: 124px !important; max-height: 42px !important; }
  .site-nav > ul,
  body.home .site-nav > ul { gap: 6px !important; }
  .site-nav > ul > li > a,
  body.home .site-nav > ul > li > a,
  body.home .site-nav > ul > li:last-child > a {
    font-size: .47rem !important;
    letter-spacing: .045em !important;
    padding-inline: 0 !important;
  }
  .site-nav .submenu-toggle { width: 15px !important; }
  body.home .site-nav > ul > li:last-child > a { min-width: 58px !important; padding-inline: 7px !important; }
  .header-actions { padding-left: 7px !important; }
  .header-account-link { padding-inline: 7px !important; font-size: .47rem !important; }
}

@media (max-width: 900px) {
  .site-header,
  .site-header.is-scrolled,
  body.menu-open .site-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 2000 !important;
    overflow: visible !important;
    background: #050505 !important;
    border-bottom: 1px solid rgba(255,255,255,.13) !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  .site-header .header-inner,
  body.home .header-inner {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    width: calc(100vw - 24px) !important;
    min-height: 72px !important;
    gap: 8px !important;
  }
  .site-branding { flex: 0 1 auto !important; min-width: 0 !important; }
  .site-branding .brand-fallback,
  body.home .brand-fallback { width: 140px !important; height: 50px !important; }
  .site-branding .custom-logo { max-width: 146px !important; max-height: 46px !important; }
  .header-actions { margin-left: auto !important; gap: 7px !important; }
  .nav-toggle {
    display: block !important;
    flex: 0 0 44px !important;
    width: 44px !important;
    height: 44px !important;
    z-index: 2101 !important;
  }
  .site-nav,
  body.home .site-nav {
    position: fixed !important;
    top: 72px !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    inset: 72px 0 0 0 !important;
    z-index: 2050 !important;
    display: block !important;
    width: 100vw !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 20px 34px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    scroll-behavior: auto !important;
    overscroll-behavior: contain !important;
    border: 0 !important;
    background: #050505 !important;
    box-shadow: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: none !important;
  }
  .site-nav.is-open,
  body.home .site-nav.is-open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
  .site-nav > ul,
  body.home .site-nav > ul {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
    white-space: normal !important;
  }
  .site-nav > ul > li,
  body.home .site-nav > ul > li,
  .site-nav > ul > li:nth-child(even) {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) 50px !important;
    align-items: center !important;
    min-height: 58px !important;
    margin: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.14) !important;
  }
  .site-nav > ul > li > a,
  body.home .site-nav > ul > li > a,
  body.home .site-nav > ul > li:last-child > a {
    grid-column: 1 !important;
    display: block !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 18px 4px !important;
    background: transparent !important;
    color: rgba(255,255,255,.94) !important;
    font-family: var(--display) !important;
    font-size: 1.25rem !important;
    font-weight: 950 !important;
    letter-spacing: -.015em !important;
    line-height: 1 !important;
    text-align: left !important;
    white-space: normal !important;
  }
  body.home .site-nav > ul > li:last-child { margin-left: 0 !important; }
  .site-nav > ul > li > .submenu-toggle {
    grid-column: 2 !important;
    grid-row: 1 !important;
    display: inline-flex !important;
    width: 50px !important;
    height: 58px !important;
    margin: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    border: 0 !important;
    border-left: 1px solid rgba(255,255,255,.14) !important;
    background: transparent !important;
    color: var(--white) !important;
  }
  .site-nav .sub-menu {
    position: static !important;
    grid-column: 1 / -1 !important;
    display: none !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 5px 4px 14px 16px !important;
    border: 0 !important;
    border-top: 1px solid rgba(255,255,255,.08) !important;
    background: #0a0a0a !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
  }
  .site-nav li:hover > .sub-menu,
  .site-nav li:focus-within > .sub-menu { display: none !important; }
  .site-nav li.is-submenu-open > .sub-menu { display: grid !important; }
  .site-nav .sub-menu li { border: 0 !important; }
  .site-nav .sub-menu a {
    padding: 10px 0 !important;
    font-family: var(--body) !important;
    font-size: .84rem !important;
    font-weight: 800 !important;
    letter-spacing: .03em !important;
    line-height: 1.35 !important;
    white-space: normal !important;
  }
  body.menu-open { overflow: hidden !important; }
}


/* GTGF v13.17: the desktop menu is the only header element that scales with viewport width. */
@media (min-width: 901px) {
  .site-header .header-inner,
  body.home .header-inner {
    display: grid !important;
    grid-template-columns: 150px minmax(0, 1fr) auto !important;
    align-items: center !important;
    width: min(1480px, calc(100vw - 32px)) !important;
    min-height: 82px !important;
    column-gap: 22px !important;
  }

  .site-branding {
    grid-column: 1 !important;
    flex: none !important;
    width: 150px !important;
    min-width: 150px !important;
    margin: 0 !important;
  }
  .site-branding .brand-fallback,
  body.home .brand-fallback {
    width: 150px !important;
    height: 54px !important;
  }
  .site-branding .custom-logo {
    width: auto !important;
    max-width: 156px !important;
    max-height: 50px !important;
  }

  .site-nav,
  body.home .site-nav {
    grid-column: 2 !important;
    min-width: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    overflow: visible !important;
  }
  .site-nav > ul,
  body.home .site-nav > ul {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    min-width: 0 !important;
    gap: clamp(3px, .55vw, 11px) !important;
    white-space: nowrap !important;
  }
  .site-nav > ul > li,
  body.home .site-nav > ul > li,
  .site-nav > ul > li:nth-child(even) {
    flex: 0 1 auto !important;
    min-width: 0 !important;
  }
  .site-nav > ul > li > a,
  body.home .site-nav > ul > li > a,
  body.home .site-nav > ul > li:last-child > a {
    padding: 11px clamp(0px, .16vw, 3px) !important;
    font-size: clamp(.50rem, calc(.30rem + .23vw), .61rem) !important;
    letter-spacing: clamp(.035em, .055vw, .08em) !important;
    white-space: nowrap !important;
  }
  .site-nav .submenu-toggle {
    width: clamp(13px, 1.25vw, 19px) !important;
    min-width: 13px !important;
    margin-left: 0 !important;
  }
  .site-nav .submenu-toggle svg {
    width: 8px !important;
    height: 6px !important;
  }
  body.home .site-nav > ul > li:last-child {
    margin-left: clamp(1px, .25vw, 4px) !important;
  }
  body.home .site-nav > ul > li:last-child > a {
    min-width: clamp(64px, 5.4vw, 82px) !important;
    padding-inline: clamp(7px, .7vw, 12px) !important;
  }

  .header-actions {
    grid-column: 3 !important;
    flex: none !important;
    margin: 0 !important;
    padding-left: 0 !important;
    gap: 6px !important;
  }
  .header-account-link {
    min-height: 38px !important;
    padding: 8px 10px !important;
    font-size: .53rem !important;
    letter-spacing: .065em !important;
    white-space: nowrap !important;
  }
}

@media (min-width: 1101px) {
  .site-nav > ul > li {
    position: relative !important;
  }
  .site-nav > ul > li > .sub-menu {
    top: calc(100% + 2px) !important;
  }
  .site-nav > ul > li > .sub-menu::before {
    content: '' !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: -14px !important;
    height: 14px !important;
  }
}

/* GTGF v13.18: tighter dropdown hover zone, refined events layout and richer recipe filters. */
.events-filter-layout {
  grid-template-columns: minmax(320px, 430px) minmax(0, 1fr);
  align-items: stretch;
}
.events-map-panel {
  min-height: 690px;
  padding: clamp(28px,3.2vw,40px) clamp(26px,2.8vw,38px) 28px;
}
.events-map-panel__head {
  align-items: flex-start;
}
.events-map-panel__head > span,
.events-filter-fields label > span {
  letter-spacing: .16em;
}
.nl-event-map {
  width: min(100%, 308px);
  margin: 32px auto 16px;
}
.nl-event-map__outline {
  fill: rgba(255,255,255,.015);
  stroke: rgba(255,255,255,.18);
  stroke-width: 1.65;
}
.nl-event-map__islands path {
  fill: rgba(255,255,255,.03);
  stroke: rgba(255,255,255,.20);
  stroke-width: 1.3;
}
.province-shape polygon, .province-shape path {
  fill: #171717;
  stroke: rgba(255,255,255,.28);
  stroke-width: 1.55;
}
.province-shape text {
  font-size: 13px;
  letter-spacing: .04em;
}
.events-map-caption {
  margin-top: 30px;
  color: rgba(255,255,255,.34);
}
.events-filter-panel {
  padding: clamp(28px,4vw,48px) clamp(28px,4vw,52px) 30px;
}
.events-sport-filter {
  gap: 10px;
  margin-bottom: 52px;
}
.events-sport-filter button {
  min-width: 126px;
  min-height: 54px;
  padding: 14px 16px;
  font-size: .72rem;
  letter-spacing: .08em;
}
.events-filter-fields {
  gap: 34px 26px;
}
.events-filter-fields select,
.events-filter-fields input {
  min-height: 56px;
  padding-bottom: 11px;
  font-size: clamp(1.02rem,1.65vw,1.22rem);
}
.events-filter-summary {
  padding-top: 66px;
}
.events-filter-summary strong {
  font-size: clamp(4.4rem,7vw,7.2rem);
}
.recipe-library-tools__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}
.recipe-preference-filter {
  display: grid;
  gap: 8px;
}
.recipe-preference-filter span {
  color: #5d5d5d;
  font-size: .6rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.recipe-preference-filter select {
  min-height: 42px;
  padding: 10px 14px;
  border: 1px solid var(--line-dark);
  border-radius: 0;
  background: transparent;
  color: var(--black);
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.recipe-preference-filter select:focus {
  border-color: var(--black);
  outline: 0;
}
@media (max-width: 980px) {
  .events-filter-layout {
    grid-template-columns: 1fr;
  }
  .events-map-panel {
    min-height: 0;
  }
  .events-filter-panel {
    padding-top: 26px;
  }
}
@media (max-width: 720px) {
  .recipe-library-tools__row {
    flex-direction: column;
    align-items: stretch;
  }
  .recipe-library-tools__actions {
    width: 100%;
    justify-content: space-between;
  }
}

/* Compact desktop: logo and account stay fixed; only navigation headings compress. */
@media (min-width: 901px) and (max-width: 1120px) {
  .site-header .header-inner,
  body.home .header-inner {
    grid-template-columns: 150px minmax(0, 1fr) auto !important;
    width: calc(100vw - 20px) !important;
    column-gap: 14px !important;
  }
  .site-nav > ul,
  body.home .site-nav > ul {
    gap: clamp(2px, .28vw, 5px) !important;
  }
  .site-nav > ul > li > a,
  body.home .site-nav > ul > li > a,
  body.home .site-nav > ul > li:last-child > a {
    font-size: clamp(.46rem, calc(.25rem + .24vw), .52rem) !important;
    letter-spacing: clamp(.025em, .04vw, .05em) !important;
  }
  .site-nav .submenu-toggle {
    width: 13px !important;
  }
}


/* GTGF v13.19: match events browser more closely to approved reference. */
@media (min-width: 1101px) {
  .site-header .header-inner {
    align-items: center !important;
  }
  .site-nav > ul > li {
    position: relative !important;
    padding-bottom: 10px !important;
    margin-bottom: -10px !important;
  }
  .site-nav > ul > li::after {
    content: '' !important;
    position: absolute !important;
    left: -8px !important;
    right: -8px !important;
    top: calc(100% - 2px) !important;
    height: 18px !important;
  }
  .site-nav .sub-menu {
    top: calc(100% + 1px) !important;
  }
}

.events-filter-layout {
  grid-template-columns: 440px minmax(0, 1fr) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  background: #050505 !important;
}
.events-map-panel,
.events-filter-panel {
  min-height: 675px !important;
}
.events-map-panel {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  padding: 38px 38px 28px !important;
  border-right: 1px solid rgba(255,255,255,.12) !important;
  background: linear-gradient(180deg, rgba(255,255,255,.015), rgba(255,255,255,.005)) !important;
}
.events-map-panel__head {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 18px !important;
}
.events-map-panel__head > span,
.events-filter-fields label > span {
  color: rgba(255,255,255,.58) !important;
  font-size: .72rem !important;
  font-weight: 800 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
}
.events-map-reset {
  padding: 0 0 8px !important;
  border-bottom: 1px solid rgba(255,255,255,.32) !important;
  color: rgba(255,255,255,.7) !important;
  font-size: .88rem !important;
  letter-spacing: .01em !important;
}
.nl-event-map {
  width: 292px !important;
  max-width: 100% !important;
  margin: 34px 0 0 8px !important;
}
.nl-event-map__outline {
  fill: transparent !important;
  stroke: rgba(255,255,255,.16) !important;
  stroke-width: 1.5 !important;
}
.nl-event-map__islands path {
  fill: rgba(255,255,255,.03) !important;
  stroke: rgba(255,255,255,.18) !important;
  stroke-width: 1.15 !important;
}
.province-shape path,
.province-shape polygon {
  fill: rgba(255,255,255,.05) !important;
  stroke: rgba(255,255,255,.28) !important;
  stroke-width: 1.45 !important;
  transition: fill .2s ease, stroke .2s ease, transform .2s ease !important;
}
.province-shape text {
  fill: rgba(255,255,255,.82) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: .04em !important;
}
.province-shape:hover path,
.province-shape:focus path,
.province-shape.is-active path,
.province-shape:hover polygon,
.province-shape:focus polygon,
.province-shape.is-active polygon {
  fill: rgba(255,90,0,.22) !important;
  stroke: rgba(255,122,44,.78) !important;
}
.events-map-caption {
  margin-top: auto !important;
  padding-left: 10px !important;
  color: rgba(255,255,255,.34) !important;
  font-size: .92rem !important;
}
.events-filter-panel {
  display: flex !important;
  flex-direction: column !important;
  padding: 40px 44px 28px !important;
}
.events-sport-filter {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 10px !important;
  margin-bottom: 70px !important;
}
.events-sport-filter button {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 54px !important;
  padding: 14px 10px !important;
  font-size: .76rem !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}
.events-filter-fields {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 50px 38px !important;
}
.events-filter-fields label {
  position: relative !important;
}
.events-filter-fields label select,
.events-filter-fields label input {
  min-height: 58px !important;
  padding: 10px 30px 10px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.2) !important;
  background: transparent !important;
  color: rgba(255,255,255,.96) !important;
  font-size: 1.14rem !important;
  font-weight: 500 !important;
}
.events-filter-fields label select {
  -webkit-appearance: none !important;
  appearance: none !important;
  background-image: linear-gradient(45deg, transparent 50%, rgba(255,255,255,.82) 50%), linear-gradient(135deg, rgba(255,255,255,.82) 50%, transparent 50%) !important;
  background-position: calc(100% - 12px) calc(50% - 2px), calc(100% - 6px) calc(50% - 2px) !important;
  background-size: 6px 6px, 6px 6px !important;
  background-repeat: no-repeat !important;
}
.events-filter-search {
  grid-column: 1 / -1 !important;
}
.events-filter-search::after {
  content: '⌕' !important;
  position: absolute !important;
  right: 0 !important;
  bottom: 8px !important;
  color: rgba(255,255,255,.34) !important;
  font-size: 2.25rem !important;
  line-height: 1 !important;
}
.events-filter-fields label input::placeholder {
  color: rgba(255,255,255,.38) !important;
}
.events-filter-summary {
  display: grid !important;
  grid-template-columns: auto 1fr auto !important;
  align-items: end !important;
  gap: 18px !important;
  margin-top: auto !important;
  padding-top: 88px !important;
}
.events-filter-summary strong {
  font-size: 6.65rem !important;
  line-height: .9 !important;
  letter-spacing: -.05em !important;
  color: var(--orange) !important;
}
.events-filter-summary span {
  align-self: end !important;
  padding-bottom: 11px !important;
  color: rgba(255,255,255,.58) !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}
.events-filter-summary button {
  align-self: end !important;
  margin-bottom: 12px !important;
  padding: 0 0 8px !important;
  border-bottom: 1px solid rgba(255,255,255,.34) !important;
  color: rgba(255,255,255,.72) !important;
  font-size: .9rem !important;
  font-weight: 700 !important;
}
@media (max-width: 1200px) {
  .events-filter-layout {
    grid-template-columns: 390px minmax(0,1fr) !important;
  }
  .events-sport-filter {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 980px) {
  .events-filter-layout {
    grid-template-columns: 1fr !important;
  }
  .events-map-panel,
  .events-filter-panel {
    min-height: 0 !important;
  }
  .events-map-panel {
    border-right: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.12) !important;
  }
  .nl-event-map {
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .events-sport-filter {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    margin-bottom: 36px !important;
  }
  .events-filter-fields {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
  .events-filter-search {
    grid-column: auto !important;
  }
  .events-filter-summary {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    align-items: start !important;
    padding-top: 42px !important;
  }
  .events-filter-summary span,
  .events-filter-summary button {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }
}
@media (max-width: 640px) {
  .events-map-panel,
  .events-filter-panel {
    padding: 26px 20px 22px !important;
  }
  .events-sport-filter {
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }
  .events-sport-filter button {
    min-height: 48px !important;
    font-size: .7rem !important;
  }
  .events-filter-summary strong {
    font-size: 4.8rem !important;
  }
}


/* GTGF v13.20: fixed desktop nav type size + gapless dropdown hover path. */
@media (min-width: 901px) {
  .site-header .header-inner,
  body.home .header-inner {
    grid-template-columns: 150px minmax(0,1fr) auto !important;
    column-gap: clamp(12px,1.35vw,22px) !important;
  }

  .site-nav,
  body.home .site-nav {
    min-width: 0 !important;
    overflow: visible !important;
  }

  .site-nav > ul,
  body.home .site-nav > ul {
    justify-content: flex-start !important;
    gap: clamp(5px,.72vw,13px) !important;
  }

  .site-nav > ul > li,
  body.home .site-nav > ul > li,
  .site-nav > ul > li:nth-child(even) {
    position: relative !important;
    flex: 0 0 auto !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .site-nav > ul > li > a,
  body.home .site-nav > ul > li > a,
  body.home .site-nav > ul > li:last-child > a {
    padding: 12px 2px !important;
    font-size: .64rem !important;
    line-height: 1 !important;
    letter-spacing: .055em !important;
    white-space: nowrap !important;
  }

  /* Only spacing compresses at smaller desktop widths; the text stays the same size. */
  .site-nav .submenu-toggle {
    width: 15px !important;
    min-width: 15px !important;
    height: 30px !important;
    margin-left: 0 !important;
  }
  .site-nav .submenu-toggle svg {
    width: 8px !important;
    height: 6px !important;
  }

  /* Remove every hover gap between the heading and dropdown. */
  .site-nav > ul > li > .sub-menu {
    top: 100% !important;
    left: -14px !important;
    margin-top: -1px !important;
    padding: 8px 0 10px !important;
    min-width: 220px !important;
    transform: none !important;
    transition: opacity .12s ease, visibility .12s ease !important;
    pointer-events: none !important;
  }

  .site-nav > ul > li > .sub-menu::before {
    content: '' !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: -10px !important;
    height: 10px !important;
    background: transparent !important;
  }

  .site-nav > ul > li:hover > .sub-menu,
  .site-nav > ul > li:focus-within > .sub-menu,
  .site-nav > ul > li.is-submenu-open > .sub-menu {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
  }

  .site-nav .sub-menu a {
    padding: 11px 16px !important;
    font-size: .68rem !important;
    line-height: 1.3 !important;
  }

  /* Do not style JOIN as a wide CTA in the desktop nav; keep it aligned with the headings. */
  body.home .site-nav > ul > li:last-child {
    margin-left: 0 !important;
  }
  body.home .site-nav > ul > li:last-child > a {
    min-width: 0 !important;
    padding-inline: 2px !important;
    background: transparent !important;
    color: rgba(255,255,255,.82) !important;
    text-align: left !important;
  }
  body.home .site-nav > ul > li:last-child > a::after {
    display: block !important;
  }
}

@media (min-width: 901px) and (max-width: 1120px) {
  .site-header .header-inner,
  body.home .header-inner {
    width: calc(100vw - 18px) !important;
    grid-template-columns: 145px minmax(0,1fr) auto !important;
    column-gap: 10px !important;
  }
  .site-branding {
    width: 145px !important;
    min-width: 145px !important;
  }
  .site-nav > ul,
  body.home .site-nav > ul {
    gap: 4px !important;
  }
  .site-nav > ul > li > a,
  body.home .site-nav > ul > li > a,
  body.home .site-nav > ul > li:last-child > a {
    font-size: .64rem !important;
    letter-spacing: .045em !important;
    padding-inline: 1px !important;
  }
  .site-nav .submenu-toggle {
    width: 13px !important;
    min-width: 13px !important;
  }
}


/* GTGF v13.22 — expanded Earn the Start Line project storytelling. */
.story-project-intro .split { align-items: start; }
.story-project-intro .split__copy > p { max-width: 760px; }
.story-project-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 1px;
  margin-top: clamp(50px,6vw,82px);
  border: 1px solid var(--line-dark);
  background: var(--line-dark);
}
.story-project-grid article {
  min-height: 300px;
  padding: clamp(26px,3vw,40px);
  background: var(--white);
}
.story-project-grid article > span,
.story-evidence-grid small,
.story-chapter-insights article > span {
  display: block;
  color: var(--orange);
  font-size: .62rem;
  font-weight: 950;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.story-project-grid h3,
.story-evidence-grid h3,
.story-chapter-insights h3 {
  margin: 72px 0 14px;
  font-family: var(--display);
  font-size: clamp(1.65rem,2.7vw,2.7rem);
  letter-spacing: -.045em;
  line-height: .92;
  text-transform: uppercase;
}
.story-project-grid p,
.story-evidence-grid p,
.story-chapter-insights p {
  margin: 0;
  color: #666;
  font-size: .84rem;
  line-height: 1.65;
}
.story-evidence-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 1px;
  margin-top: 38px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.12);
}
.story-evidence-grid article {
  min-height: 255px;
  padding: 30px;
  background: #0b0b0b;
}
.story-evidence-grid h3 { margin-top: 55px; color: var(--white); }
.story-evidence-grid p { color: rgba(255,255,255,.56); }
.split--story-chapter {
  grid-template-columns: minmax(0,.92fr) minmax(360px,1.08fr);
  align-items: start;
  gap: clamp(55px,7vw,95px);
}
.story-chapter-copy {
  display: grid;
  gap: 18px;
  padding-top: 4px;
}
.story-chapter-copy p { margin: 0; color: #565656; line-height: 1.68; }
.story-chapter-copy .manifesto-lead { margin-bottom: 6px; color: var(--black); }
.story-chapter-copy strong { color: var(--black); }
.story-week-data {
  display: grid;
  gap: 5px;
  margin: 20px 0 0;
  padding: 17px 0 0;
  border-top: 1px solid var(--line-dark);
  list-style: none;
}
.story-week-data li {
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #707070;
  font-size: .67rem;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.story-week-data li::before { display: none !important; }
.timeline.timeline--scroll li > div { padding-top: 54px; }
.timeline.timeline--scroll li { min-height: 405px; }
.timeline.timeline--scroll h3 { margin-bottom: 12px; }
.timeline.timeline--scroll p { line-height: 1.55; }
.story-chapter-insights {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 1px;
  margin-top: clamp(45px,5vw,70px);
  border: 1px solid var(--line-dark);
  background: var(--line-dark);
}
.story-chapter-insights article {
  min-height: 240px;
  padding: clamp(24px,2.7vw,34px);
  background: #f8f6f1;
}
.story-chapter-insights h3 { margin-top: 52px; }
@media (max-width: 1050px) {
  .story-project-grid,
  .story-chapter-insights { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .story-evidence-grid { grid-template-columns: 1fr; }
  .story-evidence-grid article { min-height: 210px; }
  .split--story-chapter { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .story-project-grid,
  .story-chapter-insights { grid-template-columns: 1fr; }
  .story-project-grid article,
  .story-chapter-insights article { min-height: 0; }
  .story-project-grid h3,
  .story-chapter-insights h3 { margin-top: 42px; }
  .timeline.timeline--scroll li { min-height: 390px; }
}

/* v13.23 exact Netherlands events map */
.events-map-figure {
  position: relative;
  width: min(100%, 520px);
  aspect-ratio: 515 / 830;
  margin: 22px auto 10px;
}
.events-map-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.map-hotspot {
  position: absolute;
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(255,106,0,0);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: background .18s ease, box-shadow .18s ease, transform .18s ease;
  z-index: 2;
}
.map-hotspot:hover,
.map-hotspot:focus-visible {
  background: rgba(255,106,0,.16);
  box-shadow: inset 0 0 0 2px rgba(255,106,0,.88);
}
.map-hotspot.is-active {
  background: rgba(255,106,0,.28);
  box-shadow: inset 0 0 0 2px var(--orange), 0 0 22px rgba(255,106,0,.2);
}
.map-hotspot:focus-visible { outline: 2px solid rgba(255,255,255,.82); outline-offset: 2px; }

.province-fr { left: 42.7%; top: 8.7%; width: 27.2%; height: 21.2%; clip-path: polygon(16% 20%, 35% 6%, 74% 7%, 99% 25%, 92% 58%, 74% 83%, 48% 98%, 20% 88%, 8% 61%, 8% 35%); }
.province-gr { left: 67.8%; top: 7.1%; width: 25.0%; height: 20.6%; clip-path: polygon(7% 26%, 40% 8%, 86% 14%, 98% 33%, 96% 72%, 70% 84%, 36% 80%, 18% 58%, 7% 42%); }
.province-dr { left: 68.0%; top: 23.2%; width: 24.0%; height: 19.4%; clip-path: polygon(8% 5%, 35% 2%, 73% 16%, 93% 33%, 96% 79%, 62% 95%, 28% 88%, 7% 62%, 0 34%); }
.province-nh { left: 20.6%; top: 21.1%; width: 23.8%; height: 31.6%; clip-path: polygon(44% 4%, 62% 17%, 73% 31%, 66% 50%, 75% 74%, 74% 97%, 47% 93%, 39% 72%, 33% 51%, 19% 28%, 22% 11%); }
.province-fl { left: 37.9%; top: 30.0%; width: 22.2%; height: 18.0%; clip-path: polygon(18% 20%, 54% 8%, 74% 17%, 95% 39%, 81% 71%, 49% 95%, 16% 79%, 4% 45%); }
.province-ut { left: 40.0%; top: 46.4%; width: 18.6%; height: 14.0%; clip-path: polygon(28% 18%, 59% 3%, 88% 28%, 78% 77%, 45% 95%, 12% 72%, 10% 40%); }
.province-ov { left: 66.4%; top: 36.4%; width: 27.8%; height: 21.7%; clip-path: polygon(16% 8%, 46% 10%, 82% 28%, 98% 50%, 94% 81%, 63% 98%, 26% 91%, 7% 64%, 6% 34%); }
.province-ge { left: 51.8%; top: 48.7%; width: 34.6%; height: 25.8%; clip-path: polygon(17% 14%, 43% 2%, 79% 16%, 94% 44%, 93% 73%, 70% 92%, 35% 89%, 10% 69%, 3% 37%); }
.province-zh { left: 11.5%; top: 48.4%; width: 32.8%; height: 24.8%; clip-path: polygon(28% 7%, 52% 3%, 80% 17%, 96% 37%, 95% 66%, 74% 90%, 36% 99%, 12% 85%, 1% 51%, 8% 23%); }
.province-nb { left: 30.6%; top: 66.2%; width: 44.6%; height: 19.8%; clip-path: polygon(15% 18%, 50% 4%, 79% 13%, 97% 30%, 93% 72%, 71% 92%, 35% 98%, 9% 84%, 0 49%, 5% 30%); }
.province-ze { left: 0.2%; top: 68.6%; width: 29.6%; height: 16.0%; clip-path: polygon(2% 43%, 24% 28%, 55% 31%, 80% 48%, 96% 65%, 80% 88%, 42% 90%, 16% 80%, 0 60%); }
.province-li { left: 63.2%; top: 70.7%; width: 23.4%; height: 28.2%; clip-path: polygon(35% 1%, 62% 10%, 72% 27%, 70% 50%, 84% 73%, 62% 98%, 32% 95%, 21% 76%, 22% 53%, 13% 34%, 16% 14%); }

@media (max-width: 700px) {
  .events-map-figure { width: min(100%, 430px); }
}

/* GTGF v13.24 — SEO content and indexable event landing pages */
.home-seo-band {
  padding: clamp(54px,7vw,96px) 0;
}
.home-seo-band__grid {
  display: grid;
  grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr);
  gap: clamp(32px,7vw,96px);
  align-items: start;
}
.home-seo-band h2,
.seo-content-band h2 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(2.4rem,4.5vw,4.8rem);
  line-height: .93;
  letter-spacing: -.045em;
  text-transform: uppercase;
}
.home-seo-band__copy,
.seo-content-band .split__copy {
  max-width: 760px;
}
.home-seo-band__copy > p,
.seo-content-band .split__copy > p {
  font-size: clamp(.98rem,1.15vw,1.08rem);
  line-height: 1.72;
}
.home-seo-band__links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 28px;
  margin-top: 28px;
}
.home-seo-band__links a,
.seo-content-band .split__copy a {
  color: var(--black);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 5px;
}
.seo-content-band {
  padding-top: clamp(60px,8vw,110px);
  padding-bottom: clamp(60px,8vw,110px);
}
.seo-event-directory,
.seo-event-links {
  padding-top: clamp(60px,7vw,96px);
  padding-bottom: clamp(60px,7vw,96px);
}
.seo-link-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  border-top: 1px solid rgba(0,0,0,.18);
  border-left: 1px solid rgba(0,0,0,.18);
  margin-top: 36px;
}
.seo-link-grid a {
  min-height: 112px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 20px;
  border-right: 1px solid rgba(0,0,0,.18);
  border-bottom: 1px solid rgba(0,0,0,.18);
  color: var(--black);
  text-decoration: none;
  transition: background .18s ease, color .18s ease;
}
.seo-link-grid a:hover,
.seo-link-grid a:focus-visible {
  background: var(--orange);
  color: var(--black);
}
.seo-link-grid strong {
  font-family: var(--display);
  font-size: 1.25rem;
  line-height: 1.05;
  text-transform: uppercase;
}
.seo-link-grid span {
  font-size: .66rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.seo-event-intro .split__copy p { max-width: 720px; }

@media (max-width: 980px) {
  .home-seo-band__grid { grid-template-columns: 1fr; gap: 28px; }
  .seo-link-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .seo-link-grid { grid-template-columns: 1fr; }
  .seo-link-grid a { min-height: 96px; }
  .home-seo-band__links { flex-direction: column; align-items: flex-start; }
}

/* GTGF v13.25 — simplified primary navigation and separate JOIN CTA. */
.header-join-link {
  display: inline-flex;
  min-width: 92px;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  padding: 9px 18px;
  background: var(--orange);
  border: 1px solid var(--orange);
  color: var(--white);
  font-size: .62rem;
  font-weight: 950;
  letter-spacing: .12em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
.header-join-link:hover,
.header-join-link:focus-visible {
  background: var(--white);
  border-color: var(--white);
  color: var(--black);
  transform: translateY(-1px);
}

@media (min-width: 901px) {
  .site-nav .gtgf-primary-join-item { display: none !important; }
  .site-header .header-inner,
  body.home .header-inner {
    grid-template-columns: 150px minmax(0,1fr) auto !important;
  }
  .header-actions { gap: 9px !important; }
}

@media (max-width: 900px) {
  .header-join-link { display: none !important; }
  .site-nav .gtgf-primary-join-item { display: grid !important; }
}


/* GTGF v13.26 — one JOIN only: dedicated desktop CTA, dedicated mobile menu link. */
.mobile-menu-join { display: none !important; }
@media (min-width: 901px) {
  .site-nav .gtgf-primary-join-item,
  .site-nav a[href*="/join-gtgf/"] { display: none !important; }
  .header-join-link { display: inline-flex !important; }
}
@media (max-width: 900px) {
  .header-join-link { display: none !important; }
  .site-nav .gtgf-primary-join-item,
  .site-nav > ul a[href*="/join-gtgf/"] { display: none !important; }
  .mobile-menu-join {
    display: flex !important;
    align-items: center;
    justify-content: flex-start;
    min-height: 54px;
    padding: 14px 20px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    color: var(--orange) !important;
    font-family: var(--display);
    font-size: 1rem;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
    text-decoration: none;
  }
}

/* GTGF v13.27 — sitewide typography audit and overflow-safe display scale. */
/* Grid/flex copy must always be allowed to shrink inside its own column. */
.section-head > *,
.split > *,
.manifesto-grid > *,
.week-band__grid > *,
.project-band__grid > *,
.home-section-title > *,
.home-seo-band__grid > *,
.events-intro__grid > *,
.events-browser__head > *,
.events-community-cta__grid > *,
.member-section__head > *,
.nutrition-save-form > *,
.nutrition-save-login > *,
.training-planner-cta__inner > * {
  min-width: 0;
}

/* Keep the editorial look, but stop headings from spilling across columns. */
h1, h2, h3, h4 {
  max-width: 100%;
  text-wrap: balance;
}
p, li, dd, figcaption {
  overflow-wrap: break-word;
}

/* The events introduction from the supplied screenshot. */
.events-intro {
  overflow: hidden;
}
.events-intro__grid {
  grid-template-columns: minmax(0,1.28fr) minmax(300px,.72fr);
  gap: clamp(46px,6vw,82px);
  align-items: center;
}
.events-intro h2 {
  max-width: 720px;
  font-size: clamp(3rem,3.6vw,3.55rem);
  line-height: .87;
  letter-spacing: -.055em;
}
.events-intro__longword {
  display: block;
  font-size: .82em;
  letter-spacing: -.07em;
  white-space: nowrap;
}
.events-intro__copy {
  max-width: 535px;
}
.events-intro__copy p {
  font-size: 1rem;
  line-height: 1.72;
}

/* Consistent sitewide desktop scale: bold, but container-led instead of viewport-led. */
@media (min-width: 981px) {
  .page-hero h1 {
    max-width: 980px;
    font-size: clamp(4.15rem,5.7vw,6rem);
    line-height: .86;
  }
  .story-cover h1 {
    font-size: clamp(4rem,5.6vw,5.95rem);
    line-height: .87;
  }
  .section-head h2 {
    font-size: clamp(3rem,4vw,4.15rem);
    line-height: .92;
  }
  .split h2,
  .content-block h2 {
    font-size: clamp(2.65rem,3.45vw,3.5rem);
    line-height: .94;
  }
  .week-band h2 {
    font-size: clamp(4rem,5.15vw,5.65rem);
    line-height: .85;
  }
  .project-band h2 {
    font-size: clamp(3.8rem,4.9vw,5.05rem);
    line-height: .85;
  }
  .home-section-title h2 {
    font-size: clamp(3rem,3.75vw,3.85rem);
  }
  .home-join h2 {
    font-size: clamp(3.65rem,4.65vw,4.75rem);
    line-height: .88;
  }
  .training-planner-cta h2,
  .planner-account__intro h2,
  .planner-account__head h2 {
    font-size: clamp(3rem,4vw,4.05rem);
  }
  .member-section__head h2,
  .nutrition-planner__intro h2,
  .nutrition-evidence h2,
  .trip-booking__intro h2,
  .casa-reviews__heading h2 {
    font-size: clamp(3rem,4.5vw,4.9rem);
    line-height: .87;
  }
  .trip-opening__content h2,
  .trip-casa-band__copy h2,
  .casa-sleeping__intro h2,
  .casa-location__copy h2,
  .casa-cta h2,
  .sponsor-story h2,
  .athlete-week__intro h2,
  .recipe-mail h2 {
    font-size: clamp(3.35rem,4.8vw,5.25rem);
    line-height: .86;
  }
  .events-browser__head h2,
  .events-community-cta h2 {
    font-size: clamp(3.3rem,4.55vw,4.95rem);
    line-height: .87;
  }
  .event-card h3 {
    font-size: clamp(2.15rem,3.2vw,3.7rem);
  }
}

/* Medium widths: two-column editorial sections stack before copy becomes cramped. */
@media (max-width: 1050px) {
  .events-intro__grid {
    grid-template-columns: 1fr;
    gap: 34px;
    align-items: start;
  }
  .events-intro h2 {
    max-width: 760px;
    font-size: clamp(3rem,7vw,4.35rem);
  }
  .events-intro__longword {
    font-size: .86em;
  }
  .events-intro__copy {
    max-width: 720px;
  }
}

/* Mobile typography: large enough to feel GTGF, small enough to stay readable. */
@media (max-width: 680px) {
  .section-head h2,
  .split h2,
  .content-block h2,
  .home-seo-band h2,
  .seo-content-band h2 {
    font-size: clamp(2.25rem,10vw,3.2rem);
    line-height: .94;
  }
  .page-hero h1,
  .story-cover h1 {
    font-size: clamp(2.8rem,12vw,4.15rem);
    line-height: .88;
    overflow-wrap: break-word;
  }
  .events-intro h2 {
    font-size: clamp(2.45rem,11vw,3.15rem);
    line-height: .9;
  }
  .events-intro__longword {
    font-size: .72em;
    letter-spacing: -.075em;
  }
  .events-browser__head h2,
  .events-community-cta h2,
  .member-section__head h2,
  .nutrition-planner__intro h2,
  .nutrition-evidence h2,
  .trip-booking__intro h2,
  .casa-reviews__heading h2 {
    font-size: clamp(2.45rem,11vw,3.35rem);
    line-height: .9;
  }
  .events-intro__copy p,
  .home-seo-band__copy > p,
  .seo-content-band .split__copy > p {
    font-size: .96rem;
    line-height: 1.66;
  }
}

/* Card and tool headings: prevent isolated long words from becoming wider than their card. */
@media (min-width: 981px) {
  .performance-card h3,
  .brief-card h3,
  .nutrition-principles h3,
  .supplement-card h3,
  .exercise-card h4,
  .member-plan-card h3,
  .trip-package h3,
  .saved-plan-card h3 {
    font-size: clamp(1.8rem,2.55vw,2.85rem);
    line-height: .94;
  }
  .nutrition-save-form h3,
  .nutrition-save-login h3 {
    font-size: clamp(2rem,2.45vw,2.75rem);
    line-height: .94;
  }
  .nutrition-results__head h2,
  .planner-summary h2,
  .planner-dialog__head h2 {
    font-size: clamp(2.8rem,4vw,4.45rem);
    line-height: .9;
  }
}

/* GTGF v13.28 — expandable nutrition meals */
.nutrition-day__meals {
  display: grid;
  gap: 0;
}
.nutrition-meal {
  display: block;
  padding: 0;
  border-bottom: 1px solid var(--line);
  transition: background .2s ease, border-color .2s ease;
}
.nutrition-meal.is-open {
  background: rgba(255,90,0,.055);
  border-bottom-color: rgba(255,90,0,.4);
}
.nutrition-meal__toggle {
  width: 100%;
  display: grid;
  grid-template-columns: 90px minmax(0,1fr) auto;
  gap: 14px 20px;
  align-items: start;
  padding: 23px 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.nutrition-meal__toggle:hover .nutrition-meal__summary strong,
.nutrition-meal__toggle:focus-visible .nutrition-meal__summary strong {
  color: var(--orange);
}
.nutrition-meal__toggle:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 4px;
}
.nutrition-meal__slot {
  color: var(--orange);
  font-size: .58rem;
  font-weight: 950;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.nutrition-meal__summary {
  min-width: 0;
  display: grid;
  gap: 6px;
}
.nutrition-meal__summary strong {
  color: var(--white);
  font-family: var(--display);
  font-size: 1.2rem;
  line-height: 1;
  letter-spacing: -.025em;
  text-transform: uppercase;
  transition: color .18s ease;
}
.nutrition-meal__summary small {
  max-width: 620px;
  color: rgba(255,255,255,.52);
  font-size: .69rem;
  font-weight: 450;
  line-height: 1.55;
}
.nutrition-meal__open {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding-top: 1px;
  color: rgba(255,255,255,.5);
  font-size: .56rem;
  font-weight: 900;
  letter-spacing: .075em;
  text-transform: uppercase;
  white-space: nowrap;
}
.nutrition-meal__open i {
  width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.25);
  color: var(--orange);
  font-size: 1rem;
  font-style: normal;
  line-height: 1;
}
.nutrition-meal.is-open .nutrition-meal__open {
  color: var(--orange);
}
.nutrition-meal.is-open .nutrition-meal__open i {
  border-color: var(--orange);
}
.nutrition-meal__details {
  padding: 0 0 30px 110px;
  animation: gtgfNutritionReveal .2s ease-out both;
}
.nutrition-meal__details[hidden] { display: none !important; }
@keyframes gtgfNutritionReveal {
  from { opacity: 0; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}
.nutrition-meal__portion {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 15px 0;
  border-top: 1px solid rgba(255,255,255,.1);
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.nutrition-meal__portion span {
  color: rgba(255,255,255,.4);
  font-size: .56rem;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.nutrition-meal__portion strong {
  color: var(--white);
  font-size: .74rem;
}
.nutrition-meal__macros {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 1px;
  margin-top: 16px;
  background: rgba(255,255,255,.09);
}
.nutrition-meal__macros span {
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 13px 12px;
  background: #111;
}
.nutrition-meal__macros strong {
  color: var(--white);
  font-family: var(--display);
  font-size: 1.08rem;
  line-height: 1;
}
.nutrition-meal__macros em {
  color: rgba(255,255,255,.38);
  font-size: .5rem;
  font-style: normal;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.nutrition-meal__detail-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  margin-top: 26px;
}
.nutrition-meal__detail-grid section { min-width: 0; }
.nutrition-meal__detail-grid h5 {
  margin: 0 0 12px;
  color: var(--orange);
  font-size: .58rem;
  font-weight: 950;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.nutrition-meal__detail-grid ul,
.nutrition-meal__detail-grid ol {
  margin: 0;
  padding-left: 18px;
  color: rgba(255,255,255,.68);
  font-size: .69rem;
  line-height: 1.65;
}
.nutrition-meal__detail-grid li + li { margin-top: 5px; }
.nutrition-meal__notes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  margin-top: 26px;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.1);
}
.nutrition-meal__notes p {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 15px;
  background: #0c0c0c;
  color: rgba(255,255,255,.57);
  font-size: .66rem;
  line-height: 1.55;
}
.nutrition-meal__notes strong {
  color: var(--white);
  font-size: .54rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.nutrition-meal__macro-note {
  margin: 12px 0 0 !important;
  color: rgba(255,255,255,.3) !important;
  font-size: .54rem !important;
  line-height: 1.5;
}

@media (max-width: 900px) {
  .nutrition-meal__toggle { grid-template-columns: 72px minmax(0,1fr) auto; }
  .nutrition-meal__details { padding-left: 92px; }
  .nutrition-meal__detail-grid { gap: 22px; }
}
@media (max-width: 640px) {
  .nutrition-meal__toggle {
    grid-template-columns: 1fr auto;
    gap: 9px 14px;
    padding: 19px 0;
  }
  .nutrition-meal__slot { grid-column: 1 / -1; }
  .nutrition-meal__summary strong { font-size: 1.08rem; }
  .nutrition-meal__open { font-size: 0; }
  .nutrition-meal__open i { font-size: 1rem; }
  .nutrition-meal__details { padding: 0 0 26px; }
  .nutrition-meal__macros { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nutrition-meal__detail-grid,
  .nutrition-meal__notes { grid-template-columns: 1fr; gap: 18px; }
  .nutrition-meal__notes { gap: 1px; }
}
@media print {
  .nutrition-meal__open { display: none !important; }
  .nutrition-meal__toggle { cursor: default; }
}
.nutrition-results__hint {
  max-width: 650px;
  margin: 16px 0 0;
  color: rgba(255,255,255,.48);
  font-size: .69rem;
  line-height: 1.6;
}

/* v13.29 — richer event cards: info, location and strong external CTA */
.event-card__summary {
  max-width: 760px;
  margin: 16px 0 0;
  color: rgba(255,255,255,.64);
  font-size: .86rem;
  line-height: 1.65;
}
.event-card__address {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: 12px;
  margin-top: 18px;
  padding: 14px 15px;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.035);
}
.event-card__address-icon {
  display: grid;
  width: 31px;
  height: 31px;
  place-items: center;
  border: 1px solid rgba(255,90,0,.55);
  color: var(--orange);
  font-size: 1rem;
}
.event-card__address small {
  display: block;
  margin-bottom: 3px;
  color: rgba(255,255,255,.34);
  font-size: .53rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.event-card__address strong {
  display: block;
  color: rgba(255,255,255,.88);
  font-size: .78rem;
  font-weight: 760;
  line-height: 1.4;
}
.event-card__address a {
  color: rgba(255,255,255,.66);
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-decoration: none;
  white-space: nowrap;
}
.event-card__address a:hover { color: var(--orange); }
.event-card__footer {
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.09);
}
.event-card__footer .event-card__external {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 0 18px;
  border: 1px solid var(--orange);
  background: var(--orange);
  color: #050505;
  font-family: var(--display);
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .045em;
  text-transform: uppercase;
  transition: transform .18s ease, background .18s ease, color .18s ease;
}
.event-card__footer .event-card__external b {
  font-family: inherit;
  font-size: .9rem;
}
.event-card__footer .event-card__external:hover {
  transform: translateY(-1px);
  background: #fff;
  border-color: #fff;
  color: #050505;
}
@media (max-width: 700px) {
  .event-card__summary { font-size: .8rem; }
  .event-card__address { grid-template-columns: auto minmax(0,1fr); }
  .event-card__address a { grid-column: 2; justify-self: start; margin-top: 2px; }
  .event-card__footer .event-card__external { width: 100%; }
}

/* GTGF v13.30 - personalized nutrition planner and larger recipe catalog */
.nutrition-form__section-head {
  display: grid;
  gap: 8px;
  margin: 0 0 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
}
.nutrition-form__section-head--training {
  margin-top: 42px;
}
.nutrition-form__section-head h3 {
  margin: 0;
  color: var(--white);
  font-family: var(--display);
  font-size: clamp(1.65rem,2.5vw,2.6rem);
  line-height: .95;
  letter-spacing: -.035em;
  text-transform: uppercase;
}
.nutrition-form__section-head > p:last-child {
  max-width: 760px;
  margin: 0;
  color: rgba(255,255,255,.48);
  font-size: .72rem;
  line-height: 1.6;
}
.nutrition-fields--profile {
  grid-template-columns: repeat(3,minmax(0,1fr));
}
.nutrition-form__footer > div {
  display: grid;
  gap: 7px;
}
.nutrition-form__footer .nutrition-form__disclaimer {
  max-width: 760px;
  color: rgba(255,255,255,.31);
  font-size: .6rem;
  line-height: 1.5;
}
.nutrition-profile-summary {
  display: grid;
  grid-template-columns: repeat(5,minmax(0,1fr));
  gap: 1px;
  margin: 0 0 28px;
  border: 1px solid var(--line);
  background: var(--line);
}
.nutrition-profile-summary > div {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 6px;
  min-height: 122px;
  padding: 20px;
  background: #0d0d0d;
}
.nutrition-profile-summary > div:first-child {
  background: #15100d;
}
.nutrition-profile-summary span {
  color: var(--orange);
  font-size: .53rem;
  font-weight: 950;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.nutrition-profile-summary strong {
  color: var(--white);
  font-family: var(--display);
  font-size: clamp(1.15rem,1.8vw,1.55rem);
  line-height: 1;
  letter-spacing: -.025em;
}
.nutrition-profile-summary small {
  color: rgba(255,255,255,.42);
  font-size: .58rem;
  line-height: 1.45;
}
.nutrition-profile-summary > p {
  grid-column: 1 / -1;
  margin: 0;
  padding: 20px;
  background: #0d0d0d;
  color: rgba(255,255,255,.58);
  font-size: .72rem;
}
.nutrition-day__targets {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 1px;
  margin: 0;
  border-bottom: 1px solid var(--line);
  background: rgba(255,255,255,.08);
}
.nutrition-day__targets span {
  min-width: 0;
  display: grid;
  gap: 4px;
  padding: 13px 10px;
  background: #0e0e0e;
}
.nutrition-day--high .nutrition-day__targets span {
  background: #17120f;
}
.nutrition-day__targets strong {
  color: var(--white);
  font-family: var(--display);
  font-size: .92rem;
  line-height: 1;
}
.nutrition-day__targets em {
  color: rgba(255,255,255,.38);
  font-size: .48rem;
  font-style: normal;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.nutrition-meal__macros .nutrition-meal__macro-focus {
  grid-column: 1 / -1;
  grid-template-columns: auto 1fr;
  align-items: baseline;
  gap: 12px;
}
.nutrition-meal__macros .nutrition-meal__macro-focus em {
  color: rgba(255,255,255,.58);
  font-size: .63rem;
  letter-spacing: 0;
  text-transform: none;
}
@media (max-width: 1050px) {
  .nutrition-profile-summary { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .nutrition-fields--profile { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
  .nutrition-profile-summary { grid-template-columns: 1fr 1fr; }
  .nutrition-fields--profile { grid-template-columns: 1fr; }
  .nutrition-day__targets { grid-template-columns: 1fr; }
  .nutrition-day__targets span { grid-template-columns: auto 1fr; align-items: baseline; gap: 10px; }
}
@media print {
  .nutrition-profile-summary { grid-template-columns: repeat(5,minmax(0,1fr)); border-color: #bbb; }
  .nutrition-profile-summary > div { min-height: 0; background: #fff !important; color: #000; border: 0; }
  .nutrition-profile-summary strong, .nutrition-profile-summary span { color: #000; }
  .nutrition-profile-summary small { color: #555; }
  .nutrition-day__targets span { background: #fff !important; }
  .nutrition-day__targets strong, .nutrition-day__targets em { color: #222; }
}

/* v13.31 — real discipline learning paths */
.training-guide-card {
  display: flex;
  min-height: 455px;
  flex-direction: column;
  color: var(--black);
  text-decoration: none;
}
.training-guide-card .performance-card__number { margin-bottom: 54px; }
.training-guide-card p { margin-bottom: 18px; }
.training-guide-card ul {
  display: grid;
  gap: 7px;
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
  color: #676767;
  font-size: .82rem;
  line-height: 1.4;
}
.training-guide-card li::before { content: "+ "; color: var(--orange); font-weight: 900; }
.training-guide-card__link {
  margin-top: auto;
  color: var(--black);
  font-size: .68rem;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.training-guide-card:hover ul { color: rgba(255,255,255,.65); }
.training-guide-card:hover .training-guide-card__link { color: var(--orange); }

.tech-guide { --guide-line: rgba(0,0,0,.13); }
.tech-guide__intro {
  margin-bottom: 34px !important;
  padding: 0 0 28px;
  border-bottom: 1px solid var(--guide-line);
  color: var(--black);
  font-size: 1.18rem !important;
  line-height: 1.65;
}
.tech-guide__quick {
  display: grid;
  grid-template-columns: repeat(5,minmax(0,1fr));
  margin: 12px 0 48px;
  border: 1px solid var(--guide-line);
}
.tech-guide__quick a {
  padding: 14px 12px;
  border-right: 1px solid var(--guide-line);
  color: var(--black);
  font-size: .66rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
}
.tech-guide__quick a:last-child { border-right: 0; }
.tech-guide__quick a:hover { background: var(--black); color: var(--white); }
.tech-guide h2 { scroll-margin-top: 110px; }
.tech-guide h3 { margin-top: 2.3em; font-size: clamp(1.35rem,2.2vw,2rem); }
.tech-guide ul:not(.tech-guide__sources),
.tech-guide ol {
  display: grid;
  gap: 9px;
  padding-left: 1.25em;
  font-size: 1rem;
  line-height: 1.58;
}
.tech-guide__checklist {
  margin: 24px 0 32px;
  padding: 20px 22px 20px 38px !important;
  border-left: 3px solid var(--orange);
  background: #f6f4ef;
}
.tech-guide__callout {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 18px;
  margin: 30px 0;
  padding: 20px 22px;
  background: var(--black);
  color: var(--white);
}
.tech-guide__callout strong {
  color: var(--orange);
  font-size: .66rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.tech-guide__callout span { font-size: 1.02rem; font-weight: 700; }
.tech-guide__session {
  margin: 44px 0;
  padding: clamp(24px,4vw,38px);
  border: 1px solid var(--guide-line);
  background: var(--white);
}
.tech-guide__session .eyebrow { margin: 0 0 10px; color: var(--orange); font-size: .65rem; }
.tech-guide__session h3 { margin: 0 0 18px; }
.tech-guide__session ol { margin-bottom: 18px; }
.tech-guide__mistakes li::marker { color: var(--orange); }
.tech-guide__next {
  margin: 54px 0 44px;
  padding: clamp(28px,5vw,46px);
  background: var(--orange);
  color: var(--black);
}
.tech-guide__next .eyebrow { margin: 0 0 8px; color: var(--black); }
.tech-guide__next h3 { margin: 0 0 12px; font-size: clamp(1.7rem,3vw,2.5rem); }
.tech-guide__next p { max-width: 620px; }
.tech-guide__sources {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: .78rem;
}
.tech-guide__sources a { color: #555; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.tech-guide__sources a:hover { color: var(--orange); }
.sport-guide-related {
  margin-top: 48px;
  padding-top: 34px;
  border-top: 1px solid var(--guide-line,rgba(0,0,0,.13));
}
.sport-guide-related__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-top: 18px; }
.sport-guide-related__grid a {
  display: flex;
  min-height: 110px;
  flex-direction: column;
  justify-content: space-between;
  padding: 18px;
  border: 1px solid rgba(0,0,0,.13);
  color: var(--black);
  text-decoration: none;
}
.sport-guide-related__grid a strong { font-family: var(--display); font-size: 1.05rem; text-transform: uppercase; }
.sport-guide-related__grid a span { color: var(--orange); font-size: .7rem; font-weight: 900; text-transform: uppercase; }
.sport-guide-related__grid a:hover { background: var(--black); color: var(--white); }

@media (max-width: 800px) {
  .tech-guide__quick { grid-template-columns: 1fr 1fr; }
  .tech-guide__quick a { border-bottom: 1px solid var(--guide-line); }
  .tech-guide__quick a:nth-child(even) { border-right: 0; }
  .tech-guide__quick a:last-child { grid-column: 1 / -1; border-bottom: 0; }
  .tech-guide__callout { grid-template-columns: 1fr; gap: 6px; }
  .sport-guide-related__grid { grid-template-columns: 1fr; }
  .training-guide-card { min-height: 390px; }
}

/* GTGF v13.32 - deeper level-aware training planner */
.planner-level-context {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(155px, .45fr) minmax(0, 1.55fr);
  gap: 18px 28px;
  align-items: center;
  margin-top: 10px;
  padding: 17px 20px;
  border-left: 4px solid rgba(255,255,255,.34);
  background: rgba(255,255,255,.045);
}
.planner-level-context span {
  color: rgba(255,255,255,.56);
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.planner-level-context strong {
  display: block;
  margin-top: 4px;
  color: var(--white);
  font-family: var(--display);
  font-size: 1rem;
  letter-spacing: -.02em;
}
.planner-level-context p {
  margin: 0;
  color: rgba(255,255,255,.72);
  font-size: .78rem;
  line-height: 1.55;
}
.planner-method-summary {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  margin: -2px 0 30px;
  border: 1px solid #d7d4ce;
  background: #fff;
}
.planner-method-summary article {
  min-width: 0;
  padding: 20px 18px 19px;
  border-right: 1px solid #d7d4ce;
}
.planner-method-summary article:last-child { border-right: 0; }
.planner-method-summary span {
  display: block;
  margin-bottom: 9px;
  color: var(--orange);
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.planner-method-summary strong {
  display: block;
  margin-bottom: 7px;
  color: var(--black);
  font-family: var(--display);
  font-size: 1.12rem;
  letter-spacing: -.025em;
  text-transform: uppercase;
}
.planner-method-summary p {
  margin: 0;
  color: #666;
  font-size: .74rem;
  line-height: 1.5;
}
.planner-summary__stats { flex-wrap: wrap; }
.planner-week-heading small { max-width: 460px; text-align: right; line-height: 1.45; }

@media (max-width: 980px) {
  .planner-method-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .planner-method-summary article:nth-child(2) { border-right: 0; }
  .planner-method-summary article:nth-child(-n+2) { border-bottom: 1px solid #d7d4ce; }
}
@media (max-width: 720px) {
  .planner-level-context { grid-template-columns: 1fr; gap: 9px; }
  .planner-method-summary { grid-template-columns: 1fr; }
  .planner-method-summary article,
  .planner-method-summary article:nth-child(2) { border-right: 0; border-bottom: 1px solid #d7d4ce; }
  .planner-method-summary article:last-child { border-bottom: 0; }
  .planner-week-heading small { max-width: none; text-align: left; }
}

/* v13.33 — logged-in training + nutrition linking */
.nutrition-training-link,
.nutrition-training-link-login {
  margin: 38px 0 0;
  padding: clamp(22px,3vw,34px);
  border: 1px solid rgba(255,255,255,.13);
  background: #101010;
}
.nutrition-training-link__intro {
  display: grid;
  grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr);
  gap: 28px;
  align-items: end;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.nutrition-training-link__intro h3,
.nutrition-training-link-login h3 {
  margin: 5px 0 0;
  color: var(--white);
  font-family: var(--display);
  font-size: clamp(1.7rem,3vw,2.8rem);
  line-height: .98;
  letter-spacing: -.04em;
  text-transform: uppercase;
}
.nutrition-training-link__intro > p,
.nutrition-training-link-login p,
.nutrition-training-link__empty p {
  margin: 0;
  color: rgba(255,255,255,.58);
  font-size: .76rem;
  line-height: 1.65;
}
.nutrition-training-link__controls {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 16px;
  padding-top: 24px;
}
.nutrition-training-link__summary {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 1px;
  margin-top: 18px;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.1);
}
.nutrition-training-link__summary > div {
  min-width: 0;
  display: grid;
  gap: 5px;
  padding: 16px;
  background: #090909;
}
.nutrition-training-link__summary span,
.member-plan-link-badge span,
.planner-link-nutrition-note > span {
  color: var(--orange);
  font-size: .5rem;
  font-weight: 950;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.nutrition-training-link__summary strong {
  color: var(--white);
  font-size: .78rem;
  line-height: 1.35;
}
.nutrition-training-link__summary small {
  color: rgba(255,255,255,.4);
  font-size: .55rem;
  line-height: 1.4;
}
.nutrition-training-link__empty {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 24px;
}
.nutrition-training-link-login {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.nutrition-training-link-login > div { max-width: 760px; }
.nutrition-training-link-login p:last-child { margin-top: 10px; }
.planner-field.is-linked-locked { opacity: .52; }
.planner-field.is-linked-locked select { cursor: not-allowed; }
.nutrition-day__linked-training {
  display: grid;
  gap: 5px;
  padding: 14px 0 15px;
  border-bottom: 1px solid var(--line);
}
.nutrition-day__linked-training span {
  color: var(--orange);
  font-size: .48rem;
  font-weight: 950;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.nutrition-day__linked-training strong {
  color: rgba(255,255,255,.78);
  font-size: .66rem;
  line-height: 1.5;
}
.nutrition-profile-summary { grid-template-columns: repeat(auto-fit,minmax(145px,1fr)); }
.nutrition-profile-summary__linked { background: #211209 !important; }
.saved-plan-card__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
}
.planner-link-nutrition-note {
  display: grid;
  gap: 7px;
  margin: 18px 0 26px;
  padding: 18px 20px;
  border-left: 3px solid var(--orange);
  background: rgba(255,90,0,.07);
}
.planner-link-nutrition-note p {
  max-width: 900px;
  margin: 0;
  color: #555;
  font-size: .7rem;
  line-height: 1.55;
}
.member-plan-link-badge {
  display: grid;
  gap: 4px;
  margin: 12px 0 2px;
  padding: 11px 12px;
  border-left: 3px solid var(--orange);
  background: rgba(255,90,0,.07);
}
.member-plan-link-badge strong {
  color: #222;
  font-size: .68rem;
  line-height: 1.4;
}
@media (max-width: 900px) {
  .nutrition-training-link__intro,
  .nutrition-training-link__controls { grid-template-columns: 1fr; }
  .nutrition-training-link__summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nutrition-training-link-login,
  .nutrition-training-link__empty { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 560px) {
  .nutrition-training-link__summary { grid-template-columns: 1fr; }
}
@media print {
  .nutrition-training-link,
  .nutrition-training-link-login,
  .planner-link-nutrition-note { display: none !important; }
  .nutrition-day__linked-training strong { color: #222; }
}


/* v13.34 standalone nutrition planner */
.nutrition-fields--standalone { grid-template-columns: repeat(2,minmax(0,1fr)); max-width: 820px; }
.nutrition-results__legend--standalone span { padding: 7px 10px; border: 1px solid rgba(255,255,255,.16); }
.nutrition-day--standalone { background: #0c0c0c; }
.nutrition-day--standalone header span { color: var(--orange); }
.nutrition-day--standalone .nutrition-day__targets span { background: #0e0e0e; }
@media (max-width: 720px) { .nutrition-fields--standalone { grid-template-columns: 1fr; } }

/* GTGF v13.35 — conversion-first homepage and live proof. */
.home-hero--conversion {
  min-height: min(860px, 100svh);
}
.home-hero--conversion .home-hero__content {
  width: min(620px, 52vw);
}
.home-hero--conversion .home-hero__copy {
  max-width: 520px;
  margin-bottom: 22px;
}
.home-goal-builder {
  width: min(590px, 100%);
  padding: 18px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(4,4,4,.62);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.home-goal-builder__label {
  margin: 0 0 11px;
  color: rgba(255,255,255,.62);
  font-size: .67rem;
  font-weight: 850;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.home-goal-builder__choices {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.home-goal-chip {
  min-height: 36px;
  padding: 8px 13px;
  border: 1px solid rgba(255,255,255,.2);
  background: transparent;
  color: rgba(255,255,255,.78);
  font: 800 .72rem/1 var(--body);
  letter-spacing: .02em;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}
.home-goal-chip:hover,
.home-goal-chip:focus-visible {
  border-color: rgba(255,90,0,.8);
  color: #fff;
}
.home-goal-chip.is-active {
  border-color: var(--orange);
  background: var(--orange);
  color: #050505;
}
.home-goal-chip:active { transform: translateY(1px); }
.home-goal-builder__copy {
  min-height: 38px;
  max-width: 520px;
  margin: 13px 0 15px;
  color: rgba(255,255,255,.64);
  font-size: .78rem;
  line-height: 1.5;
}
.home-goal-builder__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 17px;
}
.home-goal-builder__actions .button {
  min-width: 205px;
  justify-content: center;
}
.home-hero__secondary {
  color: rgba(255,255,255,.82);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
}
.home-hero__secondary:hover { color: var(--orange); }

.home-proof-strip {
  border-top: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(255,255,255,.08);
  background: #050505;
  color: #fff;
}
.home-proof-strip__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0,1fr));
}
.home-proof-strip__grid > div {
  min-height: 126px;
  padding: 26px clamp(16px,2.5vw,30px);
  border-right: 1px solid rgba(255,255,255,.11);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.home-proof-strip__grid > div:first-child { border-left: 1px solid rgba(255,255,255,.11); }
.home-proof-strip strong {
  color: var(--orange);
  font-family: var(--display);
  font-size: clamp(2rem,3.2vw,3.2rem);
  line-height: .9;
  letter-spacing: -.04em;
}
.home-proof-strip span {
  margin-top: 9px;
  color: rgba(255,255,255,.58);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.home-platform-band { padding-top: clamp(72px,8vw,110px); padding-bottom: clamp(72px,8vw,110px); }
.home-platform-band .home-seo-band__grid { align-items: start; }
.home-platform-band h2 { max-width: 620px; }
.home-performance-loop {
  display: grid;
  grid-template-columns: repeat(5,minmax(0,1fr));
  margin: 30px 0 26px;
  border-top: 1px solid rgba(5,5,5,.17);
  border-bottom: 1px solid rgba(5,5,5,.17);
}
.home-performance-loop span {
  min-height: 88px;
  padding: 18px 13px;
  border-right: 1px solid rgba(5,5,5,.12);
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: #101010;
  font-family: var(--display);
  font-weight: 900;
  font-size: .86rem;
  text-transform: uppercase;
}
.home-performance-loop span:last-child { border-right: 0; }
.home-performance-loop b {
  margin-bottom: 8px;
  color: var(--orange);
  font: 850 .58rem/1 var(--body);
  letter-spacing: .15em;
}

.home-now {
  padding: clamp(76px,8vw,110px) 0;
  color: #fff;
}
.home-section-title--dark { border-bottom-color: rgba(255,255,255,.14); }
.home-section-title--dark h2 { color: #fff; }
.home-section-title--dark > p { color: rgba(255,255,255,.58); }
.home-now__grid {
  display: grid;
  grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr);
  gap: clamp(34px,6vw,78px);
}
.home-now__column { min-width: 0; }
.home-now__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 48px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255,255,255,.18);
}
.home-now__head span {
  color: rgba(255,255,255,.56);
  font-size: .66rem;
  font-weight: 850;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.home-now__head a,
.home-live-card a {
  color: var(--orange);
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
}
.home-live-card {
  min-height: 142px;
  padding: 24px 0;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.home-live-card h3 {
  max-width: 560px;
  margin: 5px 0 10px;
  color: #fff;
  font-family: var(--display);
  font-size: clamp(1.15rem,1.8vw,1.6rem);
  font-weight: 900;
  letter-spacing: -.025em;
  line-height: 1.04;
  text-transform: uppercase;
}
.home-live-card p,
.home-live-card > div > p {
  margin: 0;
  color: rgba(255,255,255,.48);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.home-live-card--event {
  display: grid;
  grid-template-columns: 60px minmax(0,1fr);
  gap: 20px;
}
.home-live-card__date {
  width: 56px;
  height: 62px;
  border: 1px solid rgba(255,255,255,.18);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.home-live-card__date strong {
  font-family: var(--display);
  font-size: 1.4rem;
  line-height: .85;
}
.home-live-card__date span {
  margin-top: 6px;
  color: var(--orange);
  font-size: .56rem;
  font-weight: 900;
  letter-spacing: .12em;
}
.home-live-card--brief > div {
  max-width: 520px;
  margin: 8px 0 12px;
  color: rgba(255,255,255,.59);
  font-size: .82rem;
  line-height: 1.55;
}
.home-now__empty { padding: 24px 0; color: rgba(255,255,255,.5); }

.project-band--proof { padding-block: clamp(80px,9vw,125px); }
.project-band--proof .project-band__grid { align-items: center; }
.project-proof-metrics {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  max-width: 760px;
  margin-top: 34px;
  border-top: 1px solid rgba(255,255,255,.16);
  border-bottom: 1px solid rgba(255,255,255,.16);
}
.project-proof-metrics span {
  min-height: 94px;
  padding: 18px 13px;
  border-right: 1px solid rgba(255,255,255,.13);
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: rgba(255,255,255,.48);
  font-size: .56rem;
  font-weight: 850;
  letter-spacing: .12em;
}
.project-proof-metrics span:last-child { border-right: 0; }
.project-proof-metrics strong {
  margin-bottom: 7px;
  color: #fff;
  font-family: var(--display);
  font-size: clamp(1.4rem,2.4vw,2.25rem);
  line-height: .95;
  letter-spacing: -.03em;
}
.project-proof-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 22px;
  margin: 0 0 28px;
  padding: 0;
  list-style: none;
}
.project-proof-list li {
  position: relative;
  padding-left: 17px;
  color: rgba(255,255,255,.74);
  font-size: .75rem;
  font-weight: 750;
}
.project-proof-list li::before {
  content: "→";
  position: absolute;
  left: 0;
  color: var(--orange);
}

@media (max-width: 1100px) {
  .home-hero--conversion { min-height: 820px; }
  .home-hero--conversion .home-hero__content { width: min(600px,61vw); }
  .home-proof-strip__grid { grid-template-columns: repeat(3,1fr); }
  .home-proof-strip__grid > div:nth-child(3) { border-right: 1px solid rgba(255,255,255,.11); }
  .home-proof-strip__grid > div:nth-child(n+4) { border-top: 1px solid rgba(255,255,255,.11); }
  .home-performance-loop { grid-template-columns: repeat(5,minmax(95px,1fr)); overflow-x: auto; }
  .project-proof-metrics { grid-template-columns: 1fr 1fr; }
  .project-proof-metrics span:nth-child(2) { border-right: 0; }
  .project-proof-metrics span:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.13); }
}

@media (max-width: 760px) {
  .home-hero--conversion { min-height: 810px; }
  .home-hero--conversion .home-hero__content { width: 100%; }
  .home-goal-builder { padding: 14px; }
  .home-goal-builder__choices { display: grid; grid-template-columns: 1fr 1fr; }
  .home-goal-chip { width: 100%; }
  .home-goal-builder__actions { align-items: flex-start; flex-direction: column; gap: 12px; }
  .home-goal-builder__actions .button { width: 100%; min-width: 0; }
  .home-proof-strip__grid { grid-template-columns: 1fr 1fr; }
  .home-proof-strip__grid > div { min-height: 104px; border-top: 1px solid rgba(255,255,255,.11); }
  .home-proof-strip__grid > div:first-child,
  .home-proof-strip__grid > div:nth-child(2) { border-top: 0; }
  .home-proof-strip__grid > div:nth-child(even) { border-right: 1px solid rgba(255,255,255,.11); }
  .home-proof-strip__grid > div:nth-child(5) { grid-column: 1/-1; }
  .home-performance-loop { grid-template-columns: repeat(5,120px); margin-inline: -2px; }
  .home-now__grid { grid-template-columns: 1fr; gap: 50px; }
  .home-now__head { align-items: flex-start; }
  .project-proof-metrics { margin-top: 26px; }
  .project-proof-list { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .home-goal-chip { transition: none; }
}


/* GTGF v13.36 — Ruben / Earn the Start Line / Strava visibility */
.project-proof-actions,
.story-follow-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.button--strava {
  border-color: #fc4c02 !important;
  background: #fc4c02 !important;
  color: #fff !important;
}
.button--strava:hover {
  border-color: #fff !important;
  background: #fff !important;
  color: #111 !important;
}
.story-cover__strava {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  margin-top: 28px;
  padding: 13px 20px;
  border: 1px solid rgba(252,76,2,.72);
  background: rgba(5,5,5,.52);
  color: #fff;
  text-decoration: none;
  transition: background .2s ease, transform .2s ease, border-color .2s ease;
}
.story-cover__strava span {
  color: rgba(255,255,255,.48);
  font-size: .55rem;
  font-weight: 850;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.story-cover__strava strong {
  color: #fc4c02;
  font-family: var(--display);
  font-size: .78rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.story-cover__strava:hover {
  transform: translateY(-2px);
  border-color: #fc4c02;
  background: rgba(252,76,2,.1);
}
.athlete-strava-card {
  display: grid;
  grid-template-columns: 190px minmax(0,1fr);
  max-width: 980px;
  margin: 34px 0 0 auto;
  border: 1px solid rgba(252,76,2,.72);
  background: linear-gradient(120deg, rgba(252,76,2,.14), rgba(255,255,255,.025) 62%);
  color: #fff;
  text-decoration: none;
  transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.athlete-strava-card:hover {
  transform: translateY(-3px);
  border-color: #fc4c02;
  background: linear-gradient(120deg, rgba(252,76,2,.22), rgba(255,255,255,.04) 70%);
}
.athlete-strava-card__label {
  display: flex;
  align-items: center;
  padding: 25px;
  border-right: 1px solid rgba(252,76,2,.38);
  color: rgba(255,255,255,.55);
  font-size: .58rem;
  font-weight: 850;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.athlete-strava-card__body {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  gap: 22px;
  align-items: center;
  min-width: 0;
  padding: 24px 28px;
}
.athlete-strava-card__body strong {
  color: #fc4c02;
  font-family: var(--display);
  font-size: clamp(1.4rem,2.5vw,2.2rem);
  letter-spacing: -.03em;
}
.athlete-strava-card__body em {
  color: rgba(255,255,255,.64);
  font-size: .82rem;
  font-style: normal;
  line-height: 1.55;
}
.athlete-strava-card__body b {
  color: #fff;
  font-size: .62rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
}
@media (max-width: 760px) {
  .project-proof-actions,
  .story-follow-actions { align-items: stretch; flex-direction: column; }
  .project-proof-actions .button,
  .story-follow-actions .button { width: 100%; text-align: center; }
  .athlete-strava-card { grid-template-columns: 1fr; }
  .athlete-strava-card__label { border-right: 0; border-bottom: 1px solid rgba(252,76,2,.38); padding: 16px 20px; }
  .athlete-strava-card__body { grid-template-columns: 1fr; gap: 10px; padding: 20px; }
  .athlete-strava-card__body b { margin-top: 4px; }
}

/* GTGF v13.38 — Strava OAuth, webhooks and live athlete data */
.gtgf-strava-live{position:relative;overflow:hidden;padding:clamp(72px,8vw,132px) 0;background:#050505;color:#fff;border-top:1px solid rgba(255,255,255,.12)}
.gtgf-strava-live:before{content:"";position:absolute;inset:-35% -10% auto 38%;height:520px;background:radial-gradient(circle,rgba(252,76,2,.16),transparent 68%);pointer-events:none}
.gtgf-strava-live .gtgf-shell{position:relative;z-index:1;width:min(1320px,calc(100% - 48px));margin-inline:auto}
.gtgf-strava-heading,.gtgf-strava-project-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.72fr);gap:clamp(32px,7vw,110px);align-items:end;margin-bottom:clamp(44px,6vw,82px)}
.gtgf-strava-heading h2,.gtgf-strava-project-head h2{margin:.28em 0 0;font-family:var(--display,Impact,sans-serif);font-size:clamp(3.2rem,7.4vw,8.2rem);line-height:.8;letter-spacing:-.055em;text-transform:uppercase}
.gtgf-strava-heading h2 span,.gtgf-strava-project-head h2 span{color:#ff5a00}
.gtgf-strava-heading>p,.gtgf-strava-project-head__copy p{max-width:620px;margin:0;color:rgba(255,255,255,.66);font-size:clamp(1rem,1.4vw,1.18rem);line-height:1.75}
.gtgf-strava-project-head__copy{display:grid;gap:24px;justify-items:start}
.gtgf-strava-badge{display:inline-flex;padding:7px 10px;background:#fc4c02;color:#fff;font-size:.68rem;font-weight:950;letter-spacing:.13em}
.btn-strava{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 23px;background:#fc4c02!important;border:1px solid #fc4c02!important;color:#fff!important;font-weight:900;letter-spacing:.09em;text-transform:uppercase;text-decoration:none;transition:transform .18s ease,background .18s ease}
.btn-strava:hover{background:#e34402!important;transform:translateY(-2px)}
.gtgf-strava-connect{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:clamp(28px,4vw,52px);border:1px solid rgba(255,255,255,.16);background:linear-gradient(125deg,rgba(255,255,255,.055),rgba(255,255,255,.015))}
.gtgf-strava-connect h3{margin:14px 0 8px;font-family:var(--display,Impact,sans-serif);font-size:clamp(2rem,4vw,4.3rem);line-height:.92;text-transform:uppercase}
.gtgf-strava-connect p{max-width:720px;margin:0;color:rgba(255,255,255,.62);line-height:1.7}.gtgf-strava-connect small{display:block;margin-top:11px;color:rgba(255,255,255,.4)}
.gtgf-strava-profilebar{display:grid;grid-template-columns:1fr auto auto;gap:28px;align-items:center;padding:20px 24px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.035);margin-bottom:44px}
.gtgf-strava-profilebar__identity{display:flex;align-items:center;gap:14px}.gtgf-strava-profilebar__identity img{width:48px;height:48px;object-fit:cover;border-radius:50%;border:2px solid #fc4c02}.gtgf-strava-profilebar__identity div,.gtgf-strava-profilebar__status{display:grid;gap:2px}.gtgf-strava-profilebar small{color:rgba(255,255,255,.44);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.gtgf-strava-profilebar__identity strong{font-size:1.05rem}.gtgf-strava-profilebar__identity span{color:#fc4c02;font-size:.73rem;font-weight:800}.gtgf-strava-profilebar__status{position:relative;padding-left:18px}.gtgf-live-dot{position:absolute;left:0;top:7px;width:8px;height:8px;border-radius:50%;background:#3bd171;box-shadow:0 0 0 6px rgba(59,209,113,.12)}
.gtgf-strava-profilebar__actions{display:flex;gap:16px}.gtgf-strava-profilebar__actions a{color:#fff;font-size:.7rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.gtgf-strava-profilebar__actions .gtgf-strava-disconnect{color:rgba(255,255,255,.45)}
.gtgf-strava-error{margin:-24px 0 36px;padding:14px 18px;border-left:3px solid #ff5a00;background:rgba(255,90,0,.09);color:rgba(255,255,255,.78)}
.gtgf-strava-week-head,.gtgf-strava-feed-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:20px}.gtgf-strava-week-head h3,.gtgf-strava-feed-head h3{margin:5px 0 0;font-family:var(--display,Impact,sans-serif);font-size:clamp(1.6rem,3vw,3rem);line-height:.95;text-transform:uppercase}.gtgf-strava-week-head>span,.gtgf-strava-feed-head>a,.gtgf-strava-feed-head>span{color:rgba(255,255,255,.48);font-size:.72rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.gtgf-strava-totals{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid rgba(255,255,255,.14);margin-bottom:clamp(52px,7vw,88px)}
.gtgf-strava-total{min-height:140px;padding:24px;border-right:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;justify-content:space-between}.gtgf-strava-total:last-child{border-right:0}.gtgf-strava-total span{color:rgba(255,255,255,.46);font-size:.68rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.gtgf-strava-total strong{font-family:var(--display,Impact,sans-serif);font-size:clamp(1.65rem,2.8vw,3.3rem);line-height:.9;letter-spacing:-.035em}.gtgf-strava-total small{color:#ff5a00;font-size:.67rem;font-weight:800}.gtgf-strava-total--primary{background:#ff5a00}.gtgf-strava-total--primary span,.gtgf-strava-total--primary small{color:#090909}
.gtgf-strava-activity-list{border-top:1px solid rgba(255,255,255,.14)}.gtgf-strava-activity{--mx:50%;position:relative;display:grid;grid-template-columns:52px minmax(0,1fr) auto 24px;gap:20px;align-items:center;min-height:110px;padding:19px 16px;border-bottom:1px solid rgba(255,255,255,.12);color:#fff;text-decoration:none;overflow:hidden}.gtgf-strava-activity:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx) 50%,rgba(252,76,2,.12),transparent 33%);opacity:0;transition:opacity .2s}.gtgf-strava-activity:hover:before{opacity:1}.gtgf-strava-activity>*{position:relative;z-index:1}.gtgf-strava-activity__icon{display:grid;place-items:center;width:46px;height:46px;border:1px solid rgba(255,255,255,.18);color:#fc4c02}.gtgf-strava-activity__icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.gtgf-strava-activity__main{display:grid;gap:4px}.gtgf-strava-activity__main small{color:#ff5a00;font-size:.65rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.gtgf-strava-activity__main strong{font-family:var(--display,Impact,sans-serif);font-size:clamp(1.12rem,2vw,1.65rem);letter-spacing:-.01em;text-transform:uppercase}.gtgf-strava-activity__main>span{color:rgba(255,255,255,.52);font-size:.82rem}.gtgf-strava-activity__metric{display:grid;gap:4px;text-align:right;font-weight:850}.gtgf-strava-activity__metric small{color:rgba(255,255,255,.43);font-size:.68rem}.gtgf-strava-activity__arrow{color:#ff5a00;font-size:1.25rem}.gtgf-strava-empty{padding:40px;border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.65)}
.gtgf-strava-attribution{margin-top:22px;color:rgba(255,255,255,.3);font-size:.62rem;font-weight:750;letter-spacing:.08em}.gtgf-strava-attribution strong{color:#fc4c02}.gtgf-live-label{display:flex!important;align-items:center;gap:8px}.gtgf-live-label i{display:block;width:7px;height:7px;border-radius:50%;background:#3bd171}.gtgf-strava-connect--project{margin-top:10px}
@media(max-width:1050px){.gtgf-strava-totals{grid-template-columns:repeat(3,1fr)}.gtgf-strava-total:nth-child(3n){border-right:0}.gtgf-strava-total:nth-child(-n+3){border-bottom:1px solid rgba(255,255,255,.12)}.gtgf-strava-profilebar{grid-template-columns:1fr auto}.gtgf-strava-profilebar__actions{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.1);padding-top:14px}}
@media(max-width:760px){.gtgf-strava-live .gtgf-shell{width:min(100% - 28px,1320px)}.gtgf-strava-heading,.gtgf-strava-project-head{grid-template-columns:1fr;align-items:start}.gtgf-strava-connect{align-items:flex-start;flex-direction:column}.gtgf-strava-profilebar{grid-template-columns:1fr}.gtgf-strava-profilebar__actions{grid-column:auto}.gtgf-strava-totals{grid-template-columns:repeat(2,1fr)}.gtgf-strava-total{min-height:115px}.gtgf-strava-total:nth-child(n){border-right:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12)}.gtgf-strava-total:nth-child(2n){border-right:0}.gtgf-strava-total:nth-last-child(-n+2){border-bottom:0}.gtgf-strava-week-head,.gtgf-strava-feed-head{align-items:flex-start;flex-direction:column}.gtgf-strava-activity{grid-template-columns:42px 1fr 18px;gap:12px}.gtgf-strava-activity__metric{grid-column:2/3;text-align:left}.gtgf-strava-activity__arrow{grid-column:3;grid-row:1/3}.gtgf-strava-activity__icon{width:40px;height:40px}}

/* GTGF v13.39 — prominent Strava onboarding inside Mijn GTGF */
.member-strava-priority{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.28fr) minmax(300px,.72fr);
  gap:0;
  margin-top:clamp(42px,6vw,76px);
  overflow:hidden;
  background:#050505;
  color:#fff;
  border:1px solid #111;
  box-shadow:0 22px 70px rgba(0,0,0,.12);
}
.member-strava-priority:before{
  content:"";
  position:absolute;
  inset:auto -8% -72% 42%;
  width:620px;
  height:620px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(252,76,2,.24),rgba(252,76,2,.08) 34%,transparent 68%);
  pointer-events:none;
}
.member-strava-priority__copy{
  position:relative;
  z-index:2;
  padding:clamp(34px,5vw,68px);
}
.member-strava-priority__status{
  display:flex;
  align-items:center;
  gap:10px;
  color:#fc4c02;
  font-size:.68rem;
  font-weight:950;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.member-strava-priority__dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#fc4c02;
  box-shadow:0 0 0 7px rgba(252,76,2,.1);
}
.member-strava-priority__dot.is-live{
  background:#41d978;
  box-shadow:0 0 0 7px rgba(65,217,120,.1);
}
.member-strava-priority h2{
  max-width:760px;
  margin:18px 0 20px;
  font-family:var(--display,Impact,sans-serif);
  font-size:clamp(3rem,5.5vw,6.5rem);
  line-height:.84;
  letter-spacing:-.055em;
  text-transform:uppercase;
}
.member-strava-priority h2 span{color:#fc4c02}
.member-strava-priority__copy>p{
  max-width:760px;
  margin:0;
  color:rgba(255,255,255,.67);
  font-size:clamp(.98rem,1.35vw,1.1rem);
  line-height:1.72;
}
.member-strava-priority__benefits{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  margin-top:30px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.12);
}
.member-strava-priority__benefits span{
  display:flex;
  align-items:center;
  gap:11px;
  min-height:64px;
  padding:14px 16px;
  background:rgba(255,255,255,.035);
  color:rgba(255,255,255,.72);
  font-size:.72rem;
  font-weight:820;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.member-strava-priority__benefits b{color:#fc4c02;font-size:.65rem;letter-spacing:.08em}
.member-strava-priority__actions{
  display:flex;
  align-items:center;
  gap:22px;
  margin-top:30px;
  flex-wrap:wrap;
}
.member-strava-connect-button{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:42px;
  min-width:min(100%,320px);
  min-height:58px;
  padding:0 20px 0 22px;
  background:#fc4c02;
  border:1px solid #fc4c02;
  color:#fff;
  font-size:.72rem;
  font-weight:950;
  letter-spacing:.1em;
  text-decoration:none;
  text-transform:uppercase;
  transition:transform .18s ease,background .18s ease;
}
.member-strava-connect-button:hover,.member-strava-connect-button:focus-visible{background:#df4301;transform:translateY(-2px);color:#fff}
.member-strava-connect-button strong{font-size:1.25rem}
.member-strava-connect-button.is-disabled{opacity:.5;cursor:not-allowed}
.member-strava-priority__learn{
  color:rgba(255,255,255,.62);
  font-size:.7rem;
  font-weight:850;
  letter-spacing:.07em;
  text-decoration:none;
  text-transform:uppercase;
}
.member-strava-priority__learn:hover{color:#fff}
.member-strava-priority__visual{
  position:relative;
  z-index:1;
  min-height:100%;
  padding:clamp(30px,4vw,54px);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  border-left:1px solid rgba(255,255,255,.12);
  background:linear-gradient(145deg,rgba(252,76,2,.12),rgba(255,255,255,.015));
}
.member-strava-priority__brand{
  color:#fc4c02;
  font-family:var(--display,Impact,sans-serif);
  font-size:clamp(2.7rem,5vw,5.5rem);
  line-height:.8;
  letter-spacing:-.04em;
  text-align:right;
}
.member-strava-priority__preview{
  border-top:1px solid rgba(255,255,255,.17);
}
.member-strava-priority__preview>div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  min-height:72px;
  border-bottom:1px solid rgba(255,255,255,.13);
}
.member-strava-priority__preview small,.member-strava-priority__metrics small{
  color:rgba(255,255,255,.45);
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.11em;
}
.member-strava-priority__preview strong{font-family:var(--display,Impact,sans-serif);font-size:1.65rem;color:#fff;letter-spacing:-.03em}
.member-strava-priority__metrics{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  margin-top:28px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.12);
}
.member-strava-priority__metrics>div{
  min-height:96px;
  padding:16px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  background:rgba(255,255,255,.035);
}
.member-strava-priority__metrics strong{
  font-family:var(--display,Impact,sans-serif);
  font-size:clamp(1.35rem,2vw,2rem);
  letter-spacing:-.035em;
}
.member-strava-priority__visual--connected{align-items:center;justify-content:center;gap:20px;text-align:center}
.member-strava-priority__visual--connected .member-strava-priority__brand{position:absolute;top:32px;right:34px;font-size:1rem;letter-spacing:.12em}
.member-strava-priority__live-ring{
  display:grid;
  place-items:center;
  width:160px;
  height:160px;
  border:1px solid rgba(65,217,120,.4);
  border-radius:50%;
  box-shadow:0 0 0 20px rgba(65,217,120,.035),0 0 70px rgba(65,217,120,.08);
}
.member-strava-priority__live-ring span{position:absolute;width:8px;height:8px;border-radius:50%;background:#41d978;transform:translateY(-34px);box-shadow:0 0 0 7px rgba(65,217,120,.12)}
.member-strava-priority__live-ring strong{font-family:var(--display,Impact,sans-serif);font-size:2.3rem;letter-spacing:.02em}
.member-strava-priority__visual--connected>small{color:rgba(255,255,255,.44);font-size:.65rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.member-jump-nav .member-jump-nav__strava{background:#050505;color:#fc4c02}
.member-jump-nav .member-jump-nav__strava:hover,.member-jump-nav .member-jump-nav__strava:focus-visible{background:#fc4c02;color:#050505}
.header-account-dropdown>a.header-account-strava{
  display:grid;
  gap:2px;
  margin:5px 4px 7px;
  padding:12px 10px;
  border:1px solid rgba(252,76,2,.38);
  background:rgba(252,76,2,.08);
  color:#fff;
}
.header-account-dropdown>a.header-account-strava span{color:#fc4c02;font-size:.69rem;font-weight:950;letter-spacing:.07em;text-transform:uppercase}
.header-account-dropdown>a.header-account-strava small{color:rgba(255,255,255,.5);font-size:.58rem;font-weight:700;letter-spacing:.03em}
.header-account-dropdown>a.header-account-strava.is-connected{border-color:rgba(65,217,120,.3);background:rgba(65,217,120,.06)}
.header-account-dropdown>a.header-account-strava.is-connected span{color:#41d978}
@media(max-width:1050px){
  .member-strava-priority{grid-template-columns:1fr minmax(260px,.58fr)}
  .member-strava-priority__benefits{grid-template-columns:1fr}
  .member-strava-priority__benefits span{min-height:50px}
  .member-strava-priority__metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .member-strava-priority{grid-template-columns:1fr}
  .member-strava-priority__visual{min-height:280px;border-left:0;border-top:1px solid rgba(255,255,255,.12)}
  .member-strava-priority__brand{text-align:left}
  .member-strava-priority__actions{align-items:stretch;flex-direction:column}
  .member-strava-connect-button{width:100%;min-width:0}
  .member-strava-priority__learn{text-align:center;padding:8px}
}
@media(max-width:520px){
  .member-strava-priority__copy{padding:28px 22px}
  .member-strava-priority h2{font-size:clamp(2.6rem,13vw,4.2rem)}
  .member-strava-priority__metrics{grid-template-columns:1fr}
  .member-strava-priority__visual{min-height:220px;padding:26px 22px}
  .member-strava-priority__preview>div{min-height:58px}
}

/* v13.40 private Strava history + public compliance */
.header-account-community{display:flex!important;flex-direction:column!important;gap:2px!important;padding:13px 20px!important;background:rgba(255,90,0,.06)!important;border-top:1px solid rgba(255,255,255,.08)!important;border-bottom:1px solid rgba(255,255,255,.08)!important;color:#fff!important;text-decoration:none!important}.header-account-community span{font-weight:900!important}.header-account-community small{color:rgba(255,255,255,.48)!important;font-size:.67rem!important}.gtgf-strava-history{margin-top:54px;padding-top:46px;border-top:1px solid rgba(255,255,255,.12)}.gtgf-strava-history__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.6fr);gap:40px;align-items:end}.gtgf-strava-history__head h3{margin:8px 0 0;color:#fff;font-size:clamp(2.4rem,5vw,5.2rem);line-height:.88;letter-spacing:-.055em}.gtgf-strava-history__head p{margin:0;color:rgba(255,255,255,.58);line-height:1.7}.gtgf-strava-history__trend{display:grid;grid-template-columns:repeat(12,minmax(28px,1fr));gap:6px;align-items:end;height:220px;margin:30px 0 16px;padding:22px 20px 14px;border:1px solid rgba(255,255,255,.1);background:#0e0e0e}.gtgf-strava-history__bar{display:grid;grid-template-rows:1fr auto auto;gap:6px;height:100%;color:rgba(255,255,255,.48)!important;text-decoration:none;text-align:center}.gtgf-strava-history__bar>span{align-self:end;display:block;width:100%;min-height:4px;background:rgba(255,255,255,.18);transition:.2s}.gtgf-strava-history__bar:hover>span,.gtgf-strava-history__bar.is-active>span{background:#fc4c02}.gtgf-strava-history__bar small{font-size:.54rem}.gtgf-strava-history__bar b{font-size:.64rem}.gtgf-strava-history__weeknav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:20px;border:1px solid rgba(255,255,255,.1);background:#111}.gtgf-strava-history__weeknav>a,.gtgf-strava-history__weeknav>div{padding:14px 16px}.gtgf-strava-history__weeknav a{color:#fff!important;text-decoration:none;font-size:.68rem;font-weight:900}.gtgf-strava-history__weeknav a:last-child{text-align:right}.gtgf-strava-history__weeknav .is-disabled{opacity:.25;pointer-events:none}.gtgf-strava-history__weeknav div{text-align:center}.gtgf-strava-history__weeknav span{display:block;color:rgba(255,255,255,.38);font-size:.55rem;font-weight:900;letter-spacing:.1em}.gtgf-strava-history__weeknav strong{font-size:.83rem}.gtgf-strava-history__community{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-top:28px;padding:22px 24px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(135deg,rgba(255,90,0,.1),transparent 55%)}.gtgf-strava-history__community span{color:#ff5a00;font-size:.6rem;font-weight:950;letter-spacing:.1em}.gtgf-strava-history__community strong{display:block;margin-top:4px;color:#fff}.gtgf-strava-history__community p{max-width:62ch;margin:5px 0 0;color:rgba(255,255,255,.54);font-size:.82rem}.gtgf-strava-history__community>a{flex:0 0 auto;padding:13px 15px;background:#ff5a00;color:#fff!important;text-decoration:none;font-size:.66rem;font-weight:950;letter-spacing:.07em}.gtgf-strava-public-proof{display:grid;grid-template-columns:repeat(4,1fr);margin:28px 0;border:1px solid rgba(255,255,255,.12)}.gtgf-strava-public-proof div{padding:18px;border-right:1px solid rgba(255,255,255,.1)}.gtgf-strava-public-proof div:last-child{border-right:0}.gtgf-strava-public-proof span{display:block;color:rgba(255,255,255,.4);font-size:.56rem;font-weight:900;letter-spacing:.1em}.gtgf-strava-public-proof strong{display:block;margin-top:6px;color:#fff}.gtgf-strava-public-embed{margin-top:24px}.gtgf-strava-live--project .gtgf-ruben-strava-v1337{width:100%;margin:0;border-color:rgba(255,255,255,.12)}
@media(max-width:900px){.gtgf-strava-history__head{grid-template-columns:1fr}.gtgf-strava-history__trend{overflow-x:auto;grid-template-columns:repeat(12,56px)}.gtgf-strava-public-proof{grid-template-columns:1fr 1fr}.gtgf-strava-public-proof div:nth-child(2){border-right:0}.gtgf-strava-public-proof div:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.1)}}
@media(max-width:640px){.gtgf-strava-history__weeknav{grid-template-columns:1fr 1fr}.gtgf-strava-history__weeknav>div{grid-column:1/-1;grid-row:1}.gtgf-strava-history__community{align-items:flex-start;flex-direction:column}.gtgf-strava-public-proof{grid-template-columns:1fr}.gtgf-strava-public-proof div{border-right:0;border-bottom:1px solid rgba(255,255,255,.1)}}
.gtgf-strava-history__benchmarks{display:grid;grid-template-columns:repeat(4,1fr);margin:0 0 16px;border:1px solid rgba(255,255,255,.1);background:#0a0a0a}.gtgf-strava-history__benchmarks>div{display:flex;flex-direction:column;padding:17px 18px;border-right:1px solid rgba(255,255,255,.1)}.gtgf-strava-history__benchmarks>div:last-child{border-right:0}.gtgf-strava-history__benchmarks span{font-size:.56rem;font-weight:900;letter-spacing:.09em;color:rgba(255,255,255,.4)}.gtgf-strava-history__benchmarks strong{margin-top:6px;color:#fff;font-size:1.3rem}.gtgf-strava-history__benchmarks small{margin-top:3px;color:#fc4c02;font-size:.62rem}@media(max-width:760px){.gtgf-strava-history__benchmarks{grid-template-columns:1fr 1fr}.gtgf-strava-history__benchmarks>div:nth-child(2){border-right:0}.gtgf-strava-history__benchmarks>div:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.1)}}

/* v13.40 Strava disconnect confirmation */
.gtgf-strava-notice{margin:0 0 24px;padding:15px 18px;border:1px solid rgba(255,90,0,.45);background:rgba(255,90,0,.08);font-size:.9rem;line-height:1.5}.gtgf-strava-notice strong{color:var(--orange,#ff5a00)}
