/**
 * Vitalis components.
 *
 * Styles of the markup printed by the theme itself: the shortcodes (booking
 * form, clinician directory, care navigator, fees, hours…), the announcement
 * bar, the mobile quick actions, the accessibility toolbar and the fallback
 * templates. Divi modules are styled in their Design tab, not here.
 *
 * Every colour comes from the Divi global colours through the --vitalis-*
 * tokens of style.css, so the colour schemes and the Visual Builder recolour
 * these components too.
 *
 * @package Vitalis
 */

:root,
body {
	--vitalis-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.2 4.2L19 7'/%3E%3C/svg%3E");
	--vitalis-focus: 0 0 0 4px color-mix(in srgb, var(--vitalis-primary) 18%, transparent);
}

/* =========================================================================
   1. SHARED ELEMENTS
   ========================================================================= */

.vitalis-icon {
	display: inline-block;
	flex: none;
	width: 1.25em;
	height: 1.25em;
	vertical-align: middle;
}

/* Theme controls draw their own radio buttons, checkboxes and switches:
   the native input stays in place, invisible but focusable. */
.vitalis-card-choice input,
.vitalis-choice input,
.vitalis-slot input,
.vitalis-finder__option input,
.vitalis-toggle input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
	opacity: 0;
}

/* Divi removes the bottom padding of the last paragraph of a text
   (p:not(.has-background):last-of-type): the boxed notes keep theirs. */
body.vitalis-theme p.vitalis-emergency,
body.vitalis-theme p.vitalis-slots__empty {
	padding-bottom: 16px;
}

body.vitalis-theme p.vitalis-form__note,
body.vitalis-theme p.vitalis-form__alert,
body.vitalis-theme p.vitalis-finder__urgent {
	padding-bottom: 14px;
}

/* Honeypot of the forms: never shown to people. */
.vitalis-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Lists printed by the theme start from a clean slate: Divi gives every
   list of the page content bullets and padding. */
body.vitalis-theme ul.vitalis-directory__grid,
body.vitalis-theme ul.vitalis-doc__meta,
body.vitalis-theme ul.vitalis-fees__list,
body.vitalis-theme ul.vitalis-insurance__list,
body.vitalis-theme ul.vitalis-hours__list,
body.vitalis-theme ul.vitalis-days,
body.vitalis-theme ul.vitalis-list {
	margin: 0;
	padding: 0;
	line-height: inherit;
	list-style: none;
}

body.vitalis-theme ul.vitalis-directory__grid > li,
body.vitalis-theme ul.vitalis-doc__meta > li,
body.vitalis-theme ul.vitalis-fees__list > li,
body.vitalis-theme ul.vitalis-insurance__list > li,
body.vitalis-theme ul.vitalis-hours__list > li,
body.vitalis-theme ul.vitalis-days > li,
body.vitalis-theme ul.vitalis-list > li {
	margin: 0;
	list-style: none;
}

/* Buttons printed by the shortcodes. They mirror the Button modules of the
   demo: a solid label with the arrow set in a tilted chip. */
.vitalis-button,
.vitalis-button:visited {
	--vitalis-button-bg: var(--vitalis-primary);
	--vitalis-button-fg: var(--vitalis-white);
	--vitalis-button-border: var(--vitalis-primary);
	--vitalis-chip-bg: var(--vitalis-accent);
	--vitalis-chip-fg: var(--vitalis-ink);
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	box-sizing: border-box;
	min-height: 54px;
	margin: 0;
	padding: 8px 11px 8px 24px;
	border: 1.5px solid var(--vitalis-button-border);
	border-radius: 14px;
	background: var(--vitalis-button-bg);
	box-shadow: 0 16px 30px -18px var(--vitalis-button-bg);
	color: var(--vitalis-button-fg);
	font-family: var(--vitalis-font-body);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.005em;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.35s var(--vitalis-ease), border-color 0.35s var(--vitalis-ease), color 0.35s var(--vitalis-ease), box-shadow 0.35s var(--vitalis-ease), transform 0.35s var(--vitalis-ease);
}

.vitalis-button:hover {
	--vitalis-button-bg: var(--vitalis-ink);
	--vitalis-button-border: var(--vitalis-ink);
	color: var(--vitalis-button-fg);
	transform: translateY(-2px);
}

.vitalis-button:focus-visible {
	outline: 3px solid var(--vitalis-primary);
	outline-offset: 3px;
}

.vitalis-button .vitalis-icon {
	box-sizing: border-box;
	width: 26px;
	height: 26px;
	padding: 6px;
	border-radius: 7px;
	background: var(--vitalis-chip-bg);
	color: var(--vitalis-chip-fg);
	stroke-width: 2;
	transition: transform 0.45s var(--vitalis-ease), border-radius 0.45s var(--vitalis-ease), background-color 0.35s ease, color 0.35s ease;
}

.vitalis-button .vitalis-icon-arrow {
	transform: rotate(-45deg);
}

.vitalis-button:hover .vitalis-icon,
.vitalis-button:focus-visible .vitalis-icon {
	border-radius: 50%;
}

.vitalis-button:hover .vitalis-icon-arrow,
.vitalis-button:focus-visible .vitalis-icon-arrow {
	transform: rotate(0deg);
}

/* Icon first (Back, Reset filters), or no icon at all. */
.vitalis-button:has(> .vitalis-icon:first-child) {
	padding: 8px 22px 8px 11px;
}

.vitalis-button:not(:has(> .vitalis-icon)) {
	padding: 8px 24px;
}

.vitalis-button--ghost,
.vitalis-button--ghost:visited {
	--vitalis-button-bg: transparent;
	--vitalis-button-fg: var(--vitalis-ink);
	--vitalis-button-border: var(--vitalis-line-strong);
	--vitalis-chip-bg: var(--vitalis-soft);
	--vitalis-chip-fg: var(--vitalis-ink);
	box-shadow: none;
}

.vitalis-button--ghost:hover {
	--vitalis-button-bg: transparent;
	--vitalis-button-fg: var(--vitalis-ink);
	--vitalis-button-border: var(--vitalis-ink);
	--vitalis-chip-bg: var(--vitalis-accent);
}

.vitalis-button--sm,
.vitalis-button--sm:visited {
	gap: 10px;
	min-height: 44px;
	padding: 6px 9px 6px 18px;
	border-radius: 12px;
	font-size: 14.5px;
}

.vitalis-button--sm .vitalis-icon {
	width: 24px;
	height: 24px;
	padding: 5px;
	border-radius: 6px;
}

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

/* Small status labels: availability of a clinician, video visits. */
.vitalis-badge {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 12px 7px 10px;
	border-radius: var(--vitalis-radius-pill);
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 8px 20px -12px rgba(8, 20, 43, 0.45);
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-body);
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.vitalis-badge::before {
	content: "";
	flex: none;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--vitalis-muted);
}

.vitalis-badge--ok::before {
	background: var(--vitalis-mint);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--vitalis-mint) 22%, transparent);
}

.vitalis-badge--video::before {
	display: none;
}

.vitalis-badge--video .vitalis-icon {
	width: 15px;
	height: 15px;
	color: var(--vitalis-primary);
	stroke-width: 2;
}

/* Lists filled from the services and clinicians (dynamic content). */
body.vitalis-theme ul.vitalis-list {
	display: grid;
	gap: 12px;
}

body.vitalis-theme ul.vitalis-list > li {
	position: relative;
	padding: 0 0 0 36px;
	line-height: 1.55;
}

body.vitalis-theme ul.vitalis-list > li::before {
	content: "";
	position: absolute;
	top: 0.1em;
	left: 0;
	width: 22px;
	height: 22px;
	border-radius: 7px;
	background-color: var(--vitalis-accent);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b1830' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.2 4.2L19 7'/%3E%3C/svg%3E");
	background-position: center;
	background-repeat: no-repeat;
	background-size: 13px;
}

/* What to expect: numbered steps. */
body.vitalis-theme ul.vitalis-list--expect {
	counter-reset: vitalis-step;
}

body.vitalis-theme ul.vitalis-list--expect > li {
	counter-increment: vitalis-step;
	padding-left: 46px;
}

body.vitalis-theme ul.vitalis-list--expect > li::before {
	content: counter(vitalis-step, decimal-leading-zero);
	top: -0.05em;
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 10px;
	background: var(--vitalis-primary);
	color: var(--vitalis-white);
	font-family: var(--vitalis-font-mono);
	font-size: 12px;
	font-weight: 500;
	line-height: 1;
}

/* Conditions and areas of focus: soft tags. */
body.vitalis-theme ul.vitalis-list--conditions,
body.vitalis-theme ul.vitalis-list--focus {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

body.vitalis-theme ul.vitalis-list--conditions > li,
body.vitalis-theme ul.vitalis-list--focus > li {
	padding: 8px 14px;
	border: 1px solid color-mix(in srgb, currentColor 20%, transparent);
	border-radius: var(--vitalis-radius-pill);
	font-size: 0.92em;
	font-weight: 500;
	line-height: 1.3;
}

body.vitalis-theme ul.vitalis-list--conditions > li::before,
body.vitalis-theme ul.vitalis-list--focus > li::before {
	display: none;
}

/* Education and certifications: a plus marks each line. */
body.vitalis-theme ul.vitalis-list--education > li::before,
body.vitalis-theme ul.vitalis-list--certifications > li::before {
	top: 0.32em;
	width: 14px;
	height: 14px;
	border-radius: 0;
	background: var(--vitalis-primary);
	-webkit-mask: var(--vitalis-plus) center / contain no-repeat;
	mask: var(--vitalis-plus) center / contain no-repeat;
}

body.vitalis-theme ul.vitalis-list--education > li,
body.vitalis-theme ul.vitalis-list--certifications > li {
	padding-left: 28px;
}

/* =========================================================================
   2. HEADER AND FOOTER DETAILS
   ========================================================================= */

/* Live "Open now" status: [vitalis_open_status]. */
.vitalis-open-status {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 8px;
}

.vitalis-open-status__dot {
	position: relative;
	flex: none;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--vitalis-mint);
}

.vitalis-open-status__dot::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: inherit;
	animation: vitalis-ping 2.4s var(--vitalis-ease) infinite;
}

.vitalis-open-status.is-closed .vitalis-open-status__dot {
	background: var(--vitalis-coral);
}

.vitalis-open-status.is-closed .vitalis-open-status__dot::after {
	animation: none;
}

.vitalis-open-status__label {
	font-weight: 600;
}

.vitalis-open-status__detail {
	opacity: 0.72;
}

/* Emergency line of the utility bar. */
.vitalis-sos {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.vitalis-sos::before {
	content: "";
	flex: none;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--vitalis-coral);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--vitalis-coral) 28%, transparent);
}

/* Phone number of the header, with its small label above. */
.vitalis-header-phone__label {
	display: block;
	margin-bottom: 1px;
	color: var(--vitalis-muted);
	font-family: var(--vitalis-font-mono);
	font-size: 10.5px;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.vitalis-header-phone a {
	white-space: nowrap;
}

/* Giant wordmark at the foot of the footer: it fades into the background. */
.vitalis-giant p {
	padding: 0;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.13) 8%, rgba(255, 255, 255, 0) 78%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
	white-space: nowrap;
	-webkit-user-select: none;
	user-select: none;
}

.vitalis-giant__plus {
	display: inline-block;
	margin-left: 0.02em;
	background: linear-gradient(180deg, color-mix(in srgb, var(--vitalis-accent) 50%, transparent) 8%, transparent 80%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* =========================================================================
   3. FORMS
   [vitalis_appointment_form] and [vitalis_newsletter].
   ========================================================================= */

.vitalis-form {
	--vitalis-field-bg: var(--vitalis-white);
	--vitalis-field-border: var(--vitalis-line);
	--vitalis-field-text: var(--vitalis-ink);
	--vitalis-field-placeholder: var(--vitalis-muted);
	--vitalis-form-label: var(--vitalis-ink);
	position: relative;
	margin: 0;
	color: var(--vitalis-body);
	font-family: var(--vitalis-font-body);
	font-size: 16px;
	line-height: 1.55;
}

.vitalis-form fieldset {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.vitalis-form .vitalis-field,
.vitalis-form p.vitalis-field {
	margin: 0;
	padding: 0;
}

.vitalis-form .vitalis-field > label,
.vitalis-form .vitalis-field__label {
	display: block;
	margin: 0 0 8px;
	color: var(--vitalis-form-label);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
}

.vitalis-req {
	color: var(--vitalis-coral);
}

.vitalis-optional {
	margin-left: 4px;
	color: var(--vitalis-muted);
	font-size: 13px;
	font-weight: 400;
}

.vitalis-field__hint {
	display: block;
	margin-top: 8px;
	color: var(--vitalis-muted);
	font-size: 13px;
	line-height: 1.45;
}

/* Text fields, selects and dates. */
.vitalis-form input[type="text"],
.vitalis-form input[type="email"],
.vitalis-form input[type="tel"],
.vitalis-form input[type="date"],
.vitalis-form input[type="number"],
.vitalis-form select,
.vitalis-form textarea,
.vitalis-directory__filters input[type="search"],
.vitalis-directory__filters select {
	box-sizing: border-box;
	width: 100%;
	min-height: 54px;
	margin: 0;
	padding: 14px 18px;
	border: 1.5px solid var(--vitalis-field-border, var(--vitalis-line));
	border-radius: 14px;
	background-color: var(--vitalis-field-bg, var(--vitalis-white));
	box-shadow: none;
	color: var(--vitalis-field-text, var(--vitalis-ink));
	font-family: var(--vitalis-font-body);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.4;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
}

.vitalis-form textarea {
	min-height: 118px;
	resize: vertical;
}

.vitalis-form input::placeholder,
.vitalis-form textarea::placeholder,
.vitalis-directory__filters input::placeholder {
	color: var(--vitalis-field-placeholder, var(--vitalis-muted));
	opacity: 1;
}

.vitalis-form input:hover,
.vitalis-form select:hover,
.vitalis-form textarea:hover,
.vitalis-directory__filters input:hover,
.vitalis-directory__filters select:hover {
	border-color: color-mix(in srgb, var(--vitalis-primary) 40%, var(--vitalis-line));
}

.vitalis-form input:focus,
.vitalis-form select:focus,
.vitalis-form textarea:focus,
.vitalis-directory__filters input:focus,
.vitalis-directory__filters select:focus {
	border-color: var(--vitalis-primary);
	box-shadow: var(--vitalis-focus);
	outline: none;
}

.vitalis-form input[type="date"]::-webkit-calendar-picker-indicator {
	cursor: pointer;
	opacity: 0.55;
}

.vitalis-form input[type="number"] {
	-moz-appearance: textfield;
}

.vitalis-form input[type="number"]::-webkit-inner-spin-button,
.vitalis-form input[type="number"]::-webkit-outer-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

/* Select with a drawn chevron. */
.vitalis-select {
	position: relative;
	display: block;
}

.vitalis-select select {
	padding-right: 46px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	cursor: pointer;
}

.vitalis-select::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 20px;
	width: 8px;
	height: 8px;
	margin-top: -6px;
	border-right: 2px solid var(--vitalis-field-text, var(--vitalis-ink));
	border-bottom: 2px solid var(--vitalis-field-text, var(--vitalis-ink));
	opacity: 0.7;
	pointer-events: none;
	transform: rotate(45deg);
}

/* Checkboxes. */
.vitalis-form input[type="checkbox"] {
	display: grid;
	flex: none;
	place-content: center;
	box-sizing: border-box;
	width: 22px;
	height: 22px;
	margin: 0;
	border: 1.5px solid var(--vitalis-line-strong);
	border-radius: 7px;
	background: var(--vitalis-white);
	color: var(--vitalis-white);
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.vitalis-form input[type="checkbox"]::before {
	content: "";
	width: 13px;
	height: 13px;
	background-color: currentColor;
	-webkit-mask: var(--vitalis-check) center / contain no-repeat;
	mask: var(--vitalis-check) center / contain no-repeat;
	transform: scale(0);
	transition: transform 0.25s var(--vitalis-ease);
}

.vitalis-form input[type="checkbox"]:checked {
	border-color: var(--vitalis-primary);
	background: var(--vitalis-primary);
}

.vitalis-form input[type="checkbox"]:checked::before {
	transform: scale(1);
}

.vitalis-form input[type="checkbox"]:focus-visible {
	box-shadow: var(--vitalis-focus);
	outline: none;
}

/* Invalid fields. */
.vitalis-form .is-invalid,
.vitalis-form .is-invalid:focus,
.vitalis-form .is-invalid:hover {
	border-color: var(--vitalis-coral) !important;
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--vitalis-coral) 16%, transparent) !important;
}

/* Step indicator, shown once the script has split the form. */
.vitalis-steps {
	display: none;
}

.vitalis-form.is-steps .vitalis-steps {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0 0 30px;
}

.vitalis-steps__label {
	flex: none;
	color: var(--vitalis-primary);
	font-family: var(--vitalis-font-mono);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.vitalis-steps__track {
	position: relative;
	flex: 1 1 auto;
	height: 6px;
	overflow: hidden;
	border-radius: 99px;
	background: var(--vitalis-soft);
}

.vitalis-steps__bar {
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: var(--vitalis-primary);
	transform: scaleX(0.34);
	transform-origin: 0 50%;
	transition: transform 0.6s var(--vitalis-ease);
}

/* Groups of the form. */
.vitalis-form__group + .vitalis-form__group {
	margin-top: 44px;
}

.vitalis-form.is-steps .vitalis-form__group + .vitalis-form__group {
	margin-top: 0;
}

.vitalis-form__group[hidden] {
	display: none;
}

.vitalis-form.is-steps .vitalis-form__group:not([hidden]) {
	animation: vitalis-rise 0.55s var(--vitalis-ease) both;
}

.vitalis-form__group > * + * {
	margin-top: 22px;
}

.vitalis-form__legend {
	display: flex;
	align-items: center;
	gap: 14px;
	width: 100%;
	margin: 0;
	padding: 0;
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-heading);
	font-size: 26px;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.03em;
}

.vitalis-form__number {
	display: inline-grid;
	flex: none;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: var(--vitalis-ink);
	color: var(--vitalis-accent);
	font-family: var(--vitalis-font-mono);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0;
}

.vitalis-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px 16px;
}

.vitalis-form__grid > .vitalis-field--wide {
	grid-column: 1 / -1;
}

.vitalis-form__grid--when {
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	align-items: start;
}

/* Visit type cards: in clinic or by video. */
.vitalis-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	gap: 12px;
}

.vitalis-card-choice {
	position: relative;
	display: block;
	cursor: pointer;
}

.vitalis-card-choice__body {
	position: relative;
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr);
	align-items: center;
	column-gap: 14px;
	row-gap: 2px;
	box-sizing: border-box;
	height: 100%;
	padding: 16px 46px 16px 16px;
	border: 1.5px solid var(--vitalis-line);
	border-radius: 18px;
	background: var(--vitalis-white);
	transition: border-color 0.25s ease, background-color 0.25s ease, box-shadow 0.35s var(--vitalis-ease);
}

.vitalis-card-choice__body .vitalis-icon {
	grid-row: span 2;
	box-sizing: border-box;
	width: 44px;
	height: 44px;
	padding: 11px;
	border-radius: 13px;
	background: var(--vitalis-soft);
	color: var(--vitalis-primary);
	transition: background-color 0.25s ease, color 0.25s ease;
}

.vitalis-card-choice__body strong {
	color: var(--vitalis-ink);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.25;
}

.vitalis-card-choice__body > span {
	color: var(--vitalis-muted);
	font-size: 13.5px;
	line-height: 1.4;
}

.vitalis-card-choice__body::after {
	content: "";
	position: absolute;
	top: 16px;
	right: 16px;
	box-sizing: border-box;
	width: 20px;
	height: 20px;
	border: 1.5px solid var(--vitalis-line-strong);
	border-radius: 50%;
	background: var(--vitalis-white);
	transition: border 0.25s var(--vitalis-ease);
}

.vitalis-card-choice:hover .vitalis-card-choice__body {
	border-color: color-mix(in srgb, var(--vitalis-primary) 45%, var(--vitalis-line));
}

.vitalis-card-choice input:checked + .vitalis-card-choice__body {
	border-color: var(--vitalis-primary);
	background: color-mix(in srgb, var(--vitalis-primary) 5%, var(--vitalis-white));
	box-shadow: 0 18px 34px -26px var(--vitalis-primary);
}

.vitalis-card-choice input:checked + .vitalis-card-choice__body .vitalis-icon {
	background: var(--vitalis-primary);
	color: var(--vitalis-white);
}

.vitalis-card-choice input:checked + .vitalis-card-choice__body::after {
	border: 6px solid var(--vitalis-primary);
}

.vitalis-card-choice input:focus-visible + .vitalis-card-choice__body {
	outline: 3px solid var(--vitalis-primary);
	outline-offset: 2px;
}

.vitalis-card-choice input:disabled + .vitalis-card-choice__body {
	opacity: 0.45;
	cursor: not-allowed;
}

/* Pill choices: new or returning patient, BMI units. */
.vitalis-choices,
.vitalis-bmi__units {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.vitalis-choice {
	position: relative;
	display: inline-flex;
	cursor: pointer;
}

.vitalis-choice span {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	box-sizing: border-box;
	min-height: 46px;
	padding: 10px 18px 10px 14px;
	border: 1.5px solid var(--vitalis-line);
	border-radius: var(--vitalis-radius-pill);
	background: var(--vitalis-white);
	color: var(--vitalis-ink);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.vitalis-choice span::before {
	content: "";
	flex: none;
	box-sizing: border-box;
	width: 16px;
	height: 16px;
	border: 1.5px solid var(--vitalis-line-strong);
	border-radius: 50%;
	transition: border 0.25s var(--vitalis-ease);
}

.vitalis-choice:hover span {
	border-color: color-mix(in srgb, var(--vitalis-ink) 40%, var(--vitalis-line));
}

.vitalis-choice input:checked + span {
	border-color: var(--vitalis-ink);
	background: var(--vitalis-ink);
	color: var(--vitalis-white);
}

.vitalis-choice input:checked + span::before {
	border: 5px solid var(--vitalis-accent);
}

.vitalis-choice input:focus-visible + span {
	outline: 3px solid var(--vitalis-primary);
	outline-offset: 2px;
}

/* Time slots, built by the script from the opening hours of the day. */
.vitalis-slots.is-live {
	display: grid;
	gap: 16px;
}

.vitalis-slots__period {
	display: block;
	margin: 0 0 8px;
	color: var(--vitalis-muted);
	font-family: var(--vitalis-font-mono);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.vitalis-slots__list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.vitalis-slot {
	position: relative;
	display: inline-flex;
	cursor: pointer;
}

.vitalis-slot span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-width: 92px;
	min-height: 42px;
	padding: 8px 12px;
	border: 1.5px solid var(--vitalis-line);
	border-radius: 12px;
	background: var(--vitalis-white);
	color: var(--vitalis-ink);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.25s var(--vitalis-ease);
}

.vitalis-slot:hover span {
	border-color: var(--vitalis-primary);
	transform: translateY(-1px);
}

.vitalis-slot input:checked + span {
	border-color: var(--vitalis-primary);
	background: var(--vitalis-primary);
	box-shadow: 0 12px 22px -14px var(--vitalis-primary);
	color: var(--vitalis-white);
}

.vitalis-slot input:focus-visible + span {
	outline: 3px solid var(--vitalis-primary);
	outline-offset: 2px;
}

.vitalis-slot--any span {
	border-style: dashed;
}

.vitalis-slots__empty {
	margin: 0;
	padding: 16px 18px;
	border: 1.5px dashed var(--vitalis-line-strong);
	border-radius: 14px;
	color: var(--vitalis-muted);
	font-size: 14px;
	line-height: 1.5;
}

.vitalis-slots.is-invalid .vitalis-slots__empty,
.vitalis-slots.is-invalid .vitalis-slot span {
	border-color: var(--vitalis-coral);
}

/* Notes inside the form. */
.vitalis-form__note,
.vitalis-form__alert,
.vitalis-form__privacy {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 0;
	padding: 0;
	font-size: 14px;
	line-height: 1.5;
}

.vitalis-form__note .vitalis-icon,
.vitalis-form__alert .vitalis-icon,
.vitalis-form__privacy .vitalis-icon {
	width: 20px;
	height: 20px;
}

.vitalis-form__note {
	padding: 14px 16px;
	border-radius: 14px;
	background: var(--vitalis-soft);
	color: var(--vitalis-ink);
}

.vitalis-form__note .vitalis-icon {
	color: var(--vitalis-primary);
}

.vitalis-form__alert {
	padding: 14px 16px;
	border: 1px solid color-mix(in srgb, var(--vitalis-coral) 30%, transparent);
	border-radius: 14px;
	background: color-mix(in srgb, var(--vitalis-coral) 7%, var(--vitalis-white));
	color: var(--vitalis-ink);
}

.vitalis-form__alert .vitalis-icon {
	color: var(--vitalis-coral);
}

.vitalis-form__alert a {
	color: var(--vitalis-coral);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.vitalis-form__privacy {
	margin-top: 24px;
	color: var(--vitalis-muted);
	font-size: 13px;
}

.vitalis-form__privacy .vitalis-icon {
	width: 18px;
	height: 18px;
}

/* Consent checkboxes. */
.vitalis-consent,
.vitalis-form p.vitalis-consent {
	margin: 0;
	padding: 0;
}

.vitalis-consent label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	color: var(--vitalis-body);
	font-size: 14px;
	line-height: 1.5;
	cursor: pointer;
}

.vitalis-consent a {
	color: var(--vitalis-primary);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.vitalis-form .vitalis-consent + .vitalis-consent {
	margin-top: 12px;
}

.vitalis-consent--optional label {
	color: var(--vitalis-muted);
}

/* Rhythm of a step. Fields, notes, alerts and consents reset their own
   margins: inside a group they keep the gap of the other blocks, and the two
   consents stay together. */
.vitalis-form .vitalis-form__group > * + .vitalis-field,
.vitalis-form .vitalis-form__group > * + .vitalis-form__note,
.vitalis-form .vitalis-form__group > * + .vitalis-form__alert,
.vitalis-form .vitalis-form__group > * + p.vitalis-consent {
	margin-top: 22px;
}

.vitalis-form .vitalis-form__group > p.vitalis-consent + p.vitalis-consent {
	margin-top: 12px;
}

/* Step buttons: hidden until the script splits the form. */
.vitalis-form__nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 12px;
}

.vitalis-form .vitalis-form__nav {
	margin-top: 30px;
}

.vitalis-form__nav:has([data-step-back]) {
	justify-content: space-between;
}

.vitalis-form:not(.is-steps) [data-step-next],
.vitalis-form:not(.is-steps) [data-step-back],
.vitalis-form:not(.is-steps) .vitalis-form__nav:not(.vitalis-form__nav--submit) {
	display: none;
}

.vitalis-form__status {
	margin-top: 14px;
	color: var(--vitalis-coral);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.45;
}

.vitalis-form__status:empty {
	display: none;
}

.vitalis-form.is-busy [type="submit"] {
	opacity: 0.7;
	pointer-events: none;
}

/* Panel shown once a form has been sent. */
.vitalis-form-success {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	padding: 48px 32px;
	border-radius: 26px;
	background: var(--vitalis-soft);
	color: var(--vitalis-ink);
	text-align: center;
	animation: vitalis-rise 0.6s var(--vitalis-ease) both;
}

.vitalis-form-success__icon {
	display: grid;
	place-items: center;
	width: 72px;
	height: 72px;
	border-radius: 22px;
	background: var(--vitalis-accent);
	color: var(--vitalis-ink);
	transform: rotate(-8deg);
}

.vitalis-form-success__icon .vitalis-icon {
	width: 34px;
	height: 34px;
	stroke-width: 2.2;
}

.vitalis-form-success p {
	max-width: 460px;
	margin: 0;
	padding: 0;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.5;
}

.vitalis-form-success--dark {
	padding: 32px 24px;
	background: rgba(255, 255, 255, 0.06);
	color: var(--vitalis-white);
}

.vitalis-form-success--dark p {
	font-size: 16px;
}

/* Newsletter. */
.vitalis-newsletter__fields {
	display: flex;
	align-items: stretch;
	gap: 10px;
}

.vitalis-newsletter__fields .vitalis-field {
	flex: 1 1 auto;
	min-width: 0;
}

.vitalis-newsletter__fields .vitalis-button {
	flex: none;
}

.vitalis-newsletter--stacked .vitalis-newsletter__fields {
	flex-direction: column;
}

.vitalis-newsletter--stacked .vitalis-newsletter__fields .vitalis-button {
	justify-content: space-between;
	width: 100%;
}

.vitalis-form .vitalis-newsletter__note {
	margin: 12px 0 0;
	padding: 0;
	color: var(--vitalis-muted);
	font-size: 13px;
	line-height: 1.5;
}

.vitalis-newsletter__note a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.vitalis-newsletter--dark {
	--vitalis-field-bg: rgba(255, 255, 255, 0.06);
	--vitalis-field-border: rgba(255, 255, 255, 0.16);
	--vitalis-field-text: var(--vitalis-white);
	--vitalis-field-placeholder: rgba(255, 255, 255, 0.55);
}

.vitalis-newsletter--dark input:hover {
	border-color: rgba(255, 255, 255, 0.32);
}

.vitalis-newsletter--dark input:focus {
	border-color: var(--vitalis-accent);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--vitalis-accent) 18%, transparent);
}

.vitalis-form.vitalis-newsletter--dark .vitalis-newsletter__note {
	color: rgba(255, 255, 255, 0.56);
}

.vitalis-newsletter--dark .vitalis-newsletter__note a:hover {
	color: var(--vitalis-accent);
}

.vitalis-newsletter--dark .vitalis-button {
	--vitalis-button-bg: var(--vitalis-accent);
	--vitalis-button-border: var(--vitalis-accent);
	--vitalis-button-fg: var(--vitalis-ink);
	--vitalis-chip-bg: var(--vitalis-ink);
	--vitalis-chip-fg: var(--vitalis-accent);
	box-shadow: none;
}

.vitalis-newsletter--dark .vitalis-button:hover {
	--vitalis-button-bg: var(--vitalis-white);
	--vitalis-button-border: var(--vitalis-white);
	--vitalis-button-fg: var(--vitalis-ink);
}

.vitalis-newsletter--dark .vitalis-form__status {
	color: #ffb4a6;
}

/* =========================================================================
   4. QUICK BOOKING BAR
   [vitalis_quick_book]
   ========================================================================= */

.vitalis-quickbook {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
	align-items: center;
	margin: 0;
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-body);
}

.vitalis-quickbook__field {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
	padding: 6px 22px;
	border-left: 1px solid var(--vitalis-line);
	cursor: pointer;
}

.vitalis-quickbook__field:first-child {
	padding-left: 6px;
	border-left: 0;
}

.vitalis-quickbook__label {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--vitalis-muted);
	font-family: var(--vitalis-font-mono);
	font-size: 11px;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.vitalis-quickbook__label .vitalis-icon {
	width: 16px;
	height: 16px;
	color: var(--vitalis-primary);
	stroke-width: 2;
}

.vitalis-quickbook select,
.vitalis-quickbook input[type="date"] {
	box-sizing: border-box;
	width: 100%;
	height: 32px;
	margin: 0;
	padding: 0 28px 0 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: inherit;
	font-family: var(--vitalis-font-body);
	font-size: 17px;
	font-weight: 600;
	line-height: 32px;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

.vitalis-quickbook input[type="date"] {
	padding-right: 0;
}

.vitalis-quickbook input[type="date"]::-webkit-calendar-picker-indicator {
	cursor: pointer;
	opacity: 0.55;
}

.vitalis-quickbook select:focus,
.vitalis-quickbook input[type="date"]:focus {
	outline: none;
}

.vitalis-quickbook__field:focus-within .vitalis-quickbook__label {
	color: var(--vitalis-primary);
}

.vitalis-quickbook .vitalis-select::after {
	right: 6px;
	border-color: currentColor;
}

.vitalis-quickbook .vitalis-button {
	margin-left: 14px;
	white-space: nowrap;
}

.vitalis-quickbook--dark {
	color: var(--vitalis-white);
}

.vitalis-quickbook--dark .vitalis-quickbook__field {
	border-color: rgba(255, 255, 255, 0.14);
}

.vitalis-quickbook--dark .vitalis-quickbook__label {
	color: rgba(255, 255, 255, 0.6);
}

.vitalis-quickbook--dark .vitalis-quickbook__label .vitalis-icon {
	color: var(--vitalis-accent);
}

.vitalis-quickbook--dark select option {
	color: var(--vitalis-ink);
}

.vitalis-quickbook--dark input[type="date"] {
	color-scheme: dark;
}

/* =========================================================================
   5. CLINICIAN DIRECTORY
   [vitalis_doctors]
   ========================================================================= */

.vitalis-directory {
	color: var(--vitalis-body);
	font-family: var(--vitalis-font-body);
	font-size: 16px;
	line-height: 1.5;
}

.vitalis-directory__filters {
	display: grid;
	gap: 18px;
	margin: 0 0 34px;
}

.vitalis-directory__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 18px;
}

.vitalis-directory__search,
.vitalis-directory__language {
	position: relative;
	display: block;
	margin: 0;
}

.vitalis-directory__search {
	flex: 1 1 320px;
}

.vitalis-directory__language {
	flex: 0 1 230px;
}

.vitalis-directory__search .vitalis-icon,
.vitalis-directory__language .vitalis-icon {
	position: absolute;
	top: 50%;
	left: 18px;
	z-index: 1;
	width: 20px;
	height: 20px;
	margin-top: -10px;
	color: var(--vitalis-muted);
	pointer-events: none;
}

.vitalis-directory__filters input[type="search"],
.vitalis-directory__filters select {
	min-height: 56px;
	padding-left: 50px;
	border-radius: 16px;
}

.vitalis-directory__filters select {
	padding-right: 44px;
	background-image: linear-gradient(45deg, transparent 50%, var(--vitalis-ink) 50%), linear-gradient(135deg, var(--vitalis-ink) 50%, transparent 50%);
	background-position: calc(100% - 25px) 50%, calc(100% - 20px) 50%;
	background-repeat: no-repeat;
	background-size: 5px 5px, 5px 5px;
	cursor: pointer;
}

.vitalis-directory__filters input[type="search"]::-webkit-search-cancel-button {
	cursor: pointer;
}

/* Open lists of the selects (booking form, quick booking bar, directory).
   Browsers that support customisable selects draw them like the rest of the
   theme; the others keep their native list. This block comes after the
   three components: it must win over their appearance: none. */
@supports (appearance: base-select) {
	.vitalis-form select,
	.vitalis-quickbook select,
	.vitalis-directory__filters select,
	.vitalis-form select::picker(select),
	.vitalis-quickbook select::picker(select),
	.vitalis-directory__filters select::picker(select) {
		appearance: base-select;
	}

	/* The theme draws its own chevron. */
	.vitalis-form select::picker-icon,
	.vitalis-quickbook select::picker-icon,
	.vitalis-directory__filters select::picker-icon {
		display: none;
	}

	.vitalis-form select::picker(select),
	.vitalis-quickbook select::picker(select),
	.vitalis-directory__filters select::picker(select) {
		box-sizing: border-box;
		/* At least as wide as its field, like a native list. */
		min-width: max(240px, anchor-size(width));
		max-height: min(380px, 60vh);
		margin: 8px 0;
		padding: 6px;
		border: 1px solid var(--vitalis-line);
		border-top: 3px solid var(--vitalis-primary);
		border-radius: 18px;
		background: var(--vitalis-white);
		box-shadow: 0 30px 60px -28px rgba(8, 20, 43, 0.42), 0 2px 8px rgba(8, 20, 43, 0.05);
		color: var(--vitalis-ink);
		font-family: var(--vitalis-font-body);
		overflow-y: auto;
		scrollbar-width: thin;
	}

	.vitalis-form select option,
	.vitalis-quickbook select option,
	.vitalis-directory__filters select option {
		display: flex;
		align-items: center;
		gap: 10px;
		padding: 10px 12px;
		border-radius: 11px;
		color: var(--vitalis-ink);
		font-family: var(--vitalis-font-body);
		font-size: 15px;
		font-weight: 500;
		line-height: 1.3;
		letter-spacing: normal;
		text-transform: none;
		cursor: pointer;
		transition: background-color 0.2s ease, color 0.2s ease;
	}

	.vitalis-form select option:hover,
	.vitalis-form select option:focus-visible,
	.vitalis-quickbook select option:hover,
	.vitalis-quickbook select option:focus-visible,
	.vitalis-directory__filters select option:hover,
	.vitalis-directory__filters select option:focus-visible {
		background: var(--vitalis-soft);
		outline: none;
	}

	.vitalis-form select option:checked,
	.vitalis-quickbook select option:checked,
	.vitalis-directory__filters select option:checked {
		background: color-mix(in srgb, var(--vitalis-primary) 9%, var(--vitalis-white));
		color: var(--vitalis-primary);
		font-weight: 600;
	}

	/* Options filtered out by the script stay out of the list. */
	.vitalis-form select option[hidden],
	.vitalis-form select optgroup[hidden],
	.vitalis-quickbook select option[hidden],
	.vitalis-directory__filters select option[hidden] {
		display: none;
	}

	/* The check mark of the chosen option sits at the end of the line. */
	.vitalis-form select option::checkmark,
	.vitalis-quickbook select option::checkmark,
	.vitalis-directory__filters select option::checkmark {
		order: 1;
		margin-left: auto;
		color: var(--vitalis-primary);
	}

	/* Specialty headings of the service list. */
	.vitalis-form select optgroup {
		padding: 10px 0 2px;
		color: var(--vitalis-muted);
		font-family: var(--vitalis-font-mono);
		font-size: 11px;
		font-weight: 500;
		letter-spacing: 0.1em;
		text-transform: uppercase;
	}
}

/* Switches. */
.vitalis-toggle {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--vitalis-ink);
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	-webkit-user-select: none;
	user-select: none;
}

.vitalis-toggle__track {
	position: relative;
	flex: none;
	width: 44px;
	height: 26px;
	border-radius: 99px;
	background: var(--vitalis-line);
	transition: background-color 0.3s var(--vitalis-ease);
}

.vitalis-toggle__track::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--vitalis-white);
	box-shadow: 0 2px 6px rgba(8, 20, 43, 0.22);
	transition: transform 0.35s var(--vitalis-ease);
}

.vitalis-toggle input:checked + .vitalis-toggle__track {
	background: var(--vitalis-primary);
}

.vitalis-toggle input:checked + .vitalis-toggle__track::after {
	transform: translateX(18px);
}

.vitalis-toggle input:focus-visible + .vitalis-toggle__track {
	outline: 3px solid var(--vitalis-primary);
	outline-offset: 2px;
}

/* Specialty chips. */
.vitalis-directory__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.vitalis-chip-button {
	margin: 0;
	padding: 10px 16px;
	border: 1.5px solid var(--vitalis-line);
	border-radius: var(--vitalis-radius-pill);
	background: var(--vitalis-white);
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.vitalis-chip-button:hover {
	border-color: var(--vitalis-ink);
}

.vitalis-chip-button[aria-pressed="true"] {
	border-color: var(--vitalis-ink);
	background: var(--vitalis-ink);
	color: var(--vitalis-white);
}

.vitalis-chip-button:focus-visible {
	outline: 3px solid var(--vitalis-primary);
	outline-offset: 2px;
}

.vitalis-directory .vitalis-directory__count {
	margin: 0;
	padding: 0;
	color: var(--vitalis-muted);
	font-family: var(--vitalis-font-mono);
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.vitalis-directory__count:empty {
	display: none;
}

/* Grid of clinician cards. */
body.vitalis-theme ul.vitalis-directory__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px 24px;
}

body.vitalis-theme ul.vitalis-directory__grid--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.vitalis-theme ul.vitalis-directory__grid--4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px 20px;
}

body.vitalis-theme ul.vitalis-directory__grid > li.vitalis-doc {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--vitalis-line);
	border-radius: 26px;
	background: var(--vitalis-white);
	transition: transform 0.5s var(--vitalis-ease), box-shadow 0.5s var(--vitalis-ease), border-color 0.3s ease;
}

body.vitalis-theme ul.vitalis-directory__grid > li.vitalis-doc[hidden] {
	display: none;
}

.vitalis-doc:hover {
	border-color: transparent;
	box-shadow: var(--vitalis-shadow);
	transform: translateY(-6px);
}

.vitalis-doc__media {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1.08;
	overflow: hidden;
	background: var(--vitalis-soft);
}

.vitalis-doc__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	transition: transform 1.1s var(--vitalis-ease);
}

.vitalis-doc:hover .vitalis-doc__media img {
	transform: scale(1.05);
}

.vitalis-doc__badges {
	position: absolute;
	top: 14px;
	left: 14px;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.vitalis-doc__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 22px 24px 24px;
}

.vitalis-doc .vitalis-doc__specialty {
	margin: 0 0 8px;
	padding: 0;
	color: var(--vitalis-primary);
	font-family: var(--vitalis-font-mono);
	font-size: 11.5px;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.vitalis-doc .vitalis-doc__name {
	margin: 0 0 4px;
	padding: 0;
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-heading);
	font-size: 23px;
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -0.03em;
}

.vitalis-doc .vitalis-doc__name a {
	color: inherit;
	text-decoration: none;
}

.vitalis-doc .vitalis-doc__name a:hover {
	color: var(--vitalis-primary);
}

.vitalis-doc .vitalis-doc__role {
	margin: 0 0 16px;
	padding: 0;
	color: var(--vitalis-muted);
	font-size: 14.5px;
	line-height: 1.4;
}

body.vitalis-theme ul.vitalis-doc__meta {
	display: grid;
	gap: 8px;
	margin: 0 0 22px;
	padding: 16px 0 0;
	border-top: 1px dashed var(--vitalis-line);
}

body.vitalis-theme ul.vitalis-doc__meta > li {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--vitalis-body);
	font-size: 14px;
	line-height: 1.35;
}

.vitalis-doc__meta .vitalis-icon {
	width: 17px;
	height: 17px;
	color: var(--vitalis-primary);
}

.vitalis-doc__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
}

.vitalis-doc__profile {
	color: var(--vitalis-ink);
	font-size: 14.5px;
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, currentColor 30%, transparent);
	text-underline-offset: 5px;
	transition: color 0.25s ease, text-decoration-color 0.25s ease;
}

.vitalis-doc__profile:hover {
	color: var(--vitalis-primary);
	text-decoration-color: currentColor;
}

.vitalis-directory__empty {
	display: grid;
	justify-items: center;
	gap: 16px;
	padding: 52px 24px;
	border: 1.5px dashed var(--vitalis-line-strong);
	border-radius: 26px;
	text-align: center;
}

.vitalis-directory__empty[hidden] {
	display: none;
}

.vitalis-directory__empty p {
	margin: 0;
	padding: 0;
	color: var(--vitalis-ink);
	font-size: 17px;
	font-weight: 600;
}

/* =========================================================================
   6. CARE NAVIGATOR
   [vitalis_care_finder]
   ========================================================================= */

.vitalis-finder {
	position: relative;
	color: var(--vitalis-body);
	font-family: var(--vitalis-font-body);
	font-size: 16px;
	line-height: 1.55;
}

.vitalis-finder__progress {
	height: 6px;
	margin: 0 0 28px;
	overflow: hidden;
	border-radius: 99px;
	background: var(--vitalis-soft);
}

.vitalis-finder__bar {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--vitalis-primary);
	transform: scaleX(0.06);
	transform-origin: 0 50%;
	transition: transform 0.6s var(--vitalis-ease);
}

.vitalis-finder__form {
	margin: 0;
}

.vitalis-finder__form[hidden],
.vitalis-finder__step[hidden],
.vitalis-finder__result[hidden],
.vitalis-finder__doctor[hidden],
.vitalis-finder__urgent[hidden],
.vitalis-finder__media[hidden] {
	display: none;
}

.vitalis-finder__step {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
	animation: vitalis-rise 0.5s var(--vitalis-ease) both;
}

.vitalis-finder__legend {
	display: block;
	width: 100%;
	margin: 0 0 22px;
	padding: 0;
}

.vitalis-finder__count {
	display: block;
	margin-bottom: 8px;
	color: var(--vitalis-primary);
	font-family: var(--vitalis-font-mono);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.vitalis-finder__question {
	display: block;
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-heading);
	font-size: 30px;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.03em;
}

.vitalis-finder__options {
	display: grid;
	gap: 10px;
}

.vitalis-finder__options--grid {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr));
}

.vitalis-finder__option {
	position: relative;
	display: block;
	cursor: pointer;
}

.vitalis-finder__option span {
	display: flex;
	align-items: center;
	gap: 12px;
	box-sizing: border-box;
	height: 100%;
	min-height: 56px;
	padding: 14px 16px;
	border: 1.5px solid var(--vitalis-line);
	border-radius: 16px;
	background: var(--vitalis-white);
	color: var(--vitalis-ink);
	font-size: 15.5px;
	font-weight: 600;
	line-height: 1.3;
	transition: border-color 0.25s ease, background-color 0.25s ease, transform 0.3s var(--vitalis-ease);
}

.vitalis-finder__option span::before {
	content: "";
	flex: none;
	box-sizing: border-box;
	width: 22px;
	height: 22px;
	border: 1.5px solid var(--vitalis-line-strong);
	border-radius: 7px;
	background-color: var(--vitalis-white);
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.vitalis-finder__option:hover span {
	border-color: color-mix(in srgb, var(--vitalis-primary) 50%, var(--vitalis-line));
	transform: translateY(-1px);
}

.vitalis-finder__option input:checked + span {
	border-color: var(--vitalis-primary);
	background: color-mix(in srgb, var(--vitalis-primary) 6%, var(--vitalis-white));
}

.vitalis-finder__option input:checked + span::before {
	border-color: var(--vitalis-primary);
	background: var(--vitalis-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.2 4.2L19 7'/%3E%3C/svg%3E") center / 13px no-repeat;
}

.vitalis-finder__option input:focus-visible + span {
	outline: 3px solid var(--vitalis-primary);
	outline-offset: 2px;
}

.vitalis-finder__nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 12px;
	margin-top: 26px;
}

.vitalis-finder__nav:has(.vitalis-finder__back) {
	justify-content: space-between;
}

.vitalis-finder__back,
.vitalis-finder__restart {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 10px 2px;
	border: 0;
	background: none;
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-body);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: color 0.25s ease;
}

.vitalis-finder__back:hover,
.vitalis-finder__restart:hover {
	color: var(--vitalis-primary);
}

.vitalis-finder__back .vitalis-icon,
.vitalis-finder__restart .vitalis-icon {
	width: 18px;
	height: 18px;
}

/* Suggestion. */
.vitalis-finder__result {
	animation: vitalis-rise 0.6s var(--vitalis-ease) both;
}

.vitalis-finder .vitalis-finder__eyebrow {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 16px;
	padding: 0;
	color: var(--vitalis-primary);
	font-family: var(--vitalis-font-mono);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.vitalis-finder__eyebrow::before {
	content: "";
	width: 12px;
	height: 12px;
	background-color: currentColor;
	-webkit-mask: var(--vitalis-plus) center / contain no-repeat;
	mask: var(--vitalis-plus) center / contain no-repeat;
}

.vitalis-finder__match {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	align-items: center;
	gap: 24px;
}

.vitalis-finder__match:has(.vitalis-finder__media[hidden]) {
	grid-template-columns: minmax(0, 1fr);
}

.vitalis-finder__media {
	aspect-ratio: 4 / 3.6;
	overflow: hidden;
	border-radius: 20px;
	background: var(--vitalis-soft);
}

.vitalis-finder__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.vitalis-finder .vitalis-finder__specialty {
	margin: 0 0 8px;
	padding: 0;
	color: var(--vitalis-muted);
	font-family: var(--vitalis-font-mono);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.vitalis-finder .vitalis-finder__title {
	margin: 0 0 10px;
	padding: 0;
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-heading);
	font-size: 28px;
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -0.03em;
}

.vitalis-finder .vitalis-finder__text {
	margin: 0 0 10px;
	padding: 0;
	font-size: 15.5px;
	line-height: 1.55;
}

.vitalis-finder .vitalis-finder__meta {
	margin: 0 0 20px;
	padding: 0;
	color: var(--vitalis-muted);
	font-size: 13.5px;
	font-weight: 500;
}

.vitalis-finder__meta:empty {
	display: none;
}

.vitalis-finder__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.vitalis-finder__doctor {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 20px;
	padding: 12px 14px 12px 12px;
	border-radius: 18px;
	background: var(--vitalis-soft);
	color: var(--vitalis-ink);
	text-decoration: none;
	transition: background-color 0.3s ease;
}

.vitalis-finder__doctor:hover {
	background: color-mix(in srgb, var(--vitalis-primary) 10%, var(--vitalis-white));
	color: var(--vitalis-ink);
}

.vitalis-finder__doctor img {
	flex: none;
	width: 54px;
	height: 54px;
	border-radius: 15px;
	object-fit: cover;
}

.vitalis-finder__doctor span {
	display: grid;
	flex: 1 1 auto;
	min-width: 0;
	line-height: 1.3;
}

.vitalis-finder__doctor small {
	color: var(--vitalis-muted);
	font-family: var(--vitalis-font-mono);
	font-size: 10.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.vitalis-finder__doctor strong {
	font-size: 16px;
	font-weight: 700;
}

.vitalis-finder__doctor em {
	color: var(--vitalis-muted);
	font-size: 13.5px;
	font-style: normal;
}

.vitalis-finder__doctor .vitalis-icon {
	box-sizing: border-box;
	width: 26px;
	height: 26px;
	padding: 6px;
	border-radius: 7px;
	background: var(--vitalis-white);
	color: var(--vitalis-primary);
	stroke-width: 2;
	transform: rotate(-45deg);
	transition: transform 0.45s var(--vitalis-ease), background-color 0.3s ease, color 0.3s ease, border-radius 0.45s var(--vitalis-ease);
}

.vitalis-finder__doctor:hover .vitalis-icon {
	border-radius: 50%;
	background: var(--vitalis-primary);
	color: var(--vitalis-white);
	transform: rotate(0deg);
}

.vitalis-finder .vitalis-finder__urgent {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 16px 0 0;
	padding: 14px 16px;
	border-radius: 14px;
	background: color-mix(in srgb, var(--vitalis-accent) 38%, var(--vitalis-white));
	color: var(--vitalis-ink);
	font-size: 14px;
	line-height: 1.5;
}

.vitalis-finder__urgent .vitalis-icon {
	width: 20px;
	height: 20px;
}

.vitalis-finder .vitalis-finder__disclaimer {
	margin: 16px 0 0;
	padding: 0;
	color: var(--vitalis-muted);
	font-size: 13px;
	line-height: 1.5;
}

.vitalis-finder__restart {
	margin-top: 8px;
}

/* =========================================================================
   7. FEES AND INSURANCE
   [vitalis_fees] [vitalis_insurance]
   ========================================================================= */

.vitalis-fees {
	color: var(--vitalis-body);
	font-family: var(--vitalis-font-body);
	font-size: 16px;
	line-height: 1.5;
}

.vitalis-fees__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 34px;
	padding: 6px;
	border-radius: 18px;
	background: var(--vitalis-soft);
}

.vitalis-fees__tabs::-webkit-scrollbar {
	display: none;
}

.vitalis-fees__tab {
	display: inline-flex;
	flex: none;
	align-items: center;
	gap: 9px;
	margin: 0;
	padding: 11px 16px;
	border: 0;
	border-radius: 13px;
	background: transparent;
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-body);
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
}

.vitalis-fees__tab .vitalis-icon {
	width: 18px;
	height: 18px;
	color: var(--vitalis-primary);
	transition: color 0.25s ease;
}

.vitalis-fees__tab:hover {
	background: rgba(255, 255, 255, 0.75);
}

.vitalis-fees__tab[aria-selected="true"] {
	background: var(--vitalis-ink);
	box-shadow: 0 12px 24px -16px rgba(8, 20, 43, 0.7);
	color: var(--vitalis-white);
}

.vitalis-fees__tab[aria-selected="true"] .vitalis-icon {
	color: var(--vitalis-accent);
}

.vitalis-fees__tab:focus-visible {
	outline: 3px solid var(--vitalis-primary);
	outline-offset: 2px;
}

.vitalis-fees__panel[hidden] {
	display: none;
}

.vitalis-fees__panel + .vitalis-fees__panel {
	margin-top: 48px;
}

.vitalis-fees.is-tabbed .vitalis-fees__panel + .vitalis-fees__panel {
	margin-top: 0;
}

.vitalis-fees.is-tabbed .vitalis-fees__panel:not([hidden]) {
	animation: vitalis-rise 0.5s var(--vitalis-ease) both;
}

.vitalis-fees .vitalis-fees__heading {
	margin: 0 0 6px;
	padding: 0;
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-heading);
	font-size: 28px;
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -0.03em;
}

.vitalis-fees .vitalis-fees__intro {
	max-width: 640px;
	margin: 0 0 18px;
	padding: 0;
	color: var(--vitalis-muted);
	font-size: 15px;
}

body.vitalis-theme ul.vitalis-fees__list {
	border-top: 2px solid var(--vitalis-ink);
}

body.vitalis-theme ul.vitalis-fees__list > li.vitalis-fee {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 18px 0;
	border-bottom: 1px solid var(--vitalis-line);
}

.vitalis-fee__main {
	display: grid;
	gap: 3px;
	min-width: 0;
}

.vitalis-fee__name {
	color: var(--vitalis-ink);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	transition: color 0.25s ease;
}

.vitalis-fee__name:hover {
	color: var(--vitalis-primary);
}

.vitalis-fee__meta {
	color: var(--vitalis-muted);
	font-size: 13px;
	line-height: 1.4;
}

.vitalis-fee__leader {
	flex: 1 1 24px;
	align-self: center;
	min-width: 24px;
	height: 0;
	border-bottom: 2px dotted var(--vitalis-line-strong);
}

.vitalis-fee__side {
	display: grid;
	flex: none;
	justify-items: end;
	gap: 2px;
	text-align: right;
}

.vitalis-fee__amount {
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-heading);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.vitalis-fee__note {
	color: var(--vitalis-muted);
	font-size: 12.5px;
	font-weight: 500;
	line-height: 1.35;
}

/* Insurance plans. */
body.vitalis-theme ul.vitalis-insurance__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr));
	gap: 10px;
}

body.vitalis-theme ul.vitalis-insurance__list > li.vitalis-insurance__plan {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 15px 18px;
	border: 1px solid var(--vitalis-line);
	border-radius: 16px;
	background: var(--vitalis-white);
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-body);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
}

.vitalis-insurance__plan .vitalis-icon {
	width: 20px;
	height: 20px;
	color: var(--vitalis-primary);
}

.vitalis-insurance .vitalis-insurance__note {
	margin: 18px 0 0;
	padding: 0;
	color: var(--vitalis-muted);
	font-size: 14px;
	line-height: 1.5;
}

body.vitalis-theme .vitalis-insurance--dark ul.vitalis-insurance__list > li.vitalis-insurance__plan {
	border-color: rgba(255, 255, 255, 0.12);
	background: rgba(255, 255, 255, 0.05);
	color: var(--vitalis-white);
}

.vitalis-insurance--dark .vitalis-insurance__plan .vitalis-icon {
	color: var(--vitalis-accent);
}

.vitalis-insurance--dark .vitalis-insurance__note {
	color: rgba(255, 255, 255, 0.6);
}

/* =========================================================================
   8. OPENING HOURS, EMERGENCY NOTICES AND MAP
   ========================================================================= */

.vitalis-hours {
	color: var(--vitalis-body);
	font-family: var(--vitalis-font-body);
	font-size: 15px;
	line-height: 1.4;
}

body.vitalis-theme ul.vitalis-hours__list > li.vitalis-hours__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 11px 0;
	border-bottom: 1px dashed var(--vitalis-line);
}

body.vitalis-theme ul.vitalis-hours__list > li.vitalis-hours__row:last-child {
	border-bottom: 0;
}

.vitalis-hours__day {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--vitalis-ink);
	font-weight: 600;
}

.vitalis-hours__time {
	font-variant-numeric: tabular-nums;
	text-align: right;
}

body.vitalis-theme ul.vitalis-hours__list > li.vitalis-hours__row.is-today {
	margin: 4px -14px;
	padding: 11px 14px;
	border-bottom-color: transparent;
	border-radius: 12px;
	background: color-mix(in srgb, var(--vitalis-primary) 8%, transparent);
}

.vitalis-hours__row.is-today .vitalis-hours__day::after {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--vitalis-mint);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--vitalis-mint) 22%, transparent);
}

.vitalis-hours__row.is-today .vitalis-hours__time {
	color: var(--vitalis-ink);
	font-weight: 600;
}

.vitalis-hours .vitalis-hours__note {
	margin: 14px 0 0;
	padding: 0;
	color: var(--vitalis-muted);
	font-size: 13.5px;
}

.vitalis-hours--dark {
	color: rgba(255, 255, 255, 0.72);
}

body.vitalis-theme .vitalis-hours--dark ul.vitalis-hours__list > li.vitalis-hours__row {
	border-bottom-color: rgba(255, 255, 255, 0.14);
}

.vitalis-hours--dark .vitalis-hours__day {
	color: var(--vitalis-white);
}

body.vitalis-theme .vitalis-hours--dark ul.vitalis-hours__list > li.vitalis-hours__row.is-today {
	background: rgba(255, 255, 255, 0.07);
}

.vitalis-hours--dark .vitalis-hours__row.is-today .vitalis-hours__time {
	color: var(--vitalis-accent);
}

.vitalis-hours--dark .vitalis-hours__note {
	color: rgba(255, 255, 255, 0.56);
}

/* Emergency and crisis notices. */
.vitalis-emergency,
p.vitalis-emergency {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 0;
	padding: 16px 18px;
	border: 1px solid color-mix(in srgb, var(--vitalis-coral) 28%, transparent);
	border-radius: 16px;
	background: color-mix(in srgb, var(--vitalis-coral) 8%, var(--vitalis-white));
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-body);
	font-size: 15px;
	line-height: 1.5;
}

.vitalis-emergency .vitalis-icon {
	width: 22px;
	height: 22px;
	color: var(--vitalis-coral);
}

.vitalis-emergency a {
	color: var(--vitalis-coral);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
	white-space: nowrap;
}

.vitalis-emergency--crisis,
p.vitalis-emergency--crisis {
	border-color: color-mix(in srgb, var(--vitalis-primary) 24%, transparent);
	background: color-mix(in srgb, var(--vitalis-primary) 6%, var(--vitalis-white));
}

.vitalis-emergency--crisis .vitalis-icon,
.vitalis-emergency--crisis a {
	color: var(--vitalis-primary);
}

/* Medical disclaimer. */
.vitalis-disclaimer,
p.vitalis-disclaimer {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	padding: 0;
	color: var(--vitalis-muted);
	font-family: var(--vitalis-font-body);
	font-size: 13.5px;
	line-height: 1.55;
}

.vitalis-disclaimer .vitalis-icon {
	width: 18px;
	height: 18px;
	margin-top: 1px;
}

/* Map. */
.vitalis-map {
	position: relative;
	height: var(--vitalis-map-height, 440px);
	overflow: hidden;
	border-radius: var(--vitalis-radius-lg);
	background: color-mix(in srgb, var(--vitalis-primary) 9%, var(--vitalis-white));
	isolation: isolate;
}

/* The Vitalis plus waits in the frame while the map loads. */
.vitalis-map::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: -1;
	width: 64px;
	height: 64px;
	margin: -32px 0 0 -32px;
	background-color: var(--vitalis-primary);
	opacity: 0.3;
	-webkit-mask: var(--vitalis-plus) center / contain no-repeat;
	mask: var(--vitalis-plus) center / contain no-repeat;
}

.vitalis-map iframe {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	filter: grayscale(0.35) contrast(1.04);
	transition: filter 0.6s ease;
}

.vitalis-map:hover iframe {
	filter: none;
}

/* =========================================================================
   9. SERVICE AND CLINICIAN DETAILS, HEALTH TOOLS
   ========================================================================= */

/* Key facts. */
.vitalis-facts {
	margin: 0;
	padding: 0;
	font-family: var(--vitalis-font-body);
}

.vitalis-facts--grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr));
	gap: 10px;
}

.vitalis-facts__item {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	align-items: center;
	column-gap: 14px;
	padding: 16px;
	border-radius: 18px;
	background: var(--vitalis-soft);
}

.vitalis-facts__icon {
	display: grid;
	grid-row: span 2;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: var(--vitalis-white);
	color: var(--vitalis-primary);
}

.vitalis-facts__icon .vitalis-icon {
	width: 20px;
	height: 20px;
}

.vitalis-facts dt {
	margin: 0;
	color: var(--vitalis-muted);
	font-family: var(--vitalis-font-mono);
	font-size: 10.5px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.vitalis-facts dd {
	margin: 2px 0 0;
	color: var(--vitalis-ink);
	font-size: 15.5px;
	font-weight: 700;
	line-height: 1.3;
}

.vitalis-facts--list {
	display: grid;
	gap: 0;
}

.vitalis-facts--list .vitalis-facts__item {
	padding: 14px 0;
	border-bottom: 1px solid var(--vitalis-line);
	border-radius: 0;
	background: none;
}

.vitalis-facts--list .vitalis-facts__icon {
	background: var(--vitalis-soft);
}

/* The clinicians of a service. */
.vitalis-people {
	display: grid;
	gap: 10px;
	font-family: var(--vitalis-font-body);
}

.vitalis-person {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 10px 14px 10px 10px;
	border: 1px solid var(--vitalis-line);
	border-radius: 20px;
	background: var(--vitalis-white);
	color: var(--vitalis-ink);
	text-decoration: none;
	transition: border-color 0.3s ease, box-shadow 0.4s var(--vitalis-ease), transform 0.4s var(--vitalis-ease);
}

.vitalis-person:hover {
	border-color: transparent;
	box-shadow: var(--vitalis-shadow);
	color: var(--vitalis-ink);
	transform: translateY(-2px);
}

.vitalis-person__photo {
	flex: none;
	width: 58px;
	height: 58px;
	overflow: hidden;
	border-radius: 15px;
	background: var(--vitalis-soft);
}

.vitalis-person__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.vitalis-person__text {
	display: grid;
	flex: 1 1 auto;
	min-width: 0;
	line-height: 1.3;
}

.vitalis-person__name {
	font-size: 16px;
	font-weight: 700;
}

.vitalis-person__role {
	color: var(--vitalis-muted);
	font-size: 13.5px;
}

.vitalis-person > .vitalis-icon {
	box-sizing: border-box;
	width: 26px;
	height: 26px;
	padding: 6px;
	border-radius: 7px;
	background: var(--vitalis-soft);
	color: var(--vitalis-primary);
	stroke-width: 2;
	transform: rotate(-45deg);
	transition: transform 0.45s var(--vitalis-ease), background-color 0.3s ease, color 0.3s ease;
}

.vitalis-person:hover > .vitalis-icon {
	background: var(--vitalis-primary);
	color: var(--vitalis-white);
	transform: rotate(0deg);
}

/* Clinic days of a clinician. */
body.vitalis-theme ul.vitalis-days {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

body.vitalis-theme ul.vitalis-days > li.vitalis-days__day {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border-radius: 13px;
	background: var(--vitalis-soft);
	color: var(--vitalis-muted);
	font-family: var(--vitalis-font-body);
	font-size: 13px;
	font-weight: 600;
}

body.vitalis-theme ul.vitalis-days > li.vitalis-days__day.is-in {
	background: var(--vitalis-primary);
	box-shadow: 0 12px 22px -16px var(--vitalis-primary);
	color: var(--vitalis-white);
}

.vitalis-days abbr {
	border: 0;
	text-decoration: none;
	cursor: default;
}

.vitalis-days__note,
p.vitalis-days__note {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 14px 0 0;
	padding: 0;
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-body);
	font-size: 14px;
	font-weight: 600;
}

.vitalis-days__note .vitalis-icon {
	box-sizing: border-box;
	width: 22px;
	height: 22px;
	padding: 4px;
	border-radius: 50%;
	background: var(--vitalis-mint);
	color: var(--vitalis-white);
	stroke-width: 2.6;
}

/* BMI calculator. */
.vitalis-bmi {
	display: grid;
	gap: 18px;
	margin: 0;
	color: var(--vitalis-body);
	font-family: var(--vitalis-font-body);
	font-size: 16px;
}

.vitalis-bmi .vitalis-field,
.vitalis-bmi p.vitalis-field {
	margin: 0;
	padding: 0;
}

.vitalis-bmi .vitalis-field[hidden] {
	display: none;
}

.vitalis-bmi .vitalis-field > label {
	display: block;
	margin: 0 0 8px;
	color: var(--vitalis-ink);
	font-size: 14px;
	font-weight: 600;
}

.vitalis-bmi__fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.vitalis-bmi__pair {
	display: flex;
	align-items: center;
	gap: 8px;
}

.vitalis-bmi__pair > span {
	flex: none;
	color: var(--vitalis-muted);
	font-size: 14px;
	font-weight: 600;
}

.vitalis-bmi input[type="number"] {
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	min-height: 52px;
	margin: 0;
	padding: 12px 14px;
	border: 1.5px solid var(--vitalis-line);
	border-radius: 14px;
	background: var(--vitalis-white);
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-body);
	font-size: 17px;
	font-weight: 600;
	-moz-appearance: textfield;
	appearance: textfield;
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.vitalis-bmi input[type="number"]::-webkit-inner-spin-button,
.vitalis-bmi input[type="number"]::-webkit-outer-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.vitalis-bmi input[type="number"]:focus {
	border-color: var(--vitalis-primary);
	box-shadow: var(--vitalis-focus);
	outline: none;
}

.vitalis-bmi .vitalis-button {
	justify-self: start;
}

.vitalis-bmi__result {
	display: grid;
	gap: 12px;
	padding: 22px;
	border-radius: 20px;
	background: var(--vitalis-soft);
	animation: vitalis-rise 0.5s var(--vitalis-ease) both;
}

.vitalis-bmi__result[hidden] {
	display: none;
}

.vitalis-bmi .vitalis-bmi__value {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: 0;
	padding: 0;
	color: var(--vitalis-ink);
}

.vitalis-bmi__value strong {
	font-family: var(--vitalis-font-heading);
	font-size: 56px;
	font-weight: 800;
	line-height: 0.9;
	letter-spacing: -0.04em;
	font-variant-numeric: tabular-nums;
}

.vitalis-bmi__value span {
	font-family: var(--vitalis-font-mono);
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.vitalis-bmi__scale {
	position: relative;
	height: 10px;
	margin: 6px 0;
	border-radius: 99px;
	background: linear-gradient(90deg, #7aa7ff 0%, #7aa7ff 14%, var(--vitalis-mint) 14%, var(--vitalis-mint) 40%, #f5b938 40%, #f5b938 60%, var(--vitalis-coral) 60%, var(--vitalis-coral) 100%);
}

.vitalis-bmi__marker {
	position: absolute;
	top: 50%;
	left: var(--vitalis-bmi, 0%);
	box-sizing: border-box;
	width: 22px;
	height: 22px;
	margin: -11px 0 0 -11px;
	border: 5px solid var(--vitalis-ink);
	border-radius: 50%;
	background: var(--vitalis-white);
	box-shadow: 0 6px 14px -6px rgba(8, 20, 43, 0.6);
	transition: left 0.8s var(--vitalis-ease);
}

.vitalis-bmi .vitalis-bmi__label {
	margin: 0;
	padding: 0;
	color: var(--vitalis-ink);
	font-size: 16px;
	font-weight: 700;
}

.vitalis-bmi__result[data-range="healthy"] .vitalis-bmi__label {
	color: var(--vitalis-mint);
}

.vitalis-bmi__result[data-range="over"] .vitalis-bmi__label {
	color: #b9800c;
}

.vitalis-bmi__result[data-range="obese"] .vitalis-bmi__label {
	color: var(--vitalis-coral);
}

.vitalis-bmi .vitalis-bmi__note {
	margin: 0;
	padding: 0;
	color: var(--vitalis-muted);
	font-size: 13px;
	line-height: 1.5;
}

/* =========================================================================
   10. BLOG HELPERS
   [vitalis_post_meta] [vitalis_tags] [vitalis_share]
   ========================================================================= */

.vitalis-post-meta {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 0;
}

.vitalis-post-meta > span {
	display: inline-flex;
	align-items: center;
}

.vitalis-post-meta > span + span::before {
	content: "";
	width: 5px;
	height: 5px;
	margin: 0 12px;
	border-radius: 50%;
	background: currentColor;
	opacity: 0.45;
}

.vitalis-post-meta a {
	color: inherit;
	font-weight: 700;
	text-decoration: none;
}

.vitalis-post-meta a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.vitalis-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.vitalis-tag,
.vitalis-tag:visited {
	padding: 8px 14px;
	border: 1px solid var(--vitalis-line);
	border-radius: var(--vitalis-radius-pill);
	background: var(--vitalis-white);
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-body);
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.vitalis-tag::before {
	content: "#";
	margin-right: 2px;
	color: var(--vitalis-primary);
}

.vitalis-tag:hover {
	border-color: var(--vitalis-ink);
	background: var(--vitalis-ink);
	color: var(--vitalis-white);
}

.vitalis-share {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 16px;
	font-family: var(--vitalis-font-body);
}

.vitalis-share__label {
	color: var(--vitalis-muted);
	font-family: var(--vitalis-font-mono);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.vitalis-share__links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.vitalis-share__link,
.vitalis-share__link:visited {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 9px 14px;
	border: 1px solid var(--vitalis-line);
	border-radius: 12px;
	background: var(--vitalis-white);
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.vitalis-share__link:hover {
	border-color: var(--vitalis-primary);
	background: var(--vitalis-primary);
	color: var(--vitalis-white);
}

.vitalis-share__link .vitalis-icon {
	width: 16px;
	height: 16px;
}

/* =========================================================================
   11. ANNOUNCEMENT BAR, QUICK ACTIONS, READING PROGRESS
   ========================================================================= */

.vitalis-notice {
	position: relative;
	z-index: 100;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 10px 56px;
	background: var(--vitalis-accent);
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-body);
	font-size: 14px;
	line-height: 1.45;
}

.vitalis-notice[hidden] {
	display: none;
}

.vitalis-notice .vitalis-notice__text {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 4px 10px;
	margin: 0;
	padding: 0;
	text-align: center;
}

.vitalis-notice__text .vitalis-icon {
	width: 18px;
	height: 18px;
}

.vitalis-notice__text a {
	color: inherit;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.vitalis-notice__close {
	position: absolute;
	top: 50%;
	right: 12px;
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	margin-top: -17px;
	padding: 0;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: inherit;
	cursor: pointer;
	transition: background-color 0.25s ease;
}

.vitalis-notice__close:hover {
	background: rgba(8, 20, 43, 0.1);
}

.vitalis-notice__close .vitalis-icon {
	width: 18px;
	height: 18px;
}

/* Quick actions bar on phones. */
.vitalis-mobile-bar {
	display: none;
}

/* Reading progress on blog articles. */
.vitalis-progress {
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	z-index: 100001;
	height: 4px;
	pointer-events: none;
}

.admin-bar .vitalis-progress {
	top: 32px;
}

.vitalis-progress__bar {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, var(--vitalis-primary), var(--vitalis-accent));
	transform: scaleX(0);
	transform-origin: 0 50%;
}

/* =========================================================================
   12. ACCESSIBILITY TOOLBAR
   ========================================================================= */

.vitalis-a11y {
	position: fixed;
	bottom: 22px;
	left: 22px;
	z-index: 99990;
	font-family: var(--vitalis-font-body);
}

.vitalis-a11y__toggle {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 16px;
	background: var(--vitalis-ink);
	box-shadow: 0 18px 34px -16px rgba(8, 20, 43, 0.6);
	color: var(--vitalis-white);
	cursor: pointer;
	transition: background-color 0.3s ease, transform 0.4s var(--vitalis-ease), border-radius 0.4s var(--vitalis-ease);
}

.vitalis-a11y__toggle:hover,
.vitalis-a11y__toggle[aria-expanded="true"] {
	border-radius: 50%;
	background: var(--vitalis-primary);
	transform: translateY(-2px);
}

.vitalis-a11y__toggle:focus-visible {
	outline: 3px solid var(--vitalis-primary);
	outline-offset: 3px;
}

.vitalis-a11y__toggle .vitalis-icon {
	width: 26px;
	height: 26px;
}

.vitalis-a11y__panel {
	position: absolute;
	bottom: calc(100% + 12px);
	left: 0;
	box-sizing: border-box;
	width: 300px;
	max-width: calc(100vw - 32px);
	padding: 20px;
	border: 1px solid var(--vitalis-line);
	border-top: 3px solid var(--vitalis-primary);
	border-radius: 22px;
	background: var(--vitalis-white);
	box-shadow: 0 34px 70px -30px rgba(8, 20, 43, 0.5);
	color: var(--vitalis-ink);
	animation: vitalis-rise 0.4s var(--vitalis-ease) both;
}

.vitalis-a11y__panel[hidden] {
	display: none;
}

.vitalis-a11y .vitalis-a11y__title {
	margin: 0 0 14px;
	padding: 0;
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-heading);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.02em;
}

.vitalis-a11y__size,
.vitalis-a11y__option {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 11px 0;
	border-top: 1px solid var(--vitalis-line);
	cursor: pointer;
}

.vitalis-a11y__size {
	cursor: default;
}

.vitalis-a11y__label {
	display: inline-flex;
	flex: 1 1 auto;
	align-items: center;
	gap: 10px;
	font-size: 14.5px;
	font-weight: 600;
}

.vitalis-a11y__label .vitalis-icon {
	width: 20px;
	height: 20px;
	color: var(--vitalis-primary);
}

.vitalis-a11y__size button {
	min-width: 38px;
	height: 34px;
	margin: 0;
	padding: 0 8px;
	border: 1.5px solid var(--vitalis-line);
	border-radius: 10px;
	background: var(--vitalis-white);
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-body);
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.vitalis-a11y__size button:hover {
	border-color: var(--vitalis-ink);
}

.vitalis-a11y__size button[aria-pressed="true"] {
	border-color: var(--vitalis-ink);
	background: var(--vitalis-ink);
	color: var(--vitalis-white);
}

.vitalis-a11y__reset {
	margin: 10px 0 0;
	padding: 6px 0;
	border: 0;
	background: none;
	color: var(--vitalis-primary);
	font-family: var(--vitalis-font-body);
	font-size: 14px;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 4px;
	cursor: pointer;
}

/* Choices of the toolbar, applied to the whole page. */
html.vitalis-a11y-text-1 #page-container {
	zoom: 1.12;
}

html.vitalis-a11y-text-2 #page-container {
	zoom: 1.25;
}

html.vitalis-a11y-contrast {
	--gcid-body-color: #0b1830;
	--gcid-vitalis-muted: #26324a;
	--gcid-vitalis-line: #8792a6;
	--vitalis-line-strong: rgba(11, 24, 48, 0.55);
}

html.vitalis-a11y-contrast body ::placeholder {
	color: #26324a;
}

html.vitalis-a11y-links body a:not(.et_pb_button):not(.vitalis-button):not(.vitalis-share__link):not(.vitalis-tag) {
	text-decoration: underline !important;
	text-decoration-thickness: 2px !important;
	text-underline-offset: 3px !important;
}

html.vitalis-a11y-motion *,
html.vitalis-a11y-motion *::before,
html.vitalis-a11y-motion *::after {
	scroll-behavior: auto !important;
	transition-duration: 0.01ms !important;
	animation-duration: 0.01ms !important;
	animation-iteration-count: 1 !important;
}

html.vitalis-a11y-motion .vitalis-marquee p,
html.vitalis-a11y-motion .vitalis-pulse svg path,
html.vitalis-a11y-motion .vitalis-breathe svg circle {
	animation: none !important;
}

/* =========================================================================
   13. EMPTY RESULTS, PAGINATION AND FALLBACK TEMPLATES
   ========================================================================= */

.vitalis-no-results {
	display: grid;
	justify-items: center;
	gap: 14px;
	max-width: 620px;
	margin: 0 auto;
	padding: 56px 28px;
	border-radius: var(--vitalis-radius-lg);
	background: var(--vitalis-soft);
	text-align: center;
}

.vitalis-no-results__icon {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border-radius: 20px;
	background: var(--vitalis-primary);
	color: var(--vitalis-white);
	transform: rotate(-6deg);
}

.vitalis-no-results__icon .vitalis-icon {
	width: 28px;
	height: 28px;
}

.vitalis-no-results .vitalis-no-results__title {
	margin: 6px 0 0;
	padding: 0;
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-heading);
	font-size: 30px;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.03em;
}

.vitalis-no-results .vitalis-no-results__text {
	max-width: 460px;
	margin: 0;
	padding: 0;
	color: var(--vitalis-body);
	font-size: 16px;
	line-height: 1.55;
}

.vitalis-no-results__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-top: 8px;
}

/* Previous / next links under the Blog module. */
.vitalis-pagination {
	display: flex;
	justify-content: space-between;
	gap: 12px;
}

.vitalis-pagination .alignleft,
.vitalis-pagination .alignright {
	float: none;
}

.vitalis-pagination a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 20px;
	border: 1.5px solid var(--vitalis-line-strong);
	border-radius: 14px;
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-body);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	transition: border-color 0.25s ease, background-color 0.25s ease, color 0.25s ease;
}

/* More specific than the Design tab colour of the Blog module, so the label
   stays readable on the dark pill. */
body.vitalis-theme .vitalis-pagination a:hover {
	border-color: var(--vitalis-ink);
	background: var(--vitalis-ink);
	color: var(--vitalis-white);
}

.vitalis-pagination .vitalis-icon {
	width: 18px;
	height: 18px;
}

/* Single service and clinician pages without a Theme Builder template. */
.vitalis-fallback {
	padding: 64px 0 96px;
	font-family: var(--vitalis-font-body);
}

.vitalis-fallback .vitalis-single {
	box-sizing: border-box;
	width: 90%;
	max-width: 1200px;
	margin: 0 auto;
}

.vitalis-single__hero {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	align-items: center;
	gap: 56px;
	padding-bottom: 56px;
	border-bottom: 1px solid var(--vitalis-line);
}

.vitalis-single__intro {
	display: grid;
	gap: 18px;
}

.vitalis-single__intro > * {
	margin: 0;
	padding: 0;
}

.vitalis-single .vitalis-single__kicker {
	color: var(--vitalis-primary);
	font-family: var(--vitalis-font-mono);
	font-size: 12.5px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.vitalis-single .vitalis-single__title {
	padding: 0;
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-heading);
	font-size: clamp(40px, 5vw, 64px);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.03em;
}

.vitalis-single .vitalis-single__lead {
	color: var(--vitalis-body);
	font-size: 19px;
	line-height: 1.55;
}

.vitalis-single__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.vitalis-single .vitalis-single__media {
	margin: 0;
	overflow: hidden;
	border-radius: 32px;
	background: var(--vitalis-soft);
}

.vitalis-single__media img {
	display: block;
	width: 100%;
	height: auto;
}

.vitalis-single__media--portrait {
	aspect-ratio: 4 / 5;
}

.vitalis-single__media--portrait img {
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

.vitalis-single__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	align-items: start;
	gap: 64px;
	padding-top: 56px;
}

.vitalis-single__content {
	color: var(--vitalis-body);
	font-size: 17px;
	line-height: 1.7;
}

.vitalis-single__content h2,
.vitalis-single__content h3 {
	margin-top: 1.2em;
	color: var(--vitalis-ink);
	font-weight: 700;
	line-height: 1.15;
}

.vitalis-single__quote {
	margin: 0 0 32px;
	padding: 0 0 0 24px;
	border-left: 4px solid var(--vitalis-accent);
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-heading);
	font-size: 26px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -0.02em;
}

.vitalis-single__quote p {
	padding: 0;
}

.vitalis-single__aside {
	display: grid;
	gap: 18px;
	padding: 28px;
	border-radius: 26px;
	background: var(--vitalis-soft);
}

.vitalis-single .vitalis-single__aside-title {
	margin: 10px 0 0;
	padding: 0;
	color: var(--vitalis-ink);
	font-family: var(--vitalis-font-heading);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.vitalis-single .vitalis-single__aside-title:first-child {
	margin-top: 0;
}

/* =========================================================================
   14. RESPONSIVE
   ========================================================================= */

@media (max-width: 1199px) {
	body.vitalis-theme ul.vitalis-directory__grid--4 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 980px) {
	body.vitalis-theme ul.vitalis-directory__grid,
	body.vitalis-theme ul.vitalis-directory__grid--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.vitalis-form__grid--when {
		grid-template-columns: minmax(0, 1fr);
	}

	.vitalis-quickbook {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		row-gap: 14px;
	}

	.vitalis-quickbook .vitalis-button {
		grid-column: 1 / -1;
		justify-content: space-between;
		margin-left: 0;
	}

	.vitalis-single__hero,
	.vitalis-single__body {
		grid-template-columns: minmax(0, 1fr);
		gap: 40px;
	}

	.vitalis-single__media--portrait {
		max-width: 520px;
	}
}

@media (max-width: 767px) {
	.vitalis-button,
	.vitalis-button:visited {
		font-size: 15px;
	}

	.vitalis-form__grid,
	.vitalis-bmi__fields {
		grid-template-columns: minmax(0, 1fr);
	}

	.vitalis-form__legend {
		font-size: 22px;
	}

	.vitalis-form__nav .vitalis-button {
		flex: 1 1 auto;
	}

	.vitalis-form__nav .vitalis-button[type="submit"],
	.vitalis-form__nav [data-step-next] {
		justify-content: space-between;
	}

	.vitalis-slot span {
		min-width: 84px;
	}

	.vitalis-newsletter__fields {
		flex-direction: column;
	}

	.vitalis-newsletter__fields .vitalis-button {
		justify-content: space-between;
		width: 100%;
	}

	.vitalis-quickbook {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 0;
	}

	.vitalis-quickbook__field,
	.vitalis-quickbook__field:first-child {
		padding: 12px 4px;
		border-top: 1px solid var(--vitalis-line);
		border-left: 0;
	}

	.vitalis-quickbook__field:first-child {
		border-top: 0;
	}

	.vitalis-quickbook--dark .vitalis-quickbook__field {
		border-top-color: rgba(255, 255, 255, 0.14);
	}

	.vitalis-quickbook .vitalis-button {
		margin-top: 10px;
	}

	.vitalis-directory__search,
	.vitalis-directory__language {
		flex: 1 1 100%;
	}

	body.vitalis-theme ul.vitalis-directory__grid,
	body.vitalis-theme ul.vitalis-directory__grid--2,
	body.vitalis-theme ul.vitalis-directory__grid--4 {
		grid-template-columns: minmax(0, 1fr);
	}

	.vitalis-finder__question {
		font-size: 25px;
	}

	.vitalis-finder__match {
		grid-template-columns: minmax(0, 1fr);
		gap: 18px;
	}

	.vitalis-finder__media {
		aspect-ratio: 16 / 9;
	}

	.vitalis-finder .vitalis-finder__title {
		font-size: 25px;
	}

	body.vitalis-theme ul.vitalis-fees__list > li.vitalis-fee {
		flex-wrap: wrap;
		gap: 6px 12px;
	}

	.vitalis-fee__main {
		flex: 1 1 100%;
	}

	.vitalis-fee__leader {
		display: none;
	}

	.vitalis-fee__side {
		justify-items: start;
		text-align: left;
	}

	.vitalis-fee__side {
		display: flex;
		flex-wrap: wrap;
		align-items: baseline;
		gap: 4px 10px;
	}

	.vitalis-fee__amount {
		font-size: 19px;
	}

	.vitalis-fees .vitalis-fees__heading {
		font-size: 24px;
	}

	/* One swipeable row of tabs on phones. */
	.vitalis-fees__tabs {
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
	}

	.vitalis-notice {
		justify-content: flex-start;
		padding: 10px 52px 10px 16px;
	}

	.vitalis-notice .vitalis-notice__text {
		justify-content: flex-start;
		text-align: left;
	}

	/* Call and book in one tap, at the bottom of the screen. */
	.vitalis-mobile-bar {
		position: fixed;
		right: 12px;
		bottom: 12px;
		left: 12px;
		z-index: 99980;
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
		gap: 8px;
		padding: 8px;
		border-radius: 20px;
		background: var(--vitalis-deep);
		box-shadow: 0 22px 44px -18px rgba(8, 20, 43, 0.7);
		font-family: var(--vitalis-font-body);
	}

	.vitalis-mobile-bar__link,
	.vitalis-mobile-bar__link:visited {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 9px;
		height: 50px;
		border-radius: 14px;
		background: rgba(255, 255, 255, 0.08);
		color: var(--vitalis-white);
		font-size: 15px;
		font-weight: 600;
		text-decoration: none;
	}

	.vitalis-mobile-bar__link--primary,
	.vitalis-mobile-bar__link--primary:visited {
		background: var(--vitalis-accent);
		color: var(--vitalis-ink);
	}

	.vitalis-mobile-bar__link .vitalis-icon {
		width: 20px;
		height: 20px;
	}

	body.vitalis-has-mobile-bar {
		padding-bottom: 82px;
	}

	body.vitalis-has-mobile-bar .vitalis-a11y {
		bottom: 94px;
	}

	body.vitalis-has-mobile-bar #et-main-area .et_pb_scroll_top.et-pb-icon,
	body.vitalis-has-mobile-bar .et_pb_scroll_top.et-pb-icon {
		bottom: 96px;
	}

	.vitalis-a11y {
		left: 12px;
	}

	.vitalis-a11y__toggle {
		width: 46px;
		height: 46px;
		border-radius: 14px;
	}

	.vitalis-single .vitalis-single__lead {
		font-size: 17px;
	}

	.vitalis-single__aside {
		padding: 22px;
	}
}

@media (max-width: 782px) {
	.admin-bar .vitalis-progress {
		top: 46px;
	}
}

@media (max-width: 600px) {
	.admin-bar .vitalis-progress {
		top: 0;
	}
}

/* =========================================================================
   15. MOTION AND PRINT
   ========================================================================= */

@keyframes vitalis-rise {
	from {
		opacity: 0;
		transform: translateY(10px);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes vitalis-ping {
	0% {
		opacity: 0.7;
		transform: scale(1);
	}

	80%,
	100% {
		opacity: 0;
		transform: scale(2.8);
	}
}

@media (prefers-reduced-motion: reduce) {
	.vitalis-open-status__dot::after,
	.vitalis-form-success,
	.vitalis-finder__step,
	.vitalis-finder__result,
	.vitalis-bmi__result,
	.vitalis-a11y__panel,
	.vitalis-form.is-steps .vitalis-form__group:not([hidden]),
	.vitalis-fees.is-tabbed .vitalis-fees__panel:not([hidden]) {
		animation: none;
	}

	.vitalis-button,
	.vitalis-doc,
	.vitalis-doc__media img,
	.vitalis-person,
	.vitalis-finder__option span,
	.vitalis-slot span {
		transition: none;
	}
}

@media print {
	.vitalis-notice,
	.vitalis-mobile-bar,
	.vitalis-a11y,
	.vitalis-progress {
		display: none !important;
	}

	body.vitalis-has-mobile-bar {
		padding-bottom: 0;
	}
}
