/* ============================================================
   Nevis Marathon Branding Pack v1.3 (plugin v0.3.1)
   Layout containment + accent line + typography + contrast polish.
   ============================================================ */

/* ---------- Tokens ---------- */
:root {
	--nmc-navy:      #102033;
	--nmc-ocean:     #1F6FA8;
	--nmc-coral:     #F15A3B;
	--nmc-coral-dk:  #D9472A;
	--nmc-charcoal:  #2A2F35;
	--nmc-sand:      #F4E7D0;
	--nmc-sea-mist:  #EAF3F7;
	--nmc-white:     #FFFFFF;
	--nmc-muted:     #5F6F7A;
	--nmc-font-body: 'Inter', Arial, sans-serif;
	--nmc-font-head: 'Barlow Condensed', Arial, sans-serif;
	--nmc-radius:    14px;
	--nmc-radius-pill: 999px;
	--nmc-shadow:    0 2px 6px rgba(16,32,51,.08), 0 6px 18px rgba(16,32,51,.06);
	--nmc-measure:   72ch;
}

/* Kadence palette remap — palette8 deliberately NOT touched. */
:root,
body {
	--global-palette1: #1F6FA8;
	--global-palette2: #102033;
	--global-palette3: #F15A3B;
	--global-palette5: #F4E7D0;
	--global-palette6: #EAF3F7;
	--global-palette7: #FFFFFF;
	--global-body-font-family: var(--nmc-font-body);
	--global-heading-font-family: var(--nmc-font-head);
}

/* ---------- Global containment & safety ---------- */
*, *::before, *::after { box-sizing: border-box; }

html, body { overflow-x: clip; }

.site,
.site-content,
.entry-content,
.entry-content-wrap,
.content-area {
	max-width: 100%;
}

img,
video,
iframe,
embed,
object {
	max-width: 100%;
	height: auto;
}

/* ---------- Base typography ---------- */
body {
	font-family: var(--nmc-font-body);
	color: var(--nmc-navy);
	background-color: var(--nmc-sea-mist);
	font-size: 17px;
	line-height: 1.6;
}
.entry-content,
.wp-site-blocks,
.site-content {
	font-family: var(--nmc-font-body);
	color: var(--nmc-navy);
	background-color: transparent;
}

@media (max-width: 600px) {
	body { font-size: 16px; }
}

/* Paragraph readability — only enforce 72ch on non-centered, non-Kadence-column paragraphs */
.entry-content > p:not(.has-text-align-center) {
	max-width: var(--nmc-measure);
}
/* Centered paragraphs: keep readable width but center the block too */
p.has-text-align-center,
.has-text-align-center > p {
	max-width: var(--nmc-measure);
	margin-left: auto;
	margin-right: auto;
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.wp-block-heading,
.kadence-heading {
	font-family: var(--nmc-font-head);
	font-weight: 700;
	letter-spacing: .01em;
	line-height: 1.15;
	color: var(--nmc-navy);
}

h1, .entry-title { font-size: clamp(1.9rem, 3.6vw, 3rem); }
h2 { font-size: clamp(1.4rem, 2.2vw, 1.9rem); }
h3 { font-size: clamp(1.15rem, 1.6vw, 1.4rem); }
h4 { font-size: clamp(1.05rem, 1.3vw, 1.2rem); }

/* ---------- Coral accent under section H2 (in-flow, sits under heading text) ---------- */
.entry-content > h2,
.entry-content .wp-block-group > h2,
.entry-content .kt-inside-inner-col > h2 {
	margin-bottom: .35em;
}
.entry-content > h2::after,
.entry-content .wp-block-group > h2::after,
.entry-content .kt-inside-inner-col > h2::after {
	content: "";
	display: block;
	width: 64px;
	height: 3px;
	background: var(--nmc-coral);
	border-radius: 2px;
	margin: .35em 0 1em;
}
.has-text-align-center > h2::after,
h2.has-text-align-center::after,
.entry-content .has-text-align-center > h2::after {
	margin-left: auto;
	margin-right: auto;
}

/* ---------- Links ---------- */
.entry-content a:not(.button):not(.wp-block-button__link):not(.kadence-button):not(.nmc-btn-secondary):not(.nmc-btn-cta),
.site-main a:not(.button):not(.wp-block-button__link):not(.kadence-button):not(.nmc-btn-secondary):not(.nmc-btn-cta),
.kadence-content a:not(.button):not(.wp-block-button__link):not(.kadence-button):not(.nmc-btn-secondary):not(.nmc-btn-cta) {
	color: var(--nmc-ocean);
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
	transition: color .15s ease;
}
.entry-content a:hover,
.site-main a:hover,
.kadence-content a:hover {
	color: var(--nmc-coral);
}

/* ---------- Site header & navigation ---------- */
.site-header,
.site-header-wrap,
.site-branding,
.site-top-header-wrap,
.site-main-header-wrap,
.site-bottom-header-wrap {
	background-color: var(--nmc-white);
}
.site-title,
.site-title a,
.site-branding .site-title a,
.site-branding a {
	color: var(--nmc-navy) !important;
	font-family: var(--nmc-font-head);
	font-weight: 700;
}
.main-navigation .menu > li > a,
.main-navigation ul li a,
.header-navigation .header-menu-container ul li a,
.site-header-item-main-navigation a {
	color: var(--nmc-navy) !important;
	font-family: var(--nmc-font-body);
	font-weight: 600;
	opacity: 1 !important;
}
.main-navigation .menu > li > a:hover,
.main-navigation ul li a:hover,
.header-navigation .header-menu-container ul li a:hover {
	color: var(--nmc-coral) !important;
}
/* Active page indicator: stay navy, gain bold weight + coral underline. */
.main-navigation ul li.current-menu-item > a,
.header-navigation ul li.current-menu-item > a {
	color: var(--nmc-navy) !important;
	font-weight: 800;
	text-decoration: underline;
	text-decoration-color: var(--nmc-coral);
	text-decoration-thickness: 3px;
	text-underline-offset: 6px;
}

/* ---------- Page background (sea-mist body) ---------- */
body.wp-singular,
body.page,
body.home,
body.archive,
body.single,
.site {
	background-color: var(--nmc-sea-mist);
}
.site-main { background-color: transparent; }

/* ---------- Opt-in content card utility ---------- */
.nmc-card {
	background-color: var(--nmc-white);
	border-radius: var(--nmc-radius);
	box-shadow: var(--nmc-shadow);
	padding: 1.5rem;
}

/* ---------- Buttons ---------- */
.wp-block-button .wp-block-button__link,
.kadence-button,
.kt-btn-wrap .kt-button,
.button,
button.button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-page a.button,
.woocommerce-page button.button {
	display: inline-block;
	font-family: var(--nmc-font-body);
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.2;
	padding: 14px 24px;
	border-radius: var(--nmc-radius-pill);
	border: 2px solid transparent;
	background-color: var(--nmc-ocean);
	color: var(--nmc-white);
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.wp-block-button .wp-block-button__link:hover,
.kadence-button:hover,
.kt-btn-wrap .kt-button:hover,
.button:hover,
button.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	background-color: var(--nmc-navy);
	color: var(--nmc-white);
	border-color: var(--nmc-navy);
}

.wp-block-button.is-style-outline .wp-block-button__link,
.nmc-btn-secondary,
a.nmc-btn-secondary {
	background-color: transparent;
	color: var(--nmc-ocean);
	border: 2px solid var(--nmc-ocean);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.nmc-btn-secondary:hover,
a.nmc-btn-secondary:hover {
	background-color: var(--nmc-ocean);
	color: var(--nmc-white);
}

.nmc-btn-cta,
a.nmc-btn-cta,
.wp-block-button.is-style-nmc-cta .wp-block-button__link,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce .single_add_to_cart_button,
.woocommerce #respond input#submit.alt,
.woocommerce-page #place_order {
	background-color: var(--nmc-coral);
	color: var(--nmc-white);
	border-color: var(--nmc-coral);
}
.nmc-btn-cta:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce-page #place_order:hover {
	background-color: var(--nmc-coral-dk);
	color: var(--nmc-white);
	border-color: var(--nmc-coral-dk);
}

/* ---------- WooCommerce product cards (shop list) ---------- */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	background: var(--nmc-white);
	border-radius: var(--nmc-radius);
	padding: 1rem 1rem 1.5rem;
	box-shadow: var(--nmc-shadow);
	overflow: hidden;
}
.woocommerce ul.products li.product .product-details,
.woocommerce ul.products li.product .product-info,
.woocommerce ul.products li.product .woocommerce-loop-product__title-wrap,
.woocommerce ul.products li.product .product-action-wrap,
.woocommerce ul.products li.product .price-wrap {
	background: var(--nmc-white) !important;
	color: var(--nmc-navy) !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product h3 {
	color: var(--nmc-navy) !important;
	font-family: var(--nmc-font-head) !important;
	font-weight: 700;
	background: transparent !important;
	padding: .75rem 0 .25rem;
}
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--nmc-coral) !important;
	font-family: var(--nmc-font-head);
	font-weight: 700;
	background: transparent !important;
}

.woocommerce div.product .product_title,
.woocommerce div.product h1 {
	color: var(--nmc-navy);
	font-family: var(--nmc-font-head);
}

.woocommerce-message,
.woocommerce-info { border-top-color: var(--nmc-ocean); }
.woocommerce-message::before,
.woocommerce-info::before { color: var(--nmc-ocean); }
.woocommerce-error { border-top-color: var(--nmc-coral); }
.woocommerce-error::before { color: var(--nmc-coral); }

/* ---------- Form inputs ---------- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.nmc-runner-field input,
.nmc-runner-field select,
.nmc-runner-field textarea,
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="date"],
input[type="number"],
select,
textarea {
	border: 1px solid #C7D6DE;
	border-radius: 8px;
	padding: 10px 12px;
	font-family: var(--nmc-font-body);
	font-size: 1rem;
	background-color: var(--nmc-white);
	color: var(--nmc-navy);
	max-width: 100%;
}
input:focus,
select:focus,
textarea:focus {
	outline: none;
	border-color: var(--nmc-ocean);
	box-shadow: 0 0 0 3px rgba(31,111,168,.18);
}

/* ---------- Runner blocks on checkout ---------- */
.nmc-runner-block,
.nmc-runner {
	background: var(--nmc-white);
	border-radius: var(--nmc-radius);
	box-shadow: var(--nmc-shadow);
	padding: 1.25rem 1.25rem 1rem;
	margin: 0 0 1.25rem;
}
.nmc-runner-block h3,
.nmc-runner h3 { margin-top: 0; }

/* ---------- Sponsor grid ---------- */
.nmc-sponsors-grid .nmc-sponsor,
.nmc-sponsor-card {
	background: var(--nmc-white);
	border-radius: var(--nmc-radius);
	box-shadow: var(--nmc-shadow);
}

/* ---------- Footer ---------- */
.site-footer { color: var(--nmc-navy); background-color: var(--nmc-white); }
.site-footer a { color: var(--nmc-navy) !important; }
.site-footer a:hover { color: var(--nmc-coral) !important; }
.site-footer .footer-html { font-size: .9rem; opacity: .8; }

/* ---------- Utility ---------- */
.nmc-accent-rule {
	display: block;
	width: 64px;
	height: 3px;
	background: var(--nmc-coral);
	border-radius: 2px;
	margin: .5em 0 1em;
}

/* ---------- Mobile button tightening ---------- */
@media (max-width: 600px) {
	.wp-block-button .wp-block-button__link,
	.kadence-button,
	.button,
	.woocommerce a.button,
	.woocommerce button.button {
		padding: 12px 20px;
		font-size: 1rem;
	}
}

/* ---------- Form labels (checkout, runner blocks, generic) ---------- */
.woocommerce form .form-row label,
.woocommerce-checkout label,
.woocommerce-page label,
form label,
.nmc-runner-field label,
.nmc-runner-block label,
fieldset legend {
	color: var(--nmc-navy) !important;
	font-family: var(--nmc-font-body);
	font-weight: 600;
	font-size: .95rem;
	opacity: 1;
}
.woocommerce form .form-row .required,
.required,
abbr.required {
	color: var(--nmc-coral) !important;
	text-decoration: none;
	font-weight: 700;
}

/* Runner block heading should be navy bold */
.nmc-runner-block h3,
.nmc-runner h3,
h3.nmc-runner-title {
	color: var(--nmc-navy);
	font-family: var(--nmc-font-head);
	font-weight: 700;
}

/* ---------- Homepage full-bleed hero ----------
   Kadence's .entry-content-wrap adds 32px top/bottom padding that paints a
   white strip above/below an alignfull hero image. Pull the first/last
   alignfull image up/down by -32px so it sits flush with the article edge. */
body.home .entry-content > .wp-block-image.alignfull:first-child,
body.home .entry-content > figure.alignfull:first-child,
body.home .entry-content > .wp-block-image.alignwide:first-child {
	margin-top: -32px;
	margin-bottom: 0;
}
body.home .entry-content > .wp-block-image.alignfull:last-child,
body.home .entry-content > figure.alignfull:last-child {
	margin-bottom: -32px;
}
/* The hero image itself: no border-radius so it touches the article edge cleanly */
body.home .entry-content > .wp-block-image.alignfull:first-child img,
body.home .entry-content > figure.alignfull:first-child img {
	border-radius: 0;
	display: block;
}

/* ---------- Hide duplicate site-title text beside the logo ----------
   Keep the WordPress site title in <title> (SEO) — only hide the visible
   text inside .site-branding so the logo + nav stand alone in the header. */
.site-branding .site-title,
.site-branding .site-description,
.site-header .site-title,
.site-header .site-description {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

/* Center horizontal-rule separators (Kadence/WP default is left-aligned thin line) */
.wp-block-separator,
hr.wp-block-separator,
.entry-content hr {
	margin-left: auto;
	margin-right: auto;
	border: none;
	border-top: 1px solid rgba(16, 32, 51, .15);
	width: 120px;
	max-width: 80%;
}

/* ============================================================
   Contrast polish (v0.3.1)
   Fixes pale sand/sea-mist functional text inherited from
   Kadence/Woo defaults. Preserves brand palette, only lifts
   readability of muted UI text on white/light backgrounds.
   ============================================================ */

/* ---- WooCommerce / Kadence breadcrumbs ---- */
.kadence-breadcrumbs,
.kadence-breadcrumb-container,
.woocommerce .woocommerce-breadcrumb,
.woocommerce-page .woocommerce-breadcrumb {
	color: var(--nmc-muted) !important;
}
.kadence-breadcrumbs a,
.kadence-breadcrumb-container a,
.woocommerce .woocommerce-breadcrumb a,
.woocommerce-page .woocommerce-breadcrumb a {
	color: var(--nmc-ocean) !important;
	text-decoration: none;
}
.kadence-breadcrumbs a:hover,
.kadence-breadcrumb-container a:hover,
.woocommerce .woocommerce-breadcrumb a:hover,
.woocommerce-page .woocommerce-breadcrumb a:hover {
	color: var(--nmc-coral) !important;
	text-decoration: underline;
	text-underline-offset: 2px;
}
/* Current (non-link) breadcrumb item — slightly darker than the muted separator */
.kadence-breadcrumbs .breadcrumb-last,
.kadence-breadcrumbs span:last-child,
.kadence-breadcrumb-container .breadcrumb-last {
	color: var(--nmc-navy) !important;
	font-weight: 600;
}

/* ---- WooCommerce product meta (SKU + Category) ---- */
.woocommerce div.product .product_meta,
.woocommerce div.product .product_meta span,
.woocommerce div.product .product_meta .sku_wrapper,
.woocommerce div.product .product_meta .sku,
.woocommerce div.product .product_meta .posted_in,
.woocommerce-page div.product .product_meta,
.woocommerce-page div.product .product_meta span,
.woocommerce-page div.product .product_meta .sku_wrapper,
.woocommerce-page div.product .product_meta .sku,
.woocommerce-page div.product .product_meta .posted_in {
	color: var(--nmc-muted) !important;
}
.woocommerce div.product .product_meta a,
.woocommerce div.product .product_meta .posted_in a,
.woocommerce-page div.product .product_meta a,
.woocommerce-page div.product .product_meta .posted_in a {
	color: var(--nmc-ocean) !important;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.woocommerce div.product .product_meta a:hover,
.woocommerce-page div.product .product_meta a:hover {
	color: var(--nmc-coral) !important;
}

/* ---- Select2 rendered values (checkout country, state/region, parish) ---- */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
	border: 1px solid #C7D6DE;
	border-radius: 8px;
	background-color: var(--nmc-white);
}
.select2-container--default .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--multiple .select2-selection__rendered,
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered,
.woocommerce-page .select2-container--default .select2-selection--single .select2-selection__rendered {
	color: var(--nmc-navy) !important;
	line-height: 1.6;
}
.select2-container--default .select2-selection--single .select2-selection__placeholder,
.select2-container--default .select2-selection__placeholder {
	color: var(--nmc-muted) !important;
	opacity: 1;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b {
	border-color: var(--nmc-muted) transparent transparent transparent;
}
/* Select2 dropdown results — readable list */
.select2-container--default .select2-results__option {
	color: var(--nmc-navy);
}
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
	background-color: var(--nmc-ocean);
	color: var(--nmc-white);
}
.select2-search--dropdown .select2-search__field {
	border: 1px solid #C7D6DE;
	border-radius: 6px;
	color: var(--nmc-navy);
}

/* ---- Input placeholders (sitewide + Woo) ---- */
.woocommerce form .form-row input.input-text::placeholder,
.woocommerce form .form-row textarea::placeholder,
.woocommerce-page form .form-row input.input-text::placeholder,
.woocommerce-page form .form-row textarea::placeholder,
.nmc-runner-field input::placeholder,
.nmc-runner-field textarea::placeholder,
input::placeholder,
textarea::placeholder {
	color: var(--nmc-muted);
	opacity: 1;
}

/* ---- Disabled fields stay visually secondary but legible ---- */
.woocommerce form .form-row input[disabled],
.woocommerce form .form-row select[disabled],
.woocommerce form .form-row textarea[disabled],
input[disabled],
select[disabled],
textarea[disabled] {
	color: var(--nmc-muted);
	background-color: #F5F8FA;
	opacity: 1;
}

/* ---- Generic Woo small/muted helper text ---- */
.woocommerce small,
.woocommerce-page small,
.woocommerce .woocommerce-checkout-review-order .woocommerce-Price-amount,
.woocommerce-additional-fields h3,
.woocommerce-billing-fields h3 {
	color: var(--nmc-navy);
}

/* End contrast polish v0.3.1 */

/* ---- Mobile hamburger toggle icon (Kadence drawer toggle) ---- */
.menu-toggle-open,
#mobile-toggle,
.menu-toggle-open .menu-toggle-icon,
.menu-toggle-open .kadence-svg-iconset,
.menu-toggle-open svg {
	color: var(--nmc-navy) !important;
	fill: currentColor;
}

/* ---- Woo cart "Apply coupon" button — un-themed Kadence default was sand ---- */
.woocommerce .coupon button.button,
.woocommerce .checkout_coupon button.button,
.woocommerce-cart .coupon button.button,
.woocommerce-page .coupon button.button {
	background-color: var(--nmc-ocean) !important;
	color: var(--nmc-white) !important;
	border-color: var(--nmc-ocean);
}
.woocommerce .coupon button.button:hover,
.woocommerce .checkout_coupon button.button:hover,
.woocommerce-cart .coupon button.button:hover {
	background-color: var(--nmc-navy) !important;
	color: var(--nmc-white) !impor