/*
Theme Name: Nourish Health Nutrition
Description: A custom block theme scaffolded by Studio Code.
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 7.2
Version: 0.1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nourish-health
Tags: full-site-editing, block-patterns, block-styles, wide-blocks, accessibility-ready, style-variations
*/

/* WordPress inserts margin-block-start: var(--wp--style--block-gap) between the
   template's top-level sections (header part, main, footer part) — a gap that
   exists even when no markup asks for it. Zero it so sections butt edge-to-edge
   and own their vertical rhythm via padding; this does not affect block gaps
   inside nested layouts. */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

/* === tokens === */
:root {
	--nh-base: var( --wp--preset--color--base );
	--nh-ink: var( --wp--preset--color--ink );
	--nh-teal: var( --wp--preset--color--teal );
	--nh-teal-deep: var( --wp--preset--color--teal-deep );
	--nh-mist: var( --wp--preset--color--mist );
	--nh-sage: var( --wp--preset--color--sage );
	--nh-sage-deep: var( --wp--preset--color--sage-deep );
	--nh-warm: var( --wp--preset--color--warm );
	--nh-warm-deep: var( --wp--preset--color--warm-deep );
	--nh-radius: 22px;
	--nh-radius-lg: 36px;
	--nh-shadow-soft: var( --wp--preset--shadow--soft );
	--nh-shadow-card: var( --wp--preset--shadow--card );
	--nh-hair: rgba( 12, 50, 52, 0.1 );
	--nh-max: 1240px;
}

/* === base === */
html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	background-color: var( --nh-base );
	color: var( --nh-ink );
	-webkit-font-smoothing: antialiased;
}

.wp-site-blocks {
	overflow-x: clip;
}

[ id ] {
	scroll-margin-top: 6.5rem;
}

::selection {
	background: var( --nh-teal );
	color: var( --nh-base );
}

:focus-visible {
	outline: 3px solid var( --nh-teal );
	outline-offset: 3px;
	border-radius: 4px;
}

.nh-section {
	padding-block: clamp( 3.5rem, 6vw, 6rem );
}

.nh-section--mist {
	background-color: var( --nh-mist );
}

.nh-section--sage {
	background-color: var( --nh-sage );
}

.nh-section--dark {
	background-color: var( --nh-teal-deep );
	background-image: linear-gradient( 140deg, #0a3b3d 0%, #14615f 100% );
	color: var( --nh-base );
}

.nh-section--dark :where( h1, h2, h3, h4, h5, h6 ) {
	color: var( --nh-base );
}

.nh-section--mist,
.nh-section--sage,
.nh-section--dark {
	border-radius: var( --nh-radius-lg ) var( --nh-radius-lg ) 0 0;
}

.nh-hair {
	height: 1px;
	background-color: var( --nh-hair );
}

.nh-muted {
	color: color-mix( in srgb, var( --nh-ink ) 74%, transparent );
}

/* === headings & eyebrow === */
.nh-eyebrow {
	font-family: var( --wp--preset--font-family--display );
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var( --nh-teal );
}

.nh-section--dark .nh-eyebrow {
	color: color-mix( in srgb, var( --nh-base ) 72%, transparent );
}

.nh-head {
	max-width: 44ch;
}

.nh-head :where( h2 ) {
	margin-block: 0.4rem 0.75rem;
}

.nh-lede {
	font-size: var( --wp--preset--font-size--medium );
	line-height: 1.65;
	color: color-mix( in srgb, var( --nh-ink ) 78%, transparent );
}

.nh-section--dark .nh-lede,
.nh-section--dark p {
	color: color-mix( in srgb, var( --nh-base ) 84%, transparent );
}

.nh-rule {
	width: 54px;
	height: 4px;
	border-radius: 999px;
	background: linear-gradient( 90deg, var( --nh-warm ), var( --nh-sage-deep ) );
}

/* === buttons === */
.wp-block-button__link,
.wp-element-button {
	box-shadow: 0 10px 24px -14px rgba( 184, 90, 36, 0.9 );
	transition: transform 0.25s ease, background-color 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
}

.wp-block-button__link:hover {
	transform: translateY( -2px );
	box-shadow: 0 16px 30px -16px rgba( 12, 50, 52, 0.75 );
}

.nh-btn-ghost .wp-element-button {
	background-color: transparent;
	color: var( --nh-base );
	border: 2px solid color-mix( in srgb, var( --nh-base ) 55%, transparent );
	box-shadow: none;
}

.nh-btn-ghost .wp-element-button:hover {
	background-color: var( --nh-base );
	color: var( --nh-teal-deep );
	border-color: var( --nh-base );
}

.nh-btn-teal .wp-element-button {
	background-color: var( --nh-teal );
	box-shadow: 0 10px 24px -14px rgba( 20, 97, 95, 0.9 );
}

.nh-btn-teal .wp-element-button:hover {
	background-color: var( --nh-ink );
}

.nh-btn-quiet .wp-element-button {
	background-color: transparent;
	color: var( --nh-teal );
	border: 2px solid var( --nh-teal );
	box-shadow: none;
}

.nh-btn-quiet .wp-element-button:hover {
	background-color: var( --nh-teal );
	color: var( --nh-base );
}

/* === reveal === */
.nh-reveal-ready [ data-reveal ] {
	opacity: 0;
	transform: translateY( 22px );
}

.nh-reveal-ready [ data-reveal ].nh-revealed {
	opacity: 1;
	transform: none;
	transition: opacity 0.7s ease var( --nh-reveal-delay, 0ms ), transform 0.7s cubic-bezier( 0.22, 1, 0.36, 1 ) var( --nh-reveal-delay, 0ms );
}

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

	.nh-reveal-ready [ data-reveal ] {
		opacity: 1;
		transform: none;
	}

	*,
	*::before,
	*::after {
		animation: none !important;
		transition: none !important;
	}
}

/* === header === */
.nh-topbar {
	background-color: var( --nh-teal-deep );
	background-image: linear-gradient( 108deg, #072e30 0%, var( --nh-teal-deep ) 44%, #10514f 100% );
	color: color-mix( in srgb, var( --nh-base ) 90%, transparent );
	font-size: 0.82rem;
	letter-spacing: 0.005em;
	padding-block: 0.62rem;
}

.nh-topbar p {
	position: relative;
	margin: 0;
	line-height: 1.4;
	padding-inline-start: 1.1rem;
}

.nh-topbar p::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block-start: 0.72em;
	width: 7px;
	height: 7px;
	margin-block-start: -3.5px;
	border-radius: 999px;
	background-color: var( --nh-warm );
	box-shadow: 0 0 0 3px color-mix( in srgb, var( --nh-warm ) 26%, transparent );
}

.nh-topbar a {
	color: color-mix( in srgb, var( --nh-base ) 88%, transparent );
	text-decoration: none;
	transition: color 0.2s ease;
}

.nh-topbar a:hover {
	color: var( --nh-base );
	text-decoration: underline;
	text-decoration-color: var( --nh-warm );
	text-underline-offset: 3px;
}

.nh-topbar-inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.5rem 1.5rem;
	align-items: center;
}

.nh-topbar-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nh-topbar-list li + li {
	position: relative;
	padding-inline-start: 1.3rem;
}

.nh-topbar-list li + li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block-start: 50%;
	width: 1px;
	height: 12px;
	margin-block-start: -6px;
	background-color: color-mix( in srgb, var( --nh-base ) 26%, transparent );
}

.nh-header {
	position: sticky;
	top: 0;
	z-index: 60;
	background-color: rgba( 255, 255, 255, 0.92 );
	backdrop-filter: blur( 16px ) saturate( 140% );
	-webkit-backdrop-filter: blur( 16px ) saturate( 140% );
	border-bottom: 1px solid var( --nh-hair );
	transition: box-shadow 0.35s ease, background-color 0.35s ease, border-color 0.35s ease;
}

.nh-header::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-end: -1px;
	height: 2px;
	background: linear-gradient( 90deg, transparent, var( --nh-teal ) 28%, var( --nh-warm ) 74%, transparent );
	opacity: 0;
	transition: opacity 0.35s ease;
	pointer-events: none;
}

.nh-header.nh-scrolled {
	background-color: rgba( 255, 255, 255, 0.97 );
	border-bottom-color: transparent;
	box-shadow: 0 18px 38px -32px rgba( 12, 50, 52, 0.95 );
}

.nh-header.nh-scrolled::after {
	opacity: 0.9;
}

.nh-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding-block: 0.85rem;
	transition: padding 0.35s ease;
}

.nh-header.nh-scrolled .nh-header-inner {
	padding-block: 0.55rem;
}

.nh-brand {
	display: flex;
	align-items: center;
	gap: 0.7rem;
}

.nh-brand::before {
	content: "";
	flex: none;
	width: 42px;
	height: 42px;
	border-radius: 14px;
	background-color: var( --nh-teal );
	background-image: linear-gradient( 145deg, #1f807a 0%, var( --nh-teal ) 55%, #0d4b4a 100% ), url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21c0-6 3-10 8-11 0 7-3.5 11-8 11Z'/%3E%3Cpath d='M12 21c0-6-3-10-8-11 0 7 3.5 11 8 11Z'/%3E%3Cpath d='M12 21V8'/%3E%3C/svg%3E" );
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover, 26px;
	box-shadow: 0 10px 20px -12px rgba( 20, 97, 95, 0.9 );
	transition: transform 0.35s cubic-bezier( 0.22, 1, 0.36, 1 ), box-shadow 0.35s ease;
}

.nh-brand:hover::before {
	transform: translateY( -2px ) rotate( -5deg );
	box-shadow: 0 16px 26px -12px rgba( 20, 97, 95, 0.95 );
}

.nh-brand .wp-block-site-title {
	margin: 0;
	line-height: 1.1;
}

.nh-brand .wp-block-site-title a {
	font-family: var( --wp--preset--font-family--display );
	font-size: 1.3rem;
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var( --nh-ink );
	text-decoration: none;
}

.nh-brand .wp-block-site-title a span {
	display: block;
	font-family: var( --wp--preset--font-family--body );
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var( --nh-teal );
}

.nh-nav .wp-block-navigation__container {
	gap: 0.25rem 0.35rem;
	align-items: center;
}

.nh-nav .wp-block-navigation-item {
	position: relative;
}

.nh-nav .wp-block-navigation-item__content {
	position: relative;
	display: inline-flex;
	align-items: center;
	isolation: isolate;
	font-family: var( --wp--preset--font-family--display );
	font-size: 0.95rem;
	font-weight: 600;
	letter-spacing: -0.005em;
	color: var( --nh-ink );
	text-decoration: none;
	padding: 0.5rem 0.9rem 0.6rem;
	border-radius: 999px;
	transition: color 0.25s ease, transform 0.3s cubic-bezier( 0.22, 1, 0.36, 1 );
}

/* soft tinted pill that fills in behind the label */
.nh-nav .wp-block-navigation-item__content::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: inherit;
	background-color: color-mix( in srgb, var( --nh-teal ) 11%, transparent );
	box-shadow: inset 0 0 0 1px color-mix( in srgb, var( --nh-teal ) 16%, transparent );
	opacity: 0;
	transform: scale( 0.82 );
	transition: opacity 0.24s ease, transform 0.34s cubic-bezier( 0.22, 1, 0.36, 1 );
}

/* warm indicator sitting under the label */
.nh-nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	inset-inline: 0.9rem;
	inset-block-end: 0.32rem;
	height: 2px;
	border-radius: 999px;
	background-image: linear-gradient( 90deg, var( --nh-teal ), var( --nh-warm ) );
	transform: scaleX( 0 );
	transform-origin: center;
	transition: transform 0.32s cubic-bezier( 0.22, 1, 0.36, 1 );
}

.nh-nav .wp-block-navigation-item__content:hover,
.nh-nav .wp-block-navigation-item__content:focus-visible,
.nh-nav .current-menu-item .wp-block-navigation-item__content,
.nh-nav .nh-nav-current .wp-block-navigation-item__content {
	color: var( --nh-teal );
	transform: translateY( -1px );
}

.nh-nav .wp-block-navigation-item__content:hover::before,
.nh-nav .wp-block-navigation-item__content:focus-visible::before,
.nh-nav .current-menu-item .wp-block-navigation-item__content::before,
.nh-nav .nh-nav-current .wp-block-navigation-item__content::before {
	opacity: 1;
	transform: scale( 1 );
}

.nh-nav .wp-block-navigation-item__content:hover::after,
.nh-nav .wp-block-navigation-item__content:focus-visible::after,
.nh-nav .current-menu-item .wp-block-navigation-item__content::after,
.nh-nav .nh-nav-current .wp-block-navigation-item__content::after {
	transform: scaleX( 1 );
}

.nh-nav .wp-block-navigation-item__content:focus-visible {
	outline: 2px solid var( --nh-teal );
	outline-offset: 2px;
}

/* neighbours dim slightly so the hovered link reads as the focus */
.nh-nav .wp-block-navigation__container:hover .wp-block-navigation-item__content:not( :hover ) {
	color: color-mix( in srgb, var( --nh-ink ) 62%, transparent );
}

.nh-header-cta {
	align-items: center;
	gap: 0.75rem;
	margin: 0;
}

.nh-header-cta .wp-block-button__link {
	padding: 0.68rem 1.4rem;
	font-size: 0.95rem;
	box-shadow: 0 12px 24px -14px rgba( 184, 90, 36, 0.9 );
	transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
}

.nh-header-cta .wp-block-button__link:hover {
	transform: translateY( -2px );
	box-shadow: 0 18px 30px -14px rgba( 12, 50, 52, 0.5 );
}

.nh-header-phone a {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	font-family: var( --wp--preset--font-family--display );
	font-weight: 700;
	font-size: 0.95rem;
	color: var( --nh-teal );
	text-decoration: none;
	transition: color 0.2s ease;
}

.nh-header-phone a::before {
	content: "";
	flex: none;
	width: 18px;
	height: 18px;
	background-image: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314615f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.2a2 2 0 0 1 2.1-.5c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2Z'/%3E%3C/svg%3E" );
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

.nh-header-phone a:hover {
	color: var( --nh-warm-deep );
}

.nh-menu-toggle {
	display: none;
}

/* === hero === */
.nh-hero {
	position: relative;
	background-color: var( --nh-base );
	background-image: linear-gradient( 155deg, #ffffff 0%, #eef5f6 46%, #e4ede2 100% );
	padding-block: clamp( 3rem, 6vw, 5.5rem ) clamp( 3.5rem, 7vw, 6.5rem );
	overflow: hidden;
}

.nh-hero::after {
	content: "";
	position: absolute;
	inset: auto -6% -12% auto;
	width: 46%;
	height: 70%;
	background: radial-gradient( closest-side, rgba( 224, 123, 57, 0.14 ), transparent 72% );
	pointer-events: none;
}

.nh-hero-grid {
	display: grid;
	grid-template-columns: minmax( 0, 1.08fr ) minmax( 0, 1fr );
	gap: clamp( 2rem, 5vw, 4.5rem );
	align-items: center;
	position: relative;
	z-index: 1;
}

.nh-hero-copy {
	display: flex;
	flex-direction: column;
	gap: 1.35rem;
	max-width: 36rem;
}

.nh-hero-copy > * {
	margin-block: 0;
}

.nh-hero-copy h1 {
	letter-spacing: -0.035em;
}

.nh-hero-copy h1 em {
	font-style: normal;
	color: var( --nh-teal );
}

.nh-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	align-items: center;
	margin-block-start: 0.4rem;
}

.nh-hero-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 0.75rem;
	margin-block-start: 0.5rem;
	padding: 0;
	list-style: none;
}

.nh-hero-chips li {
	font-family: var( --wp--preset--font-family--display );
	font-size: 0.82rem;
	font-weight: 600;
	color: var( --nh-teal-deep );
	background-color: rgba( 255, 255, 255, 0.85 );
	border: 1px solid var( --nh-hair );
	border-radius: 999px;
	padding: 0.45rem 0.9rem;
}

/* The visual column keeps a runway of clear space above the card for the two
   trust stickers, and lets the card size to its own content instead of
   stretching to the full column height. */
.nh-hero-visual {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	min-height: 34rem;
	padding-block-start: 7.5rem;
}

.nh-hero-visual::before {
	content: "";
	position: absolute;
	top: -2rem;
	right: -3rem;
	width: min( 28rem, 100% );
	aspect-ratio: 1;
	border-radius: 50%;
	background: conic-gradient( from 210deg, var( --nh-sage-deep ) 0 18%, var( --nh-mist ) 18% 34%, var( --nh-warm ) 34% 49%, var( --nh-sage ) 49% 72%, var( --nh-teal ) 72% 87%, #cfe6e4 87% 100% );
	-webkit-mask: radial-gradient( circle, transparent 0 45%, #000 45.4% 100% );
	mask: radial-gradient( circle, transparent 0 45%, #000 45.4% 100% );
	opacity: 0.9;
	transform: rotate( -8deg );
}

.nh-hero-card {
	position: relative;
	z-index: 2;
	margin-block-start: 0;
	background-color: var( --nh-base );
	border: 1px solid var( --nh-hair );
	border-radius: var( --nh-radius-lg );
	box-shadow: var( --nh-shadow-card );
	padding: clamp( 1.5rem, 3vw, 2.25rem );
	max-width: 25rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.nh-hero-card > * {
	margin-block: 0;
}

.nh-hero-card h3 {
	font-size: var( --wp--preset--font-size--medium );
	line-height: 1.25;
}

.nh-hero-card-list {
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.98rem;
}

.nh-hero-card-list li {
	display: flex;
	gap: 0.65rem;
	align-items: flex-start;
	line-height: 1.5;
}

.nh-hero-card-list li::before {
	content: "";
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	margin-block-start: 0.18rem;
	border-radius: 50%;
	background-color: var( --nh-sage );
	background-image: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314615f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E" );
	background-repeat: no-repeat;
	background-position: center;
	background-size: 0.7rem;
}

.nh-hero-stats {
	display: grid;
	grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
	gap: 0.75rem;
	padding-block-start: 1.1rem;
	border-top: 1px solid var( --nh-hair );
}

.nh-hero-stats strong {
	display: block;
	font-family: var( --wp--preset--font-family--display );
	font-size: 1.4rem;
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var( --nh-teal );
	line-height: 1.1;
}

.nh-hero-stats span {
	font-size: 0.78rem;
	line-height: 1.35;
	color: color-mix( in srgb, var( --nh-ink ) 72%, transparent );
}

/* Trust stickers. They float in the runway above the card, so they never land
   on the card's eyebrow, heading or bullet list. */
.nh-badge {
	position: absolute;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0;
	background-color: var( --nh-teal-deep );
	color: var( --nh-base );
	font-family: var( --wp--preset--font-family--display );
	font-size: 0.82rem;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: 0.005em;
	white-space: nowrap;
	border-radius: 999px;
	border: 2px solid var( --nh-base );
	padding: 0.55rem 1.1rem 0.55rem 0.92rem;
	box-shadow: var( --nh-shadow-soft ), 0 2px 10px -4px color-mix( in srgb, var( --nh-teal-deep ) 30%, transparent );
}

/* Status dot: turns each pill into a readable "checked for you" indicator. */
.nh-badge::before {
	content: "";
	flex: none;
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background-color: currentColor;
	box-shadow: 0 0 0 0.26rem color-mix( in srgb, currentColor 24%, transparent );
}

.nh-badge--warm {
	background-color: var( --nh-warm );
}

.nh-badge--one {
	top: 0.15rem;
	left: 0;
	transform: rotate( -1.6deg );
}

.nh-badge--two {
	top: 3.35rem;
	right: 0;
	background-color: var( --nh-warm );
	color: var( --nh-teal-deep );
	transform: rotate( 1.4deg );
}

.nh-badge--two::before {
	background-color: var( --nh-warm-deep );
	box-shadow: 0 0 0 0.26rem color-mix( in srgb, var( --nh-warm-deep ) 22%, transparent );
	animation: nh-badge-pulse 2.6s ease-out infinite;
}

@keyframes nh-badge-pulse {
	0% {
		box-shadow: 0 0 0 0.1rem color-mix( in srgb, var( --nh-warm-deep ) 45%, transparent );
	}

	70% {
		box-shadow: 0 0 0 0.62rem color-mix( in srgb, var( --nh-warm-deep ) 0%, transparent );
	}

	100% {
		box-shadow: 0 0 0 0.1rem color-mix( in srgb, var( --nh-warm-deep ) 0%, transparent );
	}
}

/* === trust strip === */
.nh-strip {
	background-color: var( --nh-base );
	border-block: 1px solid var( --nh-hair );
	padding-block: 1.6rem;
}

.nh-strip-inner {
	display: grid;
	grid-template-columns: repeat( 4, minmax( 0, 1fr ) );
	gap: 1.25rem 2rem;
}

.nh-strip-item {
	display: flex;
	gap: 0.85rem;
	align-items: flex-start;
}

.nh-strip-item::before {
	content: "";
	flex: none;
	width: 2.1rem;
	height: 2.1rem;
	border-radius: 12px;
	background-color: var( --nh-mist );
	background-repeat: no-repeat;
	background-position: center;
	background-size: 1.25rem;
}

.nh-strip-item--board::before {
	background-image: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314615f' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.6 5.6 6.1.8-4.5 4.2 1.2 6-5.4-3-5.4 3 1.2-6L3.3 9.4l6.1-.8z'/%3E%3C/svg%3E" );
}

.nh-strip-item--shield::before {
	background-image: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314615f' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v6c0 4.2-2.8 7.7-7 9-4.2-1.3-7-4.8-7-9V6z'/%3E%3Cpath d='M9 12l2.2 2.2L15.5 10'/%3E%3C/svg%3E" );
}

.nh-strip-item--pin::before {
	background-image: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314615f' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s6.5-6.2 6.5-10.5A6.5 6.5 0 0 0 5.5 10.5C5.5 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='10.4' r='2.4'/%3E%3C/svg%3E" );
}

.nh-strip-item--clock::before {
	background-image: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314615f' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7.5V12l3 2'/%3E%3C/svg%3E" );
}

.nh-strip-item p {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.45;
}

.nh-strip-item strong {
	display: block;
	font-family: var( --wp--preset--font-family--display );
	font-weight: 700;
	font-size: 0.98rem;
	color: var( --nh-ink );
}

/* === services === */
.nh-head-row {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	justify-content: space-between;
	align-items: flex-end;
	margin-block-end: 2.5rem;
}

.nh-head-row > * {
	margin-block: 0;
}

.nh-card-grid {
	display: grid;
	grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
	gap: 1.25rem;
}

.nh-card {
	position: relative;
	background-color: var( --nh-base );
	border: 1px solid var( --nh-hair );
	border-radius: var( --nh-radius );
	padding: 1.75rem 1.6rem 1.6rem;
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	overflow: hidden;
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.nh-card::after {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	background: linear-gradient( 90deg, var( --nh-teal ), var( --nh-sage-deep ) );
	opacity: 0.85;
}

.nh-card:hover {
	transform: translateY( -5px );
	border-color: color-mix( in srgb, var( --nh-teal ) 35%, transparent );
	box-shadow: var( --nh-shadow-soft );
}

.nh-card > * {
	margin-block: 0;
}

.nh-card::before {
	content: "";
	width: 3rem;
	height: 3rem;
	border-radius: 16px;
	background-color: var( --nh-sage );
	background-repeat: no-repeat;
	background-position: center;
	background-size: 1.6rem;
	margin-block-end: 0.35rem;
}

.nh-card h3 {
	font-size: 1.2rem;
	line-height: 1.25;
}

.nh-card p {
	font-size: 0.97rem;
	line-height: 1.6;
	color: color-mix( in srgb, var( --nh-ink ) 76%, transparent );
}

.nh-card-meta {
	margin-block-start: auto !important;
	padding-block-start: 0.9rem;
	border-top: 1px dashed var( --nh-hair );
	font-family: var( --wp--preset--font-family--display );
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var( --nh-teal );
}

.nh-icon--growth::before {
	background-image: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314615f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19h16'/%3E%3Cpath d='M7.5 19v-5'/%3E%3Cpath d='M12 19V9'/%3E%3Cpath d='M16.5 19v-8'/%3E%3Cpath d='M9 6.5l3-3 3 3'/%3E%3C/svg%3E" );
}

.nh-icon--picky::before {
	background-image: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314615f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M8.5 14.2c.9 1.2 2 1.9 3.5 1.9s2.6-.7 3.5-1.9'/%3E%3Cpath d='M9.4 9.6h.01'/%3E%3Cpath d='M14.6 9.6h.01'/%3E%3C/svg%3E" );
}

.nh-icon--allergy::before {
	background-image: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314615f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v6c0 4.2-2.8 7.7-7 9-4.2-1.3-7-4.8-7-9V6z'/%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M12 16h.01'/%3E%3C/svg%3E" );
}

.nh-icon--gut::before {
	background-image: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314615f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19.5c0-7.5 4.2-12.5 12.5-13.5C17.5 14 13.2 19.5 5 19.5z'/%3E%3Cpath d='M5 19.5c3.4-1.7 6.3-4.3 8.4-7.8'/%3E%3C/svg%3E" );
}

.nh-icon--sport::before {
	background-image: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314615f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13.5 3L6 13.2h4.4L9.6 21l7.9-10.4h-4.5z'/%3E%3C/svg%3E" );
}

.nh-icon--tube::before {
	background-image: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314615f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20.5S4.5 15.9 4.5 10.9A4.4 4.4 0 0 1 12 8a4.4 4.4 0 0 1 7.5 2.9c0 5-7.5 9.6-7.5 9.6z'/%3E%3C/svg%3E" );
}

/* === steps === */
.nh-steps {
	display: grid;
	grid-template-columns: repeat( 4, minmax( 0, 1fr ) );
	gap: 1.5rem;
	counter-reset: nh-step;
	position: relative;
}

.nh-step {
	position: relative;
	padding-block-start: 1.4rem;
	border-top: 2px solid color-mix( in srgb, var( --nh-base ) 28%, transparent );
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
}

.nh-step > * {
	margin-block: 0;
}

.nh-step::before {
	font-family: var( --wp--preset--font-family--display );
	font-size: 0.85rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	color: var( --nh-warm );
}

.nh-step--one::before {
	content: "STEP 01";
}

.nh-step--two::before {
	content: "STEP 02";
}

.nh-step--three::before {
	content: "STEP 03";
}

.nh-step--four::before {
	content: "STEP 04";
}

.nh-step h3 {
	font-size: 1.125rem;
	line-height: 1.3;
	color: var( --nh-base );
}

.nh-step p {
	font-size: 0.95rem;
	line-height: 1.6;
	color: color-mix( in srgb, var( --nh-base ) 80%, transparent );
}

/* === providers === */
.nh-provider {
	background-color: var( --nh-base );
	border: 1px solid var( --nh-hair );
	border-radius: var( --nh-radius );
	padding: 1.75rem 1.6rem;
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	box-shadow: var( --nh-shadow-soft );
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.nh-provider:hover {
	transform: translateY( -5px );
	box-shadow: var( --nh-shadow-card );
}

.nh-provider > * {
	margin-block: 0;
}

.nh-avatar {
	width: 4.5rem;
	height: 4.5rem;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background-image: linear-gradient( 140deg, var( --nh-mist ), var( --nh-sage ) );
	border: 2px solid var( --nh-base );
	box-shadow: 0 0 0 3px color-mix( in srgb, var( --nh-teal ) 22%, transparent );
}

.nh-avatar p {
	margin: 0;
	font-family: var( --wp--preset--font-family--display );
	font-size: 1.5rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var( --nh-teal-deep );
}

.nh-provider h3 {
	font-size: 1.28rem;
	line-height: 1.2;
}

.nh-cred {
	font-family: var( --wp--preset--font-family--display );
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var( --nh-warm-deep );
}

.nh-provider-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0;
	padding: 0;
	list-style: none;
	margin-block-start: auto !important;
	padding-block-start: 0.6rem;
}

.nh-provider-tags li {
	font-size: 0.78rem;
	font-weight: 600;
	font-family: var( --wp--preset--font-family--display );
	color: var( --nh-teal-deep );
	background-color: var( --nh-mist );
	border-radius: 999px;
	padding: 0.32rem 0.75rem;
}

.nh-provider-note {
	margin-block-start: 2rem;
	border-left: 4px solid var( --nh-sage-deep );
	background-color: color-mix( in srgb, var( --nh-base ) 70%, transparent );
	border-radius: 0 var( --nh-radius ) var( --nh-radius ) 0;
	padding: 1.1rem 1.4rem;
}

.nh-provider-note p {
	margin: 0;
	font-size: 0.96rem;
}

/* === locations === */
.nh-location {
	background-color: var( --nh-base );
	border: 1px solid var( --nh-hair );
	border-radius: var( --nh-radius );
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.nh-location-map {
	height: 8.5rem;
	background-color: var( --nh-mist );
	background-image: radial-gradient( circle at 22% 30%, rgba( 110, 143, 107, 0.4 ), transparent 42% ), radial-gradient( circle at 74% 70%, rgba( 20, 97, 95, 0.28 ), transparent 46% ), repeating-linear-gradient( 0deg, transparent 0 22px, rgba( 12, 50, 52, 0.09 ) 22px 23px ), repeating-linear-gradient( 90deg, transparent 0 26px, rgba( 12, 50, 52, 0.09 ) 26px 27px );
	position: relative;
}

.nh-location-map p {
	position: absolute;
	left: 0.9rem;
	bottom: 0.8rem;
	margin: 0;
	font-family: var( --wp--preset--font-family--display );
	font-size: 0.76rem;
	font-weight: 600;
	color: var( --nh-teal-deep );
	background-color: rgba( 255, 255, 255, 0.92 );
	border-radius: 999px;
	padding: 0.3rem 0.75rem;
}

.nh-location-map::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1.1rem;
	height: 1.1rem;
	transform: translate( -50%, -50% );
	border-radius: 50% 50% 50% 0;
	rotate: -45deg;
	background-color: var( --nh-warm );
	box-shadow: 0 0 0 6px rgba( 224, 123, 57, 0.22 );
}

.nh-location-body {
	padding: 1.5rem 1.5rem 1.6rem;
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	flex: 1;
}

.nh-location-body > * {
	margin-block: 0;
}

.nh-location-body h3 {
	font-size: 1.22rem;
	line-height: 1.25;
}

.nh-location-address {
	font-size: 0.95rem;
	line-height: 1.55;
	color: color-mix( in srgb, var( --nh-ink ) 78%, transparent );
}

.nh-hours {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	margin: 0;
	padding: 0.9rem 0 0;
	border-top: 1px dashed var( --nh-hair );
	list-style: none;
	font-size: 0.9rem;
}

.nh-hours li {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}

.nh-hours span:last-child {
	font-weight: 700;
	font-family: var( --wp--preset--font-family--display );
	color: var( --nh-teal );
}

.nh-location-footer {
	margin-block-start: auto !important;
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 1.1rem;
	align-items: center;
	padding-block-start: 0.5rem;
}

.nh-location-footer a {
	font-family: var( --wp--preset--font-family--display );
	font-size: 0.92rem;
	font-weight: 700;
	color: var( --nh-teal );
	text-decoration: none;
	border-bottom: 2px solid color-mix( in srgb, var( --nh-warm ) 60%, transparent );
	padding-block-end: 1px;
}

.nh-location-footer a:hover {
	color: var( --nh-warm-deep );
	border-bottom-color: var( --nh-warm-deep );
}

/* === testimonials === */
.nh-quote-grid {
	display: grid;
	grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
	gap: 1.25rem;
}

.nh-quote {
	position: relative;
	background-color: var( --nh-base );
	border: 1px solid var( --nh-hair );
	border-radius: var( --nh-radius );
	padding: 1.9rem 1.6rem 1.6rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.nh-quote::before {
	content: "\201C";
	position: absolute;
	top: 0.4rem;
	right: 1.1rem;
	font-family: var( --wp--preset--font-family--display );
	font-size: 4.5rem;
	line-height: 1;
	font-weight: 800;
	color: color-mix( in srgb, var( --nh-sage-deep ) 38%, transparent );
}

.nh-quote > * {
	margin-block: 0;
}

.nh-stars {
	font-size: 0.95rem;
	letter-spacing: 0.18em;
	color: var( --nh-warm );
}

.nh-quote-text {
	font-size: 1.03rem;
	line-height: 1.7;
	color: var( --nh-ink );
	font-style: italic;
}

.nh-quote-author {
	margin-block-start: auto !important;
	padding-block-start: 1rem;
	border-top: 1px solid var( --nh-hair );
	font-size: 0.9rem;
	line-height: 1.45;
}

.nh-quote-author strong {
	display: block;
	font-family: var( --wp--preset--font-family--display );
	font-weight: 700;
	color: var( --nh-ink );
}

.nh-quote-author span {
	color: color-mix( in srgb, var( --nh-ink ) 68%, transparent );
}

.nh-rating-summary {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.25rem;
	background-color: var( --nh-base );
	border: 1px solid var( --nh-hair );
	border-radius: 999px;
	padding: 0.75rem 1.5rem;
	margin-block-start: 2.25rem;
	font-size: 0.94rem;
}

.nh-rating-summary p {
	margin: 0;
}

.nh-rating-summary strong {
	font-family: var( --wp--preset--font-family--display );
	color: var( --nh-teal );
}

/* === insurance === */
.nh-insurance-grid {
	display: grid;
	grid-template-columns: minmax( 0, 1.15fr ) minmax( 0, 1fr );
	gap: clamp( 1.5rem, 4vw, 3rem );
	align-items: start;
}

.nh-plans {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nh-plans li {
	font-family: var( --wp--preset--font-family--display );
	font-size: 0.9rem;
	font-weight: 700;
	color: var( --nh-teal-deep );
	background-color: var( --nh-base );
	border: 1px solid color-mix( in srgb, var( --nh-teal ) 24%, transparent );
	border-radius: 12px;
	padding: 0.7rem 1.05rem;
}

.nh-plans li::before {
	content: "";
	display: inline-block;
	width: 0.85rem;
	height: 0.85rem;
	margin-inline-end: 0.5rem;
	vertical-align: -0.06em;
	border-radius: 50%;
	background-color: var( --nh-sage );
	background-image: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314615f' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E" );
	background-repeat: no-repeat;
	background-position: center;
	background-size: 0.5rem;
}

.nh-pay {
	background-color: var( --nh-base );
	border: 1px solid var( --nh-hair );
	border-radius: var( --nh-radius );
	padding: 1.75rem 1.6rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	box-shadow: var( --nh-shadow-soft );
}

.nh-pay > * {
	margin-block: 0;
}

.nh-pay h3 {
	font-size: 1.2rem;
}

.nh-pay-rows {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.95rem;
}

.nh-pay-rows li {
	display: flex;
	justify-content: space-between;
	gap: 1.25rem;
	padding-block: 0.5rem;
	border-bottom: 1px dashed var( --nh-hair );
}

.nh-pay-rows li:last-child {
	border-bottom: 0;
}

.nh-pay-rows span:last-child {
	font-family: var( --wp--preset--font-family--display );
	font-weight: 700;
	color: var( --nh-teal );
	white-space: nowrap;
}

.nh-note {
	font-size: 0.88rem;
	line-height: 1.55;
	color: color-mix( in srgb, var( --nh-ink ) 70%, transparent );
}

/* === faq === */
.nh-faq {
	max-width: 54rem;
}

.nh-faq details {
	border-bottom: 1px solid var( --nh-hair );
}

.nh-faq details:first-of-type {
	border-top: 1px solid var( --nh-hair );
}

.nh-faq summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	justify-content: space-between;
	padding-block: 1.15rem;
	font-family: var( --wp--preset--font-family--display );
	font-size: 1.08rem;
	font-weight: 700;
	line-height: 1.4;
	color: var( --nh-ink );
}

.nh-faq summary::-webkit-details-marker {
	display: none;
}

.nh-faq summary::after {
	content: "+";
	flex: none;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background-color: var( --nh-sage );
	color: var( --nh-teal-deep );
	font-size: 1.15rem;
	line-height: 1;
	transition: background-color 0.25s ease, color 0.25s ease;
}

.nh-faq details[open] summary {
	color: var( --nh-teal );
}

.nh-faq details[open] summary::after {
	content: "\2013";
	background-color: var( --nh-teal );
	color: var( --nh-base );
}

.nh-faq details > p {
	margin: 0 0 1.35rem;
	max-width: 46rem;
	font-size: 1rem;
	line-height: 1.7;
	color: color-mix( in srgb, var( --nh-ink ) 78%, transparent );
}

/* === booking === */
.nh-book-grid {
	display: grid;
	grid-template-columns: minmax( 0, 1fr ) minmax( 0, 1.05fr );
	gap: clamp( 2rem, 5vw, 4rem );
	align-items: start;
}

.nh-book-copy {
	display: flex;
	flex-direction: column;
	gap: 1.15rem;
}

.nh-book-copy > * {
	margin-block: 0;
}

.nh-book-list {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 1rem;
}

.nh-book-list li {
	display: flex;
	gap: 0.7rem;
	align-items: flex-start;
	color: color-mix( in srgb, var( --nh-base ) 88%, transparent );
}

.nh-book-list li::before {
	content: "";
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	margin-block-start: 0.22rem;
	border-radius: 50%;
	background-color: color-mix( in srgb, var( --nh-warm ) 90%, transparent );
	background-image: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a3b3d' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E" );
	background-repeat: no-repeat;
	background-position: center;
	background-size: 0.7rem;
}

.nh-book-copy a {
	color: var( --nh-base );
}

.nh-book-card {
	background-color: var( --nh-base );
	border-radius: var( --nh-radius-lg );
	padding: clamp( 1.5rem, 3vw, 2.25rem );
	box-shadow: var( --nh-shadow-card );
	color: var( --nh-ink );
}

.nh-book-card > * {
	margin-block: 0;
}

.nh-book-card :where( h1, h2, h3, h4, h5, h6 ) {
	color: var( --nh-ink );
}

.nh-book-card h3 {
	font-size: 1.35rem;
	margin-block-end: 0.4rem;
}

.nh-book-card > p {
	margin-block-end: 1.25rem;
	font-size: 0.95rem;
	color: color-mix( in srgb, var( --nh-ink ) 74%, transparent );
}

.nh-book-card .wp-block-jetpack-contact-form {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.nh-book-card label,
.nh-book-card .jetpack-field-label,
.nh-book-card .grunion-label {
	font-family: var( --wp--preset--font-family--display );
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var( --nh-teal-deep );
}

.nh-book-card input:not( [type="submit"] ):not( [type="button"] ):not( [type="checkbox"] ):not( [type="radio"] ),
.nh-book-card textarea,
.nh-book-card select {
	width: 100%;
	font-family: var( --wp--preset--font-family--body );
	font-size: 1rem;
	color: var( --nh-ink );
	background-color: color-mix( in srgb, var( --nh-mist ) 55%, var( --nh-base ) );
	border: 1.5px solid color-mix( in srgb, var( --nh-teal ) 22%, transparent );
	border-radius: 14px;
	padding: 0.85rem 1rem;
	margin-block-start: 0.4rem;
}

.nh-book-card input:focus,
.nh-book-card textarea:focus,
.nh-book-card select:focus {
	outline: 3px solid color-mix( in srgb, var( --nh-teal ) 45%, transparent );
	outline-offset: 1px;
	background-color: var( --nh-base );
}

.nh-book-card .wp-block-jetpack-contact-form .wp-block-button,
.nh-book-card .wp-block-button {
	margin-block-start: 0.35rem;
}

.nh-book-card .wp-block-button__link {
	width: 100%;
	text-align: center;
}

/* === footer === */
.nh-footer {
	position: relative;
	overflow: hidden;
	background-color: var( --nh-teal-deep );
	background-image:
		radial-gradient( 110% 80% at 8% 0%, color-mix( in srgb, var( --nh-teal ) 60%, transparent ) 0%, transparent 60% ),
		radial-gradient( 90% 70% at 100% 100%, color-mix( in srgb, var( --nh-ink ) 70%, transparent ) 0%, transparent 55% );
	color: color-mix( in srgb, var( --nh-base ) 80%, transparent );
	padding-block: clamp( 3rem, 6vw, 4.75rem ) 1.75rem;
}

/* Warm-to-sage accent rule pinned to the very top of the footer. */
.nh-footer::before {
	content: "";
	position: absolute;
	inset-block-start: 0;
	inset-inline: 0;
	height: 3px;
	background: linear-gradient( 90deg, var( --nh-warm ) 0%, var( --nh-sage-deep ) 52%, var( --nh-teal ) 100% );
}

.nh-footer-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.75rem 3rem;
	padding-block-end: clamp( 1.85rem, 3vw, 2.6rem );
	border-bottom: 1px solid color-mix( in srgb, var( --nh-base ) 14%, transparent );
}

.nh-footer-lockup {
	flex: 1 1 26rem;
	max-width: 36rem;
}

.nh-footer-book {
	flex: 1 1 18rem;
	align-self: stretch;
	justify-content: center;
	gap: 0;
	padding: 1.4rem 1.6rem;
	border-radius: var( --nh-radius );
	background: color-mix( in srgb, var( --nh-base ) 7%, transparent );
	border: 1px solid color-mix( in srgb, var( --nh-base ) 15%, transparent );
	backdrop-filter: blur( 6px );
}

.nh-footer-eyebrow {
	margin: 0 0 0.55rem;
	font-family: var( --wp--preset--font-family--display );
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var( --nh-warm );
}

.nh-footer-phone {
	margin: 0;
	font-family: var( --wp--preset--font-family--display );
	font-size: clamp( 1.3rem, 2.2vw, 1.6rem );
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.1;
}

.nh-footer-phone a {
	color: var( --nh-base );
}

.nh-footer-hours {
	margin: 0.3rem 0 1.1rem;
	font-size: 0.86rem;
	color: color-mix( in srgb, var( --nh-base ) 64%, transparent );
}

.nh-footer-book .wp-block-buttons {
	margin: 0;
}

.nh-footer-grid {
	display: grid;
	grid-template-columns: minmax( 0, 1.3fr ) minmax( 0, 1fr ) minmax( 0, 1.3fr );
	gap: 2rem 3rem;
	padding-block: clamp( 2rem, 3.5vw, 2.9rem );
}

.nh-footer-col {
	display: flex;
	flex-direction: column;
	gap: 0.8rem;
}

.nh-footer-col > * {
	margin-block: 0;
}

.nh-footer h3,
.nh-footer h4 {
	position: relative;
	margin: 0;
	padding-block-end: 0.65rem;
	color: var( --nh-base );
	font-family: var( --wp--preset--font-family--display );
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.17em;
	text-transform: uppercase;
}

.nh-footer h3::after,
.nh-footer h4::after {
	content: "";
	position: absolute;
	inset-block-end: 0;
	inset-inline-start: 0;
	width: 2.35rem;
	height: 2px;
	border-radius: 999px;
	background: var( --nh-warm );
}

.nh-footer-links {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.92rem;
}

.nh-footer a {
	color: color-mix( in srgb, var( --nh-base ) 86%, transparent );
	text-decoration: none;
	transition: color 0.2s ease;
}

.nh-footer a:hover,
.nh-footer a:focus-visible {
	color: var( --nh-base );
	text-decoration: underline;
	text-decoration-color: var( --nh-warm );
	text-underline-offset: 4px;
}

.nh-footer-brand {
	position: relative;
	margin: 0 0 0.8rem;
	padding-inline-start: 2.5rem;
	font-family: var( --wp--preset--font-family--display );
	font-size: clamp( 1.35rem, 2.4vw, 1.7rem );
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.2;
	color: var( --nh-base );
}

/* Warm "seed" mark standing in for a logo lockup. */
.nh-footer-brand::before {
	content: "";
	position: absolute;
	inset-block-start: 50%;
	inset-inline-start: 0;
	width: 1.7rem;
	height: 1.7rem;
	transform: translateY( -50% );
	border-radius: 999px;
	background: linear-gradient( 145deg, var( --nh-warm ) 0%, var( --nh-warm-deep ) 100% );
	box-shadow: 0 0 0 5px color-mix( in srgb, var( --nh-warm ) 16%, transparent );
}

.nh-footer-brand::after {
	content: "";
	position: absolute;
	inset-block-start: 50%;
	inset-inline-start: 0.95rem;
	width: 0.5rem;
	height: 0.5rem;
	transform: translate( -50%, -50% );
	border-radius: 999px 999px 999px 0;
	background: color-mix( in srgb, var( --nh-base ) 94%, transparent );
	rotate: 45deg;
}

.nh-footer-tag {
	margin: 0;
	max-width: 33rem;
	font-size: 0.95rem;
	line-height: 1.65;
}

.nh-footer-locs li {
	position: relative;
	padding-inline-start: 1.2rem;
	line-height: 1.5;
}

.nh-footer-locs li::before {
	content: "";
	position: absolute;
	inset-block-start: 0.5em;
	inset-inline-start: 0;
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 999px;
	background: var( --nh-sage-deep );
	box-shadow: 0 0 0 3px color-mix( in srgb, var( --nh-sage-deep ) 26%, transparent );
}

.nh-footer-locs strong {
	color: var( --nh-base );
	font-weight: 700;
}

.nh-footer-nav a {
	display: inline-block;
}

.nh-footer-nav a::after {
	content: "";
	display: inline-block;
	width: 0.38rem;
	height: 0.38rem;
	margin-inline-start: 0.5rem;
	border-inline-end: 1.6px solid currentColor;
	border-block-start: 1.6px solid currentColor;
	transform: rotate( 45deg );
	opacity: 0.4;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.nh-footer-nav a:hover::after {
	opacity: 1;
	transform: translate( 0.18rem, -0.09rem ) rotate( 45deg );
}

.nh-footer-contact a {
	word-break: break-word;
}

.nh-footer-note {
	margin: 0;
	font-size: 0.88rem;
	line-height: 1.6;
	color: color-mix( in srgb, var( --nh-base ) 64%, transparent );
}

.nh-urgent {
	position: relative;
	margin: 0 0 0.4rem;
	padding: 1rem 1.3rem 1rem 3.1rem;
	border-radius: 16px;
	font-size: 0.88rem;
	line-height: 1.6;
	color: color-mix( in srgb, var( --nh-base ) 82%, transparent );
	background: color-mix( in srgb, var( --nh-warm-deep ) 20%, transparent );
	border: 1px solid color-mix( in srgb, var( --nh-warm ) 32%, transparent );
}

.nh-urgent::before {
	content: "";
	position: absolute;
	inset-block-start: 1.5rem;
	inset-inline-start: 1.3rem;
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 999px;
	background: var( --nh-warm );
	box-shadow: 0 0 0 4px color-mix( in srgb, var( --nh-warm ) 24%, transparent );
}

.nh-footer-bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.6rem 2.5rem;
	margin-block-start: clamp( 1.6rem, 3vw, 2.4rem );
	padding-block-start: 1.35rem;
	border-top: 1px solid color-mix( in srgb, var( --nh-base ) 14%, transparent );
	font-size: 0.82rem;
	color: color-mix( in srgb, var( --nh-base ) 60%, transparent );
}

.nh-footer-bottom p {
	margin: 0;
}

.nh-footer-legal {
	max-width: 46rem;
}

/* The four-up process and trust grids read best with roughly 250px per column.
   Until the canvas is that wide they pair up rather than shrink. */
@media ( min-width: 1024px ) and ( max-width: 1199px ) {
	.nh-strip-inner,
	.nh-steps {
		grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
	}
}

@media ( max-width: 1023px ) {
	.nh-hero-grid {
		grid-template-columns: minmax( 0, 1fr );
	}

	.nh-hero-copy {
		max-width: 46rem;
	}

	.nh-hero-visual {
		min-height: auto;
		justify-content: flex-start;
		padding-block-start: 0;
		padding-block-end: 1.5rem;
	}

	.nh-hero-visual::before {
		right: -4rem;
		top: -3rem;
		opacity: 0.7;
	}

	.nh-hero-card {
		margin-block-start: 2rem;
		max-width: 34rem;
	}

	.nh-badge {
		display: none;
	}

	.nh-strip-inner,
	.nh-card-grid,
	.nh-steps,
	.nh-quote-grid,
	.nh-footer-grid {
		grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
	}

	.nh-insurance-grid,
	.nh-book-grid {
		grid-template-columns: minmax( 0, 1fr );
	}
}

@media ( max-width: 1180px ) {
	.nh-header-inner {
		flex-wrap: wrap;
		row-gap: 0.4rem;
	}

	.nh-nav {
		order: 3;
		width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		-ms-overflow-style: none;
		padding-block: 0.3rem;
		margin-inline: -0.9rem;
		padding-inline: 0.9rem;
	}

	.nh-nav::-webkit-scrollbar {
		display: none;
	}

	.nh-nav .wp-block-navigation__container {
		flex-wrap: nowrap;
		gap: 0.3rem;
		padding-block: 0;
	}

	.nh-nav .wp-block-navigation-item__content {
		white-space: nowrap;
		font-size: 0.9rem;
		padding: 0.42rem 0.8rem 0.52rem;
	}

	.nh-nav .wp-block-navigation-item__content::after {
		inset-inline: 0.8rem;
		inset-block-end: 0.26rem;
	}

	.nh-header-phone {
		display: none;
	}

	.nh-header-cta {
		margin-inline-start: auto;
	}

	.nh-topbar-inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.3rem;
	}

	[ id ] {
		scroll-margin-top: 8.5rem;
	}
}

@media ( max-width: 680px ) {
	.nh-nav {
		overflow-x: visible;
		margin-inline: 0;
		padding-inline: 0;
	}

	.nh-nav .wp-block-navigation__container {
		flex-wrap: wrap;
		gap: 0.3rem;
	}

	.nh-nav .wp-block-navigation-item__content {
		font-size: 0.86rem;
		padding: 0.38rem 0.72rem 0.48rem;
	}

	.nh-nav .wp-block-navigation-item__content::after {
		inset-inline: 0.72rem;
		inset-block-end: 0.22rem;
	}

	.nh-strip-inner,
	.nh-card-grid,
	.nh-steps,
	.nh-quote-grid,
	.nh-footer-grid {
		grid-template-columns: minmax( 0, 1fr );
	}

	.nh-hero {
		padding-block: 2.25rem 2.75rem;
	}

	.nh-hero-visual::before {
		top: -2.5rem;
		right: -7rem;
	}

	.nh-hero-stats {
		grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
	}

	.nh-section--mist,
	.nh-section--sage,
	.nh-section--dark {
		border-radius: 24px 24px 0 0;
	}

	.nh-card,
	.nh-provider,
	.nh-quote,
	.nh-pay,
	.nh-book-card {
		padding-inline: 1.25rem;
	}

	.nh-hours li,
	.nh-pay-rows li {
		font-size: 0.88rem;
	}

	.nh-footer-head {
		gap: 1.6rem;
	}

	.nh-footer-book {
		padding: 1.25rem 1.25rem;
	}

	.nh-footer-brand {
		padding-inline-start: 2.1rem;
		font-size: 1.28rem;
	}

	.nh-footer-brand::before {
		width: 1.45rem;
		height: 1.45rem;
	}

	.nh-footer-brand::after {
		inset-inline-start: 0.8rem;
	}

	.nh-urgent {
		padding: 1rem 1.1rem 1rem 2.8rem;
	}

	.nh-urgent::before {
		inset-inline-start: 1.1rem;
	}
}

/* === canvas width ===
   Every top-level section is an alignfull constrained group, so WordPress was
   sizing its direct children (hero grid, card grids, step lists, header and
   footer rows) to theme.json contentSize — 760px — inside a full-bleed
   background. That boxed the whole page and squeezed the multi-column layouts.
   Promote those section wrappers to the wide canvas instead. Sections stay
   full-bleed; only their inner content box widens. */
.wp-block-group.alignfull.is-layout-constrained > :where( :not( .alignwide, .alignleft, .alignright, .alignfull ) ) {
	max-width: var( --nh-max );
}

/* Side gutters scale with the window so full-bleed sections keep a deliberate
   margin at laptop and desktop widths instead of hugging the edge. */
body .has-global-padding {
	padding-left: clamp( 1rem, 3vw, 3.5rem );
	padding-right: clamp( 1rem, 3vw, 3.5rem );
}

/* Headings and cards read better with a measure cap once the canvas is wide. */
.nh-head {
	max-width: 52ch;
}

.nh-quote-text {
	max-width: 46ch;
}

.nh-faq {
	max-width: 92ch;
}

/* Long unbreakable strings (the footer email) were spilling out of their grid
   column and being clipped at the viewport edge. */
.nh-footer p,
.nh-footer a {
	overflow-wrap: anywhere;
}

