/**
 * WMCFHT 2026 design system
 *
 * Colour tokens below are provisional. Adjust them in :root only.
 * Do not scatter hex values through templates or component CSS.
 */

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

:root {
	/*
	 * Palette sampled from the homepage rendering (primary #8366B2).
	 * CSS names `--color-burgundy` / `--color-blush` are kept so existing
	 * components keep working; hex values follow the mockup, not rose.
	 * Canonical editor palette lives in theme.json.
	 */
	--color-burgundy: var(--wp--preset--color--burgundy, #8366b2);
	--color-burgundy-dark: var(--wp--preset--color--burgundy-dark, #5e4980);
	--color-pink: var(--wp--preset--color--pink, #a78bc9);
	--color-blush: var(--wp--preset--color--blush, #d9d0ea);
	--color-blush-light: var(--wp--preset--color--blush-light, #f3eef8);

	--color-text: var(--wp--preset--color--text, #1c1b22);
	--color-text-muted: var(--wp--preset--color--text-muted, #5a5666);
	--color-background: var(--wp--preset--color--background, #ffffff);
	--color-surface: var(--wp--preset--color--surface, #ffffff);
	/*
	 * Muted panel fill (light cool grey). Use for nested cards / inset panels
	 * site-wide — not blush (lavender) and not pure white surface.
	 */
	--color-panel: var(--wp--preset--color--panel, #f3f3f5);
	--color-border: var(--wp--preset--color--border, #e3dfea);
	--color-focus: var(--wp--preset--color--burgundy, #8366b2);
	--color-overlay: rgb(28 27 34 / 0.45);
	/* Alias kept for existing call sites; prefer --color-panel for new work. */
	--color-neutral-subtle: var(--color-panel);

	--color-status-ok: #3d7a58;
	--color-status-ok-bg: #e7f4ee;
	--color-status-closed: #5e4980;
	--color-status-closed-bg: #efeaf6;
	--color-status-waitlist: #6b5a2e;
	--color-status-waitlist-bg: #f4eedc;
	/* Site alert (can’t-miss bar) — high contrast; not the amber outdated notice. */
	--color-site-alert-bg: #a84855;
	--color-site-alert-text: #ffffff;
	--color-site-alert-link: #ffe8e8;
	/* Neutral severity — product owner value #f3f3f5. */
	--color-site-alert-neutral-bg: #f3f3f5;
	--color-site-alert-neutral-text: var(--color-text);
	--color-site-alert-neutral-link: var(--color-burgundy-dark);

	--font-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--font-display: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;

	--text-body: clamp(1.0625rem, 0.25vw + 1rem, 1.125rem);
	--text-small: clamp(0.875rem, 0.15vw + 0.84rem, 0.9375rem);
	--text-nav: 0.9375rem;
	--text-button: 1rem;
	/* Page chrome / section titles (outside .entry-content). */
	--text-h1: clamp(2.25rem, 2.5vw + 1.5rem, 3.25rem);
	--text-h2: clamp(1.75rem, 1.6vw + 1.25rem, 2.375rem);
	--text-h3: clamp(1.25rem, 0.8vw + 1.1rem, 1.5rem);
	--text-display: clamp(2.75rem, 4vw + 1.5rem, 4.25rem);
	/*
	 * In-content headings (block Heading / classic markup inside .entry-content).
	 * Kept clearly below the page chrome H1 so nested H1s never match the title.
	 */
	--text-content-h1: clamp(1.5rem, 1.1vw + 1.25rem, 1.75rem);
	--text-content-h2: clamp(1.3125rem, 0.7vw + 1.15rem, 1.5rem);
	--text-content-h3: clamp(1.125rem, 0.35vw + 1.05rem, 1.25rem);

	--leading-body: 1.65;
	--leading-heading: 1.2;
	--leading-content-heading: 1.3;
	--measure: 40rem;

	--space-1: 0.25rem;
	--space-2: 0.5rem;
	--space-3: 0.75rem;
	--space-4: 1rem;
	--space-6: 1.5rem;
	--space-8: 2rem;
	--space-12: clamp(2.25rem, 3vw, 3rem);
	--space-16: clamp(3rem, 5vw, 4rem);
	--space-20: clamp(4rem, 7vw, 5.5rem);
	--space-24: clamp(5rem, 9vw, 7.5rem);

	--width-narrow: 40rem;
	--width-content: 47.5rem;
	--width-wide: 72rem;
	--width-site: 75rem;

	--radius-sm: 0.375rem;
	--radius-md: 0.75rem;
	--radius-lg: 1.25rem;
	--radius-pill: 999px;

	--shadow-soft: 0 0.5rem 1.5rem rgb(30 24 48 / 0.08);
	--shadow-focus: 0 0 0 3px var(--color-background), 0 0 0 6px var(--color-focus);

	--icon-badge-sm: 2.5rem;
	--icon-badge-md: 3.5rem;
	--icon-badge-lg: 4.75rem;
	--touch-min: 2.75rem;

	--header-breakpoint: 64rem;
	--transition: 160ms ease;
}

/* -------------------------------------------------------------------------- */
/* Base                                                                       */
/* -------------------------------------------------------------------------- */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--color-background);
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--text-body);
	line-height: var(--leading-body);
}

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

img {
	display: block;
}

a {
	color: var(--color-burgundy);
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.18em;
}

a:hover {
	color: var(--color-burgundy-dark);
}

:focus-visible {
	outline: 3px solid var(--color-focus);
	outline-offset: 3px;
}

:focus:not(:focus-visible) {
	outline: none;
}

h1,
h2,
h3,
h4 {
	font-family: var(--font-display);
	font-weight: 600;
	line-height: var(--leading-heading);
	letter-spacing: -0.02em;
	text-wrap: balance;
}

h1 {
	font-size: var(--text-h1);
	margin-block: 0 var(--space-6);
}

h2 {
	font-size: var(--text-h2);
	margin-block: 0 var(--space-4);
}

h3 {
	font-size: var(--text-h3);
	margin-block: 0 var(--space-3);
}

p {
	margin-block: 0 var(--space-4);
}

p:last-child {
	margin-block-end: 0;
}

ul,
ol {
	margin-block: 0 var(--space-4);
	padding-inline-start: 1.25rem;
}

.lead {
	font-size: clamp(1.125rem, 0.4vw + 1.05rem, 1.3125rem);
	color: var(--color-text-muted);
	max-width: var(--measure);
}

.text-small,
.entry-meta {
	font-size: var(--text-small);
	color: var(--color-text-muted);
}

.entry-meta__sep {
	margin-inline: 0.35em;
}

.entry-meta__absolute {
	color: inherit;
}

/*
 * Soft outdated-content notice on single posts older than 5 years.
 * Amber callout — not the emergency site-alert (red) bar.
 * Uses --space-4 / --space-6 only (no --space-5 token in the scale).
 */
.news-outdated-notice {
	margin-block-start: var(--space-4);
	padding: var(--space-4) var(--space-6);
	border: 1px solid #e6d4a8;
	border-inline-start: 0.25rem solid #b8860b;
	border-radius: var(--radius-sm, 0.25rem);
	background: #fbf6e9;
	color: #5c4a1f;
	max-width: var(--measure);
}

.news-outdated-notice__text {
	margin: 0;
	font-size: var(--text-small);
	line-height: var(--leading-body, 1.5);
	color: inherit;
}

.visually-hidden,
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.icon {
	display: inline-block;
	flex-shrink: 0;
	vertical-align: middle;
}

/* -------------------------------------------------------------------------- */
/* Layout primitives                                                          */
/* -------------------------------------------------------------------------- */

.site-container,
.content-wide {
	width: min(100% - var(--space-8), var(--width-wide));
	margin-inline: auto;
}

.content-narrow {
	width: min(100% - var(--space-8), var(--width-narrow));
	margin-inline: auto;
}

.section {
	padding-block: var(--space-20);
}

.section--compact {
	padding-block: var(--space-16);
}

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

.section--blush {
	background: var(--color-blush-light);
}

.section--muted {
	background: var(--color-blush);
}

.stack {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-6);
}

.stack--tight {
	gap: var(--space-3);
}

.cluster {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3) var(--space-4);
}

.grid {
	display: grid;
	gap: var(--space-8);
}

.grid--cards {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}

.split {
	display: grid;
	gap: var(--space-12);
	align-items: start;
}

@media (min-width: 48rem) {
	.split {
		grid-template-columns: 1fr 1fr;
		gap: var(--space-16);
	}
}

/* -------------------------------------------------------------------------- */
/* Buttons                                                                    */
/* -------------------------------------------------------------------------- */

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	min-height: var(--touch-min);
	padding-block: 0.7rem;
	padding-inline: 1.25rem;
	border: 2px solid transparent;
	border-radius: var(--radius-sm);
	background: transparent;
	font-family: var(--font-body);
	font-size: var(--text-button);
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--transition), color var(--transition), border-color var(--transition);
}

.button .icon {
	width: 1.125rem;
	height: 1.125rem;
}

.button:hover,
.button:focus-visible {
	text-decoration: none;
}

.button--primary {
	background: var(--color-burgundy);
	border-color: var(--color-burgundy);
	color: #fff;
}

.button--primary:hover,
.button--primary:focus-visible {
	background: var(--color-burgundy-dark);
	border-color: var(--color-burgundy-dark);
	color: #fff;
}

.button--primary:active {
	background: var(--color-burgundy-dark);
	transform: translateY(1px);
}

.button--secondary {
	background: var(--color-surface);
	border-color: var(--color-burgundy);
	color: var(--color-burgundy);
}

.button--secondary:hover,
.button--secondary:focus-visible {
	background: var(--color-blush-light);
	color: var(--color-burgundy-dark);
	border-color: var(--color-burgundy-dark);
}

.button--secondary:active {
	background: var(--color-blush);
}

.button--text {
	min-height: var(--touch-min);
	padding-inline: 0.25rem;
	border-color: transparent;
	color: var(--color-burgundy);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.button--text:hover,
.button--text:focus-visible {
	color: var(--color-burgundy-dark);
}

.button--sm {
	min-height: var(--touch-min);
	padding-block: 0.45rem;
	padding-inline: 0.9rem;
	font-size: var(--text-small);
}

.button--lg {
	min-height: 3.25rem;
	padding-inline: 1.5rem;
	font-size: 1.0625rem;
}

.button--block {
	width: 100%;
}

.button--pill {
	border-radius: var(--radius-pill);
}

/* Stacked call CTA: action label + phone (avoids a long single line) */
.button--call {
	gap: var(--space-3);
	padding-block: 0.55rem;
	line-height: 1.15;
	white-space: normal;
	text-align: start;
}

.button--call .button__stack {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.15rem;
	min-width: 0;
}

.button--call.button--block {
	text-align: center;
}

.button--call.button--block .button__stack {
	align-items: center;
}

.button--call .button__label {
	font-weight: 600;
}

.button--call .button__meta {
	font-size: var(--text-small);
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.01em;
	opacity: 0.88;
}

.button--call .icon {
	flex-shrink: 0;
	align-self: center;
}

/* -------------------------------------------------------------------------- */
/* Contact Form 7 (global — all CF7 forms inherit)                            */
/* -------------------------------------------------------------------------- */

.wpcf7 {
	margin: 0;
	max-width: 40rem;
}

.wpcf7-form {
	margin: 0;
}

.wpcf7-form > p {
	margin: 0 0 var(--space-3);
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--text-small);
	font-weight: 600;
	line-height: 1.45;
}

.wpcf7-form > p:has(.wpcf7-form-control-wrap),
.wpcf7-form > p:has(.wpcf7-submit),
.wpcf7-form > p:has(input),
.wpcf7-form > p:has(textarea),
.wpcf7-form > p:has(select) {
	margin-block-end: var(--space-6);
	font-weight: 400;
}

.wpcf7-form > p:last-child {
	margin-block-end: 0;
}

.wpcf7-form-control-wrap {
	display: block;
}

.wpcf7 .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance):not([type="checkbox"]):not([type="radio"]),
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 input[type="search"],
.wpcf7 select,
.wpcf7 textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	min-height: var(--touch-min);
	margin: 0;
	padding: 0.7rem 0.9rem;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	background: var(--color-surface);
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--text-body);
	font-weight: 400;
	line-height: 1.4;
	transition:
		border-color var(--transition),
		box-shadow var(--transition),
		background-color var(--transition);
}

.wpcf7 textarea {
	min-height: 10rem;
	resize: vertical;
}

.wpcf7 .wpcf7-form-control:not(.wpcf7-submit):focus,
.wpcf7 .wpcf7-form-control:not(.wpcf7-submit):focus-visible,
.wpcf7 input[type="text"]:focus-visible,
.wpcf7 input[type="email"]:focus-visible,
.wpcf7 input[type="tel"]:focus-visible,
.wpcf7 input[type="url"]:focus-visible,
.wpcf7 input[type="number"]:focus-visible,
.wpcf7 input[type="date"]:focus-visible,
.wpcf7 select:focus-visible,
.wpcf7 textarea:focus-visible {
	outline: none;
	border-color: var(--color-burgundy);
	box-shadow: var(--shadow-focus);
}

.wpcf7 .wpcf7-form-control:not(.wpcf7-submit)::placeholder,
.wpcf7 textarea::placeholder {
	color: var(--color-text-muted);
	opacity: 1;
}

.wpcf7 input[type="submit"],
.wpcf7 input.wpcf7-submit,
.wpcf7 button.wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	width: auto;
	min-height: var(--touch-min);
	margin: 0;
	padding-block: 0.7rem;
	padding-inline: 1.25rem;
	border: 2px solid var(--color-burgundy);
	border-radius: var(--radius-sm);
	background: var(--color-burgundy);
	color: #fff;
	font-family: var(--font-body);
	font-size: var(--text-button);
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition:
		background-color var(--transition),
		border-color var(--transition),
		color var(--transition);
}

.wpcf7 input[type="submit"]:hover,
.wpcf7 input[type="submit"]:focus-visible,
.wpcf7 input.wpcf7-submit:hover,
.wpcf7 input.wpcf7-submit:focus-visible,
.wpcf7 button.wpcf7-submit:hover,
.wpcf7 button.wpcf7-submit:focus-visible {
	background: var(--color-burgundy-dark);
	border-color: var(--color-burgundy-dark);
	color: #fff;
	outline: none;
}

.wpcf7 input[type="submit"]:active,
.wpcf7 input.wpcf7-submit:active,
.wpcf7 button.wpcf7-submit:active {
	transform: translateY(1px);
}

.wpcf7 .wpcf7-not-valid {
	border-color: var(--color-burgundy) !important;
	background: var(--color-blush-light);
}

.wpcf7 .wpcf7-not-valid-tip {
	display: block;
	margin-block-start: var(--space-2);
	color: var(--color-burgundy-dark);
	font-size: var(--text-small);
	font-weight: 600;
	line-height: 1.4;
}

.wpcf7 .wpcf7-response-output {
	margin: var(--space-6) 0 0;
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--color-border);
	border-inline-start-width: 3px;
	border-radius: var(--radius-sm);
	background: var(--color-panel);
	color: var(--color-text);
	font-size: var(--text-small);
	line-height: 1.5;
}

.wpcf7 form.sent .wpcf7-response-output {
	border-color: var(--color-status-ok);
	border-inline-start-color: var(--color-status-ok);
	background: var(--color-status-ok-bg);
	color: var(--color-status-ok);
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output {
	border-color: var(--color-burgundy-dark);
	border-inline-start-color: var(--color-burgundy-dark);
	background: var(--color-blush-light);
	color: var(--color-burgundy-dark);
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
	border-color: var(--color-burgundy);
	border-inline-start-color: var(--color-burgundy);
	background: var(--color-blush-light);
	color: var(--color-burgundy-dark);
}

.wpcf7 .wpcf7-spinner {
	margin-inline-start: var(--space-3);
	background-color: var(--color-burgundy);
}

.wpcf7 .wpcf7-list-item {
	margin: 0 var(--space-4) 0 0;
}

.wpcf7 .wpcf7-list-item-label {
	font-weight: 400;
	color: var(--color-text);
}

/* -------------------------------------------------------------------------- */
/* Icon badges                                                                */
/* -------------------------------------------------------------------------- */

.icon-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	border-radius: var(--radius-pill);
	background: var(--color-blush);
	color: var(--color-burgundy);
}

.icon-badge .icon {
	width: 52%;
	height: 52%;
}

.icon-badge--sm {
	width: var(--icon-badge-sm);
	height: var(--icon-badge-sm);
}

.icon-badge--md {
	width: var(--icon-badge-md);
	height: var(--icon-badge-md);
}

.icon-badge--lg {
	width: var(--icon-badge-lg);
	height: var(--icon-badge-lg);
}

.icon-badge--reverse {
	background: var(--color-burgundy);
	color: #fff;
}

.icon-badge--outline {
	background: transparent;
	border: 1.5px solid var(--color-burgundy);
}

/* -------------------------------------------------------------------------- */
/* Cards                                                                      */
/* -------------------------------------------------------------------------- */

.card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-4);
	height: 100%;
	padding: var(--space-8);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-soft);
	transition: border-color var(--transition), box-shadow var(--transition);
}

.card:hover,
.card:focus-within {
	border-color: var(--color-burgundy);
	box-shadow: 0 0.75rem 1.75rem rgb(131 102 178 / 0.12);
}

.card__media {
	width: calc(100% + (2 * var(--space-8)));
	margin: calc(-1 * var(--space-8)) calc(-1 * var(--space-8)) 0;
	overflow: hidden;
	border-radius: var(--radius-md) var(--radius-md) 0 0;
	aspect-ratio: 1;
	background: var(--color-blush-light);
}

.card__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.card__title {
	margin: 0;
	font-family: var(--font-display);
	font-size: var(--text-h3);
}

.card__body {
	color: var(--color-text-muted);
	max-width: var(--measure);
}

.card__link {
	margin-block-start: auto;
	font-weight: 600;
	text-decoration: none;
}

.card__link::after {
	content: "";
	position: absolute;
	inset: 0;
}

.card:focus-within {
	outline: 3px solid var(--color-focus);
	outline-offset: 3px;
}

.card:focus-within .card__link:focus {
	outline: none;
}

.card:focus-within .card__link:focus-visible {
	outline: none;
}

/* -------------------------------------------------------------------------- */
/* Skip link                                                                  */
/* -------------------------------------------------------------------------- */

.skip-link {
	position: absolute;
	inset-block-start: var(--space-2);
	inset-inline-start: var(--space-2);
	z-index: 1000;
	padding: var(--space-3) var(--space-4);
	background: var(--color-burgundy);
	color: #fff;
	font-weight: 600;
	text-decoration: none;
	transform: translateY(-200%);
}

.skip-link:focus,
.skip-link:focus-visible {
	transform: none;
	color: #fff;
	outline-color: #fff;
}

/* -------------------------------------------------------------------------- */
/* Header / navigation                                                        */
/* -------------------------------------------------------------------------- */

.site-header {
	position: sticky;
	inset-block-start: 0;
	z-index: 200;
	background: var(--color-surface);
	border-block-end: 1px solid var(--color-border);
}

/*
 * Clinic Alert — can’t-miss operational banner under the sticky header.
 * Default: high-contrast urgent red. Optional .site-alert--neutral for
 * important-but-not-urgent info. Separate from News Featured and hours exceptions.
 */
/* Top edge comes from .site-header’s border-block-end — don’t double it. */
.site-alert {
	background: var(--color-site-alert-bg);
	color: var(--color-site-alert-text);
	border-block-end: 1px solid var(--color-border);
}

.site-alert--neutral {
	background: var(--color-site-alert-neutral-bg);
	color: var(--color-site-alert-neutral-text);
	border-block-end: 1px solid var(--color-border);
}

.site-alert__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3) var(--space-6);
	padding-block: var(--space-4);
}

.site-alert__message {
	display: flex;
	align-items: flex-start;
	gap: 0.55rem;
	margin: 0;
	flex: 1 1 16rem;
	font-size: var(--text-small, 0.9375rem);
	font-weight: 600;
	line-height: 1.4;
	color: inherit;
}

.site-alert__icon {
	display: inline-flex;
	flex-shrink: 0;
	margin-block-start: 0.1rem;
	color: inherit;
}

.site-alert__icon .icon {
	display: block;
}

.site-alert__link {
	flex: 0 0 auto;
	color: var(--color-site-alert-link);
	font-size: var(--text-small, 0.9375rem);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.site-alert__link:hover,
.site-alert__link:focus-visible {
	color: #fff;
}

.site-alert__link:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

.site-alert--neutral .site-alert__link {
	color: var(--color-site-alert-neutral-link);
}

.site-alert--neutral .site-alert__link:hover,
.site-alert--neutral .site-alert__link:focus-visible {
	color: var(--color-burgundy);
}

.site-alert--neutral .site-alert__link:focus-visible {
	outline-color: var(--color-burgundy-dark);
}

.site-utility {
	background: #a781c2;
	color: rgb(255 255 255 / 0.88);
	font-size: 0.75rem;
	font-weight: 400;
}

.site-utility__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3) var(--space-6);
	min-height: 2.5rem;
	padding-block: 0.35rem;
}

.site-utility a.site-utility__status {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	min-height: 1.75rem;
	padding: 0.2rem 0.8rem;
	border: 1px solid #fff;
	border-radius: var(--radius-pill);
	background: transparent;
	color: #fff;
	font-weight: 600;
	line-height: 1.3;
	white-space: nowrap;
}

.site-utility a.site-utility__status:hover,
.site-utility a.site-utility__status:focus-visible {
	background: rgb(255 255 255 / 0.12);
	color: #fff;
}

.site-utility__status .icon {
	flex-shrink: 0;
}

.site-utility a.site-utility__status--ok .icon {
	color: #8fd4a8;
}

.site-utility__status--closed .icon {
	color: var(--color-status-closed);
}

.site-utility__status--waitlist .icon {
	color: var(--color-status-waitlist);
}

.site-utility__tools {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: var(--space-3);
	margin-inline-start: auto;
}

.site-utility__sep {
	color: rgb(255 255 255 / 0.45);
	font-weight: 400;
	user-select: none;
}

.site-utility a {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	min-height: var(--touch-min);
	color: #fff;
	text-decoration: none;
}

.site-utility a:hover,
.site-utility a:focus-visible {
	color: var(--color-blush);
	text-decoration: none;
}

.site-utility :focus-visible {
	outline-color: #fff;
}

.site-utility__search {
	display: contents;
}

.site-nav__drawer-tools,
.site-nav__status {
	display: none;
}

.site-nav__search {
	display: none;
}

.site-utility .site-search {
	width: 11.5rem;
	border-color: rgb(255 255 255 / 0.28);
	background: rgb(255 255 255 / 0.1);
}

.site-utility .site-search:focus-within {
	border-color: #fff;
	box-shadow: 0 0 0 2px rgb(255 255 255 / 0.25);
}

.site-utility .site-search__input,
.site-utility .site-search__submit {
	min-height: 1.75rem;
	color: #fff;
}

.site-utility .site-search__input {
	padding-block: 0.2rem;
	padding-inline-start: 0.75rem;
	font-size: inherit;
}

.site-utility .site-search__input::placeholder {
	color: rgb(255 255 255 / 0.55);
}

.site-utility .site-search__submit {
	width: 1.75rem;
}

.site-utility .site-search__submit:hover,
.site-utility .site-search__submit:focus-visible {
	color: var(--color-blush);
}

.site-header__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	padding-block: calc(var(--space-4) + 0.5rem);
}

.site-brand {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	min-width: 0;
	min-height: var(--touch-min);
	color: var(--color-text);
	text-decoration: none;
}

.site-brand:hover,
.site-brand:focus-visible {
	color: var(--color-burgundy);
	text-decoration: none;
}

.site-brand__logo img {
	width: auto;
	height: 3rem;
}

.site-brand__title {
	font-family: var(--font-display);
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.25;
	max-width: 14rem;
}

.nav-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	min-width: var(--touch-min);
	min-height: var(--touch-min);
	padding: var(--space-2) var(--space-3);
	border: 2px solid var(--color-burgundy);
	border-radius: var(--radius-sm);
	background: var(--color-surface);
	color: var(--color-burgundy);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.nav-toggle[aria-expanded="true"] {
	background: var(--color-blush-light);
}

.site-header__tools {
	display: contents;
}

.site-nav {
	flex-basis: 100%;
}

.site-nav__drawer-bar {
	display: none;
}

.site-nav__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	min-width: var(--touch-min);
	min-height: var(--touch-min);
	padding: var(--space-2) var(--space-3);
	border: 2px solid var(--color-burgundy);
	border-radius: var(--radius-sm);
	background: var(--color-surface);
	color: var(--color-burgundy);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.site-nav__close:hover,
.site-nav__close:focus-visible {
	background: var(--color-blush-light);
}

.site-nav__list {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	margin: 0;
	padding: var(--space-4) 0 var(--space-6);
	list-style: none;
}

.site-nav__list a {
	display: flex;
	align-items: center;
	min-height: var(--touch-min);
	padding-inline: var(--space-2);
	color: var(--color-text);
	font-size: var(--text-nav);
	font-weight: 600;
	text-decoration: none;
}

.site-nav__list a:hover,
.site-nav__list a:focus-visible,
.site-nav__list .current-menu-item > a {
	color: var(--color-burgundy);
}

/* Mobile: whole parent row is one disclosure control (caret is a signifier only). */
.site-nav__disclosure {
	display: none;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
	width: 100%;
	min-height: var(--touch-min);
	padding-inline: var(--space-2);
	border: 0;
	background: transparent;
	color: var(--color-text);
	font: inherit;
	font-size: var(--text-nav);
	font-weight: 600;
	text-align: start;
	cursor: pointer;
}

.site-nav__disclosure-label {
	flex: 1 1 auto;
	min-width: 0;
}

.site-nav__disclosure::after {
	content: "";
	flex: 0 0 auto;
	width: 0.45rem;
	height: 0.45rem;
	margin-inline-end: var(--space-1);
	border-inline-end: 2px solid currentColor;
	border-block-end: 2px solid currentColor;
	transform: rotate(45deg) translateY(-0.1rem);
	transition: transform var(--transition);
}

.site-nav__disclosure[aria-expanded="true"]::after {
	transform: rotate(225deg) translateY(-0.05rem);
}

.site-nav__disclosure:hover,
.site-nav__disclosure:focus-visible,
.menu-item-has-children.current-menu-item > .site-nav__disclosure,
.menu-item-has-children.current_page_item > .site-nav__disclosure,
.menu-item-has-children.current-menu-ancestor > .site-nav__disclosure {
	color: var(--color-burgundy);
}

.site-nav .menu-item--overview > a {
	font-weight: 600;
}

.site-search {
	display: flex;
	align-items: stretch;
	width: min(100%, 16rem);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-pill);
	background: var(--color-background);
	transition: border-color var(--transition), box-shadow var(--transition);
}

.site-search:focus-within {
	border-color: var(--color-burgundy);
	box-shadow: 0 0 0 3px var(--color-blush);
}

.site-search__input {
	flex: 1 1 auto;
	min-width: 0;
	width: 100%;
	min-height: var(--touch-min);
	padding: 0.35rem 0.25rem 0.35rem 1rem;
	border: 0;
	background: transparent;
	color: var(--color-text);
	font: inherit;
	font-size: var(--text-small);
}

.site-search__input:focus {
	outline: none;
}

.site-search__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: var(--touch-min);
	min-height: var(--touch-min);
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--color-burgundy);
	cursor: pointer;
}

.site-search__submit:hover,
.site-search__submit:focus-visible {
	color: var(--color-burgundy-dark);
}

.menu-fallback {
	margin: 0;
	padding: var(--space-3) 0;
	color: var(--color-text-muted);
	font-size: var(--text-small);
}

@media (max-width: 63.99rem) {
	/* Utility: phone + portal only (status + search live in the menu drawer). */
	.site-utility__inner {
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: flex-start;
		gap: var(--space-3);
		padding-block: var(--space-3);
	}

	/* Beat `.site-utility a.site-utility__status { display: inline-flex }`. */
	.site-utility a.site-utility__status--bar {
		display: none;
	}

	.site-utility__tools {
		flex-wrap: nowrap;
		justify-content: flex-start;
		margin-inline-start: 0;
		width: 100%;
		gap: var(--space-3);
	}

	.site-utility__search,
	.site-utility__sep--search {
		display: none;
	}

	/* Keep logo + Menu on one row (title is PHP-fallback only when no logo). */
	.site-header__inner {
		gap: var(--space-3);
		padding-block: var(--space-3);
	}

	.js .site-header__inner {
		flex-wrap: nowrap;
	}

	.site-brand {
		flex: 1 1 auto;
		min-width: 0;
	}

	.site-brand__logo img {
		height: 2.5rem;
	}

	.nav-toggle {
		flex: 0 0 auto;
		margin-inline-start: auto;
	}

	.js body.is-nav-open {
		overflow: hidden;
	}

	.js .site-nav {
		display: none;
	}

	.js .site-header.is-nav-open .site-nav {
		display: flex;
		flex-direction: column;
		position: fixed;
		inset: 0;
		z-index: 300;
		flex-basis: auto;
		width: 100%;
		max-width: none;
		background: var(--color-surface);
		overflow: hidden;
	}

	.js .site-header.is-nav-open .site-nav__drawer-bar {
		display: flex;
		position: sticky;
		inset-block-start: 0;
		z-index: 1;
		flex-shrink: 0;
		align-items: center;
		justify-content: flex-end;
		padding: var(--space-3) var(--space-4);
		border-block-end: 1px solid var(--color-border);
		background: var(--color-surface);
	}

	.js .site-header.is-nav-open .site-nav__drawer-tools {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		flex-shrink: 0;
		gap: var(--space-3);
		padding: var(--space-4);
		border-block-end: 1px solid var(--color-border);
		background: var(--color-surface);
	}

	.js .site-header.is-nav-open .site-nav__status {
		display: inline-flex;
		align-self: flex-start;
		align-items: center;
		gap: 0.4rem;
		min-height: var(--touch-min);
		padding: 0.35rem 0.9rem;
		border: 2px solid var(--color-burgundy);
		border-radius: var(--radius-pill);
		background: var(--color-surface);
		color: var(--color-burgundy);
		font-weight: 600;
		line-height: 1.3;
		text-decoration: none;
		white-space: nowrap;
	}

	.js .site-header.is-nav-open .site-nav__status:hover,
	.js .site-header.is-nav-open .site-nav__status:focus-visible {
		background: var(--color-blush-light);
		color: var(--color-burgundy);
		text-decoration: none;
	}

	.js .site-header.is-nav-open .site-nav__status .icon {
		flex-shrink: 0;
	}

	.js .site-header.is-nav-open a.site-nav__status.site-utility__status--ok .icon {
		color: #2f7a4a;
	}

	.js .site-header.is-nav-open .site-nav__search {
		display: block;
		padding: 0;
		border: 0;
		background: transparent;
	}

	.js .site-header.is-nav-open .site-nav__search .site-search {
		width: 100%;
	}

	.js .site-header.is-nav-open .site-nav__list {
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding: var(--space-4) var(--space-4) var(--space-8);
	}

	.js .site-nav .site-nav__disclosure {
		display: inline-flex;
	}

	/* Parent page URL lives on the Overview child; hide the original parent link. */
	.js .site-nav .site-nav__parent-link {
		display: none;
	}

	/* Accordion: collapse nested menus until opened (JS also sets [hidden]). */
	.js .site-nav .menu-item-has-children:not(.is-accordion-open) > .sub-menu {
		display: none;
	}

	.js .site-nav .menu-item-has-children > a::after {
		display: none;
	}

	.js .site-nav .sub-menu {
		padding-inline-start: var(--space-3);
	}

	/* Pathway cards: match hero/hours panel width inside site-container. */
	.home-pathways__grid {
		gap: var(--space-4);
	}

	.pathway-card {
		padding: var(--space-5);
	}
}

@media (min-width: 64rem) {
	.nav-toggle,
	.site-nav__drawer-bar,
	.site-nav__disclosure {
		display: none;
	}

	.site-nav .site-nav__parent-link {
		display: flex;
	}

	/* Desktop: Overview rows are usually redundant (parent label is the link). */
	.site-nav .menu-item--overview:not(.menu-item--overview-keep) {
		display: none;
	}

	.site-header__inner {
		flex-wrap: nowrap;
		padding-block: calc(var(--space-4) + 0.5rem);
	}

	.site-header__tools {
		display: flex;
		flex: 1 1 auto;
		align-items: center;
		justify-content: flex-end;
		gap: var(--space-6);
	}

	.site-nav {
		flex-basis: auto;
	}

	.site-nav__list {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: flex-end;
		gap: var(--space-2) var(--space-4);
		padding: 0;
	}
}

/* -------------------------------------------------------------------------- */
/* Footer                                                                     */
/* -------------------------------------------------------------------------- */

.site-footer {
	background: var(--color-burgundy-dark);
	color: #f7ecee;
	padding-block: var(--space-16) var(--space-8);
}

.site-footer a {
	color: #fff;
}

.site-footer a:hover,
.site-footer a:focus-visible {
	color: var(--color-blush);
}

.site-footer :focus-visible {
	outline-color: #fff;
}

.site-footer__grid {
	display: grid;
	gap: var(--space-12);
}

@media (min-width: 48rem) {
	.site-footer__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.site-footer__title {
	margin: 0 0 var(--space-3);
	color: #fff;
	font-size: var(--text-h3);
}

.site-footer__nav-list,
.site-footer__contact-list {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__nav-list a {
	display: inline-flex;
	align-items: center;
	min-height: var(--touch-min);
	text-decoration: none;
}

.site-footer__nav-list a:hover {
	text-decoration: underline;
}

.site-footer__contact-list li {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.15rem;
}

.site-footer__contact-label {
	font-size: var(--text-small);
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: rgb(247 236 238 / 0.72);
}

.site-footer__contact-list a {
	text-decoration: none;
}

.site-footer__contact-list a:hover,
.site-footer__contact-list a:focus-visible {
	text-decoration: underline;
}

.site-footer__emergency p {
	margin: 0 0 var(--space-3);
	max-width: 36ch;
}

.site-footer__emergency p:last-child {
	margin-block-end: 0;
}

.site-footer__phone-nowrap {
	white-space: nowrap;
}

.site-footer__emergency-phone {
	font-size: var(--text-h3);
}

.site-footer__emergency-phone a {
	text-decoration: none;
}

.site-footer__emergency-phone a:hover,
.site-footer__emergency-phone a:focus-visible {
	text-decoration: underline;
}

.site-footer__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
	margin-block-start: var(--space-12);
	padding-block-start: var(--space-6);
	border-block-start: 1px solid rgb(255 255 255 / 0.18);
	font-size: var(--text-small);
}

.site-footer__meta p {
	margin: 0;
}

.site-footer__login a {
	text-decoration: none;
}

.site-footer__login a:hover,
.site-footer__login a:focus-visible {
	text-decoration: underline;
}

/* -------------------------------------------------------------------------- */
/* Content templates                                                          */
/* -------------------------------------------------------------------------- */

.entry-header {
	margin-block-end: var(--space-8);
}

/*
 * Page / post chrome title — dominant display H1.
 * Distinct from any Heading block H1 inside .entry-content.
 * Accent bar only on `.entry-title` (standard page/single chrome).
 */
.entry-header .entry-title {
	position: relative;
	margin-block: 0;
	padding-block-end: var(--space-4);
	font-family: var(--font-display);
	font-size: var(--text-h1);
	font-weight: 600;
	line-height: var(--leading-heading);
	letter-spacing: -0.025em;
	color: var(--color-text);
	text-wrap: balance;
}

.entry-header .entry-title::after {
	content: "";
	position: absolute;
	inset-block-end: 0;
	inset-inline-start: 0;
	width: 4.5rem;
	height: 0.25rem;
	border-radius: var(--radius-pill);
	background: var(--color-burgundy);
}

.entry-content {
	max-width: var(--measure);
}

.entry-content > * + * {
	margin-block-start: var(--space-4);
}

.entry-content > :first-child {
	margin-block-start: 0;
}

/*
 * In-content heading hierarchy (core Heading blocks + classic HTML).
 * Step down from chrome H1; H2/H3 use clinic purple for section structure.
 */
.entry-content :is(h1, h2, h3, h4).wp-block-heading,
.entry-content :is(h1, h2, h3, h4) {
	font-family: var(--font-display);
	font-weight: 600;
	letter-spacing: -0.015em;
	text-wrap: balance;
}

.entry-content h1,
.entry-content h1.wp-block-heading {
	margin-block: var(--space-8) var(--space-3);
	font-size: var(--text-content-h1);
	line-height: var(--leading-content-heading);
	color: var(--color-text);
}

.entry-content h2,
.entry-content h2.wp-block-heading {
	margin-block: var(--space-8) var(--space-3);
	font-size: var(--text-content-h2);
	line-height: var(--leading-content-heading);
	color: var(--color-burgundy-dark);
}

.entry-content h3,
.entry-content h3.wp-block-heading {
	margin-block: var(--space-6) var(--space-2);
	font-size: var(--text-content-h3);
	line-height: var(--leading-content-heading);
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--color-burgundy-dark);
}

.entry-content h4,
.entry-content h4.wp-block-heading {
	margin-block: var(--space-6) var(--space-2);
	font-family: var(--font-body);
	font-size: var(--text-body);
	font-weight: 600;
	letter-spacing: 0;
	line-height: var(--leading-body);
	color: var(--color-text);
}

.entry-content > :is(h1, h2, h3, h4):first-child {
	margin-block-start: 0;
}

/* -------------------------------------------------------------------------- */
/* Page layout + section menu (“In This Section”)                             */
/* -------------------------------------------------------------------------- */

.page-layout-container {
	width: min(100% - var(--space-8), var(--width-wide));
	margin-inline: auto;
}

/*
 * Two-column page layout:
 *   row 1 — (empty) | H1
 *   row 2 — section menu | entry-content
 * Sidebar top aligns with body content under the title (no magic offsets).
 */
.page-layout--with-sidebar {
	display: grid;
	gap: var(--space-8);
	align-items: start;
}

.page-layout__title {
	order: 1;
	min-width: 0;
}

.page-layout__main {
	order: 2;
	min-width: 0;
}

.page-layout__aside {
	order: 3;
	min-width: 0;
}

.page-layout__main > .entry-content {
	max-width: var(--measure);
}

@media (min-width: 64rem) {
	.page-layout--with-sidebar {
		grid-template-columns: minmax(14rem, 17.5rem) minmax(0, 1fr);
		grid-template-rows: auto auto;
		column-gap: var(--space-12);
		/* Title → content gap comes from `.entry-header` margin-block-end. */
		row-gap: 0;
	}

	.page-layout__title {
		grid-column: 2;
		grid-row: 1;
		order: 0;
	}

	.page-layout__aside {
		grid-column: 1;
		grid-row: 2;
		order: 0;
		position: sticky;
		top: var(--space-6);
		align-self: start;
	}

	.page-layout__main {
		grid-column: 2;
		grid-row: 2;
		order: 0;
	}
}

/*
 * Single Program — wider main column (~3/4) with narrower section menu (~1/4).
 * Default page layout keeps a fixed aside max (~17.5rem) and caps body at
 * --measure (40rem), which reads ~half-width on program pages. Lift measure
 * and use an explicit 1fr / 3fr split for CPT singles only.
 */
.single-program .page-layout__main > .entry-content {
	max-width: none;
}

@media (min-width: 64rem) {
	.single-program .page-layout--with-sidebar {
		grid-template-columns: minmax(12rem, 1fr) minmax(0, 3fr);
	}
}

/* Section Index — intro + child list (no sidebar). */
.section-index__intro {
	margin-block-end: var(--space-4);
}

.section-index__content {
	margin-block-end: var(--space-8);
}

.section-index__content > *:last-child {
	margin-block-end: 0;
}

.section-index__list {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

.section-index__link {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-rows: auto auto;
	column-gap: var(--space-4);
	row-gap: var(--space-2);
	align-items: center;
	padding: var(--space-4) var(--space-6);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	background: var(--color-surface);
	color: inherit;
	text-decoration: none;
	transition: border-color var(--transition), background-color var(--transition);
}

.section-index__link:hover,
.section-index__link:focus-visible {
	border-color: var(--color-burgundy);
	background: var(--color-blush-light);
}

.section-index__item-title {
	grid-column: 1;
	grid-row: 1;
	font-family: var(--font-body);
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--color-burgundy);
}

.section-index__item-blurb {
	grid-column: 1;
	grid-row: 2;
	color: var(--color-text-muted);
	font-size: var(--text-small);
	line-height: var(--leading-body, 1.5);
}

.section-index__item-cta {
	grid-column: 2;
	grid-row: 1 / span 2;
	display: inline-flex;
	align-items: center;
	color: var(--color-burgundy);
}

.section-menu {
	padding: var(--space-4) var(--space-4) var(--space-6);
	background: var(--color-blush-light);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
}

.section-menu__overview {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin: 0 0 var(--space-4);
	font-size: var(--text-small);
	font-weight: 600;
	color: var(--color-burgundy);
	text-decoration: none;
}

.section-menu__overview:hover,
.section-menu__overview:focus-visible {
	color: var(--color-burgundy-dark);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.section-menu__overview-arrow {
	font-size: 1.05em;
	line-height: 1;
}

.section-menu__heading {
	margin: 0 0 var(--space-3);
	font-family: var(--font-body);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--color-text-muted);
}

.section-menu__nav {
	margin: 0;
}

.section-menu__list,
.section-menu__sub {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}

.section-menu__item {
	margin: 0;
}

.section-menu__link {
	display: block;
	padding: 0.45rem 0.75rem;
	border-radius: var(--radius-md);
	font-size: var(--text-small);
	font-weight: 600;
	line-height: 1.35;
	color: var(--color-text);
	text-decoration: none;
}

.section-menu__link:hover,
.section-menu__link:focus-visible {
	background: var(--color-blush);
	color: var(--color-burgundy-dark);
}

.section-menu__item.is-current > .section-menu__link,
.section-menu__link[aria-current="page"] {
	background: rgb(131 102 178 / 0.14);
	color: var(--color-burgundy-dark);
}

.section-menu__item.is-ancestor > .section-menu__link {
	color: var(--color-burgundy-dark);
}

.section-menu__sub {
	margin: 0.15rem 0 0.35rem 0.75rem;
	padding-inline-start: 0.5rem;
	border-inline-start: 2px solid var(--color-blush);
	gap: 0.1rem;
}

.section-menu__sub .section-menu__link {
	font-size: 0.8125rem;
	font-weight: 500;
	padding-block: 0.35rem;
}

.post-list {
	display: grid;
	gap: var(--space-12);
}

.post-list article {
	padding-block-end: var(--space-8);
	border-block-end: 1px solid var(--color-border);
}

.site-nav .sub-menu {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	margin: 0;
	padding: var(--space-2) 0 var(--space-2) var(--space-4);
	list-style: none;
	border-inline-start: 2px solid var(--color-blush);
}

.site-nav .menu-item-has-children > a::after {
	content: "";
	width: 0.4rem;
	height: 0.4rem;
	margin-inline-start: var(--space-2);
	border-inline-end: 2px solid currentColor;
	border-block-end: 2px solid currentColor;
	transform: rotate(45deg) translateY(-0.15rem);
}

@media (min-width: 64rem) {
	.site-nav .menu-item-has-children {
		position: relative;
	}

	.site-nav .sub-menu {
		position: absolute;
		inset-block-start: 100%;
		inset-inline-start: 0;
		z-index: 220;
		display: none;
		min-width: 16rem;
		padding: var(--space-3);
		border: 1px solid var(--color-border);
		border-radius: var(--radius-md);
		background: var(--color-surface);
		box-shadow: var(--shadow-soft);
	}

	.site-nav .sub-menu .sub-menu {
		inset-block-start: calc(var(--space-3) * -1);
		inset-inline-start: auto;
		inset-inline-end: calc(100% - 0.25rem);
		z-index: 221;
	}

	.site-nav .menu-item-has-children:hover > .sub-menu,
	.site-nav .menu-item-has-children:focus-within > .sub-menu {
		display: flex;
	}

	.site-nav .menu-item-has-children > a::after {
		transform: rotate(45deg) translateY(-0.2rem);
	}

	.site-nav .sub-menu .menu-item-has-children > a::after {
		margin-inline-start: auto;
		transform: rotate(-45deg);
	}
}

.hero-display {
	font-size: var(--text-display);
	margin-block: 0 var(--space-6);
	line-height: 1.08;
}

.card__meta {
	margin: 0;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.card--featured {
	background: var(--color-blush-light);
	border-color: transparent;
}

/* -------------------------------------------------------------------------- */
/* Homepage Revision 1                                                        */
/* -------------------------------------------------------------------------- */

.site-main > .section {
	padding-block: var(--space-24);
}

.home-section-header {
	max-width: var(--measure);
}

.home-intro {
	--home-hero-copy-inline: var(--space-8);
	padding-block-end: var(--space-16);
	/* Soft tint band so the intro reads on the white page canvas. */
	background: var(--color-blush-light);
}

.home-hero {
	padding-block-start: var(--space-8);
	padding-block-end: 0;
}

.home-hero__panel {
	display: grid;
	gap: var(--space-6);
	padding: var(--home-hero-copy-inline);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	overflow: hidden;
}

.home-hero__copy .hero-display {
	max-width: 12em;
	margin-block-end: var(--space-4);
}

.home-hero__copy .lead {
	max-width: 28rem;
}

.home-hero__media {
	position: relative;
	margin: 0;
}

.home-hero__image {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: var(--hero-focal-point, center center);
	border-radius: var(--radius-md);
	background: var(--color-blush);
}

.home-hero__placeholder {
	margin-block-start: var(--space-3);
	color: var(--color-text-muted);
	font-size: var(--text-small);
}

.home-pathways {
	position: relative;
	z-index: 2;
	padding-block: var(--space-8) var(--space-8);
}

.home-pathways__grid {
	display: grid;
	gap: var(--space-6);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pathway-card {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--space-3);
	min-height: 100%;
	padding: var(--space-6);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-soft);
}

.pathway-card__title {
	margin: 0;
	font-family: var(--font-body);
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0;
}

.pathway-card__subheading {
	margin: 0;
	color: var(--color-burgundy);
	font-size: var(--text-small);
	font-weight: 600;
}

.pathway-card__body {
	margin: 0;
	color: var(--color-text-muted);
	flex: 1 1 auto;
}

.pathway-card__body > *:first-child {
	margin-block-start: 0;
}

.pathway-card__body > *:last-child {
	margin-block-end: 0;
}

.pathway-card__note {
	display: flex;
	align-items: flex-start;
	gap: var(--space-2);
	width: 100%;
	margin: 0;
	padding: var(--space-3) var(--space-4);
	border-radius: var(--radius-sm);
	background: var(--color-blush-light);
	color: var(--color-burgundy);
	font-size: var(--text-small);
	font-weight: 600;
}

.pathway-card__note .icon,
.pathway-card__meta .icon {
	flex-shrink: 0;
	margin-block-start: 0.1rem;
}

.pathway-card__actions {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	margin-block-start: auto;
	width: 100%;
}

.pathway-card .button {
	width: 100%;
	margin-block-start: 0;
}

.pathway-card__meta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	min-height: 1.5rem;
	margin: 0;
	color: var(--color-burgundy);
	font-size: var(--text-small);
	font-weight: 600;
	text-align: center;
}

.pathway-card__meta--empty {
	visibility: hidden;
	pointer-events: none;
}

.pathway-card__meta a {
	color: inherit;
	text-decoration: none;
}

.pathway-card__meta a:hover,
.pathway-card__meta a:focus-visible {
	text-decoration: underline;
}

.status-pill {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	width: fit-content;
	margin: 0;
	padding: 0.4rem 0.75rem;
	border-radius: var(--radius-pill);
	font-size: var(--text-small);
	font-weight: 600;
}

.status-pill--ok {
	background: var(--color-status-ok-bg);
	color: var(--color-status-ok);
}

.status-pill--closed {
	background: var(--color-status-closed-bg);
	color: var(--color-status-closed);
}

.status-pill--waitlist {
	background: var(--color-status-waitlist-bg);
	color: var(--color-status-waitlist);
}

.home-hours {
	padding-block-start: var(--space-4);
}

.home-hours__layout {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.85rem;
}

h2.home-hours__kicker {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	align-self: flex-start;
	gap: 0.4rem 0.5rem;
	margin: 0;
	padding: 0;
	color: var(--color-burgundy);
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

h2.home-hours__kicker::before {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	flex-shrink: 0;
	border-radius: var(--radius-pill);
	background: var(--color-status-ok);
}

.home-hours__kicker-sep {
	color: var(--color-blush);
	font-weight: 400;
	letter-spacing: 0;
}

.home-hours__kicker-date {
	color: var(--color-text-muted);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: none;
}

.home-hours__panel {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: 1.5rem;
}

.home-hours__body {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	width: 100%;
	padding: 1.25rem 1.5rem;
}

.home-hours__cell {
	display: grid;
	grid-template-columns: 2.75rem minmax(0, 1fr);
	column-gap: 0.85rem;
	row-gap: 0.5rem;
	align-items: center;
}

.home-hours__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: var(--radius-pill);
	background: var(--color-blush-light);
	color: var(--color-burgundy);
}

.home-hours__copy {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	min-width: 0;
}

.home-hours__label {
	margin: 0;
	color: var(--color-text-muted);
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.3;
	text-transform: uppercase;
}

.home-hours__value {
	margin: 0;
	font-family: var(--font-body);
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.25;
}

.home-hours__detail {
	margin: 0;
	color: var(--color-text-muted);
	font-size: var(--text-small);
	line-height: 1.35;
}

.home-hours__directions {
	display: inline-flex;
	align-items: center;
	justify-self: start;
	gap: 0.35rem;
	grid-column: 2;
	padding: 0.45rem 0.9rem;
	border: 1px solid var(--color-blush);
	border-radius: var(--radius-pill);
	background: var(--color-surface);
	color: var(--color-burgundy);
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
}

.home-hours__directions:hover,
.home-hours__directions:focus-visible {
	background: var(--color-blush-light);
	color: var(--color-burgundy-dark);
	text-decoration: none;
}

.home-hours__cta {
	display: inline-flex;
	align-items: center;
	align-self: flex-end;
	gap: 0.45rem;
	margin: 0;
	padding: 0;
	color: var(--color-burgundy);
	font-size: var(--text-small);
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
}

.home-hours__cta:hover,
.home-hours__cta:focus-visible {
	color: var(--color-burgundy-dark);
}

.home-hours__cta .icon {
	flex-shrink: 0;
}

/*
 * Clinic Hours shortcode — light schedule panel (not a card grid).
 * Stacked instances get clear vertical rhythm so services don’t feel squished.
 */
.clinic-hours {
	margin-block: var(--space-6);
	padding: 1.15rem 1.25rem 1.25rem;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	background: var(--color-blush-light);
}

.entry-content > .clinic-hours {
	margin-block: var(--space-4) var(--space-8);
}

/* Pair page H2 + title-hidden shortcode as one unit. */
.entry-content > h2 + .clinic-hours {
	margin-block-start: var(--space-3);
}

.entry-content > .clinic-hours + h2 {
	margin-block-start: var(--space-12);
	padding-block-start: var(--space-6);
	border-top: 1px solid var(--color-border);
}

.clinic-hours__title {
	margin: 0 0 0.85rem;
	padding-block-end: 0.65rem;
	border-bottom: 1px solid var(--color-border);
	color: var(--color-burgundy-dark);
	font-family: var(--font-display);
	font-size: var(--text-content-h3, 1.25rem);
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: var(--leading-content-heading, 1.25);
}

.clinic-hours__blurb,
.clinic-hours__note {
	margin: 0 0 0.85rem;
	color: var(--color-text-muted);
	font-size: var(--text-small);
	line-height: 1.45;
}

.clinic-hours__note {
	padding: 0.55rem 0.75rem;
	border-left: 3px solid var(--color-burgundy);
	background: var(--color-surface);
	color: var(--color-text);
}

.clinic-hours__today {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.5rem 1rem;
	margin: 0;
}

.clinic-hours__today-label {
	color: var(--color-text-muted);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.clinic-hours__today-value {
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.25;
}

.clinic-hours__week {
	list-style: none;
	margin: 0;
	padding: 0;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	overflow: hidden;
}

.clinic-hours__day {
	display: grid;
	grid-template-columns: minmax(6.5rem, 8rem) minmax(0, 1fr);
	gap: 0.5rem 1rem;
	margin: 0;
	padding: 0.65rem 0.85rem;
	border-bottom: 1px solid var(--color-border);
	align-items: baseline;
}

.clinic-hours__day:last-child {
	border-bottom: 0;
}

/* Distinct from panel blush-light so “today” doesn’t vanish into the card fill. */
.clinic-hours__day--today {
	background: var(--color-blush);
	box-shadow: inset 3px 0 0 var(--color-burgundy);
}

.clinic-hours__day-name {
	font-weight: 600;
	color: var(--color-text);
}

.clinic-hours__day-hours {
	color: var(--color-text);
}

.clinic-hours__status--not_scheduled .clinic-hours__day-hours,
.clinic-hours__status--closed .clinic-hours__day-hours,
.clinic-hours__today-value.clinic-hours__status--not_scheduled,
.clinic-hours__today-value.clinic-hours__status--closed {
	color: var(--color-text-muted);
	font-weight: 500;
}

.clinic-hours--error {
	color: var(--color-text-muted);
	font-size: var(--text-small);
}

@media (max-width: 40rem) {
	.clinic-hours {
		padding: 1rem;
	}

	.clinic-hours__day {
		grid-template-columns: 1fr;
		gap: 0.15rem;
		padding-block: 0.7rem;
	}
}

/* Upcoming holiday / special hours (empty shortcode outputs nothing). */
.clinic-hours-exceptions {
	margin-block: var(--space-8) var(--space-6);
	padding: 1.15rem 1.25rem 1.25rem;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	background: var(--color-blush-light);
}

.clinic-hours-exceptions__heading {
	margin: 0 0 0.85rem;
	padding-block-end: 0.65rem;
	border-bottom: 1px solid var(--color-border);
	color: var(--color-burgundy-dark);
	font-family: var(--font-display);
	font-size: var(--text-content-h3, 1.25rem);
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: var(--leading-content-heading, 1.25);
}

.clinic-hours-exceptions__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}

.clinic-hours-exceptions__item {
	margin: 0;
	padding: 0.85rem 1rem;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
}

.clinic-hours-exceptions__title {
	margin: 0 0 0.35rem;
	font-weight: 700;
	line-height: 1.3;
}

.clinic-hours-exceptions__meta,
.clinic-hours-exceptions__applies,
.clinic-hours-exceptions__note {
	margin: 0;
	font-size: var(--text-small);
	line-height: 1.45;
}

.clinic-hours-exceptions__meta {
	color: var(--color-text);
	font-weight: 600;
}

.clinic-hours-exceptions__sep {
	margin-inline: 0.35rem;
	color: var(--color-blush);
	font-weight: 400;
}

.clinic-hours-exceptions__applies {
	margin-block-start: 0.25rem;
	color: var(--color-text-muted);
}

.clinic-hours-exceptions__note {
	margin-block-start: 0.5rem;
	padding: 0.45rem 0.65rem;
	border-left: 3px solid var(--color-burgundy);
	background: var(--color-blush-light);
	color: var(--color-text);
}

.home-portal {
	/* White band between tinted Programs and tinted Stay Connected. */
	background: var(--color-surface);
}

.home-portal__layout {
	display: grid;
	gap: var(--space-12);
	align-items: center;
}

.home-portal__copy .lead {
	margin-block-end: var(--space-6);
}

.home-portal__panel {
	padding: var(--space-8);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
}

.home-portal__eyebrow {
	margin: 0 0 var(--space-4);
	color: var(--color-burgundy);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.home-portal__actions {
	display: grid;
	gap: var(--space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

.home-portal__action {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	min-height: var(--touch-min);
	padding: 0.7rem 0.85rem;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	background: var(--color-surface);
	color: var(--color-text);
	font-weight: 600;
	text-decoration: none;
	transition:
		border-color var(--transition),
		box-shadow var(--transition),
		color var(--transition);
}

.home-portal__action-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: var(--radius-pill);
	background: var(--color-blush-light);
	color: var(--color-burgundy);
}

.home-portal__action-label {
	flex: 1;
}

.home-portal__action > .icon {
	flex-shrink: 0;
	color: var(--color-text-muted);
	transition: color var(--transition), transform var(--transition);
}

.home-portal__action:hover,
.home-portal__action:focus-visible {
	border-color: var(--color-burgundy);
	color: var(--color-burgundy);
	box-shadow: 0 0 0 3px var(--color-blush);
}

.home-portal__action:hover > .icon,
.home-portal__action:focus-visible > .icon {
	color: var(--color-burgundy);
	transform: translateX(0.2rem);
}

.home-portal__action:focus-visible {
	outline: 3px solid var(--color-focus);
	outline-offset: 2px;
}

.home-portal__note {
	margin: var(--space-6) 0 0;
	color: var(--color-text-muted);
	font-size: var(--text-small);
}

.home-programs {
	background: var(--color-blush-light);
}

.home-programs__grid {
	width: 100%;
	grid-template-columns: 1fr;
	gap: var(--space-8);
}

/* Program archive listing — full site width (not content-narrow). */
.program-archive__container {
	width: min(100% - var(--space-8), var(--width-wide));
}

.program-archive__grid {
	width: 100%;
}

.program-children {
	margin-block-start: var(--space-12);
}

.program-children__grid {
	width: 100%;
}

.home-news {
	width: 100%;
	background: var(--color-surface);
}

.home-news__inner {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--space-12);
}

.news-kicker {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem;
	margin: 0 0 var(--space-3);
	color: var(--color-text-muted);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.news-kicker__dot {
	width: 0.45rem;
	height: 0.45rem;
	border-radius: var(--radius-pill);
	background: var(--color-status-ok);
}

.news-kicker--on-media {
	position: absolute;
	inset-block-end: var(--space-4);
	inset-inline-start: var(--space-4);
	z-index: 1;
	margin: 0;
	padding: 0.4rem 0.75rem;
	border-radius: var(--radius-pill);
	background: rgb(255 255 255 / 0.94);
	box-shadow: var(--shadow-soft);
}

.news-feature,
.news-item,
.home-news__archive {
	background: var(--color-background);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	box-shadow: none;
}

.news-feature {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: var(--space-8);
	overflow: hidden;
}

.news-feature--has-media {
	padding: 0;
}

.news-feature__media {
	position: relative;
}

.news-feature__image {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.news-feature__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-width: 0;
}

.news-feature--has-media .news-feature__body {
	padding: var(--space-8);
}

.news-feature__title {
	margin-block: 0 var(--space-4);
	font-size: clamp(1.75rem, 1.4vw + 1.3rem, 2.4rem);
}

.news-feature__excerpt,
.news-item__excerpt {
	margin: 0;
	color: var(--color-text-muted);
}

.news-feature__note {
	margin-block-start: var(--space-6);
	padding: var(--space-4) var(--space-5);
	border-inline-start: 4px solid var(--color-burgundy);
	border-radius: var(--radius-sm);
	background: var(--color-blush-light);
	color: var(--color-text);
	font-size: var(--text-small);
}

.news-feature__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	margin-block-start: auto;
	padding-block-start: var(--space-6);
	border-block-start: 1px solid var(--color-border);
}

.news-feature__meta {
	margin: 0;
	color: var(--color-text-muted);
	font-size: var(--text-small);
}

.home-news__layout,
.home-news__aside {
	display: grid;
	gap: var(--space-6);
	align-items: stretch;
}

.news-item {
	padding: var(--space-6);
}

.news-item--has-media {
	display: grid;
	grid-template-columns: 5.75rem minmax(0, 1fr);
	gap: var(--space-4);
	align-items: start;
}

.news-item__image {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: var(--radius-md);
	background: var(--color-blush);
}

.news-item__title {
	margin-block: 0 var(--space-2);
	font-size: 1.2rem;
}

.news-item__excerpt {
	font-size: var(--text-small);
}

.news-item__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
	margin: var(--space-4) 0 0;
	font-size: var(--text-small);
}

.news-item__link {
	display: inline-flex;
	align-items: center;
	gap: 0.15rem;
	color: var(--color-burgundy);
	font-weight: 600;
	text-decoration: none;
}

.news-item__link:hover,
.news-item__link:focus-visible {
	text-decoration: underline;
}

.news-item__kind {
	color: var(--color-text-muted);
}

.home-news__archive {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-6);
	padding: var(--space-6) var(--space-8);
}

.home-news__archive-copy {
	display: flex;
	align-items: flex-start;
	gap: var(--space-4);
	max-width: 40rem;
}

.home-news__archive-icon {
	display: inline-flex;
	flex-shrink: 0;
	margin-block-start: 0.15rem;
	color: var(--color-burgundy);
}

.home-news__archive-copy p {
	margin: 0;
}

.home-news__archive-copy strong {
	display: block;
	margin-block-end: 0.2rem;
}

.home-news__archive-copy span {
	color: var(--color-text-muted);
	font-size: var(--text-small);
}

.home-connect {
	background: var(--color-blush-light);
}

.home-connect__inner {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--space-8);
}

.home-connect__grid {
	display: grid;
	gap: var(--space-6);
}

.connect-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-3);
	padding: var(--space-8);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
}

.connect-card--feedback,
.connect-card--social {
	background: var(--color-surface);
}

.connect-card h3 {
	margin: 0;
}

.connect-card > p {
	margin: 0;
	color: var(--color-text-muted);
	max-width: 28rem;
}

.connect-card .button {
	margin-block-start: var(--space-3);
}

.connect-card__link-wrap {
	margin-block-start: var(--space-2);
}

.connect-card__text-link {
	color: var(--color-burgundy);
	font-weight: 600;
	text-underline-offset: 0.18em;
}

.connect-card__meta {
	margin-block-start: auto;
	padding-block-start: var(--space-4);
	font-size: var(--text-small);
}

.patient-survey-banner {
	margin-block: 0 var(--space-8);
	padding: var(--space-6);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	background: var(--color-blush-light);
}

.patient-survey-banner__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-4) var(--space-6);
}

.patient-survey-banner__copy {
	flex: 1 1 14rem;
	min-width: 0;
}

.patient-survey-banner__title {
	margin: 0;
	font-family: var(--font-body);
	font-size: 1.15rem;
	font-weight: 700;
}

.patient-survey-banner__blurb {
	margin: var(--space-2) 0 0;
	color: var(--color-text-muted);
	max-width: var(--measure);
}

.patient-survey-banner__cta {
	margin-block-start: 0;
	flex-shrink: 0;
}

.patient-survey-banner--error {
	margin-block: 0 var(--space-6);
	color: var(--color-text-muted);
	font-size: var(--text-small);
}

.connect-social {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	margin: var(--space-2) 0 0;
	padding: 0;
	list-style: none;
}

.connect-social__link {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	min-height: var(--touch-min);
	padding: 0.35rem 0.85rem 0.35rem 0.35rem;
	border-radius: var(--radius-pill);
	background: var(--color-background);
	color: var(--color-text);
	font-size: var(--text-small);
	font-weight: 600;
	text-decoration: none;
	transition: transform var(--transition), box-shadow var(--transition);
}

.connect-social__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.85rem;
	height: 1.85rem;
	border-radius: var(--radius-pill);
	color: #fff;
}

.connect-social__link--facebook .connect-social__icon {
	background: #1877f2;
}

.connect-social__link--instagram .connect-social__icon {
	background: #e1306c;
}

.connect-social__link--linkedin .connect-social__icon {
	background: #0a66c2;
}

.connect-social__link:hover,
.connect-social__link:focus-visible {
	transform: translateY(-1px);
	box-shadow: var(--shadow-soft);
	text-decoration: none;
}

.connect-social__link:focus-visible {
	outline: 3px solid var(--color-focus);
	outline-offset: 2px;
}

@media (min-width: 40rem) {
	.home-programs__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--space-12);
	}
}

@media (min-width: 48rem) {
	.home-intro {
		--home-hero-copy-inline: var(--space-12);
	}

	.home-hero__panel {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
		align-items: stretch;
		gap: 0;
		padding: 0;
		min-height: 24rem;
	}

	.home-hero__copy {
		display: flex;
		flex-direction: column;
		justify-content: center;
		padding: var(--space-12) var(--home-hero-copy-inline) var(--space-16);
	}

	.home-hero__media {
		min-height: 100%;
	}

	.home-hero__media::before {
		content: "";
		position: absolute;
		inset: 0 auto 0 0;
		z-index: 1;
		width: min(8rem, 28%);
		pointer-events: none;
		background: linear-gradient(90deg, var(--color-blush-light), transparent);
	}

	.home-hero__image {
		height: 100%;
		min-height: 24rem;
		aspect-ratio: auto;
		border-radius: 0;
	}

	.home-hero__placeholder {
		display: none;
	}

	.home-hours__body {
		grid-template-columns: 1fr 1fr;
	}

	.home-hours__cell--location {
		grid-column: 1 / -1;
	}

	.home-portal__layout {
		grid-template-columns: minmax(0, 1fr) minmax(18rem, 24rem);
		gap: var(--space-16);
	}

	.home-news__layout {
		grid-template-columns: minmax(0, 1.35fr) minmax(16rem, 0.85fr);
		align-items: stretch;
	}

	.home-news__layout--solo {
		grid-template-columns: minmax(0, 1fr);
	}

	.home-connect__grid {
		grid-template-columns: 1fr 1fr;
		align-items: stretch;
	}

	.home-news__aside {
		align-content: stretch;
		grid-auto-rows: 1fr;
	}

	.news-item,
	.news-feature {
		height: 100%;
		min-height: 0;
	}
}

@media (min-width: 64rem) {
	.home-hero__copy {
		padding: var(--space-16) var(--home-hero-copy-inline) calc(var(--space-16) + 2rem);
	}

	.home-pathways {
		margin-block-start: -3.5rem;
		padding-block-start: 0;
		padding-block-end: var(--space-12);
	}

	.home-pathways__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		align-items: stretch;
		/* Align the 3-up row with hero copy; mobile stays full container width. */
		padding-inline: var(--home-hero-copy-inline);
	}

	.home-hours__body {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(16rem, 1.45fr);
		gap: 0;
		align-items: start;
	}

	.home-hours__cell {
		padding-inline: 1.5rem;
		border-inline-end: 1px solid var(--color-border);
		align-items: center;
	}

	.home-hours__cell:first-child {
		padding-inline-start: 0;
	}

	.home-hours__cell:last-child {
		padding-inline-end: 0;
		border-inline-end: 0;
	}

	.home-hours__cell--location {
		grid-column: auto;
		grid-template-columns: 2.75rem minmax(0, 1fr) auto;
	}

	.home-hours__cell--location .home-hours__directions {
		grid-column: 3;
		grid-row: 1;
		align-self: center;
	}

	.home-programs__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

}

/* -------------------------------------------------------------------------- */
/* Staff directory                                                            */
/* -------------------------------------------------------------------------- */

.staff-listing {
	align-items: stretch;
	gap: var(--space-16);
}

.staff-listing__intro {
	width: 100%;
	max-width: none;
}

.staff-listing__hero {
	display: grid;
	gap: var(--space-8);
	width: 100%;
	align-items: start;
}

.staff-listing__copy {
	display: flex;
	flex-direction: column;
	gap: var(--space-6);
	min-width: 0;
}

.staff-listing__copy .entry-header {
	margin: 0;
}

.staff-listing__copy .entry-header h1 {
	margin: 0;
	font-family: var(--font-display);
}

.staff-listing__narrative {
	max-width: 38rem;
}

.staff-listing__narrative > :first-child {
	margin-top: 0;
}

.staff-listing__narrative > :last-child {
	margin-bottom: 0;
}

.staff-listing__stats {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-3);
	margin: 0;
	padding: 0;
	list-style: none;
	width: 100%;
	max-width: 38rem;
}

.staff-listing__hero--no-media .staff-listing__copy,
.staff-listing__hero--no-media .staff-listing__narrative,
.staff-listing__hero--no-media .staff-listing__stats {
	width: 100%;
	max-width: none;
}

.staff-listing__stat {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	padding: var(--space-4) var(--space-3);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-soft);
	text-align: center;
}

.staff-listing__stat-value {
	font-family: var(--font-display);
	font-size: clamp(1.75rem, 2vw + 1.25rem, 2.25rem);
	font-weight: 700;
	line-height: 1.1;
	color: var(--color-text);
}

.staff-listing__stat--patients .staff-listing__stat-value {
	color: var(--color-status-ok);
}

.staff-listing__stat--since .staff-listing__stat-value {
	color: var(--color-burgundy);
}

.staff-listing__stat-label {
	font-size: var(--text-small);
	font-weight: 600;
	color: var(--color-text-muted);
}

.staff-listing__media {
	margin: 0;
	width: 100%;
	min-width: 0;
}

.staff-listing__image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-soft);
	background: var(--color-blush-light);
}

.staff-directory {
	display: flex;
	flex-direction: column;
	gap: var(--space-8);
	width: 100%;
	align-self: stretch;
}

.staff-directory__header {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--space-4) var(--space-6);
	width: 100%;
}

.staff-directory__heading {
	flex: 1 1 16rem;
	min-width: 0;
}

.staff-directory__heading h1,
.staff-directory__heading h2 {
	margin: 0;
	font-family: var(--font-display);
	font-size: var(--text-h2);
}

.staff-directory__lead {
	margin: var(--space-2) 0 0;
	max-width: var(--measure);
	color: var(--color-text-muted);
	font-size: var(--text-small);
}

.staff-directory__layout {
	display: grid;
	gap: var(--space-8);
	width: 100%;
	align-items: start;
}

.staff-directory__nav {
	display: flex;
	flex-direction: column;
	gap: var(--space-6);
}

.staff-directory__filter-title {
	margin: 0 0 var(--space-2);
	padding-inline: 0.9rem;
	font-size: var(--text-small);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--color-text-muted);
}

.staff-directory__nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.staff-directory__nav a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
	min-height: var(--touch-min);
	padding: 0.4rem 0.9rem;
	border-radius: var(--radius-md);
	color: var(--color-text);
	font-weight: 600;
	text-decoration: none;
}

.staff-directory__all {
	background: var(--color-blush-light);
}

.staff-directory__nav a:hover,
.staff-directory__nav a:focus-visible,
.staff-directory__nav a[aria-current="page"] {
	background: var(--color-blush);
	color: var(--color-burgundy-dark);
}

.staff-directory__nav a:focus-visible {
	outline: 3px solid var(--color-focus);
	outline-offset: 2px;
}

.staff-directory__results {
	width: 100%;
	min-width: 0;
}

/*
 * Staff search is a horizontal pill. Do not set flex-basis here for both
 * contexts: inside .stack (column), flex-basis becomes height and
 * border-radius: pill turns the form into a large circle (single profile
 * “Other providers” band).
 */
.site-search.staff-directory__search {
	position: relative;
	flex: none;
	width: min(100%, 18rem);
	height: auto;
	align-self: flex-start;
	overflow: visible;
}

.staff-directory__header .site-search.staff-directory__search {
	flex: 0 1 18rem;
}

.staff-directory__combobox {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	align-items: stretch;
}

.staff-directory__listbox {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(100% + 0.35rem);
	z-index: 40;
	max-height: 15rem;
	overflow-x: hidden;
	overflow-y: auto;
	margin: 0;
	padding: 0.35rem 0;
	list-style: none;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
}

.staff-directory__option {
	margin: 0;
	padding: 0.5rem 0.9rem;
	cursor: pointer;
	font-size: var(--text-small);
	line-height: 1.35;
	color: var(--color-text);
}

.staff-directory__option:hover,
.staff-directory__option.is-active {
	background: var(--color-blush);
	color: var(--color-burgundy-dark);
}

.staff-directory__option:focus {
	outline: none;
}

.staff-directory__option:focus-visible {
	outline: 2px solid var(--color-focus);
	outline-offset: -2px;
}

.staff-directory__list {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	width: 100%;
}

.staff-person {
	position: relative;
	display: grid;
	gap: var(--space-4);
	width: 100%;
	padding: var(--space-6);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	transition: border-color var(--transition), box-shadow var(--transition);
}

.staff-person--condensed {
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: var(--space-4);
	/* Explicit padding: --space-5 is undefined in the token set. */
	padding: var(--space-4) var(--space-6);
}

.staff-person--condensed:hover,
.staff-person--condensed:focus-within {
	border-color: var(--color-burgundy);
	box-shadow: 0 0.75rem 1.75rem rgb(131 102 178 / 0.12);
}

.staff-person__card-link {
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
}

.staff-person__card-link:focus {
	outline: none;
}

.staff-person__card-link:focus-visible {
	outline: 3px solid var(--color-focus);
	outline-offset: 2px;
}

.staff-person__chevron {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--color-text-muted);
	pointer-events: none;
}

.staff-person--condensed:hover .staff-person__chevron,
.staff-person--condensed:focus-within .staff-person__chevron {
	color: var(--color-burgundy);
}

.staff-person__photo img,
.staff-person__placeholder {
	width: 4.5rem;
	height: 4.5rem;
	border-radius: var(--radius-pill);
}

.staff-person__photo img {
	display: block;
	object-fit: cover;
}

.staff-person__placeholder {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--color-blush);
	color: var(--color-burgundy);
	font-weight: 700;
	letter-spacing: 0.02em;
}

.staff-person__body {
	position: relative;
	min-width: 0;
}

.staff-person__name {
	margin: 0;
	font-size: var(--text-h3);
}

.staff-person__name a {
	color: inherit;
	text-decoration: none;
}

.staff-person__name a:hover,
.staff-person__name a:focus-visible {
	color: var(--color-burgundy);
}

.staff-person__roles,
.staff-person__meta {
	margin: var(--space-1) 0 0;
}

.staff-person__roles {
	font-weight: 600;
}

.staff-person__status {
	margin-block-start: var(--space-2);
	pointer-events: none;
}

.staff-person__status .icon {
	flex-shrink: 0;
}

.staff-person__meta {
	color: var(--color-text-muted);
	font-size: var(--text-small);
}

.staff-person__details {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	margin: var(--space-3) 0 0;
	padding: 0;
	list-style: none;
	color: var(--color-text-muted);
	font-size: var(--text-small);
}

.staff-person__details li {
	display: grid;
	grid-template-columns: 4.5rem minmax(0, 1fr);
	align-items: baseline;
	column-gap: var(--space-2);
}

.staff-person__detail-k {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	min-height: 1.15rem;
	padding: 0.1rem 0.4rem;
	border-radius: var(--radius-sm);
	background: var(--color-blush);
	color: var(--color-text-muted);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.staff-person__detail-v {
	min-width: 0;
	color: var(--color-text);
}

.staff-person__detail-v a {
	color: inherit;
	text-decoration: none;
}

.staff-person__detail-v a:hover,
.staff-person__detail-v a:focus-visible {
	color: var(--color-burgundy);
	text-decoration: underline;
	text-underline-offset: 0.12em;
}

.staff-single__container {
	width: min(100% - var(--space-8), var(--width-site));
}

.staff-single__back {
	margin: 0;
}

.staff-profile {
	width: 100%;
}

.staff-profile__inner {
	display: grid;
	grid-template-columns: minmax(12rem, 18rem) minmax(0, 1fr);
	gap: clamp(1.25rem, 3vw, 2rem);
	width: 100%;
	padding: clamp(1.25rem, 2vw, 1.75rem);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-soft);
}

.staff-profile__media {
	border-radius: var(--radius-lg);
	overflow: hidden;
	background: var(--color-blush);
	aspect-ratio: 4 / 5;
	max-height: 22rem;
	align-self: start;
}

.staff-profile__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.staff-profile__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 10rem;
	font-size: clamp(2rem, 4vw, 2.75rem);
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--color-burgundy);
}

.staff-profile__body {
	display: flex;
	flex-direction: column;
	gap: var(--space-6);
	min-width: 0;
}

.staff-profile__header {
	margin: 0;
}

.staff-profile__body .staff-person__details {
	margin-top: 0;
}

.staff-profile__section {
	margin: 0;
}

.staff-profile__section > :first-child {
	margin-top: 0;
}

.staff-profile__hours {
	margin: 0;
	line-height: 1.45;
}

.staff-profile__body .entry-content > :first-child {
	margin-top: 0;
}

.staff-related {
	width: 100%;
	margin-top: var(--space-12);
	padding-top: var(--space-12);
	border-top: 1px solid var(--color-border);
}

.staff-related__header {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--space-2) var(--space-4);
	width: 100%;
}

.staff-related__heading {
	margin: 0;
	font-size: var(--text-small);
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-text-muted);
}

.staff-related__count {
	margin: 0;
	font-size: var(--text-small);
	color: var(--color-text-muted);
}

@media (max-width: 61.24rem) {
	.staff-profile__inner {
		grid-template-columns: 1fr;
	}

	.staff-profile__media {
		max-width: 14rem;
		max-height: none;
	}
}

@media (min-width: 48rem) {
	.staff-listing__hero {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
		gap: var(--space-12);
		align-items: start;
	}

	.staff-listing__hero--no-media {
		grid-template-columns: minmax(0, 1fr);
	}

	.staff-listing__stats {
		gap: var(--space-4);
	}

	.staff-directory__layout {
		grid-template-columns: 16rem minmax(0, 1fr);
		gap: var(--space-12);
	}
}

@media (max-width: 30rem) {
	.staff-listing__stats {
		grid-template-columns: 1fr;
	}
}

/* -------------------------------------------------------------------------- */
/* Breadcrumbs (Taddle Creek–style trail)                                     */
/* -------------------------------------------------------------------------- */

.wmcfht-breadcrumbs-bar {
	padding-block: var(--space-6) 0;
}

.wmcfht-breadcrumbs {
	display: flex;
	margin: 0;
	font-size: var(--text-small);
	line-height: 1.4;
	color: var(--color-text-muted);
}

.wmcfht-breadcrumbs__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.5rem;
	align-items: center;
}

.wmcfht-breadcrumbs__item {
	margin: 0;
	padding: 0;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.wmcfht-breadcrumbs__item + .wmcfht-breadcrumbs__item::before {
	content: "›";
	color: var(--color-text-muted);
	opacity: 0.7;
}

.wmcfht-breadcrumbs__current {
	font-weight: 600;
	color: var(--color-text);
}

.wmcfht-breadcrumbs a {
	color: var(--color-text-muted);
	text-decoration: none;
}

.wmcfht-breadcrumbs a:hover,
.wmcfht-breadcrumbs a:focus-visible {
	color: var(--color-burgundy);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* Tighten main top padding when the trail is present above it. */
body:has(.wmcfht-breadcrumbs) .site-main.section {
	padding-top: var(--space-8);
}

/* -------------------------------------------------------------------------- */
/* News listing (Posts page + category archives)                              */
/* -------------------------------------------------------------------------- */

.news-listing__featured {
	display: grid;
	gap: var(--space-6);
	/* --space-10 is not in the token scale; invalid var() dropped this margin to 0. */
	margin-block-end: var(--space-12);
}

.news-listing__heading {
	margin: var(--space-4) 0 var(--space-6);
	font-family: var(--font-body);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--color-text-muted);
}

.news-listing__items {
	display: grid;
	gap: var(--space-6);
}

.page-layout__aside .news-related,
.page-layout__aside .page-sidebar-content {
	margin-block-start: var(--space-4);
}

.page-layout__aside .page-sidebar-content:first-child {
	margin-block-start: 0;
}

.page-layout__aside .page-sidebar-content > *:first-child {
	margin-block-start: 0;
}

.page-layout__aside .page-sidebar-content > *:last-child {
	margin-block-end: 0;
}

.news-related__nav {
	margin: 0;
}

.news-related__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
}

.news-related__item {
	margin: 0;
}

.news-related__link {
	display: block;
	font-size: var(--text-small);
	font-weight: 600;
	line-height: 1.35;
	color: var(--color-text);
	text-decoration: none;
}

.news-related__link:hover,
.news-related__link:focus-visible {
	color: var(--color-burgundy-dark);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.news-related__date {
	display: block;
	margin-block-start: 0.15rem;
	font-size: 0.75rem;
	line-height: 1.3;
	color: var(--color-text-muted);
}

.news-feature__title a,
.news-item__title a {
	color: inherit;
	text-decoration: none;
}

.news-feature__title a:hover,
.news-feature__title a:focus-visible,
.news-item__title a:hover,
.news-item__title a:focus-visible {
	color: var(--color-burgundy-dark);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.news-listing .pagination,
.news-listing .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	margin-block-start: var(--space-12);
}

.news-listing .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	min-height: 2.5rem;
	padding: 0.35rem 0.75rem;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	color: var(--color-text);
	font-size: var(--text-small);
	font-weight: 600;
	text-decoration: none;
}

.news-listing .page-numbers:hover,
.news-listing .page-numbers:focus-visible {
	background: var(--color-blush-light);
	color: var(--color-burgundy-dark);
}

.news-listing .page-numbers.current {
	background: rgb(131 102 178 / 0.14);
	border-color: transparent;
	color: var(--color-burgundy-dark);
}

/* Accessing Care                                                             */
/* -------------------------------------------------------------------------- */

/* Full width of the Patients content column (not the narrow measure). */
.accessing-care-page .page-layout__main > .entry-content {
	max-width: none;
}

.accessing-care__intro {
	max-width: none;
}

.accessing-care__eyebrow {
	margin: 0 0 var(--space-2);
	color: var(--color-burgundy);
	font-family: var(--font-body);
	font-size: var(--text-small);
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.3;
	text-transform: uppercase;
}

.accessing-care__lede {
	margin: var(--space-3) 0 0;
	max-width: 40rem;
	color: var(--color-text-muted);
	font-size: var(--text-body);
}

.accessing-care__lede > *:first-child {
	margin-block-start: 0;
}

.accessing-care__lede > *:last-child {
	margin-block-end: 0;
}

.accessing-care-card__body > *:first-child,
.accessing-care__immediate-lede > *:first-child,
.accessing-care-option__body > *:first-child,
.accessing-care-examples__lede > *:first-child,
.accessing-care-callout__body > *:first-child {
	margin-block-start: 0;
}

.accessing-care-card__body > *:last-child,
.accessing-care__immediate-lede > *:last-child,
.accessing-care-option__body > *:last-child,
.accessing-care-examples__lede > *:last-child,
.accessing-care-callout__body > *:last-child {
	margin-block-end: 0;
}

.accessing-care-option__meta {
	margin: 0;
	font-size: var(--text-small);
	text-align: center;
}

.accessing-care-option__meta a {
	color: var(--color-burgundy);
	font-weight: 600;
}

/* Extra space between intro blurb and first card/section. */
.accessing-care-page .page-layout__title.accessing-care__intro,
.accessing-care-page .entry-header.accessing-care__intro {
	margin-block-end: var(--space-12);
}

.accessing-care-card {
	display: grid;
	gap: var(--space-6);
	align-items: center;
	width: 100%;
	padding: var(--space-6);
	margin-block-end: var(--space-8);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	background: var(--color-surface);
	box-shadow: var(--shadow-soft);
}

.accessing-care-card__main {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	min-width: 0;
}

/*
 * Icon + title: true vertical center (shared horizontal midline).
 * Must beat `.entry-content h2/h3 { margin-block: … }` — those asymmetric
 * margins made titles sit low / look bottom-aligned next to the badge.
 */
.accessing-care-card__heading,
.accessing-care__immediate-heading,
.accessing-care-today__heading,
.accessing-care-callout__heading {
	display: flex;
	gap: var(--space-3);
	align-items: center;
}

.accessing-care-card__heading .icon-badge,
.accessing-care__immediate-heading .icon-badge,
.accessing-care-today__heading .icon-badge,
.accessing-care-callout__heading .icon-badge {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	align-self: center;
	/* Kill inline/SVG baseline gap inside the fixed badge box. */
	line-height: 0;
}

.accessing-care-card__heading .icon-badge .icon,
.accessing-care__immediate-heading .icon-badge .icon,
.accessing-care-today__heading .icon-badge .icon,
.accessing-care-callout__heading .icon-badge .icon {
	display: block;
	vertical-align: top;
}

.entry-content .accessing-care-card__title,
.entry-content .accessing-care__immediate-title,
.entry-content .accessing-care-callout__title,
.accessing-care-card__title,
.accessing-care__immediate-title,
.accessing-care-callout__title {
	margin: 0;
	margin-block: 0;
	padding: 0;
	font-family: var(--font-display);
	font-weight: 700;
	line-height: 1.1;
	align-self: center;
}

.entry-content .accessing-care-today__label,
.accessing-care-today__label {
	margin: 0;
	margin-block: 0;
	padding: 0;
	line-height: 1.1;
	align-self: center;
}

.accessing-care-card__title {
	font-size: var(--text-h3);
}

.accessing-care-card__body {
	margin: 0;
	color: var(--color-text-muted);
}

.accessing-care-card__actions {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	min-width: 12rem;
}

.accessing-care-card__actions .button {
	justify-content: center;
}

.accessing-care-card__actions .button:not(.button--call) {
	white-space: nowrap;
}

.accessing-care__immediate {
	width: 100%;
	padding: var(--space-8);
	margin-block-end: var(--space-8);
	border-radius: var(--radius-lg);
	background: var(--color-blush-light);
}

.accessing-care__immediate-header {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	margin-block-end: var(--space-8);
}

.accessing-care__immediate-title {
	font-size: var(--text-h2);
}

.accessing-care__immediate-lede {
	margin: 0;
	color: var(--color-text-muted);
}

.accessing-care-today {
	margin-block-end: var(--space-8);
	/* No outer panel — title sits above the two option boxes (like Ways). */
	padding: 0;
	border: 0;
	background: transparent;
}

.accessing-care-today__header {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	align-items: baseline;
	justify-content: space-between;
	margin-block-end: var(--space-6);
}

.entry-content .accessing-care-today__title,
.accessing-care-today__title {
	margin: 0;
	margin-block: 0;
	color: var(--color-burgundy);
	font-family: var(--font-display);
	font-size: var(--text-h3);
	font-weight: 700;
	line-height: 1.1;
}

.accessing-care-today__date {
	margin: 0;
	margin-inline-start: auto;
	color: var(--color-text-muted);
	font-size: var(--text-small);
	font-weight: 600;
	text-align: end;
}

.accessing-care-today__note {
	margin: 0 0 var(--space-4);
	color: var(--color-text-muted);
	font-size: var(--text-small);
}

.accessing-care-today__grid {
	display: grid;
	gap: var(--space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.accessing-care-today__card {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	height: 100%;
	padding: var(--space-4);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	background: var(--color-neutral-subtle);
}

.accessing-care-today__card-top {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	gap: var(--space-2);
	min-width: 0;
}

.accessing-care-today__label {
	font-weight: 700;
}

.accessing-care-today__status,
.accessing-care-today__hours,
.accessing-care-today__detail {
	/* Align under label text, not under the icon. */
	padding-inline-start: calc(var(--icon-badge-sm) + var(--space-3));
}

.accessing-care-today__status {
	display: inline-flex;
	gap: 0.4rem;
	align-items: center;
	margin: 0;
	font-size: var(--text-small);
	font-weight: 600;
}

.accessing-care-today__dot {
	width: 0.5rem;
	height: 0.5rem;
	border-radius: var(--radius-pill);
	background: var(--color-status-ok);
	flex-shrink: 0;
}

.accessing-care-today__card--closed .accessing-care-today__status,
.accessing-care-today__card--unavailable .accessing-care-today__status {
	color: var(--color-text-muted);
	font-weight: 500;
}

.accessing-care-today__hours {
	margin: 0;
	font-size: var(--text-small);
	font-weight: 600;
}

.accessing-care-today__detail {
	margin: 0;
	color: var(--color-text-muted);
	font-size: var(--text-small);
}

.accessing-care-today__schedule {
	/* Pin accordion to a shared baseline across equal-height cards
	   (status/hours above may differ per service). */
	margin: 0;
	margin-top: auto;
	border-top: 1px solid var(--color-border);
	padding-top: var(--space-3);
	flex-shrink: 0;
}

.accessing-care-today__schedule-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-2);
	cursor: pointer;
	list-style: none;
	color: var(--color-burgundy);
	font-size: var(--text-small);
	font-weight: 600;
	line-height: 1.3;
}

.accessing-care-today__schedule-toggle::-webkit-details-marker {
	display: none;
}

.accessing-care-today__schedule-hide {
	display: none;
}

.accessing-care-today__schedule[open] .accessing-care-today__schedule-show {
	display: none;
}

.accessing-care-today__schedule[open] .accessing-care-today__schedule-hide {
	display: inline;
}

.accessing-care-today__schedule-chevron {
	flex-shrink: 0;
	width: 0.55rem;
	height: 0.55rem;
	border-inline-end: 2px solid currentColor;
	border-block-end: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform var(--transition);
}

.accessing-care-today__schedule[open] .accessing-care-today__schedule-chevron {
	transform: rotate(225deg);
}

.clinic-hours--embedded {
	padding: 0;
	margin: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.clinic-hours--embedded .clinic-hours__week {
	font-size: var(--text-small);
}

.clinic-hours--embedded .clinic-hours__day {
	padding: 0.5rem 0.7rem;
}

/* Beat .clinic-hours--embedded { margin/padding: 0 } — gap under summary. */
.accessing-care-today__schedule-panel.clinic-hours--embedded {
	margin: var(--space-4) 0 0;
	padding: 0;
}

.entry-content .accessing-care-ways__title,
.accessing-care-ways__title {
	margin: 0 0 var(--space-6);
	margin-block: 0 var(--space-6);
	color: var(--color-burgundy);
	font-family: var(--font-display);
	font-size: var(--text-h3);
	font-weight: 700;
	line-height: 1.1;
}

.accessing-care-ways__grid {
	display: grid;
	gap: var(--space-4);
	margin: 0 0 var(--space-8);
	padding: 0;
	list-style: none;
}

.accessing-care-option {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	padding: var(--space-6);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	background: var(--color-surface);
	box-shadow: var(--shadow-soft);
}

.accessing-care-option__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: var(--radius-pill);
	background: var(--color-burgundy);
	color: #fff;
	font-size: var(--text-small);
	font-weight: 700;
}

.accessing-care-option__title {
	margin: 0;
	font-family: var(--font-display);
	font-size: var(--text-content-h2);
	font-weight: 700;
	line-height: var(--leading-heading);
}

.accessing-care-option__body {
	margin: 0;
	flex: 1;
	color: var(--color-text-muted);
}

.accessing-care-option__actions {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	margin-block-start: auto;
}

.accessing-care-option__callahead {
	margin: 0;
	color: var(--color-text-muted);
	font-size: var(--text-small);
	line-height: 1.45;
}

.accessing-care-option__callahead > *:first-child {
	margin-block-start: 0;
}

.accessing-care-option__callahead > *:last-child {
	margin-block-end: 0;
}

.accessing-care-option__callahead a {
	color: var(--color-burgundy);
	font-weight: 600;
}

.accessing-care-examples__title {
	margin: 0 0 var(--space-2);
	font-family: var(--font-display);
	font-size: var(--text-content-h2);
	font-weight: 700;
}

.accessing-care-examples__lede {
	margin: 0 0 var(--space-6);
	max-width: 40rem;
	color: var(--color-text-muted);
	font-size: var(--text-small);
}

.accessing-care-examples__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.accessing-care-examples__item {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	align-items: center;
	text-align: center;
}

.accessing-care-examples__label {
	font-size: var(--text-small);
	font-weight: 600;
	line-height: 1.35;
}

.accessing-care-footer {
	display: grid;
	gap: var(--space-4);
	margin-block-end: var(--space-8);
}

.accessing-care-callout {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	padding: var(--space-6);
	border-radius: var(--radius-md);
}

.accessing-care-callout--emergency {
	background: #f8ecec;
	border: 1px solid #e8c9c9;
}

.accessing-care-callout--emergency .icon-badge--outline {
	color: #9a4a4a;
	border-color: #c98a8a;
}

.accessing-care-callout--help {
	background: var(--color-blush-light);
	border: 1px solid var(--color-border);
}

.accessing-care-callout--tip {
	margin-block-start: var(--space-6);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	box-shadow: var(--shadow-soft);
}

.accessing-care-callout--tip .accessing-care-callout__title {
	font-size: var(--text-content-h2);
}

.accessing-care-callout__title {
	font-size: var(--text-content-h2);
}

.accessing-care-callout__body {
	margin: 0;
	padding-inline-start: calc(var(--icon-badge-sm) + var(--space-3));
	color: var(--color-text-muted);
}

.accessing-care-callout__body a {
	color: inherit;
	font-weight: 700;
}

@media (min-width: 40rem) {
	.accessing-care-today__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.accessing-care-examples__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.accessing-care-footer {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 56rem) {
	.accessing-care-card {
		grid-template-columns: 1fr auto;
	}

	.accessing-care-ways__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.accessing-care-examples__grid {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
}

/* Walk-In Clinic (unified, stacked audiences)                                */
/* -------------------------------------------------------------------------- */

.walk-in-clinic-page .page-layout__main > .entry-content {
	max-width: none;
}

.walk-in-clinic-page .page-layout__title.walk-in-clinic__intro,
.walk-in-clinic-page .entry-header.walk-in-clinic__intro {
	margin-block-end: var(--space-12);
}

.walk-in-clinic__lede {
	margin-block-start: var(--space-3);
	color: var(--color-text-muted);
	font-size: var(--text-body);
	line-height: 1.55;
}

.walk-in-clinic__lede > *:first-child {
	margin-block-start: 0;
}

.walk-in-clinic__lede > *:last-child {
	margin-block-end: 0;
}

.walk-in-clinic-audience {
	margin: 0 0 var(--space-8);
	padding: var(--space-6);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	background: var(--color-surface);
	box-shadow: var(--shadow-soft);
	scroll-margin-block-start: var(--space-8);
}

.walk-in-clinic-audience__eyebrow {
	margin: 0 0 var(--space-2);
	color: var(--color-text-muted);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.entry-content .walk-in-clinic-audience__title,
.walk-in-clinic-audience__title {
	margin: 0 0 var(--space-3);
	margin-block: 0 var(--space-3);
	color: var(--color-burgundy);
	font-family: var(--font-display);
	font-size: var(--text-content-h2);
	font-weight: 700;
	line-height: var(--leading-heading);
}

.walk-in-clinic-audience__body {
	margin: 0 0 var(--space-4);
	color: var(--color-text-muted);
}

.walk-in-clinic-audience__body > *:first-child {
	margin-block-start: 0;
}

.walk-in-clinic-audience__body > *:last-child {
	margin-block-end: 0;
}

.walk-in-clinic-audience__callahead {
	margin: 0 0 var(--space-4);
	color: var(--color-text-muted);
	font-size: var(--text-small);
	line-height: 1.45;
}

.walk-in-clinic-audience__callahead > *:first-child {
	margin-block-start: 0;
}

.walk-in-clinic-audience__callahead > *:last-child {
	margin-block-end: 0;
}

.walk-in-clinic-audience__callahead a {
	color: var(--color-burgundy);
	font-weight: 600;
}

.walk-in-clinic-audience__hours {
	margin: 0 0 var(--space-4);
}

.walk-in-clinic-audience__hours .clinic-hours,
.walk-in-clinic-audience__hours .hours-widget {
	margin: 0;
}

.walk-in-clinic-audience__link {
	margin: 0;
	font-size: var(--text-small);
}

.walk-in-clinic-audience__link a {
	color: var(--color-burgundy);
	font-weight: 600;
}

.walk-in-clinic-contact {
	margin: 0 0 var(--space-8);
	padding: var(--space-6);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	background: var(--color-neutral-subtle);
}

.entry-content .walk-in-clinic-contact__title,
.walk-in-clinic-contact__title {
	margin: 0 0 var(--space-4);
	margin-block: 0 var(--space-4);
	color: var(--color-burgundy);
	font-family: var(--font-display);
	font-size: var(--text-content-h3, 1.25rem);
	font-weight: 700;
}

.walk-in-clinic-contact__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.walk-in-clinic-contact__label {
	display: block;
	margin-block-end: 0.15rem;
	color: var(--color-text-muted);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.walk-in-clinic-contact__list a {
	color: var(--color-burgundy);
	font-weight: 600;
}

/* Contact Us                                                                 */
/* -------------------------------------------------------------------------- */

/*
 * Uses shared `.page-layout--with-sidebar` (aside ~1/3 | main ~2/3):
 * hours in the left rail, title + contact body in the main content column.
 * Lift global `.entry-content { max-width: var(--measure) }` in the main column.
 */
.contact-us-page .page-layout__main > .entry-content.contact-us__content,
.contact-us-page .contact-us__content {
	max-width: none;
	width: 100%;
}

.contact-us-page .page-layout__title.contact-us__intro {
	max-width: none;
}

.contact-us__lede {
	margin-block-start: var(--space-3);
	color: var(--color-text-muted);
	font-size: var(--text-body);
	line-height: 1.55;
	max-width: 42rem;
}

.contact-us__lede > *:first-child {
	margin-block-start: 0;
}

.contact-us__lede > *:last-child {
	margin-block-end: 0;
}

.contact-us-hours {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	min-width: 0;
}

.contact-us-main {
	display: flex;
	flex-direction: column;
	gap: var(--space-6);
	margin: 0;
	min-width: 0;
}

.contact-us-page .contact-us-location,
.contact-us-location {
	display: flex;
	flex-direction: column;
	margin: 0;
	/* Token scale has no --space-5; invalid var() drops the whole padding decl to 0. */
	padding: var(--space-6) var(--space-8);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	background: var(--color-surface);
	box-shadow: var(--shadow-soft);
	box-sizing: border-box;
}

.entry-content .contact-us-location__title,
.entry-content .contact-us-hours__title,
.entry-content .contact-us-links__title,
.entry-content .contact-us-portal__title,
.entry-content .contact-us-form__title,
.contact-us-location__title,
.contact-us-hours__title,
.contact-us-links__title,
.contact-us-portal__title,
.contact-us-form__title {
	margin: 0 0 var(--space-4);
	color: var(--color-burgundy);
	font-family: var(--font-display);
	font-size: var(--text-content-h2);
	font-weight: 700;
	line-height: 1.2;
	min-height: 1.2em;
}

/* Interior of location card: address panel | phone directory panel */
.contact-us-location__body {
	display: grid;
	gap: var(--space-4);
	flex: 1 1 auto;
}

@media (min-width: 40rem) {
	.contact-us-location__body {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
		gap: var(--space-4) var(--space-6);
		align-items: stretch;
	}
}

.contact-us-location__panel {
	margin: 0;
	/* Must use defined tokens (--space-4/6/8). --space-5 is undefined → padding becomes 0. */
	padding: var(--space-6);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	/* Mockup light-grey inset panels → global --color-panel. */
	background: var(--color-panel);
	box-sizing: border-box;
	min-width: 0;
}

.contact-us-location__place {
	display: flex;
	flex-direction: column;
}

.contact-us-location__lines {
	display: flex;
	flex-direction: column;
}

.contact-us-location__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0 0 var(--space-2);
	color: var(--color-burgundy);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.3;
	text-transform: uppercase;
}

.contact-us-location__eyebrow-icon {
	display: inline-flex;
	color: var(--color-burgundy);
}

.contact-us-location__eyebrow-icon .icon {
	display: block;
}

.contact-us-location__address {
	margin: 0;
	color: var(--color-text);
	font-size: var(--text-body);
	font-weight: 600;
	line-height: 1.45;
}

.contact-us-location__notes {
	margin-block-start: var(--space-3);
	color: var(--color-text-muted);
	font-size: var(--text-small);
	line-height: 1.5;
}

.contact-us-location__notes > *:first-child {
	margin-block-start: 0;
}

.contact-us-location__notes > *:last-child {
	margin-block-end: 0;
}

.contact-us-location__directions {
	margin: var(--space-6) 0 0;
}

.contact-us-directory {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.contact-us-directory__row {
	display: grid;
	grid-template-columns: 2rem minmax(0, 1fr);
	gap: var(--space-3);
	align-items: start;
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	background: var(--color-surface);
	box-sizing: border-box;
}

.contact-us-directory__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	margin-block-start: 0.1rem;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	background: var(--color-blush-light);
	color: var(--color-burgundy);
}

.contact-us-directory__icon .icon {
	display: block;
}

.contact-us-directory__meta {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	min-width: 0;
}

.contact-us-directory__label {
	color: var(--color-text-muted);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1.4;
	text-transform: uppercase;
}

.contact-us-directory__value {
	color: var(--color-text);
	font-size: var(--text-body);
	font-weight: 600;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

a.contact-us-directory__value,
.contact-us-directory__value a {
	color: var(--color-burgundy);
	text-decoration: none;
}

a.contact-us-directory__value:hover,
a.contact-us-directory__value:focus-visible,
.contact-us-directory__value a:hover,
.contact-us-directory__value a:focus-visible {
	color: var(--color-burgundy-dark);
	text-decoration: none;
}

.contact-us-directory__value--phone {
	font-size: 1.15rem;
	letter-spacing: -0.01em;
}

.contact-us-directory__value--stack {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	font-weight: 600;
}

.contact-us-directory__hint {
	color: var(--color-text-muted);
	font-size: var(--text-small);
	font-weight: 400;
}

.contact-us-directory__hint a {
	color: var(--color-burgundy);
	font-weight: 600;
}

.contact-us-location__physicians {
	margin: var(--space-6) 0 0;
	padding-block-start: var(--space-4);
	border-block-start: 1px solid var(--color-border);
	font-size: var(--text-small);
}

.contact-us-location__physicians a,
.contact-us-hours__link a,
.contact-us-links__list a {
	color: var(--color-burgundy);
	font-weight: 600;
}

.entry-content .contact-us-links__title,
.contact-us-links__title {
	margin-block-start: var(--space-4);
	margin-block-end: var(--space-2);
	font-size: var(--text-content-h3, 1.15rem);
}

.contact-us-links__list,
.contact-us-hours__widgets {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.contact-us-links__list {
	flex-direction: row;
	flex-wrap: wrap;
	gap: var(--space-2) var(--space-4);
}

.contact-us-page .contact-us-portal,
.contact-us-portal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4) var(--space-6);
	width: 100%;
	margin: 0;
	padding: var(--space-6) var(--space-8);
	border: 1px solid var(--color-blush);
	border-radius: var(--radius-md);
	/* Mockup lavender band → brand blush-light (theme “Lavender light”). */
	background: var(--color-blush-light);
	box-sizing: border-box;
}

.contact-us-portal__body {
	display: flex;
	align-items: flex-start;
	gap: var(--space-4);
	min-width: 0;
	flex: 1 1 18rem;
}

.contact-us-portal__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 3rem;
	height: 3rem;
	border-radius: var(--radius-md);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	color: var(--color-burgundy);
}

.contact-us-portal__icon .icon {
	display: block;
}

.contact-us-portal__copy {
	min-width: 0;
}

.contact-us-portal__title {
	margin-block-end: var(--space-1);
}

.contact-us-portal__text {
	margin: 0;
	color: var(--color-text-muted);
	font-size: var(--text-small);
	line-height: 1.45;
	max-width: 36rem;
}

.contact-us-portal__action {
	margin: 0;
	flex: 0 0 auto;
}

.contact-us-page .contact-us-form,
.contact-us-form {
	margin: 0;
	width: 100%;
	padding: var(--space-6) var(--space-8);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	background: var(--color-surface);
	box-sizing: border-box;
}

.contact-us-form__safety {
	margin: 0 0 var(--space-6);
	padding: var(--space-3) var(--space-4);
	border-inline-start: 3px solid var(--color-burgundy);
	background: var(--color-blush-light);
	color: var(--color-text);
	font-size: var(--text-small);
	line-height: 1.5;
}

.contact-us-form__safety > *:first-child {
	margin-block-start: 0;
}

.contact-us-form__safety > *:last-child {
	margin-block-end: 0;
}

.contact-us-hours__widgets {
	gap: var(--space-3);
}

.contact-us-hours__widget {
	margin: 0;
	padding: 0;
	list-style: none;
}

.contact-us-hours__widget .hours-widget {
	margin: 0;
}

.contact-us-hours__widget .hours-widget__body {
	padding: var(--space-3);
}

.contact-us-hours__note {
	margin-block-start: var(--space-3);
	color: var(--color-text-muted);
	font-size: var(--text-small);
}

.contact-us-hours__note > *:first-child {
	margin-block-start: 0;
}

.contact-us-hours__note > *:last-child {
	margin-block-end: 0;
}

.contact-us-hours__link {
	margin: var(--space-3) 0 0;
	font-size: var(--text-small);
}

.contact-us-form__missing {
	margin: 0;
	color: var(--color-text-muted);
	font-size: var(--text-small);
}

@media (max-width: 30rem) {
	.contact-us-page .contact-us-location,
	.contact-us-location,
	.contact-us-page .contact-us-portal,
	.contact-us-portal,
	.contact-us-page .contact-us-form,
	.contact-us-form {
		padding: var(--space-6);
	}
}

/* -------------------------------------------------------------------------- */
/* Hours widget (reusable collapsed / expandable)                             */
/* -------------------------------------------------------------------------- */

.hours-widget {
	container-type: inline-size;
	container-name: hours-widget;
	margin: 0 0 var(--space-6);
	padding: 0;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	background: var(--color-blush-light);
	color: var(--color-text);
}

.hours-widget__body {
	padding: var(--space-4);
}

.entry-content > .hours-widget {
	margin-block: var(--space-6);
}

.entry-content > .hours-widget + .hours-widget {
	margin-block-start: var(--space-4);
}

.hours-widget--error {
	padding: var(--space-4);
	color: var(--color-text-muted);
	font-size: var(--text-small);
}

.hours-widget__details {
	margin: 0;
}

.hours-widget__summary {
	cursor: default;
	list-style: none;
}

.hours-widget__summary::-webkit-details-marker {
	display: none;
}

.hours-widget__summary:focus-visible {
	outline: 3px solid var(--color-focus);
	outline-offset: 2px;
	border-radius: var(--radius-sm);
}

.hours-widget__collapsed,
.hours-widget__static-header {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.hours-widget__heading {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--space-2) var(--space-3);
}

.hours-widget__title {
	margin: 0;
	color: var(--color-burgundy-dark);
	font-family: var(--font-display);
	font-size: var(--text-content-h3, 1.15rem);
	font-weight: 700;
	line-height: 1.25;
}

.hours-widget__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.hours-widget__badge {
	display: inline-block;
	padding: 0.15rem 0.5rem;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	background: var(--color-surface);
	color: var(--color-burgundy);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1.4;
	text-transform: uppercase;
}

.hours-widget__today {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.25rem 0.75rem;
	margin: 0;
}

.hours-widget__today-label {
	color: var(--color-text-muted);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.hours-widget__today-value {
	color: var(--color-text);
	font-size: 1.2rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.3;
}

.hours-widget__today-value.hours-widget__status--closed,
.hours-widget__today-value.hours-widget__status--not_scheduled {
	color: var(--color-text-muted);
	font-weight: 600;
}

.hours-widget__note {
	margin: 0;
	padding: 0.5rem 0.75rem;
	border-left: 3px solid var(--color-burgundy);
	background: var(--color-surface);
	color: var(--color-text);
	font-size: var(--text-small);
	line-height: 1.45;
}

.hours-widget__toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--color-burgundy);
	cursor: pointer;
	font-size: var(--text-small);
	font-weight: 600;
	line-height: 1.35;
}

.hours-widget__toggle-label {
	display: inline-flex;
	align-items: center;
	line-height: 1.35;
}

.hours-widget__toggle-hide {
	display: none;
}

.hours-widget__details[open] .hours-widget__toggle-show {
	display: none;
}

.hours-widget__details[open] .hours-widget__toggle-hide {
	display: inline;
}

.hours-widget__summary:hover .hours-widget__toggle {
	color: var(--color-burgundy-dark);
}

.hours-widget__chevron {
	box-sizing: border-box;
	flex-shrink: 0;
	width: 0.5rem;
	height: 0.5rem;
	border-inline-end: 2px solid currentColor;
	border-block-end: 2px solid currentColor;
	transform: translateY(-0.08rem) rotate(45deg);
	transition: transform var(--transition);
}

.hours-widget__details[open] .hours-widget__chevron {
	transform: translateY(0.1rem) rotate(225deg);
}

.hours-widget--static .hours-widget__expanded {
	margin-block-start: var(--space-3);
}

.hours-widget__expanded {
	margin-block-start: var(--space-4);
	padding-block-start: var(--space-3);
	border-block-start: 1px solid var(--color-border);
}

.hours-widget__week {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hours-widget__week--vertical {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	overflow: hidden;
}

.hours-widget__day--row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: var(--space-3);
	padding: 0.55rem 0.75rem;
	border-bottom: 1px solid var(--color-border);
	font-size: var(--text-small);
}

.hours-widget__day--row:last-child {
	border-bottom: 0;
}

.hours-widget__week--horizontal {
	display: grid;
	/* Day count comes from the week list (e.g. hide_unavailable leaving ~2 days). */
	grid-template-columns: repeat(var(--hours-widget-day-count, 7), minmax(0, 1fr));
	gap: 0.35rem;
}

.hours-widget__day--cell {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	min-width: 0;
	padding: 0.55rem 0.4rem;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	background: var(--color-surface);
	text-align: center;
}

.hours-widget__day-name {
	color: var(--color-text);
	font-weight: 600;
	line-height: 1.3;
}

.hours-widget__day--cell .hours-widget__day-name {
	font-size: 0.75rem;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.hours-widget__day-hours {
	color: var(--color-text);
	font-size: var(--text-small);
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.hours-widget__day--cell .hours-widget__day-hours {
	font-size: 0.75rem;
}

/* Horizontal cells: open + close on separate lines (no en dash). */
.hours-widget__day-hours--stacked {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.15rem;
}

.hours-widget__interval {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.1rem;
}

.hours-widget__time {
	display: block;
	line-height: 1.25;
	white-space: nowrap;
}

.hours-widget__time-sep {
	display: block;
	color: var(--color-text-muted);
	font-size: 0.7em;
	font-weight: 400;
	line-height: 1;
	opacity: 0.85;
}

/*
 * Sparse horizontal weeks (1–3 visible days, e.g. Community Walk-in with
 * hide_unavailable): keep open–close on one line when the widget has room.
 * Full 7-day / narrow layouts keep the stacked open / – / close default.
 */
@container hours-widget (min-width: 20rem) {
	.hours-widget__week--horizontal:has(> :nth-child(-n+3):last-child) .hours-widget__interval {
		flex-direction: row;
		align-items: baseline;
		flex-wrap: nowrap;
		gap: 0.15rem 0.3rem;
	}

	.hours-widget__week--horizontal:has(> :nth-child(-n+3):last-child) .hours-widget__time-sep {
		display: inline;
		font-size: inherit;
		line-height: inherit;
	}
}

.hours-widget__day--today {
	background: var(--color-blush);
	box-shadow: inset 0 0 0 1px var(--color-burgundy);
}

.hours-widget__day--row.hours-widget__day--today {
	box-shadow: inset 3px 0 0 var(--color-burgundy);
}

.hours-widget__day--muted .hours-widget__day-hours,
.hours-widget__day--muted .hours-widget__day-name {
	color: var(--color-text-muted);
}

.hours-widget__day--muted {
	background: var(--color-neutral-subtle);
}

.hours-widget__blurb {
	margin: var(--space-3) 0 0;
	color: var(--color-text-muted);
	font-size: var(--text-small);
	line-height: 1.5;
}

/* Density: explicit compact */
.hours-widget__body--density-compact {
	padding: var(--space-3);
}

.hours-widget__body--density-compact .hours-widget__title {
	font-size: 1rem;
}

.hours-widget__body--density-compact .hours-widget__today-value {
	font-size: 1.05rem;
}

.hours-widget__body--density-compact .hours-widget__day--row {
	padding: 0.4rem 0.55rem;
}

.hours-widget__body--density-compact .hours-widget__day--cell {
	padding: 0.4rem 0.25rem;
}

.hours-widget__body--density-compact .hours-widget__day--cell .hours-widget__day-hours {
	font-size: 0.6875rem;
}

/* Density: explicit comfortable */
.hours-widget__body--density-comfortable {
	padding: var(--space-5, 1.25rem);
}

.hours-widget__body--density-comfortable .hours-widget__today-value {
	font-size: 1.35rem;
}

.hours-widget__body--density-comfortable .hours-widget__day--row {
	padding: 0.7rem 0.9rem;
	font-size: var(--text-body);
}

/* Density auto: compact when the widget column is narrow */
@container hours-widget (max-width: 22rem) {
	.hours-widget__body--density-auto {
		padding: var(--space-3);
	}

	.hours-widget__body--density-auto .hours-widget__title {
		font-size: 1rem;
	}

	.hours-widget__body--density-auto .hours-widget__today-value {
		font-size: 1.05rem;
	}

	.hours-widget__body--density-auto .hours-widget__day--row {
		padding: 0.4rem 0.55rem;
	}

	.hours-widget__body--density-auto .hours-widget__week--horizontal {
		gap: 0.25rem;
	}

	.hours-widget__body--density-auto .hours-widget__day--cell {
		padding: 0.35rem 0.2rem;
	}

	.hours-widget__body--density-auto .hours-widget__day--cell .hours-widget__day-hours {
		font-size: 0.625rem;
	}
}

/*
 * Horizontal week: stack to rows when too narrow to read as cells.
 * Sparse weeks (≤3 days) keep a cell grid — each day already has enough
 * width once --hours-widget-day-count shrinks the column count.
 */
@container hours-widget (max-width: 28rem) {
	.hours-widget__week--horizontal:has(> :nth-child(n+4)) {
		grid-template-columns: 1fr;
		gap: 0;
		background: var(--color-surface);
		border: 1px solid var(--color-border);
		border-radius: var(--radius-sm);
		overflow: hidden;
	}

	.hours-widget__week--horizontal:has(> :nth-child(n+4)) .hours-widget__day--cell {
		flex-direction: row;
		justify-content: space-between;
		align-items: baseline;
		gap: var(--space-3);
		padding: 0.45rem 0.7rem;
		border: 0;
		border-radius: 0;
		border-bottom: 1px solid var(--color-border);
		text-align: start;
		background: transparent;
	}

	.hours-widget__week--horizontal:has(> :nth-child(n+4)) .hours-widget__day--cell:last-child {
		border-bottom: 0;
	}

	.hours-widget__week--horizontal:has(> :nth-child(n+4)) .hours-widget__day--cell .hours-widget__day-name {
		font-size: var(--text-small);
		text-transform: none;
		letter-spacing: 0;
	}

	.hours-widget__week--horizontal:has(> :nth-child(n+4)) .hours-widget__day--cell .hours-widget__day-hours {
		font-size: var(--text-small);
	}

	.hours-widget__week--horizontal:has(> :nth-child(n+4)) .hours-widget__day--cell .hours-widget__day-hours--stacked,
	.hours-widget__week--horizontal:has(> :nth-child(n+4)) .hours-widget__day--cell .hours-widget__interval {
		align-items: flex-end;
	}

	.hours-widget__week--horizontal:has(> :nth-child(n+4)) .hours-widget__day--cell.hours-widget__day--today {
		box-shadow: inset 3px 0 0 var(--color-burgundy);
	}
}

/* Reduced motion                                                             */
/* -------------------------------------------------------------------------- */

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

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.button--primary:active {
		transform: none;
	}
}
