﻿
/* Request confirmation */
.sp-thank-you-hero.sp-hero-section {
	background:
		radial-gradient(ellipse at 50% 0%, color-mix(in srgb, var(--wp--preset--color--primary) 12%, transparent), transparent 65%),
		var(--wp--preset--color--base);
	padding-block: clamp(3rem, 7vw, 6rem);
}

.sp-thank-you-hero .sp-hero {
	box-sizing: border-box;
	margin-inline: auto;
	padding: 0;
}

.sp-thank-you-hero .sp-hero__content::before {
	content: "";
	display: block;
	width: 1.25rem;
	height: 2.5rem;
	margin: 0 auto 2rem;
	border-right: 3px solid var(--wp--preset--color--primary);
	border-bottom: 3px solid var(--wp--preset--color--primary);
	transform: rotate(45deg);
}

.sp-thank-you-next,
.sp-thank-you-help {
	padding-inline: clamp(1.25rem, 4vw, 3rem);
}

.sp-thank-you-next > h2,
.sp-thank-you-help > h2 {
	margin-block: .75rem 1rem;
}

.sp-thank-you-next .sp-thank-you-intro {
	max-width: 42rem;
	margin-bottom: 2.5rem;
	color: var(--wp--preset--color--muted);
}

.sp-thank-you-next > .sp-thank-you-grid,
.sp-thank-you-help > .sp-clinic-contact-cards {
	max-width: var(--wp--style--global--wide-size);
	margin-block: 2.5rem;
}

.sp-thank-you-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
}

.sp-thank-you-card {
	min-width: 0;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--muted) 24%, transparent);
	border-radius: 1rem;
	background: var(--wp--preset--color--cream);
}

.sp-thank-you-card .sp-thank-you-step {
	display: inline-grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	margin: 0 0 1.5rem;
	border-radius: .75rem;
	background: color-mix(in srgb, var(--wp--preset--color--primary) 12%, transparent);
	color: var(--wp--preset--color--primary);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--lg);
}

.sp-thank-you-card h3 {
	margin-block: 0 1rem;
}

.sp-thank-you-card > p:last-child,
.sp-thank-you-note p {
	margin-bottom: 0;
	color: var(--wp--preset--color--muted);
}

.sp-thank-you-next .sp-thank-you-note {
	padding: 1.5rem;
	border-left: 3px solid var(--wp--preset--color--primary);
	border-radius: 0 .75rem .75rem 0;
	background: var(--wp--preset--color--cream);
}

.sp-thank-you-note h3 {
	margin-block: 0 .5rem;
	font-size: var(--wp--preset--font-size--lg);
}

.sp-thank-you-help .sp-thank-you-emergency {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--sm);
}

@media (max-width: 781px) {
	.sp-thank-you-grid { grid-template-columns: 1fr; }
}

/* BOOK NOW FORM (2026-08) */
.wp-block-group.sp-legal-policy {
	padding-inline: var(--wp--preset--spacing--40);
	overflow-wrap: anywhere;
}

.sp-book-now-form {
	overflow: hidden;
}

.sp-book-now-form__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
	align-items: start;
	gap: clamp(1.5rem, 4vw, 3.5rem);
	width: min(100%, 1180px);
	margin-inline: auto;
}

.sp-book-now-form__form-card,
.sp-book-now-form__clinic {
	min-width: 0;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--muted) 28%, transparent);
	border-radius: 8px;
}

.sp-book-now-form__form-card {
	overflow: hidden;
	background: #fff;
}

.sp-book-now-form__iframe {
	display: block;
	width: 100%;
	height: 1180px;
	border: 0;
	border-radius: 0;
	background: #fff;
}

.sp-book-now-form__clinic {
	display: grid;
	gap: 1rem;
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--wp--preset--color--cream);
}

.sp-book-now-form__clinic .sp-eyebrow,
.sp-book-now-form__clinic h2 {
	margin: 0;
}

.sp-book-now-form__clinic .sp-info-card {
	padding: 1rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--muted) 24%, transparent);
	border-radius: 8px;
	background: var(--wp--preset--color--base);
}

.sp-book-now-form__clinic .sp-info-card strong {
	display: block;
	margin-bottom: .4rem;
	color: var(--wp--preset--color--primary);
}

.sp-book-now-form__clinic .sp-info-card a {
	color: var(--wp--preset--color--ink);
}

.sp-book-now-form__hours-card .sp-hours li {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}

@media (max-width: 781px) {
	.sp-book-now-form__inner { grid-template-columns: 1fr; }
	.sp-book-now-form__iframe { height: 1450px; }
}
/**
 * Abundant Health theme styles.
 *
 * Hand-written CSS â€” no build step. Design tokens come from theme.json
 * via the auto-generated `--wp--preset--*` CSS custom properties.
 */

/* ----------------------------------------------------------------------------
 * Global resets / base
 * ------------------------------------------------------------------------- */

html { scroll-behavior: smooth; }

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; height: auto; }

a { transition: color 150ms ease; }

/* ----------------------------------------------------------------------------
 * Page-level layout reset â€” sections sit flush against each other
 * ------------------------------------------------------------------------- */

html, body { margin: 0; padding: 0; }

main.wp-block-group {
	margin: 0;
	padding: 0;
}

/* Top-level sections inside post-content never carry vertical margin so they
   stack edge-to-edge. Internal padding still controls breathing room. */
main.wp-block-group > .wp-block-post-content > * {
	margin-block: 0 !important;
}

/* ----------------------------------------------------------------------------
 * Section effects (overlay + blur) â€” injected via render_block filter
 * ------------------------------------------------------------------------- */

.sp-has-effects {
	position: relative;
	isolation: isolate;
}

.sp-has-effects > .sp-section-overlay {
	content: '';
	position: absolute;
	inset: 0;
	width: 100%;
	max-width: none !important; /* defeat is-layout-constrained child max-width */
	margin: 0 !important;       /* defeat constrained auto margins */
	z-index: 0;
	pointer-events: none;
	border-radius: inherit;
}

/* Push real children above the overlay layer. */
.sp-has-effects > *:not(.sp-section-overlay) {
	position: relative;
	z-index: 1;
}

/* ----------------------------------------------------------------------------
 * Site header (sticky nav)
 * ------------------------------------------------------------------------- */

.sp-site-header {
	/* NOTE: backdrop-filter is applied via ::before so it does NOT create
	   a containing block for the position:fixed mobile nav (which would
	   clip it to the header's ~60px height). */
	position: sticky;
	top: 0;
	background-color: rgba(255, 255, 255, 0.85);
	z-index: 50;
	isolation: isolate;
}
.sp-site-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	backdrop-filter: saturate(180%) blur(10px);
	-webkit-backdrop-filter: saturate(180%) blur(10px);
	pointer-events: none;
}

.sp-site-header .wp-block-site-title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.sp-site-header .wp-block-navigation a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.sp-site-header .wp-block-navigation a:hover {
	color: var(--wp--preset--color--primary-hover);
}

/* ----------------------------------------------------------------------------
 * Hero block (abundant-health/hero)
 * ------------------------------------------------------------------------- */

.sp-hero-section {
	position: relative;
	isolation: isolate;
	padding: clamp(3rem, 8vw, 6rem) clamp(1rem, 4vw, 2rem);
	overflow: hidden;
}

.sp-hero-section__bg {
	position: absolute;
	inset: 0;
	z-index: -10;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sp-hero-section__overlay {
	position: absolute;
	inset: 0;
	z-index: -10;
	background-color: rgba(0, 0, 0, 0.4);
}

.sp-hero {
	width: 100%;
}
.sp-hero__inner {
	max-width: 1280px;
	margin-inline: auto;
}

.sp-hero--centered {
	max-width: 56rem;
	text-align: center;
}

.sp-hero--split-left,
.sp-hero--split-right {
	display: grid;
	gap: 2.5rem;
	align-items: center;
}

@media (min-width: 768px) {
	.sp-hero--split-left,
	.sp-hero--split-right {
		grid-template-columns: 1fr 1fr;
	}
	.sp-hero--split-right > *:first-child { order: 2; }
}

.sp-hero__eyebrow {
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary-hover);
	margin: 0 0 0.75rem;
}

.sp-hero__headline {
	font-size: clamp(2.25rem, 5vw, 4rem);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.02em;
	margin: 0 0 1rem;
}

.sp-hero__subheadline {
	font-size: clamp(1.05rem, 1.5vw, 1.25rem);
	color: var(--wp--preset--color--muted);
	max-width: 42rem;
	margin: 0 0 2rem;
	line-height: 1.6;
}

.sp-hero--centered .sp-hero__subheadline {
	margin-inline: auto;
}

.sp-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.sp-hero--centered .sp-hero__ctas {
	justify-content: center;
}

/* Hero CTAs share a richer interaction model: stronger lift, animated glow,
   and a subtle sheen on hover, matching the polish used in other sections. */
.sp-hero__ctas .sp-btn {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding: 1rem 1.9rem;
	font-size: 1rem;
	letter-spacing: .015em;
	transition:
		transform .35s var(--sp-ease, cubic-bezier(.2,.7,.2,1)),
		box-shadow .35s var(--sp-ease, cubic-bezier(.2,.7,.2,1)),
		background-color .25s ease,
		color .25s ease,
		border-color .25s ease;
	will-change: transform, box-shadow;
}
.sp-hero__ctas .sp-btn::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,.35) 50%, transparent 100%);
	transform: translateX(-110%);
	transition: transform .55s var(--sp-ease, cubic-bezier(.2,.7,.2,1));
	pointer-events: none;
}
.sp-hero__ctas .sp-btn:hover::before,
.sp-hero__ctas .sp-btn:focus-visible::before { transform: translateX(110%); }
.sp-hero__ctas .sp-btn--primary {
	box-shadow: 0 6px 18px rgba(245,197,66,.25);
}
.sp-hero__ctas .sp-btn--primary:hover,
.sp-hero__ctas .sp-btn--primary:focus-visible {
	transform: translateY(-3px) scale(1.02);
	box-shadow: 0 14px 32px rgba(245,197,66,.45), 0 0 0 1px rgba(217,169,40,.4);
	background-color: var(--wp--preset--color--primary-hover, #D9A928);
}
.sp-hero__ctas .sp-btn--secondary {
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
}
.sp-hero__ctas .sp-btn--secondary:hover,
.sp-hero__ctas .sp-btn--secondary:focus-visible {
	transform: translateY(-3px) scale(1.02);
	box-shadow: 0 12px 28px rgba(17,17,17,.18);
	background-color: var(--wp--preset--color--ink, #1F1F1F);
	color: var(--wp--preset--color--base, #fff);
	border-color: var(--wp--preset--color--ink, #1F1F1F);
}
.sp-hero__ctas .sp-btn:active {
	transform: translateY(-1px) scale(.99);
	transition-duration: .12s;
}
@media (prefers-reduced-motion: reduce) {
	.sp-hero__ctas .sp-btn,
	.sp-hero__ctas .sp-btn::before { transition: none; transform: none !important; }
}

/* When the hero has only one CTA, give it more presence: bigger, centered, yellow. */
.sp-hero__ctas:has(> .sp-btn:only-child) {
	justify-content: center;
}
.sp-hero__ctas > .sp-btn--primary:only-child {
	padding: 1.1rem 2.25rem;
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: .02em;
	background-color: var(--wp--preset--color--primary, #F5C542);
	color: var(--wp--preset--color--ink, #1F1F1F);
	box-shadow: 0 6px 18px rgba(245, 197, 66, .35);
}
.sp-hero__ctas > .sp-btn--primary:only-child:hover {
	background-color: var(--wp--preset--color--primary-hover, #D9A928);
	transform: translateY(-3px) scale(1.02);
	box-shadow: 0 16px 36px rgba(245,197,66,.5);
}

.sp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.85rem 1.5rem;
	font-weight: 600;
	font-size: 0.95rem;
	border-radius: 9999px;
	text-decoration: none;
	transition: background-color 150ms ease, color 150ms ease, transform 150ms ease;
	border: 1px solid transparent;
}

.sp-btn:hover { transform: translateY(-1px); }

.sp-btn--primary {
	background-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--ink);
}

.sp-btn--primary:hover {
	background-color: var(--wp--preset--color--primary-hover);
}

.sp-btn--secondary {
	background-color: transparent;
	color: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--ink);
}

.sp-btn--secondary:hover {
	background-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--base);
}

/* When hero sits on a dark section, secondary should use base color */
.has-charcoal-background-color .sp-btn--secondary,
.has-deep-black-background-color .sp-btn--secondary,
.has-ink-background-color .sp-btn--secondary {
	color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--base);
}

/* Hero — defensive reset: kill any inherited dotted/dashed borders, UA focus
   rings, or text-decoration on hero text. Re-introduce a branded ring only
   for :focus-visible (keyboard) so accessibility stays intact. */
.sp-hero-section :where(p, h1, h2, h3, h4, h5, h6, a, button, span) {
	border: 0;
	outline: 0;
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
}
.sp-hero-section :where(a, button):focus { outline: none; }
.sp-hero-section :where(a, button):focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #F5C542);
	outline-offset: 3px;
	border-radius: 8px;
}

/* ----------------------------------------------------------------------------
 * Editor preview helpers (kept minimal â€” Gutenberg styles the rest)
 * ------------------------------------------------------------------------- */

.sp-hero-edit {
	padding: 2rem;
	border: 1px dashed var(--wp--preset--color--muted, #ccc);
	border-radius: 0.5rem;
}

.sp-hero-edit__eyebrow {
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--muted, #888);
	margin: 0 0 0.5rem;
}

.sp-hero-edit__headline {
	font-size: 2rem;
	font-weight: 700;
	margin: 0 0 0.5rem;
}

.sp-hero-edit__subheadline {
	margin-top: 0.75rem;
	color: var(--wp--preset--color--muted, #666);
}

/* ============================================================================
 * PREMIUM DESIGN SYSTEM â€” wellness / luxury aesthetic
 * Reusable utility classes applied via Gutenberg `className`.
 * ========================================================================= */

/* ---------- Tokens (extend theme.json runtime tokens) ---------- */
:root {
	--sp-shadow-sm:  0 1px 2px rgba(17,17,17,.04), 0 2px 8px rgba(17,17,17,.04);
	--sp-shadow-md:  0 4px 12px rgba(17,17,17,.05), 0 12px 32px rgba(17,17,17,.06);
	--sp-shadow-lg:  0 12px 24px rgba(17,17,17,.06), 0 32px 64px rgba(17,17,17,.10);
	--sp-shadow-glow: 0 8px 32px rgba(245,197,66,.18);
	--sp-radius-sm: 12px;
	--sp-radius-md: 18px;
	--sp-radius-lg: 28px;
	--sp-radius-xl: 36px;
	--sp-ease: cubic-bezier(.2,.7,.2,1);
}

/* ---------- Section wrappers (depth + ambient) ---------- */

/* Soft cream â†’ white vertical gradient */
.sp-bg-soft {
	background: linear-gradient(180deg, #FBF8F1 0%, #FFFFFF 100%) !important;
}
/* Cream â†’ warm-grey ambient */
.sp-bg-ambient {
	background:
		radial-gradient(60rem 30rem at 80% -10%, rgba(245,197,66,.10), transparent 60%),
		radial-gradient(50rem 30rem at -10% 110%, rgba(31,31,31,.06), transparent 60%),
		var(--wp--preset--color--cream) !important;
}
/* Dark cinematic with warm aurora */
.sp-bg-cinematic {
	background:
		radial-gradient(50rem 30rem at 90% -20%, rgba(245,197,66,.18), transparent 60%),
		radial-gradient(60rem 40rem at -10% 120%, rgba(217,169,40,.10), transparent 60%),
		linear-gradient(180deg, #0B0B0B 0%, #111111 100%) !important;
	color: var(--wp--preset--color--base);
}
/* Subtle film grain overlay (perf-cheap SVG noise as data-uri) */
.sp-grain { position: relative; isolation: isolate; }
.sp-grain::after {
	content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
	opacity:.05; mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.6'/></svg>");
}
.sp-grain > * { position: relative; z-index: 1; }

/* Soft top/bottom curve transition between sections */
.sp-curve-top    { clip-path: ellipse(140% 100% at 50% 100%); }
.sp-curve-bottom { clip-path: ellipse(140% 100% at 50% 0%);   }

/* ---------- Floating decorative blobs (pure CSS, no DOM markup) ---------- */
/* Drawn as pseudo-elements on `.sp-stage` sections â€” keeps post_content
   editor-friendly (no empty decorative blocks for editors to bump into). */
.sp-stage { position: relative; overflow: hidden; isolation: isolate; }
.sp-stage::before,
.sp-stage::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	filter: blur(60px);
	opacity: .55;
	pointer-events: none;
	z-index: 0;
	animation: sp-float 14s ease-in-out infinite;
}
.sp-stage::before {
	top: -8rem; right: -6rem; width: 26rem; height: 26rem;
	background: radial-gradient(circle, #F5C542 0%, transparent 70%);
	animation-delay: -4s;
}
.sp-stage::after {
	bottom: -8rem; left: -8rem; width: 24rem; height: 24rem;
	background: radial-gradient(circle, #F7F3EA 0%, transparent 70%);
	animation-delay: -7s;
}
.sp-bg-cinematic.sp-stage::after {
	background: radial-gradient(circle, #1F1F1F 0%, transparent 70%);
	opacity: .35;
}

@keyframes sp-float {
	0%,100% { transform: translate3d(0,0,0)   scale(1); }
	50%     { transform: translate3d(0,-2rem,0) scale(1.06); }
}
@media (prefers-reduced-motion: reduce) {
	.sp-stage::before, .sp-stage::after { animation: none; }
}

/* ---------- Editorial typography helpers ---------- */
.sp-eyebrow {
	display: inline-flex; align-items: center; gap: .6rem;
	font-size: .8125rem; font-weight: 600; letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary-hover);
	margin: 0 0 .9rem !important;
}
.sp-eyebrow::before {
	content:""; width: 1.75rem; height: 2px;
	background: linear-gradient(90deg, transparent, currentColor);
}
.has-cinematic-bg .sp-eyebrow,
.sp-bg-cinematic .sp-eyebrow { color: var(--wp--preset--color--primary); }

.sp-display {
	font-size: clamp(2.25rem, 4.4vw, 3.5rem) !important;
	line-height: 1.08 !important;
	letter-spacing: -.025em !important;
	font-weight: 800 !important;
	max-width: 30ch;
}
.sp-display--center { margin-inline: auto !important; text-align: center; }
.sp-lead {
	font-size: clamp(1.05rem, 1.4vw, 1.25rem) !important;
	color: var(--wp--preset--color--muted);
	max-width: 60ch; line-height: 1.65;
}
.sp-bg-cinematic .sp-lead { color: rgba(255,255,255,.72); }
.sp-lead--center { margin-inline: auto !important; text-align: center; }

.sp-divider-glow {
	height: 1px; border:0; margin: 2rem auto;
	background: linear-gradient(90deg, transparent, rgba(245,197,66,.6), transparent);
	max-width: 12rem;
}

/* ---------- Cards ---------- */

/* Premium service card â€” soft depth, gradient top accent, hover lift */
.sp-card {
	position: relative;
	background: var(--wp--preset--color--base);
	border-radius: var(--sp-radius-md) !important;
	padding: 2rem !important;
	box-shadow: var(--sp-shadow-sm);
	border: 1px solid rgba(17,17,17,.04) !important;
	transition: transform .35s var(--sp-ease), box-shadow .35s var(--sp-ease), border-color .35s var(--sp-ease);
	overflow: hidden;
	height: 100%;
}
.sp-card::before {
	content:""; position:absolute; inset:0 0 auto 0; height: 3px;
	background: linear-gradient(90deg, #F5C542, #D9A928 60%, transparent);
	opacity: .9;
}
.sp-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--sp-shadow-lg);
	border-color: rgba(245,197,66,.35) !important;
}
.sp-card .wp-block-heading { margin-top: .5rem !important; }

/* Glass card (for dark sections / overlays) */
.sp-glass {
	background: rgba(255,255,255,.06) !important;
	backdrop-filter: blur(14px) saturate(140%);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	border: 1px solid rgba(255,255,255,.10) !important;
	border-radius: var(--sp-radius-md) !important;
	padding: 2rem !important;
	box-shadow: var(--sp-shadow-md);
}
.sp-glass-light {
	background: rgba(255,255,255,.7) !important;
	backdrop-filter: blur(14px) saturate(160%);
	-webkit-backdrop-filter: blur(14px) saturate(160%);
	border: 1px solid rgba(17,17,17,.06) !important;
	border-radius: var(--sp-radius-md) !important;
	padding: 2rem !important;
	box-shadow: var(--sp-shadow-md);
}

/* ---------- Numbered step card (process timeline) ---------- */
/* Center the eyebrow + headline that sit above the steps grid */
.sp-steps {
	position: relative;
	margin-top: 2.5rem !important;
	gap: 1.25rem !important;
}
/* The h2 is rendered as a sibling immediately before .sp-steps inside the section.
   Center it (and its eyebrow) regardless of whether textAlign made it into the class list. */
.wp-block-group:has(> .sp-steps) > h2,
.wp-block-group:has(> .sp-steps) > .sp-eyebrow {
	text-align: center;
}
/* Connecting line behind the row of steps (desktop only) */
@media (min-width: 901px) {
	.sp-steps::before {
		content: "";
		position: absolute;
		left: 5%; right: 5%;
		top: 2.75rem;
		height: 2px;
		background: linear-gradient(90deg,
			transparent 0%,
			rgba(245,197,66,.0) 4%,
			rgba(245,197,66,.55) 18%,
			rgba(217,169,40,.55) 82%,
			rgba(245,197,66,.0) 96%,
			transparent 100%);
		z-index: 0;
		pointer-events: none;
	}
}
.sp-step {
	position: relative;
	z-index: 1;
	background: var(--wp--preset--color--base) !important;
	border: 1px solid rgba(17,17,17,.06) !important;
	border-radius: var(--sp-radius-md) !important;
	padding: 3.75rem 1.5rem 1.75rem !important;
	box-shadow: 0 6px 18px rgba(15,15,15,.05);
	text-align: center;
	transition: transform .35s var(--sp-ease), box-shadow .35s var(--sp-ease), border-color .35s var(--sp-ease);
	overflow: visible;
}
.sp-step:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 32px rgba(15,15,15,.10);
	border-color: rgba(245,197,66,.5) !important;
}
.sp-step::before { display: none; } /* override generic .sp-card top stripe */
.sp-step .sp-step__num,
.sp-step__num {
	position: absolute;
	top: -1.5rem;
	left: 50%;
	transform: translateX(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 9999px;
	background: linear-gradient(135deg, #F5C542 0%, #D9A928 100%);
	color: var(--wp--preset--color--ink, #1F1F1F);
	font-family: 'Inter', sans-serif;
	font-weight: 800;
	font-size: 1.15rem;
	line-height: 1;
	letter-spacing: 0;
	box-shadow: 0 8px 18px rgba(217,169,40,.35), 0 0 0 6px var(--wp--preset--color--base);
	-webkit-background-clip: border-box; background-clip: border-box;
	-webkit-text-fill-color: var(--wp--preset--color--ink, #1F1F1F);
}
.sp-step .sp-step__title {
	font-size: 1.05rem !important;
	font-weight: 700 !important;
	letter-spacing: -.005em;
	margin: 0 0 .5rem !important;
	color: var(--wp--preset--color--ink);
}
.sp-step .sp-step__body {
	font-size: .9rem !important;
	line-height: 1.55 !important;
	color: var(--wp--preset--color--muted, #6B6B6B);
	margin: 0 !important;
}
/* Dark cinematic variant */
.sp-bg-cinematic .sp-step {
	background: rgba(255,255,255,.04) !important;
	border-color: rgba(255,255,255,.08) !important;
	box-shadow: 0 10px 30px rgba(0,0,0,.45);
}
.sp-bg-cinematic .sp-step:hover { border-color: rgba(245,197,66,.5) !important; }
.sp-bg-cinematic .sp-step .sp-step__title { color: var(--wp--preset--color--base) !important; }
.sp-bg-cinematic .sp-step .sp-step__body  { color: rgba(255,255,255,.72) !important; }
.sp-bg-cinematic .sp-step__num {
	box-shadow: 0 8px 18px rgba(217,169,40,.45), 0 0 0 6px #111;
}
/* 5-up grid for the "Five steps" timeline */
.sp-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.25rem; }
@media (max-width: 1100px) { .sp-grid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 720px)  { .sp-grid--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px)  { .sp-grid--5 { grid-template-columns: 1fr; } }
@media (max-width: 1100px) { .sp-steps::before { display: none; } }

/* Stat card â€” large gradient number */
.sp-stat { text-align:center; padding: 1.5rem !important; }
.sp-stat__num {
	font-size: clamp(2.5rem, 5vw, 3.75rem) !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	background: linear-gradient(135deg, #F5C542 0%, #D9A928 100%);
	-webkit-background-clip: text; background-clip: text;
	color: transparent !important;
	letter-spacing: -.03em;
	margin: 0 0 .35rem !important;
}
.sp-stat__label {
	font-size: .85rem !important;
	letter-spacing: .12em; text-transform: uppercase;
	color: var(--wp--preset--color--muted) !important;
	margin: 0 !important;
}
.sp-bg-cinematic .sp-stat__label { color: rgba(255,255,255,.6) !important; }

/* Trust marquee strip */
.sp-trust-row {
	display:flex; flex-wrap: wrap; justify-content: center; align-items: center;
	gap: 2.5rem 3rem;
}
.sp-trust-row p {
	margin: 0 !important;
	font-size: .85rem; letter-spacing: .14em; text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	opacity: .85;
}

/* Testimonial card */
.sp-quote {
	position: relative;
	padding: 2.25rem 2rem !important;
	background: var(--wp--preset--color--base);
	border-radius: var(--sp-radius-md) !important;
	box-shadow: var(--sp-shadow-md);
	border: 1px solid rgba(17,17,17,.04);
	height: 100%;
}
.sp-quote::before {
	content: "\201C";
	position: absolute; top: -.5rem; left: 1.25rem;
	font-family: Georgia, serif; font-size: 5rem; line-height: 1;
	color: var(--wp--preset--color--primary);
	opacity: .9;
}
.sp-quote p { font-size: 1.0625rem; line-height: 1.6; }
.sp-quote .sp-quote__author {
	margin-top: 1rem !important;
	font-size: .85rem; letter-spacing: .08em; text-transform: uppercase;
	color: var(--wp--preset--color--muted) !important;
}

/* Checklist (benefits) */
.sp-checklist { list-style: none !important; padding: 0 !important; }
.sp-checklist li {
	position: relative; padding-left: 2rem !important; margin-bottom: .85rem !important;
	font-size: 1.0625rem;
}
.sp-checklist li::before {
	content:""; position:absolute; left:0; top:.35rem;
	width: 1.25rem; height: 1.25rem; border-radius: 50%;
	background: linear-gradient(135deg, #F5C542, #D9A928);
	box-shadow: 0 0 0 4px rgba(245,197,66,.12);
}
.sp-checklist li::after {
	content:""; position:absolute; left:.42rem; top:.6rem;
	width: .42rem; height: .22rem; border-left: 2px solid #1F1F1F; border-bottom: 2px solid #1F1F1F;
	transform: rotate(-45deg);
}

/* Premium benefit cards (About ? Benefits) */
.sp-benefit-cards {
	list-style: none !important;
	margin: 2rem auto 0 !important;
	padding: 0 !important;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem;
	max-width: 1100px;
	justify-items: stretch;
}
.sp-benefit-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: .85rem;
	padding: 2rem 1.5rem 1.75rem;
	background: var(--wp--preset--color--base, #fff);
	border: 1px solid rgba(17, 17, 17, .07);
	border-radius: var(--sp-radius-md, 16px);
	box-shadow: 0 1px 2px rgba(15, 15, 15, .04), 0 12px 28px -18px rgba(15, 15, 15, .14);
	overflow: hidden;
	transition: transform .35s var(--sp-ease, ease), box-shadow .35s var(--sp-ease, ease), border-color .25s ease;
}
.sp-benefit-card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 3px;
	background: linear-gradient(90deg, #F5C542 0%, #D9A928 100%);
	opacity: .85;
}
.sp-benefit-card:hover {
	transform: translateY(-4px);
	border-color: rgba(245, 197, 66, .45);
	box-shadow: 0 2px 4px rgba(15, 15, 15, .05), 0 22px 44px -22px rgba(15, 15, 15, .22);
}
.sp-benefit-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 14px;
	color: var(--wp--preset--color--ink, #1F1F1F);
	background: linear-gradient(135deg, rgba(245, 197, 66, .22), rgba(217, 169, 40, .12));
	box-shadow: inset 0 0 0 1px rgba(245, 197, 66, .35);
}
.sp-benefit-card__icon svg {
	width: 24px;
	height: 24px;
	display: block;
}
.sp-benefit-card__title {
	margin: 0 !important;
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--wp--preset--color--ink, #1F1F1F);
	letter-spacing: -0.005em;
}
.sp-benefit-card__desc {
	margin: 0 !important;
	font-size: .95rem;
	line-height: 1.55;
	color: var(--wp--preset--color--muted, #5B5B57);
}
@media (max-width: 960px) {
	.sp-benefit-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.sp-benefit-cards { grid-template-columns: 1fr; gap: 1rem; }
	.sp-benefit-card { padding: 1.5rem 1.25rem 1.4rem; }
}

/* FAQ accordion (uses native <details> wrapped in a group with .sp-faq) */
.sp-faq details {
	background: var(--wp--preset--color--base);
	border: 1px solid rgba(17,17,17,.06);
	border-radius: var(--sp-radius-sm);
	padding: 1.1rem 1.25rem;
	margin-bottom: .75rem;
	box-shadow: var(--sp-shadow-sm);
	transition: box-shadow .25s var(--sp-ease), border-color .25s var(--sp-ease);
}
.sp-faq details[open] { box-shadow: var(--sp-shadow-md); border-color: rgba(245,197,66,.35); }
.sp-faq summary {
	cursor: pointer; list-style: none;
	font-weight: 600; font-size: 1.0625rem;
	display:flex; align-items:center; justify-content: space-between; gap: 1rem;
}
.sp-faq summary::-webkit-details-marker { display: none; }
.sp-faq summary::after {
	content: "+"; color: var(--wp--preset--color--primary-hover);
	font-weight: 700; font-size: 1.5rem; line-height: 1;
	display: inline-block;
	transition: transform .25s var(--sp-ease);
}
.sp-faq details[open] summary::after { content: "\2212"; }
.sp-faq details > p { margin: .85rem 0 .25rem !important; color: var(--wp--preset--color--muted); }

/* Premium CTA banner (yellow with depth) */
.sp-cta-banner {
	background:
		radial-gradient(40rem 20rem at 100% 0%, rgba(255,255,255,.35), transparent 60%),
		linear-gradient(135deg, #F5C542 0%, #D9A928 100%) !important;
	color: var(--wp--preset--color--ink) !important;
	border-radius: var(--sp-radius-lg) !important;
	box-shadow: var(--sp-shadow-lg);
	padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 4vw, 3rem) !important;
	position: relative; overflow: hidden;
}
.sp-cta-banner .wp-block-heading { color: var(--wp--preset--color--ink) !important; }
.sp-cta-banner::after {
	content:""; position:absolute; right:-6rem; bottom:-6rem;
	width: 18rem; height: 18rem; border-radius: 50%;
	background: rgba(255,255,255,.18); filter: blur(40px); pointer-events: none;
}

/* Stage sections layer their content above the pseudo-element blobs */
.sp-stage > * { position: relative; z-index: 2; }

/* ---------- Hover refinements for buttons / links ---------- */
.sp-btn--primary {
	box-shadow: 0 6px 18px rgba(245,197,66,.28);
}
.sp-btn--primary:hover {
	box-shadow: 0 10px 26px rgba(217,169,40,.38);
	transform: translateY(-2px);
}

/* Inline link arrow grow */
.sp-link-arrow a {
	display: inline-flex; align-items: center; gap: .35rem;
	font-weight: 600; color: var(--wp--preset--color--primary-hover);
	text-decoration: none;
}
.sp-link-arrow a::after {
	content: "\2192"; transition: transform .25s var(--sp-ease);
}
.sp-link-arrow a:hover::after { transform: translateX(.35rem); }

/* ---------- Spacing rhythm helpers ---------- */
.sp-section-pad { padding-block: clamp(4rem, 8vw, 7rem) !important; }
.sp-section-pad--lg { padding-block: clamp(5rem, 10vw, 9rem) !important; }
.sp-stack-tight  > * + * { margin-top: 1rem !important; }
.sp-stack-normal > * + * { margin-top: 1.5rem !important; }
.sp-stack-wide   > * + * { margin-top: 2.5rem !important; }

/* ---------- Scroll reveal (driven by tiny JS adding .is-visible) ---------- */
.sp-reveal {
	opacity: 0;
	transform: translate3d(0, 1.25rem, 0);
	transition: opacity .8s var(--sp-ease), transform .8s var(--sp-ease);
	will-change: opacity, transform;
}
.sp-reveal.is-visible { opacity: 1; transform: none; }
.sp-reveal--delay-1 { transition-delay: .08s; }
.sp-reveal--delay-2 { transition-delay: .16s; }
.sp-reveal--delay-3 { transition-delay: .24s; }
.sp-reveal--delay-4 { transition-delay: .32s; }
@media (prefers-reduced-motion: reduce) {
	.sp-reveal { opacity: 1; transform: none; transition: none; }
}

/* Editor preview: animations don't run, so always show content. */
.editor-styles-wrapper .sp-reveal,
.wp-block-post-content .sp-reveal:where(.is-root-container *) {
	opacity: 1 !important;
	transform: none !important;
}
/* Editor: blobs are pseudo-elements only â€” keep them off in the editor canvas
   so they don't blur over block outlines while editing. */
.editor-styles-wrapper .sp-stage::before,
.editor-styles-wrapper .sp-stage::after { display: none !important; }
/* Hide the placeholder &nbsp; paragraph inside sp-frame in editor */
.editor-styles-wrapper .sp-frame p { display: none; }
/* Force section backgrounds to show in editor (the iframe sometimes
   strips body bg). They are applied via .sp-bg-* classes already. */
.editor-styles-wrapper { background: transparent; }

/* ---------- Image masks / framed media ---------- */
.sp-frame {
	position: relative;
	border-radius: var(--sp-radius-lg);
	overflow: hidden;
	box-shadow: var(--sp-shadow-lg);
	aspect-ratio: 4 / 5;
	background: linear-gradient(135deg, #F7F3EA, #F5F5F2);
}
.sp-frame--landscape { aspect-ratio: 16 / 10; }
.sp-frame img { width:100%; height:100%; object-fit: cover; display:block; }
/* When sp-frame is applied to a core/image block, neutralize the default
   wp-block-image table layout so our aspect-ratio + object-fit work. */
figure.wp-block-image.sp-frame {
	display: block;
	margin: 0;
	width: 100%;
	max-width: 100%;
}
figure.wp-block-image.sp-frame > a,
figure.wp-block-image.sp-frame > img { width:100%; height:100%; }
.sp-frame::after {
	content:""; position:absolute; inset:auto -2rem -2rem auto;
	width: 9rem; height: 9rem; border-radius: 50%;
	background: linear-gradient(135deg, #F5C542, #D9A928);
	filter: blur(48px); opacity: .35; pointer-events:none;
}

/* ---------- Section dark text inversions ---------- */
.sp-bg-cinematic h1, .sp-bg-cinematic h2, .sp-bg-cinematic h3,
.sp-bg-cinematic h4, .sp-bg-cinematic .wp-block-heading { color: var(--wp--preset--color--base); }
.sp-bg-cinematic .sp-card {
	background: rgba(255,255,255,.04);
	border: 1px solid rgba(255,255,255,.08) !important;
	color: rgba(255,255,255,.85);
}
.sp-bg-cinematic .sp-card .wp-block-heading { color: var(--wp--preset--color--base); }
.sp-bg-cinematic .sp-card::before {
	background: linear-gradient(90deg, #F5C542, transparent);
}

/* ---------- Responsive niceties ---------- */
@media (max-width: 640px) {
	.sp-card, .sp-glass, .sp-glass-light, .sp-quote { padding: 1.5rem !important; }
	.sp-cta-banner { border-radius: var(--sp-radius-md) !important; }
}



/* =========================================================================
   PRIMARY NAVIGATION — cohesive black, Inter, balanced spacing
   ========================================================================= */
.sp-site-header .wp-block-site-title,
.sp-site-header .wp-block-site-title a {
	font-family: var(--wp--preset--font-family--inter, 'Inter', system-ui, sans-serif);
	font-weight: 800;
	font-size: 1.05rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink, #1F1F1F) !important;
	text-decoration: none;
}

.sp-navbar,
.sp-navbar * {
	font-family: var(--wp--preset--font-family--inter, 'Inter', system-ui, sans-serif);
}

.sp-navbar {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex: 1;
	gap: 2rem;
}

.sp-navbar__nav {
	display: flex;
	align-items: center;
	gap: 1.75rem;
	flex: 1;
	justify-content: flex-end;
}

.sp-navbar__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: .25rem;
}

.sp-navbar__menu > li { position: relative; }

.sp-navbar__menu > li > a {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink, #1F1F1F);
	text-decoration: none;
	padding: .65rem .85rem;
	border-radius: 8px;
	transition: color .18s ease, background .18s ease;
	white-space: nowrap;
}
.sp-navbar__menu > li > a:hover,
.sp-navbar__menu > li.current-menu-item > a,
.sp-navbar__menu > li:focus-within > a {
	color: var(--wp--preset--color--ink, #1F1F1F);
	background: rgba(31, 31, 31, .05);
}

.sp-navbar__menu .nav-dropdown-icon {
	transition: transform .2s ease;
	opacity: .55;
}
.sp-navbar__menu > li.menu-item-has-children:hover .nav-dropdown-icon,
.sp-navbar__menu > li.menu-item-has-children:focus-within .nav-dropdown-icon {
	transform: rotate(180deg);
	opacity: 1;
}

/* Dropdowns */
.sp-navbar__menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 240px;
	background: var(--wp--preset--color--base, #fff);
	border: 1px solid #ededed;
	border-radius: 14px;
	padding: .5rem;
	margin: .5rem 0 0;
	list-style: none;
	box-shadow: 0 24px 60px rgba(5, 5, 5, .12);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
	z-index: 100;
}
.sp-navbar__menu > li:hover > .sub-menu,
.sp-navbar__menu > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	transition: opacity .2s ease, transform .2s ease, visibility 0s;
}
.sp-navbar__menu .sub-menu li a {
	display: block;
	padding: .6rem .85rem;
	border-radius: 8px;
	font-size: .85rem;
	font-weight: 500;
	letter-spacing: .02em;
	text-transform: none;
	color: var(--wp--preset--color--ink, #1F1F1F);
	text-decoration: none;
	transition: background .15s ease, color .15s ease;
}
.sp-navbar__menu .sub-menu li a:hover {
	background: var(--wp--preset--color--warm-grey, #F5F5F2);
	color: var(--wp--preset--color--ink, #1F1F1F);
}

/* Mega dropdown (Services & Conditions) */
.sp-navbar__menu .mega-dropdown {
	min-width: 880px;
	max-width: min(1100px, 96vw);
	left: 50%;
	transform: translate(-50%, 8px);
	padding: 1.75rem 2rem;
	display: grid;
	grid-template-columns: repeat(3, minmax(240px, 1fr));
	gap: 1.5rem 2rem;
}
.sp-navbar__menu > li:hover > .mega-dropdown,
.sp-navbar__menu > li:focus-within > .mega-dropdown {
	transform: translate(-50%, 0);
}
.sp-navbar__menu .mega-dropdown__group { list-style: none; }
.sp-navbar__menu .mega-dropdown__title {
	display: block;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	line-height: 1.25;
	color: var(--wp--preset--color--muted, #A7A39B);
	padding: 0 .85rem .55rem;
	margin-bottom: .35rem;
	border-bottom: 1px solid #ededed;
}
.sp-navbar__menu .mega-dropdown__list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.sp-navbar__menu .mega-dropdown__list a {
	white-space: normal;
	line-height: 1.35;
}

/* Right-side actions: phone + social + CTA */
.sp-navbar__actions {
	display: flex;
	align-items: center;
	gap: .9rem;
	padding-left: 1rem;
	border-left: 1px solid #ededed;
}

.sp-navbar__phone {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	font-size: .88rem;
	font-weight: 700;
	letter-spacing: .02em;
	color: var(--wp--preset--color--ink, #1F1F1F);
	text-decoration: none;
	padding: .35rem .25rem;
	white-space: nowrap;
	flex-shrink: 0;
	transition: color .18s ease;
}
.sp-navbar__phone span { white-space: nowrap; }
.sp-navbar__phone svg {
	color: var(--wp--preset--color--ink, #1F1F1F);
	flex-shrink: 0;
	transition: color .18s ease, transform .18s ease;
}
.sp-navbar__phone:hover { color: var(--wp--preset--color--primary-hover, #D9A928); }
.sp-navbar__phone:hover svg { color: var(--wp--preset--color--primary-hover, #D9A928); transform: rotate(-12deg); }

.sp-navbar__social {
	display: flex;
	align-items: center;
	gap: .35rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.sp-navbar__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: transparent;
	color: var(--wp--preset--color--ink, #1F1F1F);
	border: 1px solid #ededed;
	transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.sp-navbar__social a:hover {
	background: var(--wp--preset--color--ink, #1F1F1F);
	color: var(--wp--preset--color--base, #fff);
	border-color: var(--wp--preset--color--ink, #1F1F1F);
	transform: translateY(-1px);
}

.sp-navbar__cta a {
	display: inline-flex;
	align-items: center;
	background: var(--wp--preset--color--primary, #F5C542);
	color: var(--wp--preset--color--ink, #1F1F1F) !important;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: .7rem 1.25rem;
	border-radius: 9999px;
	text-decoration: none;
	transition: background .18s ease, transform .18s ease, color .18s ease;
}
.sp-navbar__cta a:hover {
	background: var(--wp--preset--color--primary-hover, #D9A928);
	color: var(--wp--preset--color--ink, #1F1F1F) !important;
	transform: translateY(-1px);
}

/* Inline Book Now CTA inside the menu list (kept horizontal with siblings) */
.sp-navbar__menu .sp-navbar__menu-cta { margin-left: .5rem; }
.sp-navbar__menu .sp-navbar__menu-cta > a {
	background: var(--wp--preset--color--primary, #F5C542);
	color: var(--wp--preset--color--ink, #1F1F1F);
	border-radius: 9999px;
	padding: .65rem 1.25rem;
	transition: background .18s ease, color .18s ease, transform .18s ease;
}
.sp-navbar__menu .sp-navbar__menu-cta > a:hover {
	background: var(--wp--preset--color--primary-hover, #D9A928);
	color: var(--wp--preset--color--ink, #1F1F1F);
	transform: translateY(-1px);
}

/* Responsive */
@media (max-width: 1280px) {
	.sp-navbar__menu { gap: 0; }
	.sp-navbar__menu > li > a { padding: .6rem .65rem; font-size: .78rem; }
}
@media (max-width: 1180px) {
	.sp-navbar__phone span { display: none; }
}
@media (max-width: 1080px) {
	.sp-navbar__social { display: none; }
}
@media (max-width: 960px) {
	.sp-navbar__menu { display: none; }
	.sp-navbar__actions { padding-left: 0; border-left: 0; }
}

/* Generic responsive grid utility */
.sp-grid { display: grid; gap: 1.5rem; }
.sp-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sp-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sp-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
@media (max-width: 960px) {
  .sp-grid--3, .sp-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .sp-grid--2, .sp-grid--3, .sp-grid--4 { grid-template-columns: 1fr; }
}

/* Compact card variant */
.sp-card--sm { padding: 1.25rem; }
.sp-card--sm .sp-card__title,
.sp-card--sm h3 { font-size: 1rem; margin: 0 0 .35rem; }
.sp-card--sm .sp-card__body,
.sp-card--sm p { font-size: .85rem; line-height: 1.45; }

/* Card-grid alignment safeguards */
.sp-grid { align-items: stretch; }
.sp-grid > * { align-self: stretch; min-width: 0; margin-top: 0 !important; }
.sp-grid > .sp-card { display: flex; flex-direction: column; justify-content: flex-start; }
.sp-grid > .sp-card > * + * { margin-top: .75rem; }
.sp-grid > .sp-card .sp-card__title { margin-top: 0 !important; }

/* Split section: comfortable gap, single column under 900px */
.wp-block-columns.sp-split { gap: clamp(2rem, 4vw, 3.5rem) !important; }
.wp-block-columns.sp-split .wp-block-column { min-width: 0; }
@media (max-width: 900px) {
  .wp-block-columns.sp-split { flex-wrap: wrap !important; }
  .wp-block-columns.sp-split .wp-block-column { flex-basis: 100% !important; }
}

/* CTA banner shell: full-bleed section that hosts the yellow alignwide card.
   Provides vertical rhythm + horizontal breathing room on narrow viewports. */
.sp-cta-banner__shell { padding-inline: clamp(1rem, 4vw, 2rem) !important; }
.sp-cta-banner__shell > .sp-cta-banner.alignwide { margin-inline: auto; }

/* Full-bleed map strip on the contact page */
.sp-map-section { position: relative; padding: 0 !important; line-height: 0; }
.sp-map-section .sp-map__frame { width: 100%; height: clamp(220px, 30vh, 320px); border: 0; display: block; }
.sp-contact-form { margin-top: clamp(3rem, 6vw, 5rem) !important; }

/* ---------- Contact form card ---------- */
.sp-form-card {
display: grid;
gap: 1rem;
background: var(--wp--preset--color--base, #fff);
border: 1px solid rgba(17,17,17,.07);
border-radius: var(--sp-radius-lg, 18px);
padding: clamp(1.5rem, 3vw, 2.25rem);
box-shadow: 0 12px 30px rgba(15,15,15,.06);
margin-top: 1.25rem;
}
.sp-form-row {
display: grid;
gap: 1rem;
grid-template-columns: 1fr 1fr;
}
@media (max-width: 600px) { .sp-form-row { grid-template-columns: 1fr; } }
.sp-field { display: flex; flex-direction: column; gap: .4rem; }
.sp-field__label {
font-size: .8rem;
font-weight: 600;
letter-spacing: .04em;
color: var(--wp--preset--color--ink, #1F1F1F);
}
.sp-field__hint {
font-weight: 500;
color: var(--wp--preset--color--muted, #A7A39B);
margin-left: .25rem;
}
.sp-field__input {
width: 100%;
font: inherit;
font-size: .95rem;
color: var(--wp--preset--color--ink, #1F1F1F);
background: #FBF9F4;
border: 1px solid rgba(17,17,17,.1);
border-radius: 12px;
padding: .75rem .9rem;
transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.sp-field__input::placeholder { color: rgba(31,31,31,.4); }
.sp-field__input:hover { border-color: rgba(17,17,17,.2); }
.sp-field__input:focus {
outline: none;
background: #fff;
border-color: var(--wp--preset--color--primary, #F5C542);
box-shadow: 0 0 0 4px rgba(245,197,66,.18);
}
textarea.sp-field__input { resize: vertical; min-height: 110px; }
.sp-form-card__submit {
margin-top: .25rem;
display: inline-flex;
align-items: center;
justify-content: center;
width: 100%;
background: linear-gradient(135deg, #F5C542 0%, #D9A928 100%);
color: var(--wp--preset--color--ink, #1F1F1F);
font-weight: 700;
letter-spacing: .01em;
font-size: 1rem;
padding: .95rem 1.5rem;
border: 0;
border-radius: 9999px;
cursor: pointer;
box-shadow: 0 8px 22px rgba(217,169,40,.32);
transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.sp-form-card__submit:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(217,169,40,.42); filter: brightness(1.02); }
.sp-form-card__submit:active { transform: translateY(0); }
.sp-form-card__note {
font-size: .8rem;
color: var(--wp--preset--color--muted, #A7A39B);
margin: .25rem 0 0 !important;
text-align: center;
}

/* ---------- Service cards (CPT-driven) ---------- */
.sp-services-grid { margin-top: 2.25rem !important; }
.sp-service-card {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
gap: .55rem;
background: var(--wp--preset--color--base, #fff);
border: 1px solid rgba(17,17,17,.06);
border-radius: var(--sp-radius-md, 14px);
padding: 1.75rem 1.5rem 1.5rem;
color: var(--wp--preset--color--ink, #1F1F1F);
text-decoration: none;
box-shadow: 0 6px 18px rgba(15,15,15,.05);
overflow: hidden;
height: 100%;
transition: transform .35s var(--sp-ease), box-shadow .35s var(--sp-ease), border-color .35s var(--sp-ease);
}
.sp-service-card::before {
content: "";
position: absolute;
inset: 0 0 auto 0;
height: 3px;
background: linear-gradient(90deg, #F5C542, #D9A928 60%, transparent);
opacity: .9;
}
.sp-service-card::after {
content: "";
position: absolute;
right: -3rem; bottom: -3rem;
width: 9rem; height: 9rem;
background: radial-gradient(circle, rgba(245,197,66,.18), transparent 70%);
border-radius: 50%;
pointer-events: none;
transition: transform .4s var(--sp-ease);
}
.sp-service-card:hover {
transform: translateY(-4px);
box-shadow: 0 16px 36px rgba(15,15,15,.10);
border-color: rgba(245,197,66,.5);
}
.sp-service-card:hover::after { transform: scale(1.15); }
.sp-service-card__eyebrow {
font-size: .7rem;
font-weight: 700;
letter-spacing: .14em;
text-transform: uppercase;
color: var(--wp--preset--color--ink, #1F1F1F);
}
.sp-service-card__title {
font-size: 1.25rem !important;
font-weight: 700 !important;
line-height: 1.25;
letter-spacing: -.01em;
margin: 0 !important;
color: var(--wp--preset--color--ink, #1F1F1F);
}
.sp-service-card__body {
font-size: .9rem !important;
line-height: 1.55;
color: var(--wp--preset--color--ink, #1F1F1F);
margin: 0 !important;
flex: 1;
}
.sp-service-card__cta {
margin-top: .5rem;
display: inline-flex;
align-items: center;
gap: .4rem;
font-size: .9rem;
font-weight: 800;
color: #D9A928;
text-transform: uppercase;
letter-spacing: .06em;
}
.sp-service-card__cta span { transition: transform .25s var(--sp-ease); }
.sp-service-card:hover .sp-service-card__cta span { transform: translateX(.35rem); }


/* =========================================================================
   FOOTER — brand/contact, services, about, hours + legal bar
   ========================================================================= */
.sp-footer {
	position: relative;
	margin-top: 0;
	padding: clamp(3.5rem, 7vw, 5.5rem) clamp(1.25rem, 4vw, 2.5rem) 0 !important;
	border-top: 1px solid var(--sp-border, rgba(255,255,255,.09));
	color: var(--sp-text-secondary, #C2CAD6);
}
.sp-footer::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 50%;
	width: min(320px, 50vw);
	height: 1px;
	transform: translateX(-50%);
	background: linear-gradient(90deg, transparent, var(--wp--preset--color--primary), transparent);
}
.sp-footer__main {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "brand" "services" "about" "hours";
	gap: 2.25rem;
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 0 clamp(2.5rem, 5vw, 4rem) !important;
}
/* Nested groups inherit a global inline padding; the grid owns spacing here. */
.sp-footer .sp-footer__col { padding: 0 !important; }
.sp-footer__brand          { grid-area: brand; }
.sp-footer__col--services  { grid-area: services; }
.sp-footer__col--about     { grid-area: about; }
.sp-footer__col--hours     { grid-area: hours; }

/* Column heading: small caps label + short gold rule. */
footer.sp-footer .sp-footer__heading {
	position: relative;
	margin: 0 0 1.25rem !important;
	padding-bottom: .85rem;
	font-size: .78rem !important;
	font-weight: 700;
	line-height: 1.2 !important;
	letter-spacing: .16em !important;
	text-transform: uppercase;
	text-align: left !important;
	color: var(--wp--preset--color--primary) !important;
}
footer.sp-footer .sp-footer__heading::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 1.75rem;
	height: 2px;
	border-radius: 2px;
	background: var(--wp--preset--color--primary);
	opacity: .75;
}

/* Brand column */
.sp-footer__brand {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.sp-footer .sp-footer__logo { margin: 0 0 1.5rem; }
.sp-footer .sp-footer__logo img {
	content: var(--sp-logo-white-url);
	width: 168px !important;
	max-width: 100%;
	height: auto !important;
}
footer.sp-footer .sp-footer__tagline {
	margin: 0 0 .6rem;
	font-size: clamp(1.25rem, 1.7vw, 1.5rem);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -.01em;
	color: var(--sp-text, #EAEEF3);
}
.sp-footer__tagline-accent { color: var(--wp--preset--color--primary); }
footer.sp-footer .sp-footer__summary {
	max-width: 36ch;
	margin: 0 0 1.75rem;
	font-size: .95rem;
	line-height: 1.65;
	color: var(--sp-text-muted, #94A0B0);
}

/* Contact variant: address + phone, CTA, socials */
.sp-footer-contact--contact {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.sp-footer-contact__list {
	display: grid;
	gap: .9rem;
	margin: 0 0 1.75rem;
	font-style: normal;
}
.sp-footer-contact__item {
	display: inline-flex;
	align-items: center;
	gap: .85rem;
	font-size: .95rem;
	line-height: 1.5;
	color: var(--sp-text-secondary, #C2CAD6);
	text-decoration: none;
	transition: color .2s ease;
}
.sp-footer-contact__item--phone {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--sp-text, #EAEEF3);
}
.sp-footer-contact__icon {
	display: inline-grid;
	place-items: center;
	flex: 0 0 auto;
	width: 38px;
	height: 38px;
	border: 1px solid var(--sp-border-strong, rgba(255,255,255,.18));
	border-radius: 50%;
	background: rgba(245,197,66,.06);
	color: var(--wp--preset--color--primary);
	transition: background .2s ease, border-color .2s ease;
}
a.sp-footer-contact__item:hover,
a.sp-footer-contact__item:focus-visible { color: var(--wp--preset--color--primary); }
a.sp-footer-contact__item:hover .sp-footer-contact__icon,
a.sp-footer-contact__item:focus-visible .sp-footer-contact__icon {
	border-color: var(--wp--preset--color--primary);
	background: rgba(245,197,66,.14);
}
.sp-footer .sp-footer-contact__schedule {
	margin: 0 0 1.75rem;
	padding: .9rem 1.6rem;
	font-size: .9rem;
	text-align: center;
}
.sp-footer-contact__social {
	display: flex;
	gap: .6rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.sp-footer-contact__social-link {
	display: inline-grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--sp-border-strong, rgba(255,255,255,.18));
	border-radius: 50%;
	color: var(--sp-text-secondary, #C2CAD6);
	transition: color .2s ease, background .2s ease, border-color .2s ease, transform .25s var(--sp-ease);
}
.sp-footer-contact__social-link:hover,
.sp-footer-contact__social-link:focus-visible {
	color: var(--sp-on-accent, #14181C);
	background: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
	transform: translateY(-2px);
}

/* Link columns (core/navigation) */
footer.sp-footer .sp-footer__navigation {
	font-size: .95rem;
	color: var(--sp-text-secondary, #C2CAD6);
}
.sp-footer__navigation .wp-block-navigation__container {
	flex-direction: column;
	align-items: flex-start;
	gap: .15rem !important;
	width: 100%;
}
.sp-footer__navigation .wp-block-navigation-item { min-width: 0; }
.sp-footer__navigation .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	padding: .4rem 0;
	line-height: 1.4;
	white-space: normal;
	text-decoration: none;
	transition: color .2s ease;
}
.sp-footer__navigation .wp-block-navigation-item__content::before {
	content: "";
	flex: 0 0 auto;
	width: 0;
	height: 1px;
	margin-right: 0;
	background: currentColor;
	transition: width .25s var(--sp-ease), margin-right .25s var(--sp-ease);
}
.sp-footer__navigation a:hover,
.sp-footer__navigation a:focus-visible { color: var(--wp--preset--color--primary); }
.sp-footer__navigation a:hover::before,
.sp-footer__navigation a:focus-visible::before {
	width: .85rem;
	margin-right: .5rem;
}
.sp-footer .sp-footer__nav-more { margin-top: .5rem; }
.sp-footer .sp-footer__nav-more > a {
	font-weight: 700;
	color: var(--wp--preset--color--primary);
}
.sp-footer .sp-footer__nav-more > a::after {
	content: "→";
	margin-left: .45rem;
	transition: transform .25s var(--sp-ease);
}
.sp-footer .sp-footer__nav-more > a:hover::after { transform: translateX(3px); }
.sp-footer a:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 4px;
	border-radius: 2px;
}

/* Hours variant: day / time rows */
.sp-footer-contact__hours {
	display: grid;
	margin: 0;
	font-size: .9rem;
}
.sp-footer-contact__hours-row {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: .55rem 0;
	border-bottom: 1px solid var(--sp-border, rgba(255,255,255,.09));
}
.sp-footer-contact__hours-row:last-child { border-bottom: 0; }
.sp-footer-contact__hours dt {
	font-weight: 600;
	color: var(--sp-text, #EAEEF3);
}
.sp-footer-contact__hours dd {
	margin: 0;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
	color: var(--sp-text-secondary, #C2CAD6);
}
.sp-footer-contact__hours-row.is-closed dt,
.sp-footer-contact__hours-row.is-closed dd { color: var(--sp-text-muted, #94A0B0); }

/* Bottom bar: legal links + copyright */
.sp-footer__bottom {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1.25rem;
	max-width: 1240px;
	margin: 0 auto;
	padding: 1.75rem 0 2rem !important;
	border-top: 1px solid var(--sp-border, rgba(255,255,255,.09));
}
.sp-footer__legal-nav {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .35rem 1.5rem;
	width: 100%;
	font-size: .8125rem;
}
.sp-footer__legal-nav a {
	position: relative;
	padding: .3rem 0;
	color: var(--sp-text-muted, #94A0B0);
	text-decoration: none;
	transition: color .2s ease;
}
.sp-footer__legal-nav a:hover { color: var(--wp--preset--color--primary); }
footer.sp-footer .sp-footer-contact--copyright {
	margin: 0;
	font-size: .8125rem;
	color: var(--sp-text-muted, #94A0B0);
}

/* Tablet: brand + hours on top, link columns below */
@media (min-width: 640px) {
	.sp-footer__main {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-areas:
			"brand    hours"
			"services about";
		gap: 3rem clamp(2rem, 5vw, 3.5rem);
	}
}
@media (min-width: 782px) {
	.sp-footer__bottom { align-items: center; }
	.sp-footer__legal-nav {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: .35rem 1.5rem;
	}
	.sp-footer__legal-nav a + a::before {
		content: "";
		position: absolute;
		left: calc(-.75rem - 1.5px);
		top: 50%;
		width: 3px;
		height: 3px;
		border-radius: 50%;
		background: var(--sp-border-strong, rgba(255,255,255,.18));
		transform: translateY(-50%);
	}
}
/* Desktop: four columns */
@media (min-width: 1100px) {
	.sp-footer__main {
		grid-template-columns: minmax(0, 1.45fr) minmax(0, 1.15fr) minmax(0, .85fr) minmax(0, 1fr);
		grid-template-areas: "brand services about hours";
		gap: 3rem clamp(2.5rem, 4vw, 4.5rem);
	}
}
@media (prefers-reduced-motion: reduce) {
	.sp-footer *,
	.sp-footer *::before,
	.sp-footer *::after { transition: none !important; }
}

/* ---------- CPT archive grid (services / conditions) ---------- */
.sp-archive-grid {
max-width: 1240px;
margin-inline: auto;
padding-inline: clamp(1rem, 4vw, 2.5rem);
}
.sp-archive-grid__header { text-align: center; margin-bottom: 3.5rem; }
.sp-archive-grid__heading {
font-size: clamp(2rem, 4vw, 3rem);
font-weight: 700;
line-height: 1.1;
margin: .5rem 0 0;
color: var(--wp--preset--color--ink, #1F1F1F);
}
.sp-archive-grid__group { margin-bottom: 4.5rem; }
.sp-archive-grid__group:last-child { margin-bottom: 0; }
.sp-archive-grid__group-title {
font-size: 1.15rem;
font-weight: 700;
letter-spacing: .08em;
text-transform: uppercase;
color: var(--wp--preset--color--ink, #1F1F1F);
border-bottom: 2px solid var(--wp--preset--color--primary, #F5C542);
padding-bottom: .65rem;
margin: 0 0 2rem;
}
.sp-archive-grid__list {
list-style: none;
margin: 0;
padding: 0;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 1.75rem;
}
.sp-archive-grid--curated .sp-archive-grid__list {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 1024px) {
	.sp-archive-grid--curated .sp-archive-grid__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 600px) {
	.sp-archive-grid--curated .sp-archive-grid__list {
		grid-template-columns: 1fr;
	}
}
.sp-archive-grid__card { margin: 0; }
.sp-archive-grid__card-link {
display: flex;
flex-direction: column;
gap: 0;
height: 100%;
background: #fff;
border: 1px solid #ededed;
border-radius: 16px;
text-decoration: none;
color: inherit;
overflow: hidden;
box-shadow: 0 1px 2px rgba(17,17,17,.03), 0 4px 12px rgba(17,17,17,.04);
transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s cubic-bezier(.2,.7,.2,1), border-color .3s cubic-bezier(.2,.7,.2,1);
}
.sp-archive-grid__card-link:hover {
transform: translateY(-4px);
box-shadow: 0 12px 28px rgba(17,17,17,.10);
border-color: var(--wp--preset--color--primary, #F5C542);
}
/* Uniform featured-image well — same 16/10 aspect for every card; image cropped,
   centered. When no image exists we fall back to a branded gradient so the
   grid still reads as a rhythmic, polished mosaic. */
.sp-archive-grid__card-media {
position: relative;
width: 100%;
aspect-ratio: 16 / 10;
overflow: hidden;
background:
	radial-gradient(60% 80% at 30% 30%, rgba(245,197,66,.25), transparent 70%),
	linear-gradient(135deg, #FBF8F1 0%, #F1EADA 100%);
}
.sp-archive-grid__card-media img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
transform: scale(1.001);
transition: transform .6s cubic-bezier(.2,.7,.2,1), filter .35s ease;
}
.sp-archive-grid__card-link:hover .sp-archive-grid__card-media img {
transform: scale(1.05);
filter: brightness(1.03);
}
.sp-archive-grid__card-media--placeholder::after {
content: "";
position: absolute;
inset: 0;
background-image: url("../images/placeholder-frame.svg");
background-repeat: no-repeat;
background-position: center;
background-size: 38%;
opacity: .35;
}
.sp-archive-grid__card-body-wrap {
display: flex;
flex-direction: column;
gap: .65rem;
padding: 1.35rem 1.4rem 1.5rem;
flex: 1;
}
.sp-archive-grid__card-title {
font-size: 1.1rem;
font-weight: 700;
line-height: 1.3;
margin: 0;
color: var(--wp--preset--color--ink, #1F1F1F);
/* Single-line clamp keeps every card's title row aligned regardless of title length. */
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.sp-archive-grid__card-body {
font-size: .92rem;
line-height: 1.55;
color: #555;
margin: 0;
flex: 1;
/* Truncate long excerpts so every card reaches the same height. */
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
}
.sp-archive-grid__card-cta {
font-size: .8rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .08em;
color: var(--wp--preset--color--ink, #1F1F1F);
margin-top: .25rem;
display: inline-flex;
align-items: center;
gap: .35rem;
transition: gap .25s ease, color .25s ease;
}
.sp-archive-grid__card-link:hover .sp-archive-grid__card-cta {
gap: .65rem;
color: var(--wp--preset--color--primary-hover, #D9A928);
}

/* ---------- Concerns we hear (designed mosaic) ---------- */
.sp-concerns-section { position: relative; overflow: hidden; }
.sp-concerns {
  position: relative;
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2rem);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2.25rem;
  z-index: 1;
}
.sp-concerns__head {
  position: relative;
  text-align: center;
  max-width: 760px;
  margin: 0 auto;
}
.sp-concerns__title {
  font-size: clamp(1.9rem, 3.4vw, 2.75rem);
  line-height: 1.1;
  font-weight: 800;
  margin: .35rem 0 1rem;
  color: var(--wp--preset--color--ink, #1F1F1F);
  position: relative;
  padding-bottom: 1rem;
}
.sp-concerns__title::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  width: 72px; height: 6px;
  background: var(--wp--preset--color--primary, #F5C542);
  border-radius: 999px;
}
.sp-concerns__lead {
  margin: 0 auto;
  color: #555;
  font-size: 1.05rem;
  line-height: 1.55;
  max-width: 56ch;
}

/* halftone dots + corner halo */
.sp-concerns__halo {
  position: absolute;
  width: 360px; height: 360px;
  right: -120px; top: -120px;
  background: radial-gradient(closest-side, rgba(245,197,66,.45), rgba(245,197,66,0) 70%);
  filter: blur(8px);
  pointer-events: none;
  z-index: 0;
}
.sp-concerns__dots {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(31,31,31,.10) 1px, transparent 1.4px);
  background-size: 14px 14px;
  background-position: 0 0;
  -webkit-mask-image: linear-gradient(135deg, rgba(0,0,0,.35), rgba(0,0,0,0) 60%);
          mask-image: linear-gradient(135deg, rgba(0,0,0,.35), rgba(0,0,0,0) 60%);
  pointer-events: none;
  z-index: 0;
}

.sp-concerns__list {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  align-content: flex-start;
  justify-items: stretch;
  width: 100%;
}
@media (min-width: 640px)  { .sp-concerns__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; } }
@media (min-width: 1100px) { .sp-concerns__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; } }

/* Premium concern card — same treatment for all */
.sp-concern {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.1rem;
  align-items: start;
  padding: 1.25rem 1.4rem 1.3rem;
  background:
    linear-gradient(180deg, #ffffff 0%, #FBFAF6 100%);
  border: 1px solid rgba(31,31,31,.08);
  border-radius: 16px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 1px 2px rgba(31,31,31,.04),
    0 12px 28px rgba(31,31,31,.06);
  overflow: hidden;
  isolation: isolate;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.sp-concern::before {
  /* yellow accent bar on the left */
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, #F5C542, #D9A928);
  z-index: 1;
}
.sp-concern__texture {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(rgba(31,31,31,.08) 1px, transparent 1.4px),
    radial-gradient(circle at 100% 0%, rgba(245,197,66,.18), rgba(245,197,66,0) 55%);
  background-size: 12px 12px, auto;
  background-position: 0 0, 100% 0;
  -webkit-mask-image: linear-gradient(135deg, rgba(0,0,0,.55), rgba(0,0,0,0) 70%);
          mask-image: linear-gradient(135deg, rgba(0,0,0,.55), rgba(0,0,0,0) 70%);
  pointer-events: none;
  z-index: 0;
}
.sp-concern:hover {
  transform: translateY(-3px);
  border-color: rgba(245,197,66,.55);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 2px 4px rgba(31,31,31,.05),
    0 18px 36px rgba(31,31,31,.10);
}

.sp-concern__icon {
  position: relative;
  z-index: 2;
  width: 56px;
  height: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: linear-gradient(135deg, #FFF6DB 0%, #FCE9A6 100%);
  color: #8A6A12;
  border: 1px solid rgba(217,169,40,.35);
  box-shadow:
    0 1px 0 rgba(255,255,255,.8) inset,
    0 6px 14px rgba(217,169,40,.18);
  flex-shrink: 0;
}
.sp-concern__icon svg { width: 28px; height: 28px; display: block; }

.sp-concern__body {
  position: relative;
  z-index: 2;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: .65rem;
}
.sp-concern__title {
  margin: 0;
  font-size: 1.15rem;
  line-height: 1.25;
  font-weight: 700;
  color: var(--wp--preset--color--ink, #1F1F1F);
  letter-spacing: -0.005em;
}
.sp-concern__quote {
  display: none !important;
}
.sp-concern__quote--open  { margin-right: .15em; }
.sp-concern__quote--close { margin-left: .15em; }

/* Brief description that replaces the old 5-tag list. */
.sp-concern__desc {
  margin: 0;
  color: #555;
  font-size: .95rem;
  line-height: 1.5;
}

.sp-concern__tags {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .4rem;
}
.sp-concern__tag {
  display: inline-block;
  padding: .28rem .65rem;
  background: rgba(31,31,31,.04);
  color: #444;
  border: 1px solid rgba(31,31,31,.08);
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .01em;
  white-space: nowrap;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.sp-concern__tag:nth-child(1) {
  background: linear-gradient(180deg, #FFF6DB, #FCE9A6);
  color: #6B4F08;
  border-color: rgba(217,169,40,.45);
}
.sp-concern:hover .sp-concern__tag {
  background: rgba(245,197,66,.10);
  border-color: rgba(245,197,66,.35);
  color: #2a2a2a;
}

@media (prefers-reduced-motion: reduce) {
  .sp-concern, .sp-concern:hover { transform: none !important; transition: none; }
}

/* ============================================================================
 * Site header — brand (logo) + primary nav + actions card
 * ========================================================================= */

.sp-site-header { z-index: 50; }

.sp-site-header__inner {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: space-between !important;
	flex-wrap: nowrap !important;
	gap: 1.5rem;
	width: 100%;
}

/* Brand: hide site title text when a custom logo is uploaded */
.sp-site-header__brand {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex: 0 0 auto;
}
.sp-site-header__brand .wp-block-site-logo {
	margin: 0;
	line-height: 0;
}
.sp-site-header__brand .wp-block-site-logo img {
	display: block;
	max-height: 56px;
	width: auto;
	height: auto;
}
.sp-site-header__brand .wp-block-site-logo + .wp-block-site-title {
	/* Hide redundant text when a logo is present (CSS-only fallback) */
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
.sp-site-header__brand .wp-block-site-title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	font-weight: 700;
	font-size: 1.125rem;
	letter-spacing: -0.01em;
}

/* ============================================================================
 * Primary navbar (abundant-health/primary-nav)
 * ========================================================================= */

.sp-navbar {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	flex: 1 1 auto;
	justify-content: flex-end;
	min-width: 0;
}

.sp-navbar__nav { display: flex; align-items: center; }

.sp-navbar__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 0.15rem;
}

.sp-navbar__menu > .menu-item { position: relative; }

.sp-navbar__menu > .menu-item > a {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.55rem 0.8rem;
	color: var(--wp--preset--color--ink);
	font-weight: 500;
	font-size: 0.95rem;
	text-decoration: none;
	border-radius: 8px;
	white-space: nowrap;
	transition: color 150ms ease, background-color 150ms ease;
}
.sp-navbar__menu > .menu-item > a:hover,
.sp-navbar__menu > .menu-item.current-menu-item > a {
	color: var(--wp--preset--color--primary-hover);
	background-color: var(--wp--preset--color--warm-grey);
}

.sp-navbar__menu .nav-dropdown-icon { transition: transform 200ms ease; }
.sp-navbar__menu > .menu-item-has-children:hover > a .nav-dropdown-icon,
.sp-navbar__menu > .menu-item-has-children:focus-within > a .nav-dropdown-icon,
.sp-navbar__menu > .menu-item-has-children.is-open > a .nav-dropdown-icon {
	transform: rotate(180deg);
}

/* Standard sub-menu (single column) — wider and wrapping for long labels */
.sp-navbar__menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0.5rem 0;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 280px;
	max-width: 360px;
	background-color: #ffffff;
	border: 1px solid #EDEDED;
	border-radius: 14px;
	box-shadow: 0 24px 48px -16px rgba(15, 15, 15, 0.18);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity 150ms ease, transform 150ms ease, visibility 150ms ease;
	z-index: 60;
}
.sp-navbar__menu > .menu-item-has-children:hover > .sub-menu,
.sp-navbar__menu > .menu-item-has-children:focus-within > .sub-menu,
.sp-navbar__menu > .menu-item-has-children.is-open > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.sp-navbar__menu .sub-menu .menu-item > a {
	display: block;
	padding: 0.6rem 1rem;
	color: var(--wp--preset--color--ink);
	font-size: 0.92rem;
	line-height: 1.35;
	text-decoration: none;
	white-space: normal;        /* allow wrap for long titles */
	word-break: break-word;
	transition: background-color 120ms ease, color 120ms ease;
}
.sp-navbar__menu .sub-menu .menu-item > a:hover {
	background-color: var(--wp--preset--color--warm-grey);
	color: var(--wp--preset--color--primary-hover);
}

/* Mega dropdown — multi-column, grouped */
.sp-navbar__menu .mega-dropdown {
	display: grid;
	grid-template-columns: repeat(3, minmax(220px, 1fr));
	gap: 1.5rem 2rem;
	padding: 1.5rem 1.75rem;
	min-width: 760px;
	max-width: min(94vw, 1080px);
	left: 50%;
	transform: translate(-50%, 6px);
}
.sp-navbar__menu > .menu-item-has-children:hover > .mega-dropdown,
.sp-navbar__menu > .menu-item-has-children:focus-within > .mega-dropdown,
.sp-navbar__menu > .menu-item-has-children.is-open > .mega-dropdown {
	transform: translate(-50%, 0);
}
.sp-navbar__menu .mega-dropdown__group { display: flex; flex-direction: column; gap: 0.5rem; min-width: 0; }
.sp-navbar__menu .mega-dropdown__title {
	display: block;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	padding: 0 0.25rem 0.4rem;
	border-bottom: 1px solid #F0EFEA;
}
.sp-navbar__menu .mega-dropdown__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.sp-navbar__menu .mega-dropdown__list .menu-item > a {
	padding: 0.45rem 0.5rem;
	font-size: 0.92rem;
	line-height: 1.35;
	border-radius: 8px;
	white-space: normal;
	word-break: break-word;
}

/* CTA pill */
.sp-navbar__menu-cta > a {
	display: inline-block;
	background-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--ink) !important;
	padding: 0.55rem 1.25rem !important;
	border-radius: 9999px;
	font-weight: 600;
	transition: background-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}
.sp-navbar__menu-cta > a:hover {
	background-color: var(--wp--preset--color--primary-hover) !important;
	transform: translateY(-1px);
	box-shadow: 0 8px 18px -8px rgba(217, 169, 40, 0.55);
}

/* ----------------------------------------------------------------------------
 * Actions card — phone + social (rounded panel sitting flush with the nav)
 * ------------------------------------------------------------------------- */

.sp-navbar__actions {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	padding: 0.4rem 0.65rem 0.4rem 0.85rem;
	background-color: var(--wp--preset--color--warm-grey);
	border: 1px solid #EDEDED;
	border-radius: 9999px 14px 14px 9999px;  /* asymmetric: rounded left, softer right */
	box-shadow: inset 0 -1px 0 rgba(15, 15, 15, 0.04);
	flex: 0 0 auto;
}

.sp-navbar__phone {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	padding-right: 0.65rem;
	border-right: 1px solid #E5E2DA;
}
.sp-navbar__phone svg {
	color: var(--wp--preset--color--primary-hover);
	flex-shrink: 0;
}
.sp-navbar__phone:hover { color: var(--wp--preset--color--primary-hover); }

.sp-navbar__social {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 0.35rem;
}
.sp-navbar__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 9px;
	background-color: #ffffff;
	color: var(--wp--preset--color--ink);
	border: 1px solid #EDEDED;
	transition: background-color 150ms ease, color 150ms ease, transform 150ms ease, border-color 150ms ease;
}
.sp-navbar__social a:hover {
	background-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--primary);
	transform: translateY(-1px);
}

/* ----------------------------------------------------------------------------
 * Mobile toggle (hamburger)
 * ------------------------------------------------------------------------- */

.sp-navbar__toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 42px;
	height: 42px;
	padding: 0 10px;
	margin: 0;
	background-color: transparent;
	border: 1px solid #EDEDED;
	border-radius: 10px;
	cursor: pointer;
	transition: background-color 150ms ease, border-color 150ms ease;
}
.sp-navbar__toggle:hover { background-color: var(--wp--preset--color--warm-grey); }
.sp-navbar__toggle-bar {
	display: block;
	width: 100%;
	height: 2px;
	background-color: var(--wp--preset--color--ink);
	border-radius: 2px;
	transition: transform 200ms ease, opacity 150ms ease;
}
.sp-navbar.is-open .sp-navbar__toggle-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.sp-navbar.is-open .sp-navbar__toggle-bar:nth-child(2) { opacity: 0; }
.sp-navbar.is-open .sp-navbar__toggle-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

body.sp-nav-locked { overflow: hidden; }

/* ----------------------------------------------------------------------------
 * Responsive breakpoints
 * ------------------------------------------------------------------------- */

@media (max-width: 1280px) {
	.sp-navbar__menu > .menu-item > a { padding: 0.5rem 0.55rem; font-size: 0.9rem; }
	.sp-navbar__menu .mega-dropdown {
		min-width: 0;
		width: min(960px, 94vw);
		max-width: 94vw;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		padding: 1.25rem 1.5rem;
		gap: 1.25rem 1.5rem;
	}
}

@media (max-width: 1140px) {
	.sp-navbar__phone span { display: none; }
	.sp-navbar__phone { padding-right: 0.45rem; }
}

@media (max-width: 1024px) {
	.sp-navbar__menu .mega-dropdown {
		width: min(720px, 94vw);
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.sp-navbar__menu .mega-dropdown__list a { font-size: 0.82rem; padding: 0.5rem 0.7rem; }
}

@media (max-width: 960px) {
	.sp-navbar__toggle { display: flex; }

	.sp-navbar__nav {
		display: none;
		position: fixed;
		left: 0;
		right: 0;
		top: var(--sp-header-h, 72px);
		bottom: 0;
		width: 100%;
		height: auto;
		max-height: calc(100vh - var(--sp-header-h, 72px));
		max-height: calc(100dvh - var(--sp-header-h, 72px));
		background-color: #ffffff;
		padding: 1.25rem 1.25rem calc(2.5rem + env(safe-area-inset-bottom, 0px));
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
		z-index: 90;
		border-top: 1px solid #EDEDED;
		box-shadow: 0 12px 24px -8px rgba(15, 15, 15, 0.08);
	}
	.sp-navbar.is-open .sp-navbar__nav {
		display: flex !important;
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		gap: 0;
	}

	.sp-navbar__menu {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		gap: 0.15rem;
	}
	.sp-navbar__menu > .menu-item { width: 100%; }
	.sp-navbar__menu > .menu-item > a {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 0.95rem 0.85rem;
		font-size: 1rem;
		border-bottom: 1px solid #F0F0EE;
		border-radius: 0;
	}
	.sp-navbar__menu > .menu-item.sp-navbar__menu-cta { margin-top: 1rem; }
	.sp-navbar__menu > .menu-item.sp-navbar__menu-cta > a {
		justify-content: center;
		background: var(--wp--preset--color--primary, #1F1F1F);
		color: #fff;
		border-radius: 9999px;
		border-bottom: 0;
		padding: 0.95rem 1.25rem;
	}

	.sp-navbar__menu .sub-menu,
	.sp-navbar__menu .mega-dropdown {
		position: static;
		display: none;
		opacity: 1;
		visibility: visible;
		transform: none;
		width: auto;
		min-width: 0;
		max-width: none;
		box-shadow: none;
		border: none;
		border-left: 2px solid var(--wp--preset--color--primary);
		border-radius: 0;
		margin: 0 0 0.5rem 0.5rem;
		padding: 0.4rem 0 0.6rem 0.85rem;
		background-color: transparent;
		grid-template-columns: 1fr;
		gap: 0.85rem;
	}
	.sp-navbar__menu .menu-item-has-children.is-open > .sub-menu,
	.sp-navbar__menu .menu-item-has-children.is-open > .mega-dropdown {
		display: block;
	}
	.sp-navbar__menu .mega-dropdown__title {
		border-bottom: none;
		padding: 0.25rem 0;
		font-size: 0.7rem;
	}
	.sp-navbar__menu .mega-dropdown__list a {
		padding: 0.55rem 0.6rem;
		font-size: 0.95rem;
	}

	.sp-navbar__actions {
		margin-left: auto;
		gap: 0.4rem;
		padding: 0.3rem 0.45rem;
		border-radius: 9999px;
	}
	.sp-navbar__phone { border-right: none; padding-right: 0.25rem; }
	.sp-navbar__social a { width: 28px; height: 28px; }
}

@media (max-width: 480px) {
	.sp-site-header__brand .wp-block-site-logo img { max-height: 44px; }
	.sp-navbar__actions .sp-navbar__social { display: none; }
}



/* ----------------------------------------------------------------------------
 * Global heading alignment + rhythm
 * Centers every Gutenberg core heading (.wp-block-heading) and adds breathing
 * room before the content that follows. Card-internal titles (.sp-*-card__title,
 * .sp-card__title, etc.) keep their own alignment because they don't carry the
 * .wp-block-heading class.
 * ------------------------------------------------------------------------- */
.wp-block-post-content .wp-block-heading,
.wp-block-group .wp-block-heading,
.wp-block-cover .wp-block-heading {
text-align: center;
margin-left: auto;
margin-right: auto;
}

/* Lead paragraph that follows a centered heading */
.wp-block-post-content .wp-block-heading + p,
.wp-block-group .wp-block-heading + p {
text-align: center;
max-width: 65ch;
margin-left: auto;
margin-right: auto;
}

/* Spacing between a section heading and the cards/grid that follow it */
.wp-block-heading + .wp-block-columns,
.wp-block-heading + .wp-block-buttons,
.wp-block-heading + .wp-block-group,
.wp-block-heading + .wp-block-gallery,
.wp-block-heading + .sp-benefit-cards,
.wp-block-heading + .sp-concerns__list,
.wp-block-heading + .sp-card-grid,
.wp-block-heading + .sp-grid,
.wp-block-heading + .sp-features,
.wp-block-heading + .sp-pillars,
.wp-block-heading + ul,
.wp-block-heading + ol,
.wp-block-heading + p + .wp-block-columns,
.wp-block-heading + p + .wp-block-buttons,
.wp-block-heading + p + .wp-block-group,
.wp-block-heading + p + .sp-benefit-cards,
.wp-block-heading + p + .sp-concerns__list,
.wp-block-heading + p + .sp-card-grid,
.wp-block-heading + p + .sp-grid,
.wp-block-heading + p + .sp-features,
.wp-block-heading + p + .sp-pillars {
margin-top: clamp(2rem, 4vw, 3.25rem) !important;
}

/* Override: keep card-level headings left-aligned where the card itself is left-aligned */
.sp-card .wp-block-heading,
.sp-benefit-card .wp-block-heading,
.sp-feature .wp-block-heading,
.sp-pillar .wp-block-heading,
.sp-concern .wp-block-heading {
text-align: inherit;
}

/* Opt-out: any heading the editor explicitly aligned left/right wins */
.wp-block-heading.has-text-align-left  { text-align: left  !important; margin-left: 0;  margin-right: auto; }
.wp-block-heading.has-text-align-right { text-align: right !important; margin-left: auto; margin-right: 0; }

/* ----------------------------------------------------------------------------
 * Global card centering -- every card variant centers its content
 * ------------------------------------------------------------------------- */
.sp-card,
.sp-benefit-card,
.sp-feature,
.sp-pillar,
.sp-concern,
.sp-card--note {
align-items: center;
text-align: center;
}
.sp-card .sp-card__title,
.sp-card .sp-card__body,
.sp-card .sp-card__cta,
.sp-benefit-card .sp-benefit-card__title,
.sp-benefit-card .sp-benefit-card__desc,
.sp-feature .sp-feature__title,
.sp-feature .sp-feature__body,
.sp-pillar .sp-pillar__title,
.sp-pillar .sp-pillar__body,
.sp-concern .sp-concern__title,
.sp-concern .sp-concern__desc {
text-align: center;
}

/* ----------------------------------------------------------------------------
 * Global card centering -- every card variant centers its content
 * ------------------------------------------------------------------------- */
.sp-card,
.sp-benefit-card,
.sp-feature,
.sp-pillar,
.sp-concern,
.sp-card--note {
align-items: center;
text-align: center;
}
.sp-card .sp-card__title,
.sp-card .sp-card__body,
.sp-card .sp-card__cta,
.sp-benefit-card .sp-benefit-card__title,
.sp-benefit-card .sp-benefit-card__desc,
.sp-feature .sp-feature__title,
.sp-feature .sp-feature__body,
.sp-pillar .sp-pillar__title,
.sp-pillar .sp-pillar__body,
.sp-concern .sp-concern__title,
.sp-concern .sp-concern__desc {
text-align: center;
}

/* ----------------------------------------------------------------------------
 * "Continue exploring" link cards (.sp-card--link)
 * Black titles, gold "Explore" CTA, centered content.
 * ------------------------------------------------------------------------- */
.sp-card--link {
display: flex !important;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
gap: .65rem;
text-decoration: none;
color: var(--wp--preset--color--ink, #1F1F1F) !important;
}
.sp-card--link .sp-card__title {
color: var(--wp--preset--color--ink, #1F1F1F) !important;
font-weight: 700;
margin: 0 !important;
}
.sp-card--link .sp-card__cta {
display: inline-flex;
align-items: center;
gap: .35rem;
color: #D9A928 !important;
font-weight: 800;
letter-spacing: .06em;
text-transform: uppercase;
font-size: .85rem;
transition: transform .25s var(--sp-ease);
}
.sp-card--link:hover .sp-card__cta { transform: translateX(.25rem); }

/* ----------------------------------------------------------------------------
 * "Continue exploring" link cards (.sp-card--link)
 * Black titles, gold "Explore" CTA, centered content.
 * ------------------------------------------------------------------------- */
.sp-card--link {
display: flex !important;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
gap: .65rem;
text-decoration: none;
color: var(--wp--preset--color--ink, #1F1F1F) !important;
}
.sp-card--link .sp-card__title {
color: var(--wp--preset--color--ink, #1F1F1F) !important;
font-weight: 700;
margin: 0 !important;
}
.sp-card--link .sp-card__cta {
display: inline-flex;
align-items: center;
gap: .35rem;
color: #D9A928 !important;
font-weight: 800;
letter-spacing: .06em;
text-transform: uppercase;
font-size: .85rem;
transition: transform .25s var(--sp-ease);
}
.sp-card--link:hover .sp-card__cta { transform: translateX(.25rem); }

/* ----------------------------------------------------------------------------
 * "Continue Exploring" — single horizontal row, full screen width
 * Cards stretch to share the row equally; wraps on tablet/mobile.
 * ------------------------------------------------------------------------- */
.sp-explore-row {
display: flex !important;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
align-items: stretch;
gap: clamp(1rem, 1.6vw, 1.5rem);
width: 100%;
max-width: none !important;
margin-left: auto !important;
margin-right: auto !important;
margin-top: clamp(1.75rem, 3vw, 2.75rem) !important;
padding-left: clamp(1rem, 4vw, 3rem);
padding-right: clamp(1rem, 4vw, 3rem);
box-sizing: border-box;
}
.sp-explore-row > * {
flex: 1 1 0;
min-width: 0;
margin-top: 0 !important;
}
@media (max-width: 1100px) {
.sp-explore-row > * { flex-basis: calc(33.333% - 1rem); }
}
@media (max-width: 860px) {
.sp-explore-row > * { flex-basis: calc(50% - .75rem); }
}
@media (max-width: 560px) {
.sp-explore-row { flex-direction: column; }
.sp-explore-row > * { flex-basis: auto; width: 100%; }
}

/* ----------------------------------------------------------------------------
 * "Continue Exploring" — single horizontal row, full screen width
 * Cards stretch to share the row equally; wraps on tablet/mobile.
 * ------------------------------------------------------------------------- */
.sp-explore-row {
display: flex !important;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
align-items: stretch;
gap: clamp(1rem, 1.6vw, 1.5rem);
width: 100%;
max-width: none !important;
margin-left: auto !important;
margin-right: auto !important;
margin-top: clamp(1.75rem, 3vw, 2.75rem) !important;
padding-left: clamp(1rem, 4vw, 3rem);
padding-right: clamp(1rem, 4vw, 3rem);
box-sizing: border-box;
}
.sp-explore-row > * {
flex: 1 1 0;
min-width: 0;
margin-top: 0 !important;
}
@media (max-width: 1100px) {
.sp-explore-row > * { flex-basis: calc(33.333% - 1rem); }
}
@media (max-width: 860px) {
.sp-explore-row > * { flex-basis: calc(50% - .75rem); }
}
@media (max-width: 560px) {
.sp-explore-row { flex-direction: column; }
.sp-explore-row > * { flex-basis: auto; width: 100%; }
}

/* ----------------------------------------------------------------------------
 * Center every heading/header inside any card variant
 * ------------------------------------------------------------------------- */
.sp-card h1, .sp-card h2, .sp-card h3, .sp-card h4, .sp-card h5, .sp-card h6,
.sp-card .sp-card__title, .sp-card .sp-card__eyebrow, .sp-card .wp-block-heading,
.sp-benefit-card h1, .sp-benefit-card h2, .sp-benefit-card h3, .sp-benefit-card h4, .sp-benefit-card h5, .sp-benefit-card h6,
.sp-benefit-card .sp-benefit-card__title, .sp-benefit-card .wp-block-heading,
.sp-service-card h1, .sp-service-card h2, .sp-service-card h3, .sp-service-card h4, .sp-service-card h5, .sp-service-card h6,
.sp-service-card .sp-service-card__title, .sp-service-card .sp-service-card__eyebrow, .sp-service-card .wp-block-heading,
.sp-feature h1, .sp-feature h2, .sp-feature h3, .sp-feature h4, .sp-feature h5, .sp-feature h6,
.sp-feature .sp-feature__title, .sp-feature .wp-block-heading,
.sp-pillar h1, .sp-pillar h2, .sp-pillar h3, .sp-pillar h4, .sp-pillar h5, .sp-pillar h6,
.sp-pillar .sp-pillar__title, .sp-pillar .wp-block-heading,
.sp-concern h1, .sp-concern h2, .sp-concern h3, .sp-concern h4, .sp-concern h5, .sp-concern h6,
.sp-concern .sp-concern__title, .sp-concern .wp-block-heading,
.sp-step h1, .sp-step h2, .sp-step h3, .sp-step h4, .sp-step h5, .sp-step h6,
.sp-step .sp-step__title, .sp-step .wp-block-heading {
text-align: center !important;
margin-left: auto !important;
margin-right: auto !important;
}

/* ----------------------------------------------------------------------------
 * Center every heading/header inside any card variant
 * ------------------------------------------------------------------------- */
.sp-card h1, .sp-card h2, .sp-card h3, .sp-card h4, .sp-card h5, .sp-card h6,
.sp-card .sp-card__title, .sp-card .sp-card__eyebrow, .sp-card .wp-block-heading,
.sp-benefit-card h1, .sp-benefit-card h2, .sp-benefit-card h3, .sp-benefit-card h4, .sp-benefit-card h5, .sp-benefit-card h6,
.sp-benefit-card .sp-benefit-card__title, .sp-benefit-card .wp-block-heading,
.sp-service-card h1, .sp-service-card h2, .sp-service-card h3, .sp-service-card h4, .sp-service-card h5, .sp-service-card h6,
.sp-service-card .sp-service-card__title, .sp-service-card .sp-service-card__eyebrow, .sp-service-card .wp-block-heading,
.sp-feature h1, .sp-feature h2, .sp-feature h3, .sp-feature h4, .sp-feature h5, .sp-feature h6,
.sp-feature .sp-feature__title, .sp-feature .wp-block-heading,
.sp-pillar h1, .sp-pillar h2, .sp-pillar h3, .sp-pillar h4, .sp-pillar h5, .sp-pillar h6,
.sp-pillar .sp-pillar__title, .sp-pillar .wp-block-heading,
.sp-concern h1, .sp-concern h2, .sp-concern h3, .sp-concern h4, .sp-concern h5, .sp-concern h6,
.sp-concern .sp-concern__title, .sp-concern .wp-block-heading,
.sp-step h1, .sp-step h2, .sp-step h3, .sp-step h4, .sp-step h5, .sp-step h6,
.sp-step .sp-step__title, .sp-step .wp-block-heading {
text-align: center !important;
margin-left: auto !important;
margin-right: auto !important;
}
/* ===== Primary nav: phone + social =================================== */
.sp-navbar__contact {
display: flex;
align-items: center;
gap: .9rem;
margin-left: 1rem;
padding-left: 1rem;
border-left: 1px solid color-mix(in srgb, currentColor 18%, transparent);
}
.sp-navbar__phone {
display: inline-flex;
align-items: center;
gap: .4rem;
font-weight: 600;
font-size: .95rem;
letter-spacing: .01em;
color: inherit;
text-decoration: none;
white-space: nowrap;
transition: color .15s ease;
}
.sp-navbar__phone:hover,
.sp-navbar__phone:focus-visible { color: var(--wp--preset--color--accent, #d4a017); }
.sp-navbar__phone svg { flex: 0 0 auto; }

.sp-navbar__social {
list-style: none;
margin: 0;
padding: 0;
display: inline-flex;
align-items: center;
gap: .35rem;
}
.sp-navbar__social li { margin: 0; }
.sp-navbar__social-link {
display: inline-flex;
align-items: center;
justify-content: center;
width: 34px;
height: 34px;
border-radius: 999px;
color: inherit;
background: transparent;
transition: background .15s ease, color .15s ease, transform .15s ease;
text-decoration: none;
}
.sp-navbar__social-link:hover,
.sp-navbar__social-link:focus-visible {
color: var(--wp--preset--color--accent, #d4a017);
background: color-mix(in srgb, currentColor 10%, transparent);
transform: translateY(-1px);
}
.sp-navbar__social-link svg { display: block; }

/* Mobile: stack neatly inside the slide-down panel */
@media (max-width: 900px) {
.sp-navbar__contact {
flex-direction: column;
align-items: flex-start;
gap: .75rem;
margin: 1rem 0 0;
padding: 1rem 0 0;
border-left: 0;
border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent);
width: 100%;
}
.sp-navbar__phone { font-size: 1.05rem; }
.sp-navbar__social { gap: .5rem; }
}
/* ===== Two-row primary nav ============================================ */
.sp-navbar {
flex-direction: column;
align-items: stretch;
justify-content: flex-start;
gap: .35rem;
}
.sp-navbar__row {
display: flex;
align-items: center;
width: 100%;
}
.sp-navbar__row--top {
justify-content: flex-end;
gap: 1rem;
padding-bottom: .35rem;
border-bottom: 1px solid color-mix(in srgb, currentColor 10%, transparent);
}
.sp-navbar__row--main {
justify-content: flex-end;
gap: 1rem;
padding-top: .25rem;
}
/* Top row: drop the divider/border the contact group used in single-row mode */
.sp-navbar__row--top .sp-navbar__contact {
margin-left: 0;
padding-left: 0;
border-left: 0;
}
/* Tighten menu items so labels fit evenly without crowding */
.sp-navbar__row--main .sp-navbar__menu { gap: .15rem; }
.sp-navbar__row--main .sp-navbar__menu > li > a {
font-size: .78rem;
letter-spacing: .06em;
padding: .55rem .7rem;
}

/* Hide the duplicate mobile contact when on desktop */
.sp-navbar__contact-mobile { display: none; }

@media (max-width: 900px) {
/* Mobile: hide top utility row; contact appears inside slide-down */
.sp-navbar__row--top { display: none; }
.sp-navbar__row--main { padding-top: 0; gap: .5rem; }
.sp-navbar__contact-mobile { display: block; }
}
/* ===== Two-row primary nav v2: menu on top, contact below, CTA spans ==== */
.sp-navbar {
display: grid;
grid-template-columns: 1fr auto;
grid-template-rows: auto auto;
column-gap: 1.25rem;
row-gap: .35rem;
align-items: center;
flex: 1;
}
.sp-navbar__row {
display: flex;
align-items: center;
width: 100%;
min-width: 0;
}
.sp-navbar__row--main {
grid-column: 1 / 2;
grid-row: 1 / 2;
justify-content: flex-end;
padding-bottom: .35rem;
border-bottom: 1px solid color-mix(in srgb, currentColor 10%, transparent);
}
.sp-navbar__row--bottom {
grid-column: 1 / 2;
grid-row: 2 / 3;
justify-content: flex-end;
padding-top: .25rem;
}
/* CTA spans both rows on the right */
.sp-navbar__cta {
grid-column: 2 / 3;
grid-row: 1 / 3;
display: inline-flex;
align-items: center;
justify-content: center;
align-self: stretch;
padding: 1rem 1.6rem;
min-height: 100%;
font-size: .95rem;
font-weight: 700;
letter-spacing: .08em;
text-transform: uppercase;
text-decoration: none;
color: var(--wp--preset--color--ink, #1F1F1F);
background: var(--wp--preset--color--accent, #d4a017);
border-radius: 10px;
white-space: nowrap;
transition: background .15s ease, transform .15s ease, box-shadow .15s ease;
box-shadow: 0 2px 0 color-mix(in srgb, #000 12%, transparent);
}
.sp-navbar__cta:hover,
.sp-navbar__cta:focus-visible {
background: color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 88%, #000);
transform: translateY(-1px);
box-shadow: 0 4px 10px color-mix(in srgb, #000 18%, transparent);
}
/* Top row's contact group: drop the leftover left-divider styling */
.sp-navbar__row--bottom .sp-navbar__contact {
margin-left: 0;
padding-left: 0;
border-left: 0;
}
/* Tight, even spacing on the menu */
.sp-navbar__row--main .sp-navbar__menu { gap: .15rem; }
.sp-navbar__row--main .sp-navbar__menu > li > a {
font-size: .78rem;
letter-spacing: .06em;
padding: .55rem .7rem;
}

@media (max-width: 900px) {
.sp-navbar {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
gap: .5rem;
}
.sp-navbar__row--bottom { display: none; }
.sp-navbar__cta {
padding: .65rem 1rem;
font-size: .85rem;
min-height: 0;
}
}
/* ===== Primary nav CTA: contained, glassy premium hover ================ */
.sp-navbar { position: relative; }
.sp-navbar__cta {
/* Reset prior stretch/min-height that caused overflow */
align-self: center;
min-height: 0;
height: auto;
max-height: 100%;
/* Sizing: feels substantial but stays inside the navbar */
padding: .85rem 1.5rem;
font-size: .95rem;
line-height: 1.1;
/* Premium base look */
color: var(--wp--preset--color--ink, #1F1F1F);
background:
linear-gradient(180deg,
color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 100%, #fff) 0%,
color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 88%,  #000) 100%);
border: 1px solid color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 70%, #000);
box-shadow:
0 1px 0 rgba(255,255,255,.45) inset,
0 1px 2px rgba(0,0,0,.10);
position: relative;
overflow: hidden;
isolation: isolate;
will-change: transform, box-shadow;
transition: transform .22s ease, box-shadow .22s ease, background .22s ease, border-color .22s ease;
}
/* Glassy sheen overlay */
.sp-navbar__cta::before {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(180deg,
rgba(255,255,255,.55) 0%,
rgba(255,255,255,.18) 38%,
rgba(255,255,255,0)   55%,
rgba(0,0,0,.06)       100%);
pointer-events: none;
z-index: 1;
opacity: .85;
transition: opacity .22s ease;
}
/* Diagonal moving highlight on hover */
.sp-navbar__cta::after {
content: "";
position: absolute;
top: 0; bottom: 0;
left: -40%;
width: 40%;
background: linear-gradient(115deg,
rgba(255,255,255,0)   0%,
rgba(255,255,255,.55) 50%,
rgba(255,255,255,0)   100%);
transform: skewX(-18deg);
pointer-events: none;
z-index: 2;
transition: left .55s ease;
}
.sp-navbar__cta > * { position: relative; z-index: 3; }

.sp-navbar__cta:hover,
.sp-navbar__cta:focus-visible {
transform: translateY(-1px);
border-color: color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 50%, #000);
box-shadow:
0 1px 0 rgba(255,255,255,.55) inset,
0 8px 22px -8px color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 60%, #000),
0 4px 14px rgba(0,0,0,.18);
background:
linear-gradient(180deg,
color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 100%, #fff) 0%,
color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 78%,  #000) 100%);
}
.sp-navbar__cta:hover::before,
.sp-navbar__cta:focus-visible::before { opacity: 1; }
.sp-navbar__cta:hover::after,
.sp-navbar__cta:focus-visible::after { left: 130%; }

.sp-navbar__cta:active { transform: translateY(0); }

@media (max-width: 900px) {
.sp-navbar__cta { padding: .6rem 1rem; font-size: .85rem; }
}
/* ===== Contact: Clinic Info column + Visit Us heading ================== */
.sp-clinic-info-col {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
gap: .9rem;
max-width: 420px;
margin-left: auto;
margin-right: auto;
}
.sp-clinic-info-col .sp-eyebrow { margin-bottom: .25rem; }
.sp-clinic-info-col .sp-info-card {
display: block;
width: 100%;
background: #fff;
border: 1px solid color-mix(in srgb, currentColor 8%, transparent);
border-radius: 12px;
padding: 1rem 1.25rem;
box-shadow: 0 1px 2px rgba(0,0,0,.04);
text-align: center;
line-height: 1.5;
}
.sp-clinic-info-col .sp-info-card strong { display: block; margin-bottom: .25rem; font-size: 1rem; }
.sp-clinic-info-col .sp-info-card a { color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; }
.sp-clinic-info-col .sp-hours {
list-style: none;
margin: .25rem 0 0;
padding: 0;
display: inline-block;
text-align: left;
}
.sp-clinic-info-col .sp-hours li { margin: .15rem 0; }

/* Visit Us heading right above the map */
.sp-map-section {
display: flex;
flex-direction: column;
align-items: stretch;
padding-top: 2rem;
padding-bottom: 0;
}
.sp-map-section > .sp-eyebrow,
.sp-map-section > .wp-block-heading {
text-align: center;
margin-left: auto;
margin-right: auto;
max-width: 60ch;
}
.sp-map-section > .wp-block-heading { margin-bottom: 1.25rem; }
.sp-map__frame { border-radius: 0; }
/* ===== Contact: premium two-column layout (form + clinic info) ========= */
.sp-contact-form.wp-block-columns {
gap: clamp(1.5rem, 3vw, 2.5rem);
align-items: stretch;
}
.sp-contact-form.wp-block-columns > .wp-block-column {
display: flex;
flex-direction: column;
}
.sp-contact-form .sp-eyebrow { margin-bottom: .35rem; }
.sp-contact-form h2.wp-block-heading {
font-size: clamp(1.45rem, 2.2vw, 1.85rem);
line-height: 1.15;
margin: 0 0 .75rem;
}
.sp-contact-form > .wp-block-column > p:not(.sp-eyebrow) {
color: var(--wp--preset--color--muted, #6b6862);
margin: 0 0 1.25rem;
max-width: 52ch;
}

/* Form card refinement */
.sp-contact-form .sp-form-card {
margin-top: 1rem;
background: #fff;
border: 1px solid rgba(17,17,17,.08);
box-shadow:
0 1px 0 rgba(255,255,255,.6) inset,
0 18px 40px -18px rgba(15,15,15,.18),
0 6px 14px -8px rgba(15,15,15,.10);
flex: 1;
}

/* ---- Clinic info column: align with form column visually ---- */
.sp-clinic-info-col {
max-width: 460px;
width: 100%;
margin-left: auto;
margin-right: auto;
gap: .85rem !important;
flex: 1;
}
.sp-clinic-info-col .sp-eyebrow {
margin: 0 auto;
letter-spacing: .12em;
text-transform: uppercase;
font-weight: 700;
font-size: .78rem;
}
/* Replace the prior generic h2 trick with a dedicated heading line */
.sp-clinic-info-col::before {
content: "Clinic Info";
display: none; /* keep eyebrow above; reserved if you want a heading later */
}

/* Premium info cards */
.sp-clinic-info-col .sp-info-card {
position: relative;
display: grid;
grid-template-columns: 44px 1fr;
align-items: center;
gap: .85rem;
text-align: left;
padding: 1rem 1.1rem;
background: #fff;
border: 1px solid rgba(17,17,17,.08);
border-radius: 14px;
box-shadow:
0 1px 0 rgba(255,255,255,.6) inset,
0 6px 18px -10px rgba(15,15,15,.15);
transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.sp-clinic-info-col .sp-info-card:hover {
transform: translateY(-1px);
border-color: color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 40%, rgba(17,17,17,.08));
box-shadow:
0 1px 0 rgba(255,255,255,.7) inset,
0 12px 26px -12px rgba(15,15,15,.22);
}
/* Icon chip */
.sp-clinic-info-col .sp-info-card::before {
content: "";
width: 44px;
height: 44px;
border-radius: 12px;
background:
linear-gradient(180deg,
color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 22%, #fff) 0%,
color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 10%, #fff) 100%);
border: 1px solid color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 35%, transparent);
background-repeat: no-repeat;
background-position: center;
background-size: 22px 22px;
flex-shrink: 0;
}
.sp-clinic-info-col .sp-info-card strong {
display: block;
font-size: .8rem;
font-weight: 700;
letter-spacing: .1em;
text-transform: uppercase;
color: color-mix(in srgb, currentColor 70%, transparent);
margin: 0 0 .15rem;
}
.sp-clinic-info-col .sp-info-card a {
color: inherit;
text-decoration: none;
border-bottom: 1px dashed color-mix(in srgb, currentColor 35%, transparent);
font-weight: 600;
}
.sp-clinic-info-col .sp-info-card a:hover {
border-bottom-style: solid;
color: color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 70%, currentColor);
}
.sp-clinic-info-col .sp-hours {
list-style: none;
margin: .15rem 0 0;
padding: 0;
font-size: .92rem;
line-height: 1.55;
text-align: left;
display: block;
}
.sp-clinic-info-col .sp-hours li { display: flex; justify-content: space-between; gap: 1rem; }

/* Per-card icons (1=Location, 2=Phone, 3=Hours) */
.sp-clinic-info-col .sp-info-card:nth-of-type(1)::before {
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b8860b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M12 22s7-7.5 7-13a7 7 0 1 0-14 0c0 5.5 7 13 7 13z'/><circle cx='12' cy='9' r='2.5'/></svg>");
}
.sp-clinic-info-col .sp-info-card:nth-of-type(2)::before {
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b8860b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M22 16.92v3a2 2 0 0 1-2.18 2 19.86 19.86 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6A19.86 19.86 0 0 1 2.12 4.18 2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/></svg>");
}
.sp-clinic-info-col .sp-info-card:nth-of-type(3)::before {
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b8860b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3 2'/></svg>");
align-self: start;
margin-top: .15rem;
}

@media (max-width: 781px) {
.sp-clinic-info-col { max-width: none; }
}
/* ===== Hero List block (abundant-health/hero-list) ======================= */
.sp-hero-list {
--sp-hl-gap: clamp(1rem, 2vw, 1.5rem);
padding-block: clamp(2.5rem, 6vw, 5rem);
}
.sp-hero-list__inner {
width: min(1180px, 92vw);
margin-inline: auto;
}
/* Split layout: heading column on the left, items column on the right */
.sp-hero-list--split .sp-hero-list__inner {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
gap: clamp(2rem, 4vw, 4rem);
align-items: start;
}
.sp-hero-list--vertical .sp-hero-list__inner { display: block; }
.sp-hero-list--grid .sp-hero-list__inner { display: block; }

.sp-hero-list__head { max-width: 36ch; }
.sp-hero-list--align-center .sp-hero-list__head { margin-inline: auto; text-align: center; max-width: 60ch; }
.sp-hero-list__headline {
font-size: clamp(1.6rem, 3.2vw, 2.4rem);
line-height: 1.12;
letter-spacing: -.01em;
margin: .35rem 0 0;
}

/* Items list */
.sp-hero-list__items {
list-style: none;
margin: 0;
padding: 0;
display: grid;
gap: var(--sp-hl-gap);
}
.sp-hero-list--split .sp-hero-list__items,
.sp-hero-list--vertical .sp-hero-list__items {
grid-template-columns: 1fr;
}
.sp-hero-list--grid .sp-hero-list__items {
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
margin-top: clamp(1.5rem, 3vw, 2.25rem);
}
.sp-hero-list__head + .sp-hero-list__items { margin-top: clamp(1rem, 2vw, 1.5rem); }

/* Items */
.sp-hero-list__item { margin: 0; }
.sp-hero-list__link {
position: relative;
display: grid;
grid-template-columns: 52px 1fr auto;
align-items: center;
gap: 1rem;
padding: 1.05rem 1.15rem;
background: #fff;
border: 1px solid color-mix(in srgb, currentColor 8%, transparent);
border-radius: 16px;
color: inherit;
text-decoration: none;
box-shadow:
0 1px 0 rgba(255,255,255,.6) inset,
0 8px 22px -14px rgba(15,15,15,.18);
transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;
overflow: hidden;
isolation: isolate;
}
.sp-hero-list__link::before {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(120deg,
color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 9%, transparent) 0%,
transparent 55%);
opacity: 0;
transition: opacity .25s ease;
z-index: 0;
pointer-events: none;
}
a.sp-hero-list__link:hover,
a.sp-hero-list__link:focus-visible {
transform: translateY(-2px);
border-color: color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 45%, currentColor);
box-shadow:
0 1px 0 rgba(255,255,255,.7) inset,
0 14px 30px -16px rgba(15,15,15,.28);
}
a.sp-hero-list__link:hover::before,
a.sp-hero-list__link:focus-visible::before { opacity: 1; }

.sp-hero-list__chip {
position: relative; z-index: 1;
width: 52px; height: 52px;
display: inline-flex; align-items: center; justify-content: center;
border-radius: 14px;
color: color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 80%, #000);
background:
linear-gradient(180deg,
color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 20%, #fff) 0%,
color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 8%,  #fff) 100%);
border: 1px solid color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 35%, transparent);
transition: transform .25s ease;
}
a.sp-hero-list__link:hover .sp-hero-list__chip { transform: scale(1.06) rotate(-2deg); }

.sp-hero-list__body { position: relative; z-index: 1; min-width: 0; }
.sp-hero-list__title {
margin: 0;
font-size: 1.05rem;
font-weight: 700;
line-height: 1.25;
letter-spacing: -.005em;
}
.sp-hero-list__desc {
margin: .2rem 0 0;
font-size: .92rem;
line-height: 1.5;
color: color-mix(in srgb, currentColor 70%, transparent);
}

.sp-hero-list__arrow {
position: relative; z-index: 1;
display: inline-flex; align-items: center; justify-content: center;
width: 32px; height: 32px;
border-radius: 999px;
color: color-mix(in srgb, currentColor 55%, transparent);
transition: transform .22s ease, color .22s ease, background .22s ease;
}
a.sp-hero-list__link:hover .sp-hero-list__arrow {
color: color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 85%, #000);
background: color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 18%, transparent);
transform: translateX(3px);
}

/* Editor preview tweaks */
.sp-hero-list-edit .sp-hero-list__items--preview {
list-style: none; margin: .75rem 0 0; padding: 0; display: grid; gap: .5rem;
}
.sp-hero-list-edit .sp-hero-list__item {
display: grid; grid-template-columns: 32px 1fr; gap: .6rem;
padding: .5rem .75rem; border: 1px dashed rgba(0,0,0,.18); border-radius: 8px;
}

/* Responsive */
@media (max-width: 900px) {
.sp-hero-list--split .sp-hero-list__inner { grid-template-columns: 1fr; }
.sp-hero-list__link { grid-template-columns: 44px 1fr auto; padding: .9rem 1rem; }
.sp-hero-list__chip { width: 44px; height: 44px; }
}
/* ===== Expand Cards block (abundant-health/expand-cards) ================= */
.sp-expand-cards { padding-block: clamp(3rem, 6vw, 5rem); }
.sp-expand-cards__inner {
width: min(1240px, 94vw);
margin-inline: auto;
}
.sp-expand-cards__head { max-width: 60ch; margin: 0 auto clamp(1.5rem, 3vw, 2.5rem); text-align: center; }
.sp-expand-cards__headline {
font-size: clamp(1.6rem, 3.2vw, 2.4rem);
line-height: 1.12;
letter-spacing: -.01em;
margin: .35rem 0 0;
}

/* The row of expanding cards */
.sp-expand-cards__row {
list-style: none;
margin: 0;
padding: 0;
display: flex;
gap: .85rem;
align-items: stretch;
min-height: 0;
}
.sp-expand-cards--h-sm .sp-expand-cards__row { height: clamp(260px, 32vw, 320px); }
.sp-expand-cards--h-md .sp-expand-cards__row { height: clamp(320px, 40vw, 420px); }
.sp-expand-cards--h-lg .sp-expand-cards__row { height: clamp(380px, 48vw, 520px); }

.sp-expand-cards__item {
flex: 1 1 0;
min-width: 0;
transition: flex-grow .55s cubic-bezier(.22, 1, .36, 1);
}
/* Hover/focus on a card ? expand that card, compress siblings */
.sp-expand-cards__row:hover .sp-expand-cards__item { flex-grow: .9; }
.sp-expand-cards__row .sp-expand-cards__item:hover,
.sp-expand-cards__row .sp-expand-cards__item:focus-within { flex-grow: 2.6; }

/* Card surface */
.sp-expand-cards__card {
position: relative;
display: block;
height: 100%;
width: 100%;
border-radius: 18px;
overflow: hidden;
color: #fff;
text-decoration: none;
background-color: #1f1f1f;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
isolation: isolate;
box-shadow: 0 14px 30px -18px rgba(15,15,15,.45);
transition: box-shadow .35s ease, transform .35s ease;
}
.sp-expand-cards__item:hover .sp-expand-cards__card,
.sp-expand-cards__item:focus-within .sp-expand-cards__card {
box-shadow: 0 22px 50px -20px rgba(15,15,15,.55);
}
.sp-expand-cards__card::after {
content: "";
position: absolute; inset: 0;
background: radial-gradient(120% 80% at 100% 100%,
color-mix(in srgb, var(--wp--preset--color--accent, #d4a017) 35%, transparent) 0%,
transparent 55%);
opacity: 0;
transition: opacity .55s ease;
pointer-events: none;
z-index: 2;
}
.sp-expand-cards__item:hover .sp-expand-cards__card::after,
.sp-expand-cards__item:focus-within .sp-expand-cards__card::after { opacity: 1; }

/* Dim/gradient overlay for legibility */
.sp-expand-cards__overlay {
position: absolute; inset: 0;
background:
linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.55) 65%, rgba(0,0,0,.8) 100%);
z-index: 1;
transition: background .45s ease;
}
.sp-expand-cards__item:hover .sp-expand-cards__overlay,
.sp-expand-cards__item:focus-within .sp-expand-cards__overlay {
background:
linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.45) 50%, rgba(0,0,0,.78) 100%);
}

/* Content positioned at the bottom */
.sp-expand-cards__content {
position: absolute;
inset: auto 0 0 0;
padding: 1.25rem 1.4rem 1.4rem;
z-index: 3;
display: block;
}

/* Collapsed-state vertical title (Ways2Well-style) */
.sp-expand-cards__rotated {
display: block;
font-size: 1.05rem;
font-weight: 700;
letter-spacing: .08em;
text-transform: uppercase;
line-height: 1.1;
writing-mode: vertical-rl;
transform: rotate(180deg);
position: absolute;
left: 1.25rem;
bottom: 1.25rem;
opacity: 1;
transition: opacity .25s ease, transform .35s ease;
z-index: 4;
}
.sp-expand-cards__item:hover .sp-expand-cards__rotated,
.sp-expand-cards__item:focus-within .sp-expand-cards__rotated {
opacity: 0;
transform: rotate(180deg) translateY(-12px);
}

/* Expanded panel (title + desc + cta) */
.sp-expand-cards__panel {
display: block;
transform: translateY(14px);
opacity: 0;
transition: opacity .35s ease .05s, transform .45s cubic-bezier(.22, 1, .36, 1) .05s;
max-width: 540px;
}
.sp-expand-cards__item:hover .sp-expand-cards__panel,
.sp-expand-cards__item:focus-within .sp-expand-cards__panel {
opacity: 1;
transform: translateY(0);
}
.sp-expand-cards__title {
margin: 0;
font-size: clamp(1.2rem, 1.8vw, 1.55rem);
line-height: 1.15;
font-weight: 700;
letter-spacing: -.005em;
color: #fff;
}
.sp-expand-cards__desc {
margin: .35rem 0 0;
font-size: .95rem;
line-height: 1.5;
color: rgba(255,255,255,.85);
max-width: 48ch;
}
.sp-expand-cards__cta {
display: inline-flex;
align-items: center;
gap: .4rem;
margin-top: .9rem;
padding: .55rem .9rem;
background: rgba(255,255,255,.14);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
border: 1px solid rgba(255,255,255,.25);
border-radius: 999px;
font-size: .85rem;
font-weight: 600;
letter-spacing: .02em;
color: #fff;
transition: background .25s ease, transform .25s ease;
}
.sp-expand-cards__item:hover .sp-expand-cards__cta,
.sp-expand-cards__item:focus-within .sp-expand-cards__cta {
background: var(--wp--preset--color--accent, #d4a017);
color: var(--wp--preset--color--ink, #1f1f1f);
border-color: transparent;
transform: translateX(2px);
}

/* Mobile: stack vertically; hide rotated label; show panel by default */
@media (max-width: 781px) {
.sp-expand-cards__row {
flex-direction: column;
height: auto !important;
gap: 1rem;
}
.sp-expand-cards__item { flex: 0 0 auto; }
.sp-expand-cards__card { height: 280px; }
.sp-expand-cards__rotated { display: none; }
.sp-expand-cards__panel { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
.sp-expand-cards__item,
.sp-expand-cards__panel,
.sp-expand-cards__rotated,
.sp-expand-cards__overlay,
.sp-expand-cards__card { transition: none !important; }
}

/* ===== Home page spacing polish ======================================= */
.home .wp-block-post-content > * + * { margin-top: 0; }
.home .wp-block-group.sp-section-pad,
.home .wp-block-group.sp-section-pad--lg,
.home .wp-block-group.sp-section-pad--sm,
.home .sp-block { margin-block: 0; }

/* Consistent rhythm between full-width groups on the home */
.home .wp-block-post-content > .wp-block-group + .wp-block-group,
.home .wp-block-post-content > .wp-block-group + section,
.home .wp-block-post-content > section + .wp-block-group,
.home .wp-block-post-content > section + section { margin-top: 0; }

/* Section vertical padding scale (only home) */
.home .sp-section-pad      { padding-block: clamp(3rem, 6vw, 5rem) !important; }
.home .sp-section-pad--lg  { padding-block: clamp(4rem, 8vw, 6.5rem) !important; }
.home .sp-section-pad--sm  { padding-block: clamp(2rem, 4vw, 3.25rem) !important; }

/* Inner constrained content gets a little breathing room left/right */
.home .wp-block-group > .wp-block-group:where(:not(.alignfull):not(.alignwide)) {
padding-inline: clamp(1rem, 3vw, 1.5rem);
}

/* Hero list and expand cards: tighten if directly after the hero */
.home .sp-hero-section + .sp-hero-list,
.home .sp-hero-section + .sp-expand-cards { padding-top: clamp(2.5rem, 5vw, 4rem); }

/* Section title gap consistency on home */
.home .sp-eyebrow + .wp-block-heading,
.home .sp-eyebrow + h2 { margin-top: .35rem; }
.home .wp-block-heading + .wp-block-group,
.home h2 + .wp-block-group { margin-top: clamp(1.5rem, 3vw, 2.25rem); }
/* ---------------------------------------------------------------------------
 * Polish pass — task batch (hero centering, column/grid gaps, FAQ icon,
 * yellow CTA buttons gap, expand-cards default-open, site logo).
 * ------------------------------------------------------------------------- */

/* 4. Hero centered variant: actually center the inner box horizontally */
.sp-hero--centered {
margin-inline: auto;
display: flex;
flex-direction: column;
align-items: center;
}
.sp-hero--centered .sp-hero__headline,
.sp-hero--centered .sp-hero__eyebrow,
.sp-hero--centered .sp-hero__subheadline { width: 100%; }

/* 5. Two-column rows on home: add real horizontal gap between columns */
.home .wp-block-columns,
.sp-hero-list .wp-block-columns {
gap: clamp(1.75rem, 4vw, 3rem) !important;
row-gap: clamp(1.5rem, 3vw, 2.25rem) !important;
}

/* 6. Multi-column grid rows on home (Featured Services, Renew Framework,
 * Real people) — Gutenberg "columns" with 3+ items need breathing room. */
.home .wp-block-columns:where(.is-layout-flex) {
gap: clamp(1.25rem, 2.5vw, 2rem) !important;
}
.home .sp-grid,
.home .sp-grid--3,
.home .sp-services-grid,
.home .sp-testimonials {
gap: clamp(1.25rem, 2.5vw, 2rem) !important;
}

/* 8. Yellow CTA banner — space between primary/secondary buttons */
.sp-cta-banner .wp-block-buttons {
display: flex;
flex-wrap: wrap;
gap: 1rem;
justify-content: center;
align-items: center;
}
.sp-cta-banner .wp-block-buttons > .wp-block-button { margin: 0; }

/* 1. Expand Cards — first card expanded by default (until user hovers
 * another card). Mirrors the :hover/:focus-within state but only applies
 * when the row is idle. */
.sp-expand-cards__row:not(:hover):not(:focus-within) .sp-expand-cards__item--default-open {
flex-grow: 2.6;
}
.sp-expand-cards__row:not(:hover):not(:focus-within) .sp-expand-cards__item--default-open .sp-expand-cards__card {
box-shadow: 0 22px 50px -20px rgba(15,15,15,.55);
}
.sp-expand-cards__row:not(:hover):not(:focus-within) .sp-expand-cards__item--default-open .sp-expand-cards__card::after {
opacity: 1;
}
.sp-expand-cards__row:not(:hover):not(:focus-within) .sp-expand-cards__item--default-open .sp-expand-cards__overlay {
background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.45) 50%, rgba(0,0,0,.78) 100%);
}
.sp-expand-cards__row:not(:hover):not(:focus-within) .sp-expand-cards__item--default-open .sp-expand-cards__rotated {
opacity: 0;
transform: rotate(180deg) translateY(-12px);
}
.sp-expand-cards__row:not(:hover):not(:focus-within) .sp-expand-cards__item--default-open .sp-expand-cards__panel {
opacity: 1;
transform: translateY(0);
}
.sp-expand-cards__row:not(:hover):not(:focus-within) .sp-expand-cards__item--default-open .sp-expand-cards__cta {
background: var(--wp--preset--color--accent, #d4a017);
color: var(--wp--preset--color--ink, #1f1f1f);
border-color: transparent;
}

/* 9. Site logo sizing in the header brand area */
.sp-site-header__brand .wp-block-site-logo img {
max-height: 56px;
width: auto;
display: block;
}
@media (max-width: 781px) {
.sp-site-header__brand .wp-block-site-logo img { max-height: 44px; }
}

/* ---------------------------------------------------------------------------
 * Polish v2 — vertical row spacing in grid sections + hero bg readability.
 * ------------------------------------------------------------------------- */

/* 3. Vertical gap between successive wp:columns rows on the home page
 * (Featured Services and The Renew Healing Framework each render as two
 * stacked wp:columns blocks). */
.home .wp-block-group > .wp-block-columns + .wp-block-columns {
margin-top: clamp(1.5rem, 3vw, 2.5rem) !important;
}

/* 4. Hero with image background: lift the foreground text for readability
 * regardless of the chosen photo. */
.sp-hero-section--bg-image .sp-hero-section__bg {
position: absolute; inset: 0;
width: 100%; height: 100%;
object-fit: cover;
z-index: 0;
}
.sp-hero-section--bg-image { position: relative; isolation: isolate; }
.sp-hero-section--bg-image .sp-hero-section__overlay { z-index: 1; }
.sp-hero-section--bg-image .sp-hero__content,
.sp-hero-section--bg-image .sp-hero { position: relative; z-index: 2; }

.sp-hero-section--bg-image .sp-hero__eyebrow { color: var(--wp--preset--color--accent, #f5c542); }
.sp-hero-section--bg-image .sp-hero__headline,
.sp-hero-section--bg-image .sp-hero__subheadline { color: #fff; text-shadow: 0 2px 18px rgba(0,0,0,.35); }
.sp-hero-section--bg-image .sp-hero__subheadline { color: rgba(255,255,255,.92); }

/* ---------------------------------------------------------------------------
 * Polish v3 — modern hero/header blend (video bg, gentle blur, gradient
 * fade so the sticky header dissolves into the hero instead of butting
 * against it as a hard color band).
 * ------------------------------------------------------------------------- */

/* Hero video: subtle blur + slight scale-up so the blur edges are hidden. */
.sp-hero-section--bg-video .sp-hero-section__bg {
filter: blur(3px) saturate(1.05) brightness(.95);
transform: scale(1.06);
transform-origin: center;
}

/* Replace the flat dark overlay on video heroes with a vertical gradient
 * that is darker at the very top (under the navbar) and at the bottom
 * (where text sits), letting the middle breathe. */
.sp-hero-section--bg-video .sp-hero-section__overlay {
background: linear-gradient(
180deg,
rgba(15, 22, 33, 0.72) 0%,
rgba(15, 22, 33, 0.42) 18%,
rgba(15, 22, 33, 0.28) 45%,
rgba(0, 0, 0, 0.55) 100%
) !important;
}

/* Home: let the sticky header dissolve into the hero. Transparent base +
 * dark gradient that mirrors the hero's top overlay. */
.home .sp-site-header {
background-color: transparent !important;
background-image: linear-gradient(
180deg,
rgba(15, 22, 33, 0.78) 0%,
rgba(15, 22, 33, 0.45) 55%,
rgba(15, 22, 33, 0) 100%
);
border-bottom-color: transparent !important;
transition: background-color .35s ease, background-image .35s ease, box-shadow .35s ease;
}
.home .sp-site-header::before {
/* Kill the white blur layer on the home hero. */
backdrop-filter: none;
-webkit-backdrop-filter: none;
}

/* Make header foreground readable on the dark gradient. */
.home .sp-site-header .wp-block-site-title a,
.home .sp-site-header .wp-block-navigation a,
.home .sp-navbar__menu > .menu-item > a,
.home .sp-navbar__phone,
.home .sp-navbar__social-link {
color: #fff !important;
}
.home .sp-site-header .wp-block-navigation a:hover,
.home .sp-navbar__menu > .menu-item > a:hover {
color: var(--wp--preset--color--accent, #f5c542) !important;
}

/* Once the user scrolls past the hero we want the solid white header back
 * for legibility. Add a "scrolled" class via JS, but as a CSS-only fallback
 * use a sentinel: if the page-content body has scrolled, the user can see
 * the header against white anyway. Keep accent on hover. */
.home .sp-site-header.is-scrolled {
background-color: rgba(255, 255, 255, 0.92) !important;
background-image: none;
border-bottom-color: #ededed !important;
box-shadow: 0 8px 24px -20px rgba(0,0,0,.25);
}
.home .sp-site-header.is-scrolled::before {
backdrop-filter: saturate(180%) blur(10px);
-webkit-backdrop-filter: saturate(180%) blur(10px);
}
.home .sp-site-header.is-scrolled .wp-block-site-title a,
.home .sp-site-header.is-scrolled .wp-block-navigation a,
.home .sp-site-header.is-scrolled .sp-navbar__menu > .menu-item > a,
.home .sp-site-header.is-scrolled .sp-navbar__phone,
.home .sp-site-header.is-scrolled .sp-navbar__social-link {
color: var(--wp--preset--color--ink) !important;
}

/* Pull the hero up under the now-transparent header so they truly blend. */
.home .sp-site-header {
	position: fixed !important;
	top: 0; left: 0; right: 0;
	width: 100%;
}
/* Give the hero room for the navbar to sit on top of it without colliding
 * with the headline. The video bg already spans the full hero, which now
 * starts at viewport top — so the navbar floats over the video. */
.home .sp-hero-section {
	margin-top: 0 !important;
	padding-top: calc(var(--sp-header-h, 120px) + clamp(1rem, 3vw, 2rem)) !important;
	padding-bottom: clamp(2rem, 5vw, 4rem) !important;
	min-height: 92vh;
	display: flex;
	align-items: flex-start;
}
.home .sp-hero-section .sp-hero { margin-top: 0; }

/* Hero foreground over a video: force white so it always reads. */
.sp-hero-section--bg-video .sp-hero__eyebrow { color: var(--wp--preset--color--accent, #f5c542) !important; }
.sp-hero-section--bg-video .sp-hero__headline,
.sp-hero-section--bg-video .sp-hero__subheadline { color: #fff !important; text-shadow: 0 2px 22px rgba(0,0,0,.45); }
.sp-hero-section--bg-video .sp-hero__subheadline { color: rgba(255,255,255,.92) !important; }

/* Buttons over a video hero: primary stays yellow, secondary becomes a
 * translucent glass pill so it reads on the dark video. */
.sp-hero-section--bg-video .sp-btn--primary {
	background: var(--wp--preset--color--accent, #f5c542) !important;
	color: var(--sp-on-accent, #14181C) !important;
	box-shadow: 0 18px 40px -18px rgba(245,197,66,.55);
}
.sp-hero-section--bg-video .sp-btn--primary:hover,
.sp-hero-section--bg-video .sp-btn--primary:focus-visible {
	background: var(--wp--preset--color--primary-hover, #e0b333) !important;
	color: var(--sp-on-accent, #14181C) !important;
}

/* Home hero: give the body copy breathing room above the CTA buttons. */
.home .sp-hero-section .sp-hero__subheadline {
	margin-bottom: clamp(2.5rem, 4vw, 3.25rem);
}
.sp-hero-section--bg-video .sp-btn--secondary,
.sp-hero-section--bg-video .sp-btn:not(.sp-btn--primary) {
	background: rgba(255,255,255,.12) !important;
	color: #fff !important;
	border: 1px solid rgba(255,255,255,.55) !important;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}
.sp-hero-section--bg-video .sp-btn--secondary:hover,
.sp-hero-section--bg-video .sp-btn:not(.sp-btn--primary):hover {
	background: rgba(255,255,255,.22) !important;
	color: #fff !important;
}

@media (prefers-reduced-motion: reduce) {
.sp-hero-section--bg-video .sp-hero-section__bg { filter: none; transform: none; }
}

/* ---------------------------------------------------------------------------
 * Polish v4 — navbar refinements:
 *  1) kill the bottom hairline on the navbar (top-row ? bottom-row divider).
 *  2) make social icons visible everywhere (outlined chips).
 *  3) keep "Home" / current-menu-item readable on the dark home header.
 *  4) swap to white logo when home header is over the video; restore the
 *     normal dark logo once the header turns solid on scroll.
 * ------------------------------------------------------------------------- */

/* 1. Remove the divider between the two navbar rows. */
.sp-navbar__row--top { border-bottom: 0 !important; padding-bottom: .25rem !important; }
/* And the global header underline on the home transparent state. */
.home .sp-site-header { border-bottom: 0 !important; }

/* 2. Social icons — outlined chip so they read on both light AND dark headers. */
.sp-navbar__social-link {
color: currentColor;
background: transparent;
border: 1px solid currentColor;
opacity: .85;
}
.sp-navbar__social-link:hover,
.sp-navbar__social-link:focus-visible {
opacity: 1;
color: var(--wp--preset--color--accent, #f5c542);
background: color-mix(in srgb, currentColor 12%, transparent);
border-color: currentColor;
transform: translateY(-1px);
}

/* Non-home or scrolled state inherits ink ? outlined dark chip on white nav. */

/* 3. Current/active menu item on the home dark header: translucent dark pill,
 *    white text (instead of the cream warm-grey background that hides white
 *    text). */
.home .sp-site-header:not(.is-scrolled) .sp-navbar__menu > .menu-item.current-menu-item > a,
.home .sp-site-header:not(.is-scrolled) .sp-navbar__menu > .menu-item > a:hover,
.home .sp-site-header:not(.is-scrolled) .sp-navbar__menu > .menu-item:focus-within > a {
color: #fff !important;
background-color: rgba(255, 255, 255, 0.14) !important;
}
.home .sp-site-header:not(.is-scrolled) .sp-navbar__menu > .menu-item.current-menu-item > a {
background-color: rgba(255, 255, 255, 0.18) !important;
}

/* 4. White logo when the home header is transparent over the video. */
.home .sp-site-header:not(.is-scrolled) .wp-block-site-logo img {
content: var(--sp-logo-white-url);
}

/* ---------------------------------------------------------------------------
 * Polish v5 — make sure the navbar social icons render on the home header
 * (transparent over the video). Force display, sizing, white stroke/fill,
 * and a subtle translucent chip so the icons are always visible.
 * ------------------------------------------------------------------------- */
.home .sp-site-header:not(.is-scrolled) .sp-navbar__contact,
.home .sp-site-header:not(.is-scrolled) .sp-navbar__social {
display: inline-flex !important;
visibility: visible !important;
opacity: 1 !important;
}
.home .sp-site-header:not(.is-scrolled) .sp-navbar__social-link {
color: #fff !important;
background: rgba(255,255,255,0.10) !important;
border: 1px solid rgba(255,255,255,0.55) !important;
opacity: 1 !important;
width: 36px !important;
height: 36px !important;
}
.home .sp-site-header:not(.is-scrolled) .sp-navbar__social-link svg {
width: 18px !important;
height: 18px !important;
display: block !important;
color: #fff !important;
fill: currentColor;
stroke: currentColor;
}
/* SVGs in the icon set use either fill or stroke; force both to white
 * without overriding paths that explicitly need to stay transparent. */
.home .sp-site-header:not(.is-scrolled) .sp-navbar__social-link svg [fill]:not([fill="none"]) { fill: #fff !important; }
.home .sp-site-header:not(.is-scrolled) .sp-navbar__social-link svg [stroke]:not([stroke="none"]) { stroke: #fff !important; }

.home .sp-site-header:not(.is-scrolled) .sp-navbar__social-link:hover,
.home .sp-site-header:not(.is-scrolled) .sp-navbar__social-link:focus-visible {
background: var(--wp--preset--color--accent, #f5c542) !important;
border-color: var(--wp--preset--color--accent, #f5c542) !important;
color: var(--wp--preset--color--ink, #1f1f1f) !important;
}
.home .sp-site-header:not(.is-scrolled) .sp-navbar__social-link:hover svg [fill]:not([fill="none"]) { fill: var(--wp--preset--color--ink, #1f1f1f) !important; }
.home .sp-site-header:not(.is-scrolled) .sp-navbar__social-link:hover svg [stroke]:not([stroke="none"]) { stroke: var(--wp--preset--color--ink, #1f1f1f) !important; }


/* =========================================================================
   Regenerative Medicine Disclaimer (Florida compliance)
   Rendered by RegenerativeDisclaimer module on any sp_service / sp_condition
   page mentioning "regenerative". Spans the full content width so it reads
   as a site-wide legal notice (not a constrained text block), while the
   inner wrapper keeps the copy at a comfortable reading measure.
   ========================================================================= */
.sp-regen-disclaimer {
display: block;
box-sizing: border-box;
width: 100%;
max-width: 100%;
margin: 4rem 0 0;
padding: 2.5rem clamp(1rem, 4vw, 2rem);
background: color-mix(in srgb, var(--wp--preset--color--base, #fff) 92%, var(--wp--preset--color--ink, #1f1f1f) 8%);
border-top: 3px solid var(--wp--preset--color--accent, #f5c542);
color: var(--wp--preset--color--ink, #1f1f1f);
font-size: 0.9rem;
line-height: 1.6;
/* Keep the heading clear of the sticky header when jumped to via #important-disclosures. */
scroll-margin-top: 6rem;
}
.sp-regen-disclaimer__inner {
max-width: 1200px;
margin-inline: auto;
}
.sp-regen-disclaimer__heading {
margin: 0 0 1rem;
font-size: 1.05rem;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
color: var(--wp--preset--color--accent, #f5c542);
}
.sp-regen-disclaimer p {
margin: 0 0 0.95rem;
}
.sp-regen-disclaimer p:last-child {
margin-bottom: 0;
}
.sp-regen-disclaimer strong {
display: inline-block;
margin-bottom: 0.25rem;
}
@media (min-width: 768px) {
.sp-regen-disclaimer {
padding: 3rem clamp(2rem, 5vw, 4rem);
font-size: 0.95rem;
}
}

/* =========================================================================
   Meet the Team — premium roster grid
   Each .sp-team-card pairs a portrait (16/12 frame for a portrait crop) with
   a credentials list and bio. Cards lift on hover; image gently zooms in.
   Editor-friendly: card markup is plain Gutenberg blocks with className hooks.
   ========================================================================= */
.sp-team-section {
padding-block: clamp(4.5rem, 9vw, 8rem);
}
.sp-team-intro {
max-width: 760px;
margin: 0 auto 4rem;
text-align: center;
}
.sp-team-intro .sp-eyebrow { justify-content: center; }
.sp-team-intro h1,
.sp-team-intro h2 {
margin: .25rem 0 1rem;
}
.sp-team-grid {
display: grid;
gap: clamp(2rem, 4vw, 3rem);
grid-template-columns: 1fr;
max-width: 1200px;
margin-inline: auto;
padding-inline: clamp(1rem, 4vw, 2.5rem);
}
@media (min-width: 720px) {
.sp-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
.sp-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.sp-team-card {
display: grid;
grid-template-columns: 1fr;
gap: 0;
background: var(--wp--preset--color--base, #fff);
border: 1px solid rgba(17,17,17,.06);
border-radius: var(--sp-radius-lg, 28px);
overflow: hidden;
box-shadow: var(--sp-shadow-sm);
transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s cubic-bezier(.2,.7,.2,1), border-color .35s cubic-bezier(.2,.7,.2,1);
}
.sp-team-card:hover {
transform: translateY(-6px);
box-shadow: var(--sp-shadow-lg);
border-color: rgba(245,197,66,.35);
}
.sp-team-card__photo {
position: relative;
aspect-ratio: 4 / 5;
overflow: hidden;
background:
radial-gradient(60% 80% at 30% 30%, rgba(245,197,66,.25), transparent 70%),
linear-gradient(135deg, #FBF8F1 0%, #F1EADA 100%);
}
.sp-team-card__photo img,
.sp-team-card__photo .wp-block-image,
.sp-team-card__photo figure,
.sp-team-card__photo figure img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
margin: 0;
transition: transform .7s cubic-bezier(.2,.7,.2,1);
}
.sp-team-card:hover .sp-team-card__photo img { transform: scale(1.04); }
.sp-team-card__body {
padding: 2rem clamp(1.5rem, 3vw, 2.25rem) clamp(2rem, 3vw, 2.5rem);
display: flex;
flex-direction: column;
gap: 1rem;
}
.sp-team-card__role {
margin: 0;
font-size: .8125rem;
font-weight: 600;
letter-spacing: .14em;
text-transform: uppercase;
color: var(--wp--preset--color--primary-hover, #D9A928);
}
.sp-team-card__name {
margin: 0;
font-size: clamp(1.5rem, 2.4vw, 1.85rem);
font-weight: 700;
line-height: 1.15;
letter-spacing: -.01em;
color: var(--wp--preset--color--ink, #1F1F1F);
}
.sp-team-card__credentials {
list-style: none;
margin: .25rem 0 0;
padding: 0;
display: flex;
flex-wrap: wrap;
gap: .4rem .5rem;
}
.sp-team-card__credentials li {
font-size: .78rem;
font-weight: 600;
letter-spacing: .04em;
padding: .35rem .7rem;
border-radius: 9999px;
background: rgba(245,197,66,.14);
color: var(--wp--preset--color--ink, #1F1F1F);
border: 1px solid rgba(217,169,40,.35);
}
.sp-team-card__bio {
margin: 0;
font-size: .98rem;
line-height: 1.65;
color: var(--wp--preset--color--muted, #555);
}
.sp-team-card__details {
margin-top: .25rem;
border-top: 1px solid rgba(17,17,17,.06);
padding-top: 1rem;
}
.sp-team-card__details summary {
list-style: none;
cursor: pointer;
font-size: .82rem;
font-weight: 700;
letter-spacing: .08em;
text-transform: uppercase;
color: var(--wp--preset--color--primary-hover, #D9A928);
display: inline-flex;
align-items: center;
gap: .5rem;
}
.sp-team-card__details summary::-webkit-details-marker { display: none; }
.sp-team-card__details summary::after {
content: "+";
font-size: 1.1rem;
line-height: 1;
transition: transform .25s ease;
}
.sp-team-card__details[open] summary::after { content: "-"; }
.sp-team-card__details p {
margin: .9rem 0 0;
font-size: .95rem;
line-height: 1.65;
color: var(--wp--preset--color--muted, #555);
}
.sp-team-card__details p + p { margin-top: .7rem; }
.sp-team-card__details h4 {
margin: 1.1rem 0 .25rem;
font-size: .78rem;
font-weight: 700;
letter-spacing: .12em;
text-transform: uppercase;
color: var(--wp--preset--color--ink, #1F1F1F);
}
@media (prefers-reduced-motion: reduce) {
.sp-team-card,
.sp-team-card__photo img,
.sp-team-card__details summary::after {
transition: none;
}
}

/* ============================================================================
 * Polish v4 — Global CTA buttons (subpages)
 * ----------------------------------------------------------------------------
 * Subpages compose CTAs with the WordPress core button block, which renders
 * as `.wp-block-buttons > .wp-block-button > a.wp-block-button__link`.
 * Default WP markup leaves them visually flat and tightly packed. Here we:
 *   1. Guarantee a comfortable, responsive gap between sibling buttons so
 *      they never feel crammed together.
 *   2. Give every core button a premium, brand-consistent look (gold accent,
 *      depth, subtle gradient) with a polished hover micro-interaction
 *      (lift + sheen sweep + glow). Mirrors the hero/nav CTA language.
 *   3. Offer a `is-style-outline` / `has-ink-color` secondary treatment that
 *      stays cohesive on dark sections.
 * The nav CTA (`.sp-navbar__cta`) and hero CTA (`.sp-btn`) use their own
 * dedicated classes, so they are not touched here.
 * ========================================================================= */

/* 1. Breathing room between sibling CTAs (works for both row and column
 *    layouts). The yellow `.sp-cta-banner` already sets its own gap; we
 *    leave that rule winning via CSS source order + specificity. */
.wp-block-buttons {
	gap: clamp(0.75rem, 1.6vw, 1.25rem);
	row-gap: clamp(0.75rem, 1.6vw, 1.25rem);
}
.wp-block-buttons.is-vertical { row-gap: 0.85rem; }

/* 2. Premium base look for every core button site-wide. */
.wp-block-button__link.wp-element-button,
:is(.postid-367, .postid-368, .postid-369) .sp-hero__ctas .sp-btn--secondary {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.95rem 1.85rem;
	font-weight: 700;
	font-size: 0.95rem;
	line-height: 1.1;
	letter-spacing: 0.04em;
	text-transform: none;
	text-decoration: none;
	color: var(--wp--preset--color--ink, #1F1F1F);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--wp--preset--color--primary, #F5C542) 100%, #fff) 0%,
			color-mix(in srgb, var(--wp--preset--color--primary, #F5C542) 86%,  #000) 100%);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--primary-hover, #D9A928) 70%, #000);
	border-radius: 9999px;
	overflow: hidden;
	isolation: isolate;
	cursor: pointer;
	box-shadow:
		0 1px 0 rgba(255,255,255,.5) inset,
		0 1px 2px rgba(0,0,0,.08),
		0 6px 16px -8px color-mix(in srgb, var(--wp--preset--color--primary, #F5C542) 65%, transparent);
	transition:
		transform .28s cubic-bezier(.2,.7,.2,1),
		box-shadow .28s cubic-bezier(.2,.7,.2,1),
		background .28s ease,
		border-color .28s ease,
		color .2s ease;
	will-change: transform, box-shadow;
}

/* Diagonal sheen that sweeps across on hover. */
.wp-block-button__link.wp-element-button::after,
:is(.postid-367, .postid-368, .postid-369) .sp-hero__ctas .sp-btn--secondary::after {
	content: "";
	position: absolute;
	top: 0; bottom: 0;
	left: -45%;
	width: 40%;
	background: linear-gradient(115deg,
		rgba(255,255,255,0)   0%,
		rgba(255,255,255,.55) 50%,
		rgba(255,255,255,0)   100%);
	transform: skewX(-18deg);
	pointer-events: none;
	transition: left .6s cubic-bezier(.2,.7,.2,1);
	z-index: 1;
}
.wp-block-button__link.wp-element-button > * { position: relative; z-index: 2; }

.wp-block-button__link.wp-element-button:hover,
.wp-block-button__link.wp-element-button:focus-visible,
:is(.postid-367, .postid-368, .postid-369) .sp-hero__ctas .sp-btn--secondary:hover,
:is(.postid-367, .postid-368, .postid-369) .sp-hero__ctas .sp-btn--secondary:focus-visible {
	transform: translateY(-2px);
	border-color: color-mix(in srgb, var(--wp--preset--color--primary-hover, #D9A928) 60%, #000);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--wp--preset--color--primary, #F5C542) 100%, #fff) 0%,
			color-mix(in srgb, var(--wp--preset--color--primary-hover, #D9A928) 90%, #000) 100%);
	box-shadow:
		0 1px 0 rgba(255,255,255,.6) inset,
		0 14px 28px -10px color-mix(in srgb, var(--wp--preset--color--primary, #F5C542) 55%, transparent),
		0 6px 14px rgba(0,0,0,.18);
	color: var(--wp--preset--color--ink, #1F1F1F);
	outline: none;
}
.wp-block-button__link.wp-element-button:hover::after,
.wp-block-button__link.wp-element-button:focus-visible::after,
:is(.postid-367, .postid-368, .postid-369) .sp-hero__ctas .sp-btn--secondary:hover::after,
:is(.postid-367, .postid-368, .postid-369) .sp-hero__ctas .sp-btn--secondary:focus-visible::after { left: 135%; }
.wp-block-button__link.wp-element-button:active,
:is(.postid-367, .postid-368, .postid-369) .sp-hero__ctas .sp-btn--secondary:active { transform: translateY(0); transition-duration: .12s; }

/* 3. Outline / secondary treatment — editors pick this from the block UI
 *    ("Outline" style). Keeps the same lift but uses an ink border. */
.wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button,
.wp-block-button__link.wp-element-button.is-style-outline,
:is(.postid-367, .postid-368, .postid-369) .sp-hero__ctas .sp-btn--secondary {
	background: transparent;
	color: var(--wp--preset--color--ink, #1F1F1F);
	border: 1.5px solid var(--wp--preset--color--ink, #1F1F1F);
	box-shadow: 0 4px 12px -8px rgba(0,0,0,.25);
}
.wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:hover,
.wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:focus-visible,
.wp-block-button__link.wp-element-button.is-style-outline:hover,
.wp-block-button__link.wp-element-button.is-style-outline:focus-visible {
	background: var(--wp--preset--color--ink, #1F1F1F);
	color: var(--wp--preset--color--base, #fff);
	border-color: var(--wp--preset--color--ink, #1F1F1F);
}

/* On dark sections, flip the outline to a light tone for contrast (a11y). */
.has-charcoal-background-color .wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button,
.has-deep-black-background-color .wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button,
.has-ink-background-color .wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button {
	color: #fff;
	border-color: rgba(255,255,255,.85);
}
.has-charcoal-background-color .wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:hover,
.has-deep-black-background-color .wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:hover,
.has-ink-background-color .wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:hover {
	background: #fff;
	color: var(--wp--preset--color--ink, #1F1F1F);
	border-color: #fff;
}

/* Respect explicit editor background-color choices (e.g. ink/accent picks)
 * by *not* overriding them — only fall back when no color class is set. */
.wp-block-button__link.wp-element-button[class*="has-"][class*="-background-color"] {
	background-image: none;
}

/* Reduced-motion users get the visual upgrade without the movement. */
@media (prefers-reduced-motion: reduce) {
	.wp-block-button__link.wp-element-button,
	.wp-block-button__link.wp-element-button::after { transition: none !important; }
	.wp-block-button__link.wp-element-button:hover { transform: none; }
}

/* Small phones: keep buttons readable without overflowing narrow viewports. */
@media (max-width: 480px) {
	.wp-block-button__link.wp-element-button {
		padding: 0.85rem 1.4rem;
		font-size: 0.9rem;
	}
	.wp-block-buttons { gap: 0.85rem; row-gap: 0.85rem; }
}

/* ============================================================================
 * Polish v4.1 — Navbar layout for mobile / small tablet (<= 600px)
 * ----------------------------------------------------------------------------
 * Two related layout issues were happening below the desktop nav breakpoint:
 *
 *   1. 320–380px: trying to fit [logo][hamburger][CTA] on one row crushed the
 *      CTA's text ("Book Now" got clipped).
 *   2. 381–600px: the layout flipped to single-row flex, but the (hidden)
 *      `.sp-navbar__row--main` still held `width: 100%`, eating ~50% of the
 *      header and squeezing the CTA to ~70px wide — clipping the text again.
 *
 * Fix: across the whole small-screen range, restructure the header as a
 * 2-row grid so the CTA always sits on its own row at full width. The nav is
 * a fixed-position overlay at this size, so collapsing its row-wrapper has
 * zero effect on the menu itself. No DOM changes required.
 *
 *   Row 1: [ logo .................. hamburger ]
 *   Row 2: [        CTA — full-width           ]
 * ========================================================================= */
@media (max-width: 600px) {
	/* WordPress core injects a `wp-container-*` flex layout on .wp-block-group
	 * with higher specificity. We must `!important` the display/grid props to
	 * override that one-off generated rule — there is no themeable hook. */
	.sp-site-header__inner {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) auto !important;
		grid-template-rows: auto auto;
		column-gap: 0.6rem;
		row-gap: 0.7rem;
		align-items: center;
		flex-wrap: wrap;
	}
	.sp-site-header__brand {
		grid-column: 1 / 2;
		grid-row: 1 / 2;
		min-width: 0;
	}
	/* Dissolve the navbar's own box so its children land in the header grid. */
	.sp-navbar {
		display: contents;
	}
	/* The row--main wrapper holds the fixed-overlay nav, which is positioned
	 * outside the document flow anyway. Collapse it so it never steals space
	 * from the CTA. */
	.sp-navbar__row--main {
		display: contents;
	}
	.sp-navbar__toggle {
		grid-column: 2 / 3;
		grid-row: 1 / 2;
		justify-self: end;
		align-self: center;
	}
	.sp-navbar__cta {
		grid-column: 1 / -1;
		grid-row: 2 / 3;
		width: 100%;
		box-sizing: border-box;
		justify-content: center;
		padding: 0.8rem 1rem;
		font-size: 0.95rem;
		letter-spacing: 0.04em;
		white-space: nowrap;
	}
	/* The two-row site header is taller than the single-row one; tell the
	 * fixed mobile nav overlay to start below it so menu items aren't covered. */
	.sp-navbar__nav { top: var(--sp-header-h, 116px); }
}

/* Extra-small (<= 360px): tighten typography so the CTA pill stays comfortable. */
@media (max-width: 360px) {
	.sp-navbar__cta { padding: 0.75rem 0.9rem; font-size: 0.88rem; }
	.sp-site-header__brand .wp-block-site-logo img { max-height: 40px; }
}

/* Tablet (601–960px): the desktop nav is hidden but the row wrapper still
 * had `width: 100%`, which crushed the CTA to ~90px and clipped its label.
 * Collapsing it lets the toggle + CTA sit naturally with `justify-content:
 * space-between`. */
@media (min-width: 601px) and (max-width: 960px) {
	.sp-navbar__row--main { width: auto; flex: 0 0 auto; }
	.sp-navbar__cta {
		flex: 0 0 auto;
		padding: 0.75rem 1.25rem;
		font-size: 0.9rem;
		white-space: nowrap;
	}
}

/* =========================================================================
   Polish v6 - Hero background painter (Featured Image -> .sp-hero)
   ========================================================================= */
.sp-hero { position: relative; isolation: isolate; overflow: hidden; }
.sp-hero::before {
content: "";
position: absolute;
inset: -1.5rem;
z-index: -2;
background-image: var(--sp-hero-bg, none);
background-size: cover;
background-position: var(--sp-hero-focal, 50% 50%);
background-repeat: no-repeat;
filter: blur(var(--sp-hero-blur, 0));
transform: scale(1.04);
transition: transform .6s var(--sp-ease, cubic-bezier(.2,.7,.2,1));
pointer-events: none;
}
.sp-hero::after {
content: "";
position: absolute;
inset: 0;
z-index: -1;
background:
linear-gradient(180deg,
rgba(15,22,33, calc(var(--sp-hero-overlay, .55) * 1.05)) 0%,
rgba(15,22,33, calc(var(--sp-hero-overlay, .55) * 0.75)) 100%);
pointer-events: none;
}
/* When the painter sets --sp-hero-bg, kill any backplate gradient (e.g.
   sp-bg-cinematic) so the image is what's visible. */
.sp-hero.sp-bg-cinematic { background: transparent !important; }
.sp-hero h1, .sp-hero h2, .sp-hero p,
.sp-hero .sp-eyebrow, .sp-hero .sp-lead,
.sp-hero .sp-display { color: #fff !important; }
.sp-hero .sp-eyebrow { color: var(--wp--preset--color--accent, #f5c542) !important; }
.sp-hero h1.sp-display, .sp-hero h2.sp-display, .sp-hero .sp-display { text-shadow: 0 2px 22px rgba(0,0,0,.35); }
.sp-hero .sp-lead { color: rgba(255,255,255,.92) !important; text-shadow: 0 1px 14px rgba(0,0,0,.35); }
.sp-hero .wp-block-button__link { box-shadow: 0 12px 32px -10px rgba(0,0,0,.45); }
@media (prefers-reduced-motion: no-preference) {
.sp-hero.is-visible::before { transform: scale(1.0); transition-duration: 1.4s; }
}

/* =========================================================================
   Polish v6 - Mobile hamburger visibility on home dark hero
   ========================================================================= */
.home .sp-site-header:not(.is-scrolled) .sp-navbar__toggle {
background-color: rgba(255,255,255,.12);
border-color: rgba(255,255,255,.55);
}
.home .sp-site-header:not(.is-scrolled) .sp-navbar__toggle-bar { background-color: #fff; }
.home .sp-site-header:not(.is-scrolled) .sp-navbar__toggle:hover { background-color: rgba(255,255,255,.22); }
.sp-navbar.is-open .sp-navbar__toggle-bar { background-color: var(--wp--preset--color--ink, #1F1F1F) !important; }
.sp-navbar.is-open .sp-navbar__toggle { background-color: #fff !important; border-color: #EDEDED !important; }

/* =========================================================================
   Polish v6 - Mobile drawer nav UX (<= 960px)
   ========================================================================= */
@media (max-width: 960px) {
.sp-navbar__nav {
padding: 1.5rem 1.25rem calc(3rem + env(safe-area-inset-bottom, 0px));
background-color: #ffffff !important;
color: var(--wp--preset--color--ink, #1F1F1F);
}
.sp-navbar__menu > .menu-item > a,
.home .sp-navbar__menu > .menu-item > a {
color: var(--wp--preset--color--ink, #1F1F1F) !important;
background: transparent !important;
font-size: 1.05rem;
font-weight: 600;
padding: 1.05rem 0.25rem;
min-height: 48px;
gap: .75rem;
}
.sp-navbar__menu > .menu-item { border-bottom: 1px solid #F0EFEC; }
.sp-navbar__menu > .menu-item:last-child { border-bottom: 0; }
.sp-navbar__menu > .menu-item > a .nav-dropdown-icon {
width: 16px; height: 16px; flex: 0 0 auto; opacity: .55;
transition: transform .25s ease, opacity .2s ease;
}
.sp-navbar__menu > .menu-item.is-open > a .nav-dropdown-icon {
transform: rotate(180deg); opacity: 1;
color: var(--wp--preset--color--accent, #d4a017);
}
.sp-navbar__menu .sub-menu,
.sp-navbar__menu .mega-dropdown {
display: none;
grid-template-columns: 1fr !important;
width: 100% !important;
min-width: 0 !important;
max-width: 100% !important;
margin: 0 0 .75rem !important;
padding: .65rem .75rem .9rem !important;
background: #FBF8F1 !important;
border: 1px solid #EFE7D2 !important;
border-radius: 12px !important;
box-shadow: none !important;
gap: .35rem !important;
}
.sp-navbar__menu .menu-item-has-children.is-open > .sub-menu,
.sp-navbar__menu .menu-item-has-children.is-open > .mega-dropdown { display: grid !important; }
.sp-navbar__menu .mega-dropdown__group { padding: .35rem 0; }
.sp-navbar__menu .mega-dropdown__group + .mega-dropdown__group {
border-top: 1px solid color-mix(in srgb, currentColor 10%, transparent);
margin-top: .35rem; padding-top: .65rem;
}
.sp-navbar__menu .mega-dropdown__title {
display: block;
padding: .25rem .25rem .35rem !important;
font-size: .72rem !important; font-weight: 700 !important;
letter-spacing: .12em !important; text-transform: uppercase;
color: var(--wp--preset--color--primary-hover, #D9A928) !important;
border-bottom: 0 !important;
}
.sp-navbar__menu .mega-dropdown__list .menu-item > a,
.sp-navbar__menu .sub-menu .menu-item > a {
display: block !important;
padding: .65rem .55rem !important;
font-size: .98rem !important; font-weight: 500 !important;
color: var(--wp--preset--color--ink, #1F1F1F) !important;
border-radius: 8px;
min-height: 44px; line-height: 1.3;
word-break: break-word;
}
.sp-navbar__menu .mega-dropdown__list .menu-item > a:hover,
.sp-navbar__menu .sub-menu .menu-item > a:hover {
background: rgba(245,197,66,.18) !important;
color: var(--wp--preset--color--ink, #1F1F1F) !important;
}
.sp-navbar__contact-mobile {
margin-top: 1.25rem; padding-top: 1rem;
border-top: 1px solid #EDEDED;
}
.sp-navbar__contact-mobile .sp-navbar__contact {
flex-direction: column; align-items: stretch; gap: 1rem;
}
.sp-navbar__contact-mobile .sp-navbar__phone {
justify-content: center; padding: .75rem;
background: #FBF8F1; border-radius: 10px; font-size: 1.05rem;
}
.sp-navbar__contact-mobile .sp-navbar__social { justify-content: center; gap: .65rem; }
}

/* =========================================================================
   Polish v6 - Global 320px guardrails
   ========================================================================= */
html, body { max-width: 100%; overflow-x: hidden; }
img, video, iframe { max-width: 100%; height: auto; }
@media (max-width: 480px) {
.sp-section-pad, .sp-section-pad--lg, .sp-hero, .sp-hero-section {
padding-left: max(1rem, env(safe-area-inset-left)) !important;
padding-right: max(1rem, env(safe-area-inset-right)) !important;
}
.sp-display, h1.sp-display, h2.sp-display {
font-size: clamp(1.85rem, 8.5vw, 2.6rem) !important;
line-height: 1.12 !important;
max-width: 100%; word-break: break-word; hyphens: auto;
}
.sp-lead { font-size: 1rem !important; line-height: 1.6 !important; }
.wp-block-columns { flex-wrap: wrap !important; }
.wp-block-column { flex-basis: 100% !important; min-width: 0 !important; }
.wp-block-buttons {
justify-content: center !important;
gap: .75rem !important; row-gap: .75rem !important;
width: 100%;
}
.wp-block-button { flex: 1 1 100%; }
.wp-block-button > .wp-block-button__link {
display: block; width: 100%; text-align: center;
white-space: normal; padding: .9rem 1.1rem; font-size: .98rem;
}
.sp-hero .wp-block-buttons { flex-direction: column; }
}
@media (max-width: 360px) {
.sp-display, h1.sp-display, h2.sp-display { font-size: clamp(1.6rem, 9vw, 2.1rem) !important; }
.wp-block-heading { font-size: clamp(1.4rem, 7vw, 1.9rem) !important; word-break: break-word; }
.sp-site-header__brand .wp-block-site-logo img { max-height: 38px; }
.sp-navbar__toggle { width: 40px; height: 40px; padding: 0 8px; }
}

/* =========================================================================
   Polish v6 - Meet The Team - equal-height cards + contained expand
   ========================================================================= */
.sp-team-grid { align-items: stretch; grid-auto-rows: auto; }
.sp-team-card {
height: 100%; position: relative;
display: flex; flex-direction: column;
}
.sp-team-card__photo { aspect-ratio: 4 / 5; max-height: 360px; }
@media (min-width: 720px) { .sp-team-card__photo { max-height: 380px; } }
.sp-team-card__body { flex: 1 1 auto; }
.sp-team-card__details {
border-top: 1px solid rgba(17,17,17,.06);
margin-top: auto; padding-top: 1rem;
}
.sp-team-card__details[open] {
position: absolute; inset: 0;
margin: 0; padding: 0;
background: var(--wp--preset--color--base, #fff);
border: 0;
border-radius: var(--sp-radius-lg, 28px);
box-shadow: 0 24px 60px -20px rgba(0,0,0,.22), 0 8px 18px -10px rgba(0,0,0,.18);
z-index: 5;
display: flex; flex-direction: column;
overflow-y: auto;
animation: sp-team-fade .35s cubic-bezier(.2,.7,.2,1);
}
.sp-team-card:has(.sp-team-card__details[open]) .sp-team-card__body {
position: static;
}
.sp-team-card__details[open] summary {
position: sticky; top: 0; z-index: 2;
display: flex; align-items: center; justify-content: space-between;
gap: .75rem;
padding: 1rem 1.25rem; margin: 0;
font-size: .85rem; font-weight: 700;
letter-spacing: .1em; text-transform: uppercase;
color: var(--wp--preset--color--ink, #1F1F1F);
background: rgba(255,255,255,.96);
backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
border-bottom: 1px solid rgba(17,17,17,.06);
border-radius: var(--sp-radius-lg, 28px) var(--sp-radius-lg, 28px) 0 0;
}
.sp-team-card__details[open] summary::after {
content: "Close \2715";
font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
padding: .5rem .85rem;
background: var(--wp--preset--color--ink, #1F1F1F);
color: #fff; border-radius: 999px;
transition: transform .2s ease, background .2s ease;
}
.sp-team-card__details[open] summary:hover::after {
background: var(--wp--preset--color--accent, #d4a017);
color: var(--wp--preset--color--ink, #1F1F1F);
transform: translateY(-1px);
}
.sp-team-card__details[open] > *:not(summary):not(.sp-team-card__close-bottom) {
padding: 1.25rem 1.5rem; margin: 0;
}
.sp-team-card__details[open] > h4 { padding-bottom: .25rem !important; }
.sp-team-card__details[open] > h4 + p { padding-top: 0 !important; }
.sp-team-card__close-bottom {
position: sticky; bottom: 0;
display: flex; justify-content: center;
padding: 1rem 1.25rem 1.5rem;
background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.95) 40%);
z-index: 2;
}
.sp-team-card__close-bottom button {
appearance: none; border: 0; cursor: pointer;
padding: .85rem 1.6rem; font-size: .85rem;
font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
color: #fff; background: var(--wp--preset--color--ink, #1F1F1F);
border-radius: 999px;
transition: transform .2s ease, background .2s ease;
}
.sp-team-card__close-bottom button:hover {
background: var(--wp--preset--color--accent, #d4a017);
color: var(--wp--preset--color--ink, #1F1F1F);
transform: translateY(-1px);
}
@keyframes sp-team-fade {
from { opacity: 0; transform: scale(.98); }
to   { opacity: 1; transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
.sp-team-card__details[open] { animation: none; }
}

/* Polish v6 fix - on mobile when drawer is open, force current-menu-item to ink too */
@media (max-width: 960px) {
.home .sp-navbar.is-open .sp-navbar__menu > .menu-item.current-menu-item > a,
.home .sp-site-header:not(.is-scrolled) .sp-navbar.is-open .sp-navbar__menu > .menu-item.current-menu-item > a,
.home .sp-site-header.is-scrolled .sp-navbar.is-open .sp-navbar__menu > .menu-item.current-menu-item > a {
color: var(--wp--preset--color--ink, #1F1F1F) !important;
}
}

/* Polish v6 - hero reveals must always render even if IO is delayed,
   because at narrow widths the hero often fills the viewport and the IO
   threshold of 0.12 against the inner H1 may not trip on first frame. */
.sp-hero .sp-reveal { opacity: 1 !important; transform: none !important; }

/* =========================================================================
   Polish v7 - Mobile navigation: definitive box-sizing + dropdown reset.
   Desktop applies position:absolute and transform:translate(-50%,0) to
   mega-dropdowns. On mobile we MUST reset those, otherwise dropdowns
   render off-canvas (left negative) or wider than the viewport.
   ========================================================================= */
.sp-navbar,
.sp-navbar *,
.sp-navbar *::before,
.sp-navbar *::after { box-sizing: border-box; }

@media (max-width: 960px) {
  .sp-navbar__nav {
    width: 100vw !important;
    max-width: 100vw !important;
    left: 0 !important;
    right: auto !important;
  }
  .sp-navbar__nav .sp-navbar__menu {
    width: 100% !important;
    max-width: 100% !important;
  }
  .sp-navbar__menu .menu-item,
  .sp-navbar__menu .menu-item-has-children {
    width: 100% !important;
    max-width: 100% !important;
  }
  .sp-navbar__menu .sub-menu,
  .sp-navbar__menu .mega-dropdown,
  .sp-navbar__menu > .menu-item-has-children:hover > .sub-menu,
  .sp-navbar__menu > .menu-item-has-children:hover > .mega-dropdown,
  .sp-navbar__menu > .menu-item-has-children:focus-within > .sub-menu,
  .sp-navbar__menu > .menu-item-has-children:focus-within > .mega-dropdown,
  .sp-navbar__menu > .menu-item-has-children.is-open > .sub-menu,
  .sp-navbar__menu > .menu-item-has-children.is-open > .mega-dropdown {
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
  .sp-navbar__menu .sub-menu .menu-item a,
  .sp-navbar__menu .mega-dropdown .menu-item a,
  .sp-navbar__menu .sub-menu .menu-item .sub-menu__title,
  .sp-navbar__menu .mega-dropdown .menu-item .sub-menu__title {
    white-space: normal !important;
    word-break: break-word;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    display: block;
  }
}

/* =========================================================================
   Polish v7 - Hero CTA contrast on inner pages.
   Outline secondary CTA on the hero must be white-text by default since
   the hero background is dark. Hover inverts to white fill / ink text.
   ========================================================================= */
.sp-hero .wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button,
.sp-hero .wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button.is-style-outline,
.sp-hero .wp-block-button__link.wp-element-button.is-style-outline,
.sp-hero [class*="is-style-outline"] > .wp-block-button__link.wp-element-button,
:is(.postid-367, .postid-368, .postid-369) .sp-hero__ctas .sp-btn--secondary {
  color: #fff !important;
  border-color: rgba(255, 255, 255, .92) !important;
  background-color: rgba(255, 255, 255, .08) !important;
  background-image: none !important;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  text-shadow: 0 1px 8px rgba(0, 0, 0, .35);
}
.sp-hero .wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:hover,
.sp-hero .wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:focus-visible,
.sp-hero .wp-block-button__link.wp-element-button.is-style-outline:hover,
.sp-hero .wp-block-button__link.wp-element-button.is-style-outline:focus-visible {
  background-color: #fff !important;
  color: var(--wp--preset--color--ink, #1F1F1F) !important;
  border-color: #fff !important;
  text-shadow: none;
}

/* Equalize CTA sizing across every hero on mobile so both buttons look paired. */
@media (max-width: 600px) {
  .sp-hero .wp-block-buttons {
    gap: .65rem;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }
  .sp-hero .wp-block-buttons > .wp-block-button {
    width: 100%;
  }
  .sp-hero .wp-block-buttons > .wp-block-button > .wp-block-button__link,
  :is(.postid-367, .postid-368, .postid-369) .sp-hero__ctas .sp-btn--secondary {
    width: 100%;
    padding: .95rem 1.25rem !important;
    font-size: 1rem !important;
    line-height: 1.2 !important;
    border-radius: 999px !important;
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
  }
}

/* These dynamic neuropathy heroes reuse the core hero's outline treatment. */
:is(.postid-367, .postid-368, .postid-369) .sp-hero__ctas .sp-btn--secondary {
  align-self: center;
  box-sizing: border-box;
}
:is(.postid-367, .postid-368, .postid-369) .sp-hero__ctas .sp-btn--secondary::before {
  content: none;
}

/* =========================================================================
   Polish v7 - Tighter Meet The Team cards.
   Slightly smaller doctor image + denser card body.
   ========================================================================= */
.sp-team-card__photo {
  aspect-ratio: 4 / 5;
  max-height: 280px;
}
@media (min-width: 720px) {
  .sp-team-card__photo { max-height: 300px; }
}
.sp-team-card__body {
  padding: 1rem 1.15rem 1.1rem;
  gap: .35rem;
}
.sp-team-card__title  { font-size: 1.12rem; line-height: 1.25; }
.sp-team-card__role   { font-size: .8rem; letter-spacing: .04em; }
.sp-team-card__excerpt { font-size: .92rem; line-height: 1.45; }

/* =========================================================================
   Polish v7 - Concern card icon polish (when SVG is JS-injected).
   ========================================================================= */
.sp-concern__icon { display: inline-flex; align-items: center; justify-content: center; }
.sp-concern__icon svg { width: 1.5rem; height: 1.5rem; display: block; }


/* =========================================================================
   Polish v8 - Left-align body text across all cards.
   Per spec: body copy reads left; only intentional callouts stay centered.
   Card titles can keep their decorative centering on icon-on-top variants
   like .sp-feature/.sp-pillar/.sp-concern, but the bodies always go left.
   ========================================================================= */
.sp-card,
.sp-card--note {
  align-items: stretch !important;
  text-align: left !important;
}
.sp-card .sp-card__title,
.sp-card .sp-card__body,
.sp-card .sp-card__cta,
.sp-card--note .sp-card__title,
.sp-card--note .sp-card__body,
.sp-benefit-card .sp-benefit-card__title,
.sp-benefit-card .sp-benefit-card__desc,
.sp-feature .sp-feature__body,
.sp-pillar .sp-pillar__body,
.sp-concern .sp-concern__desc,
.sp-step .sp-step__body {
  text-align: left !important;
}

/* Keep visual rhythm: title still left-aligned, body left.
   Eyebrows above grids stay centered via their existing has-text-align-center
   class - we only target body paragraphs sitting INSIDE card containers. */
.sp-card .wp-block-paragraph,
.sp-card--note .wp-block-paragraph,
.sp-card .wp-block-list,
.sp-card--note .wp-block-list {
  text-align: left !important;
}

/* Lead paragraphs that appear next to body content inside split sections. */
.sp-split .sp-lead,
.sp-split p { text-align: left !important; }

/* Concern card icon stays centered above the title block. */
.sp-concern { align-items: flex-start !important; text-align: left !important; }
.sp-concern .sp-concern__title { text-align: left !important; }
.sp-concern .sp-concern__icon { align-self: flex-start; }

/* =========================================================================
   Polish v8 - Equal-height card grids.
   All card grids become CSS grids with stretching tracks so the tallest
   card in a row sets the row height. Children get height:100% so they
   fill the track and align their CTAs to the bottom.
   ========================================================================= */
.sp-grid--3,
.sp-grid--4,
.sp-explore-row,
.sp-services-grid,
.sp-features,
.sp-pillars,
.sp-benefit-grid,
.sp-concerns__grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
  gap: 1.25rem !important;
  align-items: stretch !important;
}
@media (min-width: 720px) {
  .sp-grid--3,
  .sp-explore-row,
  .sp-services-grid,
  .sp-benefit-grid,
  .sp-pillars { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important; }
}
@media (min-width: 1024px) {
  .sp-grid--3,
  .sp-explore-row,
  .sp-services-grid { grid-template-columns: repeat(3, 1fr) !important; }
  .sp-grid--4 { grid-template-columns: repeat(4, 1fr) !important; }
}
.sp-grid--3 > *,
.sp-grid--4 > *,
.sp-explore-row > *,
.sp-services-grid > *,
.sp-features > *,
.sp-pillars > *,
.sp-benefit-grid > *,
.sp-concerns__grid > * {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}
/* Pin the CTA / arrow to the bottom of the card. */
.sp-card .sp-card__cta,
.sp-service-card .sp-service-card__cta,
.sp-card--link .sp-card__cta {
  margin-top: auto !important;
  padding-top: .9rem;
}

/* =========================================================================
   Polish v8 - Service / Continue-exploring card refresh.
   - Compact size.
   - Featured image at top when present.
   - Title + 2-line excerpt + bottom-pinned CTA.
   ========================================================================= */
.sp-service-card {
  background: var(--wp--preset--color--base, #fff);
  border-radius: var(--sp-radius-md, 14px);
  box-shadow: var(--sp-shadow-sm, 0 4px 14px rgba(17,17,17,.05));
  border: 1px solid rgba(17,17,17,.06);
  overflow: hidden;
  text-decoration: none !important;
  color: inherit !important;
  transition: transform .3s var(--sp-ease, ease), box-shadow .3s var(--sp-ease, ease), border-color .3s var(--sp-ease, ease);
  display: flex;
  flex-direction: column;
  height: 100%;
}
.sp-service-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--sp-shadow-lg, 0 18px 40px rgba(17,17,17,.10));
  border-color: rgba(245,197,66,.45);
}
.sp-service-card__media {
  position: relative;
  aspect-ratio: 16 / 10;
  background: linear-gradient(135deg, rgba(245,197,66,.18), rgba(217,169,40,.08));
  overflow: hidden;
}
.sp-service-card__media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  display: block;
  transition: transform .5s var(--sp-ease, ease);
}
.sp-service-card:hover .sp-service-card__media img { transform: scale(1.04); }
.sp-service-card__inner { padding: 1.1rem 1.15rem 1.15rem; display: flex; flex-direction: column; gap: .45rem; flex: 1; }
.sp-service-card__eyebrow {
  font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  color: var(--wp--preset--color--accent, #B8841C);
}
.sp-service-card__title  { font-size: 1.05rem !important; line-height: 1.3 !important; margin: 0 !important; color: var(--wp--preset--color--ink, #1F1F1F); }
.sp-service-card__body   { font-size: .92rem !important; line-height: 1.5 !important; color: rgba(31,31,31,.72); margin: 0 !important; }
.sp-service-card__cta    { margin-top: auto; font-weight: 600; color: var(--wp--preset--color--accent, #B8841C); display: inline-flex; align-items: center; gap: .35rem; padding-top: .65rem; }
.sp-service-card__cta span[aria-hidden] { transition: transform .25s var(--sp-ease, ease); }
.sp-service-card:hover .sp-service-card__cta span[aria-hidden] { transform: translateX(4px); }

/* =========================================================================
   Polish v8 - Contact page polish.
   ========================================================================= */
.sp-contact-form { gap: 2.5rem; }
.sp-contact-form > .wp-block-column { flex: 1 1 0; min-width: 0; }
.sp-contact-form .sp-form-card,
.sp-contact-form form.sp-form-card {
  background: var(--wp--preset--color--base, #fff);
  padding: 1.5rem 1.5rem 1.6rem;
  border-radius: var(--sp-radius-md, 14px);
  box-shadow: var(--sp-shadow-md, 0 10px 30px rgba(17,17,17,.06));
  border: 1px solid rgba(17,17,17,.05);
  display: grid;
  gap: .85rem;
}
.sp-contact-form .sp-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; }
@media (max-width: 540px) { .sp-contact-form .sp-form-row { grid-template-columns: 1fr; } }
.sp-contact-form .sp-field { display: flex; flex-direction: column; gap: .3rem; }
.sp-contact-form .sp-field__label {
  font-size: .78rem; font-weight: 600; letter-spacing: .04em; color: var(--wp--preset--color--ink, #1F1F1F);
  text-align: left !important;
}
.sp-contact-form .sp-field__hint { font-weight: 400; color: rgba(31,31,31,.55); margin-left: .25rem; }
.sp-contact-form .sp-field__input {
  width: 100%;
  font: inherit;
  padding: .7rem .85rem;
  border-radius: 10px;
  border: 1px solid rgba(17,17,17,.18);
  background: #fff;
  color: var(--wp--preset--color--ink, #1F1F1F);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.sp-contact-form .sp-field__input:focus {
  outline: none;
  border-color: var(--wp--preset--color--accent, #B8841C);
  box-shadow: 0 0 0 3px rgba(184,132,28,.18);
}
.sp-contact-form textarea.sp-field__input { resize: vertical; min-height: 110px; }
.sp-contact-form .sp-form-card__submit {
  margin-top: .25rem;
  padding: .9rem 1.5rem;
  border-radius: 999px;
  font-weight: 600;
  background: linear-gradient(135deg, #F5C542, #D9A928);
  color: var(--wp--preset--color--ink, #1F1F1F);
  border: 0;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease;
}
.sp-contact-form .sp-form-card__submit:hover { transform: translateY(-1px); box-shadow: 0 10px 26px rgba(245,197,66,.35); }
.sp-contact-form .sp-form-card__note { font-size: .8rem; color: rgba(31,31,31,.6); margin: .2rem 0 0; text-align: left !important; }

.sp-clinic-info-col { display: flex; flex-direction: column; gap: 1rem; }
.sp-info-card {
  background: var(--wp--preset--color--base, #fff);
  border-radius: var(--sp-radius-md, 14px);
  padding: 1.1rem 1.25rem;
  border: 1px solid rgba(17,17,17,.06);
  box-shadow: var(--sp-shadow-sm, 0 4px 14px rgba(17,17,17,.05));
  text-align: left;
  line-height: 1.5;
}
.sp-info-card strong { display: block; margin-bottom: .35rem; color: var(--wp--preset--color--accent, #B8841C); font-size: .82rem; letter-spacing: .06em; text-transform: uppercase; }
.sp-info-card a { color: var(--wp--preset--color--ink, #1F1F1F); text-decoration: none; }
.sp-info-card a:hover { color: var(--wp--preset--color--accent, #B8841C); }
.sp-hours { list-style: none; margin: 0; padding: 0; }
.sp-hours li { display: flex; justify-content: space-between; padding: .15rem 0; }
.sp-hours li::before { content: ''; }

/* Map section */
.sp-map-section {
  display: flex; flex-direction: column; align-items: center;
}
.sp-map__frame {
  width: 100%;
  max-width: 1100px;
  height: 360px;
  border-radius: var(--sp-radius-md, 14px);
  border: 0;
  display: block;
  box-shadow: var(--sp-shadow-md, 0 10px 30px rgba(17,17,17,.06));
}


/* Polish v8.1 - sp-service-card uses <span> children inside the <a>. Flip
   them to block so aspect-ratio resolves, the image fetches, and the
   layout uses the full card width. */
.sp-service-card__media,
.sp-service-card__inner { display: block !important; }
.sp-service-card__eyebrow,
.sp-service-card__cta { display: inline-flex !important; align-items: center; }
.sp-service-card__inner { display: flex !important; flex-direction: column !important; gap: .45rem; padding: 1.1rem 1.15rem 1.15rem; flex: 1; }

/* Polish v8.2 - mobile width guards: prevent horizontal scroll caused by
   alignfull breakouts on narrow viewports. */
html, body { overflow-x: hidden; }
@media (max-width: 600px) {
  .sp-grid--3, .sp-grid--4, .sp-services-grid, .sp-explore-row, .sp-concerns__grid, .sp-pillars, .sp-features, .sp-benefit-grid {
    grid-template-columns: 1fr !important;
    padding-left: clamp(12px, 4vw, 18px) !important;
    padding-right: clamp(12px, 4vw, 18px) !important;
  }
  .sp-info-card, .sp-form-card, .sp-card, .sp-service-card, .sp-card--link {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  .sp-map__frame { width: 100% !important; }
  /* alignfull groups need to respect viewport width */
  .alignfull { max-width: 100vw !important; overflow-x: clip; }
}

/* =========================================================================
   Polish v8.3 - Four targeted fixes
   1. Hero: kill the inner painter/overlay when .sp-hero is nested inside
      a .sp-hero-section (home uses a video bg section that supplies its
      own overlay; the inner ::after was drawing a dark rectangle around
      the centered text).
   2. Related-care cards: .sp-explore-row was forced to display:grid by
      Polish v8 but grid auto-rows mis-sized tracks (181px) while the
      content-box cards rendered 246px, causing card 4 to overlap cards
      1-3. Reassert flex layout with doubled specificity.
   3. Form/info-card spacing: .sp-info-card was display:grid so <strong>
      became its own row with a 13.6px gap before the address text,
      creating visible empty bands. Flip to block + small margin on
      <strong>. Also tighten .sp-field input padding.
   4. Map: .sp-map__frame was capped at max-width:1100px inside an
      already-alignfull .sp-map-section (1264px wide). Let the frame fill
      the available width.
   ========================================================================= */

/* --- 1. Hero rectangle on home -------------------------------------- */
.sp-hero-section .sp-hero,
.sp-hero-section--bg-video .sp-hero {
  isolation: auto;
  overflow: visible;
}
.sp-hero-section .sp-hero::before,
.sp-hero-section .sp-hero::after,
.sp-hero-section--bg-video .sp-hero::before,
.sp-hero-section--bg-video .sp-hero::after {
  content: none !important;
  display: none !important;
  background: none !important;
}

/* --- 2. Related-care card overlap ----------------------------------- */
.sp-explore-row.sp-explore-row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  grid-auto-rows: auto !important;
  gap: 1.25rem;
}
.sp-explore-row.sp-explore-row > * {
  flex: 0 1 calc(33.333% - .84rem);
  min-width: 260px;
  max-width: calc(33.333% - .84rem);
  box-sizing: border-box;
}
@media (max-width: 900px) {
  .sp-explore-row.sp-explore-row > * {
    flex-basis: calc(50% - .625rem);
    max-width: calc(50% - .625rem);
  }
}
@media (max-width: 600px) {
  .sp-explore-row.sp-explore-row > * {
    flex-basis: 100%;
    max-width: 100%;
    min-width: 0;
  }
}

/* Belt-and-suspenders: any other use of .sp-card.sp-card--link in a
   grid container should also stay self-contained and not overflow. */
.sp-card.sp-card--link {
  box-sizing: border-box;
  height: auto;
  min-height: 0;
}

/* --- 3. Form fields & info-card spacing ----------------------------- */
.sp-field {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  margin: 0;
}
.sp-field__label {
  display: block;
  margin: 0;
  line-height: 1.2;
  font-weight: 500;
}
.sp-field__input,
.sp-field__textarea,
.sp-field__select,
.sp-contact-form .sp-field__input,
.sp-contact-form .sp-field__textarea,
.sp-contact-form .sp-field__select {
  display: block;
  width: 100%;
  padding: .55rem .8rem !important;
  line-height: 1.35 !important;
  box-sizing: border-box;
}
.sp-contact-form textarea.sp-field__input,
.sp-contact-form textarea.sp-field__textarea {
  min-height: 92px !important;
}
.sp-form-row {
  gap: .8rem !important;
}
.sp-form-card {
  gap: .8rem !important;
}

.sp-info-card {
  display: block !important;
  padding: 1rem 1.15rem;
  line-height: 1.5;
}
.sp-info-card > strong {
  display: block;
  margin: 0 0 .25rem;
  font-weight: 600;
}
.sp-info-card > br { display: none; }
.sp-info-card a { word-break: break-word; }
.sp-info-card .sp-hours { margin: .35rem 0 0; padding: 0; list-style: none; }
.sp-info-card .sp-hours li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .15rem 0;
}

/* --- 4. Map full viewport width ------------------------------------- */
.sp-map__frame {
  max-width: none !important;
  width: 100% !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  height: clamp(320px, 45vh, 480px) !important;
}
.sp-map,
.sp-map-section {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.sp-map-section > .wp-block-group__inner-container,
.sp-map-section > .sp-map {
  max-width: none !important;
  width: 100% !important;
}

/* =========================================================================
	 Polish v8.4 - Contact layout spacing + hours alignment
	 ========================================================================= */
.sp-contact-form > .wp-block-column {
	padding-left: clamp(12px, 2.2vw, 28px);
	padding-right: clamp(12px, 2.2vw, 28px);
}
.sp-contact-form .sp-form-card,
.sp-contact-form form.sp-form-card {
	margin-top: clamp(.75rem, 1.6vw, 1.2rem) !important;
}

/* Remove decorative pseudo bullets from global list rules; they were
	 consuming space and pushing day labels away from the left edge. */
.sp-hours li {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
}
.sp-hours li::before {
	content: none !important;
	display: none !important;
}
.sp-hours li > span:first-child {
	font-weight: 600;
	white-space: nowrap;
}
.sp-hours li > span:last-child {
	text-align: right;
	white-space: nowrap;
}

@media (max-width: 780px) {
	.sp-contact-form > .wp-block-column {
		padding-left: clamp(10px, 4vw, 16px);
		padding-right: clamp(10px, 4vw, 16px);
	}
}

/* =========================================================================
 * ============================  DARK MODE  ================================
 * Premium, modern dark theme — COLOR SYSTEM ONLY.
 *
 * This layer is appended last so it wins by source order. It does NOT touch
 * layout, spacing, typography, sizing or animation — only colors, plus the
 * minimal shadow/border adjustments required for contrast on dark surfaces.
 *
 * The base palette is flipped at the source in theme.json (so every
 * `--wp--preset--color--*` token, every WP `has-*-color` utility class and
 * the block editor all go dark automatically). The rules below:
 *   1. Define a centralized set of semantic dark tokens.
 *   2. Re-skin surfaces that hard-coded light literals (#fff, #ededed, light
 *      gradients, dark-on-light borders/shadows).
 *   3. Resolve the two dual-role tokens: `ink` (now light) must stay DARK as
 *      text on yellow/brand surfaces; `base` (now dark) must stay LIGHT as
 *      text on already-dark sections.
 * ========================================================================= */

:root {
	/* ---- Backgrounds & surfaces ---- */
	--sp-bg:            #0C1117; /* primary background  */
	--sp-bg-2:          #0E141B; /* secondary background */
	--sp-surface:       #10171F; /* sunken surface (inputs, wells) */
	--sp-card:          #18212C; /* card background */
	--sp-elevated:      #1E2835; /* elevated surface (dropdowns, popovers) */
	--sp-elevated-2:    #25303F; /* hover / raised-on-raised */

	/* ---- Text ---- */
	--sp-text:          #EAEEF3; /* primary text */
	--sp-text-secondary:#C2CAD6; /* secondary text */
	--sp-text-muted:    #94A0B0; /* muted / meta text */
	--sp-on-accent:     #14181C; /* text on yellow / brand surfaces */

	/* ---- Lines ---- */
	--sp-border:        rgba(255, 255, 255, .09);
	--sp-border-strong: rgba(255, 255, 255, .18);

	/* ---- Brand & status ---- */
	--sp-primary:       #F5C542;
	--sp-primary-hover: #FFD45E;
	--sp-accent:        #F5C542;
	--sp-success:       #3DD68C;
	--sp-warning:       #F5B53C;
	--sp-error:         #F4708A;

	/* ---- Depth (override the light-mode shadow tokens for dark) ---- */
	--sp-shadow-sm: 0 1px 2px rgba(0,0,0,.40), 0 2px 8px rgba(0,0,0,.35);
	--sp-shadow-md: 0 4px 12px rgba(0,0,0,.45), 0 12px 32px rgba(0,0,0,.40);
	--sp-shadow-lg: 0 12px 24px rgba(0,0,0,.50), 0 32px 64px rgba(0,0,0,.55);
}

/* ---- Page canvas ---- */
body {
	background-color: var(--sp-bg);
	color: var(--sp-text);
}

/* ----------------------------------------------------------------------------
 * Surfaces — give cards depth by elevating them above the page background and
 * restoring hairline borders that were dark-on-light (now invisible on dark).
 * ------------------------------------------------------------------------- */
.sp-card,
.sp-step,
.sp-quote,
.sp-faq details,
.sp-benefit-card,
.sp-service-card,
.sp-team-card,
.sp-form-card,
.sp-contact-form .sp-form-card,
.sp-contact-form form.sp-form-card,
.sp-hero-list__link,
.sp-info-card,
.sp-clinic-info-col .sp-info-card,
.sp-archive-grid__card-link,
.sp-concern {
	background: var(--sp-card) !important;
	border-color: var(--sp-border) !important;
}
.sp-concern {
	background:
		linear-gradient(180deg, var(--sp-elevated) 0%, var(--sp-card) 100%) !important;
}

/* Hover/active surface accents stay branded but lift toward gold. */
.sp-card:hover,
.sp-step:hover,
.sp-service-card:hover,
.sp-benefit-card:hover,
.sp-team-card:hover,
.sp-hero-list__link:hover,
.sp-archive-grid__card-link:hover,
.sp-faq details[open] {
	border-color: rgba(245, 197, 66, .45) !important;
}

/* Glass card on dark sections: lift the tint so it reads. */
.sp-glass-light {
	background: rgba(255, 255, 255, .06) !important;
	border: 1px solid var(--sp-border) !important;
}

/* Section gradient backplates that hard-coded light values. */
.sp-bg-soft {
	background: linear-gradient(180deg, var(--sp-surface) 0%, var(--sp-bg) 100%) !important;
}
.sp-frame {
	background: linear-gradient(135deg, var(--sp-elevated), var(--sp-surface));
}
.sp-team-card__photo,
.sp-archive-grid__card-media {
	background:
		radial-gradient(60% 80% at 30% 30%, rgba(245,197,66,.18), transparent 70%),
		linear-gradient(135deg, var(--sp-elevated) 0%, var(--sp-surface) 100%);
}

/* Sections explicitly set to the `ink` colour as a background stayed dark in
 * light mode; `ink` now resolves to light text, so pin them to a dark surface
 * and keep their content light. */
.has-ink-background-color {
	background-color: var(--sp-elevated) !important;
	color: var(--sp-text) !important;
}

/* ----------------------------------------------------------------------------
 * Secondary / muted body copy that hard-coded dark greys (invisible on dark).
 * ------------------------------------------------------------------------- */
.sp-concerns__lead,
.sp-concern__desc,
.sp-archive-grid__card-body,
.sp-service-card__body,
.sp-contact-form .sp-field__hint,
.sp-contact-form .sp-form-card__note {
	color: var(--sp-text-secondary) !important;
}

/* Concern pills: dark-on-dark chip ? readable raised chip. */
.sp-concern__tag {
	background: var(--sp-elevated-2);
	color: var(--sp-text-secondary);
	border-color: var(--sp-border);
}
.sp-concern:hover .sp-concern__tag {
	background: rgba(245, 197, 66, .12);
	border-color: rgba(245, 197, 66, .35);
	color: var(--sp-text);
}

/* ----------------------------------------------------------------------------
 * Form fields — sunken dark surface with a clear focus ring.
 * ------------------------------------------------------------------------- */
.sp-field__input,
.sp-contact-form .sp-field__input,
textarea.sp-field__input,
.sp-contact-form textarea.sp-field__input {
	background: var(--sp-surface) !important;
	border-color: var(--sp-border) !important;
	color: var(--sp-text) !important;
}
.sp-field__input::placeholder { color: var(--sp-text-muted) !important; }
.sp-field__input:hover { border-color: var(--sp-border-strong) !important; }
.sp-field__input:focus,
.sp-contact-form .sp-field__input:focus {
	background: var(--sp-elevated) !important;
	border-color: var(--sp-primary) !important;
	box-shadow: 0 0 0 3px rgba(245, 197, 66, .22) !important;
}

/* ----------------------------------------------------------------------------
 * Site header (sticky) + dropdown navigation.
 * ------------------------------------------------------------------------- */
.sp-site-header {
	background-color: rgba(12, 17, 23, .82) !important;
}
.home .sp-site-header.is-scrolled {
	background-color: rgba(12, 17, 23, .92) !important;
	border-bottom-color: var(--sp-border) !important;
}
/* Header text turns light once the home header is solid on scroll. */
.home .sp-site-header.is-scrolled .wp-block-site-title a,
.home .sp-site-header.is-scrolled .wp-block-navigation a,
.home .sp-site-header.is-scrolled .sp-navbar__menu > .menu-item > a,
.home .sp-site-header.is-scrolled .sp-navbar__phone,
.home .sp-site-header.is-scrolled .sp-navbar__social-link {
	color: var(--sp-text) !important;
}

/* Desktop nav link hover (was a dark wash — invisible on a dark header). */
.sp-navbar__menu > li > a:hover,
.sp-navbar__menu > li.current-menu-item > a,
.sp-navbar__menu > li:focus-within > a,
.sp-navbar__menu > .menu-item > a:hover,
.sp-navbar__menu > .menu-item.current-menu-item > a {
	background-color: rgba(255, 255, 255, .07) !important;
}

/* Dropdowns / mega menus. */
.sp-navbar__menu .sub-menu,
.sp-navbar__menu .mega-dropdown {
	background: var(--sp-elevated) !important;
	border-color: var(--sp-border) !important;
	box-shadow: 0 24px 60px rgba(0, 0, 0, .55) !important;
}
.sp-navbar__menu .sub-menu .menu-item > a,
.sp-navbar__menu .sub-menu li a {
	color: var(--sp-text) !important;
}
.sp-navbar__menu .sub-menu .menu-item > a:hover,
.sp-navbar__menu .sub-menu li a:hover {
	background: var(--sp-elevated-2) !important;
	color: var(--sp-primary) !important;
}
.sp-navbar__menu .mega-dropdown__title {
	color: var(--sp-text-muted) !important;
	border-bottom-color: var(--sp-border) !important;
}

/* Actions cluster (phone + social + toggle) and their light hairlines. */
.sp-navbar__actions {
	background-color: var(--sp-surface) !important;
	border-color: var(--sp-border) !important;
}
.sp-navbar__phone { border-right-color: var(--sp-border) !important; }
.sp-navbar__social a {
	background-color: var(--sp-elevated) !important;
	border-color: var(--sp-border) !important;
	color: var(--sp-text) !important;
}
.sp-navbar__social a:hover {
	background-color: var(--sp-primary) !important;
	border-color: var(--sp-primary) !important;
	color: var(--sp-on-accent) !important;
}
.sp-navbar__toggle { border-color: var(--sp-border) !important; }
.sp-navbar__toggle-bar { background-color: var(--sp-text); }

/* ----------------------------------------------------------------------------
 * Mobile drawer navigation (hard-coded white panels / light dividers).
 * ------------------------------------------------------------------------- */
@media (max-width: 960px) {
	.sp-navbar__nav {
		background-color: var(--sp-bg-2) !important;
		border-top-color: var(--sp-border) !important;
		color: var(--sp-text);
	}
	.sp-navbar__menu > .menu-item > a,
	.home .sp-navbar__menu > .menu-item > a {
		color: var(--sp-text) !important;
	}
	.sp-navbar__menu > .menu-item { border-bottom-color: var(--sp-border) !important; }
	.sp-navbar__menu .sub-menu,
	.sp-navbar__menu .mega-dropdown {
		background: var(--sp-surface) !important;
		border-color: var(--sp-border) !important;
	}
	.sp-navbar__menu .sub-menu .menu-item > a,
	.sp-navbar__menu .mega-dropdown__list .menu-item > a {
		color: var(--sp-text) !important;
	}
	.sp-navbar__menu .sub-menu .menu-item > a:hover,
	.sp-navbar__menu .mega-dropdown__list .menu-item > a:hover {
		background: rgba(245, 197, 66, .16) !important;
		color: var(--sp-primary) !important;
	}
	.sp-navbar__contact-mobile { border-top-color: var(--sp-border) !important; }
	.sp-navbar__contact-mobile .sp-navbar__phone {
		background: var(--sp-surface) !important;
		color: var(--sp-text) !important;
	}
}

/* ----------------------------------------------------------------------------
 * DUAL-ROLE FIX #1 — `ink` is now light, but it is used as the text colour on
 * yellow / brand-coloured surfaces, which must stay DARK for contrast.
 * ------------------------------------------------------------------------- */
.sp-btn--primary,
.sp-hero__ctas > .sp-btn--primary:only-child,
.sp-navbar__cta,
.sp-navbar__menu-cta > a,
.sp-cta-banner,
.sp-cta-banner p,
.sp-cta-banner .wp-block-heading,
.sp-form-card__submit,
.sp-contact-form .sp-form-card__submit,
.sp-step .sp-step__num,
.sp-step__num {
	color: var(--sp-on-accent) !important;
}
.sp-step .sp-step__num,
.sp-step__num { -webkit-text-fill-color: var(--sp-on-accent) !important; }

/* Core button block (filled gold) keeps dark text; its sheen/halo are intact. */
.wp-block-button__link.wp-element-button { color: var(--sp-on-accent) !important; }

/* Social-icon hover (gold fill) + expand-card CTA hover (gold fill). */
.sp-navbar__social-link:hover,
.sp-expand-cards__item:hover .sp-expand-cards__cta,
.sp-expand-cards__item:focus-within .sp-expand-cards__cta,
.sp-expand-cards__row:not(:hover):not(:focus-within) .sp-expand-cards__item--default-open .sp-expand-cards__cta {
	color: var(--sp-on-accent) !important;
}

/* Outline / secondary core buttons are transparent — keep their text LIGHT
 * (this rule follows the filled-button rule above so it wins for outlines). */
.wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button,
.wp-block-button__link.wp-element-button.is-style-outline {
	color: var(--sp-text) !important;
	border-color: var(--sp-border-strong) !important;
}
.wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:hover,
.wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:focus-visible,
.wp-block-button__link.wp-element-button.is-style-outline:hover,
.wp-block-button__link.wp-element-button.is-style-outline:focus-visible {
	background: var(--sp-text) !important;
	color: var(--sp-bg) !important;
	border-color: var(--sp-text) !important;
}

/* ----------------------------------------------------------------------------
 * DUAL-ROLE FIX #2 — `base` is now dark, but it is used as the text colour on
 * already-dark (cinematic / charcoal / deep-black) sections, which must stay
 * LIGHT for contrast.
 * ------------------------------------------------------------------------- */
.sp-bg-cinematic,
.sp-bg-cinematic h1,
.sp-bg-cinematic h2,
.sp-bg-cinematic h3,
.sp-bg-cinematic h4,
.sp-bg-cinematic .wp-block-heading,
.sp-bg-cinematic .sp-card .wp-block-heading,
.sp-bg-cinematic .sp-step .sp-step__title {
	color: var(--sp-text) !important;
}
.has-charcoal-background-color .sp-btn--secondary,
.has-deep-black-background-color .sp-btn--secondary,
.has-ink-background-color .sp-btn--secondary {
	color: var(--sp-text) !important;
	border-color: var(--sp-border-strong) !important;
}

/* ----------------------------------------------------------------------------
 * Buttons composed from the generic `.sp-btn--secondary` (outline) on dark
 * pages: keep them as readable light outlines.
 * ------------------------------------------------------------------------- */
.sp-btn--secondary {
	color: var(--sp-text);
	border-color: var(--sp-border-strong);
}
.sp-btn--secondary:hover {
	background-color: var(--sp-text);
	color: var(--sp-bg);
	border-color: var(--sp-text);
}


/* ===========================================================================
 * ==================  DARK MODE — REFINEMENTS (v2)  =========================
 * Color-only polish: smoother section flow, immersive inner-page heroes,
 * white logo on the (now dark) inner navbar, and a high-contrast black CTA
 * button on the homepage offer banner. No layout/spacing/type changes.
 * ========================================================================= */

/* ----------------------------------------------------------------------------
 * 1) SMOOTHER SECTION FLOW
 * The palette bands are now a tight, harmonious dark ladder (theme.json), so
 * adjacent sections differ only subtly. To dissolve the remaining hard seams,
 * full-width band sections fade their top/bottom edges into the page canvas —
 * the seam reads as gentle ambient light rather than a cut line.
 * (Scoped to full-width group sections; cards/buttons are untouched.)
 * ------------------------------------------------------------------------- */
.wp-block-group.alignfull.has-cream-background-color:not(.sp-site-header),
.wp-block-group.alignfull.has-warm-grey-background-color:not(.sp-site-header),
.wp-block-group.alignfull.has-charcoal-background-color:not(.sp-site-header),
.wp-block-group.alignfull.has-deep-black-background-color:not(.sp-site-header),
.wp-block-group.alignfull.has-base-background-color:not(.sp-site-header) {
	background-image: linear-gradient(
		180deg,
		var(--sp-bg) 0,
		transparent 96px,
		transparent calc(100% - 96px),
		var(--sp-bg) 100%
	);
}

/* Cinematic feature band: re-tune its hard-coded near-black to the palette's
   blue-charcoal so it blends with neighbouring sections (auroras unchanged). */
.sp-bg-cinematic {
	background:
		radial-gradient(50rem 30rem at 90% -20%, rgba(245,197,66,.16), transparent 60%),
		radial-gradient(60rem 40rem at -10% 120%, rgba(217,169,40,.10), transparent 60%),
		linear-gradient(180deg, #080C12 0%, var(--sp-bg) 100%) !important;
}

/* Soft-gradient backplate band, retuned to the new ladder. */
.sp-bg-ambient {
	background:
		radial-gradient(60rem 30rem at 80% -10%, rgba(245,197,66,.10), transparent 60%),
		radial-gradient(50rem 30rem at -10% 110%, rgba(255,255,255,.03), transparent 60%),
		var(--sp-card) !important;
}

/* ----------------------------------------------------------------------------
 * 2) IMMERSIVE INNER-PAGE HEROES
 * On all pages except the homepage, image/video heroes felt cropped. Give them
 * a large hero height and centre the content vertically. The bg image already
 * uses object-fit:cover, so a taller frame reveals more of the photo. The inner
 * header is sticky (in flow), so no overlap compensation is required.
 * ------------------------------------------------------------------------- */
body:not(.home) .sp-hero-section--bg-image,
body:not(.home) .sp-hero-section--bg-video {
	min-height: 86vh;
	min-height: 86svh;
	display: flex;
	align-items: center;
}
body:not(.home) .sp-hero-section--bg-image > .sp-hero,
body:not(.home) .sp-hero-section--bg-video > .sp-hero {
	width: 100%;
}
/* Keep the focal point pleasant and avoid an over-tall hero on small screens. */
body:not(.home) .sp-hero-section--bg-image .sp-hero-section__bg,
body:not(.home) .sp-hero-section--bg-video .sp-hero-section__bg {
	object-position: center 35%;
}
@media (max-width: 781px) {
	body:not(.home) .sp-hero-section--bg-image,
	body:not(.home) .sp-hero-section--bg-video {
		min-height: 68vh;
		min-height: 68svh;
	}
}

/* ----------------------------------------------------------------------------
 * 3) WHITE LOGO ON THE DARK NAVBAR (all states / all pages)
 * The header is now dark everywhere, so the white Abundant logo always gives
 * the strongest contrast. (Front-end only: --sp-logo-white-url is enqueued on
 * the front; in the editor the var is undefined so the rule is ignored.)
 * ------------------------------------------------------------------------- */
.sp-site-header .wp-block-site-logo img,
.sp-site-header img.custom-logo {
	content: var(--sp-logo-white-url);
}

/* ----------------------------------------------------------------------------
 * 4) HOMEPAGE "NEW PATIENT SPECIAL OFFER" — BLACK CTA BUTTON
 * The button blended into the yellow banner; a black button creates a clear,
 * high-contrast call to action.
 * ------------------------------------------------------------------------- */
.home .sp-cta-banner .wp-block-button__link.wp-element-button {
	background-color: #0B0E13 !important;
	color: #FFFFFF !important;
	border-color: #0B0E13 !important;
	box-shadow: 0 8px 22px rgba(0, 0, 0, .28) !important;
}
.home .sp-cta-banner .wp-block-button__link.wp-element-button:hover,
.home .sp-cta-banner .wp-block-button__link.wp-element-button:focus-visible {
	background-color: #000000 !important;
	color: var(--sp-primary) !important;
	border-color: #000000 !important;
	box-shadow: 0 12px 28px rgba(0, 0, 0, .38) !important;
}


/* ===========================================================================
 * ==================  DARK MODE — REFINEMENTS (v3)  =========================
 * Targeted fixes: (1) seamless header — no hairline/shadow division; (2) the
 * inner-page text hero made immersive & guaranteed full-bleed; (3) framed
 * images in split (text | image) sections shrunk so concise copy no longer
 * leaves a tall image towering with whitespace. Visual/layout-balance only.
 * ========================================================================= */

/* ----------------------------------------------------------------------------
 * 5) SEAMLESS HEADER — kill every divider line & drop shadow
 * The dark header showed: (a) a light intra-navbar hairline between rows;
 * (b) a "block shadow" division once the homepage header turned solid on
 * scroll; and (c) the inline #EDEDED border from parts/header.html, which
 * read as an unwanted white line on the inner pages. Strip them all so the
 * header meets the page canvas seamlessly.
 * ------------------------------------------------------------------------- */
.sp-site-header,
.sp-site-header.is-scrolled,
.home .sp-site-header,
.home .sp-site-header.is-scrolled {
	border-bottom: 0 !important;
	box-shadow: none !important;
}
.sp-navbar__row--main,
.sp-navbar__row--top {
	border-bottom: 0 !important;
}

/* ----------------------------------------------------------------------------
 * 6) IMMERSIVE INNER-PAGE TEXT HERO (full-bleed)
 * The text-only "cinematic" hero (e.g. /what-to-expect/) is already full width,
 * but it read as a short band next to the tall image heroes on other pages.
 * Give it a generous viewport height, vertically centre its content, and
 * re-assert full-bleed width so it always spans edge to edge.
 * ------------------------------------------------------------------------- */
body:not(.home) .sp-hero.sp-bg-cinematic {
	min-height: 84vh;
	min-height: 84svh;
	display: flex;
	align-items: center;
	width: 100%;
	margin-left: 0;
	margin-right: 0;
}
body:not(.home) .sp-hero.sp-bg-cinematic > .sp-hero__inner {
	width: 100%;
}
@media (max-width: 781px) {
	body:not(.home) .sp-hero.sp-bg-cinematic {
		min-height: 64vh;
		min-height: 64svh;
	}
}

/* ----------------------------------------------------------------------------
 * 7) SMALLER IMAGE IN SPLIT (TEXT | IMAGE) SECTIONS
 * Framed images default to a tall 4:5 portrait. In split sections with short
 * copy (e.g. "A guided journey / Designed to feel calm and clear…") that made
 * the image tower over the text with empty space. Shrink the framed image to a
 * shorter, capped landscape so it sits in balance with concise paragraphs.
 * Applies site-wide to .sp-split sections; mobile keeps a comfortable size.
 * ------------------------------------------------------------------------- */
.wp-block-columns.sp-split .wp-block-column .sp-frame,
.wp-block-columns.sp-split .wp-block-column figure.wp-block-image.sp-frame {
	aspect-ratio: 4 / 3;
	max-height: clamp(240px, 30vw, 380px);
	width: 100%;
	align-self: center;
}
@media (max-width: 781px) {
	.wp-block-columns.sp-split .wp-block-column .sp-frame,
	.wp-block-columns.sp-split .wp-block-column figure.wp-block-image.sp-frame {
		aspect-ratio: 4 / 3;
		max-height: none;
	}
}

/* ===========================================================================
 * ============  REGENERATIVE REBRAND (2026-07) — NEW SECTIONS  ==============
 * Trust bar, Dr. Sinan story w/ video, RENEW Healing Framework, video story
 * cards, and subtle DNA/molecular motifs. Pure additive layer — consumes the
 * existing --sp-* dark-mode tokens and --wp--preset--* palette.
 * ========================================================================= */

/* ----------------------------------------------------------------------------
 * TRUST BAR — stat strip directly under the hero.
 * Markup: section.sp-trust-bar > .sp-trust-bar__grid > .sp-trust-bar__item
 *         (p.sp-trust-bar__num + p.sp-trust-bar__label)
 * ------------------------------------------------------------------------- */
.sp-trust-bar {
	position: relative;
	z-index: 2;
	padding: clamp(1.75rem, 3vw, 2.5rem) 1.25rem !important;
	background: linear-gradient(180deg, var(--sp-elevated, #141C26) 0%, var(--sp-surface, #10171F) 100%) !important;
	border-top: 1px solid rgba(245, 197, 66, .18);
	border-bottom: 1px solid rgba(255, 255, 255, .05);
}
.sp-trust-bar__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1.5rem 2rem;
	align-items: start;
	max-width: 1280px;
	margin-inline: auto;
}
.sp-trust-bar__item { text-align: center; position: relative; }
.sp-trust-bar__item + .sp-trust-bar__item::before {
	content: "";
	position: absolute;
	left: -1rem; top: 15%;
	height: 70%; width: 1px;
	background: linear-gradient(180deg, transparent, rgba(255,255,255,.12), transparent);
}
.sp-trust-bar__num {
	font-size: clamp(1.6rem, 2.6vw, 2.25rem) !important;
	font-weight: 800 !important;
	line-height: 1.1 !important;
	letter-spacing: -.02em;
	margin: 0 0 .3rem !important;
	background: linear-gradient(135deg, #F5C542 0%, #D9A928 100%);
	-webkit-background-clip: text; background-clip: text;
	color: transparent !important;
}
.sp-trust-bar__label {
	font-size: .78rem !important;
	line-height: 1.45 !important;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted) !important;
	margin: 0 !important;
	max-width: 22ch;
	margin-inline: auto !important;
}
/* Linked stat labels keep the plain label look. */
.sp-trust-bar__label a { color: inherit !important; text-decoration: none; }
/* Stretch the label link over the whole stat item (number + label). */
.sp-trust-bar__label a.sp-trust-bar__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
@media (max-width: 1100px) {
	.sp-trust-bar__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.sp-trust-bar__item:nth-child(4)::before { display: none; }
}
@media (max-width: 640px) {
	.sp-trust-bar__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1rem; }
	.sp-trust-bar__item::before { display: none !important; }
	.sp-trust-bar__item:last-child { grid-column: 1 / -1; }
}

/* ----------------------------------------------------------------------------
 * DNA / MOLECULAR MOTIF — subtle scientific texture on opted-in sections.
 * Add .sp-motif-dna to any section group. Pure CSS (inline SVG data-uri),
 * very low opacity so it reads as elegant texture, not decoration.
 * ------------------------------------------------------------------------- */
.sp-motif-dna { position: relative; isolation: isolate; }
.sp-motif-dna::before {
	content: "";
	position: absolute; inset: 0;
	pointer-events: none;
	z-index: 0;
	opacity: .18;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='440' viewBox='0 0 220 440'><g fill='none' stroke='%23F5C542' stroke-width='2.6' stroke-linecap='round' opacity='0.55'><path d='M60 0 C 160 55, 160 165, 60 220 C -40 275, -40 385, 60 440'/><path d='M160 0 C 60 55, 60 165, 160 220 C 260 275, 260 385, 160 440'/><line x1='69' y1='22' x2='151' y2='22'/><line x1='92' y1='66' x2='128' y2='66'/><line x1='69' y1='110' x2='151' y2='110'/><line x1='92' y1='154' x2='128' y2='154'/><line x1='69' y1='198' x2='151' y2='198'/><line x1='69' y1='242' x2='151' y2='242'/><line x1='92' y1='286' x2='128' y2='286'/><line x1='69' y1='330' x2='151' y2='330'/><line x1='92' y1='374' x2='128' y2='374'/><line x1='69' y1='418' x2='151' y2='418'/></g><g fill='%23F5C542' opacity='0.65'><circle cx='69' cy='22' r='3.4'/><circle cx='151' cy='22' r='3.4'/><circle cx='92' cy='66' r='3'/><circle cx='128' cy='66' r='3'/><circle cx='69' cy='110' r='3.4'/><circle cx='151' cy='110' r='3.4'/><circle cx='92' cy='154' r='3'/><circle cx='128' cy='154' r='3'/><circle cx='69' cy='198' r='3.4'/><circle cx='151' cy='198' r='3.4'/><circle cx='69' cy='242' r='3.4'/><circle cx='151' cy='242' r='3.4'/><circle cx='92' cy='286' r='3'/><circle cx='128' cy='286' r='3'/><circle cx='69' cy='330' r='3.4'/><circle cx='151' cy='330' r='3.4'/><circle cx='92' cy='374' r='3'/><circle cx='128' cy='374' r='3'/><circle cx='69' cy='418' r='3.4'/><circle cx='151' cy='418' r='3.4'/></g></svg>");
	background-repeat: no-repeat;
	background-position: right -3rem top -2rem;
	background-size: 220px auto;
	-webkit-mask-image: linear-gradient(215deg, rgba(0,0,0,.9) 0%, rgba(0,0,0,.25) 38%, transparent 62%);
	mask-image: linear-gradient(215deg, rgba(0,0,0,.9) 0%, rgba(0,0,0,.25) 38%, transparent 62%);
}
.sp-motif-dna > * { position: relative; z-index: 1; }
.sp-motif-dna--left::before {
	background-position: left -3rem bottom -2rem;
	-webkit-mask-image: linear-gradient(35deg, rgba(0,0,0,.9) 0%, rgba(0,0,0,.25) 38%, transparent 62%);
	mask-image: linear-gradient(35deg, rgba(0,0,0,.9) 0%, rgba(0,0,0,.25) 38%, transparent 62%);
}
@media (max-width: 781px) {
	.sp-motif-dna::before { opacity: .10; background-size: 160px auto; }
}

/* ----------------------------------------------------------------------------
 * VIDEO EMBEDS — premium framed 16:9 embeds (YouTube via core/embed).
 * .sp-video-frame  ? single feature video (Dr. Sinan story)
 * .sp-video-card   ? grid card w/ caption (patient story videos)
 * ------------------------------------------------------------------------- */
.sp-video-frame,
.sp-video-card .wp-block-embed {
	margin: 0 !important;
}
.sp-video-frame .wp-block-embed__wrapper,
.sp-video-card .wp-block-embed__wrapper {
	position: relative;
	aspect-ratio: 16 / 9;
	border-radius: var(--sp-radius-md, 14px);
	overflow: hidden;
	background: #000;
}
.sp-video-frame iframe,
.sp-video-card iframe {
	position: absolute; inset: 0;
	width: 100% !important;
	height: 100% !important;
	border: 0;
}
.sp-video-frame {
	border-radius: var(--sp-radius-md, 14px);
	box-shadow: 0 24px 60px -18px rgba(0,0,0,.65), 0 0 0 1px rgba(245,197,66,.22);
}
.sp-video-card {
	background: linear-gradient(135deg, var(--sp-elevated, #141C26), var(--sp-surface, #10171F)) !important;
	border: 1px solid rgba(255,255,255,.07) !important;
	border-radius: var(--sp-radius-md, 14px) !important;
	overflow: hidden;
	transition: transform .35s var(--sp-ease, ease), box-shadow .35s var(--sp-ease, ease), border-color .35s var(--sp-ease, ease);
}
.sp-video-card:hover {
	transform: translateY(-4px);
	border-color: rgba(245,197,66,.4) !important;
	box-shadow: 0 18px 40px -16px rgba(0,0,0,.6);
}
.sp-video-card .wp-block-embed__wrapper { border-radius: 0; }
.sp-video-card__caption {
	font-size: .85rem !important;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink) !important;
	margin: 0 !important;
	padding: 1rem 1.25rem 1.1rem !important;
}

/* ----------------------------------------------------------------------------
 * DR. SINAN STORY — split section with framed portrait/video + story copy.
 * Reuses .sp-split; adds a signature-style kicker for "Don't Operate…" lines.
 * ------------------------------------------------------------------------- */
.sp-kicker {
	display: block;
	font-size: clamp(1.05rem, 1.6vw, 1.3rem) !important;
	font-weight: 800 !important;
	letter-spacing: .02em;
	color: var(--wp--preset--color--primary) !important;
	margin: clamp(3rem, 6vw, 4.5rem) auto .75rem !important;
}
.sp-kicker em, .sp-kicker span { color: var(--wp--preset--color--ink); font-style: normal; }

/* ----------------------------------------------------------------------------
 * HOME HERO — true vertical centering under the fixed transparent navbar.
 * The home header is position:fixed and overlaps the 92vh hero, so content
 * hugged the top. Flex-centre the hero box and pad the content down by the
 * navbar height so the optical centre sits mid-viewport.
 * ------------------------------------------------------------------------- */
.home .sp-hero-section--bg-video,
.home .sp-hero-section--bg-image {
	display: flex;
	align-items: center;
}
.home .sp-hero-section--bg-video > .sp-hero,
.home .sp-hero-section--bg-image > .sp-hero {
	width: 100%;
	padding-top: clamp(48px, 6vh, 72px);
}

/* ----------------------------------------------------------------------------
 * BREATHING ROOM — buttons that follow copy inside split columns sat flush
 * against the last paragraph (e.g. "Meet Dr. Sinan").
 * ------------------------------------------------------------------------- */
.wp-block-column > .wp-block-buttons {
	margin-top: 1.75rem !important;
}

/* ----------------------------------------------------------------------------
 * FLOWING-LINES TEXTURE — organic ribbon of fine lines (after the brand
 * texture reference) drawn as an inline SVG and layered onto the section
 * bands with background-attachment:fixed. Because the texture is pinned to
 * the viewport while sections scroll past, it reads as one continuous
 * graphic "behind" the whole page — unifying section transitions on scroll.
 * Gradients below each layer replicate the dark-mode band re-skins.
 * ------------------------------------------------------------------------- */
.sp-bg-soft {
	background:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1000' height='680' viewBox='0 0 1000 680'><g fill='none' stroke='%23F5C542' stroke-opacity='0.055' stroke-width='2'><path d='M-40 300 C 200 140 430 470 660 300 S 940 170 1060 240'/><path d='M-40 316 C 205 158 428 462 662 314 S 938 186 1060 256'/><path d='M-40 332 C 210 176 426 454 664 328 S 936 202 1060 272'/><path d='M-40 348 C 215 194 424 446 666 342 S 934 218 1060 288'/><path d='M-40 364 C 220 212 422 438 668 356 S 932 234 1060 304'/><path d='M-40 380 C 225 230 420 430 670 370 S 930 250 1060 320'/><path d='M-40 396 C 230 248 418 422 672 384 S 928 266 1060 336'/><path d='M-40 412 C 235 266 416 414 674 398 S 926 282 1060 352'/><path d='M-40 428 C 240 284 414 406 676 412 S 924 298 1060 368'/><path d='M-40 444 C 245 302 412 398 678 426 S 922 314 1060 384'/><path d='M-40 460 C 250 320 410 390 680 440 S 920 330 1060 400'/><path d='M-40 476 C 255 338 408 382 682 454 S 918 346 1060 416'/></g></svg>") right -160px center / 1000px auto no-repeat fixed,
		linear-gradient(180deg, var(--sp-surface) 0%, var(--sp-bg) 100%) !important;
}
.sp-bg-ambient {
	background:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1000' height='680' viewBox='0 0 1000 680'><g fill='none' stroke='%23F5C542' stroke-opacity='0.05' stroke-width='2'><path d='M-40 300 C 200 140 430 470 660 300 S 940 170 1060 240'/><path d='M-40 316 C 205 158 428 462 662 314 S 938 186 1060 256'/><path d='M-40 332 C 210 176 426 454 664 328 S 936 202 1060 272'/><path d='M-40 348 C 215 194 424 446 666 342 S 934 218 1060 288'/><path d='M-40 364 C 220 212 422 438 668 356 S 932 234 1060 304'/><path d='M-40 380 C 225 230 420 430 670 370 S 930 250 1060 320'/><path d='M-40 396 C 230 248 418 422 672 384 S 928 266 1060 336'/><path d='M-40 412 C 235 266 416 414 674 398 S 926 282 1060 352'/><path d='M-40 428 C 240 284 414 406 676 412 S 924 298 1060 368'/><path d='M-40 444 C 245 302 412 398 678 426 S 922 314 1060 384'/><path d='M-40 460 C 250 320 410 390 680 440 S 920 330 1060 400'/><path d='M-40 476 C 255 338 408 382 682 454 S 918 346 1060 416'/></g></svg>") left -200px center / 950px auto no-repeat fixed,
		radial-gradient(60rem 30rem at 80% -10%, rgba(245,197,66,.10), transparent 60%),
		radial-gradient(50rem 30rem at -10% 110%, rgba(255,255,255,.03), transparent 60%),
		var(--sp-card) !important;
}
.sp-bg-cinematic {
	background:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1000' height='680' viewBox='0 0 1000 680'><g fill='none' stroke='%23F5C542' stroke-opacity='0.07' stroke-width='2'><path d='M-40 300 C 200 140 430 470 660 300 S 940 170 1060 240'/><path d='M-40 316 C 205 158 428 462 662 314 S 938 186 1060 256'/><path d='M-40 332 C 210 176 426 454 664 328 S 936 202 1060 272'/><path d='M-40 348 C 215 194 424 446 666 342 S 934 218 1060 288'/><path d='M-40 364 C 220 212 422 438 668 356 S 932 234 1060 304'/><path d='M-40 380 C 225 230 420 430 670 370 S 930 250 1060 320'/><path d='M-40 396 C 230 248 418 422 672 384 S 928 266 1060 336'/><path d='M-40 412 C 235 266 416 414 674 398 S 926 282 1060 352'/><path d='M-40 428 C 240 284 414 406 676 412 S 924 298 1060 368'/><path d='M-40 444 C 245 302 412 398 678 426 S 922 314 1060 384'/><path d='M-40 460 C 250 320 410 390 680 440 S 920 330 1060 400'/><path d='M-40 476 C 255 338 408 382 682 454 S 918 346 1060 416'/></g></svg>") center center / 1200px auto no-repeat fixed,
		radial-gradient(50rem 30rem at 90% -20%, rgba(245,197,66,.16), transparent 60%),
		radial-gradient(60rem 40rem at -10% 120%, rgba(217,169,40,.10), transparent 60%),
		linear-gradient(180deg, #080C12 0%, var(--sp-bg) 100%) !important;
}
/* Mobile: fixed attachment is unsupported/janky on touch — fall back to a
 * gently placed scrolling texture so the motif survives. */
@media (max-width: 781px) {
	.sp-bg-soft,
	.sp-bg-ambient,
	.sp-bg-cinematic {
		background-attachment: scroll !important;
		background-size: 720px auto, auto, auto, auto !important;
	}
}

/* ----------------------------------------------------------------------------
 * TEXTURE ON CANVAS SECTIONS — the blocks right after the hero (trust bar,
 * expand-cards "Explore care areas", hero-list "Why patients travel to us")
 * sit on the plain page canvas. Give them the same viewport-pinned flowing
 * lines so the texture story starts immediately under the hero and reads as
 * one continuous graphic through the whole page.
 * ------------------------------------------------------------------------- */
.sp-expand-cards,
.sp-hero-list {
	background:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1000' height='680' viewBox='0 0 1000 680'><g fill='none' stroke='%23F5C542' stroke-opacity='0.06' stroke-width='2'><path d='M-40 300 C 200 140 430 470 660 300 S 940 170 1060 240'/><path d='M-40 316 C 205 158 428 462 662 314 S 938 186 1060 256'/><path d='M-40 332 C 210 176 426 454 664 328 S 936 202 1060 272'/><path d='M-40 348 C 215 194 424 446 666 342 S 934 218 1060 288'/><path d='M-40 364 C 220 212 422 438 668 356 S 932 234 1060 304'/><path d='M-40 380 C 225 230 420 430 670 370 S 930 250 1060 320'/><path d='M-40 396 C 230 248 418 422 672 384 S 928 266 1060 336'/><path d='M-40 412 C 235 266 416 414 674 398 S 926 282 1060 352'/><path d='M-40 428 C 240 284 414 406 676 412 S 924 298 1060 368'/><path d='M-40 444 C 245 302 412 398 678 426 S 922 314 1060 384'/><path d='M-40 460 C 250 320 410 390 680 440 S 920 330 1060 400'/><path d='M-40 476 C 255 338 408 382 682 454 S 918 346 1060 416'/></g></svg>") right -120px center / 1100px auto no-repeat fixed;
}
.sp-trust-bar {
	background:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1000' height='680' viewBox='0 0 1000 680'><g fill='none' stroke='%23F5C542' stroke-opacity='0.05' stroke-width='2'><path d='M-40 300 C 200 140 430 470 660 300 S 940 170 1060 240'/><path d='M-40 316 C 205 158 428 462 662 314 S 938 186 1060 256'/><path d='M-40 332 C 210 176 426 454 664 328 S 936 202 1060 272'/><path d='M-40 348 C 215 194 424 446 666 342 S 934 218 1060 288'/><path d='M-40 364 C 220 212 422 438 668 356 S 932 234 1060 304'/><path d='M-40 380 C 225 230 420 430 670 370 S 930 250 1060 320'/><path d='M-40 396 C 230 248 418 422 672 384 S 928 266 1060 336'/><path d='M-40 412 C 235 266 416 414 674 398 S 926 282 1060 352'/><path d='M-40 428 C 240 284 414 406 676 412 S 924 298 1060 368'/><path d='M-40 444 C 245 302 412 398 678 426 S 922 314 1060 384'/><path d='M-40 460 C 250 320 410 390 680 440 S 920 330 1060 400'/><path d='M-40 476 C 255 338 408 382 682 454 S 918 346 1060 416'/></g></svg>") left -180px center / 1100px auto no-repeat fixed,
		linear-gradient(180deg, var(--sp-elevated, #141C26) 0%, var(--sp-surface, #10171F) 100%) !important;
}
@media (max-width: 781px) {
	.sp-expand-cards,
	.sp-hero-list,
	.sp-trust-bar {
		background-attachment: scroll !important;
	}
}

/* ----------------------------------------------------------------------------
 * TEXTURE ON PLAIN-CANVAS SECTIONS (inner pages) — sections without a band
 * class (bare .sp-section-pad), the services/conditions archive grid, the
 * contact map section and the CTA banner shell all sat on the flat page
 * canvas. Give them the same viewport-pinned flowing lines so every page
 * carries the continuous texture from hero to footer. Anchored left to
 * alternate against the right-anchored .sp-bg-soft bands.
 * ------------------------------------------------------------------------- */
.wp-block-group.sp-section-pad:not(.sp-bg-soft):not(.sp-bg-ambient):not(.sp-bg-cinematic):not(.sp-cta-banner__shell),
.sp-archive-grid.sp-section-pad,
.sp-map-section,
.wp-block-group.sp-section-pad.sp-cta-banner__shell {
	background:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1000' height='680' viewBox='0 0 1000 680'><g fill='none' stroke='%23F5C542' stroke-opacity='0.055' stroke-width='2'><path d='M-40 300 C 200 140 430 470 660 300 S 940 170 1060 240'/><path d='M-40 316 C 205 158 428 462 662 314 S 938 186 1060 256'/><path d='M-40 332 C 210 176 426 454 664 328 S 936 202 1060 272'/><path d='M-40 348 C 215 194 424 446 666 342 S 934 218 1060 288'/><path d='M-40 364 C 220 212 422 438 668 356 S 932 234 1060 304'/><path d='M-40 380 C 225 230 420 430 670 370 S 930 250 1060 320'/><path d='M-40 396 C 230 248 418 422 672 384 S 928 266 1060 336'/><path d='M-40 412 C 235 266 416 414 674 398 S 926 282 1060 352'/><path d='M-40 428 C 240 284 414 406 676 412 S 924 298 1060 368'/><path d='M-40 444 C 245 302 412 398 678 426 S 922 314 1060 384'/><path d='M-40 460 C 250 320 410 390 680 440 S 920 330 1060 400'/><path d='M-40 476 C 255 338 408 382 682 454 S 918 346 1060 416'/></g></svg>") left -180px center / 1050px auto no-repeat fixed;
}
@media (max-width: 781px) {
	.wp-block-group.sp-section-pad:not(.sp-bg-soft):not(.sp-bg-ambient):not(.sp-bg-cinematic),
	.sp-archive-grid.sp-section-pad,
	.sp-map-section {
		background-attachment: scroll !important;
	}
}

/* ----------------------------------------------------------------------------
 * TEXTURE FULL-WIDTH — the flowing lines now span the entire viewport width
 * on every textured section (was ~1000px anchored left/right). Longhand
 * overrides beat the earlier shorthands (same importance, later in cascade);
 * extra values in the lists are ignored on layers that don't exist.
 * ------------------------------------------------------------------------- */
.sp-bg-soft,
.sp-bg-ambient,
.sp-bg-cinematic,
.sp-expand-cards,
.sp-hero-list,
.sp-trust-bar,
.wp-block-group.sp-section-pad:not(.sp-bg-soft):not(.sp-bg-ambient):not(.sp-bg-cinematic):not(.sp-cta-banner__shell),
.sp-archive-grid.sp-section-pad,
.sp-map-section,
.wp-block-group.sp-section-pad.sp-cta-banner__shell {
	background-size: 100% auto, auto, auto, auto !important;
	background-position: center center, center center, center center, center center !important;
}

/* ----------------------------------------------------------------------------
 * TYPOGRAPHIC RHYTHM — theme.json sets blockGap:0, which glued consecutive
 * paragraphs together in flowing copy (Dr. Sinan's Story, Why Patients Choose
 * Us, About "Our story", service/condition body copy). Restore comfortable
 * spacing for text content; tightly-designed components keep their own
 * higher-specificity margins.
 * ------------------------------------------------------------------------- */
.wp-block-column > p + p,
.is-layout-constrained > p + p {
	margin-top: 1.15rem !important;
}
.wp-block-column > p + ul,
.is-layout-constrained > p + ul {
	margin-top: 1.35rem !important;
}
.wp-block-column > p + h2,
.wp-block-column > p + h3,
.wp-block-column > ul + p,
.is-layout-constrained > p + h2,
.is-layout-constrained > p + h3,
.is-layout-constrained > ul + p {
	margin-top: 1.75rem !important;
}
h2.sp-display + p {
	margin-top: 1rem !important;
}
.wp-block-column > h2 + p,
.is-layout-constrained > h2 + p,
.sp-cta-banner__inner > h2 + p,
.sp-cta-banner > h2 + p {
	margin-top: 1rem !important;
}
.sp-concern__body > h3 + p {
	margin-top: .5rem !important;
}
.sp-expand-cards__panel h3 + p,
.sp-hero-list__body h3 + p,
.sp-hero-list__item h3 + p {
	margin-top: .45rem !important;
}

/* RENEW steps grid — never leave a 3+1 orphan: 4 / 2 / 1 columns. Overrides
 * the Polish-v8 auto-fit rule (same specificity, later in cascade). */
.sp-steps.sp-grid--4 { grid-template-columns: repeat(2, 1fr) !important; }
@media (min-width: 1024px) {
	.sp-steps.sp-grid--4 { grid-template-columns: repeat(4, 1fr) !important; }
}
@media (max-width: 600px) {
	.sp-steps.sp-grid--4 { grid-template-columns: 1fr !important; }
}
/* Extra top room for the floating step number when rows wrap */
.sp-steps.sp-grid--4 { row-gap: 2.75rem !important; }

/* ----------------------------------------------------------------------------
 * MEETING 07-10 FOLLOW-UP FIXES
 * ------------------------------------------------------------------------- */

/* 0. Inner-page column rows (e.g. the Ergoflex equipment sections) rendered
 * with zero gap between columns — the earlier gap fix was home-scoped. */
body:not(.home) .sp-section-pad .wp-block-columns:where(.is-layout-flex) {
	gap: clamp(1.5rem, 3vw, 2.5rem) !important;
	row-gap: clamp(1.5rem, 3vw, 2.25rem) !important;
}

/* 1. Home — Dr. Sinan story: credentials checklist sat flush against the
 * video frame. */
.wp-block-column .sp-video-frame + .sp-checklist,
.wp-block-column .wp-block-embed + .sp-checklist {
	margin-top: 2rem !important;
}

/* 2. Meet the Doctor — make the portrait match the height of the story copy
 * beside it (was a capped 4:3 crop that left the column unbalanced). */
.page-id-79 .sp-split { align-items: stretch !important; }
.page-id-79 .sp-split .wp-block-column:last-child { display: flex; }
.page-id-79 .sp-split .wp-block-column .sp-frame,
.page-id-79 .sp-split .wp-block-column figure.wp-block-image.sp-frame {
	aspect-ratio: auto !important;
	max-height: none !important;
	height: auto;
	width: 100%;
	align-self: stretch;
	margin: 0;
}
.page-id-79 .sp-split .sp-frame img {
	height: 100%;
	width: 100%;
	object-fit: cover;
	object-position: top center;
}

/* 3. Meet the Team — expanded bio overlay still used hardcoded LIGHT-mode
 * whites (white sticky summary bar, white close-gradient, ink-on-white pill).
 * Re-skin the whole open state for the dark theme. */
.sp-team-card__details {
	border-top-color: rgba(255,255,255,.08);
}
.sp-team-card__details[open] {
	background: var(--sp-elevated, #141C26);
	box-shadow: 0 24px 60px -20px rgba(0,0,0,.7), 0 0 0 1px rgba(245,197,66,.18);
}
.sp-team-card__details[open] summary {
	background: rgba(17, 24, 33, .96);
	color: var(--wp--preset--color--ink, #EAEEF3);
	border-bottom: 1px solid rgba(255,255,255,.08);
}
.sp-team-card__details[open] summary::after {
	background: var(--wp--preset--color--primary, #F5C542);
	color: #111111;
}
.sp-team-card__details[open] summary:hover::after {
	background: var(--wp--preset--color--primary-hover, #D9A928);
	color: #111111;
}
.sp-team-card__details h4 {
	color: var(--wp--preset--color--primary, #F5C542);
}
.sp-team-card__details p {
	color: var(--wp--preset--color--muted, #99A4B3);
}
.sp-team-card__close-bottom {
	background: linear-gradient(180deg, rgba(20,28,38,0) 0%, rgba(17,24,33,.95) 40%);
}
.sp-team-card__close-bottom button {
	background: var(--wp--preset--color--primary, #F5C542);
	color: #111111;
}
.sp-team-card__close-bottom button:hover {
	background: var(--wp--preset--color--primary-hover, #D9A928);
	color: #111111;
}

/* 4. Team cards — the new staff photos are landscape (3:2); switch the card
 * header from a tall 4:5 portrait crop to the photos' native ratio so each
 * image fills the header without aggressive side-cropping. */
.sp-team-card__photo {
	aspect-ratio: 3 / 2 !important;
	max-height: none !important;
}
.sp-team-card__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 30%;
}

/* ===========================================================================
 * GOOGLE REVIEWS WIDGET — editable under Settings > Reviews Widget.
 * ========================================================================= */
.sp-reviews-widget {
	position: relative;
	overflow: hidden;
}
.sp-reviews-widget__inner {
	width: min(1180px, 92vw);
	margin-inline: auto;
	text-align: center;
}
.sp-reviews-widget__embed {
	width: 100%;
	margin-top: clamp(2rem, 4vw, 3rem);
	padding: clamp(1rem, 2vw, 1.5rem);
	background: var(--sp-elevated, #141C26);
	border: 1px solid rgba(245, 197, 66, .18);
	border-radius: var(--sp-radius-md, 14px);
	box-shadow: 0 20px 50px -24px rgba(0,0,0,.65);
	overflow: visible;
}
.sp-reviews-widget__embed iframe {
	display: block;
	width: 100% !important;
	min-width: 100% !important;
	min-height: 1px;
	border: 0;
	color-scheme: light dark;
}
@media (max-width: 600px) {
	.sp-reviews-widget__embed {
		padding: .75rem;
	}
}

/* SOCIAL BRAND + INNER-PAGE HOVER CONTRAST (2026-08) */
.sp-navbar__social-link--facebook:hover,
.sp-navbar__social-link--facebook:focus-visible,
.sp-navbar__social a[href*="facebook.com"]:hover,
.sp-navbar__social a[href*="facebook.com"]:focus-visible {
	background-color: var(--wp--preset--color--facebook) !important;
	border-color: var(--wp--preset--color--facebook) !important;
	color: var(--wp--preset--color--ink) !important;
}
.sp-navbar__social-link--instagram:hover,
.sp-navbar__social-link--instagram:focus-visible,
.sp-navbar__social a[href*="instagram.com"]:hover,
.sp-navbar__social a[href*="instagram.com"]:focus-visible {
	background-color: var(--wp--preset--color--instagram) !important;
	border-color: var(--wp--preset--color--instagram) !important;
	color: var(--wp--preset--color--ink) !important;
}
.sp-navbar__social-link--youtube:hover,
.sp-navbar__social-link--youtube:focus-visible,
.sp-navbar__social a[href*="youtube.com"]:hover,
.sp-navbar__social a[href*="youtube.com"]:focus-visible {
	background-color: var(--wp--preset--color--youtube) !important;
	border-color: var(--wp--preset--color--youtube) !important;
	color: var(--wp--preset--color--ink) !important;
}
body:not(.home) .sp-card--link:hover,
body:not(.home) .sp-card--link:focus-visible {
	background-color: var(--wp--preset--color--cream) !important;
	border-color: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--ink) !important;
}
body:not(.home) .sp-card--link:hover .sp-card__title,
body:not(.home) .sp-card--link:focus-visible .sp-card__title {
	color: var(--wp--preset--color--primary) !important;
}
body:not(.home) .sp-card--link:hover .sp-card__body,
body:not(.home) .sp-card--link:focus-visible .sp-card__body {
	color: var(--wp--preset--color--ink) !important;
}
.home .sp-site-header.is-scrolled .sp-navbar__row--bottom {
	background-color: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--ink) !important;
}
.home .sp-site-header.is-scrolled {
	background-color: var(--wp--preset--color--base) !important;
	background-image: none !important;
}
.home .sp-site-header.is-scrolled::before {
	background: var(--wp--preset--color--base) !important;
}
.home .sp-site-header.is-scrolled .sp-navbar__phone {
	color: var(--wp--preset--color--ink) !important;
}
.home .sp-site-header.is-scrolled .sp-navbar__social a:not(:hover):not(:focus-visible) {
	background-color: var(--wp--preset--color--base) !important;
	border-color: var(--wp--preset--color--muted) !important;
	color: var(--wp--preset--color--ink) !important;
}

/* 404 page */
.sp-404 {
	min-height: 68vh;
	display: flex;
	align-items: center;
}
.sp-404__inner { width: min(100%, 760px); }
.sp-404__code {
	margin: 0 0 .5rem;
	color: var(--wp--preset--color--primary);
	font-size: clamp(3rem, 10vw, 7rem);
	font-weight: 800;
	line-height: 1;
}

/* August 19 follow-up: Blog, single articles, and Quick Contact. */
.sp-blog-articles {
	width: 100% !important;
	max-width: none !important;
	padding-inline: clamp(1rem, 4vw, 2.5rem) !important;
}
.sp-blog-articles > .sp-eyebrow { margin-bottom: .85rem !important; }
.sp-blog-articles > h2.wp-block-heading {
	margin-top: 0 !important;
	margin-bottom: clamp(2.5rem, 5vw, 4rem) !important;
}
.sp-blog-articles > .wp-block-query {
	width: min(100%, var(--wp--style--global--wide-size));
	max-width: var(--wp--style--global--wide-size) !important;
	margin-inline: auto !important;
	position: static;
	left: auto;
	transform: none;
}
.sp-blog-articles .sp-blog-grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(1.5rem, 2.5vw, 2rem) !important;
	align-items: stretch;
	width: 100%;
	margin-inline: auto !important;
}
.sp-blog-articles--single > .wp-block-query {
	width: min(100%, 520px);
	max-width: 520px !important;
}
.sp-blog-articles--single .sp-blog-grid {
	grid-template-columns: minmax(0, 1fr) !important;
}
.sp-blog-articles--single .sp-blog-card {
	min-height: 0;
}
.sp-blog-articles .sp-blog-grid > li {
	display: flex;
	width: auto !important;
	margin: 0 !important;
	min-width: 0;
}
.sp-blog-articles .sp-blog-card {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: auto;
	min-height: 0;
	min-width: 0;
	padding: clamp(1.25rem, 2vw, 1.75rem);
}
.sp-blog-card .wp-block-post-featured-image {
	width: 100%;
	margin-bottom: 1.35rem;
}
.sp-blog-card .wp-block-post-featured-image img {
	aspect-ratio: 16 / 9 !important;
	object-fit: cover;
}
.sp-blog-card .wp-block-post-title {
	font-size: clamp(1.2rem, 1.7vw, 1.45rem);
	line-height: 1.25;
	margin: 0 0 1rem !important;
}
.sp-blog-card .wp-block-post-excerpt {
	display: flex;
	flex: 1;
	flex-direction: column;
	margin: 0;
}
.sp-blog-card .wp-block-post-excerpt__more-text { margin-top: auto; padding-top: 1.25rem; }
.sp-blog-articles .wp-block-query-pagination {
	gap: .75rem;
	margin-top: clamp(2.5rem, 5vw, 4rem);
}
.sp-blog-articles .wp-block-query-pagination a,
.sp-blog-articles .wp-block-query-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	min-height: 42px;
	padding: .6rem .85rem;
	border: 1px solid var(--sp-border);
	color: var(--sp-text);
	text-decoration: none;
}
.sp-blog-articles .wp-block-query-pagination .current {
	background: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}
.sp-blog-single { padding-top: clamp(3rem, 7vw, 6rem) !important; }
.sp-blog-single__intro {
	gap: clamp(2rem, 5vw, 5rem) !important;
	margin-bottom: clamp(3rem, 7vw, 6rem) !important;
}
.sp-blog-single__summary { text-align: left; }
.sp-blog-single__date {
	margin-bottom: 1rem;
	color: var(--wp--preset--color--primary);
	font-weight: 700;
}
.sp-blog-single__title {
	font-size: clamp(2.25rem, 5vw, 4.5rem) !important;
	line-height: 1.05 !important;
	text-align: left !important;
	margin: 0 0 1.5rem !important;
}
.sp-blog-single__excerpt {
	max-width: 58ch;
	color: var(--sp-text-muted);
	font-size: clamp(1.05rem, 1.5vw, 1.2rem);
	line-height: 1.7;
}
.sp-blog-single__image {
	width: 100%;
	max-height: 460px;
	margin: 0 !important;
	overflow: hidden;
}
.sp-blog-single__image img { width: 100%; height: 100%; object-fit: cover; }
.sp-blog-single__content {
	width: calc(100% - 2 * var(--wp--preset--spacing--40));
	max-width: 600px;
	margin-inline: auto;
	color: var(--wp--preset--color--ink);
	font-size: var(--wp--preset--font-size--base);
	line-height: 1.75;
	overflow-wrap: anywhere;
}
/* Article copy must not inherit the centered section-heading rhythm. */
.sp-blog-single .sp-blog-single__content :is(p, ul, ol, blockquote, .wp-block-heading) {
	text-align: left;
	max-width: 100%;
}
.sp-blog-single__content.is-layout-constrained > * + * {
	margin-top: var(--wp--preset--spacing--50) !important;
}
.sp-blog-single .sp-blog-single__content :is(h2, h3, h4, h5, h6) {
	margin-bottom: 0;
	font-weight: 700;
	line-height: 1.3;
	text-wrap: pretty;
	scroll-margin-top: 8rem;
}
.sp-blog-single__content.is-layout-constrained :is(h2, h3, h4, h5, h6):not(:first-child) {
	margin-top: var(--wp--preset--spacing--60) !important;
}
.sp-blog-single__content h2 {
	font-size: var(--wp--preset--font-size--2-xl) !important;
	color: var(--wp--preset--color--primary);
}
.sp-blog-single__content h3 { font-size: var(--wp--preset--font-size--xl) !important; }
.sp-blog-single__content :is(h4, h5, h6) { font-size: var(--wp--preset--font-size--lg) !important; }
.sp-blog-single__content :is(ul, ol) { padding-inline-start: var(--wp--preset--spacing--40); }
.sp-blog-single__content li + li { margin-top: var(--wp--preset--spacing--20); }
.sp-blog-single__content li::marker { color: var(--wp--preset--color--primary); }
.sp-blog-single__content blockquote {
	margin-inline: 0;
	padding: var(--wp--preset--spacing--40);
	border-inline-start: 3px solid var(--wp--preset--color--primary);
	background: var(--wp--preset--color--cream);
}
.sp-blog-single__content blockquote p { margin: 0; }
.sp-blog-single__content blockquote cite {
	display: block;
	margin-top: var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--sm);
}
.sp-blog-single__content a:not(.wp-element-button) {
	text-decoration: underline;
	text-underline-offset: .2em;
	text-decoration-thickness: 1px;
}
.sp-blog-single__content a:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
}
.sp-clinic-contact-cards {
	position: static;
	left: auto;
	width: 100%;
	max-width: 1120px !important;
	margin-inline: auto !important;
	transform: none;
	gap: clamp(1.25rem, 2.5vw, 2rem) !important;
}
.wp-block-group:has(> .sp-clinic-contact-cards) {
	--wp--style--global--content-size: 1120px;
}
.sp-clinic-contact-cards .sp-card { padding: clamp(1.5rem, 2.5vw, 2.25rem); }
@media (max-width: 900px) {
	.sp-blog-articles .sp-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.sp-blog-single__intro { flex-wrap: wrap !important; }
	.sp-blog-single__intro > .wp-block-column { flex-basis: 100% !important; }
}
@media (max-width: 600px) {
	.sp-blog-articles .sp-blog-grid { grid-template-columns: 1fr !important; }
	.sp-blog-single__title { font-size: clamp(2rem, 11vw, 3rem) !important; }
	.sp-clinic-contact-cards { width: min(100%, calc(100vw - 2rem)); }
}

/* Supplied editorial media must preserve its source ratio outside split columns. */
.sp-supplied-content-image > .wp-block-image.sp-frame,
.sp-supplied-expect-image > .wp-block-image.sp-frame {
	width: min(100%, 1120px) !important;
	height: auto !important;
	aspect-ratio: 16 / 9 !important;
	margin-inline: auto !important;
}
.sp-supplied-content-image > .wp-block-image.sp-frame img,
.sp-supplied-expect-image > .wp-block-image.sp-frame img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
}

.sp-service-media-centered.wp-block-cover > .wp-block-cover__image-background,
.wp-block-image.sp-service-media-centered img {
	object-position: center center !important;
}

/* Premium clinical and paid-traffic Gutenberg compositions. */
.sp-premium-card-grid {
	margin-top: clamp(2rem, 4vw, 3rem) !important;
	align-items: stretch;
}
.sp-premium-card-grid .sp-premium-card {
	position: relative;
	min-height: 220px;
	padding: clamp(1.5rem, 2.5vw, 2rem) !important;
	border-color: var(--sp-border) !important;
	overflow: hidden;
}
.sp-premium-card-grid .sp-premium-card::after {
	content: "";
	position: absolute;
	right: -2rem;
	bottom: -2rem;
	width: 7rem;
	height: 7rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--primary) 25%, transparent);
	border-radius: 50%;
	opacity: .55;
	pointer-events: none;
}
.sp-premium-card__mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	margin: 0 0 1.25rem !important;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--primary) 55%, transparent);
	border-radius: 50%;
	background: color-mix(in srgb, var(--wp--preset--color--primary) 12%, transparent);
	color: var(--wp--preset--color--primary) !important;
	font-size: .78rem;
	font-weight: 800;
	line-height: 1;
}
.sp-premium-card .wp-block-heading {
	margin: 0 0 .75rem !important;
	font-size: clamp(1.1rem, 1.5vw, 1.3rem) !important;
	line-height: 1.25;
}
.sp-premium-card__body {
	margin: 0 !important;
	color: var(--sp-text-muted) !important;
	line-height: 1.65;
}
.sp-premium-split {
	gap: clamp(2rem, 5vw, 5rem) !important;
	align-items: center !important;
}
.sp-premium-media {
	width: 100%;
	height: auto !important;
	aspect-ratio: 4 / 3 !important;
	max-height: 460px;
	margin: 0 !important;
	overflow: hidden;
}
.sp-premium-media img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
}
.sp-premium-video {
	width: min(100%, 960px);
	margin: clamp(2rem, 4vw, 3rem) auto 0 !important;
}
.sp-premium-video .wp-block-embed__wrapper,
.sp-premium-video iframe {
	width: 100% !important;
	aspect-ratio: 16 / 9;
	height: auto !important;
}
.sp-youtube-video {
	width: min(100%, 1120px);
	margin: clamp(2rem, 4vw, 3rem) auto 0 !important;
}
.sp-youtube-video__frame {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--wp--preset--color--deep-black);
	box-shadow: var(--sp-shadow-lg);
}
.sp-youtube-video__frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}
.sp-youtube-video figcaption {
	margin-top: .85rem;
	color: var(--sp-text-muted);
	font-size: .9rem;
	text-align: center;
}
.sp-neuropathy-video-section .sp-split {
	display: flex !important;
	width: 100%;
}
.sp-neuropathy-video-section .sp-split > .wp-block-column:first-child {
	max-width: none;
	margin-inline: 0;
}
.sp-neuropathy-video-section .sp-split > .wp-block-column:last-child {
	width: auto;
	margin: 0 !important;
}
.sp-neuropathy-video-section .wp-block-embed,
.sp-neuropathy-video-section .wp-block-embed__wrapper,
.sp-neuropathy-video-section iframe {
	width: 100% !important;
	aspect-ratio: 16 / 9;
	height: auto !important;
}
.sp-premium-note {
	max-width: 860px !important;
	margin: clamp(2rem, 4vw, 3rem) auto 0 !important;
	padding: 1.25rem 1.5rem;
	border-left: 3px solid var(--wp--preset--color--primary);
	background: color-mix(in srgb, var(--sp-elevated) 90%, transparent);
	color: var(--sp-text) !important;
	line-height: 1.65;
}
.sp-premium-virtual-section .wp-block-heading,
.sp-premium-virtual-section > .sp-lead,
.sp-premium-virtual-section > .sp-premium-note {
	color: var(--sp-text) !important;
}
.sp-premium-virtual-section > .sp-lead {
	max-width: 760px;
	margin-inline: auto;
}
.sp-premium-virtual-section .sp-premium-note {
	background: color-mix(in srgb, var(--sp-elevated) 75%, transparent);
}
.sp-premium-form-intro {
	padding-bottom: clamp(1.5rem, 3vw, 2.5rem) !important;
}
.sp-premium-form-intro + .sp-book-now-form {
	padding-top: clamp(1.5rem, 3vw, 2.5rem) !important;
}
.sp-premium-form-intro--priority {
	padding-top: clamp(2rem, 4vw, 3.5rem) !important;
	padding-bottom: 1rem !important;
}
.sp-premium-form-intro--priority + .sp-book-now-form {
	padding-top: 1rem !important;
	padding-bottom: clamp(3rem, 6vw, 5rem) !important;
}
.sp-premium-payment-section .sp-premium-card,
.sp-premium-landing-candidate .sp-premium-card {
	border-top-color: color-mix(in srgb, var(--wp--preset--color--primary) 45%, var(--sp-border)) !important;
}
.sp-premium-workshop-section .sp-premium-media {
	box-shadow: var(--sp-shadow-lg);
}

/* Inner-page secondary actions use brand yellow with dark text on hover. */
body:not(.home) .sp-hero .wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:hover,
body:not(.home) .sp-hero .wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:focus-visible,
body:not(.home) .sp-hero-section .sp-btn--secondary:hover,
body:not(.home) .sp-hero-section .sp-btn--secondary:focus-visible {
	background: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--deep-black) !important;
	border-color: var(--wp--preset--color--primary) !important;
	text-shadow: none !important;
}
.sp-premium-card:focus-within,
.sp-premium-media:focus-within {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 4px;
}
@media (max-width: 900px) {
	.sp-premium-split { flex-wrap: wrap !important; }
	.sp-premium-split > .wp-block-column { flex-basis: 100% !important; }
	.sp-premium-media { max-height: 420px; }
}
@media (max-width: 600px) {
	.sp-premium-card-grid .sp-premium-card { min-height: 0; }
	.sp-premium-media { aspect-ratio: 16 / 10 !important; max-height: none; }
	.sp-premium-note { padding: 1rem 1.1rem; }
}

/* Chronic Neuropathy keeps the supporting photo beside the introduction and
 * gives the educational video a dedicated full-width row immediately below. */
.sp-chronic-neuropathy__intro .sp-split {
	align-items: center;
}
.sp-chronic-neuropathy__intro .sp-chronic-neuropathy__image {
	width: 100%;
	aspect-ratio: 16 / 10;
	max-height: 420px;
}
.sp-chronic-neuropathy__intro .sp-chronic-neuropathy__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.sp-chronic-neuropathy__video .sp-youtube-video {
	width: min(100%, 1120px);
	margin-inline: auto !important;
}
@media (max-width: 781px) {
	.sp-chronic-neuropathy__intro .sp-chronic-neuropathy__image {
		max-height: none;
	}
}

/* ===========================================================================
 * AUGUST 20 CONTENT FEEDBACK
 * Keep every reusable yellow CTA visually aligned with the homepage CTA.
 * ======================================================================== */
.sp-cta-banner .wp-block-heading {
	font-size: clamp(2.25rem, 4.4vw, 3.5rem) !important;
	font-weight: 800 !important;
	line-height: 1.08 !important;
	letter-spacing: 0 !important;
	max-width: 30ch;
	margin-inline: auto !important;
	text-align: center;
}
.sp-cta-banner p {
	margin-inline: auto !important;
	text-align: center;
}
.sp-cta-banner .wp-block-buttons {
	justify-content: center;
}
.sp-cta-banner .wp-block-button__link.wp-element-button {
	background: #0B0E13 !important;
	border-color: #0B0E13 !important;
	color: #FFFFFF !important;
	box-shadow: 0 8px 22px rgba(0, 0, 0, .28) !important;
}
.sp-cta-banner .wp-block-button__link.wp-element-button:hover,
.sp-cta-banner .wp-block-button__link.wp-element-button:focus-visible {
	background: #000000 !important;
	border-color: #000000 !important;
	color: var(--wp--preset--color--primary) !important;
	box-shadow: 0 12px 28px rgba(0, 0, 0, .38) !important;
}
.sp-anchor-target {
	display: block;
	position: relative;
	top: -7rem;
	visibility: hidden;
}
.sp-card:has(.sp-card__link) {
	position: relative;
}
.sp-card__link {
	color: inherit;
	text-decoration: none;
}
.sp-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
}
.sp-card:has(.sp-card__link):focus-within {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 4px;
}

/* SEPTEMBER 2026 PRIORITIES
 * Keep contact and clinical links visually explicit without introducing new colors.
 */
.sp-navbar__phone {
	background: color-mix(in srgb, var(--wp--preset--color--primary) 12%, transparent);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--primary) 48%, transparent) !important;
	border-radius: 6px;
	font-weight: 700;
	min-height: 44px;
	padding: .55rem .75rem !important;
}
.sp-navbar__phone:hover,
.sp-navbar__phone:focus-visible {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--deep-black) !important;
}
.sp-concern__title a {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .2em;
}
.sp-concern__title a:hover,
.sp-concern__title a:focus-visible {
	color: var(--wp--preset--color--primary-hover);
	text-decoration-thickness: 2px;
}
.sp-concern__title a:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 4px;
}
.sp-concern:has(.sp-concern__title a) { position: relative; }
.sp-concern__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}
.sp-concern:has(.sp-concern__title a):hover,
.sp-concern:has(.sp-concern__title a):focus-within {
	border-color: var(--wp--preset--color--primary);
	transform: translateY(-2px);
}

/* SEPTEMBER 2026 HEADER FOLLOW-UP
 * Keep a true desktop menu by compressing nonessential space before mobile.
 */

@media (min-width: 1701px) {
	.sp-site-header__inner {
		width: min(1600px, calc(100vw - 4rem)) !important;
		max-width: 1600px !important;
	}
}

@media (max-width: 1700px) and (min-width: 1281px) {
	.sp-navbar__cta { padding-inline: 1.15rem; }
	.sp-site-header__inner { gap: 1rem; }
}

@media (min-width: 961px) and (max-width: 1280px) {
	.sp-site-header__inner {
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		gap: .65rem;
	}
	.sp-site-header__brand {
		flex: 0 0 auto;
		min-width: 0;
	}
	.sp-site-header__brand .wp-block-site-logo img {
		max-width: clamp(92px, 10vw, 124px);
		max-height: 42px;
	}
	.sp-navbar {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-rows: auto auto;
		flex: 1 1 auto;
		column-gap: .65rem;
		row-gap: .2rem;
	}
	.sp-navbar__toggle { display: none !important; }
	.sp-navbar__row--main {
		display: flex;
		grid-column: 1;
		grid-row: 1;
		width: 100%;
		padding: 0;
		border: 0;
	}
	.sp-navbar__row--bottom {
		display: flex;
		grid-column: 1;
		grid-row: 2;
		justify-content: flex-end;
		width: 100%;
		padding: 0;
	}
	.sp-navbar__row--bottom .sp-navbar__contact {
		gap: .55rem;
		margin: 0;
		padding: 0;
		border: 0;
	}
	.sp-navbar__row--bottom .sp-navbar__phone {
		min-height: 36px;
		padding: .35rem .55rem !important;
		font-size: .78rem;
	}
	.sp-navbar__row--bottom .sp-navbar__social-link {
		width: 28px;
		height: 28px;
	}
	.sp-navbar__nav {
		display: flex;
		position: static;
		width: 100%;
	}
	.sp-navbar__menu {
		display: flex;
		flex-direction: row;
		align-items: center;
		justify-content: flex-end;
		width: 100%;
		gap: 0;
	}
	.sp-navbar__menu > .menu-item { width: auto; }
	.sp-navbar__row--main .sp-navbar__menu > .menu-item > a {
		width: auto;
		padding: .4rem clamp(.24rem, .38vw, .34rem) !important;
		font-size: clamp(.64rem, .68vw, .73rem) !important;
		letter-spacing: 0 !important;
		white-space: nowrap;
	}
	.sp-navbar__cta {
		grid-column: 2;
		grid-row: 1 / 3;
		align-self: center;
		flex: 0 0 auto;
		padding: .68rem clamp(.65rem, 1vw, 1rem);
		font-size: clamp(.7rem, .75vw, .82rem);
		white-space: nowrap;
	}
}

@media (max-width: 960px) and (min-width: 601px) {
	.sp-site-header__inner {
		display: flex !important;
		align-items: center !important;
		gap: .75rem;
	}
	.sp-site-header__brand {
		flex: 0 1 auto;
		min-width: 0;
	}
	.sp-site-header__brand .wp-block-site-logo img {
		max-width: clamp(105px, 15vw, 150px);
		max-height: 44px;
	}
	.sp-navbar {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr) auto;
		grid-template-rows: auto;
		flex: 1 1 auto;
		gap: .55rem;
	}
	.sp-navbar__row--main { display: contents; }
	.sp-navbar__toggle {
		display: flex;
		grid-column: 1;
		grid-row: 1;
	}
	.sp-navbar__row--bottom {
		display: flex !important;
		grid-column: 2;
		grid-row: 1;
		justify-content: flex-end;
		width: auto;
		padding: 0;
	}
	.sp-navbar__row--bottom .sp-navbar__contact {
		flex-direction: row;
		align-items: center;
		gap: .45rem;
		width: auto;
		margin: 0;
		padding: 0;
		border: 0;
	}
	.sp-navbar__row--bottom .sp-navbar__phone {
		min-height: 40px;
		padding: .4rem .55rem !important;
	}
	.sp-navbar__row--bottom .sp-navbar__phone span { display: none; }
	.sp-navbar__row--bottom .sp-navbar__social { gap: .25rem; }
	.sp-navbar__row--bottom .sp-navbar__social-link {
		width: 30px;
		height: 30px;
	}
	.sp-navbar__cta {
		grid-column: 3;
		grid-row: 1;
		padding: .68rem .85rem;
		font-size: .78rem;
	}
}

@media (max-width: 600px) {
	.sp-site-header__inner {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) auto !important;
		grid-template-rows: auto auto;
		row-gap: .55rem;
	}
	.sp-navbar { display: contents; }
	.sp-navbar__toggle { grid-column: 2; grid-row: 1; }
	.sp-navbar__row--bottom { display: none !important; }
	.sp-navbar__cta {
		grid-column: 1 / -1;
		grid-row: 2;
		width: 100%;
		justify-content: center;
		padding: .78rem 1rem;
		font-size: .82rem;
	}
	.sp-navbar__nav { top: var(--sp-header-h, 116px); }
	.sp-navbar__contact-mobile {
		display: block;
		margin-top: auto;
		padding-top: 1.25rem;
	}
	.sp-navbar__contact-mobile .sp-navbar__contact {
		align-items: center;
		width: 100%;
	}
	.sp-navbar__contact-mobile .sp-navbar__phone span { display: inline; }
	.sp-navbar__contact-mobile .sp-navbar__social { justify-content: center; }
}

.sp-regenerative-related-link {
	max-width: 760px !important;
	margin: clamp(2rem, 4vw, 3rem) auto 0 !important;
	line-height: 1.75;
}
.sp-regenerative-related-link a {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: .2em;
}
.sp-september-patient-resources > .sp-lead {
	max-width: 680px;
	margin-inline: auto;
}
.sp-september-patient-resources .wp-block-buttons {
	margin-top: clamp(1.5rem, 3vw, 2.25rem);
	justify-content: center;
}

/* REGENERATIVE EXACT-COPY PAGE — scoped presentation refinements. */
.sp-regenerative-exact-page h1 + .sp-lead {
	margin-top: 10px !important;
}
.sp-regenerative-service-area {
	max-width: 760px !important;
	margin: clamp(1.75rem, 3vw, 2.5rem) auto 0 !important;
}
.sp-regenerative-section-note {
	max-width: 820px !important;
	margin: clamp(2rem, 4vw, 3rem) auto 0 !important;
}
.sp-regenerative-therapies .sp-premium-card-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: clamp(1.5rem, 3vw, 2.25rem) !important;
}
.sp-regenerative-therapy-card {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	padding: clamp(1.75rem, 3vw, 2.5rem) !important;
}
.sp-regenerative-therapy-card .sp-card__title {
	font-size: clamp(1.25rem, 1.7vw, 1.55rem) !important;
}
.sp-regenerative-therapy-card .sp-card__body {
	max-width: none;
}
.sp-regenerative-therapy-card .sp-card__cta {
	margin-top: auto !important;
	padding-top: 1.5rem;
	line-height: 1.4;
}
.sp-regenerative-therapy-card .sp-regenerative-text-link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--wp--preset--color--primary);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: .2em;
}
.sp-regenerative-candidate-grid {
	gap: clamp(1.5rem, 4vw, 3.5rem) !important;
	margin-top: clamp(2rem, 4vw, 3rem) !important;
	align-items: stretch !important;
}
.sp-regenerative-candidate-grid > .wp-block-column {
	display: flex;
}
.sp-regenerative-candidate-highlight,
.sp-regenerative-candidate-details {
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: clamp(1.75rem, 4vw, 3rem) !important;
}
.sp-regenerative-candidate-highlight {
	background: var(--wp--preset--color--primary);
	border: 1px solid var(--wp--preset--color--primary-hover);
	border-radius: 8px;
	box-shadow: var(--sp-shadow-lg);
}
.sp-regenerative-candidate-highlight p {
	margin: 0 !important;
	color: var(--wp--preset--color--deep-black) !important;
	font-size: clamp(1.15rem, 2vw, 1.45rem);
	font-weight: 700;
	line-height: 1.55;
}
.sp-regenerative-candidate-details p + p {
	margin-top: 1.15rem !important;
}
.sp-regenerative-final-cta .wp-block-buttons {
	margin-top: clamp(2rem, 4vw, 3rem) !important;
}

@media (min-width: 1100px) {
	.sp-regenerative-exact-page h1 {
		width: 100%;
		max-width: none !important;
		font-size: clamp(2.625rem, 3.5vw, 3.25rem) !important;
		white-space: nowrap;
	}
}

@media (max-width: 781px) {
	.sp-regenerative-therapies .sp-premium-card-grid {
		grid-template-columns: 1fr !important;
	}
	.sp-regenerative-candidate-grid {
		flex-wrap: wrap !important;
	}
	.sp-regenerative-candidate-grid > .wp-block-column {
		flex-basis: 100% !important;
	}
	.sp-regenerative-therapy-card {
		min-height: 0;
	}
}

/* STEM CELL WEBINAR — editable core blocks, shared theme tokens. */
.sp-stem-webinar {
	background: var(--wp--preset--color--charcoal);
	padding-inline: clamp(1.25rem, 4vw, 3rem);
	border-block: 1px solid color-mix(in srgb, var(--wp--preset--color--muted) 16%, transparent);
}
.sp-stem-webinar__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: center;
	gap: clamp(2rem, 5vw, 4.5rem);
}
.sp-stem-webinar__copy,
.sp-stem-webinar__topics {
	min-width: 0;
}
.sp-stem-webinar__copy h2 {
	max-width: 22ch;
	margin: 0 0 1.5rem;
	font-size: var(--wp--preset--font-size--2-xl) !important;
	line-height: 1.15;
	text-align: left !important;
	text-wrap: balance;
}
.sp-stem-webinar__copy > p:not(.sp-eyebrow) {
	max-width: 60ch;
	margin: 0 0 1.25rem;
	text-align: left !important;
}
.sp-stem-webinar__copy strong {
	color: var(--wp--preset--color--ink);
}
.sp-stem-webinar__cta {
	margin-top: 2rem;
}
.sp-stem-webinar__cta .wp-block-button__link {
	color: var(--wp--preset--color--deep-black);
	line-height: 1.4;
}
.sp-stem-webinar__cta .wp-block-button__link:hover,
.sp-stem-webinar__cta .wp-block-button__link:focus-visible {
	color: var(--wp--preset--color--deep-black);
}
.sp-stem-webinar__cta .wp-block-button__link:focus-visible,
.sp-stem-webinar__hero-button .wp-block-button__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 5px;
}
.sp-stem-webinar__topics {
	position: relative;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--primary) 25%, transparent);
	border-top: 3px solid var(--wp--preset--color--primary);
	border-radius: 12px;
	background: linear-gradient(145deg, var(--wp--preset--color--warm-grey), var(--wp--preset--color--cream));
	box-shadow: var(--sp-shadow-lg);
}
.sp-stem-webinar__topics h3 {
	margin: 0 0 1.5rem;
	color: var(--wp--preset--color--ink);
	font-size: var(--wp--preset--font-size--xl);
	line-height: 1.4;
	text-wrap: balance;
}
.sp-stem-webinar__list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.sp-stem-webinar__list > li {
	position: relative;
	padding: 1rem 0 1rem 2.5rem;
	margin: 0;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--muted) 20%, transparent);
	line-height: 1.6;
}
.sp-stem-webinar__list > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.1rem;
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 50%;
	background: color-mix(in srgb, var(--wp--preset--color--primary) 12%, transparent);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--primary) 30%, transparent);
}
.sp-stem-webinar__list > li::after {
	content: "";
	position: absolute;
	left: .55rem;
	top: 1.48rem;
	width: .3rem;
	height: .55rem;
	border: solid var(--wp--preset--color--primary);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
@media (min-width: 960px) {
	.sp-stem-webinar__layout {
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	}
}
@media (max-width: 480px) {
	.sp-stem-webinar__cta .wp-block-button,
	.sp-stem-webinar__hero-button {
		width: 100%;
	}
	.sp-stem-webinar__cta .wp-block-button__link,
	.sp-stem-webinar__hero-button .wp-block-button__link {
		box-sizing: border-box;
		width: 100%;
		white-space: normal;
		line-height: 1.4;
	}
}

/* SERVICE EXPECTATIONS — shared editorial treatment for service pages. */
.sp-service-expectations__intro {
	max-width: 780px !important;
	margin: 1rem auto 0 !important;
}
.sp-service-expectations__layout {
	align-items: stretch !important;
	margin-top: clamp(2rem, 4vw, 3rem) !important;
}
.sp-service-expectations__media {
	display: flex;
	align-items: stretch;
}
.sp-service-expectations__media .wp-block-image {
	width: 100%;
	min-height: 100%;
	margin: 0 !important;
}
.sp-service-expectations__media img {
	width: 100%;
	height: 100%;
	min-height: 320px;
	object-fit: cover;
	border-radius: 8px;
}
.sp-service-expectations__points {
	display: flex;
	align-items: center;
}
.sp-service-expectations__points--full {
	max-width: 920px !important;
	margin-top: clamp(2rem, 4vw, 3rem) !important;
}
.sp-expect-grid {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.sp-expect-card {
	position: relative;
	display: flex;
	align-items: flex-start;
	min-width: 0;
	min-height: 132px;
	margin: 0 !important;
	padding: 1.25rem 1.25rem 1.25rem 3.35rem;
	background: var(--wp--preset--color--cream);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--primary) 24%, transparent);
	border-radius: 8px;
	box-shadow: var(--sp-shadow-sm);
	color: var(--wp--preset--color--ink);
	font-weight: 650;
	line-height: 1.55;
}
.sp-expect-card::before {
	content: "✓";
	position: absolute;
	top: 1.15rem;
	left: 1.15rem;
	display: grid;
	place-items: center;
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 50%;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--deep-black);
	font-size: .85rem;
	font-weight: 800;
	line-height: 1;
}
.sp-condition-expectations .sp-expect-card:last-child:nth-child(odd) {
	grid-column: 1 / -1;
	min-height: 0;
}

@media (max-width: 900px) {
	.sp-service-expectations,
	.sp-condition-expectations {
		padding-block: clamp(3.5rem, 9vw, 5rem) !important;
		padding-inline: clamp(1.25rem, 5vw, 2.5rem) !important;
	}
	.sp-service-expectations__layout {
		flex-wrap: wrap !important;
	}
	.sp-service-expectations__layout > .wp-block-column {
		flex-basis: 100% !important;
	}
	.sp-service-expectations__media img {
		min-height: 0;
		aspect-ratio: 16 / 9;
	}
}

@media (max-width: 600px) {
	.sp-service-expectations,
	.sp-condition-expectations {
		padding-inline: 1.25rem !important;
	}
	.sp-expect-grid {
		grid-template-columns: 1fr;
	}
	.sp-expect-card {
		grid-column: auto !important;
		min-height: 0;
	}
}

/* CONDITION PAGE REFINEMENTS — compact balanced grids and mobile breathing room. */
.sp-condition-card-grid--titles-only .sp-premium-card {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 132px;
	padding: 1.25rem 1.5rem !important;
	text-align: center;
}
.sp-condition-card-grid--titles-only .wp-block-heading {
	margin: 0 !important;
}
.sp-condition-card-grid--2 {
	grid-template-columns: repeat(2, minmax(0, 520px)) !important;
	justify-content: center;
	max-width: 1080px !important;
	margin-inline: auto !important;
}
.sp-condition-related--3 {
	grid-template-columns: repeat(3, minmax(0, 370px)) !important;
	justify-content: center;
	max-width: 1160px !important;
	margin-inline: auto !important;
}
.single-sp_condition .sp-cta-banner .wp-block-buttons {
	margin-top: 2rem !important;
}

@media (max-width: 900px) {
	.single-sp_condition .wp-block-group.sp-section-pad,
	.single-sp_condition .sp-condition-intro,
	.single-sp_condition .sp-condition-section,
	.single-sp_condition .sp-condition-process,
	.single-sp_condition .sp-condition-related-section,
	.single-sp_condition .sp-condition-faq,
	.single-sp_condition .sp-condition-expectations,
	.single-sp_condition .sp-cta-banner__shell {
		padding-inline: clamp(1.25rem, 5vw, 2.5rem) !important;
	}
	.sp-condition-card-grid--2,
	.sp-condition-related--3 {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
	.single-sp_condition .sp-regen-disclaimer {
		width: 100%;
		max-width: 100%;
		margin-inline: 0;
		box-sizing: border-box;
	}
}

@media (max-width: 600px) {
	.single-sp_condition .wp-block-group.sp-section-pad,
	.single-sp_condition .sp-condition-intro,
	.single-sp_condition .sp-condition-section,
	.single-sp_condition .sp-condition-process,
	.single-sp_condition .sp-condition-related-section,
	.single-sp_condition .sp-condition-faq,
	.single-sp_condition .sp-condition-expectations,
	.single-sp_condition .sp-cta-banner__shell {
		padding-inline: 1.25rem !important;
	}
	.sp-condition-card-grid--2,
	.sp-condition-related--3 {
		grid-template-columns: 1fr !important;
	}
	.sp-condition-card-grid--titles-only .sp-premium-card {
		min-height: 104px;
		padding: 1rem 1.25rem !important;
	}
}

/* Touch targets stay usable without changing the desktop navigation layout. */
@media (max-width: 960px) {
	.sp-navbar__toggle {
		width: 44px;
		height: 44px;
		min-width: 44px;
		min-height: 44px;
	}
	.sp-navbar__cta,
	.sp-navbar__row--bottom .sp-navbar__phone,
	.sp-navbar__contact-mobile .sp-navbar__phone {
		min-width: 44px;
		min-height: 44px;
	}
	.sp-navbar__row--bottom .sp-navbar__social-link,
	.sp-navbar__contact-mobile .sp-navbar__social-link {
		width: 44px;
		height: 44px;
		min-width: 44px;
		min-height: 44px;
	}
}
