/*
 * Elite Chiropractic & Rehab — Theme Stylesheet
 * ---------------------------------------------------------------
 * Layered on top of theme.json. theme.json provides tokens
 * (color, spacing, typography). This file provides:
 *   - Global guards (overflow-x, max-width) to prevent horizontal scroll.
 *   - Image cropping classes (replace inline aspect-ratio/object-fit/width
 *     that would otherwise break core/image block validation).
 *   - Component micro-interactions, hover, focus, scroll-driven animations.
 *   - Responsive navbar (mobile drawer < 1024px, dropdowns at desktop).
 *   - Premium dark accents and decorative backgrounds.
 *
 * Conventions:
 *   - Mobile-first.
 *   - prefers-reduced-motion respected for every motion rule.
 *   - All colors reference theme tokens (no raw hex except rgba shadows).
 */

/* ============================================================
   1. GLOBAL GUARDS — kill horizontal scroll everywhere
   ============================================================ */

:root {
	--ec-radius-sm: 12px;
	--ec-radius-md: 20px;
	--ec-radius-lg: 28px;
	--ec-ease:      cubic-bezier(0.22, 1, 0.36, 1);
	--ec-duration:  420ms;
	--ec-shadow-brand: 0 14px 30px rgba(37, 99, 235, 0.28);
	--ec-shadow-deep:  0 24px 60px rgba(10, 15, 28, 0.22);
}

html, body {
	overflow-x: hidden;
	max-width: 100vw;
	min-width: 0;
}

html { scroll-behavior: smooth; }

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--ink);
}

/* Light editor surface — guarantees readability inside the FSE editor canvas. */
.editor-styles-wrapper { background: var(--wp--preset--color--surface-light); }

/* Prevent flex/grid children forcing parent wider than viewport. */
.wp-block-columns, .wp-block-column, .wp-block-buttons, .wp-block-group { min-width: 0; }

::selection {
	background: var(--wp--preset--color--brand-accent);
	color: var(--wp--preset--color--white);
}

a { transition: color 220ms var(--ec-ease); }

img, svg, video { max-width: 100%; height: auto; display: block; }

:target { scroll-margin-top: 100px; }

/* ============================================================
   2. SITE MAIN — premium subtle background, no inter-section gap
   ============================================================
   Top-level patterns stack flush against each other. Each pattern
   manages its own internal padding (xl on top/bottom). The subtle
   mesh gradient adds depth so the page never reads "empty white".
*/

.site-main {
	background:
		radial-gradient(ellipse 80% 50% at 50% 0%, rgba(37, 99, 235, 0.18), transparent 70%),
		radial-gradient(ellipse 60% 40% at 90% 100%, rgba(30, 58, 138, 0.18), transparent 70%),
		var(--wp--preset--color--surface);
}

.site-main > .wp-block-post-content,
.wp-site-blocks > .wp-block-post-content {
	gap: 0 !important;
	display: flex;
	flex-direction: column;
}

/* Zero margins ONLY between direct top-level pattern sections —
   not on every nested element (that would kill heading/paragraph rhythm). */
.site-main > .wp-block-post-content > .wp-block-group,
.site-main > .wp-block-post-content > .wp-block-cover,
.site-main > .wp-block-post-content > .wp-block-columns {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* ============================================================
   3. SITE HEADER — sticky, premium frosted glass
   ============================================================ */

.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	backdrop-filter: saturate(170%) blur(16px);
	-webkit-backdrop-filter: saturate(170%) blur(16px);
	background: rgba(5, 8, 17, 0.72) !important;
	border-bottom: 1px solid transparent;
	color: var(--wp--preset--color--white);
	transition: border-color 240ms var(--ec-ease), background 240ms var(--ec-ease), box-shadow 240ms var(--ec-ease);
}
.site-header.is-scrolled {
	border-bottom-color: rgba(255, 255, 255, 0.08);
	background: rgba(5, 8, 17, 0.92) !important;
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.45);
}
.site-header .site-title a,
.site-header .wp-block-site-title a { color: var(--wp--preset--color--white); }
.site-header__brand .custom-logo,
.site-header__brand .wp-block-site-logo img { max-height: 72px; width: auto; display: block; }
.site-header__inner { gap: var(--wp--preset--spacing--md); align-items: center; flex-wrap: nowrap; min-width: 0; }
.site-header__brand { gap: var(--wp--preset--spacing--xs); flex-shrink: 0; }
.site-header__nav   { gap: var(--wp--preset--spacing--sm); align-items: center; min-width: 0; }

/* Smaller, compact header CTA — vertically centered with nav links */
.site-header__cta {
	margin: 0 !important;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	align-self: center;
	margin-top: 2px !important; /* optical centering with nav text x-height */
}
.site-header__cta .wp-block-button { margin: 0; display: flex; align-items: center; }
.site-header__cta .wp-block-button__link {
	padding: 0.55rem 1.1rem !important;
	font-size: 0.825rem !important;
	letter-spacing: 0.02em;
	line-height: 1.2;
	display: inline-flex;
	align-items: center;
}

/* ============================================================
   4. NAVIGATION — desktop dropdowns + mobile drawer below 1024px
   ============================================================ */

.site-header .wp-block-navigation { font-family: var(--wp--preset--font-family--body); }

.site-header .wp-block-navigation .wp-block-navigation-item__content {
	color: var(--wp--preset--color--white);
	font-weight: 500;
	padding: 0.5rem 0.85rem;
	border-radius: 999px;
	transition: background 200ms var(--ec-ease), color 200ms var(--ec-ease);
}
.site-header .wp-block-navigation .wp-block-navigation-item:hover > .wp-block-navigation-item__content,
.site-header .wp-block-navigation .wp-block-navigation-item__content:focus-visible {
	background: rgba(255, 255, 255, 0.08);
	color: var(--wp--preset--color--brand-accent);
}
.site-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--brand-accent);
}

/* Force mobile drawer up to 1024px (WP default is 600px which leaves
   the nav cropped on tablets). */
@media (max-width: 1023px) {
	.site-header .wp-block-navigation__responsive-container:not(.is-menu-open):not(.hidden-by-default) {
		display: none !important;
	}
	.site-header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex !important;
		color: var(--wp--preset--color--white);
		background: transparent;
		padding: 0.4rem;
		border-radius: 10px;
	}
	.site-header .wp-block-navigation__responsive-container-open:hover { background: rgba(255, 255, 255, 0.08); }
}

/* Desktop submenu (dropdown) */
@media (min-width: 1024px) {
	.site-header .wp-block-navigation__responsive-container-open { display: none !important; }
	.site-header .wp-block-navigation__responsive-container { display: flex !important; position: static !important; background: transparent !important; padding: 0 !important; }
	/* Invisible bridge so the dropdown stays open while the cursor crosses the gap. */
	.site-header .wp-block-navigation .has-child > .wp-block-navigation-item__content { position: relative; }
	.site-header .wp-block-navigation .has-child > .wp-block-navigation-item__content::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		height: 0.75rem;
	}
	.site-header .wp-block-navigation .wp-block-navigation__submenu-container {
		min-width: 240px;
		padding: 0.5rem !important;
		background: rgba(10, 15, 28, 0.96) !important;
		border: 1px solid rgba(255, 255, 255, 0.08) !important;
		border-radius: var(--ec-radius-md);
		box-shadow: 0 20px 50px rgba(0, 0, 0, 0.55);
		backdrop-filter: blur(14px);
		margin-top: 0.5rem !important;
		opacity: 0;
		visibility: hidden;
		transform: translateY(8px);
		pointer-events: none;
		transition: opacity 200ms var(--ec-ease), transform 200ms var(--ec-ease), visibility 0s linear 200ms;
	}
	.site-header .wp-block-navigation .has-child:hover > .wp-block-navigation__submenu-container,
	.site-header .wp-block-navigation .has-child:focus-within > .wp-block-navigation__submenu-container {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		pointer-events: auto;
		transition: opacity 200ms var(--ec-ease), transform 200ms var(--ec-ease), visibility 0s;
	}
	.site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding: 0.55rem 0.85rem;
		border-radius: 10px;
		display: block;
	}
}

/* Mobile overlay drawer */
.site-header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--brand-primary-dark) !important;
	position: fixed !important;
	inset: 0 !important;
	width: 100vw !important;
	height: 100dvh !important;
	min-height: 100vh !important;
	box-sizing: border-box !important;
	overflow-y: auto !important;
	padding: 4.25rem 1.25rem 1.5rem !important;
	color: var(--wp--preset--color--white);
}
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	min-height: calc(100dvh - 5.75rem);
	width: min(100%, 560px);
	margin-inline: auto;
}
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	align-items: stretch !important;
	width: 100%;
	gap: 0.15rem !important;
}
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	color: var(--wp--preset--color--white);
	font-size: 1.15rem;
	line-height: 1.3;
	min-height: 44px;
	padding: 0.55rem 0;
	font-weight: 500;
}
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover {
	background: transparent;
	color: var(--wp--preset--color--brand-accent);
}
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 0 0.5rem 1rem !important;
	width: 100% !important;
}
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: 1rem;
	font-weight: 450;
	padding-block: 0.4rem;
}
.site-header .wp-block-navigation__responsive-container-close {
	color: var(--wp--preset--color--white);
	top: 1.25rem !important;
	right: 1.25rem !important;
	padding: 0.6rem;
	border-radius: 10px;
}
.site-header .wp-block-navigation__responsive-container-open svg,
.site-header .wp-block-navigation__responsive-container-close svg { fill: currentColor; }

/* ============================================================
   5. BUTTONS — premium pill with subtle lift
   ============================================================ */

.wp-block-button .wp-block-button__link {
	position: relative;
	overflow: hidden;
	border-radius: 999px;
	transition: transform var(--ec-duration) var(--ec-ease),
				box-shadow var(--ec-duration) var(--ec-ease),
				background-color 220ms var(--ec-ease),
				color 220ms var(--ec-ease);
	box-shadow: 0 1px 2px rgba(10, 15, 28, 0.10);
	will-change: transform;
}
.wp-block-button .wp-block-button__link::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(120deg, transparent 30%, rgba(255, 255, 255, 0.25) 50%, transparent 70%);
	transform: translateX(-100%);
	transition: transform 700ms var(--ec-ease);
	pointer-events: none;
}
.wp-block-button .wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: var(--ec-shadow-brand);
}
.wp-block-button .wp-block-button__link:hover::after { transform: translateX(100%); }
.wp-block-button .wp-block-button__link:active { transform: translateY(0); }
.wp-block-button .wp-block-button__link:focus-visible {
	outline: 3px solid var(--wp--preset--color--brand-accent);
	outline-offset: 3px;
}

.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	border: 1.5px solid currentColor;
	box-shadow: none;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--brand-primary-dark);
	color: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--brand-primary-dark);
}

/* ============================================================
   6. HERO — premium dark or light variant, decorative backdrop
   ============================================================ */

/* Cinematic full-bleed hero (home) — blurred background image + dark overlay. */
.hero-cinematic { position: relative; overflow: hidden; isolation: isolate; }
.hero-cinematic .wp-block-cover__image-background {
	filter: blur(10px) saturate(115%) brightness(0.85);
	transform: scale(1.12); /* hide blur edges */
	transition: transform 8000ms var(--ec-ease);
}
.hero-cinematic:hover .wp-block-cover__image-background { transform: scale(1.18); }
.hero-cinematic::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 60% 50% at 20% 20%, rgba(37, 99, 235, 0.35), transparent 60%),
		radial-gradient(ellipse 50% 50% at 85% 85%, rgba(30, 58, 138, 0.45), transparent 65%),
		linear-gradient(180deg, rgba(5, 8, 17, 0.55) 0%, rgba(5, 8, 17, 0.75) 100%);
	pointer-events: none;
	z-index: 0;
}
.hero-cinematic > .wp-block-cover__inner-container { position: relative; z-index: 2; }
.hero-cinematic__content { max-width: 880px; margin-inline: auto; }
.hero-cinematic__content > * + * { margin-top: 1.25rem; }
.hero-cinematic__content .wp-block-buttons { gap: 0.85rem; flex-wrap: wrap; }
.hero-cinematic__trust { gap: 1rem !important; opacity: 0.9; align-items: center; }

/* Section hero (interior pages) — same recipe at smaller scale. */
.section-hero { position: relative; overflow: hidden; isolation: isolate; }
.section-hero .wp-block-cover__image-background {
	filter: blur(8px) saturate(110%) brightness(0.82);
	transform: scale(1.1);
}
.section-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 60% 50% at 80% 10%, rgba(37, 99, 235, 0.30), transparent 60%),
		linear-gradient(180deg, rgba(5, 8, 17, 0.55) 0%, rgba(5, 8, 17, 0.78) 100%);
	pointer-events: none;
	z-index: 0;
}
.section-hero > .wp-block-cover__inner-container { position: relative; z-index: 2; }
.section-hero__content > * + * { margin-top: 1rem; }
.section-hero__content .wp-block-buttons { margin-top: 1.5rem !important; }

/* Legacy hero-split (kept for compatibility with older patterns). */
.hero-section {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}
.hero-section::before,
.hero-section::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	filter: blur(60px);
	z-index: 0;
	pointer-events: none;
	opacity: 0.65;
}
.hero-section::before {
	width: 480px; height: 480px;
	top: -120px; right: -120px;
	background: radial-gradient(circle, rgba(37, 99, 235, 0.45), transparent 70%);
	animation: ec-float 14s ease-in-out infinite;
}
.hero-section::after {
	width: 380px; height: 380px;
	bottom: -100px; left: -80px;
	background: radial-gradient(circle, rgba(30, 58, 138, 0.35), transparent 70%);
	animation: ec-float 18s ease-in-out -3s infinite reverse;
}
.hero-section > * { position: relative; z-index: 1; }

@keyframes ec-float {
	0%, 100% { transform: translate(0, 0) scale(1); }
	50%      { transform: translate(28px, -22px) scale(1.08); }
}

.hero-content { padding-block: clamp(2rem, 5vw, 4rem); }
.hero-content > * + * { margin-top: 1.25rem; }
.hero-content .wp-block-heading { margin-top: 0.75rem; }
.hero-content .wp-block-buttons { margin-top: 1.75rem; gap: 0.75rem; }
.hero-trust { margin-top: 2rem !important; gap: 1.25rem; opacity: 0.85; }

.hero-visual {
	position: relative;
}
.hero-visual::before {
	content: "";
	position: absolute;
	inset: -12px;
	background: linear-gradient(135deg, var(--wp--preset--color--brand-accent), var(--wp--preset--color--brand-primary));
	border-radius: calc(var(--ec-radius-lg) + 12px);
	opacity: 0.15;
	z-index: -1;
	filter: blur(20px);
}

/* ============================================================
   7. IMAGE CROPPING — replaces stripped inline styles
   ============================================================ */

.hero-visual img,
.split-story img,
.team-card img {
	width: 100%;
	height: auto;
	object-fit: cover;
	display: block;
}
.hero-visual img { aspect-ratio: 4 / 5; }
.split-story img { aspect-ratio: 5 / 6; }
.team-card  img { aspect-ratio: 4 / 5; }

.hero-visual,
.split-story figure,
.team-card .wp-block-image {
	overflow: hidden;
	border-radius: var(--ec-radius-lg);
}
.team-card .wp-block-image { border-radius: var(--ec-radius-md); }

/* ============================================================
   8. SERVICE CARDS — premium glassmorphism
   ============================================================ */

/* Responsive auto-fit grid override (WP defaults to fixed columnCount). */
.wp-block-post-template.is-layout-grid.service-grid {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)) !important;
	gap: var(--wp--preset--spacing--md) !important;
}

.service-card {
	transition: transform var(--ec-duration) var(--ec-ease),
				box-shadow var(--ec-duration) var(--ec-ease),
				border-color 220ms var(--ec-ease);
	box-shadow: var(--wp--preset--shadow--sm);
	overflow: hidden;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--ec-radius-md);
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	min-height: 100%;
}
.service-card .wp-block-post-featured-image {
	margin: calc(var(--wp--preset--spacing--md) * -1) calc(var(--wp--preset--spacing--md) * -1) 0;
	border-radius: 0 !important;
	overflow: hidden;
}
.service-card .wp-block-post-featured-image img {
	border-radius: 0 !important;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms var(--ec-ease);
}
.service-card .wp-block-post-title {
	font-size: 1.35rem !important;
	line-height: 1.2 !important;
	font-weight: 600;
	margin: 0.25rem 0 0;
	color: var(--wp--preset--color--ink);
}
.service-card .wp-block-post-excerpt {
	margin-top: 0.5rem;
	font-size: 0.98rem;
	line-height: 1.65;
	color: var(--wp--preset--color--muted);
}
.service-card .wp-block-post-excerpt__more-link {
	display: inline-block;
	margin-top: 0.85rem;
	color: var(--wp--preset--color--brand-primary);
	font-weight: 600;
	text-decoration: none;
	letter-spacing: 0.01em;
}
.service-card .wp-block-post-excerpt__more-link:hover { color: var(--wp--preset--color--brand-accent); }
.service-card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 0%, rgba(37, 99, 235, 0.04) 100%);
	opacity: 0;
	transition: opacity 360ms var(--ec-ease);
	pointer-events: none;
}
.service-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--ec-shadow-deep);
	border-color: var(--wp--preset--color--brand-accent);
}
.service-card:hover::before { opacity: 1; }
.service-card:hover .wp-block-post-featured-image img { transform: scale(1.06); }
.service-card .wp-block-post-title a {
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-size: 0% 1.5px;
	background-position: 0 100%;
	transition: background-size 360ms var(--ec-ease), color 220ms var(--ec-ease);
}
.service-card:hover .wp-block-post-title a { background-size: 100% 1.5px; }

/* ============================================================
   9. REVIEW CARDS
   ============================================================ */

.review-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--ec-radius-md);
	box-shadow: var(--wp--preset--shadow--sm);
	transition: transform var(--ec-duration) var(--ec-ease),
				box-shadow var(--ec-duration) var(--ec-ease);
	position: relative;
	padding: var(--wp--preset--spacing--md);
}
.review-card::before {
	content: "\201C";
	position: absolute;
	top: 6px;
	right: 22px;
	font-family: var(--wp--preset--font-family--display);
	font-size: 5.5rem;
	line-height: 1;
	color: var(--wp--preset--color--brand-accent);
	opacity: 0.18;
	pointer-events: none;
}
.review-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--wp--preset--shadow--md);
}

.legacy-review-fallback { display: none !important; }
.google-reviews-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	grid-auto-rows: 1fr;
	column-gap: var(--wp--preset--spacing--md);
	row-gap: clamp(2.75rem, 4vw, 4rem);
	align-items: stretch;
	margin-top: var(--wp--preset--spacing--lg);
}
.google-review-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 0;
	box-sizing: border-box;
	background: rgba(255, 255, 255, 0.055);
	border-color: rgba(255, 255, 255, 0.12);
	color: #fff;
}
.google-review-card::before { display: none; }
.google-review-card.reveal { transform: none; }
.google-review-card.reveal:hover { transform: translateY(-4px); }
.google-review-card__stars {
	color: #FBBF24;
	letter-spacing: 0.12em;
	margin: 0 0 0.8rem;
}
.google-review-card blockquote { margin: 0; flex: 1 1 auto; }
.google-review-card blockquote p {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 8;
	overflow: hidden;
	color: #F8FAFC;
	line-height: 1.65;
	margin: 0;
}
.google-review-card footer {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	margin-top: 1.25rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.google-review-card footer a { color: #fff; text-decoration: none; }
.google-review-card footer span { color: var(--wp--preset--color--muted-dark); font-size: 0.82rem; }

/* Dual clinic maps */
.clinic-maps-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.clinic-map-card {
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 18px;
	box-shadow: 0 18px 45px -28px rgba(10, 15, 28, 0.45);
}
.clinic-map-card__frame { aspect-ratio: 16 / 8; background: #E2E8F0; }
.clinic-map-card iframe { display: block; width: 100%; height: 100%; border: 0; }
.clinic-map-card__body { padding: 1rem 1.1rem 1.15rem; }
.clinic-map-card__body h3 { margin: 0 0 0.35rem; color: var(--wp--preset--color--ink); font-size: 1.05rem; }
.clinic-map-card__body p { margin: 0 0 0.7rem; color: var(--wp--preset--color--muted); font-size: 0.88rem; line-height: 1.45; }
.clinic-map-card__body a { color: var(--wp--preset--color--brand-primary); font-weight: 650; text-decoration: none; }

/* Services: explicit contrast and a premium light catalog surface. */
.services-archive-main,
.service-single-main { background: var(--wp--preset--color--surface); }
.service-single-main { padding-inline: 0 !important; }
.services-catalog { color: var(--wp--preset--color--ink); }
.services-catalog .service-card {
	background: #fff !important;
	border-color: #DCE3EC !important;
	box-shadow: 0 16px 45px -30px rgba(10, 15, 28, 0.4);
}
.services-catalog .service-card :where(h2,h3,a) { color: var(--wp--preset--color--ink) !important; }
.services-catalog .service-card .wp-block-post-excerpt,
.services-catalog .service-card .wp-block-post-excerpt p { color: var(--wp--preset--color--muted) !important; }
.service-hero { color: #fff; }
.service-hero .wp-block-post-title { color: #fff !important; }
.service-hero .wp-block-post-excerpt,
.service-hero .wp-block-post-excerpt p { color: var(--wp--preset--color--muted-dark) !important; }
.service-content-card {
	color: var(--wp--preset--color--ink);
	width: 100%;
	max-width: none;
	margin: 0 !important;
	border-block: 1px solid #DCE3EC;
	border-inline: 0;
	border-radius: 0;
	box-sizing: border-box;
	box-shadow: 0 18px 60px -44px rgba(10, 15, 28, 0.45);
}
.service-content-card :where(h1,h2,h3,h4) { color: var(--wp--preset--color--ink); }
.service-content-card :where(p,li) { color: var(--wp--preset--color--muted); }

.service-detail-intro,
.service-detail-section,
.service-faq-section { margin-block: clamp(2.75rem, 6vw, 4.5rem); }
.service-detail-intro { margin-top: 0; }
.service-lede { max-width: 65ch; }
.service-at-glance,
.service-journey-grid,
.service-benefit-grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	align-items: stretch;
	margin-top: 1.75rem;
}
.service-mini-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	min-height: 100%;
	padding: 1.25rem;
	background: #fff;
	border: 1px solid #DCE3EC;
	border-radius: 16px;
	box-shadow: 0 14px 32px -26px rgba(10, 15, 28, 0.5);
}
.service-mini-card__number {
	margin: 0 !important;
	color: var(--wp--preset--color--brand-accent) !important;
	font-size: 0.75rem;
	font-weight: 750;
	letter-spacing: 0.14em;
}
.service-mini-card h3 { margin: 0; font-size: 1.05rem; line-height: 1.3; }
.service-mini-card p:last-child { margin: auto 0 0; font-size: 0.9rem; line-height: 1.55; }
.service-rule {
	width: 100%;
	height: 1px;
	border: 0;
	background: linear-gradient(90deg, transparent, #CBD5E1 15%, #CBD5E1 85%, transparent);
	opacity: 1;
}
.service-detail-section > h2,
.service-faq-section > h2,
.service-journey-panel > h2 { margin-top: 0.35rem; font-size: 2rem; line-height: 1.15; }
.service-chip-grid { gap: 0.65rem !important; margin-top: 1.25rem; }
.service-chip {
	margin: 0 !important;
	padding: 0.65rem 0.85rem;
	background: #EFF6FF;
	border: 1px solid #BFDBFE;
	border-radius: 10px;
	color: #1E3A8A !important;
	font-size: 0.88rem;
	font-weight: 600;
	line-height: 1.35;
}
.service-journey-panel {
	position: relative;
	margin: clamp(2.75rem, 6vw, 4.5rem) calc(var(--wp--preset--spacing--md) * -1);
	padding: clamp(1.5rem, 4vw, 2.5rem);
	background: linear-gradient(145deg, #080D18 0%, #111E3B 60%, #1E3A8A 100%);
	border-radius: 20px;
	overflow: hidden;
}
.service-journey-panel::after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 85% 10%, rgba(59, 130, 246, 0.22), transparent 34%);
	pointer-events: none;
}
.service-journey-panel > * { position: relative; z-index: 1; }
.service-journey-panel > .eyebrow { color: #93C5FD !important; }
.service-journey-panel > h2 { color: #fff !important; }
.service-journey-step {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	min-height: 100%;
	padding: 1.15rem;
	background: rgba(255, 255, 255, 0.055);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 14px;
}
.service-journey-step__number {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	margin: 0 0 0.25rem !important;
	background: var(--wp--preset--color--brand-accent);
	border-radius: 50%;
	color: #fff !important;
	font-weight: 750;
}
.service-journey-step h3 { margin: 0; color: #fff !important; font-size: 1.05rem; }
.service-journey-step p:last-child { margin: 0; color: #CBD5E1 !important; font-size: 0.9rem; line-height: 1.55; }
.service-benefit-card {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	min-height: 100%;
	padding: 1.1rem;
	background: #fff;
	border: 1px solid #DCE3EC;
	border-radius: 14px;
}
.service-benefit-card__icon {
	display: grid;
	place-items: center;
	flex: 0 0 28px;
	width: 28px;
	height: 28px;
	margin: 0 !important;
	background: #DBEAFE;
	border-radius: 8px;
	color: #1D4ED8 !important;
	font-weight: 800;
}
.service-benefit-card p:last-child { margin: 0; font-size: 0.92rem; line-height: 1.55; }
.service-faq-item {
	margin: 0 0 0.75rem;
	padding: 0;
	background: #fff;
	border: 1px solid #DCE3EC;
	border-radius: 14px;
	overflow: hidden;
}
.service-faq-item summary {
	cursor: pointer;
	padding: 1rem 1.15rem;
	color: var(--wp--preset--color--ink);
	font-weight: 650;
	line-height: 1.4;
}
.service-faq-item > p { margin: 0; padding: 0 1.15rem 1.15rem; line-height: 1.65; }
.service-inline-cta {
	margin: clamp(2.75rem, 6vw, 4.5rem) 0 0;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	background: linear-gradient(135deg, #0A0F1C, #1E3A8A);
	border-radius: 20px;
	color: #fff;
}
.service-inline-cta :where(h2,p) { color: #fff !important; }
.service-inline-cta > p:not(.eyebrow) { color: #CBD5E1 !important; max-width: 58ch; }
.service-inline-cta .eyebrow { color: #93C5FD !important; }

/* ============================================================
   10. PROCESS STEPS
   ============================================================ */

.process-step {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--ec-radius-md);
	transition: transform var(--ec-duration) var(--ec-ease),
				box-shadow var(--ec-duration) var(--ec-ease),
				border-color 220ms var(--ec-ease);
	position: relative;
}
.process-step:hover {
	transform: translateY(-4px);
	box-shadow: var(--wp--preset--shadow--md);
	border-color: var(--wp--preset--color--brand-accent) !important;
}

/* ============================================================
   11. STATS STRIP
   ============================================================ */

.stats-strip h3 {
	background: linear-gradient(180deg, var(--wp--preset--color--white) 0%, rgba(255, 255, 255, 0.65) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

/* ============================================================
   12. VALUE PROPS
   ============================================================ */

.value-prop {
	padding: var(--wp--preset--spacing--md);
	border-radius: var(--ec-radius-md);
	transition: background-color 280ms var(--ec-ease),
				box-shadow 280ms var(--ec-ease),
				border-color 280ms var(--ec-ease),
				transform 280ms var(--ec-ease);
	border: 1px solid transparent;
	background: var(--wp--preset--color--white);
	height: 100%;
}
.value-prop:hover {
	border-color: var(--wp--preset--color--brand-accent);
	box-shadow: var(--wp--preset--shadow--md);
	transform: translateY(-4px);
}

/* ============================================================
   13. CHECK LIST
   ============================================================ */

.check-list { list-style: none; padding-left: 0; }
.check-list li { position: relative; padding-left: 1.85rem; }
.check-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 999px;
	background: var(--wp--preset--color--brand-accent);
	box-shadow: inset 0 0 0 4px var(--wp--preset--color--white),
				inset 0 0 0 5px var(--wp--preset--color--brand-accent);
}

/* ============================================================
   14. FAQ ACCORDION
   ============================================================ */

.faq-accordion { display: grid; gap: 0.85rem; }
.faq-item {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--ec-radius-md);
	padding: 1.15rem 1.5rem;
	transition: border-color 220ms var(--ec-ease), box-shadow 220ms var(--ec-ease);
}
.faq-item[open] {
	border-color: var(--wp--preset--color--brand-accent);
	box-shadow: var(--wp--preset--shadow--sm);
}
.faq-item__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	cursor: pointer;
	list-style: none;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	font-size: clamp(1.05rem, 1.4vw, 1.3rem);
	color: var(--wp--preset--color--ink);
}
.faq-item__q::-webkit-details-marker { display: none; }
.faq-item__icon {
	flex: 0 0 auto;
	width: 2rem;
	height: 2rem;
	border-radius: 999px;
	background: var(--wp--preset--color--brand-accent-soft);
	display: grid;
	place-items: center;
	font-size: 1.25rem;
	color: var(--wp--preset--color--brand-accent);
	transition: transform 280ms var(--ec-ease), background 220ms var(--ec-ease);
}
.faq-item[open] .faq-item__icon {
	transform: rotate(45deg);
	background: var(--wp--preset--color--brand-accent);
	color: var(--wp--preset--color--white);
}
.faq-item__a { color: var(--wp--preset--color--muted); font-size: 1.02rem; line-height: 1.7; padding-top: 0.85rem; }

/* ============================================================
   15. CONDITIONS PILL CLOUD
   ============================================================ */

.condition-cloud {
	list-style: none;
	padding: 0;
	margin: var(--wp--preset--spacing--md) 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}
.condition-pill {
	display: inline-flex;
	align-items: center;
	padding: 0.6rem 1.05rem;
	border-radius: 999px;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	font-size: 0.95rem;
	font-weight: 500;
	color: var(--wp--preset--color--ink);
	transition: background 220ms var(--ec-ease), color 220ms var(--ec-ease), transform 220ms var(--ec-ease), border-color 220ms var(--ec-ease);
}
.condition-pill:hover {
	background: var(--wp--preset--color--brand-accent);
	color: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--brand-accent);
	transform: translateY(-2px);
}

/* ============================================================
   16. MAP CARD PLACEHOLDER
   ============================================================ */

.map-card {
	aspect-ratio: 4 / 3;
	border-radius: var(--ec-radius-lg);
	background:
		radial-gradient(circle at 30% 30%, rgba(37, 99, 235, 0.20), transparent 50%),
		radial-gradient(circle at 70% 60%, rgba(30, 58, 138, 0.25), transparent 55%),
		var(--wp--preset--color--brand-accent-soft);
	display: grid;
	place-items: center;
	text-align: center;
	padding: var(--wp--preset--spacing--lg);
	color: var(--wp--preset--color--brand-primary-dark);
}
.map-card__pin { font-size: 3rem; }
.map-card__label { max-width: 28ch; font-size: 0.95rem; opacity: 0.85; margin-top: 0.5rem; }

/* ============================================================
   17. INSURANCE LOGOS
   ============================================================ */

.insurance-logos {
	gap: clamp(1.25rem, 4vw, 3rem) !important;
	margin-top: var(--wp--preset--spacing--sm);
	opacity: 0.6;
	flex-wrap: wrap;
}
.insurance-logos p {
	transition: opacity 220ms var(--ec-ease), transform 220ms var(--ec-ease), color 220ms var(--ec-ease);
}
.insurance-logos p:hover {
	opacity: 1;
	color: var(--wp--preset--color--brand-accent);
	transform: translateY(-2px);
}

/* ============================================================
   18. FOOTER
   ============================================================ */

.site-footer {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	position: relative;
	overflow: hidden;
}
.site-footer::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--wp--preset--color--brand-accent), var(--wp--preset--color--brand-primary));
}
.site-footer__logo .custom-logo { filter: brightness(0) invert(1); max-height: 64px; width: auto; }
.site-footer__grid h4 { margin-bottom: 0.85rem; }
.site-footer a { color: inherit; transition: opacity 220ms var(--ec-ease), color 220ms var(--ec-ease); }
.site-footer a:hover { color: var(--wp--preset--color--brand-accent); opacity: 1; }
.site-footer .wp-block-navigation a { color: inherit; }
.site-footer__meta { gap: 1rem; align-items: center; padding-top: var(--wp--preset--spacing--sm); }

/* Embedded CRM form: fixed provider height on desktop, fluid on phones. */
.ec-embed-form {
	width: 100%;
	max-width: 880px;
	margin-inline: auto;
}
.ec-embed-form__note {
	margin: 0 0 1rem;
	padding: 0.8rem 1rem;
	border-left: 3px solid var(--wp--preset--color--brand-accent);
	background: rgba(37, 99, 235, 0.08);
	color: var(--wp--preset--color--muted);
	font-size: 0.9rem;
	line-height: 1.5;
}
.ec-embed-form iframe {
	display: block;
	width: 100%;
	min-height: 460px;
	background: #fff;
}

/* Legal pages are normal editable Gutenberg pages with a calm reading surface. */
.legal-page {
	margin-block: clamp(1rem, 3vw, 2.5rem);
	background: var(--wp--preset--color--surface-light);
	color: var(--wp--preset--color--ink);
	border: 1px solid var(--wp--preset--color--line-light, #E2E8F0);
	border-radius: 20px;
	box-shadow: var(--wp--preset--shadow--card, 0 20px 50px rgba(10, 15, 28, 0.16));
}
.legal-page h1,
.legal-page h2 { color: var(--wp--preset--color--ink); }
.legal-page p { color: var(--wp--preset--color--muted); line-height: 1.75; }
.legal-page__intro { font-size: clamp(1.05rem, 2vw, 1.25rem); }

/* ============================================================
   19. SCROLL-IN ANIMATIONS — added by JS via .is-in-view
   ============================================================ */

.reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 800ms var(--ec-ease), transform 800ms var(--ec-ease);
}
.reveal.is-in-view {
	opacity: 1;
	transform: none;
}

.reveal-scale {
	opacity: 0;
	transform: scale(0.96);
	transition: opacity 700ms var(--ec-ease), transform 700ms var(--ec-ease);
}
.reveal-scale.is-in-view { opacity: 1; transform: none; }

/* ============================================================
   20. RESPONSIVE TUNING — mobile-first refinements
   ============================================================ */

/* Tablet (≤ 1023px) */
@media (max-width: 1023px) {
	.site-header__nav { gap: 0.5rem; }
	.hero-section { min-height: auto !important; }
	.hero-content { text-align: center; padding-block: 2rem; }
	.hero-content .wp-block-buttons { justify-content: center; }
	.hero-trust { justify-content: center; }
	.hero-section .wp-block-columns { gap: var(--wp--preset--spacing--md) !important; }
	.hero-section .wp-block-column { flex-basis: 100% !important; width: 100% !important; }
	.google-reviews-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.service-at-glance,
	.service-journey-grid,
	.service-benefit-grid { grid-template-columns: 1fr; }
}

/* Mobile (≤ 781px) */
@media (max-width: 781px) {
	.site-header { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; }
	.site-header__brand .custom-logo,
	.site-header__brand .wp-block-site-logo img { max-height: 40px; }
	.site-header__cta .wp-block-button__link { padding: 0.5rem 0.95rem !important; font-size: 0.78rem !important; }

	.wp-block-columns { gap: var(--wp--preset--spacing--md) !important; }
	.wp-block-column { flex-basis: 100% !important; width: 100% !important; min-width: 0; }

	.review-card::before { font-size: 4rem; top: 6px; right: 16px; }
	.faq-item { padding: 1rem 1.15rem; }
	.faq-item__q { font-size: 1.05rem; gap: 1rem; }
	.condition-pill { font-size: 0.875rem; padding: 0.5rem 0.85rem; }
	.stats-strip {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 0 !important;
		width: 100%;
	}
	.stats-strip .wp-block-column {
		display: flex;
		flex-direction: column;
		justify-content: center;
		width: auto !important;
		min-height: 138px;
		padding: 1rem;
		text-align: center;
		border-right: 1px solid rgba(255, 255, 255, 0.12);
		border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	}
	.stats-strip .wp-block-column:nth-child(2n) { border-right: 0; }
	.stats-strip .wp-block-column:nth-last-child(-n+2) { border-bottom: 0; }
	.stats-strip .stat-number { margin: 0 0 0.45rem !important; }
	.stats-strip .wp-block-column p:last-child {
		margin: 0;
		font-size: 0.82rem !important;
		line-height: 1.35;
	}
	.google-reviews-grid { grid-template-columns: 1fr; }
	.google-review-card { min-height: auto; }
	.services-catalog { padding-inline: 1rem !important; }
	.service-content-card { width: 100%; max-width: none; border-radius: 0; }

	/* Heading scale-down for mobile readability */
	.hero-content h1 { font-size: clamp(2.25rem, 9vw, 3.25rem) !important; }
	h2 { font-size: clamp(1.75rem, 6vw, 2.5rem) !important; }
}

/* Small mobile (≤ 480px) */
@media (max-width: 480px) {
	.site-header__cta { display: none; }
	.hero-section::before, .hero-section::after { opacity: 0.4; }

	/* Consistent mobile breathing room across page-builder sections. */
	.site-main > .wp-block-post-content > :where(.wp-block-group, .wp-block-cover),
	.site-main > :where(.wp-block-group, .wp-block-cover):not(.service-content-card) {
		padding-top: 3.5rem !important;
		padding-bottom: 3.5rem !important;
		padding-left: 1rem !important;
		padding-right: 1rem !important;
	}
	.site-main > .wp-block-post-content > :where(.alignfull, .alignwide) {
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		box-sizing: border-box;
	}
	.section-hero,
	.hero-cinematic { min-height: auto !important; padding-block: 4rem !important; }
	.wp-block-columns { gap: 1.25rem !important; }
	:where(.review-card, .team-card, .process-step, .value-prop, .new-patient-card) {
		border-radius: 16px !important;
	}
	.google-reviews-grid { column-gap: 1rem; row-gap: 1.25rem; margin-top: 1.5rem; }
	.google-review-card { padding: 1.1rem; box-shadow: none; }
	.google-review-card blockquote p { -webkit-line-clamp: 7; font-size: 0.95rem; line-height: 1.6; }
	.google-review-card footer { margin-top: 1rem; padding-top: 0.85rem; }
	.services-catalog .service-card { border-radius: 16px !important; box-shadow: 0 12px 30px -24px rgba(10, 15, 28, 0.5); }
	.service-content-card { padding: 1rem !important; }
	.service-detail-intro,
	.service-detail-section,
	.service-faq-section { margin-block: 3.25rem; }
	.service-detail-intro { margin-top: 0; }
	.service-at-glance,
	.service-journey-grid,
	.service-benefit-grid { gap: 0.85rem; margin-top: 1.25rem; }
	.service-mini-card,
	.service-journey-step,
	.service-benefit-card { padding: 1rem; border-radius: 13px; }
	.service-journey-panel {
		margin: 3.25rem -0.5rem;
		padding: 1.25rem;
		border-radius: 16px;
	}
	.service-detail-section > h2,
	.service-faq-section > h2,
	.service-journey-panel > h2 { font-size: 1.65rem !important; }
	.service-chip { width: 100%; padding: 0.7rem 0.8rem; }
	.service-faq-item summary { min-height: 48px; padding: 0.9rem 1rem; }
	.service-inline-cta { padding: 1.25rem; border-radius: 16px; }
	.service-inline-cta .wp-block-button,
	.service-inline-cta .wp-block-button__link { width: 100%; text-align: center; }
}

/* Smallest supported phones: preserve breathing room without overflow. */
@media (max-width: 360px) {
	.site-main > .wp-block-post-content > :where(.wp-block-group, .wp-block-cover),
	.site-main > :where(.wp-block-group, .wp-block-cover):not(.service-content-card) {
		padding-left: 0.875rem !important;
		padding-right: 0.875rem !important;
	}
	.hero-content h1 { font-size: 2.1rem !important; line-height: 1.08 !important; }
	h2 { font-size: 1.65rem !important; line-height: 1.16 !important; }
	.google-review-card,
	.service-mini-card,
	.service-journey-step,
	.service-benefit-card { padding: 0.9rem; }
	.service-content-card { width: 100%; max-width: none; }
	.service-journey-panel { margin-inline: -0.25rem; padding: 1rem; }
	.wp-block-button,
	.wp-block-button__link { max-width: 100%; }
}

/* ============================================================
   21. DARK SECTIONS — utilities, glass cards, noise overlay
   ============================================================ */

/* Base dark section: relative for noise overlay, isolates blend modes. */
.is-style-dark {
	position: relative;
	isolation: isolate;
	color: var(--wp--preset--color--white);
}
.is-style-dark h1,
.is-style-dark h2,
.is-style-dark h3,
.is-style-dark h4,
.is-style-dark h5,
.is-style-dark h6 { color: var(--wp--preset--color--white); }
.is-style-dark a { color: var(--wp--preset--color--brand-accent); }
.is-style-dark a:hover { color: var(--wp--preset--color--white); }

/* Restore dark text inside light cards nested in a dark section. */
.is-style-dark .has-white-background-color,
.is-style-dark .has-surface-light-background-color,
.is-style-dark .has-surface-gray-background-color { color: var(--wp--preset--color--ink); }
.is-style-dark .has-white-background-color :where(h1,h2,h3,h4,h5,h6),
.is-style-dark .has-surface-light-background-color :where(h1,h2,h3,h4,h5,h6),
.is-style-dark .has-surface-gray-background-color :where(h1,h2,h3,h4,h5,h6) { color: var(--wp--preset--color--ink); }

/* SVG noise grain — premium organic texture on dark surfaces. */
.has-noise::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	opacity: 0.045;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
.has-noise > * { position: relative; z-index: 1; }

/* Glass card — translucent with hairline border + blur on dark backgrounds. */
.glass-card {
	position: relative;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)) !important;
	border: 1px solid rgba(255, 255, 255, 0.10) !important;
	backdrop-filter: blur(14px) saturate(140%);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	border-radius: var(--ec-radius-md);
	transition: transform var(--ec-duration) var(--ec-ease),
				box-shadow var(--ec-duration) var(--ec-ease),
				border-color 220ms var(--ec-ease),
				background 320ms var(--ec-ease);
}
.glass-card:hover {
	transform: translateY(-4px);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.03)) !important;
	border-color: rgba(59, 130, 246, 0.45) !important;
	box-shadow: 0 24px 50px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(59, 130, 246, 0.20) inset;
}

/* Animated gradient hairline border for glass cards (subtle conic sweep). */
.glass-card::before {
	content: "";
	position: absolute;
	inset: -1px;
	border-radius: inherit;
	padding: 1px;
	background: conic-gradient(from 180deg at 50% 50%, transparent 0deg, rgba(59, 130, 246, 0.45) 90deg, transparent 180deg, rgba(30, 58, 138, 0.55) 270deg, transparent 360deg);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	opacity: 0;
	transition: opacity 360ms var(--ec-ease);
	pointer-events: none;
}
.glass-card:hover::before { opacity: 1; }

/* Stat number — gradient text, count-up enhancement. */
.stat-number {
	background: linear-gradient(180deg, #FFFFFF 0%, rgba(226, 232, 240, 0.55) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent !important;
	font-feature-settings: "tnum" 1;
	font-variant-numeric: tabular-nums;
}

/* Dark-aware component overrides */
.is-style-dark .service-card,
.is-style-dark .review-card,
.is-style-dark .process-step,
.is-style-dark .value-prop,
.is-style-dark .team-card,
.is-style-dark .faq-item {
	background: rgba(255, 255, 255, 0.04);
	border-color: rgba(255, 255, 255, 0.10);
	color: var(--wp--preset--color--white);
}
.is-style-dark .faq-item__q { color: var(--wp--preset--color--white); }
.is-style-dark .faq-item__a { color: var(--wp--preset--color--muted-dark); }
.is-style-dark .faq-item__icon {
	background: rgba(37, 99, 235, 0.20);
	color: var(--wp--preset--color--brand-accent);
}
.is-style-dark .check-list li::before {
	box-shadow: inset 0 0 0 4px var(--wp--preset--color--surface-alt),
				inset 0 0 0 5px var(--wp--preset--color--brand-accent);
}
.is-style-dark .condition-pill {
	background: rgba(255, 255, 255, 0.04);
	border-color: rgba(255, 255, 255, 0.12);
	color: var(--wp--preset--color--white);
}

/* Eyebrow utility \u2014 consistent across dark/light */
.eyebrow { margin-bottom: 0.5rem !important; }

/* Hero buttons on dark: keep outline border crisp white. */
.is-style-dark .wp-block-button.is-style-outline .wp-block-button__link {
	border-color: rgba(255, 255, 255, 0.65);
}
.is-style-dark .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--brand-primary-dark);
	border-color: var(--wp--preset--color--white);
}

/* ============================================================
   22. MOTION REDUCTION
   ============================================================ */

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
	.reveal, .reveal-scale { opacity: 1; transform: none; }
}


/* ============================================================
   23. PROCESS GRID � equal-size step cards (auto-fit responsive)
   ============================================================ */

.process-grid {
display: grid !important;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 1.25rem;
align-items: stretch;
}
/* Cancel WP's .is-layout-flow > * + * sibling margin — without this the
   first card sits flush to the top while cards 2-4 inherit margin-block-start. */
.process-grid > *,
.process-grid > * + * { margin-block-start: 0 !important; margin-top: 0 !important; }
.process-step {
display: flex !important;
flex-direction: column;
gap: 0.6rem;
height: 100%;
box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 6px 18px rgba(15, 23, 42, 0.06);
border: 1px solid rgba(30, 58, 138, 0.08);
transition: transform 220ms var(--ec-ease), box-shadow 220ms var(--ec-ease), border-color 220ms var(--ec-ease);
}
.process-step:hover {
transform: translateY(-4px);
border-color: rgba(37, 99, 235, 0.35);
box-shadow: 0 6px 14px rgba(15, 23, 42, 0.06), 0 18px 40px rgba(30, 58, 138, 0.10);
}
.process-step__num {
font-family: var(--wp--preset--font-family--display);
color: var(--wp--preset--color--brand-accent);
margin: 0 0 0.25rem 0;
}
.process-step h3 { margin: 0; color: var(--wp--preset--color--ink); }
.process-step p:last-child { margin-bottom: 0; }

@media (max-width: 600px) {
.process-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   24. SITE FOOTER � hours table, lists, legal row
   ============================================================ */

.site-footer h4 { color: var(--wp--preset--color--white); margin: 0 0 0.6rem 0; }
.site-footer a { transition: color 180ms var(--ec-ease), opacity 180ms var(--ec-ease); }
.site-footer a:hover { color: var(--wp--preset--color--white) !important; opacity: 0.85; }

.site-footer__hours {
width: 100%;
border-collapse: collapse;
font-size: 0.95rem;
color: var(--wp--preset--color--brand-accent-soft);
}
.site-footer__hours th,
.site-footer__hours td {
padding: 0.35rem 0;
text-align: left;
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
font-weight: 500;
}
.site-footer__hours th { color: var(--wp--preset--color--white); font-weight: 600; width: 40%; }
.site-footer__hours tr:last-child th,
.site-footer__hours tr:last-child td { border-bottom: 0; }

.site-footer__list { list-style: none; padding: 0; margin: 0; }
.site-footer__list li { margin: 0; }

.site-footer__meta { gap: 1rem 1.5rem; flex-wrap: wrap; }
.site-footer__legal {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-wrap: wrap;
gap: 0.4rem 1rem;
color: var(--wp--preset--color--brand-accent-soft);
}
.site-footer__legal li { margin: 0; }
.site-footer__legal li + li::before {
content: "•";
margin-right: 1rem;
opacity: 0.5;
}

@media (max-width: 781px) {
.site-footer__meta { flex-direction: column; align-items: flex-start; }
.site-footer__legal { justify-content: flex-start; }
}


/* ============================================================
   25. PROCESS GRID � content alignment refinements
   ============================================================ */

/* Pin numeral + heading to top, push paragraph baseline so cards align row-wise. */
.process-step__num { margin-top: 0 !important; }
.process-step h3 {
min-height: calc(1.25rem * 1.25 * 2); /* reserve 2 lines of heading height */
}
.process-step p:last-child { margin-top: auto; padding-top: 0.25rem; }

/* ============================================================
   26. FOOTER � slim down (less vertical padding)
   ============================================================ */

.site-footer { padding-top: var(--wp--preset--spacing--xl) !important; padding-bottom: var(--wp--preset--spacing--md) !important; }
.site-footer h2 { margin-bottom: 0.35rem; }
.site-footer h2 + p { margin-bottom: var(--wp--preset--spacing--md) !important; }
.site-footer .wp-block-columns { margin-bottom: 0 !important; }
.site-footer .wp-block-separator { margin-top: var(--wp--preset--spacing--md) !important; margin-bottom: var(--wp--preset--spacing--sm) !important; }
.site-footer__hours th, .site-footer__hours td { padding: 0.28rem 0; font-size: 0.9rem; }

/* ============================================================
   27. CONTACT FORM
   ============================================================ */

.ec-form { margin-top: 1.5rem; }
.ec-form__hp { position: absolute; left: -10000px; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.ec-form__grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 1.75rem 1.5rem;
}
.ec-form__field { display: flex; flex-direction: column; gap: 0.55rem; }
.ec-form__field--full { grid-column: 1 / -1; }
.ec-form__label {
font-size: 0.85rem;
font-weight: 600;
letter-spacing: 0.04em;
color: var(--wp--preset--color--ink);
}
.ec-form input,
.ec-form select,
.ec-form textarea {
width: 100%;
padding: 0.75rem 0.9rem;
font: inherit;
font-size: 0.98rem;
color: var(--wp--preset--color--ink);
background: #fff;
border: 1px solid rgba(15, 23, 42, 0.12);
border-radius: 12px;
transition: border-color 180ms var(--ec-ease), box-shadow 180ms var(--ec-ease);
}
.ec-form textarea { resize: vertical; min-height: 130px; }
.ec-form input:focus,
.ec-form select:focus,
.ec-form textarea:focus {
outline: none;
border-color: var(--wp--preset--color--brand-accent);
box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
}
.ec-form__submit {
margin-top: 1.25rem;
padding: 0.95rem 2rem;
font: inherit;
font-size: 1rem;
font-weight: 600;
letter-spacing: 0.02em;
color: #fff;
background: var(--wp--preset--color--brand-primary);
border: 0;
border-radius: 999px;
cursor: pointer;
transition: background 180ms var(--ec-ease), transform 180ms var(--ec-ease), box-shadow 180ms var(--ec-ease);
}
.ec-form__submit:hover { background: var(--wp--preset--color--brand-accent); transform: translateY(-1px); box-shadow: 0 12px 28px rgba(30, 58, 138, 0.18); }
.ec-form__hint { margin-top: 0.75rem; font-size: 0.8rem; color: var(--wp--preset--color--muted); }
.ec-form-alert {
padding: 0.95rem 1.1rem;
border-radius: 12px;
margin: 1rem 0 0;
font-size: 0.95rem;
font-weight: 500;
}
.ec-form-alert--ok  { background: #ecfdf5; color: #047857; border: 1px solid #a7f3d0; }
.ec-form-alert--err { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }

@media (max-width: 600px) {
.ec-form__grid { grid-template-columns: 1fr; }
}

/* ============================================================
   28. HEALTH RESOURCES � directory grid
   ============================================================ */

.resources-grid {
display: grid !important;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1.25rem;
align-items: stretch;
}
.resources-grid > *,
.resources-grid > * + * { margin-block-start: 0 !important; margin-top: 0 !important; }
.resource-card {
display: flex !important;
flex-direction: column;
gap: 0.4rem;
height: 100%;
border: 1px solid rgba(15, 23, 42, 0.06);
box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 8px 20px rgba(15, 23, 42, 0.05);
transition: transform 200ms var(--ec-ease), box-shadow 200ms var(--ec-ease), border-color 200ms var(--ec-ease);
}
.resource-card:hover {
transform: translateY(-3px);
border-color: rgba(37, 99, 235, 0.28);
box-shadow: 0 6px 14px rgba(15, 23, 42, 0.05), 0 20px 40px rgba(30, 58, 138, 0.10);
}
.resource-card h3 { margin: 0; color: var(--wp--preset--color--ink); }
.resource-card__links {
list-style: none;
padding: 0;
margin: 0.85rem 0 0;
display: flex;
flex-direction: column;
gap: 0.45rem;
}
.resource-card__links li { margin: 0; }
.resource-card__links a {
display: inline-flex;
align-items: center;
gap: 0.4rem;
color: var(--wp--preset--color--brand-primary);
font-weight: 500;
font-size: 0.95rem;
text-decoration: none;
border-bottom: 1px solid transparent;
transition: color 160ms var(--ec-ease), border-color 160ms var(--ec-ease);
}
.resource-card__links a:hover { color: var(--wp--preset--color--brand-accent); border-bottom-color: currentColor; }
.resource-card__links span { font-size: 0.78rem; opacity: 0.7; }
