/*
Theme Name: Ridgeline
Theme URI: https://joshschlotterbeck.com
Author: Josh Schlotterbeck
Description: A custom storytelling theme built for the Josh Schlotterbeck brand.
Version: 1.3.2
Text Domain: ridgeline
*/

@import url("https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&display=swap");

/* ========================================
   RIDGELINE DESIGN SYSTEM
======================================== */

:root {
    --navy-deep: #0d2535;
    --navy: #16394d;
    --blue-muted: #597381;
    --mist: #dce5e5;
    --ivory: #f5f1e8;
    --white: #ffffff;
    --amber: #c48a52;
    --amber-dark: #9d6838;
    --charcoal: #202a30;
    --border: rgba(13, 37, 53, 0.14);

	/* Brand-name aliases used by the newer Ridgeline page templates. */
	--color-trailhead-navy: #071925;
	--color-weathered-slate: #263642;
	--color-field-ivory: #f3eadc;
	--color-waypoint-amber: #cf812e;
	--color-contour-bronze: #ad7a43;
	--color-morning-mist: #dce3e7;

    --font-heading: Georgia, "Times New Roman", serif;
    --font-body: Arial, Helvetica, sans-serif;

    --container: 1180px;
    --radius: 4px;
    --shadow: 0 20px 50px rgba(13, 37, 53, 0.12);

	--font-display: "Bebas Neue", Impact, sans-serif;
	--font-editorial: "Cormorant Garamond", Georgia, serif;
	--font-navigation: "Montserrat", Arial, sans-serif;
	--font-reading: "Source Serif 4", Georgia, serif;



}

/* ========================================
   RESET AND FOUNDATIONS
======================================== */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--ivory);
    color: var(--charcoal);
    font-family: var(--font-body);
    font-size: 17px;
    line-height: 1.7;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

a {
    color: var(--navy);
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
}

a:hover,
a:focus {
    color: var(--amber-dark);
}

.site-container {
    width: min(100% - 40px, var(--container));
    margin-inline: auto;
}

.skip-link {
    position: absolute;
    top: -100px;
    left: 20px;
    z-index: 9999;
    padding: 12px 18px;
    background: var(--white);
    color: var(--navy-deep);
}

.skip-link:focus {
    top: 20px;
}

/* ========================================
   HEADER
======================================== */

.site-header {
    position: relative;
    z-index: 100;
    background: var(--navy-deep);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.social-utility-bar {
	min-height: 34px;
	border-bottom: 1px solid rgba(207, 129, 46, 0.28);
	background: #04131e;
	color: var(--ivory);
}

.social-utility-inner {
	display: flex;
	min-height: 34px;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.social-utility-label {
	margin: 0;
	color: rgba(243, 234, 220, 0.58);
	font-family: var(--font-navigation);
	font-size: 0.6rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.social-utility-links {
	display: flex;
	align-items: center;
	gap: 3px;
}

.site-header .social-utility-links a {
	display: grid;
	width: 32px;
	height: 32px;
	place-items: center;
	border-radius: 50%;
	color: rgba(243, 234, 220, 0.72);
	text-decoration: none;
	transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.site-header .social-utility-links a:hover,
.site-header .social-utility-links a:focus {
	background: rgba(207, 129, 46, 0.12);
	color: var(--amber);
	transform: translateY(-1px);
}

.site-header .social-utility-links a:focus-visible {
	outline: 2px solid var(--amber);
	outline-offset: 1px;
}

.social-utility-links svg {
	width: 15px;
	height: 15px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

.social-utility-links a:first-child svg {
	fill: currentColor;
	stroke: none;
}

.social-utility-links .social-utility-photography svg {
	width: 17px;
	height: 17px;
}

.header-inner {
    display: flex;
    min-height: 88px;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
}

.site-branding {
    flex-shrink: 0;
}

.site-title {
    color: var(--ivory);
    font-family: var(--font-heading);
    font-size: clamp(1.25rem, 2vw, 1.65rem);
    font-weight: 400;
    letter-spacing: 0.04em;
    text-decoration: none;
}

.site-title:hover,
.site-title:focus {
    color: var(--white);
}

.custom-logo {
    width: auto;
    max-width: 245px;
    max-height: 64px;
}

.bundled-logo-link {
	display: inline-block;
}

.bundled-logo {
	width: auto;
	max-width: 245px;
	max-height: 64px;
	object-fit: contain;
}

/* ================================================================
   CONNECT PAGE
   ================================================================ */

.connect-page {
	background: var(--color-field-ivory);
	color: var(--color-trailhead-navy);
}

.connect-hero {
	position: relative;
	overflow: hidden;
	min-height: 560px;
	padding: clamp(88px, 11vw, 145px) 0 clamp(95px, 9vw, 135px);
	background: var(--color-trailhead-navy);
	color: var(--color-field-ivory);
}

.connect-hero::after {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 2;
	height: 2px;
	background: linear-gradient(90deg, transparent 0%, rgba(207, 129, 46, 0.72) 50%, transparent 100%);
	content: "";
}

.connect-hero-inner {
	position: relative;
	z-index: 3;
	max-width: 850px;
}

.connect-hero h1 {
	max-width: 760px;
	margin: 10px 0 20px;
	color: var(--color-field-ivory);
	font-family: var(--font-display);
	font-size: clamp(5rem, 11vw, 9.4rem);
	font-weight: 400;
	line-height: 0.84;
	letter-spacing: 0.01em;
	text-transform: uppercase;
}

.connect-hero p:not(.eyebrow) {
	max-width: 690px;
	margin: 0;
	color: rgba(243, 234, 220, 0.78);
	font-family: var(--font-reading);
	font-size: clamp(1.08rem, 1.8vw, 1.35rem);
	line-height: 1.7;
}

.connect-scroll-link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-top: 31px;
	color: var(--color-waypoint-amber);
	font-family: var(--font-navigation);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-decoration: none;
	text-transform: uppercase;
}

.connect-scroll-link span {
	font-size: 1.1rem;
	transition: transform 180ms ease;
}

.connect-scroll-link:hover span,
.connect-scroll-link:focus span {
	transform: translateY(4px);
}

.connect-hero-contours {
	position: absolute;
	inset: 0;
	background: url('assets/images/topo-pattern.png') center / cover repeat;
	opacity: 0.1;
}

.connect-hero-mountains {
	display: none;
}

.connect-pathways {
	padding: clamp(75px, 9vw, 125px) 0;
	background:
		linear-gradient(rgba(243, 234, 220, 0.92), rgba(243, 234, 220, 0.92)),
		url('assets/images/topo-pattern.png') center / 760px auto repeat;
}

.connect-section-heading {
	max-width: 790px;
	margin-bottom: 48px;
}

.connect-section-heading h2,
.connect-form-intro h2,
.connect-booking-inner h2 {
	margin: 9px 0 0;
	font-family: var(--font-editorial);
	font-size: clamp(2.7rem, 5.6vw, 5.1rem);
	font-weight: 600;
	line-height: 0.98;
}

.connect-pathway-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid rgba(7, 25, 37, 0.18);
	border-bottom: 1px solid rgba(7, 25, 37, 0.18);
}

.connect-pathway-grid article {
	min-height: 335px;
	padding: 36px 34px 32px;
	border-right: 1px solid rgba(7, 25, 37, 0.18);
	transition: background 200ms ease, color 200ms ease, transform 200ms ease;
}

.connect-pathway-grid article:last-child {
	border-right: 0;
}

.connect-pathway-grid article:hover,
.connect-pathway-grid article:focus-within {
	background: var(--color-trailhead-navy);
	color: var(--color-field-ivory);
	transform: translateY(-7px);
}

.connect-pathway-grid article > span {
	display: block;
	margin-bottom: 53px;
	color: var(--color-contour-bronze);
	font-family: var(--font-navigation);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
}

.connect-pathway-grid h3 {
	margin: 0 0 13px;
	font-family: var(--font-display);
	font-size: clamp(2rem, 3.2vw, 2.8rem);
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.025em;
	text-transform: uppercase;
}

.connect-pathway-grid p {
	margin: 0 0 25px;
	color: rgba(7, 25, 37, 0.7);
	font-family: var(--font-reading);
	line-height: 1.65;
}

.connect-pathway-grid article:hover p,
.connect-pathway-grid article:focus-within p {
	color: rgba(243, 234, 220, 0.75);
}

.connect-pathway-grid a {
	color: var(--color-waypoint-amber);
	font-family: var(--font-navigation);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.11em;
	text-decoration: none;
	text-transform: uppercase;
}

.connect-form-section {
	padding: clamp(78px, 9vw, 125px) 0;
	background: #fffdf8;
}

.connect-form-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.78fr) minmax(520px, 1.22fr);
	gap: clamp(55px, 8vw, 115px);
	align-items: start;
}

.connect-form-intro {
	position: sticky;
	top: 125px;
}

.connect-form-intro > p:not(.eyebrow) {
	margin: 26px 0 32px;
	color: rgba(7, 25, 37, 0.68);
	font-family: var(--font-reading);
	font-size: 1.06rem;
	line-height: 1.75;
}

.connect-form-card {
	padding: clamp(30px, 5vw, 55px);
	border: 1px solid rgba(7, 25, 37, 0.14);
	background: var(--color-field-ivory);
	box-shadow: 18px 18px 0 rgba(173, 122, 67, 0.13);
}

.connect-form-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
}

.connect-form-field {
	margin-bottom: 23px;
}

.connect-form-field label {
	display: block;
	margin-bottom: 9px;
	font-family: var(--font-navigation);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.connect-form-field input,
.connect-form-field select,
.connect-form-field textarea {
	width: 100%;
	border: 1px solid rgba(7, 25, 37, 0.25);
	border-radius: 0;
	background: rgba(255, 253, 248, 0.82);
	color: var(--color-trailhead-navy);
	font-family: var(--font-reading);
	font-size: 1rem;
	line-height: 1.45;
}

.connect-form-field input,
.connect-form-field select {
	height: 53px;
	padding: 0 15px;
}

.connect-form-field textarea {
	min-height: 175px;
	padding: 14px 15px;
	resize: vertical;
}

.connect-form-field input:focus,
.connect-form-field select:focus,
.connect-form-field textarea:focus {
	border-color: var(--color-waypoint-amber);
	outline: 3px solid rgba(207, 129, 46, 0.2);
	outline-offset: 1px;
}

.connect-honeypot {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.connect-form-privacy {
	margin: 15px 0 0;
	color: rgba(7, 25, 37, 0.53);
	font-family: var(--font-navigation);
	font-size: 0.65rem;
	line-height: 1.5;
}

.connect-form-notice {
	margin-bottom: 27px;
	padding: 18px 20px;
	border-left: 4px solid;
	font-family: var(--font-reading);
}

.connect-form-notice strong {
	display: block;
	font-family: var(--font-navigation);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.connect-form-notice p,
.connect-form-notice ul {
	margin: 7px 0 0;
}

.connect-form-notice.is-success {
	border-color: #497254;
	background: rgba(73, 114, 84, 0.1);
}

.connect-form-notice.is-error {
	border-color: #9b3f38;
	background: rgba(155, 63, 56, 0.09);
}

.connect-booking-cta {
	padding: clamp(65px, 8vw, 100px) 0;
	background:
		linear-gradient(rgba(7, 25, 37, 0.93), rgba(7, 25, 37, 0.93)),
		url('assets/images/navy-texture.png') center / cover;
	color: var(--color-field-ivory);
}

.connect-booking-inner {
	display: flex;
	gap: 45px;
	align-items: center;
	justify-content: space-between;
}

.connect-booking-inner h2 {
	max-width: 800px;
	color: var(--color-field-ivory);
}

@media (max-width: 980px) {
	.connect-pathway-grid {
		grid-template-columns: 1fr;
	}

	.connect-pathway-grid article,
	.connect-pathway-grid article:last-child {
		min-height: auto;
		border-right: 0;
		border-bottom: 1px solid rgba(7, 25, 37, 0.18);
	}

	.connect-pathway-grid article:last-child {
		border-bottom: 0;
	}

	.connect-pathway-grid article > span {
		margin-bottom: 32px;
	}

	.connect-form-grid {
		grid-template-columns: 1fr;
	}

	.connect-form-intro {
		position: static;
	}
}

@media (max-width: 600px) {
	.connect-hero {
		min-height: 500px;
		padding: 70px 0 82px;
	}

	.connect-hero h1 {
		font-size: clamp(4.4rem, 22vw, 6.1rem);
	}

	.connect-form-row {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.connect-form-card {
		box-shadow: 9px 9px 0 rgba(173, 122, 67, 0.13);
	}

	.connect-booking-inner {
		align-items: flex-start;
		flex-direction: column;
	}
}

/* ========================================
   COACHING & CONSULTING PAGE
======================================== */

.cc-page {
	overflow: hidden;
	background: var(--ivory);
}

.cc-hero {
	position: relative;
	min-height: 790px;
	padding: clamp(110px, 12vw, 185px) 0 220px;
	background:
		linear-gradient(105deg, rgba(7, 25, 37, 0.99) 0%, rgba(13, 37, 53, 0.95) 58%, rgba(22, 57, 77, 0.88) 100%),
		url("assets/images/navy-texture.png") center / cover;
	color: var(--ivory);
}

.cc-hero-contours,
.cc-closing-contours {
	position: absolute;
	inset: 0;
	background: url("assets/images/topo-pattern.png") right -140px center / 680px auto no-repeat;
	opacity: 0.08;
	pointer-events: none;
}

.cc-hero-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 240px;
	gap: clamp(55px, 9vw, 130px);
	align-items: center;
}

.cc-hero-copy {
	max-width: 930px;
}

.cc-hero h1 {
	max-width: 970px;
	margin: 17px 0 31px;
	color: var(--ivory);
	font-family: var(--font-editorial);
	font-size: clamp(4.25rem, 7.2vw, 7.6rem);
	font-weight: 500;
	letter-spacing: -0.055em;
	line-height: 0.88;
}

.cc-hero-lead {
	max-width: 720px;
	margin: 0 0 39px;
	color: rgba(243, 234, 220, 0.78);
	font-family: var(--font-reading);
	font-size: clamp(1.1rem, 1.55vw, 1.35rem);
	line-height: 1.72;
}

.cc-hero-note {
	display: grid;
	border-top: 1px solid rgba(243, 234, 220, 0.24);
	border-bottom: 1px solid rgba(243, 234, 220, 0.24);
}

.cc-hero-note span {
	padding: 22px 4px;
	border-bottom: 1px solid rgba(243, 234, 220, 0.14);
	color: var(--ivory);
	font-family: var(--font-navigation);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.25em;
	text-align: center;
	text-transform: uppercase;
}

.cc-hero-note span:last-child {
	border-bottom: 0;
}

.cc-hero-note span::before {
	display: inline-block;
	width: 5px;
	height: 5px;
	margin-right: 13px;
	background: var(--amber);
	content: "";
	vertical-align: 2px;
}

.cc-hero-ridge {
	position: absolute;
	right: 0;
	bottom: -1px;
	left: 0;
	z-index: 1;
	height: 270px;
	background: url("assets/images/mountain-range-transition.png") center bottom / 100% 100% no-repeat;
	pointer-events: none;
}

.cc-introduction {
	padding: clamp(95px, 10vw, 160px) 0;
	background:
		linear-gradient(rgba(245, 241, 232, 0.96), rgba(245, 241, 232, 0.99)),
		url("assets/images/topo-pattern.png") left -220px center / 640px auto no-repeat;
}

.cc-introduction-grid,
.cc-fit-grid,
.cc-experience-grid {
	display: grid;
	grid-template-columns: minmax(290px, 0.82fr) minmax(0, 1.18fr);
	gap: clamp(60px, 9vw, 140px);
	align-items: start;
}

.cc-introduction h2,
.cc-fit-list h2,
.cc-experience h2,
.cc-closing h2,
.cc-section-heading h2 {
	margin: 14px 0 0;
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(2.9rem, 4.3vw, 4.65rem);
	font-weight: 500;
	letter-spacing: -0.047em;
	line-height: 0.99;
}

.cc-introduction-copy {
	max-width: 730px;
	color: rgba(32, 42, 48, 0.82);
	font-family: var(--font-reading);
	font-size: clamp(1.04rem, 1.28vw, 1.18rem);
	line-height: 1.84;
}

.cc-introduction-copy p {
	margin: 0 0 24px;
}

.cc-introduction-copy .cc-lead {
	color: var(--navy-deep);
	font-size: clamp(1.25rem, 1.7vw, 1.52rem);
	line-height: 1.6;
}

.cc-editor-content {
	margin-top: 38px;
	padding-top: 30px;
	border-top: 1px solid rgba(7, 25, 37, 0.16);
}

.cc-paths {
	padding: clamp(95px, 10vw, 155px) 0;
	background: #e3e7e5;
}

.cc-section-heading {
	max-width: 900px;
	margin-bottom: clamp(50px, 7vw, 84px);
}

.cc-path-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(20px, 3vw, 38px);
}

.cc-path-card {
	position: relative;
	display: flex;
	min-height: 720px;
	padding: clamp(36px, 5vw, 68px);
	border: 1px solid rgba(7, 25, 37, 0.15);
	flex-direction: column;
}

.cc-path-card-coaching {
	background: rgba(245, 241, 232, 0.88);
	color: var(--charcoal);
}

.cc-path-card-consulting {
	background:
		linear-gradient(rgba(7, 25, 37, 0.97), rgba(7, 25, 37, 0.97)),
		url("assets/images/topo-pattern.png") center / 780px auto repeat;
	color: var(--ivory);
	box-shadow: 0 30px 70px rgba(7, 25, 37, 0.18);
}

.cc-path-number,
.cc-process-grid article > span,
.cc-fit-list li > span {
	color: var(--amber-dark);
	font-family: var(--font-navigation);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.17em;
}

.cc-path-card-consulting .cc-path-number {
	color: var(--amber);
}

.cc-path-label {
	margin: 64px 0 6px;
	color: var(--blue-muted);
	font-family: var(--font-navigation);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.cc-path-card-consulting .cc-path-label {
	color: rgba(243, 234, 220, 0.58);
}

.cc-path-card h3 {
	margin: 0 0 24px;
	color: var(--navy-deep);
	font-family: var(--font-display);
	font-size: clamp(3.8rem, 6vw, 6.2rem);
	font-weight: 400;
	letter-spacing: 0.01em;
	line-height: 0.92;
	text-transform: uppercase;
}

.cc-path-card-consulting h3 {
	color: var(--ivory);
}

.cc-path-summary {
	margin: 0 0 34px;
	font-family: var(--font-reading);
	font-size: clamp(1.05rem, 1.35vw, 1.2rem);
	line-height: 1.7;
}

.cc-path-card h4 {
	margin: 0 0 13px;
	font-family: var(--font-navigation);
	font-size: 0.7rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.cc-path-card ul {
	margin: 0 0 38px;
	padding: 0;
	list-style: none;
}

.cc-path-card li {
	position: relative;
	padding: 12px 0 12px 22px;
	border-bottom: 1px solid rgba(7, 25, 37, 0.13);
	font-family: var(--font-reading);
	font-size: 0.98rem;
	line-height: 1.45;
}

.cc-path-card-consulting li {
	border-color: rgba(243, 234, 220, 0.13);
}

.cc-path-card li::before {
	position: absolute;
	top: 20px;
	left: 0;
	width: 7px;
	height: 7px;
	background: var(--amber);
	content: "";
}

.cc-path-card > a {
	display: inline-flex;
	gap: 11px;
	align-self: flex-start;
	margin-top: auto;
	padding-bottom: 6px;
	border-bottom: 2px solid var(--amber);
	color: var(--navy-deep);
	font-family: var(--font-navigation);
	font-size: 0.67rem;
	font-weight: 700;
	letter-spacing: 0.11em;
	text-decoration: none;
	text-transform: uppercase;
}

.cc-path-card-consulting > a {
	color: var(--ivory);
}

.cc-path-card > a:hover,
.cc-path-card > a:focus {
	color: var(--amber-dark);
}

.cc-path-card-consulting > a:hover,
.cc-path-card-consulting > a:focus {
	color: var(--amber);
}

.cc-fit {
	padding: clamp(95px, 10vw, 160px) 0;
	background: var(--ivory);
}

.cc-fit-statement blockquote {
	margin: 20px 0 0;
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(2.4rem, 3.7vw, 4rem);
	font-style: italic;
	font-weight: 500;
	letter-spacing: -0.035em;
	line-height: 1.08;
}

.cc-fit-list h2 {
	max-width: 650px;
	font-size: clamp(2.3rem, 3.4vw, 3.45rem);
}

.cc-fit-list ul {
	margin: 38px 0 0;
	padding: 0;
	border-top: 1px solid rgba(7, 25, 37, 0.16);
	list-style: none;
}

.cc-fit-list li {
	display: grid;
	grid-template-columns: 45px 1fr;
	gap: 18px;
	align-items: center;
	padding: 21px 0;
	border-bottom: 1px solid rgba(7, 25, 37, 0.16);
}

.cc-fit-list p {
	margin: 0;
	color: var(--navy-deep);
	font-family: var(--font-reading);
	font-size: clamp(1.05rem, 1.35vw, 1.22rem);
}

.cc-process {
	padding: clamp(95px, 10vw, 155px) 0;
	background:
		linear-gradient(rgba(7, 25, 37, 0.975), rgba(7, 25, 37, 0.975)),
		url("assets/images/navy-texture.png") center / cover;
	color: var(--ivory);
}

.cc-section-heading-light h2 {
	color: var(--ivory);
}

.cc-process-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid rgba(243, 234, 220, 0.18);
	border-bottom: 1px solid rgba(243, 234, 220, 0.18);
}

.cc-process-grid article {
	min-height: 330px;
	padding: 34px clamp(22px, 3vw, 38px);
	border-right: 1px solid rgba(243, 234, 220, 0.18);
}

.cc-process-grid article:first-child {
	padding-left: 0;
}

.cc-process-grid article:last-child {
	padding-right: 0;
	border-right: 0;
}

.cc-process-grid article > span {
	color: var(--amber);
}

.cc-process-grid h3 {
	margin: 80px 0 14px;
	color: var(--ivory);
	font-family: var(--font-display);
	font-size: clamp(2.25rem, 3vw, 3.2rem);
	font-weight: 400;
	letter-spacing: 0.04em;
	line-height: 1;
	text-transform: uppercase;
}

.cc-process-grid p {
	margin: 0;
	color: rgba(243, 234, 220, 0.64);
	font-family: var(--font-reading);
	font-size: 0.95rem;
	line-height: 1.65;
}

.cc-experience {
	padding: clamp(95px, 10vw, 160px) 0;
	background: var(--mist);
}

.cc-experience-copy p:not(.eyebrow) {
	max-width: 670px;
	margin: 25px 0 0;
	color: rgba(32, 42, 48, 0.78);
	font-family: var(--font-reading);
	font-size: 1.05rem;
	line-height: 1.78;
}

.cc-experience-stats {
	border-top: 1px solid rgba(7, 25, 37, 0.2);
}

.cc-experience-stats p {
	display: grid;
	grid-template-columns: 130px 1fr;
	gap: 28px;
	align-items: center;
	margin: 0;
	padding: 25px 0;
	border-bottom: 1px solid rgba(7, 25, 37, 0.2);
}

.cc-experience-stats strong {
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: 2.35rem;
	font-weight: 600;
	line-height: 1;
}

.cc-experience-stats span {
	color: rgba(32, 42, 48, 0.72);
	font-family: var(--font-reading);
	font-size: 0.96rem;
	line-height: 1.5;
}

.cc-engagements {
	padding: clamp(95px, 10vw, 155px) 0;
	background: var(--ivory);
}

.cc-engagement-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.cc-engagement-grid article {
	min-height: 335px;
	padding: clamp(28px, 3vw, 42px);
	border: 1px solid rgba(7, 25, 37, 0.16);
	background: rgba(255, 255, 255, 0.28);
}

.cc-engagement-grid article > span {
	color: var(--amber-dark);
	font-family: var(--font-navigation);
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.cc-engagement-grid h3 {
	margin: 58px 0 18px;
	color: var(--navy-deep);
	font-family: var(--font-display);
	font-size: clamp(2rem, 2.8vw, 3rem);
	font-weight: 400;
	letter-spacing: 0.025em;
	line-height: 0.96;
	text-transform: uppercase;
}

.cc-engagement-grid p {
	margin: 0;
	color: rgba(32, 42, 48, 0.75);
	font-family: var(--font-reading);
	font-size: 0.98rem;
	line-height: 1.65;
}

.cc-proposal-note {
	max-width: 780px;
	margin: 34px 0 0 auto;
	padding-left: 22px;
	border-left: 3px solid var(--amber);
	color: rgba(32, 42, 48, 0.7);
	font-family: var(--font-reading);
	font-size: 0.98rem;
	font-style: italic;
	line-height: 1.65;
}

.cc-closing {
	position: relative;
	padding: clamp(105px, 12vw, 185px) 0;
	background:
		linear-gradient(105deg, rgba(7, 25, 37, 0.98), rgba(13, 37, 53, 0.92)),
		url("assets/images/mountain-range-hero.png") center 58% / cover no-repeat;
	color: var(--ivory);
}

.cc-closing-contours {
	background-position: left -180px center;
}

.cc-closing-inner {
	position: relative;
	z-index: 2;
	max-width: 930px;
	text-align: center;
}

.cc-closing h2 {
	margin-right: auto;
	margin-left: auto;
	color: var(--ivory);
	font-size: clamp(3.2rem, 5.5vw, 5.8rem);
}

.cc-closing-inner > p:not(.eyebrow) {
	max-width: 690px;
	margin: 28px auto 37px;
	color: rgba(243, 234, 220, 0.74);
	font-family: var(--font-reading);
	font-size: clamp(1.04rem, 1.35vw, 1.2rem);
	line-height: 1.75;
}

@media (max-width: 980px) {
	.cc-hero-grid {
		grid-template-columns: 1fr;
	}

	.cc-hero-note {
		grid-template-columns: repeat(3, 1fr);
		max-width: 640px;
	}

	.cc-hero-note span {
		border-right: 1px solid rgba(243, 234, 220, 0.14);
		border-bottom: 0;
	}

	.cc-hero-note span:last-child {
		border-right: 0;
	}

	.cc-introduction-grid,
	.cc-fit-grid,
	.cc-experience-grid {
		grid-template-columns: 1fr;
	}

	.cc-path-card {
		min-height: 680px;
	}

	.cc-process-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.cc-process-grid article:nth-child(2) {
		border-right: 0;
	}

	.cc-process-grid article:nth-child(-n + 2) {
		border-bottom: 1px solid rgba(243, 234, 220, 0.18);
	}

	.cc-process-grid article:nth-child(3) {
		padding-left: 0;
	}
}

@media (max-width: 720px) {
	.cc-hero {
		min-height: 720px;
		padding-top: 95px;
	}

	.cc-hero h1 {
		font-size: clamp(3.7rem, 15vw, 5.6rem);
	}

	.cc-path-grid,
	.cc-engagement-grid {
		grid-template-columns: 1fr;
	}

	.cc-path-card {
		min-height: auto;
	}

	.cc-path-card > a {
		margin-top: 25px;
	}

	.cc-process-grid {
		grid-template-columns: 1fr;
	}

	.cc-process-grid article,
	.cc-process-grid article:first-child,
	.cc-process-grid article:last-child,
	.cc-process-grid article:nth-child(3) {
		min-height: 250px;
		padding: 30px 0;
		border-right: 0;
		border-bottom: 1px solid rgba(243, 234, 220, 0.18);
	}

	.cc-process-grid article:last-child {
		border-bottom: 0;
	}

	.cc-process-grid h3 {
		margin-top: 45px;
	}

	.cc-engagement-grid article {
		min-height: 280px;
	}
}

@media (max-width: 520px) {
	.cc-hero-note {
		grid-template-columns: 1fr;
	}

	.cc-hero-note span {
		border-right: 0;
		border-bottom: 1px solid rgba(243, 234, 220, 0.14);
	}

	.cc-experience-stats p {
		grid-template-columns: 95px 1fr;
		gap: 18px;
	}

	.cc-experience-stats strong {
		font-size: 1.9rem;
	}
}

/* ================================================================
   BOOK NOW PAGE
   ================================================================ */

.booking-page {
	background: var(--color-field-ivory);
	color: var(--color-trailhead-navy);
}

.booking-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(105px, 13vw, 185px) 0 clamp(115px, 13vw, 180px);
	background:
		linear-gradient(112deg, rgba(7, 25, 37, 0.99) 8%, rgba(7, 25, 37, 0.91) 70%, rgba(7, 25, 37, 0.97) 100%),
		url('assets/images/navy-texture.png') center / cover;
	color: var(--color-field-ivory);
}

.booking-hero::after {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, rgba(207, 129, 46, 0.75), transparent);
	content: "";
}

.booking-hero-contours {
	position: absolute;
	inset: -20%;
	background: url('assets/images/topo-pattern.png') center / 760px auto repeat;
	opacity: 0.09;
	transform: rotate(-4deg);
}

.booking-hero-inner {
	position: relative;
	z-index: 1;
	max-width: 980px;
}

.booking-hero h1 {
	max-width: 940px;
	margin: 14px 0 30px;
	color: var(--color-field-ivory);
	font-family: var(--font-display);
	font-size: clamp(5.2rem, 10vw, 9.2rem);
	font-weight: 400;
	letter-spacing: 0.005em;
	line-height: 0.86;
	text-transform: uppercase;
}

.booking-hero p:not(.eyebrow) {
	max-width: 720px;
	margin: 0 0 35px;
	color: rgba(243, 234, 220, 0.78);
	font-family: var(--font-reading);
	font-size: clamp(1.08rem, 1.7vw, 1.3rem);
	line-height: 1.7;
}

.booking-services {
	padding: clamp(90px, 10vw, 150px) 0;
	background:
		linear-gradient(rgba(243, 234, 220, 0.95), rgba(243, 234, 220, 0.95)),
		url('assets/images/topo-pattern.png') center / 820px auto repeat;
}

.booking-section-heading {
	max-width: 820px;
	margin-bottom: clamp(50px, 6vw, 78px);
}

.booking-section-heading h2,
.booking-process-heading h2,
.booking-form-intro h2 {
	margin: 13px 0 20px;
	color: var(--color-trailhead-navy);
	font-family: var(--font-editorial);
	font-size: clamp(3rem, 5vw, 4.5rem);
	font-weight: 500;
	letter-spacing: -0.04em;
	line-height: 1.02;
}

.booking-section-heading > p:not(.eyebrow),
.booking-form-intro > p:not(.eyebrow) {
	max-width: 690px;
	color: rgba(32, 42, 48, 0.74);
	font-family: var(--font-reading);
	font-size: 1.06rem;
	line-height: 1.72;
}

.booking-service-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
}

.booking-service-grid article {
	position: relative;
	display: flex;
	min-height: 430px;
	padding: 31px 28px 30px;
	border: 1px solid rgba(7, 25, 37, 0.15);
	background: rgba(250, 247, 240, 0.86);
	flex-direction: column;
	transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.booking-service-grid article:hover,
.booking-service-grid article:focus-within {
	border-color: var(--color-waypoint-amber);
	box-shadow: 0 20px 45px rgba(7, 25, 37, 0.1);
	transform: translateY(-7px);
}

.booking-service-number {
	color: var(--color-waypoint-amber);
	font-family: var(--font-navigation);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.16em;
}

.booking-service-grid h3 {
	margin: 50px 0 15px;
	color: var(--color-trailhead-navy);
	font-family: var(--font-display);
	font-size: clamp(2rem, 2.7vw, 2.8rem);
	font-weight: 400;
	letter-spacing: 0.025em;
	line-height: 0.95;
	text-transform: uppercase;
}

.booking-service-grid article > p:not(.booking-price) {
	margin: 0 0 25px;
	color: rgba(32, 42, 48, 0.72);
	font-family: var(--font-reading);
	font-size: 0.96rem;
	line-height: 1.62;
}

.booking-price {
	margin: auto 0 25px;
	color: var(--color-trailhead-navy);
	font-family: var(--font-editorial);
	font-size: 2.1rem;
	font-weight: 600;
	line-height: 1;
}

.booking-price small {
	display: block;
	margin-bottom: 7px;
	color: rgba(32, 42, 48, 0.53);
	font-family: var(--font-navigation);
	font-size: 0.64rem;
	font-weight: 700;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.booking-price-custom {
	font-size: 1.68rem;
}

.booking-service-grid a {
	align-self: flex-start;
	padding-bottom: 4px;
	border-bottom: 1px solid var(--color-waypoint-amber);
	color: var(--color-trailhead-navy);
	font-family: var(--font-navigation);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-decoration: none;
	text-transform: uppercase;
}

.booking-process {
	padding: clamp(90px, 10vw, 150px) 0;
	background: #e5e8e5;
}

.booking-process-grid {
	display: grid;
	grid-template-columns: minmax(300px, 0.82fr) minmax(0, 1.18fr);
	gap: clamp(65px, 10vw, 145px);
}

.booking-process-heading {
	align-self: start;
	position: sticky;
	top: 130px;
}

.booking-process-steps {
	border-top: 1px solid rgba(7, 25, 37, 0.16);
}

.booking-process-steps article {
	display: grid;
	grid-template-columns: 48px 1fr;
	gap: 22px;
	padding: 29px 0 31px;
	border-bottom: 1px solid rgba(7, 25, 37, 0.16);
}

.booking-process-steps article > span {
	padding-top: 5px;
	color: var(--color-waypoint-amber);
	font-family: var(--font-navigation);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.13em;
}

.booking-process-steps h3 {
	margin: 0 0 8px;
	color: var(--color-trailhead-navy);
	font-family: var(--font-display);
	font-size: 1.85rem;
	font-weight: 400;
	letter-spacing: 0.035em;
	text-transform: uppercase;
}

.booking-process-steps p {
	margin: 0;
	color: rgba(32, 42, 48, 0.7);
	font-family: var(--font-reading);
	font-size: 1rem;
	line-height: 1.65;
}

.booking-form-section {
	padding: clamp(90px, 10vw, 150px) 0;
	background: var(--color-trailhead-navy);
	color: var(--color-field-ivory);
}

.booking-form-grid {
	display: grid;
	grid-template-columns: minmax(280px, 0.72fr) minmax(0, 1.28fr);
	gap: clamp(60px, 9vw, 125px);
	align-items: start;
}

.booking-form-intro {
	position: sticky;
	top: 130px;
}

.booking-form-intro h2 {
	color: var(--color-field-ivory);
}

.booking-form-intro > p:not(.eyebrow) {
	color: rgba(243, 234, 220, 0.72);
}

.booking-response-note {
	margin-top: 35px;
	padding-top: 25px;
	border-top: 1px solid rgba(243, 234, 220, 0.16);
	font-style: italic;
}

.booking-form-card {
	padding: clamp(30px, 4.5vw, 55px);
	background: var(--color-field-ivory);
	box-shadow: 14px 14px 0 rgba(207, 129, 46, 0.16);
}

.booking-form-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
}

.booking-form-field {
	margin-bottom: 22px;
}

.booking-form-field label {
	display: block;
	margin-bottom: 8px;
	color: var(--color-trailhead-navy);
	font-family: var(--font-navigation);
	font-size: 0.69rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.booking-form-field input,
.booking-form-field select,
.booking-form-field textarea {
	width: 100%;
	border: 1px solid rgba(7, 25, 37, 0.23);
	border-radius: 0;
	background: rgba(255, 255, 255, 0.45);
	color: var(--color-trailhead-navy);
	font-family: var(--font-reading);
	font-size: 1rem;
}

.booking-form-field input,
.booking-form-field select {
	height: 52px;
	padding: 0 14px;
}

.booking-form-field textarea {
	min-height: 175px;
	padding: 14px;
	resize: vertical;
}

.booking-form-field input:focus,
.booking-form-field select:focus,
.booking-form-field textarea:focus {
	border-color: var(--color-waypoint-amber);
	box-shadow: 0 0 0 3px rgba(207, 129, 46, 0.13);
	outline: 0;
}

.booking-honeypot {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.booking-form-privacy {
	margin: 14px 0 0;
	color: rgba(32, 42, 48, 0.5);
	font-family: var(--font-navigation);
	font-size: 0.64rem;
	letter-spacing: 0.04em;
}

.booking-form-notice {
	margin-bottom: 28px;
	padding: 18px 20px;
	border-left: 4px solid;
	font-family: var(--font-reading);
}

.booking-form-notice strong {
	display: block;
	margin-bottom: 5px;
	color: var(--color-trailhead-navy);
	font-family: var(--font-navigation);
	font-size: 0.76rem;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.booking-form-notice p,
.booking-form-notice ul {
	margin: 0;
}

.booking-form-notice.is-success {
	border-color: #4f755d;
	background: rgba(79, 117, 93, 0.1);
}

.booking-form-notice.is-error {
	border-color: #9a4d43;
	background: rgba(154, 77, 67, 0.1);
}

@media (max-width: 1080px) {
	.booking-service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.booking-service-grid article {
		min-height: 390px;
	}
}

@media (max-width: 820px) {
	.booking-process-grid,
	.booking-form-grid {
		grid-template-columns: 1fr;
	}

	.booking-process-heading,
	.booking-form-intro {
		position: static;
	}
}

@media (max-width: 600px) {
	.booking-hero {
		padding: 78px 0 92px;
	}

	.booking-hero h1 {
		font-size: clamp(4rem, 20vw, 5.8rem);
	}

	.booking-service-grid,
	.booking-form-row {
		grid-template-columns: 1fr;
	}

	.booking-service-grid article {
		min-height: 365px;
	}

	.booking-form-card {
		box-shadow: 9px 9px 0 rgba(207, 129, 46, 0.14);
	}
}

.custom-logo-link {
    display: block;
    line-height: 0;
}

.primary-navigation {
    margin-left: auto;
}

.primary-navigation ul {
    display: flex;
    align-items: center;
    gap: 26px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.primary-navigation a {
    color: var(--mist);
    font-size: 0.84rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-decoration: none;
    text-transform: uppercase;
}

.primary-navigation a:hover,
.primary-navigation a:focus,
.primary-navigation .current-menu-item > a {
    color: var(--amber);
}

.header-button {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 10px 20px;
    border: 1px solid var(--amber);
    border-radius: var(--radius);
    color: var(--ivory);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-decoration: none;
    text-transform: uppercase;
}

.header-button:hover,
.header-button:focus {
    background: var(--amber);
    color: var(--navy-deep);
}

/* Header search */

.header-search {
    position: relative;
    flex: 0 0 auto;
    margin-inline: -12px;
}

.header-search summary {
    display: grid;
    width: 44px;
    height: 44px;
    padding: 0;
    place-items: center;
    background: transparent;
    border: 1px solid rgba(220, 229, 229, 0.28);
    border-radius: 50%;
    color: var(--mist);
    cursor: pointer;
    list-style: none;
    transition:
        background-color 160ms ease,
        border-color 160ms ease,
        color 160ms ease,
        transform 160ms ease;
}

.header-search summary::-webkit-details-marker {
    display: none;
}

.header-search summary:hover,
.header-search summary:focus-visible,
.header-search[open] summary {
    background: var(--amber);
    border-color: var(--amber);
    color: var(--navy-deep);
    outline: none;
    transform: translateY(-1px);
}

.header-search summary:focus-visible {
    box-shadow: 0 0 0 3px rgba(207, 129, 46, 0.28);
}

.header-search summary svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-width: 1.8;
}

.header-search-panel {
    position: absolute;
    z-index: 300;
    top: calc(100% + 23px);
    right: -112px;
    width: min(420px, calc(100vw - 28px));
    padding: 24px;
    background: var(--navy-deep);
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-top: 3px solid var(--amber);
    border-radius: 0 0 var(--radius) var(--radius);
    box-shadow: 0 24px 55px rgba(0, 0, 0, 0.34);
}

.header-search-panel::before {
    position: absolute;
    top: -10px;
    right: 122px;
    width: 16px;
    height: 16px;
    background: var(--amber);
    content: "";
    transform: rotate(45deg);
}

.header-search-label {
    position: relative;
    display: block;
    margin-bottom: 11px;
    color: var(--ivory);
    font-family: var(--font-display);
    font-size: 1.2rem;
    font-weight: 400;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
}

.header-search-row {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
}

.header-search-row input {
    min-width: 0;
    min-height: 46px;
    padding: 10px 14px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: var(--radius);
    color: var(--white);
    font: inherit;
}

.header-search-row input::placeholder {
    color: rgba(220, 229, 229, 0.65);
}

.header-search-row input:focus {
    border-color: var(--amber);
    box-shadow: 0 0 0 3px rgba(207, 129, 46, 0.2);
    outline: none;
}

.header-search-row button {
    min-height: 46px;
    padding: 10px 17px;
    background: var(--amber);
    border: 1px solid var(--amber);
    border-radius: var(--radius);
    color: var(--navy-deep);
    cursor: pointer;
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 400;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.header-search-row button:hover,
.header-search-row button:focus-visible {
    background: var(--ivory);
    border-color: var(--ivory);
    outline: none;
}

/* ========================================
   PAGE INTRODUCTION
======================================== */

.page-introduction {
    position: relative;
    overflow: hidden;
    padding: clamp(90px, 13vw, 180px) 0;
    background:
        linear-gradient(
            135deg,
            rgba(13, 37, 53, 0.98),
            rgba(22, 57, 77, 0.9)
        );
    color: var(--ivory);
}

.page-introduction::after {
    position: absolute;
    right: -10%;
    bottom: -100px;
    width: 70%;
    height: 250px;
    background: rgba(220, 229, 229, 0.06);
    clip-path: polygon(0 100%, 30% 35%, 48% 70%, 68% 15%, 100% 100%);
    content: "";
}

.page-introduction .site-container {
    position: relative;
    z-index: 2;
}

.eyebrow {
    margin: 0 0 18px;
    color: var(--amber);
    font-size: 0.77rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.page-introduction h1 {
    max-width: 850px;
    margin: 0;
    font-family: var(--font-heading);
    font-size: clamp(2.8rem, 7vw, 6.4rem);
    font-weight: 400;
    letter-spacing: -0.04em;
    line-height: 0.98;
}

.introduction-text {
    max-width: 680px;
    margin: 30px 0 0;
    color: var(--mist);
    font-size: clamp(1.05rem, 2vw, 1.3rem);
}

/* ========================================
   CONTENT AND POSTS
======================================== */

.content-section {
    padding: 90px 0 110px;
}

.post-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 36px;
}

.post-card {
    overflow: hidden;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: 0 12px 35px rgba(13, 37, 53, 0.07);
    transition:
        transform 180ms ease,
        box-shadow 180ms ease;
}

.post-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow);
}

.post-thumbnail {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.post-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 400ms ease;
}

.post-card:hover .post-thumbnail img {
    transform: scale(1.03);
}

.post-card-content {
    padding: 34px;
}

.post-date {
    margin: 0 0 10px;
    color: var(--blue-muted);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.post-title {
    margin: 0 0 18px;
    font-family: var(--font-heading);
    font-size: clamp(1.65rem, 3vw, 2.25rem);
    font-weight: 400;
    line-height: 1.15;
}

.post-title a {
    color: var(--navy-deep);
    text-decoration: none;
}

.post-excerpt p {
    margin-top: 0;
}

.read-more {
    display: inline-block;
    margin-top: 8px;
    color: var(--amber-dark);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-decoration: none;
    text-transform: uppercase;
}

.read-more::after {
    content: " →";
}

.no-content {
    padding: 70px 30px;
    text-align: center;
}

.no-content h2 {
    margin-top: 0;
    color: var(--navy-deep);
    font-family: var(--font-heading);
    font-size: 2.5rem;
    font-weight: 400;
}

.navigation.pagination {
    margin-top: 60px;
    text-align: center;
}

.page-numbers {
    display: inline-flex;
    min-width: 42px;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    margin: 3px;
    border: 1px solid var(--border);
    text-decoration: none;
}

.page-numbers.current {
    background: var(--navy-deep);
    color: var(--ivory);
}

/* ========================================
   FOOTER
======================================== */

.site-footer {
    padding: 72px 0 38px;
    background: var(--navy-deep);
    color: var(--mist);
}

.footer-inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 45px;
    align-items: start;
}

.footer-title {
    color: var(--ivory);
    font-family: var(--font-heading);
    font-size: 1.8rem;
    text-decoration: none;
}

.footer-branding p {
    max-width: 480px;
    margin: 12px 0 0;
    color: var(--mist);
}

.footer-menu {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.footer-menu a {
    color: var(--mist);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
}

.footer-menu a:hover,
.footer-menu a:focus {
    color: var(--amber);
}

.copyright {
    grid-column: 1 / -1;
    margin: 25px 0 0;
    padding-top: 25px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    color: rgba(220, 229, 229, 0.7);
    font-size: 0.78rem;
}

/* ========================================
   RESPONSIVE DESIGN
======================================== */

@media (max-width: 900px) {
    .header-inner {
        flex-wrap: wrap;
        padding: 20px 0;
    }

    .primary-navigation {
        width: 100%;
        order: 3;
    }

    .primary-navigation ul {
        flex-wrap: wrap;
        gap: 12px 20px;
    }

    .post-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .site-container {
        width: min(100% - 28px, var(--container));
    }

    .header-inner {
        gap: 14px;
    }

    .site-branding {
        margin-right: auto;
    }

    .custom-logo {
        max-width: 165px;
    }

    .header-search {
        margin-inline: 0;
    }

    .header-search-panel {
        right: -120px;
        padding: 20px;
    }

    .header-search-panel::before {
        right: 128px;
    }

    .header-search-row {
        grid-template-columns: 1fr;
    }

    .header-button {
        padding: 9px 13px;
        font-size: 0.7rem;
    }

    .page-introduction {
        padding: 80px 0 100px;
    }

    .content-section {
        padding: 55px 0 75px;
    }

    .post-card-content {
        padding: 26px;
    }

    .footer-inner {
        grid-template-columns: 1fr;
    }

    .copyright {
        grid-column: auto;
    }
}

/* ========================================
   RIDGELINE VISUAL ASSETS
======================================== */

.page-introduction {
    min-height: 650px;
    padding-bottom: clamp(220px, 28vw, 350px);
    background-image:
        linear-gradient(
            135deg,
            rgba(13, 37, 53, 0.95),
            rgba(22, 57, 77, 0.84)
        ),
        url("assets/images/navy-texture.png");
    background-position: center;
    background-size: cover;
}

.page-introduction::before {
    position: absolute;
    z-index: 0;
    top: 0;
    right: 0;
    width: min(600px, 55vw);
    height: min(600px, 55vw);
    background-image: url("assets/images/topo-frame.png");
    background-position: top right;
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
    opacity: 0.16;
    pointer-events: none;
}

.page-introduction::after {
    position: absolute;
    z-index: 1;
    right: 0;
    bottom: -2px;
    left: 0;
    width: 100%;
    height: clamp(190px, 29vw, 390px);
    background-color: transparent;
    background-image: url("assets/images/mountain-range-hero.png");
    background-position: center bottom;
    background-repeat: no-repeat;
    background-size: 100% auto;
    clip-path: none;
    content: "";
    opacity: 1;
    pointer-events: none;
}

.page-introduction .site-container {
    position: relative;
    z-index: 2;
}

.site-footer {
    background-image:
        linear-gradient(
            rgba(13, 37, 53, 0.94),
            rgba(13, 37, 53, 0.98)
        ),
        url("assets/images/navy-texture.png");
    background-position: center;
    background-size: cover;
}

@media (max-width: 640px) {
    .page-introduction {
        min-height: 600px;
        padding-bottom: 190px;
    }

    .page-introduction::before {
        width: 90vw;
        height: 90vw;
        opacity: 0.12;
    }

    .page-introduction::after {
        height: 220px;
        background-size: auto 100%;
    }
}
/* ========================================
   HOMEPAGE
======================================== */

.home-hero .site-container {
    max-width: 1180px;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-top: 38px;
}

.button {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    border: 1px solid transparent;
    border-radius: var(--radius);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.11em;
    text-decoration: none;
    text-transform: uppercase;
    transition:
        background-color 180ms ease,
        border-color 180ms ease,
        color 180ms ease,
        transform 180ms ease;
}

.button:hover,
.button:focus {
    transform: translateY(-2px);
}

.button-primary {
    background: var(--amber);
    color: var(--navy-deep);
}

.button-primary:hover,
.button-primary:focus {
    background: var(--ivory);
    color: var(--navy-deep);
}

.button-secondary {
    border-color: rgba(245, 241, 232, 0.65);
    color: var(--ivory);
}

.button-secondary:hover,
.button-secondary:focus {
    border-color: var(--ivory);
    background: rgba(245, 241, 232, 0.1);
    color: var(--white);
}

/* Introduction */

.home-introduction {
    padding: 110px 0;
    background: var(--ivory);
}

.narrow-container {
    max-width: 850px;
}

.home-introduction h2,
.section-heading h2,
.home-closing h2 {
    margin: 0;
    color: var(--navy-deep);
    font-family: var(--font-heading);
    font-size: clamp(2.3rem, 5vw, 4.25rem);
    font-weight: 400;
    letter-spacing: -0.035em;
    line-height: 1.05;
}

.home-introduction p:last-child {
    margin: 30px 0 0;
    color: var(--blue-muted);
    font-size: clamp(1.05rem, 2vw, 1.25rem);
}

/* Brand pathways */

.brand-pathways {
    position: relative;
    overflow: hidden;
    padding: 110px 0;
    background: #ebe6dc;
}

.brand-pathways::before {
    position: absolute;
    top: -120px;
    right: -120px;
    width: 600px;
    height: 600px;
    background-image: url("assets/images/topo-pattern.png");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
    opacity: 0.07;
    pointer-events: none;
}

.brand-pathways .site-container {
    position: relative;
    z-index: 1;
}

.section-heading {
    max-width: 760px;
    margin-bottom: 55px;
}

.pathway-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.pathway-card {
    min-height: 340px;
    padding: 35px;
    background: rgba(255, 255, 255, 0.75);
    border-top: 3px solid var(--amber);
    box-shadow: 0 12px 35px rgba(13, 37, 53, 0.05);
    transition:
        transform 180ms ease,
        box-shadow 180ms ease;
}

.pathway-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow);
}

.pathway-number {
    margin: 0 0 50px;
    color: var(--amber-dark);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.16em;
}

.pathway-card h3 {
    margin: 0 0 18px;
    color: var(--navy-deep);
    font-family: var(--font-heading);
    font-size: 1.8rem;
    font-weight: 400;
}

.pathway-card p:not(.pathway-number) {
    color: var(--blue-muted);
}

.pathway-card a {
    display: inline-block;
    margin-top: 15px;
    color: var(--navy-deep);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-decoration: none;
    text-transform: uppercase;
}

.pathway-card a::after {
    content: " →";
    color: var(--amber-dark);
}

/* Latest stories */

.latest-stories {
    padding: 110px 0;
    background: var(--ivory);
}

.section-heading-row {
    display: flex;
    max-width: none;
    align-items: end;
    justify-content: space-between;
    gap: 30px;
}

.section-link {
    margin-bottom: 10px;
    color: var(--navy-deep);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-decoration: none;
    text-transform: uppercase;
}

.home-post-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Closing call to action */

.home-closing {
    position: relative;
    overflow: hidden;
    padding: 130px 0 150px;
    background-image:
        linear-gradient(
            rgba(13, 37, 53, 0.91),
            rgba(13, 37, 53, 0.97)
        ),
        url("assets/images/navy-texture.png");
    background-position: center;
    background-size: cover;
    color: var(--ivory);
    text-align: center;
}

.home-closing::before {
    position: absolute;
    inset: 0;
    background-image: url("assets/images/topo-frame.png");
    background-position: center;
    background-repeat: no-repeat;
    background-size: min(900px, 90vw);
    content: "";
    opacity: 0.12;
    pointer-events: none;
}

.closing-content {
    position: relative;
    z-index: 1;
    max-width: 900px;
}

.home-closing h2 {
    color: var(--ivory);
}

.home-closing .button {
    margin-top: 38px;
}

/* Homepage responsiveness */

@media (max-width: 960px) {
    .pathway-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-post-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .home-introduction,
    .brand-pathways,
    .latest-stories {
        padding: 75px 0;
    }

    .pathway-grid {
        grid-template-columns: 1fr;
    }

    .pathway-card {
        min-height: auto;
    }

    .pathway-number {
        margin-bottom: 25px;
    }

    .section-heading-row {
        display: block;
    }

    .section-link {
        display: inline-block;
        margin-top: 22px;
    }

    .home-closing {
        padding: 90px 0;
    }
}
/* ========================================
   STANDARD INTERIOR PAGES
======================================== */

.inner-page-hero {
    position: relative;
    overflow: hidden;
    padding: 105px 0 145px;
    background-image:
        linear-gradient(
            135deg,
            rgba(13, 37, 53, 0.96),
            rgba(22, 57, 77, 0.88)
        ),
        url("assets/images/navy-texture.png");
    background-position: center;
    background-size: cover;
    color: var(--ivory);
}

.inner-page-hero::before {
    position: absolute;
    top: -180px;
    right: -140px;
    width: 600px;
    height: 600px;
    background-image: url("assets/images/topo-pattern.png");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
    opacity: 0.1;
    pointer-events: none;
}

.inner-page-hero::after {
    position: absolute;
    right: 0;
    bottom: -2px;
    left: 0;
    height: 130px;
    background-image: url("assets/images/mountain-range-soft.png");
    background-position: center bottom;
    background-repeat: no-repeat;
    background-size: 100% auto;
    content: "";
    pointer-events: none;
}

.inner-page-hero .site-container {
    position: relative;
    z-index: 1;
}

.inner-page-hero h1 {
    max-width: 900px;
    margin: 0;
    font-family: var(--font-heading);
    font-size: clamp(3rem, 7vw, 6rem);
    font-weight: 400;
    letter-spacing: -0.04em;
    line-height: 1;
}

.page-content-section {
    padding: 90px 0 120px;
}

.page-content {
    max-width: 850px;
    margin-inline: auto;
}

.page-featured-image {
    margin: 0 0 55px;
}

.page-featured-image img {
    width: 100%;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}

.entry-content {
    font-family: var(--font-heading);
    font-size: 1.2rem;
    line-height: 1.85;
}

.entry-content > * {
    max-width: 760px;
    margin-right: auto;
    margin-left: auto;
}

.entry-content h2,
.entry-content h3,
.entry-content h4 {
    color: var(--navy-deep);
    font-family: var(--font-heading);
    font-weight: 400;
    line-height: 1.15;
}

.entry-content h2 {
    margin-top: 65px;
    font-size: clamp(2rem, 4vw, 3rem);
}

.entry-content h3 {
    margin-top: 45px;
    font-size: 1.8rem;
}

.entry-content blockquote {
    margin-top: 55px;
    margin-bottom: 55px;
    padding: 10px 0 10px 35px;
    border-left: 3px solid var(--amber);
    color: var(--navy);
    font-size: 1.5rem;
    font-style: italic;
}

.entry-content a {
    color: var(--amber-dark);
}

.entry-content .alignwide {
    max-width: 1050px;
}

.entry-content .alignfull {
    max-width: none;
}

@media (max-width: 640px) {
    .inner-page-hero {
        padding: 75px 0 115px;
    }

    .inner-page-hero::after {
        height: 90px;
        background-size: auto 100%;
    }

    .page-content-section {
        padding: 60px 0 80px;
    }

    .entry-content {
        font-size: 1.08rem;
    }
}

/* ========================================
   NAVIGATION DROPDOWNS
======================================== */

.primary-navigation li {
    position: relative;
}

.primary-navigation .menu-item-has-children > a::after {
    margin-left: 7px;
    color: var(--amber);
    content: "▾";
    font-size: 0.65rem;
}

.primary-navigation .sub-menu {
    position: absolute;
    z-index: 200;
    top: calc(100% + 18px);
    left: -22px;
    display: block;
    visibility: hidden;
    width: 245px;
    margin: 0;
    padding: 14px 0;
    background: var(--navy-deep);
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.25);
    opacity: 0;
    transform: translateY(8px);
    transition:
        opacity 160ms ease,
        transform 160ms ease,
        visibility 160ms ease;
}

.primary-navigation .sub-menu::before {
    position: absolute;
    top: -19px;
    right: 0;
    left: 0;
    height: 20px;
    content: "";
}

.primary-navigation .sub-menu li {
    display: block;
    width: 100%;
}

.primary-navigation .sub-menu a {
    display: block;
    width: 100%;
    padding: 11px 22px;
    color: var(--mist);
    font-size: 0.73rem;
    line-height: 1.45;
}

.primary-navigation .sub-menu a:hover,
.primary-navigation .sub-menu a:focus {
    background: rgba(255, 255, 255, 0.06);
    color: var(--amber);
}

.primary-navigation li:hover > .sub-menu,
.primary-navigation li:focus-within > .sub-menu {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 900px) {
    .primary-navigation .sub-menu {
        position: static;
        visibility: visible;
        width: 100%;
        margin: 10px 0 5px 15px;
        padding: 0;
        background: transparent;
        border: 0;
        box-shadow: none;
        opacity: 1;
        transform: none;
    }

    .primary-navigation .sub-menu a {
        padding: 6px 0;
        font-size: 0.7rem;
    }
}
/* ========================================
   SINGLE STORY
======================================== */

.story-hero {
    position: relative;
    overflow: hidden;
    padding: 110px 0 180px;
    background-image:
        linear-gradient(
            135deg,
            rgba(13, 37, 53, 0.96),
            rgba(22, 57, 77, 0.88)
        ),
        url("assets/images/navy-texture.png");
    background-position: center;
    background-size: cover;
    color: var(--ivory);
}

.story-hero::before {
    position: absolute;
    top: -130px;
    right: -100px;
    width: 580px;
    height: 580px;
    background-image: url("assets/images/topo-pattern.png");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
    opacity: 0.1;
    pointer-events: none;
}

.story-hero-content {
    position: relative;
    z-index: 1;
    max-width: 1000px;
}

.story-categories {
    margin-bottom: 24px;
    color: var(--amber);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.story-categories a {
    color: var(--amber);
    text-decoration: none;
}

.story-hero h1 {
    max-width: 950px;
    margin: 0;
    font-family: var(--font-heading);
    font-size: clamp(3rem, 7vw, 6.5rem);
    font-weight: 400;
    letter-spacing: -0.045em;
    line-height: 0.98;
}

.story-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 30px;
    color: var(--mist);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.story-image-container {
    position: relative;
    z-index: 2;
    max-width: 1180px;
    margin-top: -95px;
}

.story-featured-image {
    margin: 0;
}

.story-featured-image img {
    width: 100%;
    max-height: 680px;
    object-fit: cover;
    border: 8px solid var(--ivory);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}

.story-content-section {
    padding: 85px 0 120px;
}

.story-content,
.story-tags {
    max-width: 760px;
    margin-inline: auto;
}

.story-content {
    font-family: var(--font-heading);
    font-size: clamp(1.12rem, 2vw, 1.27rem);
    line-height: 1.9;
}

.story-content > p:first-of-type {
    color: var(--navy-deep);
    font-size: 1.32em;
    line-height: 1.7;
}

.story-content > p:first-of-type::first-letter {
    float: left;
    margin: 9px 10px 0 0;
    color: var(--amber-dark);
    font-family: var(--font-heading);
    font-size: 4.1rem;
    line-height: 0.75;
}

.story-content h2,
.story-content h3,
.story-content h4 {
    color: var(--navy-deep);
    font-family: var(--font-heading);
    font-weight: 400;
    line-height: 1.15;
}

.story-content h2 {
    margin-top: 70px;
    font-size: clamp(2rem, 4vw, 3.2rem);
}

.story-content h3 {
    margin-top: 50px;
    font-size: 1.8rem;
}

.story-content blockquote {
    position: relative;
    margin: 60px 0;
    padding: 15px 0 15px 38px;
    border-left: 3px solid var(--amber);
    color: var(--navy);
    font-size: clamp(1.35rem, 3vw, 1.8rem);
    font-style: italic;
    line-height: 1.55;
}

.story-content img {
    border-radius: var(--radius);
}

.story-content figure {
    margin-top: 50px;
    margin-bottom: 50px;
}

.story-content figcaption {
    margin-top: 12px;
    color: var(--blue-muted);
    font-family: var(--font-body);
    font-size: 0.76rem;
    text-align: center;
}

.story-tags {
    margin-top: 75px;
    padding-top: 35px;
    border-top: 1px solid var(--border);
}

.tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.tag-list a {
    padding: 7px 12px;
    background: #ebe6dc;
    color: var(--navy);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-decoration: none;
    text-transform: uppercase;
}

.story-navigation {
    background: #ebe6dc;
    border-top: 1px solid var(--border);
}

.story-navigation-inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.previous-story,
.next-story {
    min-height: 210px;
    padding: 55px 45px;
}

.previous-story {
    border-right: 1px solid var(--border);
}

.next-story {
    text-align: right;
}

.story-navigation a {
    color: var(--navy-deep);
    font-family: var(--font-heading);
    font-size: clamp(1.35rem, 3vw, 2rem);
    line-height: 1.2;
    text-decoration: none;
}

.story-navigation a:hover,
.story-navigation a:focus {
    color: var(--amber-dark);
}

@media (max-width: 640px) {
    .story-hero {
        padding: 80px 0 125px;
    }

    .story-image-container {
        margin-top: -55px;
    }

    .story-featured-image img {
        border-width: 4px;
    }

    .story-content-section {
        padding: 60px 0 80px;
    }

    .story-navigation-inner {
        grid-template-columns: 1fr;
    }

    .previous-story,
    .next-story {
        min-height: auto;
        padding: 40px 0;
        text-align: left;
    }

    .previous-story {
        border-right: 0;
        border-bottom: 1px solid var(--border);
    }
}

/* ==================================================
   SINGLE STORY HERO
================================================== */

.story-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: clamp(620px, 76vh, 860px);
	overflow: hidden;
	background-color: #0d2535;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	color: #f6f0e5;
}

/*
 * The image has the hiker on the left, so this gradient
 * darkens the right side behind the live title.
 */
.story-hero-overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(
			90deg,
			rgba(8, 27, 40, 0.08) 0%,
			rgba(8, 27, 40, 0.30) 42%,
			rgba(8, 27, 40, 0.88) 100%
		),
		linear-gradient(
			0deg,
			rgba(8, 27, 40, 0.45) 0%,
			transparent 45%
		);
}

.story-hero.no-featured-image {
	background-image:
		linear-gradient(135deg, #0d2535 0%, #153d53 100%);
}

.story-hero.no-featured-image .story-hero-overlay {
	opacity: 0.25;
}

.story-hero-inner {
	position: relative;
	z-index: 2;
	width: 100%;
}

.story-hero-copy {
	width: min(760px, 52%);
	margin-left: 47%;
	padding: 100px 0;
}

.story-categories {
	margin-bottom: 22px;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.story-categories a {
	color: #d9913b;
	text-decoration: none;
}

.story-categories a:hover,
.story-categories a:focus {
	color: #f6f0e5;
}

.story-title {
	margin: 0;
	color: #f6f0e5;
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: clamp(5rem, 8vw, 9rem);
	font-weight: 400;
	letter-spacing: 0.015em;
	line-height: 0.82;
	text-transform: uppercase;
	text-wrap: balance;
}


.story-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-top: 32px;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.story-meta-divider {
	color: #d9913b;
}

/* Article body */

.story-content-section {
	background: #f6f0e5;
	padding: clamp(70px, 9vw, 130px) 24px;
}

.story-content {
	width: min(760px, 100%);
	margin: 0 auto;
	color: #183241;
	font-size: 1.15rem;
	line-height: 1.85;
}

.story-content > p:first-child {
	font-size: 1.35rem;
	line-height: 1.65;
}

.story-content h2,
.story-content h3,
.story-content h4 {
	margin-top: 2.2em;
	color: #0d2535;
	font-family: Georgia, "Times New Roman", serif;
	line-height: 1.15;
}

.story-content h2 {
	font-size: clamp(2rem, 4vw, 3.2rem);
}

.story-content h3 {
	font-size: clamp(1.55rem, 3vw, 2.25rem);
}

.story-content blockquote {
	margin: 2.5em 0;
	padding: 8px 0 8px 30px;
	border-left: 3px solid #d9913b;
	color: #0d2535;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.5rem;
	font-style: italic;
	line-height: 1.5;
}

.story-content img {
	height: auto;
	border-radius: 2px;
}

/* Tags */

.story-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin-top: 60px;
	padding-top: 28px;
	border-top: 1px solid rgba(13, 37, 53, 0.18);
}

.story-tags-label {
	margin-right: 8px;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.story-tags a {
	padding: 7px 12px;
	border: 1px solid rgba(13, 37, 53, 0.25);
	color: #0d2535;
	font-size: 0.8rem;
	text-decoration: none;
}

/* Previous and next stories */

.story-navigation {
	background: #0d2535;
	color: #f6f0e5;
}

.story-navigation-inner {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 40px;
	padding-top: 55px;
	padding-bottom: 55px;
}

.story-navigation-next {
	text-align: right;
}

.story-navigation a {
	display: inline-flex;
	flex-direction: column;
	gap: 8px;
	color: #f6f0e5;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.35rem;
	text-decoration: none;
}

.story-navigation a span {
	color: #d9913b;
	font-family: Arial, sans-serif;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.17em;
	text-transform: uppercase;
}

/* Mobile */

@media (max-width: 800px) {
	.story-hero {
		align-items: flex-end;
		min-height: 680px;
		background-position: 35% center;
	}

	.story-hero-overlay {
		background:
			linear-gradient(
				180deg,
				rgba(8, 27, 40, 0.05) 10%,
				rgba(8, 27, 40, 0.35) 48%,
				rgba(8, 27, 40, 0.96) 100%
			);
	}

	.story-hero-copy {
	width: 100%;
	margin-left: 0;
	padding: 90px 0 55px;
}

.story-title {
	font-size: clamp(4.25rem, 20vw, 6.5rem);
	line-height: 0.84;
}

.story-subtitle {
	max-width: 520px;
	margin-top: 18px;
	font-size: clamp(2rem, 9vw, 3rem);
	line-height: 1;
}

	.story-content {
		font-size: 1.05rem;
	}

	.story-content > p:first-child {
		font-size: 1.2rem;
	}

	.story-navigation-inner {
		grid-template-columns: 1fr;
	}

	.story-navigation-next {
		text-align: left;
	}
}



/* Final single-post title typography */

.single-story .story-hero .story-title {
	max-width: 12ch;
	margin: 0 !important;
	color: #f6f0e5;
	font-family: "Bebas Neue", Impact, Haettenschweiler, sans-serif !important;
	font-size: clamp(4.5rem, 6.75vw, 8rem);
	font-weight: 400;
	letter-spacing: 0.015em;
	line-height: 0.84;
	text-transform: uppercase;
	text-wrap: balance;
	white-space: normal;
	overflow-wrap: normal;
}

.single-story .story-hero .story-subtitle {
	max-width: 650px;
	margin: 26px 0 0 !important;
	color: #f6f0e5;
	font-family: "Cormorant Garamond", Georgia, serif !important;
	font-size: clamp(2.25rem, 3.25vw, 3.5rem);
	font-weight: 500;
	letter-spacing: -0.015em;
	line-height: 1;
}

.single-story .story-hero .story-subtitle::before {
	display: block;
	width: 64px;
	height: 2px;
	margin-bottom: 22px;
	background-color: #d9913b;
	content: "";
}

/* ==================================================
   RIDGELINE TYPOGRAPHY SYSTEM
================================================== */

/* Extended reading and article content */

body,
button,
input,
select,
textarea {
	font-family: var(--font-reading);
}

.story-content,
.entry-content,
.page-content {
	font-family: var(--font-reading);
}

/* Editorial headings */

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--font-editorial);
}

.story-content h2,
.story-content h3,
.story-content h4,
.entry-content h2,
.entry-content h3,
.entry-content h4 {
	font-family: var(--font-editorial);
}

/* Navigation, labels, buttons and metadata */

.main-navigation,
.footer-navigation,
.button,
.wp-block-button__link,
.story-categories,
.story-meta,
.story-tags-label,
.eyebrow,
.post-category,
.post-meta {
	font-family: var(--font-navigation);
}

/* Primary display headlines */

.single-story .story-hero .story-title {
	font-family: var(--font-display) !important;
}

/* Editorial post subtitle */

.single-story .story-hero .story-subtitle {
	font-family: var(--font-editorial) !important;
}

.single-story .story-hero .story-title {
	max-width: 12ch;
	font-size: clamp(4.5rem, 6.75vw, 8rem);
	font-weight: 400;
	letter-spacing: 0.015em;
	line-height: 0.84;
	text-transform: uppercase;
	text-wrap: balance;
	white-space: normal;
	overflow-wrap: normal;
}

.single-story .story-hero .story-subtitle {
	margin-top: 24px;
	font-size: clamp(2.25rem, 3.25vw, 3.6rem);
	font-weight: 500;
	line-height: 1;
}
/* Main navigation — Bebas Neue */

.main-navigation a,
.primary-menu a,
.site-header nav a {
	font-family: var(--font-display) !important;
	font-size: 1.15rem;
	font-weight: 400;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.header-cta,
.header-cta a,
.site-header .button {
	font-family: var(--font-display) !important;
	font-size: 1.15rem;
	font-weight: 400;
	letter-spacing: 0.08em;
}

/* Force Bebas Neue on Book Josh button */

.site-header a[href*="booking"],
.site-header .header-cta,
.site-header .header-cta a {
	font-family: "Bebas Neue", Impact, sans-serif !important;
	font-size: 1.2rem !important;
	font-weight: 400 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase;
}

/* ========================================
   HOMEPAGE HERO MOUNTAIN COMPOSITION

   The mountain artwork now fills the hero as an atmospheric background
   layer. The text remains above it while the darker ridges rise behind the
   lower portion of the message instead of sitting in a separate container.
======================================== */

.home-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: calc(100svh - 120px);
	padding-top: clamp(90px, 9vw, 135px);
	padding-bottom: clamp(110px, 12vw, 175px);
	overflow: hidden;
	isolation: isolate;
}

/* Disable only the homepage's old cropped mountain pseudo-element. */
.home-hero::after {
	display: none;
	content: none;
}

/* Carry the topographical texture across the entire homepage hero instead of
   concentrating it inside the former right-side frame. */
.home-hero::before {
	position: absolute;
	inset: 0;
	z-index: 2;
	width: 100%;
	height: 100%;
	background-image: url("assets/images/topo-pattern.png");
	background-position: center;
	background-repeat: repeat;
	background-size: 760px auto;
	content: "";
	opacity: 0.1;
	pointer-events: none;
}

.home-hero > .site-container {
	position: relative;
	z-index: 3;
}

.home-hero-mountains {
	position: absolute;
	inset: 0;
	z-index: 1;
	background-image: url("assets/images/mountain-range-hero.png");
	background-position: center bottom;
	background-repeat: no-repeat;
	background-size: 100% auto;
	filter: brightness(0.48) contrast(1.12) saturate(0.78);
	opacity: 0.9;
	pointer-events: none;
}

/* Blend the ridges into the navy sky without creating a visible boundary. */
.home-hero-mountains::before {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(7, 25, 37, 0.18) 0%,
		rgba(7, 25, 37, 0.03) 48%,
		rgba(7, 25, 37, 0.16) 100%
	);
	content: "";
	pointer-events: none;
}

@media (max-width: 800px) {
	.home-hero {
		align-items: flex-start;
		min-height: 720px;
		padding-top: 85px;
		padding-bottom: 150px;
	}

	.home-hero-mountains {
		background-position: center bottom;
		background-size: auto 64%;
		filter: brightness(0.42) contrast(1.14) saturate(0.74);
	}

	.home-hero::before {
		background-size: 620px auto;
		opacity: 0.085;
	}
}

@media (max-width: 480px) {
	.home-hero {
		min-height: 690px;
		padding-top: 70px;
		padding-bottom: 125px;
	}

	.home-hero-mountains {
		background-size: auto 58%;
	}
}

/* ========================================
   HOMEPAGE PATHWAY CARDS
======================================== */

.pathway-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.pathway-card {
	position: relative;
	display: flex;
	min-height: 340px;
	flex-direction: column;
	overflow: hidden;
	padding: clamp(32px, 3vw, 42px);
	border-top: 3px solid var(--amber);
	background-color: rgba(255, 255, 255, 0.82);
	box-shadow: 0 14px 38px rgba(13, 37, 53, 0.07);
	transition:
		transform 220ms ease,
		box-shadow 220ms ease,
		background-color 220ms ease;
}

.pathway-card::before {
	position: absolute;
	top: -80px;
	right: -90px;
	width: 280px;
	height: 280px;
	background-image: url("assets/images/topo-pattern.png");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	opacity: 0;
	pointer-events: none;
	transition: opacity 220ms ease;
}

.pathway-card:hover,
.pathway-card:focus-within {
	transform: translateY(-6px);
	box-shadow: 0 22px 50px rgba(13, 37, 53, 0.14);
}

.pathway-card:hover::before,
.pathway-card:focus-within::before {
	opacity: 0.08;
}

.pathway-card > * {
	position: relative;
	z-index: 2;
}

.pathway-number {
	margin: 0 0 auto;
	padding-bottom: 44px;
	color: var(--amber-dark);
	font-family: var(--font-display);
	font-size: 1.1rem;
	font-weight: 400;
	letter-spacing: 0.14em;
}

.pathway-card h3 {
	margin: 0 0 18px;
	font-family: var(--font-editorial);
	font-size: clamp(1.8rem, 2.4vw, 2.35rem);
	line-height: 1.05;
}

.pathway-card p:not(.pathway-number) {
	margin-bottom: 22px;
	font-family: var(--font-reading);
	font-size: 1.02rem;
	line-height: 1.65;
}

.pathway-card a {
	position: static;
	margin-top: auto;
	font-family: var(--font-navigation);
}

/* Stretch the existing text link across its entire card. */
.pathway-card a::before {
	position: absolute;
	inset: 0;
	z-index: 4;
	content: "";
}

.pathway-card:focus-within {
	outline: 3px solid var(--amber);
	outline-offset: 4px;
}

/* Writing is the anchor of the brand and receives the featured treatment. */
.pathway-card-featured {
	grid-column: span 2;
	min-height: 390px;
	background-color: var(--navy-deep);
	background-image:
		linear-gradient(
			135deg,
			rgba(7, 25, 37, 0.95),
			rgba(22, 57, 77, 0.84)
		),
		url("assets/images/navy-texture.png");
	background-position: center;
	background-size: cover;
	color: var(--ivory);
}

.pathway-card-featured::before {
	top: -150px;
	right: -70px;
	width: 430px;
	height: 430px;
	opacity: 0.11;
}

.pathway-card-featured::after {
	position: absolute;
	right: -4%;
	bottom: -1px;
	left: 32%;
	height: 58%;
	background-image: url("assets/images/mountain-range-soft.png");
	background-position: right bottom;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	opacity: 0.34;
	pointer-events: none;
}

.pathway-card-featured .pathway-number {
	color: var(--amber);
}

.pathway-card-featured h3 {
	max-width: 520px;
	color: var(--ivory);
	font-size: clamp(2.5rem, 4vw, 4rem);
}

.pathway-card-featured p:not(.pathway-number) {
	max-width: 520px;
	color: var(--mist);
}

.pathway-card-featured a {
	color: var(--ivory);
}

@media (max-width: 960px) {
	.pathway-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pathway-card-featured {
		grid-column: span 2;
	}
}

@media (max-width: 640px) {
	.pathway-grid {
		grid-template-columns: 1fr;
	}

	.pathway-card,
	.pathway-card-featured {
		grid-column: auto;
		min-height: 320px;
	}

	.pathway-card-featured::after {
		left: 16%;
		height: 48%;
	}
}

/* ========================================
   ADAPTIVE LATEST STORIES
======================================== */

.home-post-grid {
	gap: 28px;
}

.home-post-grid.post-count-1 {
	grid-template-columns: 1fr;
}

.home-post-grid.post-count-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.home-post-grid.post-count-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.home-post-grid .post-card {
	position: relative;
	border: 0;
	border-radius: 0;
	box-shadow: 0 16px 42px rgba(13, 37, 53, 0.09);
}

.home-post-grid .post-card-content {
	position: static;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	padding: clamp(32px, 3.5vw, 48px);
}

.home-post-grid .post-card-content::after {
	position: absolute;
	top: -100px;
	right: -100px;
	width: 300px;
	height: 300px;
	background-image: url("assets/images/topo-pattern.png");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	opacity: 0.045;
	pointer-events: none;
}

.home-post-grid .post-card-content > * {
	position: relative;
	z-index: 1;
}

.home-post-grid .post-date {
	margin-bottom: 18px;
	color: var(--amber-dark);
	font-family: var(--font-navigation);
}

.home-post-grid .post-title {
	margin-bottom: 24px;
}

.home-post-grid .post-card-main-title,
.home-post-grid .post-card-subtitle {
	display: block;
}

.home-post-grid .post-card-main-title {
	font-family: var(--font-display);
	font-size: clamp(2.4rem, 3.8vw, 4.25rem);
	font-weight: 400;
	letter-spacing: 0.015em;
	line-height: 0.9;
	text-transform: uppercase;
}

.home-post-grid .post-card-subtitle {
	margin-top: 13px;
	font-family: var(--font-editorial);
	font-size: clamp(1.65rem, 2.2vw, 2.4rem);
	font-weight: 500;
	line-height: 1.05;
}

.home-post-grid .post-excerpt {
	font-family: var(--font-reading);
	font-size: 1.02rem;
	line-height: 1.7;
}

.home-post-grid .read-more {
	position: static;
	margin-top: auto;
	padding-top: 16px;
	font-family: var(--font-navigation);
}

/* Make the entire story card clickable through its existing Read the story link. */
.home-post-grid .read-more::before {
	position: absolute;
	inset: 0;
	z-index: 4;
	content: "";
}

.home-post-grid .post-card:focus-within {
	outline: 3px solid var(--amber);
	outline-offset: 4px;
}

/* One post becomes a full-width editorial feature. */
.home-post-grid.post-count-1 .post-card {
	display: grid;
	min-height: 520px;
	grid-template-columns: minmax(0, 1.3fr) minmax(340px, 0.85fr);
	background: var(--white);
}

.home-post-grid.post-count-1 .post-thumbnail {
	min-height: 520px;
	aspect-ratio: auto;
}

.home-post-grid.post-count-1 .post-card-content {
	justify-content: center;
	padding: clamp(42px, 5vw, 72px);
}

.home-post-grid.post-count-1 .post-card-main-title {
	font-size: clamp(4rem, 6vw, 7rem);
}

.home-post-grid.post-count-1 .post-card-subtitle {
	font-size: clamp(2rem, 3vw, 3.2rem);
}

.home-post-grid.post-count-1 .post-excerpt {
	max-width: 520px;
}

/* Keep multi-post cards compact enough to sit evenly in their grids. */
.home-post-grid.post-count-2 .post-card-main-title,
.home-post-grid.post-count-3 .post-card-main-title {
	font-size: clamp(2.5rem, 3.2vw, 3.8rem);
}

.home-post-grid.post-count-2 .post-card-subtitle,
.home-post-grid.post-count-3 .post-card-subtitle {
	font-size: clamp(1.55rem, 1.9vw, 2.1rem);
}

@media (max-width: 960px) {
	.home-post-grid.post-count-1 .post-card {
		min-height: 0;
		grid-template-columns: 1fr;
	}

	.home-post-grid.post-count-1 .post-thumbnail {
		min-height: 0;
		aspect-ratio: 16 / 9;
	}

	.home-post-grid.post-count-3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.home-post-grid.post-count-1,
	.home-post-grid.post-count-2,
	.home-post-grid.post-count-3 {
		grid-template-columns: 1fr;
	}

	.home-post-grid.post-count-1 .post-card-main-title {
		font-size: clamp(3.25rem, 16vw, 5rem);
	}

	.home-post-grid .post-card-content {
		padding: 30px;
	}
}

/* ========================================
   STORIES-TO-CTA BRAND TRANSITION
======================================== */

.latest-stories {
	position: relative;
	overflow: hidden;
	padding: 110px 0 clamp(120px, 8vw, 155px);
	background-color: var(--ivory);
	background-image:
		radial-gradient(circle at 18% 24%, rgba(173, 122, 67, 0.055) 0 1px, transparent 1.6px),
		radial-gradient(circle at 76% 68%, rgba(7, 25, 37, 0.04) 0 0.8px, transparent 1.4px),
		repeating-linear-gradient(102deg, rgba(7, 25, 37, 0.018) 0 1px, transparent 1px 7px),
		linear-gradient(135deg, #f7f0e5 0%, var(--ivory) 48%, #eee2d0 100%);
	background-size: 29px 31px, 37px 41px, auto, auto;
}

/* A restrained contour detail echoes the upper corner of the business card. */
.latest-stories::before {
	position: absolute;
	top: -90px;
	right: -75px;
	width: min(560px, 48vw);
	height: min(560px, 48vw);
	background-image: url("assets/images/topo-pattern.png");
	background-position: top right;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	filter: sepia(1) saturate(1.35);
	opacity: 0.13;
	pointer-events: none;
}

/* The mountain range rises from the stories and dissolves into the navy CTA. */
.latest-stories::after {
	position: absolute;
	right: -2px;
	bottom: -2px;
	left: -2px;
	z-index: 1;
	height: clamp(360px, 30vw, 480px);
	background-image:
		linear-gradient(
			to bottom,
			transparent 0%,
			transparent 82%,
			rgba(13, 37, 53, 0.35) 92%,
			rgba(13, 37, 53, 0.98) 100%
		),
		url("assets/images/mountain-range-transition.png");
	background-position: center bottom, center bottom;
	background-repeat: no-repeat;
	background-size: 100% 100%, 100% 100%;
	content: "";
	pointer-events: none;
}

.latest-stories > .site-container {
	position: relative;
	z-index: 2;
}

.home-closing {
	margin-top: -2px;
	padding-top: 105px;
}

@media (max-width: 960px) {
	.latest-stories {
		padding-bottom: clamp(105px, 14vw, 135px);
	}

	.latest-stories::before {
		top: -45px;
		right: -95px;
		width: 430px;
		height: 430px;
		opacity: 0.1;
	}

	.latest-stories::after {
		height: clamp(280px, 50vw, 420px);
		background-position: center bottom, center bottom;
		background-size: 100% 100%, 100% 100%;
	}
}

@media (max-width: 640px) {
	.latest-stories {
		padding-top: 75px;
		padding-bottom: 90px;
	}

	.latest-stories::before {
		top: -15px;
		right: -130px;
		width: 360px;
		height: 360px;
		opacity: 0.08;
	}

	.latest-stories::after {
		height: 260px;
		background-position: center bottom, center bottom;
		background-size: 100% 100%, 100% 100%;
	}

	.home-closing {
		padding-top: 80px;
	}
}

/* ========================================
   REFINED SITE FOOTER
======================================== */

.site-footer {
	position: relative;
	overflow: hidden;
	padding: clamp(72px, 7vw, 108px) 0 34px;
	border-top: 1px solid rgba(207, 129, 46, 0.28);
	background-color: #06131d;
	background-image:
		linear-gradient(rgba(6, 19, 29, 0.94), rgba(6, 19, 29, 0.985)),
		url("assets/images/navy-texture.png");
	background-position: center;
	background-size: cover;
	color: var(--mist);
}

.site-footer::before {
	position: absolute;
	top: -210px;
	right: -170px;
	width: 570px;
	height: 570px;
	background-image: url("assets/images/topo-pattern.png");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	opacity: 0.055;
	pointer-events: none;
}

.site-footer .site-container {
	position: relative;
	z-index: 1;
}

.footer-main {
	display: grid;
	grid-template-columns: minmax(250px, 0.9fr) minmax(420px, 1.55fr) minmax(260px, 0.9fr);
	gap: clamp(48px, 6vw, 94px);
	align-items: start;
}

.footer-wordmark {
	display: inline-block;
	color: var(--ivory);
	font-family: var(--font-editorial);
	font-size: clamp(2rem, 2.4vw, 2.65rem);
	font-weight: 600;
	letter-spacing: -0.035em;
	line-height: 1;
	text-decoration: none;
}

.footer-wordmark::after {
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-left: 5px;
	background: var(--amber);
	content: "";
	transform: translateY(-2px);
}

.footer-wordmark.bundled-logo-link::after {
	display: none;
}

.bundled-logo-footer {
	max-width: min(100%, 285px);
	max-height: 72px;
}

.footer-wordmark:hover,
.footer-wordmark:focus {
	color: var(--amber);
}

.footer-logo .custom-logo-link {
	display: inline-block;
}

.footer-logo .custom-logo {
	width: auto;
	max-width: min(100%, 285px);
	max-height: 72px;
}

.footer-tagline {
	max-width: 280px;
	margin: 22px 0 0;
	color: rgba(243, 234, 220, 0.78);
	font-family: var(--font-reading);
	font-size: 1.05rem;
	line-height: 1.55;
}

.footer-kicker {
	margin: 0 0 26px;
	color: var(--amber);
	font-family: var(--font-navigation);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.site-footer .footer-menu {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px 36px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer .footer-menu li {
	margin: 0;
}

.site-footer .footer-menu a {
	display: inline-block;
	color: var(--ivory);
	font-family: var(--font-display);
	font-size: 1.28rem;
	font-weight: 400;
	letter-spacing: 0.045em;
	line-height: 1.12;
	text-decoration: none;
	text-transform: uppercase;
}

.site-footer .footer-menu a::after {
	display: block;
	width: 0;
	height: 2px;
	margin-top: 5px;
	background: var(--amber);
	content: "";
	transition: width 180ms ease;
}

.site-footer .footer-menu a:hover,
.site-footer .footer-menu a:focus {
	color: var(--amber);
}

.site-footer .footer-menu a:hover::after,
.site-footer .footer-menu a:focus::after {
	width: 28px;
}

.footer-contact-copy {
	max-width: 330px;
	margin: 0;
	color: rgba(243, 234, 220, 0.76);
	font-family: var(--font-reading);
	font-size: 1rem;
	line-height: 1.7;
}

.footer-contact-link {
	display: inline-block;
	margin-top: 27px;
	padding-bottom: 5px;
	border-bottom: 2px solid var(--amber);
	color: var(--ivory);
	font-family: var(--font-navigation);
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-decoration: none;
	text-transform: uppercase;
}

.footer-contact-link::after {
	content: "  →";
	color: var(--amber);
}

.footer-contact-link:hover,
.footer-contact-link:focus {
	color: var(--amber);
}

.footer-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	margin-top: clamp(62px, 7vw, 98px);
	padding-top: 28px;
	border-top: 1px solid rgba(243, 234, 220, 0.13);
}

.site-footer .copyright,
.footer-signoff {
	margin: 0;
	padding: 0;
	border: 0;
	color: rgba(220, 227, 231, 0.58);
	font-family: var(--font-navigation);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.footer-signoff {
	color: var(--amber);
	letter-spacing: 0.16em;
}

@media (max-width: 1040px) {
	.footer-main {
		grid-template-columns: minmax(220px, 0.8fr) minmax(0, 1.4fr);
	}

	.footer-contact {
		grid-column: 1 / -1;
		padding-top: 38px;
		border-top: 1px solid rgba(243, 234, 220, 0.1);
	}

	.footer-contact-copy {
		max-width: 620px;
	}
}

@media (max-width: 680px) {
	.site-footer {
		padding-top: 68px;
	}

	.footer-main {
		grid-template-columns: 1fr;
		gap: 52px;
	}

	.footer-logo .custom-logo {
		max-width: 250px;
	}

	.footer-contact {
		grid-column: auto;
	}

	.site-footer .footer-menu {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.footer-bottom {
		display: block;
		margin-top: 64px;
	}

	.footer-signoff {
		margin-top: 14px;
	}
}

/* ========================================
   ABOUT PAGE
======================================== */

.about-page {
	overflow: hidden;
	background: var(--ivory);
}

.about-hero {
	position: relative;
	padding: clamp(74px, 8vw, 126px) 0;
	background-color: var(--navy-deep);
	background-image:
		linear-gradient(90deg, rgba(7, 25, 37, 0.98), rgba(13, 37, 53, 0.88)),
		url("assets/images/navy-texture.png");
	background-size: cover;
	color: var(--ivory);
}

.about-hero::after {
	position: absolute;
	right: -150px;
	bottom: -170px;
	width: 620px;
	height: 620px;
	background: url("assets/images/topo-pattern.png") center / contain no-repeat;
	content: "";
	opacity: 0.08;
	pointer-events: none;
}

.about-hero-grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.75fr);
	gap: clamp(60px, 8vw, 120px);
	align-items: center;
}

.about-hero-copy h1 {
	max-width: 760px;
	margin: 15px 0 28px;
	color: var(--ivory);
	font-family: var(--font-editorial);
	font-size: clamp(4rem, 7.2vw, 7.25rem);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 0.85;
}

.about-hero-lead {
	max-width: 680px;
	margin: 0 0 36px;
	color: rgba(243, 234, 220, 0.82);
	font-family: var(--font-reading);
	font-size: clamp(1.1rem, 1.6vw, 1.35rem);
	line-height: 1.7;
}

.about-portrait-wrap {
	position: relative;
}

.about-portrait {
	position: relative;
	overflow: hidden;
	min-height: 590px;
	border: 1px solid rgba(243, 234, 220, 0.2);
	box-shadow: 24px 24px 0 rgba(207, 129, 46, 0.18);
}

.about-portrait::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 55%, rgba(7, 25, 37, 0.45));
	content: "";
	pointer-events: none;
}

.about-portrait img {
	width: 100%;
	height: 590px;
	object-fit: cover;
	object-position: center 30%;
}

.about-portrait-placeholder {
	display: grid;
	place-items: center;
	background:
		linear-gradient(rgba(7, 25, 37, 0.28), rgba(7, 25, 37, 0.72)),
		url("assets/images/mountain-range-hero.png") center / cover no-repeat;
}

.about-portrait-placeholder span {
	color: var(--ivory);
	font-family: var(--font-display);
	font-size: clamp(2rem, 4vw, 3.5rem);
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.about-portrait-note {
	position: absolute;
	right: -31px;
	bottom: 46px;
	z-index: 2;
	margin: 0;
	padding: 10px 16px;
	background: var(--amber);
	color: var(--navy-deep);
	font-family: var(--font-navigation);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	transform: rotate(-90deg) translateX(100%);
	transform-origin: right bottom;
}

.about-story-section {
	padding: clamp(92px, 10vw, 160px) 0;
	background:
		linear-gradient(rgba(243, 234, 220, 0.94), rgba(243, 234, 220, 0.97)),
		url("assets/images/topo-pattern.png") right -160px center / 620px auto no-repeat;
}

.about-story-grid {
	display: grid;
	grid-template-columns: minmax(260px, 0.75fr) minmax(0, 1.25fr);
	gap: clamp(60px, 9vw, 140px);
}

.about-story-heading h2,
.about-work-intro h2,
.about-closing-inner h2 {
	margin: 14px 0 0;
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(2.9rem, 5vw, 5.1rem);
	font-weight: 500;
	letter-spacing: -0.04em;
	line-height: 0.98;
}

.about-story-copy {
	max-width: 720px;
	color: var(--charcoal);
	font-family: var(--font-reading);
	font-size: clamp(1.08rem, 1.35vw, 1.22rem);
	line-height: 1.85;
}

.about-story-copy p {
	margin: 0 0 28px;
}

.about-dropcap::first-letter {
	float: left;
	margin: 8px 11px 0 0;
	color: var(--amber-dark);
	font-family: var(--font-editorial);
	font-size: 5.2rem;
	line-height: 0.66;
}

.about-editor-content {
	margin-top: 42px;
	padding-top: 34px;
	border-top: 1px solid rgba(7, 25, 37, 0.18);
}

.about-values-section {
	padding: clamp(88px, 9vw, 140px) 0;
	background: #e3e7e5;
}

.about-centered-heading {
	max-width: 760px;
	margin: 0 auto clamp(48px, 6vw, 80px);
	text-align: center;
}

.about-centered-heading h2 {
	margin-top: 12px;
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(2.8rem, 5vw, 4.8rem);
	font-weight: 500;
	letter-spacing: -0.04em;
	line-height: 1;
}

.about-values-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	border-top: 1px solid rgba(7, 25, 37, 0.18);
	border-bottom: 1px solid rgba(7, 25, 37, 0.18);
}

.about-value-card {
	padding: 34px 25px 38px;
	border-right: 1px solid rgba(7, 25, 37, 0.18);
}

.about-value-card:last-child {
	border-right: 0;
}

.about-value-number {
	color: var(--amber-dark);
	font-family: var(--font-navigation);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.16em;
}

.about-value-card h3 {
	margin: 48px 0 15px;
	color: var(--navy-deep);
	font-family: var(--font-display);
	font-size: 2rem;
	font-weight: 400;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.about-value-card p {
	margin: 0;
	color: rgba(32, 42, 48, 0.78);
	font-family: var(--font-reading);
	font-size: 0.98rem;
	line-height: 1.65;
}

.about-work-section {
	padding: clamp(94px, 10vw, 160px) 0;
	background: var(--ivory);
}

.about-work-grid {
	display: grid;
	grid-template-columns: minmax(280px, 0.85fr) minmax(420px, 1.15fr);
	gap: clamp(70px, 10vw, 150px);
	align-items: start;
}

.about-work-intro {
	position: sticky;
	top: 130px;
}

.about-work-intro > p:last-child {
	max-width: 500px;
	margin: 28px 0 0;
	color: rgba(32, 42, 48, 0.78);
	font-family: var(--font-reading);
	font-size: 1.08rem;
	line-height: 1.75;
}

.about-work-links {
	border-top: 1px solid rgba(7, 25, 37, 0.2);
}

.about-work-links a {
	position: relative;
	display: grid;
	grid-template-columns: minmax(180px, 0.9fr) minmax(190px, 1.1fr);
	gap: 30px;
	align-items: center;
	padding: 26px 48px 26px 0;
	border-bottom: 1px solid rgba(7, 25, 37, 0.2);
	color: var(--navy-deep);
	text-decoration: none;
	transition: padding-left 180ms ease, color 180ms ease;
}

.about-work-links a::after {
	position: absolute;
	right: 4px;
	color: var(--amber-dark);
	content: "→";
	font-size: 1.4rem;
}

.about-work-links a:hover,
.about-work-links a:focus {
	padding-left: 12px;
	color: var(--amber-dark);
}

.about-work-links span {
	font-family: var(--font-display);
	font-size: 1.75rem;
	letter-spacing: 0.045em;
	line-height: 1;
	text-transform: uppercase;
}

.about-work-links small {
	color: rgba(32, 42, 48, 0.68);
	font-family: var(--font-reading);
	font-size: 0.98rem;
}

.about-personal-section {
	position: relative;
	padding: clamp(110px, 13vw, 205px) 0;
	background:
		linear-gradient(rgba(7, 25, 37, 0.72), rgba(7, 25, 37, 0.93)),
		url("assets/images/mountain-range-hero.png") center 58% / cover no-repeat;
	color: var(--ivory);
}

.about-personal-inner {
	max-width: 990px;
	text-align: center;
}

.about-personal-inner blockquote {
	margin: 22px auto 0;
	color: var(--ivory);
	font-family: var(--font-editorial);
	font-size: clamp(2.3rem, 4.7vw, 4.7rem);
	font-weight: 500;
	letter-spacing: -0.035em;
	line-height: 1.08;
}

.about-closing-section {
	padding: clamp(90px, 10vw, 150px) 0;
	background:
		linear-gradient(rgba(243, 234, 220, 0.95), rgba(243, 234, 220, 0.98)),
		url("assets/images/topo-pattern.png") center / 850px auto no-repeat;
	text-align: center;
}

.about-closing-inner {
	max-width: 850px;
}

.about-closing-inner p:not(.eyebrow) {
	margin: 25px auto 32px;
	color: rgba(32, 42, 48, 0.76);
	font-family: var(--font-reading);
	font-size: 1.15rem;
}

@media (max-width: 1100px) {
	.about-values-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.about-value-card {
		border-bottom: 1px solid rgba(7, 25, 37, 0.18);
	}

	.about-value-card:nth-child(2n) {
		border-right: 0;
	}

	.about-value-card:last-child {
		grid-column: 1 / -1;
		border-bottom: 0;
	}
}

@media (max-width: 900px) {
	.about-hero-grid,
	.about-story-grid,
	.about-work-grid {
		grid-template-columns: 1fr;
	}

	.about-hero-copy {
		max-width: 720px;
	}

	.about-portrait-wrap {
		max-width: 610px;
	}

	.about-story-grid,
	.about-work-grid {
		gap: 52px;
	}

	.about-work-intro {
		position: static;
	}
}

@media (max-width: 600px) {
	.about-hero {
		padding-top: 62px;
	}

	.about-hero-copy h1 {
		font-size: clamp(3.5rem, 17vw, 5rem);
	}

	.about-portrait,
	.about-portrait img {
		height: 480px;
		min-height: 480px;
	}

	.about-portrait-note {
		right: 0;
		bottom: 0;
		transform: none;
	}

	.about-values-grid {
		grid-template-columns: 1fr;
	}

	.about-value-card,
	.about-value-card:nth-child(2n) {
		border-right: 0;
		border-bottom: 1px solid rgba(7, 25, 37, 0.18);
	}

	.about-value-card:last-child {
		grid-column: auto;
		border-bottom: 0;
	}

	.about-work-links a {
		grid-template-columns: 1fr;
		gap: 8px;
	}
}

/* ========================================
   WORK WITH ME PAGE
======================================== */

.work-page {
	overflow: hidden;
	background: var(--ivory);
}

.work-hero {
	position: relative;
	min-height: 760px;
	padding: clamp(105px, 11vw, 180px) 0 210px;
	background:
		linear-gradient(90deg, rgba(7, 25, 37, 0.98) 0%, rgba(7, 25, 37, 0.88) 58%, rgba(7, 25, 37, 0.63) 100%),
		url("assets/images/navy-texture.png") center / cover;
	color: var(--ivory);
}

.work-hero::before {
	position: absolute;
	top: -90px;
	right: -110px;
	width: 670px;
	height: 670px;
	background: url("assets/images/topo-pattern.png") center / contain no-repeat;
	content: "";
	opacity: 0.09;
	pointer-events: none;
}

.work-hero-inner {
	position: relative;
	z-index: 2;
}

.work-hero h1 {
	max-width: 980px;
	margin: 16px 0 30px;
	color: var(--ivory);
	font-family: var(--font-editorial);
	font-size: clamp(4.2rem, 7.4vw, 7.8rem);
	font-weight: 500;
	letter-spacing: -0.05em;
	line-height: 0.88;
}

.work-hero-lead {
	max-width: 680px;
	margin: 0 0 38px;
	color: rgba(243, 234, 220, 0.8);
	font-family: var(--font-reading);
	font-size: clamp(1.12rem, 1.6vw, 1.35rem);
	line-height: 1.7;
}

.work-hero-ridge {
	position: absolute;
	right: 0;
	bottom: -1px;
	left: 0;
	z-index: 1;
	height: 260px;
	background: url("assets/images/mountain-range-transition.png") center bottom / 100% 100% no-repeat;
	pointer-events: none;
}

.work-introduction {
	padding: clamp(92px, 10vw, 160px) 0;
	background:
		linear-gradient(rgba(243, 234, 220, 0.95), rgba(243, 234, 220, 0.98)),
		url("assets/images/topo-pattern.png") left -210px center / 600px auto no-repeat;
}

.work-introduction-grid {
	display: grid;
	grid-template-columns: minmax(280px, 0.85fr) minmax(0, 1.15fr);
	gap: clamp(65px, 9vw, 140px);
}

.work-introduction h2,
.work-topics-intro h2,
.work-closing h2 {
	margin: 14px 0 0;
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(2.7rem, 4vw, 4.2rem);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 1.02;
}

.work-introduction-copy {
	max-width: 720px;
	color: rgba(32, 42, 48, 0.84);
	font-family: var(--font-reading);
	font-size: clamp(1.08rem, 1.35vw, 1.22rem);
	line-height: 1.85;
}

.work-introduction-copy > p:first-child {
	margin-top: 0;
	color: var(--navy-deep);
	font-size: clamp(1.25rem, 1.7vw, 1.5rem);
}

.work-editor-content {
	margin-top: 38px;
	padding-top: 30px;
	border-top: 1px solid rgba(7, 25, 37, 0.16);
}

.work-services {
	padding: clamp(90px, 9vw, 145px) 0;
	background: #e3e7e5;
}

.work-section-heading {
	max-width: 820px;
	margin-bottom: clamp(48px, 6vw, 78px);
}

.work-section-heading h2 {
	margin: 12px 0 0;
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(2.7rem, 3.8vw, 4.1rem);
	font-weight: 500;
	letter-spacing: -0.04em;
	line-height: 1.03;
}

.work-services-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.work-service-card {
	display: flex;
	min-height: 525px;
	flex-direction: column;
	padding: clamp(26px, 2.3vw, 34px);
	border: 1px solid rgba(7, 25, 37, 0.15);
	background: rgba(243, 234, 220, 0.48);
	color: var(--charcoal);
	transition:
		background-color 240ms ease,
		border-color 240ms ease,
		box-shadow 240ms ease,
		color 240ms ease,
		transform 240ms ease;
}

.work-service-card-featured {
	background: var(--navy-deep);
	color: var(--ivory);
	transform: translateY(-12px);
	box-shadow: 0 24px 50px rgba(7, 25, 37, 0.18);
}

.work-service-number,
.work-approach article > span {
	color: var(--amber-dark);
	font-family: var(--font-navigation);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.17em;
}

.work-service-card-featured .work-service-number {
	color: var(--amber);
}

.work-service-card h3 {
	margin: 40px 0 16px;
	color: var(--navy-deep);
	font-family: var(--font-display);
	font-size: clamp(2rem, 2.4vw, 2.75rem);
	font-weight: 400;
	letter-spacing: 0.025em;
	line-height: 0.95;
	text-transform: uppercase;
}

.work-service-card-featured h3 {
	color: var(--ivory);
}

.work-service-card p,
.work-service-card li {
	font-family: var(--font-reading);
	font-size: 0.94rem;
	line-height: 1.55;
}

.work-service-card p {
	margin: 0 0 20px;
}

.work-service-card ul {
	margin: 0 0 26px;
	padding: 0;
	list-style: none;
}

.work-service-card li {
	position: relative;
	padding: 7px 0 7px 18px;
	border-bottom: 1px solid rgba(7, 25, 37, 0.12);
}

.work-service-card-featured li {
	border-color: rgba(243, 234, 220, 0.12);
}

.work-service-card li::before {
	position: absolute;
	top: 14px;
	left: 0;
	width: 6px;
	height: 6px;
	background: var(--amber);
	content: "";
}

.work-service-card > a {
	display: inline-block;
	align-self: flex-start;
	margin-top: auto;
	padding-bottom: 5px;
	border-bottom: 2px solid var(--amber);
	color: var(--navy-deep);
	font-family: var(--font-navigation);
	font-size: 0.67rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-decoration: none;
	text-transform: uppercase;
}

.work-service-card-featured > a {
	color: var(--ivory);
}

.work-service-card > a:hover,
.work-service-card > a:focus {
	color: var(--amber-dark);
}

@media (hover: hover) and (pointer: fine) {
	.work-service-card:hover {
		border-color: var(--navy-deep);
		background: var(--navy-deep);
		box-shadow: 0 24px 50px rgba(7, 25, 37, 0.2);
		color: var(--ivory);
		transform: translateY(-12px);
	}

	.work-service-card:hover .work-service-number,
	.work-service-card:hover > a {
		color: var(--amber);
	}

	.work-service-card:hover h3 {
		color: var(--ivory);
	}

	.work-service-card:hover li {
		border-color: rgba(243, 234, 220, 0.12);
	}

	.work-services-grid:has(.work-service-card:hover) .work-service-card-featured:not(:hover) {
		border-color: rgba(7, 25, 37, 0.15);
		background: rgba(243, 234, 220, 0.48);
		box-shadow: none;
		color: var(--charcoal);
		transform: none;
	}

	.work-services-grid:has(.work-service-card:hover) .work-service-card-featured:not(:hover) .work-service-number,
	.work-services-grid:has(.work-service-card:hover) .work-service-card-featured:not(:hover) > a {
		color: var(--amber-dark);
	}

	.work-services-grid:has(.work-service-card:hover) .work-service-card-featured:not(:hover) h3 {
		color: var(--navy-deep);
	}

	.work-services-grid:has(.work-service-card:hover) .work-service-card-featured:not(:hover) li {
		border-color: rgba(7, 25, 37, 0.12);
	}
}

.work-service-card:focus-within {
	border-color: var(--navy-deep);
	background: var(--navy-deep);
	box-shadow: 0 24px 50px rgba(7, 25, 37, 0.2);
	color: var(--ivory);
	transform: translateY(-12px);
}

.work-service-card:focus-within .work-service-number,
.work-service-card:focus-within > a {
	color: var(--amber);
}

.work-service-card:focus-within h3 {
	color: var(--ivory);
}

.work-service-card:focus-within li {
	border-color: rgba(243, 234, 220, 0.12);
}

.work-services-grid:has(.work-service-card:focus-within) .work-service-card-featured:not(:focus-within) {
	border-color: rgba(7, 25, 37, 0.15);
	background: rgba(243, 234, 220, 0.48);
	box-shadow: none;
	color: var(--charcoal);
	transform: none;
}

.work-services-grid:has(.work-service-card:focus-within) .work-service-card-featured:not(:focus-within) .work-service-number,
.work-services-grid:has(.work-service-card:focus-within) .work-service-card-featured:not(:focus-within) > a {
	color: var(--amber-dark);
}

.work-services-grid:has(.work-service-card:focus-within) .work-service-card-featured:not(:focus-within) h3 {
	color: var(--navy-deep);
}

.work-services-grid:has(.work-service-card:focus-within) .work-service-card-featured:not(:focus-within) li {
	border-color: rgba(7, 25, 37, 0.12);
}

.work-topics {
	padding: clamp(95px, 10vw, 160px) 0;
	background: var(--ivory);
}

.work-topics-grid {
	display: grid;
	grid-template-columns: minmax(280px, 0.85fr) minmax(420px, 1.15fr);
	gap: clamp(70px, 10vw, 150px);
}

.work-topics-intro > p:last-child {
	max-width: 480px;
	margin: 28px 0 0;
	color: rgba(32, 42, 48, 0.75);
	font-family: var(--font-reading);
	font-size: 1.08rem;
	line-height: 1.75;
}

.work-topic-list {
	border-top: 1px solid rgba(7, 25, 37, 0.18);
}

.work-topic-list > div {
	display: grid;
	grid-template-columns: 52px 1fr;
	gap: 20px;
	align-items: center;
	padding: 24px 0;
	border-bottom: 1px solid rgba(7, 25, 37, 0.18);
}

.work-topic-list span {
	color: var(--amber-dark);
	font-family: var(--font-navigation);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.14em;
}

.work-topic-list h3 {
	margin: 0;
	color: var(--navy-deep);
	font-family: var(--font-display);
	font-size: clamp(1.5rem, 2.2vw, 2.1rem);
	font-weight: 400;
	letter-spacing: 0.035em;
	line-height: 1.08;
	text-transform: uppercase;
}

.work-approach {
	position: relative;
	padding: clamp(95px, 10vw, 155px) 0;
	background:
		linear-gradient(rgba(7, 25, 37, 0.95), rgba(7, 25, 37, 0.98)),
		url("assets/images/navy-texture.png") center / cover;
	color: var(--ivory);
}

.work-approach::after {
	position: absolute;
	right: -170px;
	bottom: -190px;
	width: 600px;
	height: 600px;
	background: url("assets/images/topo-pattern.png") center / contain no-repeat;
	content: "";
	opacity: 0.07;
}

.work-section-heading-light,
.work-approach-grid {
	position: relative;
	z-index: 1;
}

.work-section-heading-light h2 {
	color: var(--ivory);
}

.work-approach-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid rgba(243, 234, 220, 0.18);
	border-bottom: 1px solid rgba(243, 234, 220, 0.18);
}

.work-approach article {
	padding: 38px 34px 42px;
	border-right: 1px solid rgba(243, 234, 220, 0.18);
}

.work-approach article:last-child {
	border-right: 0;
}

.work-approach article h3 {
	margin: 45px 0 14px;
	color: var(--ivory);
	font-family: var(--font-display);
	font-size: 2rem;
	font-weight: 400;
	letter-spacing: 0.045em;
	text-transform: uppercase;
}

.work-approach article p {
	margin: 0;
	color: rgba(243, 234, 220, 0.72);
	font-family: var(--font-reading);
	line-height: 1.7;
}

.work-credentials {
	padding: clamp(90px, 10vw, 155px) 0;
	background: #e3e7e5;
}

.work-credentials-grid {
	display: grid;
	grid-template-columns: minmax(300px, 1fr) minmax(400px, 0.9fr);
	gap: clamp(70px, 10vw, 150px);
	align-items: start;
}

.work-credentials blockquote {
	margin: 20px 0 0;
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(2.45rem, 3.7vw, 4rem);
	font-weight: 500;
	letter-spacing: -0.04em;
	line-height: 1.06;
}

.work-credentials-list {
	border-top: 1px solid rgba(7, 25, 37, 0.18);
}

.work-credentials-list p {
	display: grid;
	grid-template-columns: 130px 1fr;
	gap: 25px;
	align-items: baseline;
	margin: 0;
	padding: 22px 0;
	border-bottom: 1px solid rgba(7, 25, 37, 0.18);
}

.work-credentials-list strong {
	color: var(--amber-dark);
	font-family: var(--font-display);
	font-size: 1.45rem;
	font-weight: 400;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.work-credentials-list span {
	color: rgba(32, 42, 48, 0.75);
	font-family: var(--font-reading);
}

.work-closing {
	padding: clamp(100px, 11vw, 175px) 0;
	background:
		linear-gradient(rgba(243, 234, 220, 0.93), rgba(243, 234, 220, 0.98)),
		url("assets/images/topo-pattern.png") center / 850px auto no-repeat;
	text-align: center;
}

.work-closing-inner {
	max-width: 850px;
}

.work-closing p:not(.eyebrow) {
	max-width: 650px;
	margin: 27px auto 34px;
	color: rgba(32, 42, 48, 0.76);
	font-family: var(--font-reading);
	font-size: 1.15rem;
	line-height: 1.7;
}

@media (max-width: 980px) {
	.work-introduction-grid,
	.work-topics-grid,
	.work-credentials-grid {
		grid-template-columns: 1fr;
		gap: 56px;
	}

	.work-service-card,
	.work-service-card-featured {
		min-height: 0;
	}

	.work-service-card > a {
		margin-top: 18px;
	}
}

@media (max-width: 1100px) and (min-width: 721px) {
	.work-services-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}

	.work-service-card {
		min-height: 500px;
	}
}

@media (max-width: 720px) {
	.work-hero {
		min-height: 690px;
		padding-top: 80px;
	}

	.work-hero h1 {
		font-size: clamp(3.65rem, 17vw, 5.3rem);
	}

	.work-hero-ridge {
		height: 165px;
		background-size: auto 100%;
	}

	.work-services-grid {
		grid-template-columns: 1fr;
	}

	.work-service-card,
	.work-service-card-featured,
	.work-service-card:focus-within {
		box-shadow: none;
		transform: none;
	}

	.work-approach-grid {
		grid-template-columns: 1fr;
	}

	.work-approach article {
		border-right: 0;
		border-bottom: 1px solid rgba(243, 234, 220, 0.18);
	}

	.work-approach article:last-child {
		border-bottom: 0;
	}

	.work-credentials-list p {
		grid-template-columns: 1fr;
		gap: 4px;
	}
}

/* ========================================
   JOURNAL / BLOG ARCHIVE
======================================== */

.journal-page {
	overflow: hidden;
	background: var(--ivory);
}

.journal-hero {
	position: relative;
	display: flex;
	min-height: calc(100svh - 120px);
	padding: clamp(90px, 9vw, 135px) 0 clamp(110px, 12vw, 175px);
	overflow: hidden;
	isolation: isolate;
	background:
		linear-gradient(135deg, rgba(13, 37, 53, 0.95), rgba(22, 57, 77, 0.84)),
		url("assets/images/navy-texture.png") center / cover;
	color: var(--ivory);
	align-items: center;
}

.journal-hero::before {
	position: absolute;
	inset: 0;
	z-index: 2;
	width: 100%;
	height: 100%;
	background-image: url("assets/images/topo-pattern.png");
	background-position: center;
	background-repeat: repeat;
	background-size: 760px auto;
	content: "";
	opacity: 0.1;
	pointer-events: none;
}

.journal-hero-inner {
	position: relative;
	z-index: 3;
}

.journal-hero h1 {
	max-width: 900px;
	margin: 14px 0 25px;
	color: var(--ivory);
	font-family: var(--font-editorial);
	font-size: clamp(4.4rem, 8vw, 8rem);
	font-weight: 500;
	letter-spacing: -0.055em;
	line-height: 0.82;
}

.journal-hero-inner > p:last-of-type {
	max-width: 650px;
	margin: 0;
	color: rgba(243, 234, 220, 0.78);
	font-family: var(--font-reading);
	font-size: clamp(1.1rem, 1.5vw, 1.3rem);
	line-height: 1.7;
}

.journal-hero-ridge {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: url("assets/images/mountain-range-hero.png") center bottom / 100% auto no-repeat;
	filter: brightness(0.48) contrast(1.12) saturate(0.78);
	opacity: 0.9;
	pointer-events: none;
}

.journal-hero-ridge::before {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(7, 25, 37, 0.18) 0%,
		rgba(7, 25, 37, 0.03) 48%,
		rgba(7, 25, 37, 0.16) 100%
	);
	content: "";
	pointer-events: none;
}

.journal-stories {
	padding: clamp(90px, 9vw, 145px) 0 clamp(100px, 10vw, 165px);
	background:
		linear-gradient(rgba(243, 234, 220, 0.96), rgba(243, 234, 220, 0.985)),
		url("assets/images/topo-pattern.png") right -190px top 160px / 650px auto no-repeat;
}

.journal-section-label {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	margin-bottom: 27px;
	padding-bottom: 13px;
	border-bottom: 1px solid rgba(7, 25, 37, 0.16);
}

.journal-section-label p {
	margin: 0;
}

.journal-section-label > span {
	color: rgba(7, 25, 37, 0.48);
	font-family: var(--font-navigation);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.journal-featured-story {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(340px, 0.85fr);
	min-height: 560px;
	overflow: hidden;
	border: 1px solid rgba(7, 25, 37, 0.12);
	border-top: 3px solid var(--amber);
	background: rgba(255, 255, 255, 0.78);
	box-shadow: 0 18px 48px rgba(7, 25, 37, 0.1);
	transition: box-shadow 220ms ease, transform 220ms ease;
}

.journal-featured-story:hover,
.journal-featured-story:focus-within {
	box-shadow: 0 25px 60px rgba(7, 25, 37, 0.14);
	transform: translateY(-5px);
}

.journal-featured-image,
.journal-card-image {
	position: relative;
	display: block;
	overflow: hidden;
	background: var(--navy);
}

.journal-featured-image::after,
.journal-card-image::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 52%, rgba(7, 25, 37, 0.3));
	content: "";
	pointer-events: none;
}

.journal-featured-image img,
.journal-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 500ms ease;
}

.journal-featured-story:hover .journal-featured-image img,
.journal-card:hover .journal-card-image img {
	transform: scale(1.035);
}

.journal-image-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 300px;
	background:
		linear-gradient(rgba(7, 25, 37, 0.25), rgba(7, 25, 37, 0.58)),
		url("assets/images/mountain-range-hero.png") center / cover no-repeat;
}

.journal-featured-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(42px, 5vw, 76px);
	background:
		linear-gradient(rgba(255, 255, 255, 0.9), rgba(243, 234, 220, 0.88)),
		url("assets/images/topo-pattern.png") right -170px top -120px / 430px auto no-repeat;
	color: var(--navy-deep);
}

.journal-post-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	color: var(--amber-dark);
	font-family: var(--font-navigation);
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.journal-post-meta span + span::before {
	margin-right: 22px;
	color: rgba(7, 25, 37, 0.32);
	content: "·";
}

.journal-featured-content h2 {
	margin: 22px 0 23px;
	line-height: 1;
}

.journal-featured-content h2 a,
.journal-card h2 a {
	color: inherit;
	text-decoration: none;
}

.journal-main-title,
.journal-subtitle {
	display: block;
}

.journal-featured-content .journal-main-title {
	color: var(--navy-deep);
	font-family: var(--font-display);
	font-size: clamp(3.1rem, 4.5vw, 5rem);
	font-weight: 400;
	letter-spacing: 0.025em;
	line-height: 0.92;
	text-transform: uppercase;
}

.journal-featured-content .journal-subtitle {
	margin-top: 8px;
	color: rgba(32, 42, 48, 0.78);
	font-family: var(--font-editorial);
	font-size: clamp(1.65rem, 2.5vw, 2.6rem);
	font-weight: 400;
	line-height: 1.05;
}

.journal-featured-excerpt {
	margin: 0 0 29px;
	color: rgba(32, 42, 48, 0.74);
	font-family: var(--font-reading);
	font-size: 1.03rem;
	line-height: 1.7;
}

.journal-read-link {
	display: inline-block;
	align-self: flex-start;
	padding-bottom: 5px;
	border-bottom: 2px solid var(--amber);
	color: inherit;
	font-family: var(--font-navigation);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-decoration: none;
	text-transform: uppercase;
}

.journal-read-link::after {
	content: "  →";
	color: var(--amber);
}

.journal-read-link:hover,
.journal-read-link:focus {
	color: var(--amber);
}

.journal-more-label {
	margin-top: clamp(82px, 9vw, 130px);
}

.journal-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
}

.journal-card {
	display: flex;
	min-width: 0;
	flex-direction: column;
	border: 1px solid rgba(7, 25, 37, 0.14);
	background: rgba(255, 255, 255, 0.3);
	transition: box-shadow 220ms ease, transform 220ms ease;
}

.journal-card:hover {
	box-shadow: 0 22px 48px rgba(7, 25, 37, 0.12);
	transform: translateY(-7px);
}

.journal-card-image {
	height: 265px;
}

.journal-card-content {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 28px 29px 31px;
}

.journal-card .journal-post-meta {
	color: var(--amber-dark);
}

.journal-card h2 {
	margin: 17px 0 16px;
}

.journal-card .journal-main-title {
	color: var(--navy-deep);
	font-family: var(--font-display);
	font-size: clamp(2rem, 2.6vw, 2.8rem);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 0.95;
	text-transform: uppercase;
}

.journal-card .journal-subtitle {
	margin-top: 7px;
	color: rgba(32, 42, 48, 0.76);
	font-family: var(--font-editorial);
	font-size: 1.45rem;
	font-weight: 500;
	line-height: 1.08;
}

.journal-card-content > p {
	margin: 0 0 25px;
	color: rgba(32, 42, 48, 0.74);
	font-family: var(--font-reading);
	font-size: 0.98rem;
	line-height: 1.65;
}

.journal-card .journal-read-link {
	margin-top: auto;
	color: var(--navy-deep);
}

.journal-stories .navigation.pagination {
	margin-top: clamp(60px, 7vw, 90px);
}

.journal-stories .nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.journal-stories .page-numbers {
	display: grid;
	min-width: 44px;
	height: 44px;
	place-items: center;
	padding: 0 13px;
	border: 1px solid rgba(7, 25, 37, 0.18);
	color: var(--navy-deep);
	font-family: var(--font-navigation);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-decoration: none;
	text-transform: uppercase;
}

.journal-stories .page-numbers.current,
.journal-stories a.page-numbers:hover,
.journal-stories a.page-numbers:focus {
	border-color: var(--navy-deep);
	background: var(--navy-deep);
	color: var(--ivory);
}

.journal-stories .page-numbers.prev,
.journal-stories .page-numbers.next {
	width: auto;
}

.journal-empty {
	max-width: 720px;
	margin: 0 auto;
	padding: 70px 30px;
	text-align: center;
}

.journal-empty h2 {
	margin: 14px 0 20px;
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(2.8rem, 5vw, 4.5rem);
	font-weight: 500;
	line-height: 1;
}

.journal-closing {
	position: relative;
	padding: clamp(105px, 11vw, 175px) 0;
	background:
		linear-gradient(rgba(7, 25, 37, 0.92), rgba(7, 25, 37, 0.98)),
		url("assets/images/mountain-range-hero.png") center 58% / cover no-repeat;
	color: var(--ivory);
	text-align: center;
}

.journal-closing-inner {
	max-width: 900px;
}

.journal-closing h2 {
	margin: 14px 0 22px;
	color: var(--ivory);
	font-family: var(--font-editorial);
	font-size: clamp(3rem, 5vw, 5rem);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 1;
}

.journal-closing-inner > p:not(.eyebrow) {
	max-width: 650px;
	margin: 0 auto 33px;
	color: rgba(243, 234, 220, 0.78);
	font-family: var(--font-reading);
	font-size: 1.12rem;
	line-height: 1.7;
}

.journal-closing-actions {
	justify-content: center;
}

@media (max-width: 980px) {
	.journal-featured-story {
		grid-template-columns: 1fr;
	}

	.journal-featured-image {
		height: 520px;
	}

	.journal-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 650px) {
	.journal-hero {
		min-height: 720px;
		padding-top: 85px;
		padding-bottom: 150px;
		align-items: flex-start;
	}

	.journal-hero h1 {
		font-size: clamp(3.8rem, 19vw, 5.4rem);
	}

	.journal-hero::before {
		background-size: 620px auto;
		opacity: 0.085;
	}

	.journal-hero-ridge {
		background-position: center bottom;
		background-size: auto 64%;
		filter: brightness(0.42) contrast(1.14) saturate(0.74);
	}

	.journal-featured-story {
		min-height: 0;
	}

	.journal-featured-image {
		height: 360px;
	}

	.journal-featured-content {
		padding: 38px 28px 42px;
	}

	.journal-grid {
		grid-template-columns: 1fr;
	}

	.journal-card-image {
		height: 250px;
	}

	.journal-section-label > span {
		display: none;
	}
}

@media (max-width: 480px) {
	.journal-hero {
		min-height: 690px;
		padding-top: 70px;
		padding-bottom: 125px;
	}

	.journal-hero-ridge {
		background-size: auto 58%;
	}
}

/* ========================================
   BOOK LANDING PAGE
======================================== */

.book-page {
	overflow: hidden;
	background: var(--ivory);
}

.book-hero {
	position: relative;
	min-height: 850px;
	padding: clamp(85px, 8vw, 135px) 0 245px;
	background-color: #f3eadc;
	background-image:
		linear-gradient(rgba(243, 234, 220, 0.92), rgba(243, 234, 220, 0.97)),
		url("assets/images/topo-pattern.png");
	background-position: center, right -260px top -100px;
	background-repeat: no-repeat;
	background-size: auto, 720px auto;
}

.book-hero-grid {
	position: relative;
	z-index: 3;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.75fr);
	gap: clamp(60px, 8vw, 120px);
	align-items: center;
}

.book-hero h1 {
	max-width: 800px;
	margin: 18px 0 27px;
	color: var(--navy-deep);
	font-family: var(--font-display);
	font-size: clamp(4.8rem, 8vw, 8.2rem);
	font-weight: 400;
	letter-spacing: 0.005em;
	line-height: 0.82;
	text-transform: uppercase;
}

.book-hero-tagline {
	margin: 0 0 23px;
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(2rem, 3vw, 3.1rem);
	font-weight: 500;
	letter-spacing: -0.025em;
	line-height: 1.08;
}

.book-hero-description {
	max-width: 650px;
	margin: 0 0 34px;
	color: rgba(32, 42, 48, 0.76);
	font-family: var(--font-reading);
	font-size: 1.08rem;
	line-height: 1.7;
}

.book-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 22px 27px;
	align-items: center;
}

.book-text-link {
	padding-bottom: 4px;
	border-bottom: 1px solid var(--amber-dark);
	color: var(--navy-deep);
	font-family: var(--font-navigation);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-decoration: none;
	text-transform: uppercase;
}

.book-cover-stage {
	position: relative;
	justify-self: end;
	width: min(100%, 440px);
	perspective: 1200px;
}

.book-cover-shadow {
	position: absolute;
	right: -35px;
	bottom: -34px;
	left: 30px;
	height: 70px;
	border-radius: 50%;
	background: rgba(7, 25, 37, 0.19);
	filter: blur(25px);
	transform: rotate(-3deg);
}

.book-cover-image {
	position: relative;
	z-index: 1;
	width: 100%;
	border: 1px solid rgba(7, 25, 37, 0.13);
	box-shadow: 24px 28px 45px rgba(7, 25, 37, 0.2);
	transform: rotateY(-7deg) rotateZ(1deg);
}

.book-availability {
	position: absolute;
	right: -33px;
	bottom: 55px;
	z-index: 2;
	padding: 10px 16px;
	background: var(--amber);
	color: var(--navy-deep);
	font-family: var(--font-navigation);
	font-size: 0.64rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	transform: rotate(-90deg) translateX(100%);
	transform-origin: right bottom;
}

.book-hero-contours {
	position: absolute;
	top: -110px;
	left: -150px;
	width: 520px;
	height: 520px;
	background: url("assets/images/topo-pattern.png") center / contain no-repeat;
	opacity: 0.12;
	pointer-events: none;
}

.book-hero-mountains {
	position: absolute;
	right: 0;
	bottom: -1px;
	left: 0;
	z-index: 2;
	height: 245px;
	background: url("assets/images/mountain-range-transition.png") center bottom / 100% 100% no-repeat;
	pointer-events: none;
}

.book-introduction {
	padding: clamp(95px, 10vw, 160px) 0;
	background: var(--ivory);
}

.book-introduction-grid,
.book-for-you-grid {
	display: grid;
	grid-template-columns: minmax(300px, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(70px, 10vw, 150px);
}

.book-introduction-heading h2,
.book-for-you-heading h2,
.book-purchase-copy h2,
.book-author-note h2 {
	margin: 14px 0 0;
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(2.8rem, 4.2vw, 4.3rem);
	font-weight: 500;
	letter-spacing: -0.04em;
	line-height: 1.02;
}

.book-introduction-copy {
	color: rgba(32, 42, 48, 0.8);
	font-family: var(--font-reading);
	font-size: 1.08rem;
	line-height: 1.82;
}

.book-introduction-copy p {
	margin: 0 0 27px;
}

.book-introduction-copy .book-lead {
	color: var(--navy-deep);
	font-size: clamp(1.3rem, 1.8vw, 1.55rem);
	line-height: 1.6;
}

.book-editor-content {
	margin-top: 35px;
	padding-top: 30px;
	border-top: 1px solid rgba(7, 25, 37, 0.16);
}

.book-discoveries {
	padding: clamp(90px, 9vw, 145px) 0;
	background: #e5e8e5;
}

.book-section-heading {
	max-width: 760px;
	margin-bottom: clamp(48px, 6vw, 76px);
}

.book-section-heading h2 {
	margin: 12px 0 0;
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(2.8rem, 4vw, 4.1rem);
	font-weight: 500;
	letter-spacing: -0.04em;
	line-height: 1;
}

.book-discovery-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid rgba(7, 25, 37, 0.17);
	border-bottom: 1px solid rgba(7, 25, 37, 0.17);
}

.book-discovery-grid article {
	padding: 34px 28px 38px;
	border-right: 1px solid rgba(7, 25, 37, 0.17);
}

.book-discovery-grid article:last-child {
	border-right: 0;
}

.book-discovery-grid span,
.book-reader-list span {
	color: var(--amber-dark);
	font-family: var(--font-navigation);
	font-size: 0.67rem;
	font-weight: 700;
	letter-spacing: 0.15em;
}

.book-discovery-grid h3 {
	margin: 43px 0 15px;
	color: var(--navy-deep);
	font-family: var(--font-display);
	font-size: 2.2rem;
	font-weight: 400;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.book-discovery-grid p {
	margin: 0;
	color: rgba(32, 42, 48, 0.73);
	font-family: var(--font-reading);
	font-size: 0.98rem;
	line-height: 1.65;
}

.book-guided-note {
	max-width: 760px;
	margin: 38px auto 0;
	color: rgba(32, 42, 48, 0.68);
	font-family: var(--font-editorial);
	font-size: 1.35rem;
	font-style: italic;
	text-align: center;
}

.book-statement {
	padding: clamp(115px, 13vw, 205px) 0;
	background:
		linear-gradient(rgba(7, 25, 37, 0.91), rgba(7, 25, 37, 0.98)),
		url("assets/images/navy-texture.png") center / cover;
	color: var(--ivory);
	text-align: center;
}

.book-statement-inner {
	max-width: 1010px;
}

.book-statement blockquote {
	margin: 22px 0 0;
	color: var(--ivory);
	font-family: var(--font-editorial);
	font-size: clamp(2.7rem, 5vw, 5.2rem);
	font-weight: 500;
	letter-spacing: -0.04em;
	line-height: 1.04;
}

.book-for-you {
	padding: clamp(95px, 10vw, 160px) 0;
	background:
		linear-gradient(rgba(243, 234, 220, 0.95), rgba(243, 234, 220, 0.98)),
		url("assets/images/topo-pattern.png") left -210px center / 620px auto no-repeat;
}

.book-reader-list {
	border-top: 1px solid rgba(7, 25, 37, 0.17);
}

.book-reader-list p {
	display: grid;
	grid-template-columns: 45px 1fr;
	gap: 18px;
	margin: 0;
	padding: 22px 0;
	border-bottom: 1px solid rgba(7, 25, 37, 0.17);
	color: rgba(32, 42, 48, 0.8);
	font-family: var(--font-reading);
	font-size: 1.05rem;
	line-height: 1.55;
}

.book-author-note {
	padding: clamp(95px, 10vw, 155px) 0;
	background: #e5e8e5;
}

.book-author-note-inner {
	max-width: 820px;
}

.book-author-note h2 {
	margin-bottom: 30px;
}

.book-author-note-inner > p:not(.eyebrow) {
	color: rgba(32, 42, 48, 0.78);
	font-family: var(--font-reading);
	font-size: 1.08rem;
	line-height: 1.82;
}

.book-author-signature {
	display: block;
	margin-top: 30px;
	color: var(--amber-dark);
	font-family: var(--font-editorial);
	font-size: 1.55rem;
	font-style: italic;
}

.book-purchase {
	padding: clamp(90px, 10vw, 155px) 0;
	background: var(--ivory);
}

.book-purchase-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
	gap: clamp(60px, 9vw, 135px);
	align-items: center;
}

.book-mockup-wrap img {
	width: 100%;
	box-shadow: 0 25px 65px rgba(7, 25, 37, 0.14);
}

.book-purchase-copy > p:not(.eyebrow) {
	margin: 26px 0 33px;
	color: rgba(32, 42, 48, 0.76);
	font-family: var(--font-reading);
	font-size: 1.08rem;
	line-height: 1.75;
}

.book-purchase-copy small {
	display: block;
	margin-top: 14px;
	color: rgba(32, 42, 48, 0.5);
	font-family: var(--font-navigation);
	font-size: 0.65rem;
	letter-spacing: 0.05em;
}

@media (max-width: 980px) {
	.book-hero-grid,
	.book-introduction-grid,
	.book-for-you-grid,
	.book-purchase-grid {
		grid-template-columns: 1fr;
	}

	.book-cover-stage {
		justify-self: start;
		width: min(82vw, 430px);
	}

	.book-discovery-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.book-discovery-grid article:nth-child(2) {
		border-right: 0;
	}

	.book-discovery-grid article:nth-child(-n+2) {
		border-bottom: 1px solid rgba(7, 25, 37, 0.17);
	}

	.book-mockup-wrap {
		max-width: 760px;
	}
}

@media (max-width: 600px) {
	.book-hero {
		padding-top: 65px;
	}

	.book-hero h1 {
		font-size: clamp(4rem, 20vw, 5.7rem);
	}

	.book-hero-mountains {
		height: 155px;
		background-size: auto 100%;
	}

	.book-availability {
		right: 0;
		bottom: 0;
		transform: none;
	}

	.book-discovery-grid {
		grid-template-columns: 1fr;
	}

	.book-discovery-grid article,
	.book-discovery-grid article:nth-child(2) {
		border-right: 0;
		border-bottom: 1px solid rgba(7, 25, 37, 0.17);
	}

	.book-discovery-grid article:last-child {
		border-bottom: 0;
	}
}

/* ================================================================
   LIFE IN THE GAP PODCAST LANDING PAGE
   ================================================================ */

.gap-page {
	background: var(--color-field-ivory);
	color: var(--color-trailhead-navy);
}

.gap-hero {
	position: relative;
	display: flex;
	overflow: hidden;
	min-height: min(860px, calc(100vh - 86px));
	background-image: var(--gap-studio-image);
	background-position: center;
	background-size: cover;
	align-items: center;
}

.gap-hero-shade {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(7, 25, 37, 0.97) 0%, rgba(7, 25, 37, 0.82) 36%, rgba(7, 25, 37, 0.28) 70%, rgba(7, 25, 37, 0.2) 100%),
		linear-gradient(0deg, rgba(7, 25, 37, 0.72) 0%, transparent 40%);
}

.gap-hero-inner {
	position: relative;
	z-index: 2;
	padding-top: clamp(90px, 11vw, 155px);
	padding-bottom: clamp(120px, 13vw, 180px);
}

.gap-kicker {
	margin: 0 0 27px;
	color: var(--color-waypoint-amber);
	font-family: var(--font-navigation);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.gap-hero-logo {
	display: block;
	width: min(620px, 75vw);
	max-height: 290px;
	margin-bottom: 24px;
	object-fit: contain;
	object-position: left center;
}

.gap-hero-wordmark {
	display: flex;
	width: min(760px, 86vw);
	margin-bottom: 20px;
	color: var(--color-field-ivory);
	flex-direction: column;
}

.gap-hero-wordmark > span {
	font-family: var(--font-display);
	font-size: clamp(5rem, 10.5vw, 9.6rem);
	font-weight: 400;
	letter-spacing: 0.015em;
	line-height: 0.82;
	text-transform: uppercase;
}

.gap-hero-wordmark small {
	display: flex;
	gap: 20px;
	align-items: center;
	margin-top: 18px;
	font-family: var(--font-navigation);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.42em;
	text-transform: uppercase;
}

.gap-hero-wordmark small::before,
.gap-hero-wordmark small::after {
	display: block;
	width: 70px;
	height: 1px;
	background: var(--color-waypoint-amber);
	content: "";
}

.gap-hero-statement {
	margin: 28px 0 10px;
	color: var(--color-field-ivory);
	font-family: var(--font-editorial);
	font-size: clamp(1.8rem, 3vw, 2.8rem);
	font-style: italic;
	font-weight: 500;
	line-height: 1.1;
}

.gap-hero-copy {
	max-width: 650px;
	margin: 0 0 34px;
	color: rgba(243, 234, 220, 0.76);
	font-family: var(--font-reading);
	font-size: clamp(1.02rem, 1.5vw, 1.2rem);
	line-height: 1.7;
}

.gap-scroll-cue {
	position: absolute;
	bottom: 34px;
	left: 50%;
	z-index: 2;
	display: flex;
	gap: 12px;
	align-items: center;
	color: rgba(243, 234, 220, 0.7);
	font-family: var(--font-navigation);
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-decoration: none;
	text-transform: uppercase;
	transform: translateX(-50%);
}

.gap-scroll-cue span {
	color: var(--color-waypoint-amber);
	font-size: 1rem;
}

.gap-introduction {
	padding: clamp(95px, 11vw, 165px) 0;
	background: var(--color-field-ivory);
}

.gap-introduction-grid {
	display: grid;
	grid-template-columns: minmax(300px, 0.82fr) minmax(0, 1.18fr);
	gap: clamp(70px, 11vw, 160px);
}

.gap-introduction-heading h2,
.gap-section-heading h2,
.gap-host-copy h2,
.gap-website-inner h2 {
	margin: 13px 0 0;
	color: var(--color-trailhead-navy);
	font-family: var(--font-editorial);
	font-size: clamp(3.1rem, 5vw, 4.8rem);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 0.98;
}

.gap-introduction-copy {
	color: rgba(32, 42, 48, 0.77);
	font-family: var(--font-reading);
	font-size: 1.08rem;
	line-height: 1.82;
}

.gap-introduction-copy p {
	margin: 0 0 25px;
}

.gap-introduction-copy .gap-lead {
	color: var(--color-trailhead-navy);
	font-family: var(--font-editorial);
	font-size: clamp(1.45rem, 2vw, 1.85rem);
	font-weight: 500;
	line-height: 1.45;
}

.gap-themes {
	padding: clamp(90px, 10vw, 150px) 0;
	background: #e4e7e4;
}

.gap-section-heading {
	max-width: 720px;
	margin-bottom: clamp(50px, 6vw, 78px);
}

.gap-theme-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid rgba(7, 25, 37, 0.16);
	border-left: 1px solid rgba(7, 25, 37, 0.16);
}

.gap-theme-grid article {
	min-height: 285px;
	padding: 30px 29px 34px;
	border-right: 1px solid rgba(7, 25, 37, 0.16);
	border-bottom: 1px solid rgba(7, 25, 37, 0.16);
	background: rgba(255, 255, 255, 0.12);
	transition: background 220ms ease, transform 220ms ease;
}

.gap-theme-grid article:hover {
	position: relative;
	z-index: 1;
	background: var(--color-trailhead-navy);
	transform: translateY(-5px);
}

.gap-theme-grid article > span {
	color: var(--color-waypoint-amber);
	font-family: var(--font-navigation);
	font-size: 0.67rem;
	font-weight: 700;
	letter-spacing: 0.14em;
}

.gap-theme-grid h3 {
	margin: 52px 0 13px;
	color: var(--color-trailhead-navy);
	font-family: var(--font-display);
	font-size: 2.35rem;
	font-weight: 400;
	letter-spacing: 0.035em;
	line-height: 0.95;
	text-transform: uppercase;
}

.gap-theme-grid p {
	margin: 0;
	color: rgba(32, 42, 48, 0.7);
	font-family: var(--font-reading);
	font-size: 0.96rem;
	line-height: 1.62;
}

.gap-theme-grid article:hover h3 {
	color: var(--color-field-ivory);
}

.gap-theme-grid article:hover p {
	color: rgba(243, 234, 220, 0.72);
}

.gap-philosophy {
	padding: clamp(120px, 14vw, 215px) 0;
	background:
		linear-gradient(rgba(7, 25, 37, 0.94), rgba(7, 25, 37, 0.98)),
		url('assets/images/topo-pattern.png') center / 850px auto repeat;
	color: var(--color-field-ivory);
	text-align: center;
}

.gap-philosophy-inner {
	max-width: 1050px;
}

.gap-philosophy blockquote {
	margin: 24px 0 30px;
	color: var(--color-field-ivory);
	font-family: var(--font-editorial);
	font-size: clamp(3rem, 6vw, 5.8rem);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 1.02;
}

.gap-philosophy-inner > p:last-child {
	max-width: 720px;
	margin: 0 auto;
	color: rgba(243, 234, 220, 0.7);
	font-family: var(--font-reading);
	font-size: 1.08rem;
	line-height: 1.75;
}

.gap-host {
	padding: clamp(95px, 11vw, 165px) 0;
	background: var(--color-field-ivory);
}

.gap-host-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.92fr);
	gap: clamp(65px, 10vw, 145px);
	align-items: center;
}

.gap-host-image {
	position: relative;
}

.gap-host-image::after {
	position: absolute;
	right: -16px;
	bottom: -16px;
	left: 16px;
	z-index: 0;
	height: 65%;
	background: var(--color-waypoint-amber);
	content: "";
}

.gap-host-image img {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center;
	box-shadow: 0 24px 55px rgba(7, 25, 37, 0.15);
}

.gap-host-copy h2 {
	margin-bottom: 26px;
}

.gap-host-copy > p:not(.eyebrow) {
	margin: 0 0 22px;
	color: rgba(32, 42, 48, 0.76);
	font-family: var(--font-reading);
	font-size: 1.06rem;
	line-height: 1.76;
}

.gap-text-link {
	display: inline-flex;
	gap: 12px;
	align-items: center;
	margin-top: 8px;
	padding-bottom: 5px;
	border-bottom: 1px solid var(--color-waypoint-amber);
	color: var(--color-trailhead-navy);
	font-family: var(--font-navigation);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.11em;
	text-decoration: none;
	text-transform: uppercase;
}

.gap-website-cta {
	position: relative;
	overflow: hidden;
	padding: clamp(105px, 12vw, 180px) 0;
	background: #1c303a;
	color: var(--color-field-ivory);
	text-align: center;
}

.gap-website-contours {
	position: absolute;
	inset: -20%;
	background: url('assets/images/topo-pattern.png') center / 750px auto repeat;
	opacity: 0.09;
	transform: rotate(6deg);
}

.gap-website-inner {
	position: relative;
	z-index: 1;
	max-width: 920px;
}

.gap-website-inner h2 {
	margin-bottom: 26px;
	color: var(--color-field-ivory);
}

.gap-website-inner > p:not(.eyebrow) {
	max-width: 720px;
	margin: 0 auto 35px;
	color: rgba(243, 234, 220, 0.72);
	font-family: var(--font-reading);
	font-size: 1.08rem;
	line-height: 1.75;
}

@media (max-width: 980px) {
	.gap-hero-shade {
		background: linear-gradient(90deg, rgba(7, 25, 37, 0.94), rgba(7, 25, 37, 0.58));
	}

	.gap-introduction-grid,
	.gap-host-grid {
		grid-template-columns: 1fr;
	}

	.gap-theme-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gap-host-image {
		max-width: 780px;
	}
}

@media (max-width: 600px) {
	.gap-hero {
		min-height: 720px;
		background-position: 58% center;
	}

	.gap-hero-shade {
		background: linear-gradient(90deg, rgba(7, 25, 37, 0.96), rgba(7, 25, 37, 0.68));
	}

	.gap-hero-inner {
		padding-top: 80px;
		padding-bottom: 110px;
	}

	.gap-hero-wordmark > span {
		font-size: clamp(4rem, 20vw, 5.7rem);
	}

	.gap-hero-wordmark small::before,
	.gap-hero-wordmark small::after {
		width: 45px;
	}

	.gap-scroll-cue {
		left: 24px;
		transform: none;
	}

	.gap-theme-grid {
		grid-template-columns: 1fr;
	}

	.gap-theme-grid article {
		min-height: 245px;
	}
}

/* ================================================================
   NORTHERN LIGHTS PHOTOGRAPHY LANDING PAGE
   ================================================================ */

.nl-page {
	--nl-navy: #071925;
	--nl-slate: #263642;
	--nl-ivory: #f3eadc;
	--nl-amber: #cf812e;
	--nl-bronze: #ad7443;
	--nl-mist: #dce3e7;
	background: var(--nl-navy);
	color: var(--nl-ivory);
}

.nl-hero {
	position: relative;
	display: flex;
	overflow: hidden;
	min-height: min(900px, calc(100vh - 86px));
	background-image: var(--nl-hero);
	background-position: center;
	background-size: cover;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.nl-hero-overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(7, 25, 37, 0.58) 0%, rgba(7, 25, 37, 0.48) 50%, rgba(7, 25, 37, 0.42) 100%),
		linear-gradient(0deg, rgba(7, 25, 37, 0.72) 0%, rgba(7, 25, 37, 0.08) 55%, rgba(7, 25, 37, 0.28) 100%);
}

.nl-hero-inner {
	position: relative;
	z-index: 2;
	display: flex;
	width: 100%;
	max-width: 900px;
	padding-top: clamp(80px, 10vw, 140px);
	padding-bottom: clamp(115px, 13vw, 180px);
	align-items: center;
	flex-direction: column;
}

.nl-brand-logo {
	display: block;
	width: min(620px, 82vw);
	height: auto;
	margin: -8px auto 18px;
	filter: drop-shadow(0 4px 14px rgba(7, 25, 37, 0.24));
}

.nl-hero-tagline {
	margin: 0 0 15px;
	color: var(--nl-ivory);
	font-family: var(--font-navigation);
	font-size: clamp(0.75rem, 1.2vw, 0.9rem);
	font-weight: 500;
	letter-spacing: 0.24em;
	line-height: 1.6;
	text-transform: uppercase;
}

.nl-hero-tagline::after {
	display: block;
	width: 58px;
	height: 3px;
	margin: 20px auto 0;
	background: var(--nl-amber);
	content: "";
}

.nl-hero-copy {
	max-width: 640px;
	margin: 0 auto 32px;
	color: rgba(243, 234, 220, 0.76);
	font-family: 'Montserrat', sans-serif;
	font-size: clamp(1rem, 1.5vw, 1.18rem);
	line-height: 1.75;
}

.nl-hero-actions,
.nl-site-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 20px 28px;
	align-items: center;
}

.nl-hero-actions {
	justify-content: center;
}

.nl-button {
	display: inline-flex;
	min-height: 52px;
	padding: 0 24px;
	border: 1px solid var(--nl-amber);
	background: var(--nl-amber);
	color: var(--nl-navy);
	font-family: 'Montserrat', sans-serif;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-decoration: none;
	text-transform: uppercase;
	align-items: center;
	justify-content: center;
	transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}

a.nl-button:hover,
a.nl-button:focus {
	background: var(--nl-ivory);
	color: var(--nl-navy);
	transform: translateY(-2px);
}

.nl-text-link {
	display: inline-flex;
	gap: 11px;
	align-items: center;
	padding-bottom: 5px;
	border-bottom: 1px solid var(--nl-amber);
	color: var(--nl-navy);
	font-family: 'Montserrat', sans-serif;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-decoration: none;
	text-transform: uppercase;
}

.nl-text-link-light {
	color: var(--nl-ivory);
}

.nl-hero-side-note {
	position: absolute;
	bottom: 33px;
	left: 50%;
	z-index: 2;
	margin: 0;
	color: rgba(243, 234, 220, 0.6);
	font-family: 'Montserrat', sans-serif;
	font-size: 0.59rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	transform: translateX(-50%);
	white-space: nowrap;
}

.nl-eyebrow {
	margin: 0;
	color: var(--nl-amber);
	font-family: 'Montserrat', sans-serif;
	font-size: 0.67rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.nl-vision {
	padding: clamp(95px, 11vw, 170px) 0;
	background: var(--nl-ivory);
	color: var(--nl-navy);
}

.nl-vision-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(350px, 0.9fr);
	gap: clamp(65px, 10vw, 145px);
	align-items: center;
}

.nl-vision-image {
	position: relative;
}

.nl-vision-image::before {
	position: absolute;
	top: -18px;
	right: 18px;
	bottom: 18px;
	left: -18px;
	border: 1px solid var(--nl-bronze);
	content: "";
}

.nl-vision-image img {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	box-shadow: 0 24px 55px rgba(7, 25, 37, 0.15);
}

.nl-vision-copy h2,
.nl-section-heading h2,
.nl-services-heading h2,
.nl-site-inner h2 {
	margin: 13px 0 27px;
	color: var(--nl-navy);
	font-family: var(--font-editorial);
	font-size: clamp(3rem, 5vw, 4.8rem);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 1;
}

.nl-vision-copy > p:not(.nl-eyebrow) {
	margin: 0 0 22px;
	color: rgba(7, 25, 37, 0.72);
	font-family: 'Montserrat', sans-serif;
	font-size: 0.98rem;
	line-height: 1.78;
}

.nl-vision-copy .nl-lead {
	color: var(--nl-navy);
	font-family: var(--font-editorial);
	font-size: clamp(1.45rem, 2vw, 1.85rem);
	font-weight: 500;
	line-height: 1.43;
}

.nl-portfolio {
	padding: clamp(90px, 10vw, 145px) 0 0;
	background: var(--nl-navy);
}

.nl-section-heading {
	margin-bottom: clamp(45px, 6vw, 72px);
}

.nl-section-heading h2 {
	color: var(--nl-ivory);
}

.nl-gallery {
	display: grid;
	grid-auto-rows: minmax(250px, 32vw);
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.nl-gallery figure {
	position: relative;
	overflow: hidden;
	margin: 0;
}

.nl-gallery-wide {
	grid-column: span 2;
}

.nl-gallery-tall {
	grid-row: span 2;
}

.nl-gallery img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.92) contrast(1.03);
	transition: filter 500ms ease, transform 700ms ease;
}

.nl-gallery figure:hover img {
	filter: saturate(1.07) contrast(1.04);
	transform: scale(1.035);
}

.nl-gallery figcaption {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	padding: 45px 22px 19px;
	background: linear-gradient(transparent, rgba(7, 25, 37, 0.8));
	color: var(--nl-ivory);
	font-family: 'Montserrat', sans-serif;
	font-size: 0.62rem;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	opacity: 0;
	transition: opacity 220ms ease;
}

.nl-gallery figure:hover figcaption {
	opacity: 1;
}

.nl-services {
	padding: clamp(95px, 11vw, 165px) 0;
	background:
		linear-gradient(rgba(7, 25, 37, 0.97), rgba(7, 25, 37, 0.97)),
		url('assets/images/topo-pattern.png') center / 780px auto repeat;
}

.nl-services-heading {
	max-width: 880px;
	margin-bottom: clamp(50px, 7vw, 85px);
}

.nl-services-heading h2 {
	color: var(--nl-ivory);
}

.nl-services-heading > p:not(.nl-eyebrow) {
	max-width: 720px;
	color: rgba(243, 234, 220, 0.68);
	font-family: 'Montserrat', sans-serif;
	font-size: 0.96rem;
	line-height: 1.75;
}

.nl-service-list {
	border-top: 1px solid rgba(243, 234, 220, 0.2);
}

.nl-service-list article {
	display: grid;
	grid-template-columns: 52px minmax(230px, 1.15fr) minmax(150px, 0.45fr) minmax(190px, 0.7fr);
	gap: clamp(20px, 3vw, 48px);
	align-items: center;
	padding: 35px 0 38px;
	border-bottom: 1px solid rgba(243, 234, 220, 0.2);
	transition: background 200ms ease, padding 200ms ease;
}

.nl-service-list article:hover {
	padding-right: 24px;
	padding-left: 24px;
	background: rgba(243, 234, 220, 0.045);
}

.nl-service-number {
	color: var(--nl-amber);
	font-family: 'Montserrat', sans-serif;
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.15em;
}

.nl-service-main h3 {
	margin: 0 0 9px;
	color: var(--nl-ivory);
	font-family: var(--font-display);
	font-size: clamp(1.9rem, 2.7vw, 2.7rem);
	font-weight: 400;
	letter-spacing: 0.035em;
	line-height: 0.95;
	text-transform: uppercase;
}

.nl-service-main p {
	max-width: 520px;
	margin: 0;
	color: rgba(243, 234, 220, 0.6);
	font-family: 'Montserrat', sans-serif;
	font-size: 0.86rem;
	line-height: 1.65;
}

.nl-service-price small {
	display: block;
	margin-bottom: 6px;
	color: rgba(243, 234, 220, 0.58);
	font-family: var(--font-editorial);
	font-size: 1rem;
	font-style: italic;
}

.nl-service-price strong {
	color: var(--nl-ivory);
	font-family: var(--font-editorial);
	font-size: 2.45rem;
	font-weight: 500;
	line-height: 1;
}

.nl-service-custom strong {
	font-size: 1.7rem;
	font-style: italic;
}

.nl-service-list ul {
	margin: 0;
	padding: 0;
	color: rgba(243, 234, 220, 0.72);
	font-family: 'Montserrat', sans-serif;
	font-size: 0.78rem;
	line-height: 1.75;
	list-style: none;
}

.nl-service-list li::before {
	margin-right: 9px;
	color: var(--nl-amber);
	content: "—";
}

.nl-service-note {
	display: flex;
	gap: 35px;
	align-items: center;
	justify-content: space-between;
	margin-top: 35px;
}

.nl-service-note p {
	max-width: 630px;
	margin: 0;
	color: rgba(243, 234, 220, 0.58);
	font-family: var(--font-editorial);
	font-size: 1.05rem;
	font-style: italic;
	line-height: 1.55;
}

.nl-service-note .nl-text-link {
	color: var(--nl-ivory);
	white-space: nowrap;
}

.nl-philosophy {
	display: grid;
	grid-template-columns: 1fr 1fr;
	background: var(--nl-ivory);
	color: var(--nl-navy);
}

.nl-philosophy-image img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 670px;
	object-fit: cover;
}

.nl-philosophy-copy {
	display: flex;
	padding: clamp(65px, 9vw, 135px);
	flex-direction: column;
	justify-content: center;
}

.nl-philosophy blockquote {
	margin: 23px 0 32px;
	color: var(--nl-navy);
	font-family: var(--font-editorial);
	font-size: clamp(3rem, 5vw, 5rem);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 1.02;
}

.nl-philosophy-copy > p:last-child {
	margin: 0;
	color: rgba(7, 25, 37, 0.62);
	font-family: 'Montserrat', sans-serif;
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	line-height: 1.8;
	text-transform: uppercase;
}

.nl-site-cta {
	position: relative;
	display: flex;
	overflow: hidden;
	min-height: 680px;
	padding: clamp(100px, 12vw, 175px) 0;
	background-image: var(--nl-closing);
	background-position: center;
	background-size: cover;
	align-items: center;
}

.nl-site-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(7, 25, 37, 0.97), rgba(7, 25, 37, 0.77) 55%, rgba(7, 25, 37, 0.38));
}

.nl-site-inner {
	position: relative;
	z-index: 1;
	max-width: 860px;
}

.nl-site-inner h2 {
	max-width: 780px;
	color: var(--nl-ivory);
}

.nl-site-inner > p:not(.nl-eyebrow) {
	max-width: 700px;
	margin: 0 0 34px;
	color: rgba(243, 234, 220, 0.72);
	font-family: 'Montserrat', sans-serif;
	font-size: 0.96rem;
	line-height: 1.75;
}

.nl-button-muted {
	cursor: default;
	opacity: 0.72;
}

@media (max-width: 1050px) {
	.nl-brand-logo {
		width: min(560px, 78vw);
	}

	.nl-gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nl-service-list article {
		grid-template-columns: 44px minmax(0, 1fr) 180px;
	}

	.nl-service-list ul {
		grid-column: 2 / -1;
	}
}

@media (max-width: 820px) {
	.nl-hero-overlay {
		background:
			linear-gradient(90deg, rgba(7, 25, 37, 0.64), rgba(7, 25, 37, 0.54)),
			linear-gradient(0deg, rgba(7, 25, 37, 0.76), rgba(7, 25, 37, 0.16) 58%, rgba(7, 25, 37, 0.34));
	}

	.nl-vision-grid,
	.nl-philosophy {
		grid-template-columns: 1fr;
	}

	.nl-philosophy-image img {
		min-height: 520px;
	}

	.nl-service-note {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (max-width: 600px) {
	.nl-hero {
		min-height: 740px;
		background-position: 58% center;
	}

	.nl-brand-logo {
		width: min(410px, 88vw);
		margin-right: auto;
		margin-left: auto;
	}

	.nl-hero-side-note {
		display: none;
	}

	.nl-gallery {
		grid-auto-rows: 310px;
		grid-template-columns: 1fr;
	}

	.nl-gallery-wide,
	.nl-gallery-tall {
		grid-column: auto;
		grid-row: auto;
	}

	.nl-gallery figcaption {
		opacity: 1;
	}

	.nl-service-list article {
		grid-template-columns: 36px 1fr;
	}

	.nl-service-price,
	.nl-service-list ul {
		grid-column: 2;
	}

	.nl-service-list article:hover {
		padding-right: 0;
		padding-left: 0;
	}

	.nl-philosophy-copy {
		padding: 70px 24px;
	}

	.nl-philosophy-image img {
		min-height: 430px;
	}

	.nl-site-actions {
		align-items: flex-start;
		flex-direction: column;
	}
}

/* ========================================
   SPEAKING PAGE
======================================== */

.speaker-page {
	overflow: hidden;
	background: var(--ivory);
}

.speaker-hero {
	position: relative;
	min-height: 830px;
	padding: clamp(105px, 11vw, 175px) 0 225px;
	background:
		linear-gradient(105deg, rgba(7, 25, 37, 0.99) 0%, rgba(7, 25, 37, 0.93) 62%, rgba(38, 54, 66, 0.86) 100%),
		url("assets/images/navy-texture.png") center / cover;
	color: var(--ivory);
}

.speaker-hero-glow {
	position: absolute;
	top: -280px;
	right: -190px;
	width: 760px;
	height: 760px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(207, 129, 46, 0.24) 0%, rgba(207, 129, 46, 0.06) 42%, transparent 70%);
	pointer-events: none;
}

.speaker-hero-contours,
.speaker-closing-contours {
	position: absolute;
	inset: 0;
	background: url("assets/images/topo-pattern.png") right -120px center / 700px auto no-repeat;
	opacity: 0.08;
	pointer-events: none;
}

.speaker-hero-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 160px;
	gap: clamp(50px, 8vw, 120px);
	align-items: center;
}

.speaker-hero-copy {
	max-width: 980px;
}

.speaker-hero h1 {
	max-width: 980px;
	margin: 17px 0 31px;
	color: var(--ivory);
	font-family: var(--font-editorial);
	font-size: clamp(4.3rem, 7.4vw, 7.9rem);
	font-weight: 500;
	letter-spacing: -0.055em;
	line-height: 0.87;
}

.speaker-hero-lead {
	max-width: 755px;
	margin: 0 0 40px;
	color: rgba(243, 234, 220, 0.79);
	font-family: var(--font-reading);
	font-size: clamp(1.08rem, 1.5vw, 1.32rem);
	line-height: 1.72;
}

.speaker-hero-mark {
	position: relative;
	display: flex;
	height: 390px;
	border: 1px solid rgba(243, 234, 220, 0.2);
	align-items: center;
	justify-content: center;
}

.speaker-hero-mark::before {
	position: absolute;
	top: -1px;
	left: 50%;
	width: 48px;
	height: 4px;
	background: var(--amber);
	content: "";
	transform: translateX(-50%);
}

.speaker-hero-mark span {
	color: var(--ivory);
	font-family: var(--font-display);
	font-size: 3.2rem;
	font-weight: 400;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	transform: rotate(-90deg);
}

.speaker-hero-ridge {
	position: absolute;
	right: 0;
	bottom: -1px;
	left: 0;
	z-index: 1;
	height: 275px;
	background: url("assets/images/mountain-range-transition.png") center bottom / 100% 100% no-repeat;
	pointer-events: none;
}

.speaker-audiences {
	padding: 25px 0;
	border-bottom: 1px solid rgba(7, 25, 37, 0.13);
	background: var(--ivory);
}

.speaker-audience-list {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
}

.speaker-audience-list span {
	padding: 7px 15px;
	border-right: 1px solid rgba(7, 25, 37, 0.14);
	color: var(--navy-deep);
	font-family: var(--font-navigation);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.17em;
	text-align: center;
	text-transform: uppercase;
}

.speaker-audience-list span:last-child {
	border-right: 0;
}

.speaker-introduction {
	padding: clamp(95px, 10vw, 160px) 0;
	background:
		linear-gradient(rgba(245, 241, 232, 0.96), rgba(245, 241, 232, 0.99)),
		url("assets/images/topo-pattern.png") left -220px center / 640px auto no-repeat;
}

.speaker-introduction-grid,
.speaker-outcomes-grid,
.speaker-experience-grid {
	display: grid;
	grid-template-columns: minmax(290px, 0.82fr) minmax(0, 1.18fr);
	gap: clamp(62px, 9vw, 140px);
	align-items: start;
}

.speaker-introduction h2,
.speaker-section-heading h2,
.speaker-book-copy h2,
.speaker-outcomes h2,
.speaker-experience h2,
.speaker-closing h2 {
	margin: 14px 0 0;
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(2.9rem, 4.4vw, 4.7rem);
	font-weight: 500;
	letter-spacing: -0.048em;
	line-height: 0.99;
}

.speaker-introduction-pull {
	max-width: 520px;
	margin: 28px 0 0;
	padding-left: 21px;
	border-left: 3px solid var(--amber);
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(1.45rem, 2vw, 1.85rem);
	font-style: italic;
	line-height: 1.36;
}

.speaker-introduction-copy {
	max-width: 735px;
	color: rgba(32, 42, 48, 0.8);
	font-family: var(--font-reading);
	font-size: clamp(1.04rem, 1.28vw, 1.18rem);
	line-height: 1.84;
}

.speaker-introduction-copy p {
	margin: 0 0 24px;
}

.speaker-introduction-copy .speaker-lead {
	color: var(--navy-deep);
	font-size: clamp(1.25rem, 1.7vw, 1.52rem);
	line-height: 1.6;
}

.speaker-editor-content {
	margin-top: 38px;
	padding-top: 30px;
	border-top: 1px solid rgba(7, 25, 37, 0.16);
}

.speaker-talks {
	padding: clamp(95px, 10vw, 155px) 0;
	background:
		linear-gradient(rgba(7, 25, 37, 0.975), rgba(7, 25, 37, 0.975)),
		url("assets/images/navy-texture.png") center / cover;
	color: var(--ivory);
}

.speaker-section-heading {
	max-width: 900px;
	margin-bottom: clamp(50px, 7vw, 84px);
}

.speaker-section-heading-light h2 {
	color: var(--ivory);
}

.speaker-talk-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border-top: 1px solid rgba(243, 234, 220, 0.18);
	border-left: 1px solid rgba(243, 234, 220, 0.18);
}

.speaker-talk-card {
	position: relative;
	min-height: 560px;
	padding: clamp(34px, 5vw, 64px);
	border-right: 1px solid rgba(243, 234, 220, 0.18);
	border-bottom: 1px solid rgba(243, 234, 220, 0.18);
	background: rgba(243, 234, 220, 0.015);
	transition: background 220ms ease, transform 220ms ease;
}

.speaker-talk-card-featured {
	background: var(--amber);
	color: var(--navy-deep);
}

.speaker-talk-number,
.speaker-format-grid article > span,
.speaker-process-grid article > span {
	color: var(--amber);
	font-family: var(--font-navigation);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.17em;
}

.speaker-talk-card-featured .speaker-talk-number {
	color: var(--navy-deep);
}

.speaker-talk-theme {
	margin: 70px 0 12px;
	color: rgba(243, 234, 220, 0.58);
	font-family: var(--font-navigation);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.speaker-talk-card-featured .speaker-talk-theme {
	color: rgba(7, 25, 37, 0.65);
}

.speaker-talk-card h3 {
	margin: 0 0 24px;
	color: var(--ivory);
	font-family: var(--font-display);
	font-size: clamp(2.7rem, 4.2vw, 4.6rem);
	font-weight: 400;
	letter-spacing: 0.02em;
	line-height: 0.92;
	text-transform: uppercase;
}

.speaker-talk-card-featured h3 {
	color: var(--navy-deep);
}

.speaker-talk-card > p:not(.speaker-talk-theme) {
	margin: 0 0 25px;
	color: rgba(243, 234, 220, 0.74);
	font-family: var(--font-reading);
	font-size: 1rem;
	line-height: 1.68;
}

.speaker-talk-card-featured > p:not(.speaker-talk-theme) {
	color: rgba(7, 25, 37, 0.78);
}

.speaker-talk-card ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.speaker-talk-card li {
	position: relative;
	padding: 9px 0 9px 20px;
	border-bottom: 1px solid rgba(243, 234, 220, 0.12);
	font-family: var(--font-reading);
	font-size: 0.92rem;
}

.speaker-talk-card-featured li {
	border-color: rgba(7, 25, 37, 0.14);
}

.speaker-talk-card li::before {
	position: absolute;
	top: 17px;
	left: 0;
	width: 6px;
	height: 6px;
	background: var(--amber);
	content: "";
}

.speaker-talk-card-featured li::before {
	background: var(--navy-deep);
}

@media (hover: hover) and (pointer: fine) {
	.speaker-talk-card:not(.speaker-talk-card-featured):hover {
		background: rgba(243, 234, 220, 0.055);
	}
}

.speaker-book-feature {
	padding: clamp(95px, 10vw, 160px) 0;
	background: var(--ivory);
}

.speaker-book-grid {
	display: grid;
	grid-template-columns: minmax(270px, 0.72fr) minmax(0, 1.28fr);
	gap: clamp(65px, 10vw, 150px);
	align-items: center;
}

.speaker-book-stage {
	position: relative;
	max-width: 390px;
	margin: 0 auto;
}

.speaker-book-stage::before {
	position: absolute;
	top: -22px;
	right: 26px;
	bottom: 22px;
	left: -26px;
	border: 1px solid var(--amber);
	content: "";
}

.speaker-book-stage img {
	position: relative;
	z-index: 2;
	width: 100%;
	box-shadow: 0 30px 60px rgba(7, 25, 37, 0.25);
	transform: rotate(-2deg);
}

.speaker-book-shadow {
	position: absolute;
	right: -32px;
	bottom: -25px;
	left: 25px;
	height: 70px;
	background: rgba(7, 25, 37, 0.2);
	filter: blur(28px);
	transform: rotate(-3deg);
}

.speaker-book-copy blockquote {
	margin: 27px 0;
	padding-left: 23px;
	border-left: 3px solid var(--amber);
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(1.6rem, 2.4vw, 2.25rem);
	font-style: italic;
	line-height: 1.3;
}

.speaker-book-copy > p:not(.eyebrow) {
	max-width: 690px;
	margin: 0 0 20px;
	color: rgba(32, 42, 48, 0.77);
	font-family: var(--font-reading);
	font-size: 1.04rem;
	line-height: 1.77;
}

.speaker-book-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 22px 30px;
	align-items: center;
	margin-top: 35px;
}

.speaker-text-link {
	display: inline-flex;
	gap: 10px;
	align-items: center;
	padding-bottom: 5px;
	border-bottom: 2px solid var(--amber);
	color: var(--navy-deep);
	font-family: var(--font-navigation);
	font-size: 0.67rem;
	font-weight: 700;
	letter-spacing: 0.11em;
	text-decoration: none;
	text-transform: uppercase;
}

.speaker-formats {
	padding: clamp(95px, 10vw, 155px) 0;
	background: var(--mist);
}

.speaker-format-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid rgba(7, 25, 37, 0.18);
	border-bottom: 1px solid rgba(7, 25, 37, 0.18);
}

.speaker-format-grid article {
	min-height: 355px;
	padding: 34px clamp(22px, 3vw, 38px);
	border-right: 1px solid rgba(7, 25, 37, 0.18);
}

.speaker-format-grid article:first-child {
	padding-left: 0;
}

.speaker-format-grid article:last-child {
	padding-right: 0;
	border-right: 0;
}

.speaker-format-grid article > span {
	color: var(--amber-dark);
}

.speaker-format-grid h3 {
	margin: 80px 0 16px;
	color: var(--navy-deep);
	font-family: var(--font-display);
	font-size: clamp(2rem, 2.8vw, 3rem);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 0.96;
	text-transform: uppercase;
}

.speaker-format-grid p {
	margin: 0;
	color: rgba(32, 42, 48, 0.72);
	font-family: var(--font-reading);
	font-size: 0.94rem;
	line-height: 1.65;
}

.speaker-outcomes {
	padding: clamp(95px, 10vw, 160px) 0;
	background: var(--ivory);
}

.speaker-outcome-list {
	border-top: 1px solid rgba(7, 25, 37, 0.17);
}

.speaker-outcome-list article {
	display: grid;
	grid-template-columns: 150px 1fr;
	gap: 30px;
	align-items: center;
	padding: 29px 0;
	border-bottom: 1px solid rgba(7, 25, 37, 0.17);
}

.speaker-outcome-list strong {
	color: var(--amber-dark);
	font-family: var(--font-display);
	font-size: 2.35rem;
	font-weight: 400;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.speaker-outcome-list p {
	margin: 0;
	color: rgba(32, 42, 48, 0.76);
	font-family: var(--font-reading);
	font-size: 1rem;
	line-height: 1.6;
}

.speaker-experience {
	padding: clamp(95px, 10vw, 160px) 0;
	background: #e3e7e5;
}

.speaker-experience-copy > p:not(.eyebrow) {
	max-width: 670px;
	margin: 24px 0 0;
	color: rgba(32, 42, 48, 0.76);
	font-family: var(--font-reading);
	font-size: 1.04rem;
	line-height: 1.78;
}

.speaker-experience-list {
	border-top: 1px solid rgba(7, 25, 37, 0.2);
}

.speaker-experience-list p {
	display: grid;
	grid-template-columns: 145px 1fr;
	gap: 28px;
	align-items: center;
	margin: 0;
	padding: 25px 0;
	border-bottom: 1px solid rgba(7, 25, 37, 0.2);
}

.speaker-experience-list strong {
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: 2rem;
	font-weight: 600;
	line-height: 1;
}

.speaker-experience-list span {
	color: rgba(32, 42, 48, 0.7);
	font-family: var(--font-reading);
	font-size: 0.96rem;
	line-height: 1.5;
}

.speaker-process {
	padding: clamp(95px, 10vw, 155px) 0;
	background: var(--navy-deep);
	color: var(--ivory);
}

.speaker-process-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid rgba(243, 234, 220, 0.18);
	border-bottom: 1px solid rgba(243, 234, 220, 0.18);
}

.speaker-process-grid article {
	min-height: 335px;
	padding: 34px clamp(28px, 4vw, 52px);
	border-right: 1px solid rgba(243, 234, 220, 0.18);
}

.speaker-process-grid article:first-child {
	padding-left: 0;
}

.speaker-process-grid article:last-child {
	padding-right: 0;
	border-right: 0;
}

.speaker-process-grid h3 {
	margin: 80px 0 16px;
	color: var(--ivory);
	font-family: var(--font-display);
	font-size: clamp(2.1rem, 3vw, 3.2rem);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 0.96;
	text-transform: uppercase;
}

.speaker-process-grid p {
	margin: 0;
	color: rgba(243, 234, 220, 0.64);
	font-family: var(--font-reading);
	font-size: 0.96rem;
	line-height: 1.65;
}

.speaker-closing {
	position: relative;
	padding: clamp(110px, 12vw, 190px) 0;
	background:
		linear-gradient(105deg, rgba(7, 25, 37, 0.98), rgba(13, 37, 53, 0.91)),
		url("assets/images/mountain-range-hero.png") center 58% / cover no-repeat;
	color: var(--ivory);
}

.speaker-closing-contours {
	background-position: left -170px center;
}

.speaker-closing-inner {
	position: relative;
	z-index: 2;
	max-width: 990px;
	text-align: center;
}

.speaker-closing h2 {
	margin-right: auto;
	margin-left: auto;
	color: var(--ivory);
	font-size: clamp(3.25rem, 5.6vw, 5.9rem);
}

.speaker-closing-inner > p:not(.eyebrow) {
	max-width: 720px;
	margin: 28px auto 38px;
	color: rgba(243, 234, 220, 0.73);
	font-family: var(--font-reading);
	font-size: clamp(1.02rem, 1.35vw, 1.18rem);
	line-height: 1.75;
}

@media (max-width: 1000px) {
	.speaker-hero-grid {
		grid-template-columns: 1fr;
	}

	.speaker-hero-mark {
		display: none;
	}

	.speaker-introduction-grid,
	.speaker-outcomes-grid,
	.speaker-experience-grid {
		grid-template-columns: 1fr;
	}

	.speaker-format-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.speaker-format-grid article:nth-child(2) {
		border-right: 0;
	}

	.speaker-format-grid article:nth-child(-n + 2) {
		border-bottom: 1px solid rgba(7, 25, 37, 0.18);
	}

	.speaker-format-grid article:nth-child(3) {
		padding-left: 0;
	}
}

@media (max-width: 760px) {
	.speaker-hero {
		min-height: 760px;
		padding-top: 95px;
	}

	.speaker-hero h1 {
		font-size: clamp(3.7rem, 15vw, 5.7rem);
	}

	.speaker-audience-list {
		grid-template-columns: repeat(2, 1fr);
	}

	.speaker-audience-list span {
		border-bottom: 1px solid rgba(7, 25, 37, 0.12);
	}

	.speaker-audience-list span:nth-child(even) {
		border-right: 0;
	}

	.speaker-audience-list span:last-child {
		grid-column: 1 / -1;
		border-bottom: 0;
	}

	.speaker-talk-grid,
	.speaker-book-grid,
	.speaker-process-grid {
		grid-template-columns: 1fr;
	}

	.speaker-talk-card {
		min-height: auto;
	}

	.speaker-talk-theme {
		margin-top: 48px;
	}

	.speaker-book-stage {
		width: min(76vw, 350px);
		margin-bottom: 30px;
	}

	.speaker-process-grid article,
	.speaker-process-grid article:first-child,
	.speaker-process-grid article:last-child {
		min-height: 250px;
		padding: 30px 0;
		border-right: 0;
		border-bottom: 1px solid rgba(243, 234, 220, 0.18);
	}

	.speaker-process-grid article:last-child {
		border-bottom: 0;
	}

	.speaker-process-grid h3 {
		margin-top: 45px;
	}
}

@media (max-width: 560px) {
	.speaker-format-grid {
		grid-template-columns: 1fr;
	}

	.speaker-format-grid article,
	.speaker-format-grid article:first-child,
	.speaker-format-grid article:last-child,
	.speaker-format-grid article:nth-child(3) {
		min-height: 270px;
		padding: 30px 0;
		border-right: 0;
		border-bottom: 1px solid rgba(7, 25, 37, 0.18);
	}

	.speaker-format-grid article:last-child {
		border-bottom: 0;
	}

	.speaker-format-grid h3 {
		margin-top: 45px;
	}

	.speaker-outcome-list article {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.speaker-experience-list p {
		grid-template-columns: 115px 1fr;
		gap: 18px;
	}

	.speaker-experience-list strong {
		font-size: 1.65rem;
	}

	.speaker-book-actions {
		align-items: flex-start;
		flex-direction: column;
	}
}

/* ========================================
   WORKSHOPS & FACILITATION PAGE
======================================== */

.workshop-page {
	overflow: hidden;
	background: var(--ivory);
}

.workshop-hero {
	position: relative;
	min-height: 820px;
	padding: clamp(105px, 11vw, 175px) 0 225px;
	background:
		linear-gradient(103deg, rgba(7, 25, 37, 0.99) 0%, rgba(13, 37, 53, 0.94) 58%, rgba(38, 54, 66, 0.86) 100%),
		url("assets/images/navy-texture.png") center / cover;
	color: var(--ivory);
}

.workshop-hero-contours,
.workshop-closing-contours {
	position: absolute;
	inset: 0;
	background: url("assets/images/topo-pattern.png") right -140px center / 700px auto no-repeat;
	opacity: 0.08;
	pointer-events: none;
}

.workshop-hero-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 285px;
	gap: clamp(55px, 8vw, 115px);
	align-items: center;
}

.workshop-hero-copy {
	max-width: 950px;
}

.workshop-hero h1 {
	max-width: 980px;
	margin: 17px 0 31px;
	color: var(--ivory);
	font-family: var(--font-editorial);
	font-size: clamp(4.15rem, 7.1vw, 7.55rem);
	font-weight: 500;
	letter-spacing: -0.055em;
	line-height: 0.88;
}

.workshop-hero-lead {
	max-width: 735px;
	margin: 0 0 40px;
	color: rgba(243, 234, 220, 0.79);
	font-family: var(--font-reading);
	font-size: clamp(1.08rem, 1.5vw, 1.32rem);
	line-height: 1.72;
}

.workshop-hero-framework {
	display: grid;
	border-top: 1px solid rgba(243, 234, 220, 0.2);
}

.workshop-hero-framework span {
	display: grid;
	grid-template-columns: 45px 1fr;
	gap: 18px;
	align-items: center;
	padding: 20px 4px;
	border-bottom: 1px solid rgba(243, 234, 220, 0.2);
	color: var(--ivory);
	font-family: var(--font-navigation);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.workshop-hero-framework small {
	color: var(--amber);
	font-size: 0.6rem;
	letter-spacing: 0.12em;
}

.workshop-hero-ridge {
	position: absolute;
	right: 0;
	bottom: -1px;
	left: 0;
	z-index: 1;
	height: 275px;
	background: url("assets/images/mountain-range-transition.png") center bottom / 100% 100% no-repeat;
	pointer-events: none;
}

.workshop-introduction {
	padding: clamp(95px, 10vw, 160px) 0;
	background:
		linear-gradient(rgba(245, 241, 232, 0.96), rgba(245, 241, 232, 0.99)),
		url("assets/images/topo-pattern.png") left -220px center / 640px auto no-repeat;
}

.workshop-introduction-grid,
.workshop-rooms-grid,
.workshop-process-grid,
.workshop-background-grid,
.workshop-investment-grid {
	display: grid;
	grid-template-columns: minmax(290px, 0.82fr) minmax(0, 1.18fr);
	gap: clamp(62px, 9vw, 140px);
	align-items: start;
}

.workshop-introduction h2,
.workshop-section-heading h2,
.workshop-rooms h2,
.workshop-process h2,
.workshop-experience h2,
.workshop-investment h2,
.workshop-closing h2 {
	margin: 14px 0 0;
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(2.9rem, 4.4vw, 4.7rem);
	font-weight: 500;
	letter-spacing: -0.048em;
	line-height: 0.99;
}

.workshop-introduction-copy {
	max-width: 735px;
	color: rgba(32, 42, 48, 0.8);
	font-family: var(--font-reading);
	font-size: clamp(1.04rem, 1.28vw, 1.18rem);
	line-height: 1.84;
}

.workshop-introduction-copy p {
	margin: 0 0 24px;
}

.workshop-introduction-copy .workshop-lead {
	color: var(--navy-deep);
	font-size: clamp(1.25rem, 1.7vw, 1.52rem);
	line-height: 1.6;
}

.workshop-editor-content {
	margin-top: 38px;
	padding-top: 30px;
	border-top: 1px solid rgba(7, 25, 37, 0.16);
}

.workshop-experiences {
	padding: clamp(95px, 10vw, 155px) 0;
	background:
		linear-gradient(rgba(7, 25, 37, 0.975), rgba(7, 25, 37, 0.975)),
		url("assets/images/navy-texture.png") center / cover;
	color: var(--ivory);
}

.workshop-section-heading {
	max-width: 900px;
	margin-bottom: clamp(50px, 7vw, 84px);
}

.workshop-section-heading-light h2 {
	color: var(--ivory);
}

.workshop-experience-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border-top: 1px solid rgba(243, 234, 220, 0.18);
	border-left: 1px solid rgba(243, 234, 220, 0.18);
}

.workshop-experience-card {
	min-height: 540px;
	padding: clamp(34px, 5vw, 62px);
	border-right: 1px solid rgba(243, 234, 220, 0.18);
	border-bottom: 1px solid rgba(243, 234, 220, 0.18);
	background: rgba(243, 234, 220, 0.015);
}

.workshop-experience-featured {
	background: var(--amber);
	color: var(--navy-deep);
}

.workshop-experience-custom {
	background: rgba(243, 234, 220, 0.055);
}

.workshop-experience-number,
.workshop-room-list article > span,
.workshop-process-steps article > span {
	color: var(--amber);
	font-family: var(--font-navigation);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.17em;
}

.workshop-experience-featured .workshop-experience-number {
	color: var(--navy-deep);
}

.workshop-experience-theme {
	margin: 65px 0 12px;
	color: rgba(243, 234, 220, 0.57);
	font-family: var(--font-navigation);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.workshop-experience-featured .workshop-experience-theme {
	color: rgba(7, 25, 37, 0.65);
}

.workshop-experience-card h3 {
	margin: 0 0 23px;
	color: var(--ivory);
	font-family: var(--font-display);
	font-size: clamp(2.6rem, 4vw, 4.35rem);
	font-weight: 400;
	letter-spacing: 0.02em;
	line-height: 0.92;
	text-transform: uppercase;
}

.workshop-experience-featured h3 {
	color: var(--navy-deep);
}

.workshop-experience-card > p:not(.workshop-experience-theme) {
	margin: 0 0 24px;
	color: rgba(243, 234, 220, 0.74);
	font-family: var(--font-reading);
	font-size: 1rem;
	line-height: 1.68;
}

.workshop-experience-featured > p:not(.workshop-experience-theme) {
	color: rgba(7, 25, 37, 0.78);
}

.workshop-experience-card ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.workshop-experience-card li {
	position: relative;
	padding: 9px 0 9px 20px;
	border-bottom: 1px solid rgba(243, 234, 220, 0.12);
	font-family: var(--font-reading);
	font-size: 0.92rem;
}

.workshop-experience-featured li {
	border-color: rgba(7, 25, 37, 0.14);
}

.workshop-experience-card li::before {
	position: absolute;
	top: 17px;
	left: 0;
	width: 6px;
	height: 6px;
	background: var(--amber);
	content: "";
}

.workshop-experience-featured li::before {
	background: var(--navy-deep);
}

.workshop-rooms {
	padding: clamp(95px, 10vw, 160px) 0;
	background: var(--ivory);
}

.workshop-rooms-heading > p:not(.eyebrow) {
	max-width: 560px;
	margin: 28px 0 0;
	color: rgba(32, 42, 48, 0.72);
	font-family: var(--font-reading);
	font-size: 1.04rem;
	line-height: 1.75;
}

.workshop-room-list {
	border-top: 1px solid rgba(7, 25, 37, 0.18);
}

.workshop-room-list article {
	display: grid;
	grid-template-columns: 44px minmax(190px, 0.8fr) minmax(0, 1.2fr);
	gap: 22px;
	align-items: center;
	padding: 27px 0;
	border-bottom: 1px solid rgba(7, 25, 37, 0.18);
}

.workshop-room-list article > span {
	color: var(--amber-dark);
}

.workshop-room-list h3 {
	margin: 0;
	color: var(--navy-deep);
	font-family: var(--font-display);
	font-size: clamp(1.7rem, 2.3vw, 2.4rem);
	font-weight: 400;
	letter-spacing: 0.025em;
	line-height: 0.96;
	text-transform: uppercase;
}

.workshop-room-list p {
	margin: 0;
	color: rgba(32, 42, 48, 0.7);
	font-family: var(--font-reading);
	font-size: 0.95rem;
	line-height: 1.55;
}

.workshop-method {
	padding: clamp(95px, 10vw, 155px) 0;
	background: var(--mist);
}

.workshop-method-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid rgba(7, 25, 37, 0.18);
	border-bottom: 1px solid rgba(7, 25, 37, 0.18);
}

.workshop-method-grid article {
	min-height: 350px;
	padding: 34px clamp(22px, 3vw, 37px);
	border-right: 1px solid rgba(7, 25, 37, 0.18);
}

.workshop-method-grid article:first-child {
	padding-left: 0;
}

.workshop-method-grid article:last-child {
	padding-right: 0;
	border-right: 0;
}

.workshop-method-grid article > span {
	color: var(--amber-dark);
	font-family: var(--font-navigation);
	font-size: 0.67rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.workshop-method-grid h3 {
	margin: 80px 0 15px;
	color: var(--navy-deep);
	font-family: var(--font-display);
	font-size: clamp(2rem, 2.8vw, 3rem);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 0.96;
	text-transform: uppercase;
}

.workshop-method-grid p {
	margin: 0;
	color: rgba(32, 42, 48, 0.7);
	font-family: var(--font-reading);
	font-size: 0.94rem;
	line-height: 1.65;
}

.workshop-process {
	padding: clamp(95px, 10vw, 160px) 0;
	background: var(--navy-deep);
	color: var(--ivory);
}

.workshop-process h2 {
	color: var(--ivory);
}

.workshop-process-steps {
	border-top: 1px solid rgba(243, 234, 220, 0.18);
}

.workshop-process-steps article {
	display: grid;
	grid-template-columns: 55px 1fr;
	gap: 26px;
	padding: 25px 0;
	border-bottom: 1px solid rgba(243, 234, 220, 0.18);
}

.workshop-process-steps h3 {
	margin: 0 0 7px;
	color: var(--ivory);
	font-family: var(--font-display);
	font-size: 2.1rem;
	font-weight: 400;
	letter-spacing: 0.035em;
	line-height: 1;
	text-transform: uppercase;
}

.workshop-process-steps p {
	margin: 0;
	color: rgba(243, 234, 220, 0.64);
	font-family: var(--font-reading);
	font-size: 0.97rem;
	line-height: 1.62;
}

.workshop-experience {
	padding: clamp(95px, 10vw, 160px) 0;
	background: #e3e7e5;
}

.workshop-background-copy > p:not(.eyebrow) {
	max-width: 680px;
	margin: 25px 0 0;
	color: rgba(32, 42, 48, 0.76);
	font-family: var(--font-reading);
	font-size: 1.04rem;
	line-height: 1.78;
}

.workshop-background-stats {
	border-top: 1px solid rgba(7, 25, 37, 0.2);
}

.workshop-background-stats p {
	display: grid;
	grid-template-columns: 145px 1fr;
	gap: 28px;
	align-items: center;
	margin: 0;
	padding: 25px 0;
	border-bottom: 1px solid rgba(7, 25, 37, 0.2);
}

.workshop-background-stats strong {
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: 2rem;
	font-weight: 600;
	line-height: 1;
}

.workshop-background-stats span {
	color: rgba(32, 42, 48, 0.7);
	font-family: var(--font-reading);
	font-size: 0.96rem;
	line-height: 1.5;
}

.workshop-investment {
	padding: clamp(85px, 9vw, 135px) 0;
	background: var(--ivory);
}

.workshop-investment h2 strong {
	display: block;
	margin-top: 7px;
	color: var(--amber-dark);
	font-style: italic;
	font-weight: 500;
}

.workshop-investment-copy p {
	margin: 0 0 20px;
	color: rgba(32, 42, 48, 0.76);
	font-family: var(--font-reading);
	font-size: 1.04rem;
	line-height: 1.76;
}

.workshop-text-link {
	display: inline-flex;
	gap: 11px;
	align-items: center;
	margin-top: 15px;
	padding-bottom: 6px;
	border-bottom: 2px solid var(--amber);
	color: var(--navy-deep);
	font-family: var(--font-navigation);
	font-size: 0.67rem;
	font-weight: 700;
	letter-spacing: 0.11em;
	text-decoration: none;
	text-transform: uppercase;
}

.workshop-closing {
	position: relative;
	padding: clamp(110px, 12vw, 190px) 0;
	background:
		linear-gradient(105deg, rgba(7, 25, 37, 0.98), rgba(13, 37, 53, 0.91)),
		url("assets/images/mountain-range-hero.png") center 58% / cover no-repeat;
	color: var(--ivory);
}

.workshop-closing-contours {
	background-position: left -180px center;
}

.workshop-closing-inner {
	position: relative;
	z-index: 2;
	max-width: 980px;
	text-align: center;
}

.workshop-closing h2 {
	margin-right: auto;
	margin-left: auto;
	color: var(--ivory);
	font-size: clamp(3.25rem, 5.6vw, 5.9rem);
}

.workshop-closing-inner > p:not(.eyebrow) {
	max-width: 700px;
	margin: 28px auto 38px;
	color: rgba(243, 234, 220, 0.73);
	font-family: var(--font-reading);
	font-size: clamp(1.02rem, 1.35vw, 1.18rem);
	line-height: 1.75;
}

@media (max-width: 1000px) {
	.workshop-hero-grid {
		grid-template-columns: 1fr;
	}

	.workshop-hero-framework {
		grid-template-columns: repeat(4, 1fr);
	}

	.workshop-hero-framework span {
		grid-template-columns: 1fr;
		gap: 6px;
		border-right: 1px solid rgba(243, 234, 220, 0.2);
	}

	.workshop-hero-framework span:last-child {
		border-right: 0;
	}

	.workshop-introduction-grid,
	.workshop-rooms-grid,
	.workshop-process-grid,
	.workshop-background-grid,
	.workshop-investment-grid {
		grid-template-columns: 1fr;
	}

	.workshop-method-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.workshop-method-grid article:nth-child(2) {
		border-right: 0;
	}

	.workshop-method-grid article:nth-child(-n + 2) {
		border-bottom: 1px solid rgba(7, 25, 37, 0.18);
	}

	.workshop-method-grid article:nth-child(3) {
		padding-left: 0;
	}
}

@media (max-width: 760px) {
	.workshop-hero {
		min-height: 760px;
		padding-top: 95px;
	}

	.workshop-hero h1 {
		font-size: clamp(3.65rem, 15vw, 5.6rem);
	}

	.workshop-experience-grid {
		grid-template-columns: 1fr;
	}

	.workshop-experience-card {
		min-height: auto;
	}

	.workshop-experience-theme {
		margin-top: 48px;
	}

	.workshop-room-list article {
		grid-template-columns: 40px 1fr;
	}

	.workshop-room-list p {
		grid-column: 2;
	}
}

@media (max-width: 560px) {
	.workshop-hero-framework {
		grid-template-columns: repeat(2, 1fr);
	}

	.workshop-hero-framework span:nth-child(even) {
		border-right: 0;
	}

	.workshop-method-grid {
		grid-template-columns: 1fr;
	}

	.workshop-method-grid article,
	.workshop-method-grid article:first-child,
	.workshop-method-grid article:last-child,
	.workshop-method-grid article:nth-child(3) {
		min-height: 270px;
		padding: 30px 0;
		border-right: 0;
		border-bottom: 1px solid rgba(7, 25, 37, 0.18);
	}

	.workshop-method-grid article:last-child {
		border-bottom: 0;
	}

	.workshop-method-grid h3 {
		margin-top: 45px;
	}

	.workshop-background-stats p {
		grid-template-columns: 115px 1fr;
		gap: 18px;
	}

	.workshop-background-stats strong {
		font-size: 1.65rem;
	}
}

/* ========================================
   PRIVACY POLICY PAGE
======================================== */

.privacy-page {
	overflow: hidden;
	background: var(--ivory);
	color: var(--charcoal);
}

.privacy-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(100px, 11vw, 165px) 0 clamp(90px, 10vw, 145px);
	background:
		linear-gradient(102deg, rgba(7, 25, 37, 0.99), rgba(13, 37, 53, 0.93)),
		url("assets/images/navy-texture.png") center / cover;
	color: var(--ivory);
}

.privacy-hero::after {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 3px;
	background: linear-gradient(90deg, transparent, var(--amber), transparent);
	content: "";
	opacity: 0.72;
}

.privacy-hero-contours {
	position: absolute;
	inset: 0;
	background: url("assets/images/topo-pattern.png") right -110px center / 690px auto no-repeat;
	opacity: 0.08;
	pointer-events: none;
}

.privacy-hero-inner {
	position: relative;
	z-index: 2;
	max-width: 940px;
}

.privacy-hero h1 {
	max-width: 850px;
	margin: 12px 0 24px;
	color: var(--ivory);
	font-family: var(--font-display);
	font-size: clamp(5rem, 10vw, 9rem);
	font-weight: 400;
	letter-spacing: 0.01em;
	line-height: 0.86;
	text-transform: uppercase;
}

.privacy-hero-lead {
	max-width: 720px;
	margin: 0;
	color: rgba(243, 234, 220, 0.79);
	font-family: var(--font-reading);
	font-size: clamp(1.15rem, 1.8vw, 1.42rem);
	line-height: 1.65;
}

.privacy-updated {
	margin: 33px 0 0;
	color: var(--amber);
	font-family: var(--font-navigation);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.privacy-principles {
	background: var(--color-weathered-slate);
	color: var(--ivory);
}

.privacy-principles-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.privacy-principles p {
	min-height: 115px;
	margin: 0;
	padding: 35px 28px;
	border-right: 1px solid rgba(243, 234, 220, 0.14);
	font-family: var(--font-navigation);
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.5;
	text-transform: uppercase;
}

.privacy-principles p:last-child {
	border-right: 0;
}

.privacy-principles span {
	display: block;
	margin-bottom: 10px;
	color: var(--amber);
	font-size: 0.64rem;
	letter-spacing: 0.18em;
}

.privacy-content {
	padding: clamp(85px, 10vw, 155px) 0;
	background:
		linear-gradient(rgba(245, 241, 232, 0.96), rgba(245, 241, 232, 0.99)),
		url("assets/images/topo-pattern.png") left -290px top 80px / 680px auto no-repeat;
}

.privacy-layout {
	display: grid;
	grid-template-columns: minmax(215px, 280px) minmax(0, 790px);
	gap: clamp(55px, 9vw, 135px);
	justify-content: center;
	align-items: start;
}

.privacy-toc {
	position: sticky;
	top: 110px;
	padding: 27px 0;
	border-top: 2px solid var(--amber);
	border-bottom: 1px solid rgba(7, 25, 37, 0.16);
}

.privacy-toc-title {
	margin: 0 0 20px;
	color: var(--navy-deep);
	font-family: var(--font-navigation);
	font-size: 0.71rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.privacy-toc nav {
	display: grid;
	gap: 4px;
}

.privacy-toc a {
	padding: 7px 0;
	color: rgba(32, 42, 48, 0.69);
	font-family: var(--font-navigation);
	font-size: 0.79rem;
	line-height: 1.35;
	text-decoration: none;
}

.privacy-toc a:hover,
.privacy-toc a:focus {
	color: var(--amber-dark);
}

.privacy-policy-section {
	padding: 0 0 clamp(62px, 7vw, 92px);
	scroll-margin-top: 110px;
}

.privacy-policy-section + .privacy-policy-section {
	padding-top: clamp(60px, 7vw, 90px);
	border-top: 1px solid rgba(7, 25, 37, 0.16);
}

.privacy-policy-section h2,
.privacy-contact-card h2 {
	margin: 10px 0 27px;
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(2.65rem, 5vw, 4.45rem);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 0.98;
}

.privacy-policy-section h3 {
	margin: 40px 0 13px;
	color: var(--navy-deep);
	font-family: var(--font-navigation);
	font-size: 0.84rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.privacy-policy-section p,
.privacy-policy-section li,
.privacy-contact-card p {
	color: rgba(32, 42, 48, 0.82);
	font-family: var(--font-reading);
	font-size: clamp(1.02rem, 1.25vw, 1.16rem);
	line-height: 1.82;
}

.privacy-policy-section p {
	margin: 0 0 23px;
}

.privacy-policy-section a {
	color: var(--amber-dark);
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}

.privacy-policy-section ul {
	margin: 25px 0 28px;
	padding: 0;
	list-style: none;
}

.privacy-policy-section li {
	position: relative;
	margin: 0;
	padding: 11px 0 11px 30px;
	border-bottom: 1px solid rgba(7, 25, 37, 0.1);
}

.privacy-policy-section li::before {
	position: absolute;
	top: 23px;
	left: 3px;
	width: 7px;
	height: 7px;
	background: var(--amber);
	content: "";
	transform: rotate(45deg);
}

.privacy-section-number {
	margin: 0 !important;
	color: var(--amber-dark) !important;
	font-family: var(--font-navigation) !important;
	font-size: 0.68rem !important;
	font-weight: 700;
	letter-spacing: 0.18em;
}

.privacy-highlight {
	margin-top: 35px;
	padding: 30px 34px;
	border-left: 4px solid var(--amber);
	background: rgba(220, 229, 229, 0.55);
}

.privacy-highlight p {
	margin: 0;
}

.privacy-highlight strong {
	color: var(--navy-deep);
}

.privacy-contact-card {
	position: relative;
	overflow: hidden;
	margin-top: 5px;
	padding: clamp(42px, 7vw, 72px);
	background:
		linear-gradient(rgba(7, 25, 37, 0.97), rgba(7, 25, 37, 0.97)),
		url("assets/images/topo-pattern.png") right center / 560px auto no-repeat;
	color: var(--ivory);
	scroll-margin-top: 110px;
}

.privacy-contact-card h2 {
	color: var(--ivory);
}

.privacy-contact-card p:not(.eyebrow) {
	max-width: 610px;
	margin: 0 0 30px;
	color: rgba(243, 234, 220, 0.78);
}

.footer-legal {
	display: flex;
	align-items: center;
	gap: 15px;
}

.footer-legal > span {
	color: rgba(207, 129, 46, 0.68);
	font-size: 0.62rem;
}

.footer-privacy-link {
	color: rgba(220, 227, 231, 0.58);
	font-family: var(--font-navigation);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
}

.footer-privacy-link:hover,
.footer-privacy-link:focus {
	color: var(--amber);
}

@media (max-width: 900px) {
	.privacy-layout {
		grid-template-columns: 1fr;
	}

	.privacy-toc {
		position: static;
	}

	.privacy-toc nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 30px;
	}
}

@media (max-width: 680px) {
	.privacy-principles-grid {
		grid-template-columns: 1fr;
	}

	.privacy-principles p {
		min-height: auto;
		border-right: 0;
		border-bottom: 1px solid rgba(243, 234, 220, 0.14);
	}

	.privacy-principles p:last-child {
		border-bottom: 0;
	}

	.footer-legal {
		align-items: flex-start;
		flex-direction: column;
		gap: 9px;
		margin-top: 16px;
	}

	.footer-legal > span {
		display: none;
	}
}

@media (max-width: 520px) {
	.privacy-hero h1 {
		font-size: clamp(4.2rem, 19vw, 5.4rem);
	}

	.privacy-toc nav {
		grid-template-columns: 1fr;
	}

	.privacy-highlight {
		padding: 26px;
	}

	.privacy-contact-card {
		padding: 38px 27px;
	}
}

/* ========================================
   404 PAGE
======================================== */

.error-page {
	overflow: hidden;
	background: var(--ivory);
}

.error-hero {
	position: relative;
	display: flex;
	overflow: hidden;
	min-height: 790px;
	padding: clamp(115px, 12vw, 185px) 0 235px;
	align-items: center;
	background:
		linear-gradient(104deg, rgba(7, 25, 37, 0.99), rgba(13, 37, 53, 0.92)),
		url("assets/images/navy-texture.png") center / cover;
	color: var(--ivory);
}

.error-contours {
	position: absolute;
	inset: 0;
	background: url("assets/images/topo-pattern.png") right -80px center / 760px auto no-repeat;
	opacity: 0.09;
	pointer-events: none;
}

.error-marker {
	position: absolute;
	top: 50%;
	right: clamp(-30px, 2vw, 40px);
	color: rgba(243, 234, 220, 0.035);
	font-family: var(--font-display);
	font-size: clamp(20rem, 38vw, 40rem);
	line-height: 0.7;
	transform: translateY(-46%);
	white-space: nowrap;
}

.error-hero-inner {
	position: relative;
	z-index: 2;
}

.error-hero h1 {
	max-width: 900px;
	margin: 12px 0 28px;
	color: var(--ivory);
	font-family: var(--font-display);
	font-size: clamp(5.5rem, 11vw, 10rem);
	font-weight: 400;
	letter-spacing: 0.01em;
	line-height: 0.84;
	text-transform: uppercase;
}

.error-hero-inner > p:not(.eyebrow) {
	max-width: 675px;
	margin: 0;
	color: rgba(243, 234, 220, 0.78);
	font-family: var(--font-reading);
	font-size: clamp(1.12rem, 1.6vw, 1.36rem);
	line-height: 1.7;
}

.error-actions {
	display: flex;
	gap: 14px;
	margin-top: 39px;
	flex-wrap: wrap;
}

.error-ridge {
	position: absolute;
	right: 0;
	bottom: -1px;
	left: 0;
	z-index: 1;
	height: 235px;
	background: url("assets/images/mountain-range-transition.png") center bottom / 100% 100% no-repeat;
	pointer-events: none;
}

.error-wayfinding {
	padding: clamp(95px, 10vw, 160px) 0;
	background:
		linear-gradient(rgba(245, 241, 232, 0.96), rgba(245, 241, 232, 0.99)),
		url("assets/images/topo-pattern.png") left -270px top 100px / 680px auto no-repeat;
}

.error-section-heading {
	max-width: 830px;
	margin-bottom: clamp(52px, 7vw, 82px);
}

.error-section-heading h2,
.error-search-panel h2 {
	margin: 11px 0 22px;
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(2.9rem, 5.3vw, 5rem);
	font-weight: 500;
	letter-spacing: -0.05em;
	line-height: 0.98;
}

.error-section-heading > p:not(.eyebrow) {
	max-width: 650px;
	margin: 0;
	color: rgba(32, 42, 48, 0.76);
	font-family: var(--font-reading);
	font-size: 1.16rem;
	line-height: 1.75;
}

.error-path-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border-top: 1px solid rgba(7, 25, 37, 0.18);
	border-left: 1px solid rgba(7, 25, 37, 0.18);
}

.error-path-grid a {
	display: grid;
	min-height: 285px;
	padding: clamp(32px, 4vw, 48px);
	border-right: 1px solid rgba(7, 25, 37, 0.18);
	border-bottom: 1px solid rgba(7, 25, 37, 0.18);
	background: rgba(245, 241, 232, 0.48);
	color: var(--navy-deep);
	text-decoration: none;
	transition: background 200ms ease, color 200ms ease, transform 200ms ease;
}

.error-path-grid a:hover,
.error-path-grid a:focus {
	position: relative;
	z-index: 2;
	background: var(--navy-deep);
	color: var(--ivory);
	transform: translateY(-6px);
}

.error-path-grid span {
	color: var(--amber-dark);
	font-family: var(--font-navigation);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.18em;
}

.error-path-grid a:hover span,
.error-path-grid a:focus span {
	color: var(--amber);
}

.error-path-grid strong {
	align-self: end;
	margin-top: 65px;
	font-family: var(--font-display);
	font-size: clamp(2.65rem, 4vw, 4rem);
	font-weight: 400;
	letter-spacing: 0.02em;
	line-height: 0.9;
	text-transform: uppercase;
}

.error-path-grid small {
	max-width: 430px;
	margin-top: 15px;
	color: rgba(32, 42, 48, 0.7);
	font-family: var(--font-reading);
	font-size: 1rem;
	line-height: 1.55;
}

.error-path-grid a:hover small,
.error-path-grid a:focus small {
	color: rgba(243, 234, 220, 0.72);
}

.error-search-panel {
	display: grid;
	grid-template-columns: minmax(260px, 0.82fr) minmax(0, 1.18fr);
	gap: clamp(40px, 7vw, 95px);
	margin-top: clamp(70px, 9vw, 125px);
	padding: clamp(45px, 7vw, 78px);
	align-items: end;
	background: var(--color-morning-mist);
}

.error-search-panel h2 {
	margin-bottom: 0;
	font-size: clamp(2.5rem, 4.1vw, 4rem);
}

.error-search-form {
	display: flex;
	border-bottom: 2px solid var(--navy-deep);
}

.error-search-form input {
	min-width: 0;
	padding: 17px 5px;
	border: 0;
	outline: 0;
	background: transparent;
	color: var(--navy-deep);
	font-family: var(--font-reading);
	font-size: 1.05rem;
	flex: 1;
}

.error-search-form input::placeholder {
	color: rgba(7, 25, 37, 0.52);
}

.error-search-form button {
	padding: 16px 8px 16px 25px;
	border: 0;
	background: transparent;
	color: var(--navy-deep);
	font-family: var(--font-navigation);
	font-size: 0.73rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
}

.error-search-form button::after {
	margin-left: 10px;
	color: var(--amber-dark);
	content: "→";
}

@media (max-width: 820px) {
	.error-hero {
		min-height: 720px;
	}

	.error-search-panel {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 650px) {
	.error-hero h1 {
		font-size: clamp(4.5rem, 18vw, 6.5rem);
	}

	.error-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.error-actions .button {
		justify-content: center;
		text-align: center;
	}

	.error-path-grid {
		grid-template-columns: 1fr;
	}

	.error-path-grid a {
		min-height: 245px;
	}

	.error-search-panel {
		padding: 38px 27px;
	}

	.error-search-form {
		align-items: stretch;
		flex-direction: column;
		border-bottom: 0;
	}

	.error-search-form input {
		border-bottom: 2px solid var(--navy-deep);
	}

	.error-search-form button {
		align-self: flex-start;
		padding: 18px 0 0;
	}
}

/* ========================================
   SEARCH RESULTS PAGE
======================================== */

/* WordPress adds .search and .search-results to the body. Reset any
   inherited theme or plugin layout so the site remains a single column. */
body.search,
body.search-results,
body.search #page,
body.search-results #page,
body.search .site,
body.search-results .site {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	grid-template-columns: none !important;
	grid-template-areas: none !important;
}

body.search .site-header,
body.search .search-results-page,
body.search .site-footer,
body.search-results .site-header,
body.search-results .search-results-page,
body.search-results .site-footer {
	width: 100% !important;
	max-width: none !important;
}

.search-results-page {
	overflow: hidden;
	background: var(--ivory);
}

.search-results-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(95px, 10vw, 150px) 0 clamp(85px, 9vw, 130px);
	background:
		linear-gradient(104deg, rgba(7, 25, 37, 0.99), rgba(13, 37, 53, 0.93)),
		url("assets/images/navy-texture.png") center / cover;
	color: var(--ivory);
}

.search-results-hero::after {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, rgba(207, 129, 46, 0.8), transparent);
	content: "";
}

.search-results-contours {
	position: absolute;
	inset: 0;
	background: url("assets/images/topo-pattern.png") right -140px center / 720px auto no-repeat;
	opacity: 0.08;
	pointer-events: none;
}

.search-results-hero-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
	gap: clamp(55px, 8vw, 120px);
	align-items: end;
}

.search-results-hero h1 {
	max-width: 860px;
	margin: 12px 0 25px;
	color: var(--ivory);
	font-family: var(--font-display);
	font-size: clamp(4.7rem, 9vw, 8.4rem);
	font-weight: 400;
	letter-spacing: 0.01em;
	line-height: 0.87;
	text-transform: uppercase;
}

.search-results-summary {
	max-width: 670px;
	margin: 0;
	color: rgba(243, 234, 220, 0.74);
	font-family: var(--font-reading);
	font-size: clamp(1.08rem, 1.5vw, 1.28rem);
	line-height: 1.68;
}

.search-results-form label {
	display: block;
	margin-bottom: 13px;
	color: var(--amber);
	font-family: var(--font-navigation);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.search-results-form > div {
	display: flex;
	border-bottom: 2px solid rgba(243, 234, 220, 0.72);
}

.search-results-form input {
	min-width: 0;
	padding: 16px 3px;
	border: 0;
	outline: 0;
	background: transparent;
	color: var(--ivory);
	font-family: var(--font-reading);
	font-size: 1.05rem;
	flex: 1;
}

.search-results-form input::placeholder {
	color: rgba(243, 234, 220, 0.48);
}

.search-results-form button {
	padding: 16px 4px 16px 22px;
	border: 0;
	background: transparent;
	color: var(--ivory);
	font-family: var(--font-navigation);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.11em;
	text-transform: uppercase;
	cursor: pointer;
}

.search-results-form button:hover,
.search-results-form button:focus {
	color: var(--amber);
}

.search-results-content {
	padding: clamp(90px, 10vw, 155px) 0;
	background:
		linear-gradient(rgba(245, 241, 232, 0.965), rgba(245, 241, 232, 0.99)),
		url("assets/images/topo-pattern.png") left -280px top 80px / 690px auto no-repeat;
}

.search-results-heading {
	max-width: 760px;
	margin-bottom: clamp(48px, 6vw, 75px);
}

.search-results-heading h2,
.search-no-results h2 {
	margin: 11px 0 0;
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(3rem, 5vw, 4.8rem);
	font-weight: 500;
	letter-spacing: -0.05em;
	line-height: 0.98;
}

.search-results-list {
	border-top: 1px solid rgba(7, 25, 37, 0.18);
}

.search-result-card {
	margin: 0;
	border-bottom: 1px solid rgba(7, 25, 37, 0.18);
}

.search-result-card-link {
	display: grid;
	grid-template-columns: 75px minmax(0, 1fr) 55px;
	gap: clamp(22px, 4vw, 55px);
	padding: clamp(38px, 5vw, 62px) 18px;
	align-items: center;
	color: var(--navy-deep);
	text-decoration: none;
	transition: background 190ms ease, padding 190ms ease;
}

.search-result-card-link:hover,
.search-result-card-link:focus {
	padding-right: 31px;
	padding-left: 31px;
	background: rgba(220, 229, 229, 0.6);
}

.search-result-card-number {
	color: var(--amber-dark);
	font-family: var(--font-display);
	font-size: 2.25rem;
	letter-spacing: 0.05em;
}

.search-result-meta {
	display: flex;
	gap: 17px;
	margin: 0 0 13px;
	align-items: center;
	color: var(--blue-muted);
	font-family: var(--font-navigation);
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.search-result-meta time::before {
	margin-right: 17px;
	color: var(--amber);
	content: "•";
}

.search-result-card h2 {
	margin: 0 0 15px;
	color: var(--navy-deep);
	font-family: var(--font-editorial);
	font-size: clamp(2rem, 3.2vw, 3.25rem);
	font-weight: 500;
	letter-spacing: -0.035em;
	line-height: 1;
}

.search-result-card-copy > p:last-child {
	max-width: 760px;
	margin: 0;
	color: rgba(32, 42, 48, 0.73);
	font-family: var(--font-reading);
	font-size: 1.04rem;
	line-height: 1.65;
}

.search-result-arrow {
	color: var(--amber-dark);
	font-size: 2rem;
	transition: transform 190ms ease;
}

.search-result-card-link:hover .search-result-arrow,
.search-result-card-link:focus .search-result-arrow {
	transform: translateX(8px);
}

.search-results-pagination {
	margin-top: 60px;
}

.search-results-pagination .nav-links {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}

.search-results-pagination .page-numbers {
	display: inline-flex;
	min-width: 43px;
	height: 43px;
	padding: 0 13px;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(7, 25, 37, 0.2);
	color: var(--navy-deep);
	font-family: var(--font-navigation);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
	text-transform: uppercase;
}

.search-results-pagination .page-numbers.current,
.search-results-pagination a.page-numbers:hover,
.search-results-pagination a.page-numbers:focus {
	border-color: var(--navy-deep);
	background: var(--navy-deep);
	color: var(--ivory);
}

.search-no-results {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(55px, 9vw, 130px);
	align-items: start;
}

.search-no-results-copy > p:last-child {
	max-width: 580px;
	margin: 27px 0 0;
	color: rgba(32, 42, 48, 0.76);
	font-family: var(--font-reading);
	font-size: 1.14rem;
	line-height: 1.75;
}

.search-no-results-links {
	display: grid;
	border-top: 1px solid rgba(7, 25, 37, 0.18);
}

.search-no-results-links a {
	display: grid;
	grid-template-columns: 100px 1fr;
	gap: 22px;
	padding: 25px 5px;
	border-bottom: 1px solid rgba(7, 25, 37, 0.18);
	color: var(--navy-deep);
	font-family: var(--font-display);
	font-size: 1.65rem;
	letter-spacing: 0.04em;
	text-decoration: none;
	text-transform: uppercase;
}

.search-no-results-links span {
	color: var(--amber-dark);
	font-family: var(--font-navigation);
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.12em;
}

.search-no-results-links a:hover,
.search-no-results-links a:focus {
	padding-left: 15px;
	color: var(--amber-dark);
}

@media (max-width: 880px) {
	.search-results-hero-grid,
	.search-no-results {
		grid-template-columns: 1fr;
	}

	.search-results-form {
		max-width: 620px;
	}
}

@media (max-width: 650px) {
	.search-results-hero h1 {
		font-size: clamp(4rem, 17vw, 5.8rem);
	}

	.search-result-card-link {
		grid-template-columns: 45px minmax(0, 1fr);
		gap: 18px;
		padding-right: 0;
		padding-left: 0;
	}

	.search-result-card-link:hover,
	.search-result-card-link:focus {
		padding-right: 10px;
		padding-left: 10px;
	}

	.search-result-card-number {
		align-self: start;
		font-size: 1.65rem;
	}

	.search-result-arrow {
		display: none;
	}

	.search-no-results-links a {
		grid-template-columns: 72px 1fr;
	}
}

/* ========================================
   MOBILE HARDENING PASS
======================================== */

html {
	overflow-x: clip;
}

img,
video,
iframe,
embed,
object {
	max-width: 100%;
}

.header-inner {
	position: relative;
}

.menu-toggle,
.mobile-booking-button {
	display: none;
}

.menu-toggle {
	min-width: 52px;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 8px 10px;
	background: transparent;
	border: 1px solid rgba(220, 229, 229, 0.28);
	border-radius: var(--radius);
	color: var(--mist);
	cursor: pointer;
}

.menu-toggle:hover,
.menu-toggle:focus-visible,
.menu-toggle.is-active {
	background: var(--amber);
	border-color: var(--amber);
	color: var(--navy-deep);
	outline: none;
}

.menu-toggle:focus-visible {
	box-shadow: 0 0 0 3px rgba(207, 129, 46, 0.28);
}

.menu-toggle-icon {
	display: grid;
	width: 20px;
	gap: 4px;
}

.menu-toggle-icon span {
	display: block;
	width: 100%;
	height: 2px;
	background: currentColor;
	transition: transform 160ms ease, opacity 160ms ease;
}

.menu-toggle.is-active .menu-toggle-icon span:first-child {
	transform: translateY(6px) rotate(45deg);
}

.menu-toggle.is-active .menu-toggle-icon span:nth-child(2) {
	opacity: 0;
}

.menu-toggle.is-active .menu-toggle-icon span:last-child {
	transform: translateY(-6px) rotate(-45deg);
}

.menu-toggle-label {
	font-family: var(--font-display);
	font-size: 0.95rem;
	font-weight: 400;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
}

.entry-content,
.story-content,
.page-content,
.privacy-policy-section,
.search-result-card-copy {
	overflow-wrap: anywhere;
}

@media (max-width: 1024px) {
	.site-container {
		width: min(100% - 36px, var(--container));
	}
}

@media (max-width: 900px) {
	.header-inner {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto auto auto;
		gap: 12px;
		min-height: 80px;
		padding: 14px 0;
	}

	.site-branding {
		grid-column: 1;
		grid-row: 1;
		min-width: 0;
		margin: 0;
	}

	.custom-logo {
		max-width: min(215px, 100%);
		max-height: 56px;
	}

	.header-search {
		position: static;
		grid-column: 2;
		grid-row: 1;
		margin: 0;
	}

	.header-button {
		grid-column: 3;
		grid-row: 1;
		white-space: nowrap;
	}

	.has-mobile-navigation .menu-toggle {
		display: inline-flex;
		grid-column: 4;
		grid-row: 1;
	}

	.primary-navigation {
		grid-column: 1 / -1;
		grid-row: 2;
		width: 100%;
		margin: 0;
		padding-top: 5px;
		border-top: 1px solid rgba(255, 255, 255, 0.12);
	}

	.has-mobile-navigation .primary-navigation {
		display: none;
	}

	.has-mobile-navigation .primary-navigation.is-open {
		display: block;
	}

	.primary-navigation > ul,
	.primary-navigation .primary-menu,
	.primary-navigation .menu {
		display: block;
		width: 100%;
	}

	.primary-navigation li {
		display: block;
		width: 100%;
		border-bottom: 1px solid rgba(255, 255, 255, 0.09);
	}

	.primary-navigation li:last-child {
		border-bottom: 0;
	}

	.primary-navigation a {
		display: block;
		width: 100%;
		padding: 14px 4px;
		font-size: 1.15rem !important;
		line-height: 1.15;
	}

	.primary-navigation .mobile-booking-button {
		display: none;
	}

	.primary-navigation .menu-item-has-children > a::after {
		content: "";
	}

	.primary-navigation .sub-menu {
		position: static;
		display: block;
		visibility: visible;
		width: 100%;
		margin: -4px 0 9px;
		padding: 0 0 3px 18px;
		background: transparent;
		border: 0;
		box-shadow: none;
		opacity: 1;
		transform: none;
	}

	.primary-navigation .sub-menu::before {
		display: none;
	}

	.primary-navigation .sub-menu li {
		border: 0;
	}

	.primary-navigation .sub-menu a {
		padding: 9px 4px;
		color: rgba(220, 229, 229, 0.78);
		font-size: 0.95rem !important;
	}

	.header-search-panel {
		top: calc(100% + 1px);
		right: 0;
		left: 0;
		width: auto;
		max-width: none;
	}

	.header-search-panel::before {
		display: none;
	}
}

@media (max-width: 640px) {
	.site-container {
		width: min(100% - 28px, var(--container));
	}

	.header-inner {
		grid-template-columns: minmax(0, 1fr) auto auto;
		gap: 10px;
	}

	.site-branding {
		margin-right: 0;
	}

	.custom-logo {
		max-width: min(175px, 100%);
		max-height: 52px;
	}

	.header-search {
		grid-column: 2;
	}

	.has-mobile-navigation .menu-toggle {
		grid-column: 3;
		min-width: 44px;
		padding-inline: 10px;
	}

	.menu-toggle-label {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
	}

	.header-button {
		display: none;
	}

	.primary-navigation .mobile-booking-button {
		display: flex !important;
		min-height: 46px;
		align-items: center;
		justify-content: center;
		margin-top: 14px;
		padding: 11px 18px !important;
		background: var(--amber);
		border: 1px solid var(--amber);
		border-radius: var(--radius);
		color: var(--navy-deep) !important;
		text-align: center;
	}

	.header-search-panel {
		padding: 20px;
	}

	.header-search-row {
		grid-template-columns: 1fr;
	}

	.header-search-row button {
		width: 100%;
	}

	.single-story .story-hero {
		min-height: min(680px, 88svh);
	}

	.single-story .story-hero .story-title {
		max-width: 100%;
		font-size: clamp(3.35rem, 17vw, 5.5rem);
		line-height: 0.88;
		text-wrap: balance;
		white-space: normal;
	}

	.single-story .story-hero .story-subtitle {
		font-size: clamp(1.85rem, 9vw, 2.75rem);
	}

	.privacy-toc nav {
		grid-template-columns: 1fr;
	}

	.footer-legal {
		align-items: flex-start;
		flex-direction: column;
		gap: 8px;
	}

	.footer-legal > span {
		display: none;
	}

	.search-results-form,
	.search-results-form form {
		width: 100%;
	}

	.search-no-results-links a {
		grid-template-columns: 54px minmax(0, 1fr);
		gap: 14px;
	}
}

@media (max-width: 430px) {
	.custom-logo {
		max-width: min(152px, 100%);
	}

	.header-search summary,
	.menu-toggle {
		width: 42px;
		height: 42px;
		min-width: 42px;
		min-height: 42px;
	}

	.header-search-panel {
		padding: 18px;
	}

	.primary-navigation a {
		padding-block: 13px;
	}

	.single-story .story-hero-copy {
		padding-bottom: 42px;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* ========================================
   DAY TRAIL THEME STYLE

   Administrator-controlled in:
   Appearance > Customize > Ridgeline Theme Style
======================================== */

body.ridgeline-theme-day {
	--day-ivory: #f3eadc;
	--day-ivory-light: #fffaf1;
	--day-navy: #071925;
	--day-slate: #263642;
	--day-amber: #cf812e;
	--day-border: rgba(7, 25, 37, 0.18);
	--day-texture:
		radial-gradient(circle at 16% 22%, rgba(173, 122, 67, 0.075) 0 1px, transparent 1.7px),
		radial-gradient(circle at 78% 67%, rgba(7, 25, 37, 0.045) 0 0.8px, transparent 1.5px),
		repeating-linear-gradient(102deg, rgba(7, 25, 37, 0.018) 0 1px, transparent 1px 7px),
		linear-gradient(135deg, #fff9ef 0%, #f3eadc 52%, #eadcc7 100%);

	background-color: var(--day-ivory);
	background-image: var(--day-texture);
	color: var(--day-slate);
}

/* Light header; desktop navigation behavior remains unchanged. */

body.ridgeline-theme-day .site-header {
	border-bottom-color: var(--day-border);
	background-color: rgba(243, 234, 220, 0.97);
	background-image: var(--day-texture);
	box-shadow: 0 8px 28px rgba(7, 25, 37, 0.08);
}

body.ridgeline-theme-day .social-utility-bar {
	border-bottom-color: var(--day-border);
	background: #e7dccb;
	color: var(--day-navy);
}

body.ridgeline-theme-day .social-utility-label {
	color: rgba(38, 54, 66, 0.65);
}

body.ridgeline-theme-day .site-header .social-utility-links a {
	color: rgba(7, 25, 37, 0.72) !important;
}

body.ridgeline-theme-day .site-header .social-utility-links a:hover,
body.ridgeline-theme-day .site-header .social-utility-links a:focus {
	background: rgba(207, 129, 46, 0.1);
	color: var(--day-amber) !important;
}

body.ridgeline-theme-day .site-header .custom-logo,
body.ridgeline-theme-day .site-footer .custom-logo,
body.ridgeline-theme-day .bundled-logo {
	filter: brightness(0) saturate(100%) invert(10%) sepia(23%) saturate(1455%) hue-rotate(159deg) brightness(91%) contrast(103%);
}

body.ridgeline-theme-day .site-title,
body.ridgeline-theme-day .primary-navigation > ul > li > a,
body.ridgeline-theme-day .primary-menu > li > a,
body.ridgeline-theme-day .site-header nav > ul > li > a,
body.ridgeline-theme-day .menu-toggle,
body.ridgeline-theme-day .header-search > summary {
	color: var(--day-navy) !important;
}

body.ridgeline-theme-day .menu-toggle-icon span {
	background: var(--day-navy);
}

body.ridgeline-theme-day .header-search summary svg {
	color: var(--day-navy);
	stroke: var(--day-navy);
}

body.ridgeline-theme-day .primary-navigation .sub-menu,
body.ridgeline-theme-day .header-search-panel {
	border-color: var(--day-border);
	background: var(--day-ivory-light);
	box-shadow: 0 20px 45px rgba(7, 25, 37, 0.15);
}

body.ridgeline-theme-day .primary-navigation .sub-menu a,
body.ridgeline-theme-day .header-search-label {
	color: var(--day-navy);
}

body.ridgeline-theme-day .primary-navigation .sub-menu a:hover,
body.ridgeline-theme-day .primary-navigation .sub-menu a:focus {
	background: rgba(207, 129, 46, 0.1);
	color: var(--day-amber);
}

body.ridgeline-theme-day .header-button,
body.ridgeline-theme-day .mobile-booking-button {
	border-color: var(--day-amber);
	background: var(--day-amber);
	color: var(--day-navy) !important;
}

body.ridgeline-theme-day .header-button:hover,
body.ridgeline-theme-day .header-button:focus,
body.ridgeline-theme-day .mobile-booking-button:hover,
body.ridgeline-theme-day .mobile-booking-button:focus {
	border-color: var(--day-navy);
	background: var(--day-navy);
	color: var(--day-ivory) !important;
}

/* Field Ivory replaces the principal navy template surfaces. */

body.ridgeline-theme-day .page-introduction,
body.ridgeline-theme-day .connect-hero,
body.ridgeline-theme-day .connect-booking-cta,
body.ridgeline-theme-day .cc-hero,
body.ridgeline-theme-day .cc-fit-statement,
body.ridgeline-theme-day .cc-closing,
body.ridgeline-theme-day .booking-hero,
body.ridgeline-theme-day .home-closing,
body.ridgeline-theme-day .inner-page-hero,
body.ridgeline-theme-day .story-hero.no-featured-image,
body.ridgeline-theme-day .story-navigation,
body.ridgeline-theme-day .about-hero,
body.ridgeline-theme-day .work-hero,
body.ridgeline-theme-day .work-approach,
body.ridgeline-theme-day .journal-hero,
body.ridgeline-theme-day .journal-closing,
body.ridgeline-theme-day .book-statement,
body.ridgeline-theme-day .speaker-hero,
body.ridgeline-theme-day .speaker-closing,
body.ridgeline-theme-day .workshop-hero,
body.ridgeline-theme-day .workshop-closing,
body.ridgeline-theme-day .privacy-hero,
body.ridgeline-theme-day .error-hero,
body.ridgeline-theme-day .search-results-hero,
body.ridgeline-theme-day .pathway-card-featured {
	border-color: var(--day-border);
	background-color: var(--day-ivory) !important;
	background-image: var(--day-texture) !important;
	color: var(--day-slate) !important;
}

body.ridgeline-theme-day .page-introduction :is(h1, h2),
body.ridgeline-theme-day .connect-hero h1,
body.ridgeline-theme-day .connect-booking-cta h2,
body.ridgeline-theme-day .cc-hero :is(h1, h2),
body.ridgeline-theme-day .cc-fit-statement :is(h2, blockquote),
body.ridgeline-theme-day .cc-closing h2,
body.ridgeline-theme-day .booking-hero :is(h1, h2),
body.ridgeline-theme-day .home-closing h2,
body.ridgeline-theme-day .inner-page-hero h1,
body.ridgeline-theme-day .story-hero.no-featured-image :is(.story-title, .story-subtitle),
body.ridgeline-theme-day .about-hero-copy h1,
body.ridgeline-theme-day .work-hero h1,
body.ridgeline-theme-day .work-section-heading-light h2,
body.ridgeline-theme-day .work-approach article h3,
body.ridgeline-theme-day .journal-hero h1,
body.ridgeline-theme-day .journal-closing h2,
body.ridgeline-theme-day .book-statement blockquote,
body.ridgeline-theme-day .speaker-hero :is(h1, h2),
body.ridgeline-theme-day .speaker-closing h2,
body.ridgeline-theme-day .workshop-hero :is(h1, h2),
body.ridgeline-theme-day .workshop-closing h2,
body.ridgeline-theme-day .privacy-hero h1,
body.ridgeline-theme-day .error-hero h1,
body.ridgeline-theme-day .search-results-hero h1,
body.ridgeline-theme-day .pathway-card-featured h3 {
	color: var(--day-navy) !important;
}

body.ridgeline-theme-day .page-introduction .introduction-text,
body.ridgeline-theme-day .connect-hero p:not(.eyebrow),
body.ridgeline-theme-day .connect-booking-cta p,
body.ridgeline-theme-day .cc-hero p:not(.eyebrow),
body.ridgeline-theme-day .cc-fit-statement p,
body.ridgeline-theme-day .cc-closing p,
body.ridgeline-theme-day .booking-hero p:not(.eyebrow),
body.ridgeline-theme-day .home-closing p,
body.ridgeline-theme-day .inner-page-hero p,
body.ridgeline-theme-day .story-hero.no-featured-image p,
body.ridgeline-theme-day .about-hero-lead,
body.ridgeline-theme-day .work-hero-lead,
body.ridgeline-theme-day .work-approach article p,
body.ridgeline-theme-day .journal-hero-inner > p:last-of-type,
body.ridgeline-theme-day .journal-closing-inner > p:not(.eyebrow),
body.ridgeline-theme-day .book-statement p,
body.ridgeline-theme-day .speaker-hero p:not(.eyebrow),
body.ridgeline-theme-day .speaker-closing p,
body.ridgeline-theme-day .workshop-hero p:not(.eyebrow),
body.ridgeline-theme-day .workshop-closing p,
body.ridgeline-theme-day .privacy-hero p,
body.ridgeline-theme-day .error-hero p,
body.ridgeline-theme-day .search-results-hero p,
body.ridgeline-theme-day .pathway-card-featured p:not(.pathway-number) {
	color: rgba(38, 54, 66, 0.82) !important;
}

body.ridgeline-theme-day .work-approach-grid,
body.ridgeline-theme-day .work-approach article,
body.ridgeline-theme-day .story-navigation-inner,
body.ridgeline-theme-day .footer-bottom {
	border-color: var(--day-border);
}

body.ridgeline-theme-day .button-secondary {
	border-color: var(--day-navy);
	color: var(--day-navy);
}

body.ridgeline-theme-day .button-secondary:hover,
body.ridgeline-theme-day .button-secondary:focus {
	background: var(--day-navy);
	color: var(--day-ivory);
}

/* Keep the podcast and photography heroes image-led in both styles. */

body.ridgeline-theme-day .gap-hero,
body.ridgeline-theme-day .nl-hero,
body.ridgeline-theme-day .about-personal-section,
body.ridgeline-theme-day .story-hero:not(.no-featured-image) {
	background-color: var(--day-navy);
}

body.ridgeline-theme-day .home-hero-mountains {
	filter: brightness(0.82) contrast(1.04) saturate(0.72);
	opacity: 0.68;
}

body.ridgeline-theme-day .journal-hero-ridge {
	filter: brightness(0.82) contrast(1.04) saturate(0.72);
	opacity: 0.68;
}

body.ridgeline-theme-day .home-hero-mountains::before,
body.ridgeline-theme-day .journal-hero-ridge::before {
	background: linear-gradient(to bottom, rgba(243, 234, 220, 0.5) 0%, rgba(243, 234, 220, 0.12) 52%, rgba(7, 25, 37, 0.1) 100%);
}

body.ridgeline-theme-day .journal-featured-story {
	border-color: var(--day-border);
	border-top-color: var(--day-amber);
	background: var(--day-ivory-light);
}

body.ridgeline-theme-day .journal-featured-content {
	background:
		linear-gradient(rgba(255, 250, 241, 0.92), rgba(243, 234, 220, 0.9)),
		url("assets/images/topo-pattern.png") right -170px top -120px / 430px auto no-repeat;
}

/* Light footer */

body.ridgeline-theme-day .site-footer {
	border-top-color: rgba(207, 129, 46, 0.42);
	background-color: var(--day-ivory);
	background-image: var(--day-texture);
	color: var(--day-slate);
}

body.ridgeline-theme-day .footer-wordmark,
body.ridgeline-theme-day .site-footer .footer-menu a,
body.ridgeline-theme-day .footer-contact-link {
	color: var(--day-navy);
}

body.ridgeline-theme-day .footer-tagline,
body.ridgeline-theme-day .footer-contact-copy,
body.ridgeline-theme-day .site-footer .copyright,
body.ridgeline-theme-day .footer-legal,
body.ridgeline-theme-day .footer-legal a {
	color: rgba(38, 54, 66, 0.76);
}

body.ridgeline-theme-day .footer-contact,
body.ridgeline-theme-day .footer-bottom {
	border-color: var(--day-border);
}

@media (max-width: 900px) {
	body.ridgeline-theme-day .primary-navigation {
		border-color: var(--day-border);
		background-color: var(--day-ivory-light);
		background-image: var(--day-texture);
	}

	body.ridgeline-theme-day .primary-navigation a,
	body.ridgeline-theme-day .primary-navigation .sub-menu a {
		color: var(--day-navy) !important;
	}
}

@media (max-width: 600px) {
	.social-utility-inner {
		justify-content: center;
		gap: 12px;
	}

	.social-utility-label {
		font-size: 0.55rem;
	}

	.site-header .social-utility-links a {
		width: 30px;
		height: 30px;
	}
}
