/* Elixier Diagnostics — front-end styles */

/* -------------------------------------------------------------------------- */
/* Design tokens                                                              */
/* -------------------------------------------------------------------------- */

:root {
	--blue: #004aad;
	--blue-dark: #00377f;
	--blue-deep: #002b66;
	--blue-soft: #ebf4ff;
	--blue-border: #b8d4f4;
	--green: #7ed957;
	--green-deep: #4dae31;
	--ink: #172033;
	--muted: #596579;
	--line: #dbe6f2;
	--surface: #fff;
	--surface-muted: #f7fbff;
	--amber: #f4b73c;
	--charcoal: #172033;

	--radius-sm: 10px;
	--radius-md: 16px;
	--radius-lg: 24px;
	--radius-btn: 9px;

	--max-width: 1200px;
	--content-width: 760px;

	--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--font-display: var(--font-sans);

	--space-xs: 0.5rem;
	--space-sm: 1rem;
	--space-md: 1.5rem;
	--space-lg: 2.5rem;
	--space-xl: 4rem;
	--space-xxl: 5.5rem;

	--shadow-sm: 0 10px 26px rgba(10, 52, 105, 0.08);
	--shadow-md: 0 20px 54px rgba(10, 52, 105, 0.13);
	--shadow-lg: 0 16px 40px rgba(23, 32, 51, 0.12);

	--header-height: 9.4rem;
	--transition: 180ms ease;
}

/* Accessibility overrides (toggled via body classes from a11y-cookie.js) */

body.elx-a11y-contrast-high {
	--blue: #003580;
	--blue-dark: #002660;
	--blue-deep: #001a4d;
	--ink: #000;
	--muted: #333;
	--line: #666;
	--surface-muted: #f0f0f0;
}

body.elx-a11y-text-large {
	font-size: 112.5%;
}

body.elx-a11y-text-xlarge {
	font-size: 125%;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

body.elx-a11y-reduced-motion *,
body.elx-a11y-reduced-motion *::before,
body.elx-a11y-reduced-motion *::after {
	animation: none !important;
	transition: none !important;
	scroll-behavior: auto !important;
}

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

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

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 1rem;
	line-height: 1.6;
	color: var(--ink);
	background: var(--surface);
	-webkit-font-smoothing: antialiased;
}

img,
svg,
video {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--blue);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}

a:hover,
a:focus-visible {
	color: var(--blue-dark);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 var(--space-sm);
	font-weight: 650;
	line-height: 1.2;
	color: var(--ink);
}

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

ul,
ol {
	margin: 0 0 var(--space-sm);
	padding-left: 1.25rem;
}

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

.screen-reader-text:focus,
.visually-hidden:focus {
	position: static !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	overflow: visible !important;
	clip: auto !important;
	white-space: normal !important;
}

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

.elx-container {
	width: min(100% - 2.5rem, var(--max-width));
	margin-inline: auto;
}

.elx-container--narrow {
	width: min(100% - 2.5rem, var(--content-width));
	margin-inline: auto;
}

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

.elx-skip-link {
	position: absolute;
	top: -100%;
	left: var(--space-sm);
	z-index: 10000;
	padding: 0.75rem 1.25rem;
	background: var(--blue-deep);
	color: var(--surface);
	font-weight: 600;
	border-radius: var(--radius-sm);
	text-decoration: none;
	box-shadow: var(--shadow-md);
}

.elx-skip-link:focus {
	top: var(--space-sm);
	color: var(--surface);
}

/* -------------------------------------------------------------------------- */
/* Utility / top bar                                                          */
/* -------------------------------------------------------------------------- */

.elx-topbar {
	background: var(--blue-deep);
	color: #fff;
	font-size: 0.86rem;
}

.elx-topbar__inner {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 1.5rem;
	min-height: 2.45rem;
}

.elx-topbar__link {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	color: rgba(255, 255, 255, 0.97);
	text-decoration: none;
	font-weight: 500;
}

.elx-topbar__link:hover,
.elx-topbar__link:focus-visible {
	color: var(--green);
	text-decoration: none;
}

.elx-topbar__icon {
	display: inline-flex;
	color: var(--green);
}

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

.elx-header {
	position: sticky;
	top: 0;
	z-index: 900;
	background: rgba(255, 255, 255, 0.97);
	border-bottom: 1px solid rgba(3, 64, 137, 0.11);
	backdrop-filter: blur(12px);
}

.elx-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	min-height: var(--header-height);
	padding-block: 0.2rem;
}

.elx-logo {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	color: var(--ink);
	line-height: 0;
}

.elx-logo:hover,
.elx-logo:focus-visible {
	text-decoration: none;
	color: var(--blue);
}

.elx-logo img,
.elx-logo .custom-logo,
.elx-logo__img {
	display: block;
	width: 9rem;
	height: 9rem;
	max-width: none;
	flex-shrink: 0;
	object-fit: contain;
	object-position: left 38%;
}

.elx-logo .custom-logo-link {
	display: inline-flex;
}

.elx-logo--footer .elx-logo__img {
	width: 10.5rem;
	height: 10.5rem;
	object-position: left 38%;
}

@media (max-width: 959px) {
	:root {
		--header-height: 7.05rem;
	}

	.elx-header__inner {
		padding-block: 0.15rem;
	}

	.elx-logo img,
	.elx-logo .custom-logo,
	.elx-logo__img {
		width: 6.75rem;
		height: 6.75rem;
	}

	.elx-logo--footer .elx-logo__img {
		width: 8.25rem;
		height: 8.25rem;
	}
}

.elx-header__brand {
	display: flex;
	align-items: center;
	flex: none;
}

.elx-header__actions {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex: none;
}

.elx-header__cta {
	white-space: nowrap;
}

.elx-nav {
	position: relative;
	flex: 1;
	display: flex;
	justify-content: flex-end;
}

.elx-nav__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 1px solid var(--blue-border);
	border-radius: var(--radius-sm);
	background: var(--blue-soft);
	color: var(--blue);
	cursor: pointer;
}

.elx-nav__toggle-icon {
	display: block;
	width: 1.15rem;
	height: 2px;
	background: currentColor;
	box-shadow: 0 -6px 0 currentColor, 0 6px 0 currentColor;
}

.elx-nav__panel {
	display: none;
	position: absolute;
	top: calc(100% + 0.55rem);
	right: 0;
	min-width: min(18rem, calc(100vw - 2rem));
	padding: var(--space-sm);
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-lg);
}

.elx-nav.is-open .elx-nav__panel {
	display: block;
}

a.elx-button.elx-nav__mobile-cta {
	display: none;
	width: 100%;
	margin-top: 0.75rem;
}

body.elx-nav-open {
	overflow: hidden;
}

.elx-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.elx-nav__item {
	margin: 0;
}

.elx-nav__link {
	display: block;
	padding: 0.7rem 0.85rem;
	border-radius: var(--radius-sm);
	color: #29354a;
	text-decoration: none;
	font-weight: 650;
	font-size: 0.94rem;
	position: relative;
}

.elx-nav__link:hover,
.elx-nav__link:focus-visible,
.elx-nav__link[aria-current="page"] {
	background: var(--blue-soft);
	color: var(--blue);
	text-decoration: none;
}

@media (min-width: 1024px) {
	.elx-nav {
		justify-content: center;
	}

	.elx-nav__toggle {
		display: none;
	}

	.elx-nav__panel {
		display: block;
		position: static;
		min-width: 0;
		padding: 0;
		background: transparent;
		border: 0;
		border-radius: 0;
		box-shadow: none;
	}

	.elx-nav__list {
		flex-direction: row;
		align-items: center;
		gap: 0.35rem;
	}

	.elx-nav__link {
		padding: 0.45rem 0.55rem;
		font-size: 0.91rem;
		background: transparent;
	}

	.elx-nav__link::after {
		content: "";
		position: absolute;
		left: 0.55rem;
		right: 0.55rem;
		bottom: 0.1rem;
		height: 2px;
		background: var(--green-deep);
		width: auto;
		transform: scaleX(0);
		transform-origin: left;
		transition: transform 0.2s ease;
	}

	.elx-nav__link:hover,
	.elx-nav__link:focus-visible,
	.elx-nav__link[aria-current="page"] {
		background: transparent;
		color: var(--blue);
	}

	.elx-nav__link:hover::after,
	.elx-nav__link:focus-visible::after,
	.elx-nav__link[aria-current="page"]::after {
		transform: scaleX(1);
	}

	a.elx-button.elx-nav__mobile-cta {
		display: none;
	}
}

@media (max-width: 1023px) {
	a.elx-button.elx-header__cta {
		display: none;
	}

	a.elx-button.elx-nav__mobile-cta {
		display: inline-flex;
	}
}

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

.elx-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.82rem 1.2rem;
	border: 1px solid transparent;
	border-radius: var(--radius-btn);
	font-family: inherit;
	font-size: 0.94rem;
	font-weight: 750;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition), box-shadow var(--transition);
}

.elx-button:hover,
.elx-button:focus-visible {
	text-decoration: none;
	transform: translateY(-2px);
	box-shadow: 0 10px 18px rgba(0, 48, 114, 0.18);
}

.elx-button--primary {
	background: var(--blue);
	color: var(--surface);
	border-color: var(--blue);
}

.elx-button--primary:hover,
.elx-button--primary:focus-visible {
	background: var(--blue-dark);
	border-color: var(--blue-dark);
	color: var(--surface);
}

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

.elx-button--secondary:hover,
.elx-button--secondary:focus-visible {
	background: var(--blue);
	border-color: var(--blue);
	color: var(--surface);
}

.elx-button--green {
	background: var(--green);
	color: #15350a;
	border-color: var(--green);
}

.elx-button--green:hover,
.elx-button--green:focus-visible {
	background: #9ae679;
	border-color: #9ae679;
	color: #15350a;
}

.elx-button--ghost {
	background: transparent;
	color: var(--blue);
	border-color: transparent;
}

.elx-button--ghost:hover,
.elx-button--ghost:focus-visible {
	background: var(--blue-soft);
	box-shadow: none;
}

.elx-button--small {
	padding: 0.62rem 0.9rem;
	font-size: 0.86rem;
}

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

.elx-button--on-dark {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.55);
}

.elx-button--on-dark:hover,
.elx-button--on-dark:focus-visible {
	background: #fff;
	color: var(--blue-deep);
	border-color: #fff;
}

.elx-button:disabled,
.elx-button[aria-disabled="true"] {
	opacity: 0.55;
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
}

.elx-text-link {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: var(--blue);
	font-weight: 750;
	text-decoration: none;
}

.elx-text-link:hover,
.elx-text-link:focus-visible {
	color: var(--green-deep);
	text-decoration: none;
}

/* -------------------------------------------------------------------------- */
/* Hero sections                                                              */
/* -------------------------------------------------------------------------- */

.elx-hero {
	padding: var(--space-xl) 0 var(--space-lg);
	background: linear-gradient(180deg, var(--surface-muted) 0%, var(--surface) 100%);
}

.elx-hero--home {
	position: relative;
	overflow: hidden;
	padding: 4.25rem 0 4.5rem;
	background: linear-gradient(112deg, #f7fbff 0%, #ecf6ff 46%, #e3f3fc 100%);
}

.elx-hero--home::after {
	content: "";
	position: absolute;
	right: -8rem;
	bottom: -11rem;
	width: 29rem;
	height: 29rem;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(126, 217, 87, 0.45) 0%, rgba(126, 217, 87, 0) 68%);
	opacity: 0.5;
	pointer-events: none;
}

.elx-hero__grid {
	position: relative;
	z-index: 1;
	display: grid;
	gap: clamp(2rem, 5vw, 4.75rem);
	align-items: center;
}

@media (min-width: 960px) {
	.elx-hero__grid {
		grid-template-columns: minmax(0, 0.92fr) minmax(22rem, 1.08fr);
	}
}

.elx-hero__copy {
	padding-block: 0.75rem;
}

.elx-hero--compact {
	padding: var(--space-lg) 0;
}

.elx-hero--deep {
	background: linear-gradient(135deg, var(--blue-deep) 0%, var(--blue-dark) 55%, var(--blue) 100%);
	color: var(--surface);
}

.elx-hero--deep .elx-hero__eyebrow,
.elx-hero--deep .elx-hero__title,
.elx-hero--deep .elx-hero__intro,
.elx-hero--deep h1,
.elx-hero--deep p {
	color: inherit;
}

.elx-hero__eyebrow {
	display: inline-block;
	margin-bottom: var(--space-xs);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--blue);
}

.elx-hero__title,
.elx-hero h1 {
	font-size: clamp(2.2rem, 4.4vw, 4.2rem);
	max-width: 15ch;
	margin-bottom: 0;
	color: var(--blue-deep);
	letter-spacing: -0.045em;
	line-height: 1.02;
}

.elx-hero__intro {
	font-size: clamp(1rem, 1.5vw, 1.07rem);
	color: #3f4f67;
	max-width: 60ch;
	margin: 1.4rem 0 0;
}

.elx-hero--deep .elx-hero__intro {
	color: rgba(255, 255, 255, 0.88);
}

.elx-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.85rem;
}

.elx-hero__reassurance {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin: 1.7rem 0 0;
	color: #455876;
	font-size: 0.88rem;
	font-weight: 600;
}

.elx-hero__reassurance-icon {
	display: inline-flex;
	color: var(--green-deep);
	flex: none;
}

.elx-hero__media {
	position: relative;
	min-height: 22rem;
}

.elx-hero__media-frame {
	position: absolute;
	inset: 0 0 1.25rem;
	border: 10px solid #fff;
	border-radius: 26px;
	box-shadow: var(--shadow-md);
	overflow: hidden;
}

.elx-hero__media-frame img,
.elx-hero__media-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.elx-split__media img,
.elx-home-story__img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 22rem;
	object-fit: cover;
	border-radius: var(--radius-lg);
}

@media (max-width: 959px) {
	.elx-hero__media {
		min-height: 16rem;
	}

	.elx-hero__media-frame {
		position: relative;
		inset: auto;
		min-height: 16rem;
	}
}

/* -------------------------------------------------------------------------- */
/* Trust strip                                                                */
/* -------------------------------------------------------------------------- */

.elx-trust-strip {
	background: var(--blue-deep);
	color: #fff;
	position: relative;
	z-index: 2;
}

.elx-trust-strip__grid {
	display: grid;
	grid-template-columns: 1fr;
}

.elx-trust-strip__item {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	min-height: 5.75rem;
	padding: 1.25rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.elx-trust-strip__item:last-child {
	border-bottom: 0;
}

.elx-trust-strip__icon {
	display: inline-flex;
	color: var(--green);
	flex: none;
}

.elx-trust-strip__item strong,
.elx-trust-strip__item small {
	display: block;
}

.elx-trust-strip__item strong {
	color: #fff;
	font-size: 0.95rem;
}

.elx-trust-strip__item small {
	color: rgba(255, 255, 255, 0.72);
	margin-top: 0.15rem;
	font-size: 0.8rem;
}

@media (min-width: 800px) {
	.elx-trust-strip__grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.elx-trust-strip__item {
		border-bottom: 0;
		border-right: 1px solid rgba(255, 255, 255, 0.18);
		padding: 1.35rem 1.5rem;
	}

	.elx-trust-strip__item:last-child {
		border-right: 0;
	}
}

/* -------------------------------------------------------------------------- */
/* Breadcrumbs                                                                */
/* -------------------------------------------------------------------------- */

.elx-breadcrumbs {
	padding: var(--space-sm) 0;
	font-size: 0.875rem;
	color: var(--muted);
}

.elx-breadcrumbs a {
	color: var(--blue);
	text-decoration: none;
}

.elx-breadcrumbs a:hover,
.elx-breadcrumbs a:focus-visible {
	text-decoration: underline;
}

.elx-breadcrumbs [aria-current="page"] {
	color: var(--ink);
	font-weight: 500;
}

/* -------------------------------------------------------------------------- */
/* Cards & grids                                                              */
/* -------------------------------------------------------------------------- */

.elx-grid {
	display: grid;
	gap: var(--space-md);
	grid-template-columns: 1fr;
}

.elx-grid--services,
.elx-grid--packages {
	grid-template-columns: 1fr;
}

.elx-grid--team {
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

@media (min-width: 640px) {
	.elx-grid--services,
	.elx-grid--packages {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 960px) {
	.elx-grid--services,
	.elx-grid--packages {
		grid-template-columns: repeat(3, 1fr);
	}
}

.elx-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 1.5rem;
	background: var(--surface);
	border: 1px solid var(--blue-border);
	border-radius: var(--radius-md);
	box-shadow: 0 7px 18px rgba(9, 64, 126, 0.035);
	transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.elx-card:hover {
	border-color: var(--blue);
	box-shadow: var(--shadow-sm);
	transform: translateY(-4px);
}

.elx-card--has-media {
	padding: 0;
	overflow: hidden;
	min-height: 24rem;
}

.elx-card--featured {
	border-color: var(--blue);
	background: linear-gradient(180deg, #f4f9ff 0%, #fff 48%);
}

.elx-card__media {
	background: var(--blue-soft);
	height: 9.75rem;
	overflow: hidden;
}

.elx-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.elx-card__media-placeholder {
	display: grid;
	place-items: center;
	height: 100%;
	background:
		linear-gradient(135deg, rgba(0, 74, 173, 0.08), rgba(126, 217, 87, 0.18)),
		repeating-linear-gradient(
			-12deg,
			transparent,
			transparent 12px,
			rgba(0, 74, 173, 0.04) 12px,
			rgba(0, 74, 173, 0.04) 24px
		);
	color: var(--blue-dark);
	font-size: 0.8rem;
	font-weight: 650;
	letter-spacing: 0.02em;
}

.elx-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 1.15rem 1.25rem 1.35rem;
}

.elx-card__eyebrow {
	margin: 0 0 0.35rem;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--blue);
}

.elx-card__title {
	font-size: 1.15rem;
	margin-bottom: 0.5rem;
	color: var(--blue-deep);
}

.elx-card__title a {
	color: inherit;
	text-decoration: none;
}

.elx-card__title a:hover,
.elx-card__title a:focus-visible {
	color: var(--blue);
}

.elx-card__summary {
	flex: 1;
	color: var(--muted);
	font-size: 0.9375rem;
	margin-bottom: var(--space-sm);
}

.elx-card__price {
	margin: 0 0 0.45rem;
	font-weight: 750;
	color: var(--blue-dark);
	font-size: 0.92rem;
}

.elx-card__meta {
	margin: 0 0 var(--space-sm);
	font-size: 0.875rem;
	color: var(--muted);
}

.elx-card__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
	margin-top: auto;
	padding-top: var(--space-sm);
}

/* -------------------------------------------------------------------------- */
/* Forms                                                                      */
/* -------------------------------------------------------------------------- */

.elx-form {
	position: relative;
	display: grid;
	gap: var(--space-md);
	max-width: 36rem;
}

.elx-form--contact {
	max-width: none;
}

.elx-form__hp {
	position: absolute;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.elx-form__req {
	color: var(--blue);
	font-weight: 700;
}

.elx-form__row {
	display: grid;
	gap: var(--space-md);
}

@media (min-width: 640px) {
	.elx-form__row {
		grid-template-columns: 1fr 1fr;
	}
}

.elx-form__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.85rem 1.15rem;
}

.elx-form__aside {
	margin: 0;
	font-size: 0.875rem;
	color: var(--muted);
	max-width: 32ch;
}

.elx-form__notice,
.elx-form__success,
.elx-form__error {
	padding: var(--space-sm) var(--space-md);
	border-radius: var(--radius-sm);
	font-size: 0.9375rem;
}

.elx-form__notice {
	background: var(--blue-soft);
	border: 1px solid var(--blue-border);
	color: var(--blue-deep);
}

.elx-form__success {
	background: #edf9e8;
	border: 1px solid var(--green);
	color: var(--green-deep);
}

.elx-form__error {
	background: #fff4f0;
	border: 1px solid #f5a08a;
	color: #8a2e0f;
}

.elx-form__field,
.elx-form__consent {
	display: grid;
	gap: 0.35rem;
}

.elx-form__field span,
.elx-form__consent span {
	font-weight: 500;
	font-size: 0.9375rem;
}

.elx-form__field input,
.elx-form__field select,
.elx-form__field textarea {
	width: 100%;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	font: inherit;
	color: var(--ink);
	background: var(--surface);
	transition: border-color var(--transition), box-shadow var(--transition);
}

.elx-form__field input:focus,
.elx-form__field select:focus,
.elx-form__field textarea:focus {
	border-color: var(--blue);
	box-shadow: 0 0 0 3px rgba(0, 74, 173, 0.15);
	outline: none;
}

.elx-form__field input:invalid:not(:placeholder-shown),
.elx-form__field textarea:invalid:not(:placeholder-shown) {
	border-color: #d64545;
}

.elx-form__consent {
	grid-template-columns: auto 1fr;
	align-items: start;
	gap: 0.65rem;
	font-size: 0.9375rem;
}

.elx-form__consent input {
	margin-top: 0.2rem;
	width: 1.1rem;
	height: 1.1rem;
	accent-color: var(--blue);
}

/* -------------------------------------------------------------------------- */
/* Tables                                                                     */
/* -------------------------------------------------------------------------- */

.elx-table-wrap {
	overflow-x: auto;
	margin: var(--space-md) 0;
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	background: var(--surface);
}

.elx-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.elx-table th,
.elx-table td {
	padding: 0.85rem 1rem;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--line);
}

.elx-table th {
	background: var(--surface-muted);
	font-weight: 600;
	color: var(--ink);
	white-space: nowrap;
}

.elx-table tbody tr:last-child td {
	border-bottom: 0;
}

.elx-table tbody tr:hover td {
	background: rgba(235, 244, 255, 0.45);
}

.elx-table a {
	font-weight: 500;
}

.elx-table--compare th:first-child,
.elx-table--compare td:first-child {
	position: sticky;
	left: 0;
	z-index: 1;
	background: var(--surface);
	min-width: 10rem;
	font-weight: 500;
}

.elx-table--compare thead th:first-child {
	background: var(--surface-muted);
}

.elx-table__yes {
	color: var(--green-deep);
	font-weight: 700;
}

.elx-table__no {
	color: var(--muted);
}

/* -------------------------------------------------------------------------- */
/* CTA bands                                                                  */
/* -------------------------------------------------------------------------- */

.elx-cta-band {
	padding: var(--space-lg) 0;
	background: var(--blue-soft);
	border-block: 1px solid var(--blue-border);
}

.elx-cta-band--dark {
	background: linear-gradient(135deg, var(--blue-deep), var(--blue-dark));
	border: 0;
	color: var(--surface);
}

.elx-cta-band--dark .elx-cta-band__note {
	color: rgba(255, 255, 255, 0.82);
}

.elx-cta-band__inner {
	display: grid;
	gap: var(--space-md);
	align-items: center;
}

.elx-cta-band__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.elx-cta-band__lead {
	margin: 0 0 0.85rem;
	font-size: 1.15rem;
	font-weight: 650;
	color: var(--blue-deep);
	max-width: 28ch;
}

.elx-cta-band__note {
	margin: 0;
	font-size: 0.875rem;
	color: var(--muted);
	max-width: 52ch;
}

@media (min-width: 768px) {
	.elx-cta-band__inner {
		grid-template-columns: 1fr auto;
	}
}

/* -------------------------------------------------------------------------- */
/* Semble iframe                                                              */
/* -------------------------------------------------------------------------- */

.elx-semble-iframe-wrap {
	position: relative;
	width: 100%;
	min-height: 720px;
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	overflow: hidden;
	background: var(--surface-muted);
	box-shadow: var(--shadow-sm);
}

.elx-semble-iframe {
	display: block;
	width: 100%;
	min-height: 720px;
	height: 80vh;
	border: 0;
	background: var(--surface);
}

.elx-semble-placeholder {
	padding: var(--space-lg);
	background: var(--surface-muted);
	border: 1px dashed var(--blue-border);
	border-radius: var(--radius-md);
	text-align: center;
}

.elx-semble-placeholder p {
	color: var(--muted);
	max-width: 40ch;
	margin-inline: auto;
}

/* -------------------------------------------------------------------------- */
/* FAQ                                                                        */
/* -------------------------------------------------------------------------- */

.elx-faqs {
	display: grid;
	gap: var(--space-lg);
}

.elx-faqs__search {
	display: block;
}

.elx-faqs__search input {
	width: 100%;
	padding: 0.85rem 1rem;
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	font: inherit;
	background: var(--surface);
}

.elx-faqs__search input:focus {
	border-color: var(--blue);
	box-shadow: 0 0 0 3px rgba(0, 74, 173, 0.12);
	outline: none;
}

.elx-faqs__category h2 {
	font-size: 1.35rem;
	margin-bottom: var(--space-sm);
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--blue-soft);
}

.elx-faqs__category.is-hidden,
.elx-faq.is-hidden {
	display: none;
}

.elx-faq {
	margin-bottom: 0.5rem;
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	background: var(--surface);
	overflow: hidden;
}

.elx-faq summary {
	padding: 1rem 1.15rem;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-sm);
}

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

.elx-faq summary::after {
	content: "+";
	flex-shrink: 0;
	width: 1.5rem;
	height: 1.5rem;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--blue-soft);
	color: var(--blue);
	font-size: 1.1rem;
	line-height: 1;
}

.elx-faq[open] summary::after {
	content: "−";
}

.elx-faq summary:hover,
.elx-faq summary:focus-visible {
	background: var(--surface-muted);
}

.elx-faq__answer {
	padding: 0 1.15rem 1rem;
	color: var(--muted);
	border-top: 1px solid var(--line);
}

.elx-faq__answer p:last-child {
	margin-bottom: 0;
}

/* -------------------------------------------------------------------------- */
/* Policy anchor nav                                                          */
/* -------------------------------------------------------------------------- */

.elx-policy-nav {
	position: sticky;
	top: calc(var(--header-height) + 0.5rem);
	z-index: 50;
	margin-bottom: var(--space-lg);
	padding: var(--space-sm);
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-sm);
}

.elx-policy-nav__label {
	display: block;
	margin-bottom: 0.5rem;
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--muted);
}

.elx-policy-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.elx-policy-nav__list a {
	display: inline-block;
	padding: 0.45rem 0.75rem;
	border-radius: 999px;
	background: var(--surface-muted);
	color: var(--blue-dark);
	font-size: 0.875rem;
	font-weight: 500;
	text-decoration: none;
}

.elx-policy-nav__list a:hover,
.elx-policy-nav__list a:focus-visible,
.elx-policy-nav__list a.is-active {
	background: var(--blue);
	color: var(--surface);
}

.elx-policy-section {
	scroll-margin-top: calc(var(--header-height) + 4rem);
	padding-block: var(--space-md);
	border-bottom: 1px solid var(--line);
}

.elx-policy-section:last-child {
	border-bottom: 0;
}

/* -------------------------------------------------------------------------- */
/* Patient tools                                                              */
/* -------------------------------------------------------------------------- */

.elx-tool {
	padding: var(--space-md);
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
}

.elx-tool__loading {
	color: var(--muted);
	font-style: italic;
	margin: 0;
}

.elx-tool__header {
	margin-bottom: var(--space-md);
}

.elx-tool__eyebrow {
	display: inline-block;
	margin-bottom: 0.35rem;
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--blue);
}

.elx-tool__title {
	font-size: 1.5rem;
	margin-bottom: 0.5rem;
}

.elx-tool__intro {
	color: var(--muted);
	margin-bottom: 0;
}

.elx-tool__notice {
	margin: var(--space-md) 0 0;
	padding: var(--space-sm) var(--space-md);
	background: var(--surface-muted);
	border-left: 4px solid var(--amber);
	border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
	font-size: 0.9375rem;
	color: var(--ink);
}

.elx-tool__notice--emergency {
	background: #fff8e6;
	border-left-color: #c0392b;
}

.elx-tool__error {
	padding: var(--space-sm) var(--space-md);
	background: #fff4f0;
	border: 1px solid #f5a08a;
	border-radius: var(--radius-sm);
	color: #8a2e0f;
}

/* Compare packages tool */

.elx-compare__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-sm);
	margin-bottom: var(--space-md);
}

.elx-compare__count {
	font-size: 0.9375rem;
	color: var(--muted);
	font-weight: 500;
}

.elx-compare__picker {
	display: grid;
	gap: 0.65rem;
	margin-bottom: var(--space-lg);
}

.elx-compare__option {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.75rem;
	align-items: start;
	padding: 0.85rem 1rem;
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	background: var(--surface);
	cursor: pointer;
	transition: border-color var(--transition), background var(--transition);
}

.elx-compare__option:hover {
	border-color: var(--blue-border);
	background: var(--surface-muted);
}

.elx-compare__option.is-selected {
	border-color: var(--blue);
	background: var(--blue-soft);
}

.elx-compare__option input {
	margin-top: 0.25rem;
	width: 1.1rem;
	height: 1.1rem;
	accent-color: var(--blue);
}

.elx-compare__option-label {
	font-weight: 600;
	color: var(--ink);
}

.elx-compare__option-meta {
	font-size: 0.875rem;
	color: var(--muted);
}

.elx-compare__empty {
	padding: var(--space-lg);
	text-align: center;
	color: var(--muted);
	background: var(--surface-muted);
	border-radius: var(--radius-md);
}

.elx-compare__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: var(--space-md);
}

/* Find service tool */

.elx-find__progress {
	margin-bottom: var(--space-md);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--blue);
}

.elx-find__step {
	display: grid;
	gap: var(--space-md);
}

.elx-find__step[hidden] {
	display: none;
}

.elx-find__question {
	font-size: 1.25rem;
	margin-bottom: 0;
}

.elx-find__hint {
	color: var(--muted);
	font-size: 0.9375rem;
	margin: 0;
}

.elx-find__choices {
	display: grid;
	gap: 0.65rem;
}

@media (min-width: 640px) {
	.elx-find__choices--split {
		grid-template-columns: repeat(2, 1fr);
	}
}

.elx-find__choice {
	display: block;
	width: 100%;
	padding: 1rem 1.15rem;
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	background: var(--surface);
	font: inherit;
	font-weight: 600;
	text-align: left;
	color: var(--ink);
	cursor: pointer;
	transition: border-color var(--transition), background var(--transition);
}

.elx-find__choice:hover,
.elx-find__choice:focus-visible {
	border-color: var(--blue);
	background: var(--blue-soft);
}

.elx-find__choice--urgent {
	border-color: #f5c6cb;
	background: #fff5f5;
}

.elx-find__choice--urgent:hover,
.elx-find__choice--urgent:focus-visible {
	border-color: #c0392b;
	background: #ffecec;
}

.elx-find__choice .elx-find__hint {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.875rem;
	font-weight: 400;
	color: var(--muted);
}

.elx-find__results {
	display: grid;
	gap: var(--space-md);
}

.elx-find__result-card {
	padding: var(--space-md);
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	background: var(--surface-muted);
}

.elx-find__result-card h3 {
	font-size: 1.1rem;
	margin-bottom: 0.35rem;
}

.elx-find__result-card p {
	color: var(--muted);
	font-size: 0.9375rem;
}

.elx-find__back {
	margin-top: var(--space-sm);
}

/* Prep planner tool */

.elx-prep__selector {
	display: grid;
	gap: 0.5rem;
	margin-bottom: var(--space-lg);
	max-width: 28rem;
}

.elx-prep__selector label {
	font-weight: 600;
	font-size: 0.9375rem;
}

.elx-prep__selector select {
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	font: inherit;
	background: var(--surface);
}

.elx-prep__header {
	margin-bottom: var(--space-md);
}

.elx-prep__header h2 {
	font-size: 1.35rem;
	margin-bottom: 0.35rem;
}

.elx-prep__checklist {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.5rem;
}

.elx-prep__checklist li {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.75rem;
	align-items: start;
	padding: 0.85rem 1rem;
	background: var(--surface-muted);
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
}

.elx-prep__checklist input[type="checkbox"] {
	margin-top: 0.2rem;
	width: 1.15rem;
	height: 1.15rem;
	accent-color: var(--blue);
}

.elx-prep__checklist label {
	cursor: pointer;
}

.elx-prep__checklist li.is-checked {
	background: #edf9e8;
	border-color: var(--green);
}

.elx-prep__progress {
	margin-top: var(--space-md);
	font-size: 0.875rem;
	color: var(--muted);
}

.elx-prep__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: var(--space-md);
}

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

.elx-footer {
	margin-top: 0;
	background: var(--blue-deep);
	color: rgba(255, 255, 255, 0.88);
}

.elx-footer a {
	color: rgba(255, 255, 255, 0.76);
	text-decoration: none;
}

.elx-footer a:hover,
.elx-footer a:focus-visible {
	color: var(--green);
	text-decoration: none;
}

.elx-footer__trust {
	background: #033c88;
}

.elx-footer__trust-grid {
	display: grid;
	grid-template-columns: 1fr;
}

.elx-footer__trust-item {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	min-height: 5.7rem;
	padding: 1.1rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.elx-footer__trust-item:last-child {
	border-bottom: 0;
}

.elx-footer__trust-icon {
	display: inline-flex;
	color: var(--green);
	flex: none;
}

.elx-footer__trust-item strong,
.elx-footer__trust-item small {
	display: block;
}

.elx-footer__trust-item strong {
	color: #fff;
	font-size: 0.88rem;
}

.elx-footer__trust-item small {
	color: rgba(255, 255, 255, 0.72);
	margin-top: 0.15rem;
	font-size: 0.75rem;
}

@media (min-width: 800px) {
	.elx-footer__trust-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.elx-footer__trust-item {
		border-bottom: 0;
		border-right: 1px solid rgba(255, 255, 255, 0.14);
		padding: 1.1rem 1.45rem;
	}

	.elx-footer__trust-item:last-child {
		border-right: 0;
	}
}

.elx-footer__main {
	padding: 3.4rem 0 2.5rem;
}

.elx-footer__grid {
	display: grid;
	gap: 2.25rem;
	grid-template-columns: 1fr;
}

@media (min-width: 720px) {
	.elx-footer__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.elx-footer__grid {
		grid-template-columns: 1.35fr 0.84fr 1.05fr 1fr;
		gap: 2.25rem;
	}
}

.elx-footer__title {
	color: #fff;
	margin: 0 0 0.9rem;
	font-size: 0.95rem;
}

.elx-footer__tagline {
	color: rgba(255, 255, 255, 0.72);
	max-width: 34ch;
	margin: 1.1rem 0;
	font-size: 0.88rem;
}

.elx-footer__brand-cta {
	margin: 0;
}

.elx-footer-nav__list,
.elx-footer__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.5rem;
}

.elx-footer-nav__list a,
.elx-footer__list a {
	font-size: 0.86rem;
	color: rgba(255, 255, 255, 0.76);
}

.elx-footer-nav__list a:hover,
.elx-footer__list a:hover {
	color: var(--green);
}

.elx-footer__detail {
	display: flex;
	align-items: flex-start;
	gap: 0.55rem;
	margin: 0 0 0.75rem;
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.76);
}

.elx-footer__detail-icon {
	display: inline-flex;
	color: var(--green);
	flex: none;
	margin-top: 0.15rem;
}

.elx-footer__legal {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	padding: 1.1rem 0 1.4rem;
}

.elx-footer__legal-inner {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	justify-content: space-between;
	font-size: 0.8rem;
	color: rgba(255, 255, 255, 0.55);
}

.elx-footer__legal p {
	margin: 0;
}

.elx-footer__bottom {
	margin-top: var(--space-lg);
	padding-top: var(--space-md);
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	justify-content: space-between;
	font-size: 0.8125rem;
	color: rgba(255, 255, 255, 0.65);
}

.elx-footer__emergency {
	margin-top: var(--space-md);
	padding: var(--space-sm) var(--space-md);
	background: rgba(255, 255, 255, 0.08);
	border-radius: var(--radius-sm);
	font-size: 0.875rem;
}

/* -------------------------------------------------------------------------- */
/* Cookie banner                                                              */
/* -------------------------------------------------------------------------- */

.elx-cookie-banner {
	position: fixed;
	inset: auto 0 0 0;
	z-index: 9500;
	padding: var(--space-md);
	background: var(--surface);
	border-top: 1px solid var(--line);
	box-shadow: 0 -8px 32px rgba(23, 32, 51, 0.12);
	transform: translateY(100%);
	transition: transform 280ms ease;
}

.elx-cookie-banner.is-visible {
	transform: translateY(0);
}

.elx-cookie-banner__inner {
	width: min(100%, var(--max-width));
	margin-inline: auto;
	display: grid;
	gap: var(--space-md);
}

@media (min-width: 768px) {
	.elx-cookie-banner__inner {
		grid-template-columns: 1fr auto;
		align-items: end;
	}
}

.elx-cookie-banner__text {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--muted);
}

.elx-cookie-banner__text a {
	font-weight: 500;
}

.elx-cookie-banner__options {
	display: grid;
	gap: 0.5rem;
	margin-top: 0.5rem;
}

.elx-cookie-banner__option {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.65rem;
	align-items: start;
	font-size: 0.875rem;
}

.elx-cookie-banner__option input {
	margin-top: 0.15rem;
	accent-color: var(--blue);
}

.elx-cookie-banner__option strong {
	display: block;
	color: var(--ink);
}

.elx-cookie-banner__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

body.elx-cookie-banner-open {
	padding-bottom: 0;
}

/* -------------------------------------------------------------------------- */
/* Accessibility panel                                                        */
/* -------------------------------------------------------------------------- */

.elx-a11y-panel {
	position: fixed;
	right: var(--space-sm);
	bottom: var(--space-sm);
	z-index: 9400;
}

.elx-a11y-panel__toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--blue);
	color: var(--surface);
	font-size: 1.35rem;
	cursor: pointer;
	box-shadow: var(--shadow-lg);
	transition: background var(--transition), transform var(--transition);
}

.elx-a11y-panel__toggle:hover,
.elx-a11y-panel__toggle:focus-visible {
	background: var(--blue-dark);
	transform: scale(1.05);
}

.elx-a11y-panel__dialog {
	position: absolute;
	right: 0;
	bottom: calc(100% + 0.75rem);
	width: min(calc(100vw - 2rem), 18rem);
	padding: var(--space-md);
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-lg);
}

.elx-a11y-panel__dialog[hidden] {
	display: none;
}

.elx-a11y-panel__title {
	margin: 0 0 var(--space-sm);
	font-size: 1rem;
}

.elx-a11y-panel__group {
	display: grid;
	gap: 0.5rem;
	margin-bottom: var(--space-sm);
	padding-bottom: var(--space-sm);
	border-bottom: 1px solid var(--line);
}

.elx-a11y-panel__group:last-of-type {
	border-bottom: 0;
	margin-bottom: 0;
	padding-bottom: 0;
}

.elx-a11y-panel__label {
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--muted);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.elx-a11y-panel__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.elx-a11y-panel__btn {
	padding: 0.45rem 0.75rem;
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	background: var(--surface);
	font: inherit;
	font-size: 0.8125rem;
	font-weight: 500;
	cursor: pointer;
}

.elx-a11y-panel__btn:hover,
.elx-a11y-panel__btn:focus-visible {
	border-color: var(--blue);
	background: var(--blue-soft);
}

.elx-a11y-panel__btn.is-active {
	background: var(--blue);
	border-color: var(--blue);
	color: var(--surface);
}

.elx-a11y-panel__reset {
	width: 100%;
	margin-top: 0.5rem;
}

@media (min-width: 768px) {
	.elx-a11y-panel {
		bottom: var(--space-md);
		right: var(--space-md);
	}
}

/* Offset a11y toggle when cookie banner visible */

body.elx-cookie-banner-open .elx-a11y-panel {
	bottom: calc(var(--space-md) + 8rem);
}

/* -------------------------------------------------------------------------- */
/* WordPress block editor alignment helpers                                   */
/* -------------------------------------------------------------------------- */

.alignwide {
	width: min(100%, var(--max-width));
	margin-inline: auto;
}

.alignfull {
	width: 100%;
	max-width: none;
	margin-inline: 0;
}

.wp-block-group.has-background {
	border-radius: var(--radius-md);
}

/* -------------------------------------------------------------------------- */
/* Utility                                                                    */
/* -------------------------------------------------------------------------- */

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

.elx-text-center {
	text-align: center;
}

.elx-mt-0 {
	margin-top: 0;
}

.elx-mb-lg {
	margin-bottom: var(--space-lg);
}

.elx-section {
	padding-block: 4.5rem;
}

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

.elx-section--blue {
	background: var(--blue);
	color: #fff;
}

.elx-section--blue .elx-section__title,
.elx-section--blue .elx-section__intro,
.elx-section--blue .elx-section__lede,
.elx-section--blue p {
	color: #fff;
}

.elx-section--blue .elx-section__eyebrow {
	color: var(--green);
}

.elx-section__header {
	max-width: 46rem;
	margin-bottom: 2.5rem;
}

.elx-section__header--center {
	text-align: center;
	margin-inline: auto;
}

.elx-section__eyebrow {
	display: inline-block;
	margin: 0 0 0.55rem;
	font-size: 0.84rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--blue);
}

.elx-section__title {
	margin: 0 0 0.75rem;
	font-size: clamp(1.7rem, 3vw, 2.45rem);
	color: var(--blue-deep);
	letter-spacing: -0.03em;
	line-height: 1.15;
}

.elx-section__intro,
.elx-section__lede {
	margin: 0;
	color: var(--muted);
	font-size: 1.05rem;
	max-width: 54ch;
}

.elx-section__header--center .elx-section__intro {
	margin-inline: auto;
}

.elx-section__actions {
	margin-top: 1.5rem;
}

.elx-section__footer-link {
	margin: 1.75rem 0 0;
}

.elx-badge {
	display: inline-block;
	padding: 0.2rem 0.6rem;
	border-radius: 999px;
	background: var(--blue-soft);
	color: var(--blue-dark);
	font-size: 0.75rem;
	font-weight: 600;
}

.elx-disclaimer {
	padding: var(--space-sm) var(--space-md);
	background: var(--surface-muted);
	border-left: 4px solid var(--amber);
	border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
	font-size: 0.875rem;
	color: var(--muted);
}

/* -------------------------------------------------------------------------- */
/* Homepage section components                                                */
/* -------------------------------------------------------------------------- */

.elx-media-placeholder {
	display: grid;
	place-content: center;
	gap: 0.45rem;
	min-height: 100%;
	padding: 1.5rem;
	text-align: center;
	background:
		linear-gradient(145deg, rgba(0, 74, 173, 0.12), rgba(126, 217, 87, 0.18)),
		radial-gradient(circle at 30% 20%, rgba(255, 255, 255, 0.55), transparent 55%),
		var(--blue-soft);
	color: var(--blue-deep);
}

.elx-media-placeholder--tall {
	min-height: 22rem;
	border-radius: var(--radius-lg);
	border: 1px solid var(--blue-border);
	box-shadow: var(--shadow-sm);
}

.elx-media-placeholder__label {
	font-weight: 750;
	font-size: 0.95rem;
}

.elx-media-placeholder__hint {
	color: var(--muted);
	font-size: 0.88rem;
	max-width: 28ch;
	margin-inline: auto;
}

.elx-split {
	display: grid;
	gap: 2.5rem;
	align-items: center;
}

@media (min-width: 900px) {
	.elx-split {
		grid-template-columns: 1.1fr 0.9fr;
		gap: 3.5rem;
	}
}

.elx-split__copy p {
	color: var(--muted);
}

.elx-process {
	list-style: none;
	margin: 0 auto;
	padding: 0;
	display: grid;
	gap: 0;
	max-width: 56rem;
}

.elx-process__step {
	display: grid;
	grid-template-columns: 4.4rem minmax(0, 1fr);
	gap: 1.25rem;
	padding: 0 0 1.75rem;
	position: relative;
}

.elx-process__step::before {
	content: "";
	position: absolute;
	top: 3rem;
	bottom: 0;
	left: 1.45rem;
	width: 2px;
	background: var(--blue-border);
}

.elx-process__step:last-child {
	padding-bottom: 0;
}

.elx-process__step:last-child::before {
	display: none;
}

.elx-process__num {
	position: relative;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: var(--green);
	color: var(--blue-deep);
	font-size: 0.84rem;
	font-weight: 850;
}

.elx-process__title {
	margin: 0.45rem 0 0;
	color: var(--blue-deep);
	font-size: 1.24rem;
}

.elx-process__text {
	margin: 0.45rem 0 0;
	color: var(--muted);
}

.elx-difference-grid {
	display: grid;
	gap: 1.1rem;
	grid-template-columns: 1fr;
}

@media (min-width: 700px) {
	.elx-difference-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.elx-difference-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.elx-difference-card:nth-child(4),
	.elx-difference-card:nth-child(5) {
		grid-column: span 1;
	}
}

.elx-difference-card {
	padding: 1.4rem 1.35rem;
	background: #fff;
	border: 1px solid var(--blue-border);
	border-radius: var(--radius-md);
	box-shadow: 0 7px 18px rgba(9, 64, 126, 0.035);
}

.elx-difference-card__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.1rem;
	height: 2.1rem;
	padding: 0 0.45rem;
	margin-bottom: 0.85rem;
	border-radius: 999px;
	background: var(--blue-soft);
	color: var(--blue);
	font-size: 0.78rem;
	font-weight: 800;
}

.elx-difference-card__title {
	margin: 0 0 0.55rem;
	color: var(--blue-deep);
	font-size: 1.1rem;
}

.elx-difference-card p {
	margin: 0;
	color: var(--muted);
	font-size: 0.94rem;
}

.elx-audience-grid {
	display: grid;
	gap: 1.15rem;
	grid-template-columns: 1fr;
}

@media (min-width: 800px) {
	.elx-audience-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.elx-audience-card {
	display: flex;
	flex-direction: column;
	padding: 1.6rem;
	background: #fff;
	border: 1px solid var(--blue-border);
	border-radius: var(--radius-md);
	box-shadow: 0 7px 18px rgba(9, 64, 126, 0.035);
}

.elx-audience-card__title {
	margin: 0 0 0.75rem;
	color: var(--blue-deep);
	font-size: 1.25rem;
}

.elx-audience-card p {
	color: var(--muted);
}

.elx-audience-card__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.85rem;
	margin-top: auto;
	padding-top: 1.1rem;
}

.elx-visit-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-bottom: 1.35rem;
}

.elx-visit-address,
.elx-visit-contact {
	margin: 0 0 0.35rem;
	color: rgba(255, 255, 255, 0.88);
	font-size: 0.95rem;
}

.elx-visit-contact a {
	color: var(--green);
	font-weight: 700;
	text-decoration: none;
}

.elx-visit-contact a:hover,
.elx-visit-contact a:focus-visible {
	color: #fff;
}

@media (prefers-reduced-motion: no-preference) {
	.elx-hero--home .elx-hero__copy {
		animation: elx-fade-up 0.7s ease both;
	}

	.elx-hero--home .elx-hero__media {
		animation: elx-fade-up 0.85s ease 0.12s both;
	}

	.elx-trust-strip__item {
		animation: elx-fade-up 0.55s ease both;
	}

	.elx-trust-strip__item:nth-child(2) {
		animation-delay: 0.08s;
	}

	.elx-trust-strip__item:nth-child(3) {
		animation-delay: 0.16s;
	}
}

@keyframes elx-fade-up {
	from {
		opacity: 0;
		transform: translateY(14px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* -------------------------------------------------------------------------- */
/* Services hub & single service                                              */
/* -------------------------------------------------------------------------- */

.elx-hero--services {
	padding: var(--space-lg) 0 var(--space-md);
	max-width: 46rem;
}

.elx-hero--services .elx-hero__title {
	max-width: 18ch;
}

/* -------------------------------------------------------------------------- */
/* Single service detail — compact hero + sticky sidebar                      */
/* -------------------------------------------------------------------------- */

.elx-service--detail {
	padding-bottom: var(--space-lg);
}

.elx-service-hero {
	padding: 1.25rem 0 1.75rem;
	background: linear-gradient(180deg, var(--blue-soft) 0%, var(--surface) 100%);
	border-bottom: 1px solid var(--line);
}

.elx-service-hero .elx-breadcrumbs {
	margin-bottom: 0.85rem;
}

.elx-service-hero__grid {
	display: grid;
	gap: 1.5rem;
	align-items: center;
}

.elx-service-hero__title {
	margin: 0.35rem 0 0.75rem;
	font-size: clamp(1.75rem, 3.5vw, 2.45rem);
	line-height: 1.15;
	color: var(--ink);
	max-width: 22ch;
}

.elx-service-hero__intro {
	margin: 0 0 1rem;
	max-width: 40rem;
	font-size: 1.05rem;
	color: var(--muted);
}

.elx-service-hero__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem 1.25rem;
	list-style: none;
	margin: 0 0 1.15rem;
	padding: 0;
}

.elx-service-hero__facts li {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 7rem;
	padding: 0.65rem 0.85rem;
	background: var(--surface);
	border: 1px solid var(--blue-border);
	border-radius: var(--radius-sm);
}

.elx-service-hero__fact-label {
	font-size: 0.75rem;
	font-weight: 650;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--muted);
}

.elx-service-hero__fact-value {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--blue-deep);
}

.elx-service-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
}

.elx-service-hero__media {
	margin: 0;
	border-radius: var(--radius-md);
	overflow: hidden;
	background: var(--blue-soft);
	box-shadow: var(--shadow-sm);
	aspect-ratio: 4 / 3;
}

.elx-service-hero__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.elx-service-hero__placeholder {
	display: grid;
	place-items: center;
	height: 100%;
	min-height: 12rem;
	padding: 1rem;
	background:
		linear-gradient(135deg, rgba(0, 74, 173, 0.08), rgba(126, 217, 87, 0.14)),
		repeating-linear-gradient(
			-12deg,
			transparent,
			transparent 12px,
			rgba(0, 74, 173, 0.04) 12px,
			rgba(0, 74, 173, 0.04) 24px
		);
	color: var(--blue-dark);
	font-size: 0.9rem;
	font-weight: 650;
	text-align: center;
}

.elx-service-layout {
	display: grid;
	gap: 1.75rem;
	padding-top: 1.75rem;
	padding-bottom: 0.5rem;
	align-items: start;
}

.elx-service-layout__main {
	min-width: 0;
}

.elx-service-sections .elx-section {
	margin: 0 0 1.35rem;
	padding: 0;
}

.elx-service-sections .elx-section__title {
	margin: 0 0 0.55rem;
	font-size: 1.2rem;
}

.elx-service-sections .elx-prose {
	font-size: 1rem;
}

.elx-service-sections .elx-prose p {
	margin: 0 0 0.65rem;
}

.elx-service-sections .elx-prose p:last-child {
	margin-bottom: 0;
}

.elx-service-guide,
.elx-service-request {
	margin: 1.5rem 0 0;
	padding: 1.15rem 1.25rem;
	border: 1px solid var(--blue-border);
	border-radius: var(--radius-md);
	background: var(--surface-muted);
}

.elx-service-guide .elx-section__title,
.elx-service-request .elx-section__title {
	margin: 0 0 0.5rem;
	font-size: 1.15rem;
}

.elx-service-guide__summary {
	margin: 0.35rem 0 0;
	color: var(--muted);
}

.elx-service-request__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	margin: 0.85rem 0 0;
}

.elx-service-sidebar__card {
	padding: 1.25rem;
	border: 1px solid var(--blue-border);
	border-radius: var(--radius-md);
	background: var(--surface);
	box-shadow: var(--shadow-sm);
}

.elx-service-sidebar__title {
	margin: 0 0 1rem;
	font-size: 1.1rem;
	color: var(--blue-deep);
}

.elx-service-sidebar__price {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	margin: 0 0 0.85rem;
	padding-bottom: 0.85rem;
	border-bottom: 1px solid var(--line);
}

.elx-service-sidebar__price strong {
	font-size: 1.45rem;
	color: var(--blue);
}

.elx-service-sidebar__label {
	display: block;
	font-size: 0.75rem;
	font-weight: 650;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--muted);
}

.elx-service-sidebar__note,
.elx-service-sidebar__row {
	margin: 0 0 0.75rem;
	font-size: 0.95rem;
}

.elx-service-sidebar__row {
	display: grid;
	gap: 0.2rem;
}

.elx-service-sidebar__suitability {
	margin: 0.25rem 0 1rem;
	padding: 0.75rem 0.85rem;
	border-radius: var(--radius-sm);
	background: var(--blue-soft);
	font-size: 0.875rem;
	color: var(--ink);
}

.elx-service-sidebar__actions {
	display: grid;
	gap: 0.55rem;
}

.elx-button--block {
	display: inline-flex;
	justify-content: center;
	width: 100%;
	text-align: center;
}

.elx-service--detail .elx-notice {
	margin: 0 0 1.25rem;
}

@media (min-width: 900px) {
	.elx-service-hero__grid {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
		gap: 2rem;
	}

	.elx-service-layout {
		grid-template-columns: minmax(0, 1fr) 19.5rem;
		gap: 2rem;
	}

	.elx-service-sidebar {
		position: sticky;
		top: 6.5rem;
	}
}

@media (max-width: 899px) {
	.elx-service-hero {
		padding: 1rem 0 1.35rem;
	}

	.elx-service-layout {
		gap: 1.35rem;
		padding-top: 1.35rem;
	}

	.elx-service-sidebar {
		order: -1;
	}
}

.elx-notice {
	margin: 0 0 var(--space-lg);
	padding: 1.1rem 1.25rem;
	border-radius: var(--radius-md);
	border: 1px solid var(--blue-border);
	background: #fff;
}

.elx-notice--guidance {
	background: linear-gradient(180deg, #f7fbff 0%, #fff 100%);
}

.elx-notice--important {
	border-color: rgba(180, 83, 9, 0.35);
	background: linear-gradient(180deg, #fffaf3 0%, #fff 70%);
}

.elx-notice__label {
	margin: 0 0 0.4rem;
	font-weight: 750;
	color: var(--blue-deep);
}

.elx-notice--important .elx-notice__label {
	color: #9a3412;
}

.elx-notice p:last-child {
	margin-bottom: 0;
}

.elx-card--compact {
	min-height: auto;
}

.elx-grid--services-compact {
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.elx-grid--services-compact {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 960px) {
	.elx-grid--services-compact {
		grid-template-columns: repeat(3, 1fr);
	}
}

.elx-link-list--support {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.75rem;
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.elx-link-list--support {
		grid-template-columns: repeat(2, 1fr);
	}
}

.elx-link-list--support a {
	display: block;
	padding: 1rem 1.15rem;
	border: 1px solid var(--blue-border);
	border-radius: var(--radius-md);
	background: var(--surface);
	color: var(--blue-deep);
	font-weight: 650;
	text-decoration: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.elx-link-list--support a:hover,
.elx-link-list--support a:focus-visible {
	border-color: var(--blue);
	box-shadow: var(--shadow-sm);
	transform: translateY(-2px);
}

.elx-section--service-ctas .elx-section__actions,
.elx-section--related-guide {
	margin-top: var(--space-md);
}

.elx-services-hub .elx-section__header {
	max-width: 42rem;
}

/* -------------------------------------------------------------------------- */
/* Preventive Health hub                                                      */
/* -------------------------------------------------------------------------- */

.elx-package-hub-hero {
	padding: var(--space-lg) 0 var(--space-xl);
	background:
		radial-gradient(circle at 12% 18%, rgba(35, 104, 168, 0.12), transparent 42%),
		linear-gradient(180deg, #f5f9fc 0%, #ffffff 72%);
	border-bottom: 1px solid var(--line);
}

.elx-package-hub-hero__grid {
	display: grid;
	gap: 1.5rem;
	align-items: center;
}

.elx-package-hub-hero__title {
	margin: 0 0 0.85rem;
	font-family: var(--font-display);
	font-size: clamp(1.85rem, 4vw, 2.65rem);
	line-height: 1.15;
	color: var(--blue-deep);
	max-width: 18ch;
}

.elx-package-hub-hero__intro {
	margin: 0 0 1.25rem;
	max-width: 38rem;
	font-size: 1.05rem;
	line-height: 1.65;
	color: var(--ink);
}

.elx-package-hub-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
}

.elx-package-hub-hero__media {
	margin: 0;
	border-radius: var(--radius-md);
	overflow: hidden;
	background: var(--surface-muted);
	border: 1px solid var(--blue-border);
	box-shadow: var(--shadow-sm);
	aspect-ratio: 4 / 3;
}

.elx-package-hub-hero__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.elx-package-hub-hero__placeholder {
	display: grid;
	place-items: center;
	height: 100%;
	min-height: 14rem;
	color: var(--muted);
	font-size: 0.95rem;
}

.elx-packages-hub .elx-notice {
	margin: var(--space-lg) 0 0;
}

.elx-journey-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.85rem;
}

.elx-journey-card {
	padding: 1rem 1.05rem;
	border: 1px solid var(--blue-border);
	border-radius: var(--radius-md);
	background: var(--surface);
}

.elx-journey-card__step {
	display: inline-block;
	margin-bottom: 0.45rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--blue);
}

.elx-journey-card__title {
	margin: 0 0 0.35rem;
	font-size: 1.05rem;
	color: var(--blue-deep);
}

.elx-journey-card__text {
	margin: 0;
	font-size: 0.95rem;
	color: var(--muted);
	line-height: 1.55;
}

.elx-packages-hub .elx-section--package-category {
	padding-top: var(--space-lg);
}

.elx-compare__meta-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
}

.elx-compare__option.is-disabled {
	opacity: 0.55;
}

.elx-compare-page .elx-hero--compact {
	margin-bottom: var(--space-md);
}

.elx-table--compare td {
	vertical-align: top;
	font-size: 0.92rem;
	line-height: 1.45;
}

@media (min-width: 720px) {
	.elx-journey-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 900px) {
	.elx-package-hub-hero__grid {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
		gap: 2rem;
	}

	.elx-journey-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (prefers-reduced-motion: no-preference) {
	.elx-hero--services,
	.elx-hero--service,
	.elx-package-hub-hero {
		animation: elx-fade-up 0.65s ease both;
	}

	.elx-section--primary-services .elx-card,
	.elx-section--additional-services .elx-card,
	.elx-section--package-category .elx-card,
	.elx-journey-card {
		animation: elx-fade-up 0.55s ease both;
	}
}

/* -------------------------------------------------------------------------- */
/* About Us                                                                   */
/* -------------------------------------------------------------------------- */

.elx-about-hero {
	padding: var(--space-md) 0 var(--space-lg);
	background:
		radial-gradient(circle at 88% 12%, rgba(35, 104, 168, 0.1), transparent 40%),
		linear-gradient(180deg, #f5f9fc 0%, #ffffff 78%);
	border-bottom: 1px solid var(--line);
}

.elx-about-hero__title {
	margin: 0 0 0.85rem;
	font-family: var(--font-display);
	font-size: clamp(1.85rem, 4vw, 2.55rem);
	line-height: 1.18;
	color: var(--blue-deep);
	max-width: 22ch;
}

.elx-about-hero__intro {
	margin: 0 0 1.25rem;
	max-width: 42rem;
	font-size: 1.05rem;
	line-height: 1.65;
	color: var(--ink);
}

.elx-about-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
}

.elx-about-story {
	display: grid;
	gap: 1.5rem;
	align-items: center;
}

.elx-about-story__body {
	max-width: 40rem;
}

.elx-about-story__media {
	margin: 0;
	border-radius: var(--radius-md);
	overflow: hidden;
	border: 1px solid var(--blue-border);
	background: var(--surface-muted);
	box-shadow: var(--shadow-sm);
	aspect-ratio: 4 / 3;
}

.elx-about-story__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.elx-grid--team {
	grid-template-columns: 1fr;
}

.elx-card--team {
	min-height: 0;
}

.elx-card__media--team {
	height: 14rem;
	aspect-ratio: 4 / 3;
	height: auto;
}

.elx-card__media--team img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

.elx-card--team .elx-card__body {
	padding: 1.15rem 1.25rem 1.35rem;
}

.elx-card--team .elx-card__title {
	margin: 0 0 0.35rem;
	font-size: 1.15rem;
	color: var(--blue-deep);
}

.elx-card--team .elx-card__meta {
	margin: 0 0 0.25rem;
	font-weight: 600;
	color: var(--blue);
}

.elx-card__credentials {
	margin: 0 0 0.75rem;
	font-size: 0.875rem;
	color: var(--muted);
}

.elx-card__summary--bio {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.55;
	color: var(--ink);
}

.elx-card__summary--bio p {
	margin: 0 0 0.55rem;
}

.elx-card__summary--bio p:last-child {
	margin-bottom: 0;
}

.elx-values-grid {
	display: grid;
	gap: 0.85rem;
}

.elx-value-card {
	padding: 1.15rem 1.2rem;
	border: 1px solid var(--blue-border);
	border-radius: var(--radius-md);
	background: var(--surface);
}

.elx-value-card__title {
	margin: 0 0 0.4rem;
	font-size: 1.05rem;
	color: var(--blue-deep);
}

.elx-value-card p {
	margin: 0;
	color: var(--muted);
	line-height: 1.55;
	font-size: 0.95rem;
}

.elx-about .elx-section {
	padding-top: var(--space-lg);
	padding-bottom: var(--space-lg);
}

@media (min-width: 700px) {
	.elx-grid--team {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

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

@media (min-width: 960px) {
	.elx-about-story {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
		gap: 2rem;
	}

	.elx-grid--team {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (prefers-reduced-motion: no-preference) {
	.elx-about-hero {
		animation: elx-fade-up 0.65s ease both;
	}

	.elx-section--about-team .elx-card,
	.elx-section--about-difference .elx-difference-card,
	.elx-section--about-values .elx-value-card {
		animation: elx-fade-up 0.55s ease both;
	}
}

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

.elx-contact-hero {
	padding: var(--space-md) 0 var(--space-lg);
	background:
		radial-gradient(circle at 92% 8%, rgba(126, 217, 87, 0.16), transparent 36%),
		radial-gradient(circle at 12% 88%, rgba(35, 104, 168, 0.1), transparent 42%),
		linear-gradient(180deg, #f5f9fc 0%, #ffffff 78%);
	border-bottom: 1px solid var(--line);
}

.elx-contact-hero__title {
	margin: 0 0 0.85rem;
	font-family: var(--font-display);
	font-size: clamp(1.85rem, 4vw, 2.7rem);
	line-height: 1.15;
	letter-spacing: -0.03em;
	color: var(--blue-deep);
	max-width: 18ch;
}

.elx-contact-hero__intro {
	margin: 0 0 1.35rem;
	max-width: 42rem;
	font-size: 1.06rem;
	line-height: 1.65;
	color: var(--ink);
}

.elx-contact-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
}

.elx-contact-layout {
	display: grid;
	gap: 1.75rem;
	align-items: start;
}

.elx-contact-form-panel,
.elx-contact-visit {
	padding: 1.5rem 1.35rem;
	background: var(--surface);
	border: 1px solid var(--blue-border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
}

.elx-contact-form-panel .elx-section__header,
.elx-contact-visit .elx-section__header {
	margin-bottom: 1.25rem;
}

.elx-contact-form-panel .elx-section__title,
.elx-contact-visit .elx-section__title {
	font-size: clamp(1.45rem, 2.4vw, 1.9rem);
}

.elx-contact-visit__address {
	margin: 0 0 0.65rem;
	font-weight: 650;
	color: var(--ink);
	line-height: 1.55;
}

.elx-contact-visit__meta {
	margin: 0 0 0.35rem;
	color: var(--muted);
	font-size: 0.95rem;
}

.elx-contact-visit__meta strong {
	color: var(--blue-deep);
}

.elx-contact-visit__meta + .elx-contact-visit__points {
	margin-top: 0.85rem;
}

.elx-contact-visit__points {
	margin: 0 0 1.15rem;
	padding-left: 1.15rem;
	color: var(--muted);
}

.elx-contact-visit__points li + li {
	margin-top: 0.4rem;
}

.elx-contact-visit__actions {
	margin: 0 0 1.15rem;
}

.elx-map-consent {
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	background: var(--surface-muted);
}

.elx-map-consent__gate {
	display: grid;
	gap: 0.85rem;
	justify-items: start;
	padding: 1.15rem 1.2rem;
	min-height: 12rem;
	align-content: center;
}

.elx-map-consent__gate p {
	margin: 0;
	max-width: 42ch;
	font-size: 0.92rem;
	color: var(--muted);
}

.elx-map-consent__embed {
	aspect-ratio: 4 / 3;
	background: var(--surface-muted);
}

.elx-map-iframe {
	width: 100%;
	height: 100%;
	min-height: 16rem;
	border: 0;
}

.elx-contact-emergency {
	padding: 1rem 0;
	background: #fff8eb;
	border-block: 1px solid #f1ddb0;
}

.elx-contact-emergency p {
	margin: 0;
	font-size: 0.95rem;
	font-weight: 600;
	color: #6a4b12;
}

.elx-section--contact-main {
	scroll-margin-top: calc(var(--header-height) + 1rem);
}

.elx-contact .elx-section--contact-main,
.elx-contact .elx-section--contact-routes,
.elx-contact .elx-section--contact-process {
	padding-top: var(--space-lg);
	padding-bottom: var(--space-lg);
}

@media (min-width: 980px) {
	.elx-contact-layout {
		grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr);
		gap: 1.5rem;
	}
}

@media (prefers-reduced-motion: no-preference) {
	.elx-contact-hero {
		animation: elx-fade-up 0.65s ease both;
	}

	.elx-contact-form-panel,
	.elx-contact-visit {
		animation: elx-fade-up 0.55s ease both;
	}
}
