/* ==========================================================================
   NH Marathon — Redesign v2 (Mai Lifestyle Pro / Genesis)
   Loaded at wp_head 120 by includes/nhm-redesign.php: after Customizer
   Additional CSS (101), nhm-header.css (110), nhm-hero.css and
   nhm-content-gutter.css (115). Everything is scoped to body.nhm-redesign.

   Palette from the logo — slate #384952 · khaki #ecdbb0 · steel #71939d
   (exact logo colours), plus gold #f0b030 as the action colour (live accent;
   not in the logo).
   Type — Barlow Condensed (display), Source Sans 3 (text).

   Contents
     1  Tokens            7  Front-page hero + countdown
     2  Base & type       8  Race cards
     3  Buttons           9  Front-page sections
     4  Layout           10  Interior page header
     5  Header & nav     11  Interior content + sidebar
     6  Mobile header    12  Closing CTA + footer
                         13  Motion
   ========================================================================== */

/* 1  Tokens
   -------------------------------------------------------------------------- */

:root {
	--nhm-navy: #384952;      /* logo slate */
	--nhm-navy-700: #2e3d45;
	--nhm-navy-800: #25323a;
	--nhm-navy-900: #1c262b;
	--nhm-gold: #f0b030;
	--nhm-gold-hover: #f6c75d;
	--nhm-gold-ink: #8a5b0c;     /* gold for text on light grounds: 5.6:1 on white */
	--nhm-cream: #faf6ea;     /* logo khaki, tinted */
	--nhm-sand: #ecdbb0;      /* logo khaki */
	--nhm-steel: #71939d;     /* logo steel blue: 3.3:1 on white, decoration only */
	--nhm-steel-ink: #4b6a74; /* steel for text: 5.4:1 on cream */
	--nhm-ink: #1b252a;
	--nhm-ink-2: #4a5563;
	--nhm-line: #e6dcc2;
	--nhm-on-dark: #e6ebf0;
	--nhm-on-dark-2: #b8cdd2; /* steel tint: 5.7:1 on slate */

	--nhm-display: 'Barlow Condensed', 'Arial Narrow', sans-serif;
	--nhm-text: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', sans-serif;

	--nhm-r: 4px;
	--nhm-r-lg: 10px;
	--nhm-max: 1200px;
	--nhm-gutter: 24px;
	--nhm-shadow: 0 1px 2px rgba(28, 38, 43, .06), 0 6px 20px rgba(28, 38, 43, .07);
	--nhm-shadow-lg: 0 2px 6px rgba(28, 38, 43, .08), 0 24px 56px rgba(28, 38, 43, .18);
	--nhm-ease: cubic-bezier(.2, .7, .2, 1);

	/* Logo size in the header row (Mai reads these) */
	--logo-width: 72px;
	--logo-margin-top: 10px;
	--logo-margin-bottom: 10px;
}

/* Topographic line pattern for dark bands — a nod to the lake and hills. */
.nhm-redesign {
	--nhm-contours: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='300' viewBox='0 0 600 300'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.06' stroke-width='1.2'%3E%3Cpath d='M-20 60c80-40 160 30 240 0s150-60 240-20 130 40 160 10'/%3E%3Cpath d='M-20 95c90-35 170 35 250 5s140-55 230-15 130 45 160 15'/%3E%3Cpath d='M-20 130c95-30 175 40 255 10s135-50 225-10 130 45 160 20'/%3E%3Cpath d='M-20 170c100-25 180 40 260 15s130-45 220-5 130 40 160 20'/%3E%3Cpath d='M-20 210c105-20 185 35 265 15s125-40 215 0 130 35 160 20'/%3E%3Cpath d='M-20 250c110-15 190 30 270 15s120-35 210 5 130 30 160 15'/%3E%3C/g%3E%3C/svg%3E");
}

/* 2  Base & type
   -------------------------------------------------------------------------- */

body.nhm-redesign {
	font-family: var(--nhm-text);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.65;
	color: var(--nhm-ink);
	background: #fff !important; /* Customizer forces white with !important too */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

.nhm-redesign ::selection {
	background: var(--nhm-gold);
	color: var(--nhm-navy-900);
}

.nhm-redesign h1,
.nhm-redesign h2,
.nhm-redesign h3,
.nhm-redesign h4,
.nhm-redesign h5,
.nhm-redesign h6 {
	font-family: var(--nhm-display);
	font-weight: 700;
	color: var(--nhm-navy);
	letter-spacing: .01em;
	line-height: 1.08;
	text-wrap: balance;
}

.nhm-redesign h1,
.nhm-redesign h2,
.nhm-redesign .heading {
	text-transform: uppercase;
}

.nhm-redesign .entry-content h2,
.nhm-redesign .section .heading {
	font-size: clamp(2rem, 1.4rem + 1.9vw, 2.9rem);
	font-weight: 800;
	letter-spacing: .015em;
}

.nhm-redesign .entry-content h3 {
	font-size: clamp(1.45rem, 1.25rem + .6vw, 1.75rem);
}

.nhm-redesign .entry-content h4 {
	font-size: 1.25rem;
	text-transform: uppercase;
	letter-spacing: .06em;
}

.nhm-redesign .entry-content h5,
.nhm-redesign .entry-content h6 {
	font-size: 1.05rem;
	text-transform: uppercase;
	letter-spacing: .08em;
}

/* Split titles ("2027 Race Day – October 2, 2027", see
   nhm_redesign_split_title): each half wraps as a unit, the line can only
   break after the dash, and once the halves sit on separate lines the dash
   is hidden and the second half starts its own line. */
.nhm-redesign .nhm-split__part {
	display: inline-block;
	max-width: 100%;
}

.nhm-redesign .nhm-split.is-wrapped .nhm-split__sep {
	display: none;
}

.nhm-redesign .nhm-split.is-wrapped .nhm-split__part {
	display: block;
}

/* Short gold rule under section headings */
.nhm-redesign .section .heading::after {
	content: "";
	display: block;
	width: 48px;
	height: 4px;
	margin: .45em auto 0;
	background: var(--nhm-gold);
}

.nhm-redesign .section .start-xs .heading::after,
.nhm-redesign .section .text-xs-left .heading::after {
	margin-left: 0;
}

.nhm-redesign a {
	color: var(--nhm-navy);
	text-decoration-thickness: 1px;
	text-decoration-color: rgba(56, 73, 82, .35);
	text-underline-offset: 3px;
	transition: color .15s ease, background-color .15s ease, border-color .15s ease, box-shadow .2s ease, transform .2s var(--nhm-ease);
}

.nhm-redesign .entry-content a:not(.button):not(.nhm-btn):hover,
.nhm-redesign .entry-content a:not(.button):not(.nhm-btn):focus {
	color: var(--nhm-gold-ink);
	text-decoration-color: currentColor;
}

.nhm-redesign hr {
	border: 0;
	height: 1px;
	background: var(--nhm-line);
}

.nhm-redesign :focus-visible {
	outline: 3px solid var(--nhm-gold);
	outline-offset: 2px;
}

.nhm-redesign .nhm-wrap {
	max-width: calc(var(--nhm-max) + 2 * var(--nhm-gutter));
	margin: 0 auto;
	padding-left: var(--nhm-gutter);
	padding-right: var(--nhm-gutter);
}

/* Small uppercase label with a gold lead-in dash */
.nhm-redesign .nhm-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 14px;
	font-family: var(--nhm-display);
	font-size: .95rem;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--nhm-gold-ink);
}

.nhm-redesign .nhm-eyebrow::before {
	content: "";
	width: 28px;
	height: 2px;
	background: var(--nhm-gold);
}

/* 3  Buttons
   One system for theme buttons (.nhm-btn) and content buttons (.button).
   Content buttons carry inline colours from the editor — !important is the
   only way to unify them without editing every page.
   -------------------------------------------------------------------------- */

/* Design-system buttons: every button on a redesigned page except the ones that
   belong to a component with its own look — mobile menu, submenu toggles, search
   icon, the course map’s Fit pill, the spectator guide’s “Show on map” text link.
   When a module needs a control out of this rule, add it to the :not() list below;
   do not answer this rule with !important. Every :not() argument counts, so this
   rule is (0,6,1) and is declared after the module stylesheets — a module cannot
   out-spec it and win in every state, and if it wins only on :hover the control
   resizes under the cursor. */
.nhm-redesign .nhm-btn,
.nhm-redesign .button,
.nhm-redesign a.home-button,
.nhm-redesign input[type="submit"],
.nhm-redesign input[type="button"],
.nhm-redesign button:not(.mai-toggle):not(.sub-menu-toggle):not(.search-form-submit):not(.nhm-cm__fit):not(.nhm-spec__show) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	min-height: 48px;
	padding: .8em 1.65em;
	font-family: var(--nhm-display) !important;
	font-size: 1.05rem !important;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: var(--nhm-btn-ls, .09em) !important; /* Customizer sets 1.5px on .registration-button */
	text-transform: uppercase;
	text-align: center;
	text-decoration: none;
	border: 2px solid transparent;
	border-radius: var(--nhm-r);
	box-shadow: none;
	cursor: pointer;
}

/* Hover/focus never changes a button's size. Mai and the Customizer have
   :hover rules (border: 0, letter-spacing: .6px on .green-button) that
   would shrink buttons by up to ~34px; pin the geometry in every state. */
.nhm-redesign :is(.nhm-btn, .button, a.home-button, input[type="submit"], input[type="button"]):is(:hover, :focus, :focus-visible, :active, :visited) {
	border-width: 2px !important;
	border-style: solid !important;
	border-color: transparent !important; /* hover fills the border area with the background */
	letter-spacing: var(--nhm-btn-ls, .09em) !important;
	transform: none !important;
	box-shadow: none !important;
}

/* Default (content) button: navy */
.nhm-redesign .button,
.nhm-redesign input[type="submit"],
.nhm-redesign input[type="button"],
.nhm-redesign button:not(.mai-toggle):not(.sub-menu-toggle):not(.search-form-submit):not(.nhm-cm__fit):not(.nhm-spec__show) {
	background: var(--nhm-navy) !important;
	color: #fff !important;
}

.nhm-redesign .button:hover,
.nhm-redesign .button:focus-visible,
.nhm-redesign input[type="submit"]:hover,
.nhm-redesign input[type="button"]:hover,
.nhm-redesign button:not(.mai-toggle):not(.sub-menu-toggle):not(.search-form-submit):not(.nhm-cm__fit):not(.nhm-spec__show):hover {
	background: var(--nhm-navy-900) !important;
	color: #fff !important;
}

/* Primary: gold */
.nhm-redesign .nhm-btn--gold,
.nhm-redesign a.home-button,
.nhm-redesign a.home-button:visited,
.nhm-redesign a.button.registration-button {
	background: var(--nhm-gold) !important;
	color: var(--nhm-navy-900) !important;
}

.nhm-redesign .nhm-btn--gold:hover,
.nhm-redesign .nhm-btn--gold:focus-visible,
.nhm-redesign a.home-button:hover,
.nhm-redesign a.home-button:focus-visible,
.nhm-redesign a.button.registration-button:hover,
.nhm-redesign a.button.registration-button:focus-visible {
	background: var(--nhm-gold-hover) !important;
	color: var(--nhm-navy-900) !important;
}

/* Ghost: on dark grounds */
.nhm-redesign .nhm-btn--ghost {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, .55);
}

.nhm-redesign .nhm-btn--ghost:hover,
.nhm-redesign .nhm-btn--ghost:focus-visible {
	background: #fff;
	color: var(--nhm-navy-900);
	border-color: #fff;
}

.nhm-redesign .button.fall-button {
	background: var(--nhm-sand) !important;
	color: var(--nhm-navy-900) !important;
}

/* Button rows in content */
.nhm-redesign .nh-button-wrapper,
.nhm-redesign .home-button-container,
.nhm-redesign .inline-buttons {
	gap: 14px;
}

.nhm-redesign .inline-buttons a {
	margin-right: 0;
}

/* 4  Layout
   -------------------------------------------------------------------------- */

/* Full-bleed: no boxed frame (the stored setting is already unboxed; this
   only guards against it being switched back on). */
.nhm-redesign .site-container.boxed {
	max-width: none;
	margin: 0;
	box-shadow: none;
	background: transparent;
}

.nhm-redesign .site-header > .wrap,
.nhm-redesign .footer-widgets > .wrap,
.nhm-redesign .site-footer > .wrap,
.nhm-redesign .header-before > .wrap {
	max-width: calc(var(--nhm-max) + 2 * var(--nhm-gutter));
}

.nhm-redesign .site-inner {
	max-width: calc(var(--nhm-max) + 2 * var(--nhm-gutter));
}

.nhm-redesign .content-sidebar-wrap {
	margin-top: 0;
}

/* Interior pages: breathing room under the page header */
.nhm-redesign.nhm-has-page-hero .site-inner {
	padding-top: 56px;
	padding-bottom: 88px;
}

/* Front page: sections run edge to edge, straight after the race cards */
.nhm-redesign.home .site-inner {
	max-width: none;
	padding: 0;
}

.nhm-redesign .entry {
	box-shadow: none;
	background: transparent;
	margin-bottom: 0;
}

/* 5  Header & primary nav (markup from includes/nhm-header.php)
   -------------------------------------------------------------------------- */

/* Top utility bar */
.nhm-redesign .header-before {
	background: var(--nhm-navy-900);
	border-bottom: 0;
	padding-left: var(--nhm-gutter);
	padding-right: var(--nhm-gutter);
}

.nhm-redesign .header-before > .wrap {
	padding-left: 0;
	padding-right: 0;
}

.nhm-redesign .nhm-topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: 38px;
}

.nhm-redesign .nhm-topbar-tag {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-family: var(--nhm-display);
	font-size: .85rem;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--nhm-on-dark-2);
}

.nhm-redesign .nhm-topbar-tag::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--nhm-gold);
}

.nhm-redesign .nhm-utility-nav .nhm-utility-menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nhm-redesign .nhm-utility-nav .nhm-utility-menu li {
	margin: 0;
	padding: 0;
}

.nhm-redesign .nhm-utility-nav .nhm-utility-menu a {
	display: block;
	padding: 10px 12px;
	font-family: var(--nhm-display);
	font-size: .85rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--nhm-on-dark);
	background: transparent;
}

.nhm-redesign .nhm-utility-nav .nhm-utility-menu a:hover,
.nhm-redesign .nhm-utility-nav .nhm-utility-menu a:focus-visible,
.nhm-redesign .nhm-utility-nav .nhm-utility-menu .current-menu-item > a {
	color: var(--nhm-gold);
}

/* Header row */
.nhm-redesign .site-header {
	background: #fff;
	border-bottom: 0;
	box-shadow: 0 1px 0 var(--nhm-line);
	position: relative;
	z-index: 50;
}

.nhm-redesign .site-header .header-right {
	display: flex;
	justify-content: flex-end;
	align-items: center;
}

/* The logo has no hover effect. */
.nhm-redesign .site-header .custom-logo-link,
.nhm-redesign .site-header .custom-logo-link:hover,
.nhm-redesign .site-header .custom-logo-link:focus,
.nhm-redesign .site-header .custom-logo-link .custom-logo,
.nhm-redesign .site-header .custom-logo-link:hover .custom-logo {
	opacity: 1;
	transform: none;
	filter: none;
	transition: none;
	background: transparent;
}

/* Primary nav, inside the header row */
.nhm-redesign .nav-primary,
.nhm-redesign.home .nav-primary .current-menu-item > a,
.nhm-redesign .site-header .nav-primary {
	background-color: transparent;
}

.nhm-redesign .site-header .nav-primary {
	margin: 0;
	box-shadow: none;
}

.nhm-redesign .site-header .nav-primary > .wrap {
	max-width: none;
	padding: 0;
}

.nhm-redesign .site-header .nav-primary .menu {
	justify-content: flex-end;
	align-items: center;
	flex-wrap: nowrap;
	gap: 0;
}

.nhm-redesign .nav-primary .menu-item {
	font-family: var(--nhm-display);
	letter-spacing: .1em;
}

.nhm-redesign .site-header .nav-primary a {
	position: relative;
	padding: 16px 14px;
	font-size: 1.02rem;
	font-weight: 600;
	color: var(--nhm-navy);
	background: transparent;
	white-space: nowrap;
}

/* Gold underline: grows on hover for plain links, stays for the current section */
.nhm-redesign .site-header .nav-primary > .wrap > .menu > .menu-item:not(.register) > a::before {
	content: "";
	position: absolute;
	left: 14px;
	right: 14px;
	bottom: 7px;
	height: 3px;
	background: var(--nhm-gold);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .25s var(--nhm-ease);
}

.nhm-redesign .site-header .nav-primary > .wrap > .menu > .menu-item-has-children > a::before {
	transition: none;
}

.nhm-redesign .site-header .nav-primary > .wrap > .menu > .menu-item:not(.register):not(.menu-item-has-children):hover > a::before,
.nhm-redesign .site-header .nav-primary > .wrap > .menu > .menu-item:not(.register):not(.menu-item-has-children) > a:focus-visible::before,
.nhm-redesign .site-header .nav-primary > .wrap > .menu > .current-menu-item:not(.register) > a::before,
.nhm-redesign .site-header .nav-primary > .wrap > .menu > .current-menu-ancestor:not(.register) > a::before {
	transform: scaleX(1);
}

.nhm-redesign .site-header .nav-primary .current-menu-ancestor > a,
.nhm-redesign .site-header .nav-primary .current-menu-item > a,
.nhm-redesign .site-header .nav-primary a:hover,
.nhm-redesign .site-header .nav-primary a:focus,
.nhm-redesign .site-header .nav-primary > .wrap > .menu > .menu-item-has-children:hover > a,
.nhm-redesign .site-header .nav-primary > .wrap > .menu > .menu-item-has-children:focus-within > a {
	background-color: transparent;
	color: var(--nhm-navy-900);
}

/* Dropdown chevron: flips up and turns gold while open */
.nhm-redesign .site-header .nav-primary > .wrap > .menu > .menu-item-has-children > a::after {
	content: "";
	display: inline-block;
	position: static;
	width: 6px;
	height: 6px;
	margin-left: 8px;
	vertical-align: 3px;
	border-style: solid;
	border-color: var(--nhm-navy);
	border-width: 0 2px 2px 0;
	background: none;
	transform: rotate(45deg);
	transition: transform .2s ease, border-color .2s ease;
}

.nhm-redesign .site-header .nav-primary > .wrap > .menu > .menu-item-has-children:hover > a::after,
.nhm-redesign .site-header .nav-primary > .wrap > .menu > .menu-item-has-children:focus-within > a::after,
.nhm-redesign .site-header .nav-primary > .wrap > .menu > .menu-item-has-children.sfHover > a::after {
	transform: translateY(3px) rotate(-135deg);
	border-color: var(--nhm-gold-ink);
}

/* Dropdowns: white card with a gold top edge. The 3px edge sits exactly on
   the parent's underline (bottom 7px + height 3px), so only one line shows. */
.nhm-redesign .site-header .nav-primary > .wrap > .menu > .menu-item > .sub-menu {
	top: calc(100% - 10px);
}

.nhm-redesign .site-header .nav-primary .sub-menu {
	width: 240px;
	padding: 8px 0;
	background: #fff;
	border-top: 3px solid var(--nhm-gold);
	border-radius: 0 0 var(--nhm-r-lg) var(--nhm-r-lg);
	box-shadow: var(--nhm-shadow-lg);
}

.nhm-redesign .site-header .nav-primary .sub-menu .sub-menu {
	margin-left: 237px;
}

.nhm-redesign .site-header .nav-primary .sub-menu a {
	padding: 11px 22px;
	font-size: .98rem;
	letter-spacing: .08em;
	color: var(--nhm-navy);
	background: transparent;
	border: 0;
}

.nhm-redesign .site-header .nav-primary .sub-menu a:hover,
.nhm-redesign .site-header .nav-primary .sub-menu a:focus-visible,
.nhm-redesign .site-header .nav-primary .sub-menu .current-menu-item > a {
	background: var(--nhm-cream);
	color: var(--nhm-navy-900);
	box-shadow: inset 3px 0 0 var(--nhm-gold);
}

/* Register pill. The item has no URL until registration opens, so without a
   link it reads as a badge (no pointer, no hover). */
.nhm-redesign .site-header .nav-primary .register {
	background: transparent;
	margin-left: 16px;
}

.nhm-redesign .site-header .nav-primary .register > a,
.nhm-redesign .site-header .nav-primary .register > a:hover,
.nhm-redesign .site-header .nav-primary .register > a:focus {
	margin: 0;
	padding: 12px 22px;
	font-size: .98rem;
	font-weight: 700;
	color: var(--nhm-navy-900);
	background: var(--nhm-gold);
	border-radius: 999px;
}

.nhm-redesign .site-header .nav-primary .register > a[href]:hover,
.nhm-redesign .site-header .nav-primary .register > a[href]:focus-visible {
	background: var(--nhm-gold-hover);
}

.nhm-redesign .site-header .nav-primary .register > a:not([href]) {
	cursor: default;
}

@media (max-width: 1159px) {
	.nhm-redesign .site-header .nav-primary a {
		padding-left: 10px;
		padding-right: 10px;
		font-size: .95rem;
	}

	.nhm-redesign .site-header .nav-primary > .wrap > .menu > .menu-item:not(.register) > a::before {
		left: 10px;
		right: 10px;
	}

	.nhm-redesign .site-header .nav-primary .register {
		margin-left: 8px;
	}

	.nhm-redesign .site-header .nav-primary .register > a {
		padding: 10px 16px;
		font-size: .9rem;
	}

	.nhm-redesign .nhm-topbar-tag {
		display: none;
	}

	.nhm-redesign .nhm-topbar {
		justify-content: flex-end;
	}
}

@media (max-width: 1080px) {
	.nhm-redesign .site-header .nav-primary a {
		padding-left: 8px;
		padding-right: 8px;
		font-size: .9rem;
		letter-spacing: .06em;
	}

	.nhm-redesign .site-header .nav-primary > .wrap > .menu > .menu-item:not(.register) > a::before {
		left: 8px;
		right: 8px;
	}
}

/* 6  Mobile header & drawer (≤960px = NHM_MOBILE_MENU_WIDTH)
   -------------------------------------------------------------------------- */

.nhm-redesign .mai-toggle,
.nhm-redesign .mai-toggle:hover,
.nhm-redesign .mai-toggle:focus {
	/* no `display` — Mai shows/hides it per breakpoint */
	width: 48px;
	height: 48px;
	padding: 0 12px;
	background: var(--nhm-navy);
	border-radius: var(--nhm-r);
}

.nhm-redesign .mai-toggle:hover,
.nhm-redesign .mai-toggle.activated {
	background: var(--nhm-navy-900);
}

.nhm-redesign .mai-toggle .mai-bars {
	width: 24px;
	color: #fff;
}

.nhm-redesign .mai-toggle .mai-bars::before {
	top: -7px;
}

.nhm-redesign .mai-toggle .mai-bars::after {
	bottom: -7px;
}

.nhm-redesign .mai-toggle.activated .mai-bars::before {
	top: 0;
}

.nhm-redesign .mai-toggle.activated .mai-bars::after {
	bottom: 0;
}

/* Drawer */
.nhm-redesign .mai-menu-inner {
	/* Same inset above the search box as on its sides. */
	padding: var(--nhm-gutter) var(--nhm-gutter) 32px;
	background: var(--nhm-navy-900);
}

.nhm-redesign .mai-menu-inner .menu-item {
	padding-left: 0;
	padding-right: 0;
	border-color: rgba(255, 255, 255, .08);
}

.nhm-redesign .mai-menu .menu-item a,
.nhm-redesign .mai-menu .sub-menu-toggle {
	font-family: var(--nhm-display);
	font-size: 1.1rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--nhm-on-dark);
	background: transparent;
	transition: none;
	-webkit-tap-highlight-color: transparent;
}

/* Tapping a parent label opens its submenu (nhm_redesign_drawer_parent_script);
   no dotted focus box for that tap, keyboard focus keeps its outline. */
.nhm-redesign .mai-menu .menu-item a:focus:not(:focus-visible) {
	outline: none;
}

.nhm-redesign .mai-menu .sub-menu a {
	font-size: 1rem;
	color: var(--nhm-on-dark-2);
}

.nhm-redesign .mai-menu .menu-item a:hover,
.nhm-redesign .mai-menu .current-menu-item > a,
.nhm-redesign .mai-menu .current-menu-ancestor > a,
.nhm-redesign .mai-menu .current-page-ancestor > a {
	color: var(--nhm-gold);
}

.nhm-redesign .mai-menu .search-form input[type="search"] {
	background: rgba(255, 255, 255, .07);
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: var(--nhm-r);
	color: #fff;
}

.nhm-redesign .mai-menu .search-form input[type="search"]::placeholder {
	color: var(--nhm-on-dark-2);
}

.nhm-redesign .mobile-menu .register {
	background: transparent;
	justify-content: center;
	padding: 12px 0;
}

.nhm-redesign .mobile-menu .register > a {
	display: inline-block;
	flex: none;
	width: auto;
	padding: 12px 22px;
	color: var(--nhm-navy-900);
	background: var(--nhm-gold);
	border-radius: 999px;
	white-space: nowrap;
}

.nhm-redesign .mobile-menu .register > a:hover {
	color: var(--nhm-navy-900);
}

.nhm-redesign .nhm-mobile-tag {
	display: none;
}

@media (max-width: 960px) {
	/* Mai hides header-right at the hamburger breakpoint; the flex rule above
	   would otherwise leave an empty, growing wrapper in the row. */
	.nhm-redesign .site-header .header-right {
		display: none;
	}

	/* Tagline at the exact page centre (see nhm-header.css for why). */
	.nhm-redesign .site-header-row {
		position: relative;
	}

	.nhm-redesign .nhm-mobile-tag {
		display: block;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		margin: 0;
		white-space: nowrap;
		pointer-events: none;
		font-family: var(--nhm-display);
		font-size: .82rem;
		font-weight: 600;
		letter-spacing: .16em;
		text-transform: uppercase;
		color: var(--nhm-navy);
	}

	.nhm-redesign .nhm-mobile-tag .nhm-mt-dot {
		color: var(--nhm-gold-ink);
	}
}

@media (max-width: 440px) {
	.nhm-redesign .nhm-mobile-tag {
		display: flex;
		flex-direction: column;
		align-items: center;
		line-height: 1.4;
		font-size: .78rem;
		letter-spacing: .14em;
	}

	.nhm-redesign .nhm-mobile-tag span:first-child {
		font-size: 1.05rem;
		font-weight: 700;
		letter-spacing: .1em;
	}

	.nhm-redesign .nhm-mt-dot {
		display: none;
	}

	/* Mirror the 64px menu button so the centred tagline reads as centred */
	.nhm-redesign .site-header .custom-logo-link {
		margin-left: 0;
		max-width: 64px;
	}
}

/* 7  Front-page hero (Mai banner) + countdown
   -------------------------------------------------------------------------- */

.nhm-redesign .banner-area {
	position: relative;
	overflow: hidden;
}

.nhm-redesign.home .banner-area.has-bg-image {
	background-color: var(--nhm-navy-900) !important; /* beats Mai's inline #f2f2f2 */
}

/* Darken toward the card (right) and the bottom edge, keep the runner bright */
.nhm-redesign .banner-area.has-bg-image::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		linear-gradient(90deg, rgba(28, 38, 43, 0) 35%, rgba(28, 38, 43, .5) 100%),
		linear-gradient(0deg, rgba(28, 38, 43, .55) 0%, rgba(28, 38, 43, 0) 35%);
}

.nhm-redesign .banner-area > .wrap {
	position: relative;
	z-index: 2;
}

.nhm-redesign.home .banner-area .bg-image {
	object-position: 30% 42%;
}

.nhm-redesign.home .banner-area .wrap.height-xl {
	min-height: clamp(560px, 78vh, 780px);
	padding-top: 72px;
	padding-bottom: 72px;
	align-items: center;
}

/* Card */
.nhm-redesign .banner-area.has-bg-image .inner-light {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 40px 44px 36px;
	color: var(--nhm-on-dark);
	background-color: rgba(28, 38, 43, .8) !important;
	-webkit-backdrop-filter: blur(10px) saturate(1.2);
	backdrop-filter: blur(10px) saturate(1.2);
	border: 1px solid rgba(255, 255, 255, .08);
	border-top: 0;
	border-radius: var(--nhm-r-lg);
	box-shadow: var(--nhm-shadow-lg);
}

/* Description ("A USATF-certified …") moves above the title as the eyebrow */
.nhm-redesign .banner-area .inner-light > p {
	order: -1;
	margin: 0 0 14px;
}

.nhm-redesign .banner-area span.desc {
	display: block;
	font-family: var(--nhm-display);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--nhm-gold);
}

.nhm-redesign .banner-area .inner-light .banner-title {
	margin: 0;
	font-size: clamp(2.6rem, 1.6rem + 3vw, 4rem);
	font-weight: 800;
	line-height: .95;
	letter-spacing: .005em;
	color: #fff;
}

.nhm-redesign .banner-area .inner-light > div {
	width: 100%;
}

.nhm-redesign .banner-area .race-date-container {
	justify-content: center;
	margin-top: 18px;
}

.nhm-redesign .banner-area span.race-date {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--nhm-display);
	font-size: 1.45rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #fff;
}

.nhm-redesign .banner-area span.race-date::before {
	content: "";
	width: 20px;
	height: 20px;
	flex: none;
	background: var(--nhm-gold);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") center / contain no-repeat;
}

.nhm-redesign .banner-area .home-button-container {
	justify-content: center;
	margin: 22px 0 0;
}

.nhm-redesign .banner-area a.home-button {
	min-width: 220px;
	font-size: 1.15rem !important;
}

/* Countdown */
.nhm-redesign .nhm-countdown {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	width: 100%;
	margin-top: 28px;
	padding-top: 22px;
	border-top: 1px solid rgba(255, 255, 255, .14);
}

.nhm-redesign .nhm-countdown[hidden] {
	display: none;
}

.nhm-redesign .nhm-countdown__unit {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
}

.nhm-redesign .nhm-countdown__unit + .nhm-countdown__unit {
	border-left: 1px solid rgba(255, 255, 255, .1);
}

.nhm-redesign .nhm-countdown__num {
	font-family: var(--nhm-display);
	font-size: 2.3rem;
	font-weight: 700;
	line-height: 1;
	color: #fff;
	font-variant-numeric: tabular-nums;
}

.nhm-redesign .nhm-countdown__label {
	font-family: var(--nhm-display);
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--nhm-on-dark-2);
}

@media (min-width: 1025px) {
	/* Card sits right, over the lake, clear of the runner */
	.nhm-redesign.home .banner-area .wrap.height-xl.end-xs.text-xs-center.text-lg {
		padding-right: max(var(--nhm-gutter), calc((100vw - var(--nhm-max)) / 2));
	}

	.nhm-redesign.home .banner-area .section-content.width-md {
		max-width: 500px !important;
	}
}

/* Phones/tablets: photo band on top, card below on navy (nhm-hero.css does
   the geometry; these are the redesign's colours and spacing) */
@media (max-width: 1024px) {
	.nhm-redesign.home .banner-area .wrap.height-xl {
		min-height: 0;
		padding-top: calc(var(--nhm-hero-photo-h) - 36px);
		padding-bottom: 40px;
	}

	.nhm-redesign.home .banner-area.has-bg-image::before {
		bottom: auto;
		height: var(--nhm-hero-photo-h);
		background: linear-gradient(0deg, rgba(28, 38, 43, .7) 0%, rgba(28, 38, 43, 0) 40%);
	}

	.nhm-redesign.home .banner-area.has-bg-image .inner-light {
		background-color: var(--nhm-navy) !important;
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		border-top: 4px solid var(--nhm-gold);
	}
}

@media (max-width: 600px) {
	.nhm-redesign .banner-area.has-bg-image .inner-light {
		padding: 30px 22px 26px;
	}

	.nhm-redesign .banner-area span.desc {
		font-size: .85rem;
		letter-spacing: .16em;
	}

	.nhm-redesign .banner-area span.race-date {
		font-size: 1.25rem;
	}

	.nhm-redesign .banner-area a.home-button {
		width: 100%;
	}

	.nhm-redesign .nhm-countdown__num {
		font-size: 1.9rem;
	}

	.nhm-redesign .nhm-countdown__label {
		font-size: .7rem;
		letter-spacing: .14em;
	}
}

/* 8  Race cards ("Choose your race", front page)
   -------------------------------------------------------------------------- */

.nhm-redesign .nhm-races {
	position: relative;
	z-index: 3;
	padding-bottom: 104px;
	background: #fff;
}

.nhm-redesign .nhm-races__head {
	display: grid;
	gap: 8px;
	padding-top: 96px;
	margin-bottom: 40px;
}

.nhm-redesign .nhm-races__title {
	margin: 0;
	font-size: clamp(2.4rem, 1.6rem + 2.6vw, 3.6rem);
	font-weight: 800;
	line-height: .95;
}

.nhm-redesign .nhm-races__list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nhm-redesign .nhm-race {
	margin: 0;
	padding: 0;
	list-style: none;
}

.nhm-redesign .nhm-race__link {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 28px 26px 22px;
	color: var(--nhm-ink);
	text-decoration: none;
	background: #fff;
	border: 1px solid var(--nhm-line);
	border-radius: var(--nhm-r-lg);
	box-shadow: var(--nhm-shadow);
	overflow: hidden;
}

/* Gold bar that sweeps in along the top on hover */
.nhm-redesign .nhm-race__link::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: var(--nhm-gold);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .35s var(--nhm-ease);
}

.nhm-redesign .nhm-race__link:hover,
.nhm-redesign .nhm-race__link:focus-visible {
	color: var(--nhm-ink);
	transform: translateY(-4px);
	box-shadow: var(--nhm-shadow-lg);
}

.nhm-redesign .nhm-race__link:hover::before,
.nhm-redesign .nhm-race__link:focus-visible::before {
	transform: scaleX(1);
}

.nhm-redesign .nhm-race__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}

.nhm-redesign .nhm-race__dist {
	display: flex;
	align-items: baseline;
	gap: 8px;
	font-family: var(--nhm-display);
	font-size: 3.6rem;
	font-weight: 800;
	font-style: italic;
	line-height: .9;
	letter-spacing: -.01em;
	color: var(--nhm-navy);
}

.nhm-redesign .nhm-race__dist small {
	font-size: .95rem;
	font-weight: 600;
	font-style: normal;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--nhm-ink-2);
}

.nhm-redesign .nhm-race__badge {
	flex: none;
	margin-top: 4px;
	padding: 4px 10px;
	font-family: var(--nhm-display);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--nhm-navy-900);
	background: var(--nhm-gold);
	border-radius: 999px;
}

.nhm-redesign .nhm-race__name {
	margin-top: 16px;
	font-family: var(--nhm-display);
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.05;
	text-transform: uppercase;
	letter-spacing: .03em;
	color: var(--nhm-navy);
}

.nhm-redesign .nhm-race__summary {
	margin: 10px 0 22px;
	font-size: .98rem;
	line-height: 1.55;
	color: var(--nhm-ink-2);
}

.nhm-redesign .nhm-race__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
	padding-top: 16px;
	border-top: 2px solid var(--nhm-line);
	font-family: var(--nhm-display);
	font-size: .92rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--nhm-ink-2);
}

.nhm-redesign .nhm-race__more {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--nhm-navy);
}

.nhm-redesign .nhm-race__more::after {
	content: "→";
	font-family: var(--nhm-text);
	transition: transform .25s var(--nhm-ease);
}

.nhm-redesign .nhm-race__link:hover .nhm-race__more::after {
	transform: translateX(4px);
}

@media (max-width: 1024px) {
	.nhm-redesign .nhm-races {
		background: #fff;
		padding-bottom: 72px;
	}

	.nhm-redesign .nhm-races__head {
		padding-top: 56px;
	}

	.nhm-redesign .nhm-races__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.nhm-redesign .nhm-races__list {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.nhm-redesign .nhm-race__link {
		padding: 22px 20px 18px;
	}

	.nhm-redesign .nhm-race__dist {
		font-size: 3rem;
	}
}

/* 9  Front-page sections (classes from nhm_redesign_section_args)
   -------------------------------------------------------------------------- */

.nhm-redesign .entry-content > .section {
	background-color: #fff;
}

.nhm-redesign .entry-content > .section > .wrap {
	max-width: calc(var(--nhm-max) + 2 * var(--nhm-gutter));
}

.nhm-redesign.home .entry-content > .section > .wrap {
	padding-top: 104px;
	padding-bottom: 104px;
}

/* Intro / mission */
.nhm-redesign .nhm-sec-intro {
	background:
		radial-gradient(900px 360px at 50% 0%, rgba(240, 176, 48, .1), transparent 70%),
		var(--nhm-cream) !important;
}

.nhm-redesign .nhm-sec-intro .section-content {
	max-width: 860px !important;
}

.nhm-redesign .nhm-sec-intro p {
	margin: 0;
	font-family: var(--nhm-display) !important; /* the paragraph has an inline Oswald font */
	font-size: clamp(1.5rem, 1.15rem + 1.1vw, 2.15rem);
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: .005em;
	color: var(--nhm-navy);
	text-wrap: pretty;
}

.nhm-redesign .nhm-sec-intro hr {
	width: 48px;
	height: 4px;
	margin: 36px auto 26px;
	background: var(--nhm-gold);
}

.nhm-redesign .nhm-sec-intro h4 {
	margin: 0;
	font-size: 1.1rem;
	font-weight: 700;
	letter-spacing: .2em;
	color: var(--nhm-steel-ink);
}

/* Proceeds benefit: three partner cards */
.nhm-redesign .nhm-sec-proceeds .heading {
	margin-bottom: 12px;
}

.nhm-redesign .nhm-sec-proceeds .heading::before {
	content: "Giving back";
	display: block;
	margin-bottom: 12px;
	font-size: .95rem;
	font-weight: 600;
	letter-spacing: .2em;
	color: var(--nhm-gold-ink);
}

.nhm-redesign .nhm-sec-proceeds .section-content > div {
	gap: 24px !important;
	align-items: stretch;
	margin-top: 44px;
}

.nhm-redesign .nhm-sec-proceeds .section-content > div > div {
	display: flex;
	flex: 1 1 260px;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	gap: 26px;
	max-width: 360px;
	padding: 36px 28px 28px;
	background: #fff;
	border: 1px solid var(--nhm-line);
	border-radius: var(--nhm-r-lg);
	transition: box-shadow .25s ease, transform .25s var(--nhm-ease), border-color .25s ease;
}

.nhm-redesign .nhm-sec-proceeds .section-content > div > div:hover {
	border-color: transparent;
	box-shadow: var(--nhm-shadow-lg);
	transform: translateY(-4px);
}

.nhm-redesign .nhm-sec-proceeds .section-content > div > div > a:first-child {
	display: flex;
	flex: 1;
	align-items: center;
	justify-content: center;
}

.nhm-redesign .nhm-sec-proceeds img {
	width: auto;
	max-height: 120px;
	margin: 0 auto;
	object-fit: contain;
	border-radius: 0;
}

.nhm-redesign .nhm-sec-proceeds .button {
	width: 100%;
	--nhm-btn-ls: .05em;
	white-space: nowrap;
	font-size: .98rem !important;
	color: var(--nhm-navy) !important;
	background: transparent !important;
	border-color: var(--nhm-navy);
}

.nhm-redesign .nhm-sec-proceeds .button:hover,
.nhm-redesign .nhm-sec-proceeds .button:focus-visible {
	color: #fff !important;
	background: var(--nhm-navy) !important;
}

/* Race-day band */
.nhm-redesign .nhm-sec-raceday {
	position: relative;
	color: var(--nhm-on-dark);
	background:
		var(--nhm-contours) center / 900px auto repeat,
		radial-gradient(1100px 420px at 50% 0%, rgba(240, 176, 48, .16), transparent 70%),
		var(--nhm-navy) !important;
}

.nhm-redesign .nhm-sec-raceday .heading {
	color: #fff;
	font-size: clamp(2.2rem, 1.4rem + 2.8vw, 3.8rem);
}

.nhm-redesign .nhm-sec-raceday p {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 12px 20px;
	margin-top: 1.4em;
	font-size: 1.1rem;
}

.nhm-redesign .nhm-sec-raceday p br {
	display: none;
}

.nhm-redesign .nhm-sec-raceday strong {
	font-family: var(--nhm-display);
	font-size: 1.2rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--nhm-on-dark);
}

.nhm-redesign .nhm-sec-raceday strong:first-child {
	padding: .35em 1.1em;
	color: var(--nhm-navy-900);
	background: var(--nhm-gold);
	border-radius: 999px;
}

/* Sponsorship */
.nhm-redesign .nhm-sec-sponsorship {
	background: var(--nhm-cream) !important;
}

.nhm-redesign .nhm-sec-sponsorship .section-content {
	max-width: 760px;
}

.nhm-redesign .entry-content .nhm-sec-sponsorship p,
.nhm-redesign .entry-content .nhm-sec-sponsorship strong {
	font-size: 1.15rem;
	font-weight: 400;
	line-height: 1.7;
	color: var(--nhm-ink-2);
}

.nhm-redesign .nhm-sec-sponsorship .nh-button-wrapper {
	justify-content: center;
	margin-top: 30px;
}

.nhm-redesign .nhm-sec-sponsorship .button {
	color: var(--nhm-navy-900) !important;
	background: var(--nhm-gold) !important;
}

.nhm-redesign .nhm-sec-sponsorship .button:hover,
.nhm-redesign .nhm-sec-sponsorship .button:focus-visible {
	color: var(--nhm-navy-900) !important;
	background: var(--nhm-gold-hover) !important;
}

@media (max-width: 768px) {
	.nhm-redesign.home .entry-content > .section > .wrap {
		padding-top: 72px;
		padding-bottom: 72px;
	}

	.nhm-redesign .nhm-sec-raceday strong {
		font-size: 1.02rem;
		letter-spacing: .06em;
		line-height: 1.3;
	}

	.nhm-redesign .nhm-sec-raceday strong:first-child {
		padding: .6em 1.2em;
		border-radius: var(--nhm-r-lg);
	}

	.nhm-redesign .nhm-sec-proceeds .button {
		white-space: normal;
	}
}

/* 10  Interior page header (nhm_redesign_page_hero)
   -------------------------------------------------------------------------- */

.nhm-redesign .nhm-page-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 260px;
	padding: 64px 0 52px;
	color: #fff;
	background:
		var(--nhm-contours) center / 900px auto repeat,
		radial-gradient(900px 300px at 85% 0%, rgba(240, 176, 48, .14), transparent 70%),
		var(--nhm-navy);
	overflow: hidden;
}

.nhm-redesign .nhm-page-hero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 5px;
	background: var(--nhm-gold);
	z-index: 2;
}

.nhm-redesign .nhm-page-hero--photo {
	min-height: clamp(340px, 42vw, 520px);
	background: var(--nhm-navy-900);
}

.nhm-redesign .nhm-page-hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 30%; /* faces sit in the upper third of race photos */
}

.nhm-redesign .nhm-page-hero--photo::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(0deg, rgba(28, 38, 43, .88) 0%, rgba(28, 38, 43, .35) 45%, rgba(28, 38, 43, .1) 100%),
		linear-gradient(90deg, rgba(28, 38, 43, .45) 0%, rgba(28, 38, 43, 0) 60%);
}

.nhm-redesign .nhm-page-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
}

.nhm-redesign .nhm-crumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	margin-bottom: 14px;
	font-family: var(--nhm-display);
	font-size: .92rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--nhm-on-dark-2);
}

.nhm-redesign .nhm-crumbs a {
	color: var(--nhm-on-dark);
	text-decoration: none;
}

.nhm-redesign .nhm-crumbs a:hover,
.nhm-redesign .nhm-crumbs a:focus-visible {
	color: var(--nhm-gold);
}

.nhm-redesign .nhm-crumbs__sep {
	color: var(--nhm-gold);
}

.nhm-redesign .nhm-crumbs [aria-current] {
	color: var(--nhm-gold);
}

.nhm-redesign .nhm-page-hero__title {
	max-width: 1100px;
	margin: 0;
	font-size: clamp(2.6rem, 1.5rem + 4vw, 5rem);
	font-weight: 800;
	line-height: .92;
	letter-spacing: .005em;
	color: #fff;
	text-shadow: 0 2px 24px rgba(0, 0, 0, .2);
}

.nhm-redesign .nhm-page-hero__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
}

.nhm-redesign .nhm-page-hero__facts li {
	margin: 0;
	padding: 7px 14px;
	font-family: var(--nhm-display);
	font-size: .98rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #fff;
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 999px;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.nhm-redesign .nhm-page-hero__facts li:first-child {
	color: var(--nhm-navy-900);
	background: var(--nhm-gold);
	border-color: var(--nhm-gold);
}

@media (max-width: 600px) {
	.nhm-redesign .nhm-page-hero {
		min-height: 200px;
		padding: 48px 0 36px;
	}

	.nhm-redesign .nhm-page-hero--photo {
		min-height: 360px;
	}
}

/* Mai's own banner on the blog, news posts and 404: same look as the page
   header above (title bottom-left over a darkened photo, gold base line). */
.nhm-redesign:not(.home) .banner-area {
	background-color: var(--nhm-navy) !important;
}

.nhm-redesign:not(.home) .banner-area::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 3;
	height: 5px;
	background: var(--nhm-gold);
}

.nhm-redesign:not(.home) .banner-area.has-bg-image::before {
	background:
		linear-gradient(0deg, rgba(28, 38, 43, .88) 0%, rgba(28, 38, 43, .35) 45%, rgba(28, 38, 43, .1) 100%),
		linear-gradient(90deg, rgba(28, 38, 43, .45) 0%, rgba(28, 38, 43, 0) 60%);
}

.nhm-redesign:not(.home) .banner-area .bg-image {
	object-position: center 30%;
}

.nhm-redesign:not(.home) .banner-area .wrap.height-xl.end-xs.text-xs-center.text-lg,
.nhm-redesign:not(.home) .banner-area > .wrap {
	justify-content: flex-start;
	align-items: flex-end;
	min-height: clamp(340px, 42vw, 520px);
	max-width: calc(var(--nhm-max) + 2 * var(--nhm-gutter));
	margin: 0 auto;
	padding: 64px var(--nhm-gutter) 52px;
	text-align: left;
}

.nhm-redesign:not(.home) .banner-area .section-content.width-md,
.nhm-redesign:not(.home) .banner-area .width-md {
	max-width: 1100px !important;
	margin: 0;
}

.nhm-redesign:not(.home) .banner-area .inner,
.nhm-redesign:not(.home) .banner-area.has-bg-image .inner-light {
	align-items: flex-start;
	padding: 0;
	text-align: left;
	background: transparent !important;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	border: 0;
	box-shadow: none;
}

.nhm-redesign:not(.home) .banner-area .banner-title {
	margin: 0;
	font-size: clamp(2.6rem, 1.5rem + 4vw, 5rem);
	font-weight: 800;
	line-height: .92;
	color: #fff;
	text-shadow: 0 2px 24px rgba(0, 0, 0, .2);
}

.nhm-redesign:not(.home) .banner-area,
.nhm-redesign:not(.home) .banner-area p {
	color: var(--nhm-on-dark);
}

/* Search results + 404: no photo (nhm_redesign_plain_banner_image), so use
   the compact navy page header: contour pattern, gold glow, shorter band. */
.nhm-redesign.nhm-plain-banner .banner-area {
	background:
		var(--nhm-contours) center / 900px auto repeat,
		radial-gradient(900px 300px at 85% 0%, rgba(240, 176, 48, .14), transparent 70%),
		var(--nhm-navy) !important;
}

.nhm-redesign.nhm-plain-banner .banner-area .wrap.height-xl.end-xs.text-xs-center.text-lg,
.nhm-redesign.nhm-plain-banner .banner-area > .wrap {
	min-height: 260px;
}

.nhm-redesign.nhm-plain-banner .banner-area .nhm-crumbs a {
	color: var(--nhm-on-dark);
}

@media (max-width: 600px) {
	.nhm-redesign.nhm-plain-banner .banner-area .wrap.height-xl.end-xs.text-xs-center.text-lg,
	.nhm-redesign.nhm-plain-banner .banner-area > .wrap {
		min-height: 200px;
		padding-top: 48px;
		padding-bottom: 36px;
	}
}

.nhm-redesign:not(.home).has-banner-area .site-inner {
	padding-top: 56px;
	padding-bottom: 88px;
}

/* 11  Interior content + sidebar
   -------------------------------------------------------------------------- */

/* Sections pages: the section wrap gets no extra vertical padding — the page
   header already provides the top edge. */
.nhm-redesign.nhm-has-page-hero .entry-content > .section > .wrap {
	padding-top: 0;
	padding-bottom: 48px;
}

.nhm-redesign.nhm-has-page-hero .entry-content > .section:last-child > .wrap {
	padding-bottom: 0;
}

.nhm-redesign.nhm-has-page-hero .entry-content > .section .heading {
	font-size: clamp(1.8rem, 1.4rem + 1.3vw, 2.4rem);
}

/* Content headings: left aligned, gold underline segment */
.nhm-redesign.nhm-has-page-hero .entry-content h2:not(.heading) {
	position: relative;
	margin-top: 1.6em;
	padding-bottom: .4em;
	font-size: clamp(1.75rem, 1.35rem + 1.2vw, 2.35rem);
	border-bottom: 2px solid var(--nhm-line);
}

.nhm-redesign.nhm-has-page-hero .entry-content h2:not(.heading)::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -2px;
	width: 56px;
	height: 2px;
	background: var(--nhm-gold);
}

.nhm-redesign.nhm-has-page-hero .entry-content h3 {
	margin-top: 1.4em;
}

.nhm-redesign .entry-content {
	font-size: 1.06rem;
	line-height: 1.75;
	color: var(--nhm-ink);
}

.nhm-redesign .entry-content p,
.nhm-redesign .entry-content li {
	color: var(--nhm-ink);
}

.nhm-redesign .entry-content strong {
	font-weight: 700;
}

.nhm-redesign .entry-content img {
	border-radius: var(--nhm-r-lg);
}

.nhm-redesign .featured-image img {
	border-radius: var(--nhm-r-lg);
	box-shadow: var(--nhm-shadow);
}

.nhm-redesign .entry-content ul:not([class]) li::marker {
	color: var(--nhm-gold-ink);
}

.nhm-redesign .entry-content blockquote {
	margin: 1.5em 0;
	padding: 20px 26px;
	color: var(--nhm-ink);
	background: var(--nhm-cream);
	border-left: 4px solid var(--nhm-gold);
	border-radius: 0 var(--nhm-r) var(--nhm-r) 0;
}

.nhm-redesign .entry-content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 1rem;
	border: 1px solid var(--nhm-line);
	border-radius: var(--nhm-r);
	overflow: hidden;
}

.nhm-redesign .entry-content th {
	padding: 12px 14px;
	font-family: var(--nhm-display);
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #fff;
	background: var(--nhm-navy);
}

.nhm-redesign .entry-content td {
	padding: 10px 14px;
	border-top: 1px solid var(--nhm-line);
}

.nhm-redesign .entry-content tr:nth-child(even) td {
	background: var(--nhm-cream);
}

/* Inline-styled callout boxes in page content (e.g. Race Details fee schedule) */
.nhm-redesign .entry-content div[style*="border-left"] {
	border-left-color: var(--nhm-gold) !important;
	background-color: var(--nhm-cream) !important;
	border-radius: 0 var(--nhm-r-lg) var(--nhm-r-lg) 0;
}

/* Embedded maps and video */
.nhm-redesign .entry-content iframe {
	max-width: 100%;
	border: 0;
	border-radius: var(--nhm-r-lg);
}

/* Sidebar: quiet cards */
.nhm-redesign .sidebar .widget {
	padding: 26px 26px 24px;
	background: #fff;
	border: 1px solid var(--nhm-line);
	border-radius: var(--nhm-r-lg);
	box-shadow: none;
}

.nhm-redesign .sidebar .widget + .widget {
	margin-top: 20px;
}

.nhm-redesign .sidebar .widget-title {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 16px;
	font-size: .98rem;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--nhm-gold-ink);
}

.nhm-redesign .sidebar .widget-title::before {
	content: "";
	width: 20px;
	height: 2px;
	background: var(--nhm-gold);
}

.nhm-redesign .sidebar .widget,
.nhm-redesign .sidebar .widget p {
	font-size: 1rem;
	line-height: 1.6;
}

.nhm-redesign .sidebar .widget a {
	font-weight: 600;
}

.nhm-redesign .sidebar .widget img {
	border-radius: var(--nhm-r);
}

/* Text widgets (e.g. Race Info): small-caps labels, and lists drawn as a
   schedule — one row per item, hairline rules, no bullets. */
.nhm-redesign .sidebar .widget_custom_html p,
.nhm-redesign .sidebar .widget_text p {
	margin: 0 0 4px;
}

.nhm-redesign .sidebar .widget_custom_html p > strong:first-child,
.nhm-redesign .sidebar .widget_text p > strong:first-child {
	display: inline-block;
	margin-bottom: 2px;
	font-family: var(--nhm-display);
	font-size: .9rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--nhm-ink-2);
}

.nhm-redesign .sidebar .widget ul {
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--nhm-line);
}

.nhm-redesign .sidebar .widget li {
	margin: 0;
	padding: 12px 0;
	border-bottom: 1px solid var(--nhm-line);
	line-height: 1.5;
	color: var(--nhm-ink-2);
}

.nhm-redesign .sidebar .widget li:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.nhm-redesign .sidebar .widget li > strong:first-child {
	font-family: var(--nhm-display);
	font-size: 1.2rem;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
	color: var(--nhm-navy);
}

.nhm-redesign .sidebar .widget li a {
	font-size: .95rem;
	font-weight: 600;
	color: var(--nhm-navy);
	text-decoration: underline;
	text-decoration-color: var(--nhm-gold);
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}

.nhm-redesign .sidebar .widget li a:hover,
.nhm-redesign .sidebar .widget li a:focus-visible {
	color: var(--nhm-gold-ink);
}

.nhm-redesign .mai-sections.content-sidebar .sidebar,
.nhm-redesign.content-sidebar .sidebar {
	padding-top: 0;
}

/* Forms */
.nhm-redesign input[type="text"],
.nhm-redesign input[type="email"],
.nhm-redesign input[type="tel"],
.nhm-redesign input[type="search"],
.nhm-redesign input[type="url"],
.nhm-redesign input[type="number"],
.nhm-redesign select,
.nhm-redesign textarea {
	font-family: var(--nhm-text);
	font-size: 1rem;
	border: 1px solid #c9d1d9;
	border-radius: var(--nhm-r);
	background: #fff;
}

.nhm-redesign input:focus,
.nhm-redesign select:focus,
.nhm-redesign textarea:focus {
	border-color: var(--nhm-navy);
	box-shadow: 0 0 0 3px rgba(240, 176, 48, .35);
	outline: none;
}

/* 12  Closing CTA + footer
   -------------------------------------------------------------------------- */

.nhm-redesign .nhm-cta {
	position: relative;
	padding: 72px 0;
	color: #fff;
	background:
		var(--nhm-contours) center / 900px auto repeat,
		radial-gradient(800px 320px at 0% 100%, rgba(240, 176, 48, .14), transparent 70%),
		var(--nhm-navy);
	overflow: hidden;
}

.nhm-redesign .nhm-cta__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 28px 48px;
}

.nhm-redesign .nhm-cta .nhm-eyebrow {
	color: var(--nhm-gold);
}

.nhm-redesign .nhm-cta__title {
	max-width: 640px;
	margin: 0;
	font-size: clamp(2.2rem, 1.4rem + 2.6vw, 3.6rem);
	font-weight: 800;
	line-height: .95;
	color: #fff;
}

.nhm-redesign .nhm-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

/* Footer widgets */
.nhm-redesign .footer-widgets {
	padding-top: 72px;
	padding-bottom: 48px;
	color: var(--nhm-on-dark-2);
	background: var(--nhm-navy-900);
	border-top: 0;
}

.nhm-redesign .footer-widgets .widget-title {
	margin-bottom: 1.1em;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--nhm-gold);
}

.nhm-redesign .footer-widgets,
.nhm-redesign .footer-widgets p {
	font-size: 1rem;
	line-height: 1.75;
}

.nhm-redesign .footer-widgets p + p {
	margin-top: 1.4em;
}

.nhm-redesign .footer-widgets strong {
	display: inline-block;
	margin-bottom: 2px;
	font-family: var(--nhm-display);
	font-size: 1.05rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #fff;
}

.nhm-redesign .footer-widgets a {
	color: var(--nhm-on-dark);
	text-decoration: none;
}

.nhm-redesign .footer-widgets a:hover,
.nhm-redesign .footer-widgets a:focus-visible {
	color: var(--nhm-gold);
}

/* Quick links in two columns */
.nhm-redesign .footer-widgets #menu-footer-menu {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2px 32px;
}

.nhm-redesign .footer-widgets .menu-item a {
	display: inline-block;
	padding: 4px 0;
}

/* Short footer-menu labels on phones ("FAQ"); the long label stays in the
   accessibility tree, visually hidden, so screen readers hear the full name. */
.nhm-redesign .nhm-label-short {
	display: none;
}

@media (max-width: 767px) {
	.nhm-redesign .nhm-label-short {
		display: inline;
	}

	.nhm-redesign .nhm-label-long {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		white-space: nowrap;
	}
}

/* Social icons: override the plugin's inline #id rules (:not(#_) adds ID weight) */
.nhm-redesign .simple-social-icons:not(#_) ul li a,
.nhm-redesign .simple-social-icons:not(#_) ul li a:hover,
.nhm-redesign .simple-social-icons:not(#_) ul li a:focus {
	border-radius: 50% !important;
}

.nhm-redesign .simple-social-icons:not(#_) ul li a {
	color: #fff !important;
	background-color: rgba(255, 255, 255, .08) !important;
}

.nhm-redesign .simple-social-icons:not(#_) ul li a:hover,
.nhm-redesign .simple-social-icons:not(#_) ul li a:focus {
	color: var(--nhm-navy-900) !important;
	background-color: var(--nhm-gold) !important;
}

.nhm-redesign .site-footer {
	padding: 22px 0;
	font-size: .9rem;
	letter-spacing: .04em;
	color: #7f8e9d;
	background: #0e151c;
	border-top: 1px solid rgba(255, 255, 255, .06);
}

.nhm-redesign .site-footer p {
	margin: 0;
}

.nhm-redesign .site-footer a {
	color: var(--nhm-on-dark-2);
}

@media (max-width: 600px) {
	.nhm-redesign .nhm-cta {
		padding: 56px 0;
	}

	.nhm-redesign .nhm-cta__actions,
	.nhm-redesign .nhm-cta__actions .nhm-btn {
		width: 100%;
	}

	.nhm-redesign .footer-widgets {
		padding-top: 56px;
	}
}

/* 13  Motion
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	.nhm-redesign *,
	.nhm-redesign *::before,
	.nhm-redesign *::after {
		transition: none !important;
		animation: none !important;
	}

	.nhm-redesign .nhm-race__link:hover,
	.nhm-redesign .nhm-sec-proceeds .section-content > div > div:hover,
	.nhm-redesign .button:hover,
	.nhm-redesign .nhm-btn:hover {
		transform: none;
	}
}
