/**
 * Listen In Therapy PLLC — brand layer for Divi 5.
 *
 * Structure:
 *   1. Fonts
 *   2. Design tokens
 *   3. Base typography
 *   4. Divi resets
 *   5. Utility classes used by generated layouts
 *   6. Components (cards, steps, accordions, forms, notices)
 *   7. Header / footer
 *   8. Accessibility & motion
 */

/* =========================================================================
 * 1. Fonts (self-hosted, no Google requests)
 * ====================================================================== */
@font-face {
	font-family: "Inter";
	src: url("../fonts/inter-latin-variable.woff2") format("woff2-variations"),
		url("../fonts/inter-latin-variable.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Fraunces";
	src: url("../fonts/fraunces-latin-variable.woff2") format("woff2-variations"),
		url("../fonts/fraunces-latin-variable.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

/* =========================================================================
 * 2. Design tokens
 * ====================================================================== */
:root {
	/*
	 * Brand palette — sampled directly from the supplied logo artwork.
	 *
	 * The blueprint specified Deep Teal #2A6F73 as the primary colour, but the
	 * final logo contains no teal at all: it is olive-sage, navy, dusty blue,
	 * peach and cream. Teal buttons beside an olive-sage mark read as a mistake,
	 * so the logo wins and teal is retired. The old tokens are aliased at the
	 * bottom of this block so nothing breaks.
	 */
	--lit-sage: #8c8f79;        /* emblem ring */
	--lit-sage-deep: #747a63;   /* "Therapy" wordmark */
	--lit-sage-dark: #5f6651;   /* darkened for AA contrast on buttons/links */
	--lit-sage-light: #e0e0d8;  /* hills */
	--lit-sage-soft: #eff0e9;   /* tint for icon chips */
	--lit-navy: #1f3a5f;        /* "Listen In" wordmark */
	--lit-navy-deep: #16294a;
	--lit-blue-dusty: #bbc7c5;  /* water */
	--lit-peach: #f0e3d4;       /* sun */
	--lit-cream: #fcf9f5;       /* artwork background */
	--lit-gray-light: #ecebe4;
	--lit-charcoal: #243238;
	--lit-white: #ffffff;

	/* Semantic */
	--lit-bg: var(--lit-cream);
	--lit-surface: var(--lit-white);
	--lit-text: var(--lit-charcoal);
	--lit-text-muted: #5b6259;
	--lit-heading: var(--lit-navy);
	--lit-accent: var(--lit-sage-dark);
	--lit-border: rgba(140, 143, 121, 0.32);

	/*
	 * Back-compat aliases. Existing rules and any Divi module styling that
	 * still references the teal tokens now resolve to the sage equivalents.
	 */
	--lit-teal: var(--lit-sage-dark);
	--lit-teal-dark: var(--lit-navy);
	--lit-teal-soft: var(--lit-sage-soft);
	--lit-white-warm: var(--lit-cream);

	/* Type */
	--lit-font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--lit-font-heading: "Fraunces", Georgia, "Times New Roman", serif;

	/* Fluid type scale */
	--lit-fs-xs: 0.8125rem;
	--lit-fs-sm: 0.9375rem;
	--lit-fs-base: clamp(1rem, 0.96rem + 0.2vw, 1.0625rem);
	--lit-fs-lg: clamp(1.125rem, 1.05rem + 0.35vw, 1.3125rem);
	--lit-fs-h4: clamp(1.15rem, 1.05rem + 0.5vw, 1.4rem);
	--lit-fs-h3: clamp(1.4rem, 1.2rem + 0.9vw, 1.9rem);
	--lit-fs-h2: clamp(1.85rem, 1.5rem + 1.6vw, 2.75rem);
	--lit-fs-h1: clamp(2.3rem, 1.7rem + 2.7vw, 3.75rem);

	/* Space */
	--lit-space-xs: 0.5rem;
	--lit-space-sm: 1rem;
	--lit-space-md: 1.75rem;
	--lit-space-lg: 3rem;
	--lit-space-xl: clamp(3.5rem, 7vw, 6rem);

	/* Shape */
	--lit-radius: 16px;
	--lit-radius-sm: 10px;
	--lit-radius-pill: 999px;

	/* Elevation */
	--lit-shadow-sm: 0 2px 10px rgba(36, 50, 56, 0.06);
	--lit-shadow-md: 0 8px 28px rgba(36, 50, 56, 0.09);
	--lit-shadow-lg: 0 18px 46px rgba(31, 58, 95, 0.14);

	--lit-transition: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

/* =========================================================================
 * 3. Base typography
 * ====================================================================== */
body,
body.et-db #et-boc .et-l {
	font-family: var(--lit-font-body);
	font-size: var(--lit-fs-base);
	line-height: 1.7;
	color: var(--lit-text);
	background-color: var(--lit-bg);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

#page-container h1,
#page-container h2,
#page-container h3,
#page-container h4,
#page-container h5,
.et-db #et-boc .et-l h1,
.et-db #et-boc .et-l h2,
.et-db #et-boc .et-l h3,
.et-db #et-boc .et-l h4,
.et-db #et-boc .et-l h5 {
	font-family: var(--lit-font-heading);
	color: var(--lit-heading);
	font-weight: 600;
	line-height: 1.18;
	letter-spacing: -0.02em;
	padding-bottom: 0;
}

#page-container h1, .et-db #et-boc .et-l h1 { font-size: var(--lit-fs-h1); }
#page-container h2, .et-db #et-boc .et-l h2 { font-size: var(--lit-fs-h2); }
#page-container h3, .et-db #et-boc .et-l h3 { font-size: var(--lit-fs-h3); }
#page-container h4, .et-db #et-boc .et-l h4 { font-size: var(--lit-fs-h4); }

#page-container h6,
.et-db #et-boc .et-l h6 {
	font-family: var(--lit-font-body);
	font-size: var(--lit-fs-xs);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--lit-accent);
}

#page-container p,
.et-db #et-boc .et-l p {
	line-height: 1.7;
}

/* Comfortable reading measure for long-form clinical copy */
.lit-prose p,
.lit-prose li {
	max-width: 68ch;
}

a {
	color: var(--lit-teal);
	text-underline-offset: 0.18em;
	transition: color var(--lit-transition);
}

a:hover {
	color: var(--lit-navy);
}

/* =========================================================================
 * 4. Divi resets
 * ====================================================================== */
.et_pb_section {
	padding: var(--lit-space-xl) 0;
}

.et_pb_row {
	padding: 0;
	width: 90%;
	max-width: 1180px;
}

.et_pb_button,
.et_pb_button_module_wrapper .et_pb_button {
	font-family: var(--lit-font-body) !important;
	font-weight: 600 !important;
	font-size: var(--lit-fs-sm) !important;
	letter-spacing: 0.04em !important;
	border-radius: var(--lit-radius-pill) !important;
	padding: 0.95em 2.1em !important;
	border: 2px solid transparent !important;
	transition: background-color var(--lit-transition), color var(--lit-transition),
		border-color var(--lit-transition), transform var(--lit-transition),
		box-shadow var(--lit-transition) !important;
}

/* Divi appends an arrow glyph on hover — remove for a calmer feel */
.et_pb_button:after,
.et_pb_button:before {
	display: none !important;
}

.et_pb_button:hover {
	transform: translateY(-2px);
	box-shadow: var(--lit-shadow-md);
	padding: 0.95em 2.1em !important;
}

/* =========================================================================
 * 5. Utility classes (applied by the layout generator)
 * ====================================================================== */

/* --- Backgrounds --- */
.lit-bg-warm      { background-color: var(--lit-white-warm); }
.lit-bg-white     { background-color: var(--lit-white); }
.lit-bg-gray      { background-color: var(--lit-gray-light); }
.lit-bg-sage      { background-color: var(--lit-sage-light); }
.lit-bg-teal      { background-color: var(--lit-teal); }
.lit-bg-navy      { background-color: var(--lit-navy); }
.lit-bg-gradient  { background: linear-gradient(160deg, #fcf9f5 0%, #e0e0d8 100%); }

/* Mirrors the emblem: cream sky, pale hills, dusty-blue water at the foot. */
.lit-bg-hero      { background: linear-gradient(160deg, #fdfbf8 0%, #f4f3ec 48%, #e4e7e1 78%, #d6dedc 100%); }
.lit-bg-deep      { background: linear-gradient(135deg, #2f4a52 0%, #1f3a5f 100%); }

/* Light text on dark sections */
.lit-invert,
.lit-invert p,
.lit-invert li,
.lit-invert h1,
.lit-invert h2,
.lit-invert h3,
.lit-invert h4,
.lit-invert h5,
.lit-invert h6,
#page-container .lit-invert h1,
#page-container .lit-invert h2,
#page-container .lit-invert h3,
#page-container .lit-invert h4 {
	color: var(--lit-white);
}

.lit-invert h6,
#page-container .lit-invert h6 {
	color: var(--lit-sage);
}

.lit-invert a { color: var(--lit-white); text-decoration: underline; }
.lit-invert a:hover { color: var(--lit-sage-light); }

/* --- Spacing --- */
.lit-section-sm   { padding-top: var(--lit-space-lg) !important; padding-bottom: var(--lit-space-lg) !important; }
.lit-section-flush-top    { padding-top: 0 !important; }
.lit-section-flush-bottom { padding-bottom: 0 !important; }

/* --- Text --- */
.lit-eyebrow,
.lit-eyebrow p,
#page-container .lit-eyebrow h1,
#page-container .lit-eyebrow h2,
#page-container .lit-eyebrow h3,
#page-container .lit-eyebrow h4,
#page-container .lit-eyebrow h5,
#page-container .lit-eyebrow h6 {
	font-family: var(--lit-font-body) !important;
	font-size: var(--lit-fs-xs) !important;
	font-weight: 600 !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase;
	color: var(--lit-teal) !important;
	line-height: 1.4 !important;
	margin-bottom: 0.35rem;
}

.lit-invert .lit-eyebrow,
.lit-invert .lit-eyebrow p {
	color: var(--lit-sage) !important;
}

.lit-lead,
.lit-lead p {
	font-size: var(--lit-fs-lg) !important;
	line-height: 1.6 !important;
	color: var(--lit-text-muted);
}

.lit-invert .lit-lead,
.lit-invert .lit-lead p {
	color: rgba(255, 255, 255, 0.9);
}

.lit-center,
.lit-center p,
.lit-center h1,
.lit-center h2,
.lit-center h3 {
	text-align: center;
}

.lit-center .lit-prose p { margin-left: auto; margin-right: auto; }

.lit-small,
.lit-small p,
.lit-small li {
	font-size: var(--lit-fs-sm) !important;
}

.lit-fineprint,
.lit-fineprint p,
.lit-fineprint li {
	font-size: var(--lit-fs-xs) !important;
	line-height: 1.65 !important;
	color: var(--lit-text-muted);
}

/* =========================================================================
 * 6. Components
 * ====================================================================== */

/* --- Card (applied to Blurb / Text / Group modules) --- */
.lit-card {
	background: var(--lit-surface);
	border: 1px solid var(--lit-border);
	border-radius: var(--lit-radius);
	padding: clamp(1.5rem, 3vw, 2.15rem) !important;
	box-shadow: var(--lit-shadow-sm);
	transition: transform var(--lit-transition), box-shadow var(--lit-transition),
		border-color var(--lit-transition);
	height: 100%;
}

.lit-card:hover,
.lit-card:focus-within {
	transform: translateY(-4px);
	box-shadow: var(--lit-shadow-md);
	border-color: var(--lit-sage);
}

.lit-card h1,
.lit-card h2,
.lit-card h3,
.lit-card h4,
.lit-card .et_pb_module_header {
	margin-top: 0;
	font-size: var(--lit-fs-h4) !important;
}

.lit-card p:last-child { margin-bottom: 0; }

/* Equalize card heights across a Divi row */
.lit-cards .et_pb_column {
	display: flex;
	flex-direction: column;
}

.lit-cards .et_pb_column > .et_pb_module {
	flex: 1;
	margin-bottom: 30px;
}

/* --- Blurb icon treatment --- */
.lit-card .et_pb_main_blurb_image,
.lit-blurb .et_pb_main_blurb_image {
	margin-bottom: 1rem;
}

.lit-card .et_pb_main_blurb_image .et-pb-icon,
.lit-blurb .et_pb_main_blurb_image .et-pb-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 62px;
	height: 62px;
	border-radius: 18px;
	background: var(--lit-teal-soft);
	color: var(--lit-teal);
	font-size: 28px !important;
	line-height: 62px;
	transition: background var(--lit-transition), color var(--lit-transition);
}

.lit-card:hover .et_pb_main_blurb_image .et-pb-icon {
	background: var(--lit-teal);
	color: var(--lit-white);
}

/* --- Bordered / outline panel --- */
.lit-panel {
	border: 1px solid var(--lit-sage);
	border-radius: var(--lit-radius);
	padding: clamp(1.5rem, 3.5vw, 2.5rem) !important;
	background: transparent;
}

.lit-panel-solid {
	background: var(--lit-surface);
	border: 0;
	border-radius: var(--lit-radius);
	padding: clamp(1.75rem, 4vw, 3rem) !important;
	box-shadow: var(--lit-shadow-md);
}

/* --- Numbered process steps --- */
.lit-step {
	position: relative;
	padding-left: 4.25rem;
	margin-bottom: var(--lit-space-md);
	counter-increment: lit-step;
}

.lit-steps { counter-reset: lit-step; }

.lit-step::before {
	content: counter(lit-step);
	position: absolute;
	left: 0;
	top: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.9rem;
	height: 2.9rem;
	border-radius: 50%;
	background: var(--lit-sage-light);
	color: var(--lit-navy);
	font-family: var(--lit-font-heading);
	font-weight: 700;
	font-size: 1.1rem;
}

.lit-invert .lit-step::before {
	background: rgba(255, 255, 255, 0.16);
	color: var(--lit-white);
}

.lit-step h3,
.lit-step h4 { margin-top: 0.2rem; }
.lit-step p:last-child { margin-bottom: 0; }

/* --- Checklist --- */
.lit-checklist ul,
ul.lit-checklist {
	list-style: none !important;
	padding-left: 0 !important;
	margin: 0;
}

.lit-checklist li {
	position: relative;
	padding-left: 2.15rem;
	margin-bottom: 0.85rem;
	line-height: 1.65;
}

.lit-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.35em;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: 50%;
	background: var(--lit-teal-soft);
	box-shadow: inset 0 0 0 2px var(--lit-teal);
}

.lit-checklist li::after {
	content: "";
	position: absolute;
	left: 0.4rem;
	top: 0.65em;
	width: 0.45rem;
	height: 0.24rem;
	border-left: 2px solid var(--lit-teal);
	border-bottom: 2px solid var(--lit-teal);
	transform: rotate(-45deg);
}

.lit-invert .lit-checklist li::before {
	background: rgba(255, 255, 255, 0.14);
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.7);
}

.lit-invert .lit-checklist li::after {
	border-color: var(--lit-white);
}

/* Neutral bullet list (symptoms etc.) — dot instead of check */
.lit-bullets ul,
ul.lit-bullets {
	list-style: none !important;
	padding-left: 0 !important;
}

.lit-bullets li {
	position: relative;
	padding-left: 1.6rem;
	margin-bottom: 0.7rem;
}

.lit-bullets li::before {
	content: "";
	position: absolute;
	left: 0.15rem;
	top: 0.7em;
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: var(--lit-sage);
}

/* --- Buttons --- */
/*
 * Primary action = deepened sage (#5F6651). White text on it measures 5.99:1,
 * comfortably past WCAG AA, and it stays distinct from the navy headings.
 * Hover resolves to navy, which is the strongest colour in the mark.
 */
.lit-btn-primary .et_pb_button,
.et_pb_button.lit-btn-primary {
	background-color: var(--lit-sage-dark) !important;
	color: var(--lit-white) !important;
	border-color: var(--lit-sage-dark) !important;
}

.lit-btn-primary .et_pb_button:hover,
.et_pb_button.lit-btn-primary:hover {
	background-color: var(--lit-navy) !important;
	border-color: var(--lit-navy) !important;
	color: var(--lit-white) !important;
}

.lit-btn-secondary .et_pb_button,
.et_pb_button.lit-btn-secondary {
	background-color: transparent !important;
	color: var(--lit-navy) !important;
	border-color: var(--lit-navy) !important;
}

.lit-btn-secondary .et_pb_button:hover,
.et_pb_button.lit-btn-secondary:hover {
	background-color: var(--lit-navy) !important;
	color: var(--lit-white) !important;
}

.lit-btn-light .et_pb_button,
.et_pb_button.lit-btn-light {
	background-color: var(--lit-white) !important;
	color: var(--lit-navy) !important;
	border-color: var(--lit-white) !important;
}

.lit-btn-light:hover .et_pb_button,
.et_pb_button.lit-btn-light:hover {
	background-color: transparent !important;
	color: var(--lit-white) !important;
	border-color: var(--lit-white) !important;
}

.lit-btn-ghost-light .et_pb_button,
.et_pb_button.lit-btn-ghost-light {
	background-color: transparent !important;
	color: var(--lit-white) !important;
	border-color: rgba(255, 255, 255, 0.65) !important;
}

.lit-btn-ghost-light:hover .et_pb_button,
.et_pb_button.lit-btn-ghost-light:hover {
	background-color: var(--lit-white) !important;
	color: var(--lit-navy) !important;
	border-color: var(--lit-white) !important;
}

/* Button pairs */
.lit-btn-row .et_pb_button_module_wrapper {
	display: inline-block;
	margin: 0 0.6rem 0.75rem 0;
}

/* --- Accordion / FAQ --- */
.lit-faq .et_pb_toggle,
.lit-faq .et_pb_accordion_item {
	background: var(--lit-surface) !important;
	border: 1px solid var(--lit-border) !important;
	border-radius: var(--lit-radius-sm) !important;
	margin-bottom: 0.85rem !important;
	padding: 1.25rem 1.5rem !important;
	box-shadow: none !important;
	transition: box-shadow var(--lit-transition), border-color var(--lit-transition);
}

.lit-faq .et_pb_toggle_open {
	border-color: var(--lit-sage) !important;
	box-shadow: var(--lit-shadow-sm) !important;
}

.lit-faq h5.et_pb_toggle_title,
.lit-faq .et_pb_toggle_title {
	font-family: var(--lit-font-heading) !important;
	font-size: var(--lit-fs-h4) !important;
	font-weight: 600 !important;
	color: var(--lit-navy) !important;
	padding-right: 2.5rem !important;
	cursor: pointer;
}

.lit-faq .et_pb_toggle_content {
	padding-top: 0.75rem;
	color: var(--lit-text-muted);
}

.lit-faq .et_pb_toggle_title:before {
	color: var(--lit-teal) !important;
	font-size: 1.35rem !important;
	right: 0 !important;
	top: 0.15em !important;
}

/* --- Contact form --- */
.lit-form .et_pb_contact_field {
	padding: 0 1% 1.1rem !important;
}

.lit-form .et_pb_contact_form_label {
	display: block !important;
	position: static !important;
	width: auto !important;
	height: auto !important;
	overflow: visible !important;
	clip: auto !important;
	font-size: var(--lit-fs-sm);
	font-weight: 600;
	color: var(--lit-navy);
	margin-bottom: 0.4rem;
}

.lit-form .et_pb_contact_field input[type="text"],
.lit-form .et_pb_contact_field input[type="email"],
.lit-form .et_pb_contact_field input[type="tel"],
.lit-form .et_pb_contact_field select,
.lit-form .et_pb_contact_field textarea,
.lit-form .et_pb_contact_field .et_pb_contact_field_options_wrapper {
	background-color: var(--lit-white) !important;
	border: 1px solid rgba(36, 50, 56, 0.2) !important;
	border-radius: var(--lit-radius-sm) !important;
	padding: 0.85rem 1rem !important;
	font-family: var(--lit-font-body) !important;
	font-size: var(--lit-fs-base) !important;
	color: var(--lit-charcoal) !important;
	box-shadow: none !important;
}

.lit-form .et_pb_contact_field input:focus,
.lit-form .et_pb_contact_field select:focus,
.lit-form .et_pb_contact_field textarea:focus {
	border-color: var(--lit-teal) !important;
	outline: 2px solid rgba(42, 111, 115, 0.25);
	outline-offset: 1px;
}

.lit-form .et_pb_contact_submit {
	background-color: var(--lit-teal) !important;
	color: var(--lit-white) !important;
	border-color: var(--lit-teal) !important;
	border-radius: var(--lit-radius-pill) !important;
	font-weight: 600 !important;
}

.lit-form .et_pb_contact_submit:hover {
	background-color: var(--lit-navy) !important;
	border-color: var(--lit-navy) !important;
}

.lit-form .et_contact_error {
	border-color: #b3261e !important;
}

/* --- Notices --- */
.lit-emergency {
	border-left: 4px solid #b3261e;
	background: #fdf3f2;
	color: #5f1a15;
	padding: 1rem 1.25rem;
	border-radius: var(--lit-radius-sm);
	font-size: var(--lit-fs-sm);
	line-height: 1.6;
}

.lit-notice {
	border-left: 4px solid var(--lit-teal);
	background: var(--lit-teal-soft);
	padding: 1rem 1.25rem;
	border-radius: var(--lit-radius-sm);
	font-size: var(--lit-fs-sm);
}

.lit-disclaimer,
.lit-disclaimer p {
	font-size: var(--lit-fs-xs) !important;
	line-height: 1.65 !important;
	color: var(--lit-text-muted);
}

.lit-invert .lit-disclaimer,
.lit-invert .lit-disclaimer p {
	color: rgba(255, 255, 255, 0.78);
}

/* --- Divider --- */
.lit-divider .et_pb_divider_internal,
.lit-divider:before {
	border-top-color: var(--lit-sage) !important;
}

/* --- Hero artwork: the full stacked logo lockup on a soft card --- */
.lit-hero-art {
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--lit-radius);
	background: linear-gradient(150deg, #ffffff 0%, var(--lit-sage-soft) 55%, var(--lit-sage-light) 100%);
	box-shadow: var(--lit-shadow-lg);
	padding: clamp(1.5rem, 4vw, 2.75rem);
	border: 1px solid var(--lit-border);
}

.lit-hero-art img {
	width: 100%;
	max-width: 340px;
	height: auto;
	display: block;
}

@media (max-width: 980px) {
	/* On a phone the header already shows the mark; keep this smaller so the
	   headline and CTAs stay above the fold. */
	.lit-hero-art img { max-width: 240px; }
	.lit-hero-art { padding: 1.25rem; }
}

.lit-headshot-placeholder {
	aspect-ratio: 1 / 1;
	border-radius: var(--lit-radius);
	background: linear-gradient(150deg, var(--lit-sage-light) 0%, var(--lit-gray-light) 100%);
	box-shadow: var(--lit-shadow-sm);
}

.lit-credentials,
.lit-credentials p {
	color: var(--lit-teal);
	font-size: var(--lit-fs-sm);
	letter-spacing: 0.02em;
}

/* --- Legal pages --- */
.lit-legal h2 {
	margin-top: 2.25rem;
	font-size: var(--lit-fs-h3) !important;
}

.lit-legal ul { margin-bottom: 1.25rem; }

/* --- Stat --- */
.lit-stat,
.lit-stat p {
	font-family: var(--lit-font-heading);
	font-size: clamp(2rem, 4vw, 2.75rem) !important;
	font-weight: 700;
	color: var(--lit-teal);
	line-height: 1.1;
	margin-bottom: 0.25rem;
}

/* =========================================================================
 * 7. Header / footer
 * ====================================================================== */
#main-header {
	box-shadow: 0 1px 0 rgba(140, 143, 121, 0.28), 0 2px 14px rgba(36, 50, 56, 0.04) !important;
	background-color: rgba(252, 249, 245, 0.96) !important;
	backdrop-filter: saturate(180%) blur(10px);
}

/* ---------------------------------------------------------------
 * Logo
 * ------------------------------------------------------------- */

/* The header shows the emblem only — no wordmark. A square mark can run
   taller than a wide lockup without crowding the navigation. */
#logo {
	max-height: 74% !important;
	width: auto;
	object-fit: contain;
}

@media (max-width: 980px) {
	#logo { max-height: 64% !important; }
}

/* With no wordmark beside it the emblem needs a little air before the menu. */
#main-header .logo_container {
	padding-right: 0.5rem;
}

/*
 * The site name is no longer visible in the header, so make sure it is still
 * announced to screen readers and available to search engines. Divi sets the
 * logo's alt text from the site title, which covers assistive tech — this is
 * belt and braces for crawlers that ignore alt on a linked image.
 */
#main-header .logo_container .lit-logo-name {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Cream knockout lockup for the navy footer. */
.lit-footer-logo img {
	max-width: 260px;
	height: auto;
	margin-bottom: 1rem;
}

#top-menu li a,
#et-top-navigation nav > ul > li > a {
	font-family: var(--lit-font-body);
	font-size: var(--lit-fs-sm);
	font-weight: 500;
	letter-spacing: 0.03em;
	color: var(--lit-charcoal) !important;
	padding-bottom: 1.1em;
	opacity: 1;
}

#top-menu li a:hover,
#top-menu li.current-menu-item > a {
	color: var(--lit-teal) !important;
	opacity: 1;
}

/* Persistent appointment button in the primary menu.
   Add the CSS class `lit-nav-cta` to the menu item in Appearance > Menus. */
#top-menu li.lit-nav-cta > a {
	background: var(--lit-sage-dark);
	color: var(--lit-white) !important;
	border-radius: var(--lit-radius-pill);
	padding: 0.65em 1.4em !important;
	margin-left: 0.6rem;
	font-weight: 600;
	transition: background var(--lit-transition), transform var(--lit-transition);
}

#top-menu li.lit-nav-cta > a:hover {
	background: var(--lit-navy);
	color: var(--lit-white) !important;
	transform: translateY(-1px);
}

/* Announcement / utility bar rendered by the Divi header layout */
.lit-topbar {
	background: var(--lit-navy);
	color: var(--lit-white);
	font-size: var(--lit-fs-xs);
	letter-spacing: 0.03em;
	padding: 0.55rem 0;
}

.lit-topbar a { color: var(--lit-white); text-decoration: none; }
.lit-topbar a:hover { text-decoration: underline; }

/* Footer */
#main-footer {
	background-color: var(--lit-navy) !important;
}

#footer-widgets .footer-widget,
#footer-widgets .footer-widget li,
#footer-widgets .footer-widget p,
#footer-bottom,
#footer-info {
	color: rgba(255, 255, 255, 0.85);
	font-size: var(--lit-fs-sm);
}

#footer-widgets .footer-widget h4 {
	font-family: var(--lit-font-body);
	font-size: var(--lit-fs-xs);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--lit-sage) !important;
}

#footer-widgets .footer-widget a,
#footer-info a {
	color: rgba(255, 255, 255, 0.85);
	text-decoration: none;
}

#footer-widgets .footer-widget a:hover,
#footer-info a:hover {
	color: var(--lit-white);
	text-decoration: underline;
}

#footer-bottom {
	background-color: rgba(0, 0, 0, 0.18) !important;
}

/* With every social network disabled Divi still prints an empty <ul>, which
   leaves a stray gap above the copyright line. */
#footer-bottom .et-social-icons:empty {
	display: none;
}

#footer-bottom #footer-info,
#footer-bottom div#footer-info {
	float: none;
	text-align: center;
	padding-bottom: 0;
	font-size: var(--lit-fs-xs);
	color: rgba(255, 255, 255, 0.72);
}

/* Footer widget columns */
#footer-widgets .footer-widget {
	margin-bottom: 2rem;
}

#footer-widgets .footer-widget:nth-child(1) { width: 32%; }

#footer-widgets .footer-widget p { margin-bottom: 0.9rem; }
#footer-widgets .footer-widget p:last-child { margin-bottom: 0; }

/* Plain link lists — no bullets, no Divi chevrons */
#footer-widgets ul.lit-footer-nav {
	list-style: none;
	padding: 0;
	margin: 0;
}

#footer-widgets ul.lit-footer-nav li {
	padding: 0 0 0.45rem 0;
	border: 0;
	line-height: 1.5;
}

#footer-widgets ul.lit-footer-nav li:before {
	display: none;
}

/* Footer call-to-action pill */
.lit-footer-cta {
	display: inline-block;
	margin-top: 0.35rem;
	padding: 0.6rem 1.35rem;
	border: 2px solid rgba(255, 255, 255, 0.6);
	border-radius: var(--lit-radius-pill);
	font-size: var(--lit-fs-xs);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--lit-white) !important;
	text-decoration: none !important;
	transition: background var(--lit-transition), color var(--lit-transition);
}

.lit-footer-cta:hover {
	background: var(--lit-white);
	color: var(--lit-navy) !important;
	border-color: var(--lit-white);
}

@media (max-width: 980px) {
	#footer-widgets .footer-widget,
	#footer-widgets .footer-widget:nth-child(1) {
		width: 100%;
		margin-bottom: 2.25rem;
	}
	.lit-footer-logo img { max-width: 220px; }
}

/* =========================================================================
 * 8. Accessibility & motion
 * ====================================================================== */
.lit-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 999999;
	background: var(--lit-navy);
	color: var(--lit-white);
	padding: 0.85rem 1.4rem;
	border-radius: 0 0 var(--lit-radius-sm) 0;
	text-decoration: none;
	font-weight: 600;
}

.lit-skip-link:focus {
	left: 0;
	clip: auto !important;
	width: auto;
	height: auto;
	color: var(--lit-white);
}

a:focus-visible,
button:focus-visible,
.et_pb_button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
	outline: 3px solid var(--lit-navy);
	outline-offset: 2px;
	border-radius: 4px;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 7rem;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
	.lit-card:hover,
	.et_pb_button:hover { transform: none; }
}

/* =========================================================================
 * 9. Responsive
 * ====================================================================== */
@media (max-width: 980px) {
	.et_pb_section { padding: var(--lit-space-lg) 0; }
	.lit-cards .et_pb_column > .et_pb_module { margin-bottom: 20px; }
	.lit-btn-row .et_pb_button_module_wrapper {
		display: block;
		margin-right: 0;
	}
	.lit-btn-row .et_pb_button { display: block; text-align: center; }
}

@media (max-width: 767px) {
	.et_pb_row { width: 90%; }
	.lit-step { padding-left: 0; padding-top: 3.6rem; }
	.lit-step::before { width: 2.6rem; height: 2.6rem; }
	.lit-prose p, .lit-prose li { max-width: none; }
}

/* =========================================================================
 * 10. Print
 * ====================================================================== */
@media print {
	#main-header,
	#main-footer,
	.lit-topbar,
	.et_pb_button_module_wrapper { display: none !important; }
	body { background: #fff; color: #000; font-size: 11pt; }
}
