/*
Theme Name: MedVacay
Theme URI: https://medvacay.com/
Author: MedVacay
Author URI: https://medvacay.com/
Description: Block theme for the MedVacay medical directory — Mexico City. Presentation only; all post types and taxonomies are registered by the MedVacay Core plugin so the data survives a theme change.
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 8.1
Version: 0.12.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: medvacay
Tags: block-theme, full-site-editing, directory, accessibility-ready
*/

/*
 * Design tokens live in theme.json and are consumed here as the
 * --wp--preset--* / --wp--custom--* properties WordPress generates.
 * This file holds only what theme.json cannot express: component
 * styles (buttons, badges, cards, disclosures) and a11y utilities.
 * Mobile-first: base rules are the small-screen layout.
 */

/* --- Accessibility utilities ------------------------------------ */

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

.skip-link:focus {
	clip-path: none;
	height: auto;
	left: 0.5rem;
	top: 0.5rem;
	padding: 0.75rem 1rem;
	width: auto;
	z-index: 100000;
}

:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

/* --- Buttons ------------------------------------------------------
 * Core buttons are themed in theme.json (styles.elements.button);
 * .mv-btn is the same visual system for hand-written markup. */

.mv-btn {
	display: inline-block;
	padding: 0.75rem 1.375rem;
	border: 1.5px solid transparent;
	border-radius: var(--wp--custom--radius--medium);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}

/* Navigation-weight action: deep navy. */
.mv-btn--primary {
	background: var(--wp--preset--color--deep);
	border-color: var(--wp--preset--color--deep);
	color: var(--wp--preset--color--base);
}

.mv-btn--primary:hover {
	background: var(--wp--preset--color--deeper);
	border-color: var(--wp--preset--color--deeper);
}

.mv-btn--secondary {
	background: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--deep);
	color: var(--wp--preset--color--deep);
}

.mv-btn--secondary:hover {
	background: color-mix(in srgb, var(--wp--preset--color--deep) 8%, var(--wp--preset--color--base));
}

/* Lead-capture CTA: the only coral surface. Dark text, not white —
 * white on #F26B3A measures 3.03:1 (AA failure); deeper on coral is
 * 4.97:1 and hover LIGHTENS so the pair keeps passing. See
 * docs/DESIGN-CONTRAST.md before changing either half. */
.mv-btn--cta {
	background: var(--wp--preset--color--cta);
	border-color: var(--wp--preset--color--cta);
	color: var(--wp--preset--color--deeper);
	box-shadow: 0 2px 8px color-mix(in srgb, var(--wp--preset--color--cta) 35%, transparent);
}

.mv-btn--cta:hover {
	background: var(--wp--preset--color--cta-hover);
	border-color: var(--wp--preset--color--cta-hover);
	color: var(--wp--preset--color--deeper);
}

/* WhatsApp action: brand green, same dark-text rule (white fails at 2.86:1). */
.mv-btn--whatsapp {
	background: #1faf5e;
	border-color: #1faf5e;
	color: var(--wp--preset--color--deeper);
}

.mv-btn--whatsapp:hover {
	background: #2cc06e;
	border-color: #2cc06e;
	color: var(--wp--preset--color--deeper);
}

/* --- Badges (chips) ------------------------------------------------
 * Three visually distinct families — §5.1 rendered as design:
 *   tier/generic  = navy outline pill (plain .mv-badge; paid placement,
 *                   plainly labeled, never green, never iconed)
 *   verification  = green tint pill (.mv-badge--success — class name is
 *                   asserted by test-verified-badge.php; renders only
 *                   from verification data)
 *   fit facts     = quiet gray pill (.mv-badge--neutral)
 * Max three chips per card. */

.mv-badge {
	display: inline-block;
	padding: 0.1875rem 0.75rem;
	border: 1.5px solid var(--wp--preset--color--deep);
	border-radius: var(--wp--custom--radius--pill);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	color: var(--wp--preset--color--deep);
	background: var(--wp--preset--color--base);
}

.mv-badge--success {
	border-color: var(--wp--preset--color--verify-tint);
	background: var(--wp--preset--color--verify-tint);
	color: var(--wp--preset--color--verify-ink);
}

.mv-badge--neutral {
	border-color: var(--wp--preset--color--surface);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--body);
	font-weight: 600;
}

.mv-badge--unclaimed {
	border-style: dashed;
	border-color: color-mix(in srgb, var(--wp--preset--color--muted) 45%, var(--wp--preset--color--base));
	color: var(--wp--preset--color--muted);
}

.mv-badge--warning {
	border-color: color-mix(in srgb, var(--wp--preset--color--warning) 40%, var(--wp--preset--color--base));
	color: var(--wp--preset--color--warning);
}

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

.mv-card {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--card);
	box-shadow: var(--wp--custom--shadow--card);
	padding: var(--wp--preset--spacing--30);
}

.mv-card--raised {
	box-shadow: var(--wp--custom--shadow--raised);
}

.mv-card-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--wp--preset--spacing--30);
}

@media (min-width: 48em) {
	.mv-card-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* --- Provider result card ----------------------------------------
 * The core unit of the product. B1/B2 pour data into this markup:
 *   article.mv-card.mv-provider-card
 *     header  > __name (h*), __meta, __badges
 *     __bio, __facts (dl), __pricing (section), __contact (address)
 *     footer.__actions > .mv-btn */

.mv-provider-card {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--30);
}

.mv-provider-card__avatar {
	width: 4rem;
	height: 4rem;
	font-size: var(--wp--preset--font-size--large);
}

@media (min-width: 48em) {
	.mv-provider-card__avatar {
		width: 6rem;
		height: 6rem;
		font-size: var(--wp--preset--font-size--x-large);
	}
}

.mv-provider-card__body {
	flex: 1 1 16rem;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--20);
}

.mv-provider-card__topline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--10) var(--wp--preset--spacing--20);
}

.mv-provider-card__name {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
}

.mv-provider-card__credline {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

/* Unclaimed variant (C3 on the card): dashed shell, quieter surface. The
 * article's opening tag is test-asserted, so the state hook is the chip. */
.mv-provider-card:has(.mv-badge--unclaimed) {
	border: 1.5px dashed color-mix(in srgb, var(--wp--preset--color--muted) 45%, var(--wp--preset--color--base));
	background: color-mix(in srgb, var(--wp--preset--color--surface) 55%, var(--wp--preset--color--base));
	box-shadow: none;
}

.mv-provider-card__unclaimed-note {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.mv-provider-card__claim {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--body);
	align-self: center;
}

.mv-provider-card__name a {
	color: inherit;
	text-decoration: none;
}

.mv-provider-card__name a:hover {
	text-decoration: underline;
}

.mv-provider-card__meta {
	margin: var(--wp--preset--spacing--10) 0 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.mv-provider-card__badges {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--10);
	margin: 0;
}

.mv-provider-card__bio {
	margin: 0;
}

.mv-provider-card__facts {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--wp--preset--spacing--10) var(--wp--preset--spacing--30);
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
}

.mv-provider-card__facts dt {
	color: var(--wp--preset--color--muted);
}

.mv-provider-card__facts dd {
	margin: 0;
}

.mv-provider-card__pricing {
	border-top: 1px solid var(--wp--preset--color--border);
	padding-top: var(--wp--preset--spacing--30);
}

.mv-provider-card__pricing-title {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.mv-price {
	margin: var(--wp--preset--spacing--10) 0 0;
}

/* The price is a headline, not metadata: heavy, tabular, deep navy. */
.mv-price__range {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	color: var(--wp--preset--color--deep);
}

.mv-price__note,
.mv-price__updated {
	margin: var(--wp--preset--spacing--10) 0 0;
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

/* §5.4 stale treatment: the figure fades and strikes through — honest,
 * never alarm-red. The dated "out of date" note carries the meaning. */
.mv-price--stale .mv-price__range {
	color: var(--wp--preset--color--muted);
	text-decoration: line-through;
	text-decoration-color: color-mix(in srgb, var(--wp--preset--color--muted) 55%, var(--wp--preset--color--base));
	text-decoration-thickness: 2px;
}

.mv-price--stale .mv-price__updated {
	font-weight: 600;
}

.mv-provider-card__contact {
	font-style: normal;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.mv-provider-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	margin-top: auto;
}

/* --- Paid-placement disclosure (§5.2) ----------------------------- */

.mv-disclosure {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--medium);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--body);
}

/* --- How-we-verify page (DS10) — components for page #276 --------- */

.mv-callout--tint {
	background: var(--wp--preset--color--teal-tint);
	border-radius: var(--wp--custom--radius--card);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

.mv-hwv__anatomy-chip {
	margin: 0 0 var(--wp--preset--spacing--20);
}

.mv-hwv__anatomy-note {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--body);
}

.mv-hwv__checklist {
	margin: 0 0 var(--wp--preset--spacing--20);
	padding-left: 1.25rem;
}

.mv-hwv__checklist li + li {
	margin-top: var(--wp--preset--spacing--10);
}

.mv-hwv__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--wp--preset--spacing--30);
}

@media (min-width: 48em) {
	.mv-hwv__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.mv-hwv__grid h3 {
	margin: 0 0 var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--large);
}

.mv-hwv__evidence {
	border: 1px dashed color-mix(in srgb, var(--wp--preset--color--muted) 45%, var(--wp--preset--color--base));
	border-radius: var(--wp--custom--radius--medium);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
	margin-bottom: 0;
}

.mv-hwv__separation p:first-child {
	margin-top: 0;
	color: color-mix(in srgb, var(--wp--preset--color--base) 80%, var(--wp--preset--color--deep));
}

.mv-hwv__pair p {
	margin: var(--wp--preset--spacing--20) 0 0;
	background: color-mix(in srgb, var(--wp--preset--color--base) 8%, transparent);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 16%, transparent);
	border-radius: var(--wp--custom--radius--medium);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
}

.mv-hwv__pair-note {
	font-size: var(--wp--preset--font-size--small);
	color: color-mix(in srgb, var(--wp--preset--color--base) 86%, var(--wp--preset--color--deep));
}

.mv-hwv__not-heading {
	margin: 0 0 var(--wp--preset--spacing--10);
	font-size: var(--wp--preset--font-size--large);
}

.mv-hwv__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
}

/* --- Sand callout (§5.4 footnotes, warm notices) ------------------- */

.mv-callout--sand {
	background: var(--wp--preset--color--sand);
	border: 1px solid var(--wp--preset--color--sand-border);
	border-radius: var(--wp--custom--radius--medium);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--body);
}

/* --- Avatar (headshot or initials placeholder) ---------------------
 * span.mv-avatar[data-initials] when no headshot exists; an <img> gets
 * .mv-avatar too. Always a full circle. */

.mv-avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 6rem;
	height: 6rem;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--teal-tint);
	color: var(--wp--preset--color--deep);
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
	object-fit: cover;
	flex: none;
}

.mv-avatar--small {
	width: 3.25rem;
	height: 3.25rem;
	font-size: var(--wp--preset--font-size--large);
}

.mv-avatar--large {
	width: 8rem;
	height: 8rem;
	font-size: var(--wp--preset--font-size--xx-large);
}

/* --- Stat counter (trust strips, dashboards) ----------------------- */

.mv-stat {
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
}

.mv-stat__value {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	color: var(--wp--preset--color--deep);
	line-height: 1.1;
}

.mv-stat__label {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

.mv-stat-row {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
}

/* --- Hero band (deep navy gradient) -------------------------------- */

.mv-hero {
	background: linear-gradient(160deg, var(--wp--preset--color--deep) 0%, var(--wp--preset--color--deeper) 100%);
	border-radius: var(--wp--custom--radius--hero);
	color: var(--wp--preset--color--base);
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
}

.mv-hero h1,
.mv-hero h2,
.mv-hero h3 {
	color: var(--wp--preset--color--base);
}

.mv-hero__lede {
	color: color-mix(in srgb, var(--wp--preset--color--base) 74%, var(--wp--preset--color--deep));
	font-size: var(--wp--preset--font-size--medium);
}

.mv-hero a:not(.mv-btn) {
	color: var(--wp--preset--color--base);
}

/* --- Contact-channel picker (quote form, DS9) ----------------------
 * fieldset.mv-channel > label.mv-channel__option > input[type=radio]
 * (visually hidden) + span. Selection state rides :checked. */

.mv-channel {
	border: 0;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
}

.mv-channel__option {
	cursor: pointer;
}

.mv-channel__option input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}

.mv-channel__option span {
	display: inline-block;
	padding: 0.5625rem 0.875rem;
	border: 1.5px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--medium);
	background: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	color: var(--wp--preset--color--body);
}

.mv-channel__option input:checked + span {
	border-color: var(--wp--preset--color--deep);
	background: var(--wp--preset--color--teal-tint);
	color: var(--wp--preset--color--deep);
	font-weight: 700;
}

.mv-channel__option input:focus-visible + span {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

/* --- Directory filters (B1) ---------------------------------------
 * Plain GET form; works without JavaScript. */

.mv-filters {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--medium);
	padding: var(--wp--preset--spacing--30);
	margin-block: var(--wp--preset--spacing--40);
}

.mv-filters__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--wp--preset--spacing--30);
}

@media (min-width: 48em) {
	.mv-filters__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.mv-filters__field {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--10);
	font-size: var(--wp--preset--font-size--small);
}

.mv-filters__field label {
	font-weight: 600;
}

.mv-filters__field select,
.mv-filters__field input[type="number"] {
	padding: 0.5rem 0.625rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--small);
	background: var(--wp--preset--color--base);
	font: inherit;
	color: inherit;
	max-width: 100%;
}

.mv-filters__field--check {
	flex-direction: row;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
	align-self: end;
}

.mv-filters__actions {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	margin-top: var(--wp--preset--spacing--30);
}

/* --- Directory results (B1) --------------------------------------- */

.mv-results__count {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
	margin-block: var(--wp--preset--spacing--30);
}

.mv-zero-results {
	border: 1px dashed var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--medium);
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--30);
	text-align: center;
}

.mv-pagination {
	margin-top: var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--small);
}

.mv-pagination .page-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	list-style: none;
	margin: 0;
	padding: 0;
}

.mv-pagination .page-numbers li {
	margin: 0;
}

.mv-pagination a.page-numbers,
.mv-pagination span.page-numbers {
	display: inline-block;
	padding: 0.375rem 0.75rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--small);
	text-decoration: none;
}

.mv-pagination span.current {
	background: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--base);
}

/* --- Procedure cost page (B4) --------------------------------------
 * Poured by medvacay/procedure-cost:
 *   article.mv-cost
 *     header.__header > h1, __lede
 *     section.__us / section.__aggregate > h2, __figure, __figure-note
 *     section.mv-results.__results (disclosure, cards, __unpriced) */

/* Ghost button: outline on deep-navy surfaces only. */
.mv-btn--ghost {
	background: transparent;
	border-color: color-mix(in srgb, var(--wp--preset--color--base) 55%, transparent);
	color: var(--wp--preset--color--base);
}

.mv-btn--ghost:hover {
	background: color-mix(in srgb, var(--wp--preset--color--base) 12%, transparent);
	color: var(--wp--preset--color--base);
}

.mv-cost__hero {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--40);
}

.mv-cost__header {
	flex: 1 1 24rem;
	min-width: 0;
}

.mv-cost__header h1 {
	margin: 0 0 var(--wp--preset--spacing--20);
}

.mv-cost__lede {
	margin: 0;
}

.mv-cost__cta-row {
	margin: var(--wp--preset--spacing--30) 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
}

.mv-cost__compare {
	flex: 1 1 20rem;
	max-width: 28rem;
}

.mv-cost__compare .mv-cost__us,
.mv-cost__compare .mv-cost__aggregate {
	margin: 0;
}

.mv-cost__compare .mv-cost__us {
	border-top: 1px solid var(--wp--preset--color--border);
	margin-top: var(--wp--preset--spacing--30);
	padding-top: var(--wp--preset--spacing--30);
}

.mv-cost__us h2,
.mv-cost__aggregate h2 {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.mv-cost__figure {
	margin: var(--wp--preset--spacing--10) 0 0;
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	color: var(--wp--preset--color--deep);
}

.mv-cost__figure--us {
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--muted);
}

.mv-cost__savings {
	margin: var(--wp--preset--spacing--20) 0 0;
	display: inline-block;
	background: var(--wp--preset--color--sand);
	border: 1px solid var(--wp--preset--color--sand-border);
	border-radius: var(--wp--custom--radius--pill);
	padding: 0.25rem 0.875rem;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	color: var(--wp--preset--color--deep);
}

/* Shared-scale range bar: navy local segment, gray US marker. */
.mv-cost__bar {
	position: relative;
	height: 0.625rem;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--teal-tint);
	margin-top: var(--wp--preset--spacing--30);
}

.mv-cost__bar-mx {
	position: absolute;
	top: 0;
	height: 100%;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--deep);
}

.mv-cost__bar-us {
	position: absolute;
	top: -0.1875rem;
	width: 3px;
	height: 1rem;
	border-radius: 2px;
	background: var(--wp--preset--color--muted);
}

.mv-cost__figure-note {
	margin: var(--wp--preset--spacing--10) 0 0;
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

.mv-cost__lead-band {
	margin-top: var(--wp--preset--spacing--50);
	text-align: center;
}

.mv-cost__lead-band h2 {
	margin: 0 0 var(--wp--preset--spacing--10);
}

.mv-cost__unpriced {
	margin-top: var(--wp--preset--spacing--40);
}

.mv-cost__unpriced h2 {
	font-size: var(--wp--preset--font-size--medium);
}

/* --- Procedure overview page (B3) ----------------------------------
 * Poured by medvacay/procedure-overview:
 *   article.mv-procedure
 *     header.__header > h1, __lede
 *     div.__content (post content)
 *     section.__cost > h2, p, .mv-btn
 *     section.mv-results.__providers (disclosure, __provider-list,
 *       __no-providers, __directory-link)
 *     section.__related > h2, __related-list */

/* DS8: the hero pairs the identity header with a counts-only at-a-glance
 * card. No price figures on the overview — §5.4 by omission. */
.mv-procedure__hero {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--40);
}

.mv-procedure__header {
	flex: 1 1 24rem;
	min-width: 0;
	margin-bottom: 0;
}

.mv-procedure__glance {
	flex: 1 1 16rem;
	max-width: 22rem;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
	background: var(--wp--preset--color--teal-tint);
	border-color: color-mix(in srgb, var(--wp--preset--color--deep) 12%, var(--wp--preset--color--teal-tint));
	box-shadow: none;
}

.mv-procedure__glance-label {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--wp--preset--color--deep);
}

.mv-procedure__glance .mv-btn {
	text-align: center;
}

.mv-procedure__lede {
	color: var(--wp--preset--color--muted);
}

.mv-procedure__content {
	margin-bottom: var(--wp--preset--spacing--40);
}

.mv-procedure__cost {
	background: var(--wp--preset--color--teal-tint);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--deep) 12%, var(--wp--preset--color--teal-tint));
	border-radius: var(--wp--custom--radius--card);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
	margin-block: var(--wp--preset--spacing--30);
}

.mv-procedure__cost h2 {
	margin: 0 0 var(--wp--preset--spacing--10);
	font-size: var(--wp--preset--font-size--medium);
}

.mv-procedure__providers,
.mv-procedure__related {
	margin-top: var(--wp--preset--spacing--40);
}

.mv-procedure__providers h2,
.mv-procedure__related h2 {
	font-size: var(--wp--preset--font-size--medium);
}

.mv-procedure__provider-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.mv-procedure__provider-list li {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--medium);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
}

.mv-procedure__provider-list li > a {
	font-weight: 600;
	text-decoration: none;
}

.mv-procedure__provider-list li > a:hover {
	text-decoration: underline;
}

.mv-procedure__provider-list li + li,
.mv-procedure__related-list li + li {
	margin-top: var(--wp--preset--spacing--10);
}

.mv-procedure__provider-clinic {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

/* --- Specialty landing (B5) ----------------------------------------
 * section.mv-specialty sits between the archive title and the B1
 * filters: term-level intro copy, then the covered §3.3 procedures
 * linked to overview and /cost/ pages. */

.mv-specialty {
	margin-block: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

.mv-specialty__intro {
	max-width: 65ch;
}

.mv-specialty__procedures {
	margin-top: var(--wp--preset--spacing--40);
}

.mv-specialty__procedures h2 {
	font-size: var(--wp--preset--font-size--medium);
}

.mv-specialty__procedure-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
	gap: var(--wp--preset--spacing--20);
	padding: 0;
	list-style: none;
}

/* DS8: procedure links read as tiles, not a link dump. */
.mv-specialty__procedure-list li {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--medium);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
}

.mv-specialty__procedure-list li > a {
	font-weight: 600;
	text-decoration: none;
}

.mv-specialty__procedure-list li > a:hover {
	text-decoration: underline;
}

.mv-specialty__cost-link {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.mv-specialty__cost-link::before {
	content: "· ";
}

/* --- Provider profile (B2) -----------------------------------------
 * Tier-gated sections poured by medvacay/provider-profile:
 *   article.mv-profile
 *     header.__header > __headshot, __header-text (h1 __name, __meta,
 *       __badges, __disclosure)
 *     aside.mv-notice--unclaimed (unclaimed tier only)
 *     section.__section per ladder rung
 *     footer.__footer > __arco */

.mv-profile__header {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--40);
}

.mv-profile__headshot {
	object-fit: cover;
}

/* DS6 two-column body: main column plus the sticky conversion rail. */
.mv-profile__columns {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
	align-items: flex-start;
}

.mv-profile__main {
	min-width: 0;
	width: 100%;
}

.mv-profile__rail {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
}

@media (min-width: 64em) {
	.mv-profile__columns {
		flex-direction: row;
	}

	.mv-profile__main {
		flex: 1 1 0;
	}

	.mv-profile__rail {
		flex: 0 0 21rem;
		position: sticky;
		top: var(--wp--preset--spacing--30);
	}
}

.mv-profile__rail-cta h2 {
	margin: 0 0 var(--wp--preset--spacing--10);
	font-size: var(--wp--preset--font-size--large);
}

.mv-profile__rail-note {
	margin: 0 0 var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

.mv-profile__rail-actions {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--20);
}

.mv-profile__rail-actions .mv-btn {
	text-align: center;
}

.mv-profile__rail-facts {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--body);
}

.mv-profile__rail-facts p {
	margin: 0;
}

.mv-profile__rail-facts p + p {
	margin-top: var(--wp--preset--spacing--10);
}

/* DS6 mobile sticky bar: thumb-height actions pinned to the viewport
 * bottom on small screens; the rail replaces it at desktop widths. */
.mv-profile__stickybar {
	position: fixed;
	inset-inline: 0;
	bottom: 0;
	z-index: 50;
	display: flex;
	gap: var(--wp--preset--spacing--20);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30) calc(var(--wp--preset--spacing--20) + env(safe-area-inset-bottom));
	background: var(--wp--preset--color--base);
	border-top: 1px solid var(--wp--preset--color--border);
	box-shadow: 0 -6px 24px rgba(11, 59, 77, 0.12);
}

.mv-profile__stickybar .mv-btn {
	flex: 1 1 0;
	text-align: center;
}

@media (min-width: 64em) {
	.mv-profile__stickybar {
		display: none;
	}
}

/* Leave breathing room above the fixed bar on small screens. */
@media (max-width: 63.99em) {
	.mv-profile:has(.mv-profile__stickybar) {
		padding-bottom: 5rem;
	}
}

.mv-profile__stats {
	margin-top: var(--wp--preset--spacing--30);
	gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

.mv-profile__check {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--verify-ink);
	background: var(--wp--preset--color--verify-tint);
	border-radius: var(--wp--custom--radius--medium);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	margin: 0 0 var(--wp--preset--spacing--30);
}

.mv-profile__check a {
	color: inherit;
}

.mv-profile__policy {
	margin-top: var(--wp--preset--spacing--30);
}

.mv-profile__policy h3 {
	margin: 0 0 var(--wp--preset--spacing--10);
	font-size: var(--wp--preset--font-size--medium);
}

.mv-profile__policy p {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
}

.mv-profile__header-text {
	flex: 1 1 16rem;
}

.mv-profile__name {
	margin: 0;
}

.mv-profile__meta {
	margin: var(--wp--preset--spacing--10) 0 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.mv-profile__badges {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--10);
	margin: var(--wp--preset--spacing--20) 0 0;
}

.mv-profile__disclosure {
	margin-top: var(--wp--preset--spacing--20);
}

/* DS11: the unclaimed notice goes warm sand (honest, not alarming) and
 * splits into the patient explanation and the ES claim rail. */
.mv-notice {
	border: 1px solid var(--wp--preset--color--sand-border);
	border-radius: var(--wp--custom--radius--card);
	background: var(--wp--preset--color--sand);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--40);
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--40);
}

.mv-notice__patient {
	flex: 1 1 18rem;
	min-width: 0;
}

.mv-notice__claim {
	flex: 1 1 18rem;
	min-width: 0;
	border-left: 3px solid var(--wp--preset--color--sand-border);
	padding-left: var(--wp--preset--spacing--30);
}

.mv-notice h2 {
	margin: 0;
	font-size: var(--wp--preset--font-size--medium);
}

.mv-notice p {
	margin: var(--wp--preset--spacing--20) 0 0;
	font-size: var(--wp--preset--font-size--small);
}

.mv-notice__claim p:first-child {
	margin-top: 0;
}

.mv-profile__salvage {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	background: var(--wp--preset--color--teal-tint);
	border-radius: var(--wp--custom--radius--card);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--40);
}

.mv-profile__salvage-title {
	margin: 0;
	font-weight: 700;
	color: var(--wp--preset--color--deep);
}

.mv-profile__salvage-note {
	margin: var(--wp--preset--spacing--10) 0 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--body);
}

.mv-profile__section {
	border-top: 1px solid var(--wp--preset--color--border);
	padding-top: var(--wp--preset--spacing--40);
	margin-top: var(--wp--preset--spacing--40);
}

.mv-profile__section h2 {
	margin-top: 0;
}

.mv-profile__lede {
	font-size: var(--wp--preset--font-size--medium);
}

.mv-profile__facts {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--wp--preset--spacing--10) var(--wp--preset--spacing--30);
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
}

.mv-profile__facts dt {
	color: var(--wp--preset--color--muted);
}

.mv-profile__facts dd {
	margin: 0;
}

.mv-profile__procedure-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--10);
}

.mv-profile__procedure-list li {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	padding: 0.125rem 0.625rem;
	font-size: var(--wp--preset--font-size--small);
}

.mv-profile__price-range {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--medium);
	padding: var(--wp--preset--spacing--30);
}

.mv-profile__price-range + .mv-profile__price-range {
	margin-top: var(--wp--preset--spacing--30);
}

.mv-profile__price-range h3 {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.mv-profile__faq-item h3 {
	margin-bottom: var(--wp--preset--spacing--10);
	font-size: var(--wp--preset--font-size--medium);
}

.mv-gallery {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
	gap: var(--wp--preset--spacing--20);
}

.mv-gallery img {
	width: 100%;
	height: auto;
	border-radius: var(--wp--custom--radius--small);
}

.mv-gallery figure {
	margin: 0;
}

.mv-gallery figcaption {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
	margin-top: var(--wp--preset--spacing--10);
}

.mv-profile__address {
	font-style: normal;
	margin-bottom: var(--wp--preset--spacing--30);
}

.mv-profile__footer {
	border-top: 1px solid var(--wp--preset--color--border);
	margin-top: var(--wp--preset--spacing--40);
	padding-top: var(--wp--preset--spacing--30);
}

.mv-profile__arco {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

/* --- Provider sales and pricing pages (E4) -------------------------
 * /for-providers/ and /for-providers/precios/. The plugin pours the
 * markup (the amounts are catalog-derived, so they belong with the
 * catalog); everything below is presentation:
 *   div.mv-fp
 *     section.mv-plans   > .mv-table-scroll > table.mv-plans__table
 *     section.mv-founding, section.mv-faq, section.mv-cta
 *     p.mv-disclosure (shared with the directory) */

.mv-fp > section {
	margin-block: var(--wp--preset--spacing--50);
}

.mv-fp__lede {
	font-size: var(--wp--preset--font-size--medium);
}

.mv-fp__steps ol {
	padding-left: 1.25rem;
}

.mv-fp__steps li + li {
	margin-top: var(--wp--preset--spacing--20);
}

/* Wide comparison tables scroll inside their own box rather than
 * pushing the page sideways on a phone. */

.mv-table-scroll {
	overflow-x: auto;
	margin-block: var(--wp--preset--spacing--30);
}

.mv-plans__table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--wp--preset--font-size--small);
	text-align: left;
}

.mv-plans__table th,
.mv-plans__table td {
	border: 1px solid var(--wp--preset--color--border);
	padding: var(--wp--preset--spacing--20);
	vertical-align: top;
}

.mv-plans__table thead th {
	background: var(--wp--preset--color--surface);
	white-space: nowrap;
}

.mv-plans__table tbody th {
	font-weight: 400;
}

.mv-plans__col-note,
.mv-plans__detail {
	display: block;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 400;
	color: var(--wp--preset--color--muted);
}

.mv-plans__prices td,
.mv-plans__cell--price {
	font-weight: 600;
	white-space: nowrap;
}

.mv-plans__cell--no {
	color: var(--wp--preset--color--muted);
}

.mv-plans__note {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

/* DS12: the sales hero and what-you-receive trio. */
.mv-fp__hero h2 {
	margin: 0 0 var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--xx-large);
}

.mv-fp__hero-ctas {
	margin: var(--wp--preset--spacing--30) 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
}

.mv-fp__receives-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--wp--preset--spacing--30);
}

@media (min-width: 48em) {
	.mv-fp__receives-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.mv-fp__receives-grid h3 {
	margin: 0 0 var(--wp--preset--spacing--10);
	font-size: var(--wp--preset--font-size--large);
}

.mv-fp__receives-grid p {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
}

/* DS12: the Featured column carries the visual accent — comparison table
 * column 4 (concepto · sin reclamar · basic · featured · showcase). */
.mv-plans__table--comparison th:nth-child(4),
.mv-plans__table--comparison td:nth-child(4) {
	background: color-mix(in srgb, var(--wp--preset--color--cta) 7%, var(--wp--preset--color--base));
	border-inline-color: color-mix(in srgb, var(--wp--preset--color--cta) 45%, var(--wp--preset--color--base));
}

/* DS12: the founding offer looks like an offer — sand with coral edge —
 * while its wording stays exactly the D1 contract (15 months, paid in
 * full, never a trial). */
.mv-founding {
	border: 1.5px solid var(--wp--preset--color--cta);
	border-radius: var(--wp--custom--radius--card);
	background: var(--wp--preset--color--sand);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
}

.mv-founding h2 {
	margin-top: 0;
}

.mv-founding__list {
	margin: var(--wp--preset--spacing--30) 0;
	padding-left: 1.25rem;
}

.mv-founding__list li + li {
	margin-top: var(--wp--preset--spacing--20);
}

.mv-faq__item + .mv-faq__item {
	margin-top: var(--wp--preset--spacing--30);
}

.mv-faq__item h3 {
	margin-bottom: var(--wp--preset--spacing--10);
	font-size: var(--wp--preset--font-size--medium);
}

.mv-cta {
	border-top: 1px solid var(--wp--preset--color--border);
	padding-top: var(--wp--preset--spacing--40);
}

.mv-cta__note {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

/* --- Provider panel & leads inbox (DS13, ES) ----------------------- */

.mv-leads__list {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--wp--preset--font-size--small);
	text-align: left;
}

.mv-leads__list th,
.mv-leads__list td {
	border-bottom: 1px solid var(--wp--preset--color--border);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30) var(--wp--preset--spacing--20) 0;
}

.mv-leads__list thead th {
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--muted);
}

.mv-leads__list td a {
	font-weight: 600;
	text-decoration: none;
}

.mv-leads__list td a:hover {
	text-decoration: underline;
}

/* Lead status chips: sand (new) → teal tint (contacted) → navy (booked)
 * → gray (lost). Never verification green. */
span.mv-leads__status {
	display: inline-block;
	padding: 0.125rem 0.625rem;
	border-radius: var(--wp--custom--radius--pill);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
}

.mv-leads__status--new {
	background: var(--wp--preset--color--sand);
	border: 1px solid var(--wp--preset--color--sand-border);
	color: var(--wp--preset--color--warning);
}

.mv-leads__status--contacted {
	background: var(--wp--preset--color--teal-tint);
	color: var(--wp--preset--color--deep);
}

.mv-leads__status--booked {
	background: var(--wp--preset--color--deep);
	color: var(--wp--preset--color--base);
}

.mv-leads__status--lost {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--muted);
}

.mv-leads__detail {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--card);
	box-shadow: var(--wp--custom--shadow--card);
	padding: var(--wp--preset--spacing--40);
}

.mv-leads__table th {
	color: var(--wp--preset--color--muted);
	font-weight: 600;
	padding-right: var(--wp--preset--spacing--30);
	text-align: left;
}

.mv-leads__table th,
.mv-leads__table td {
	padding-block: var(--wp--preset--spacing--10);
	vertical-align: baseline;
}

.mv-leads__reply {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	margin-block: var(--wp--preset--spacing--30);
}

.mv-leads__detail blockquote {
	margin: 0 0 var(--wp--preset--spacing--30);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	background: var(--wp--preset--color--surface);
	border-left: 3px solid var(--wp--preset--color--border);
	font-size: var(--wp--preset--font-size--small);
}

form.mv-leads__status select {
	padding: 0.5rem 0.625rem;
	border: 1.5px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--medium);
	font: inherit;
}

form.mv-leads__status button {
	padding: 0.5625rem 1.125rem;
	border: 1.5px solid var(--wp--preset--color--deep);
	border-radius: var(--wp--custom--radius--medium);
	background: var(--wp--preset--color--deep);
	color: var(--wp--preset--color--base);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.mv-leads__notice--success {
	background: var(--wp--preset--color--teal-tint);
	border-radius: var(--wp--custom--radius--medium);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	color: var(--wp--preset--color--deep);
	font-weight: 600;
}

/* Panel editor (E2) form fields. */
.mv-panel__field input[type="text"],
.mv-panel__field input[type="number"],
.mv-panel__field input[type="email"],
.mv-panel__field input[type="url"],
.mv-panel__field select,
.mv-panel__field textarea {
	width: 100%;
	max-width: 32rem;
	padding: 0.625rem 0.75rem;
	border: 1.5px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--medium);
	font: inherit;
	color: var(--wp--preset--color--body);
}

.mv-panel__field label {
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}

.mv-panel__row {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--medium);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--20);
	list-style: none;
}

/* --- Style-guide-only helpers ------------------------------------- */

.mv-type-scale,
.mv-spacing-scale,
.mv-swatches {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--wp--preset--spacing--20);
}

.mv-swatches li,
.mv-spacing-scale li {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--small);
}

.mv-swatch {
	display: inline-block;
	width: 3rem;
	height: 2rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--small);
	flex: none;
}

.mv-spacing-bar {
	display: inline-block;
	height: 1rem;
	background: var(--wp--preset--color--accent);
	border-radius: var(--wp--custom--radius--small);
	flex: none;
}

/* --- Quote form (DS9a) ----------------------------------------------
 * Styles the F1 shortcode markup: card shell, step progress, radio-card
 * choices, reassurance microcopy. The flow itself lives in the plugin. */

.mv-quote {
	max-width: 40rem;
	margin-inline: auto;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--hero);
	box-shadow: var(--wp--custom--shadow--raised);
	padding: var(--wp--preset--spacing--40);
}

.mv-quote__progress {
	margin: 0 0 var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.mv-quote fieldset {
	border: 0;
	margin: 0 0 var(--wp--preset--spacing--30);
	padding: 0;
}

.mv-quote legend,
.mv-quote label {
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}

.mv-quote legend {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--large);
	margin-bottom: var(--wp--preset--spacing--20);
}

/* Radio answers as selectable cards (timing and budget steps). */
.mv-quote fieldset:not(.mv-channel) p {
	margin: 0 0 var(--wp--preset--spacing--20);
}

.mv-quote fieldset:not(.mv-channel) label {
	display: block;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	border: 1.5px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--medium);
	cursor: pointer;
}

.mv-quote fieldset:not(.mv-channel) label:has(input:checked) {
	border-color: var(--wp--preset--color--deep);
	background: var(--wp--preset--color--teal-tint);
}

.mv-quote input[type="text"],
.mv-quote input[type="email"],
.mv-quote input[type="tel"],
.mv-quote select,
.mv-quote textarea {
	width: 100%;
	padding: 0.75rem 0.875rem;
	border: 1.5px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--medium);
	font: inherit;
	color: var(--wp--preset--color--body);
	background: var(--wp--preset--color--base);
}

.mv-quote small {
	color: var(--wp--preset--color--muted);
}

.mv-quote button[type="submit"]:not(.mv-btn) {
	display: inline-block;
	padding: 0.8125rem 1.75rem;
	border: 1.5px solid var(--wp--preset--color--cta);
	border-radius: var(--wp--custom--radius--medium);
	background: var(--wp--preset--color--cta);
	color: var(--wp--preset--color--deeper);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.mv-quote__error {
	background: var(--wp--preset--color--sand);
	border: 1px solid var(--wp--preset--color--sand-border);
	border-radius: var(--wp--custom--radius--medium);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	color: var(--wp--preset--color--warning);
	font-weight: 600;
	font-size: var(--wp--preset--font-size--small);
}

.mv-quote__reassure {
	margin: var(--wp--preset--spacing--20) 0 0;
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

/* --- Homepage (DS4) -------------------------------------------------
 * Poured by medvacay/home into templates/front-page.html. Every figure
 * on the page is computed in inc/home.php — see that file's header. */

.mv-home > section,
.mv-home > aside {
	margin-block: var(--wp--preset--spacing--50);
}

.mv-home__hero {
	text-align: center;
}

.mv-home__title {
	margin: 0 0 var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--xxx-large);
}

.mv-home__hero .mv-hero__lede {
	max-width: 42rem;
	margin-inline: auto;
}

.mv-home__search {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--wp--preset--spacing--20);
	margin-top: var(--wp--preset--spacing--40);
}

.mv-home__search select {
	flex: 1 1 16rem;
	max-width: 24rem;
	padding: 0.75rem 0.875rem;
	border: 1.5px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--medium);
	font: inherit;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--body);
}

.mv-home__chips {
	margin: var(--wp--preset--spacing--30) 0 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--wp--preset--spacing--20);
}

.mv-home__chip {
	display: inline-block;
	padding: 0.375rem 1rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 25%, transparent);
	border-radius: var(--wp--custom--radius--pill);
	background: color-mix(in srgb, var(--wp--preset--color--base) 12%, transparent);
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-decoration: none;
}

.mv-home__chip:hover {
	background: color-mix(in srgb, var(--wp--preset--color--base) 22%, transparent);
	color: var(--wp--preset--color--base);
}

.mv-home__counters .mv-stat-row {
	justify-content: center;
}

.mv-home__tiles {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--wp--preset--spacing--30);
}

@media (min-width: 48em) {
	.mv-home__tiles {
		grid-template-columns: repeat(4, 1fr);
	}
}

.mv-home__tile {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--10);
	text-decoration: none;
}

.mv-home__tile-name {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	color: var(--wp--preset--color--deep);
}

.mv-home__tile-blurb {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

.mv-home__tile-price {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--body);
}

.mv-home__tile-price strong {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	color: var(--wp--preset--color--deep);
}

.mv-home__price-note {
	margin-top: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

.mv-home__compare-table {
	width: 100%;
	border-collapse: collapse;
	text-align: left;
}

.mv-home__compare-table th,
.mv-home__compare-table td {
	border-bottom: 1px solid var(--wp--preset--color--border);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30) var(--wp--preset--spacing--20) 0;
	vertical-align: baseline;
}

.mv-home__compare-table thead th {
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--muted);
}

.mv-home__compare-mx {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	color: var(--wp--preset--color--deep);
	white-space: nowrap;
}

.mv-home__compare-us {
	font-variant-numeric: tabular-nums;
	color: var(--wp--preset--color--muted);
	white-space: nowrap;
}

.mv-home__compare-note {
	margin-top: var(--wp--preset--spacing--30);
}

.mv-home__verify {
	background: var(--wp--preset--color--teal-tint);
	border-radius: var(--wp--custom--radius--hero);
	padding: var(--wp--preset--spacing--40);
}

.mv-home__verify-steps {
	padding-left: 1.25rem;
}

.mv-home__verify-steps li + li {
	margin-top: var(--wp--preset--spacing--20);
}

.mv-home__neighborhood-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
	gap: var(--wp--preset--spacing--30);
}

.mv-home__neighborhood {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--10);
	text-decoration: none;
	background: var(--wp--preset--color--sand);
	border-color: var(--wp--preset--color--sand-border);
	box-shadow: none;
}

.mv-home__neighborhood-name {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	color: var(--wp--preset--color--deep);
}

.mv-home__neighborhood-blurb {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

.mv-home__cta {
	text-align: center;
}

.mv-home__providers {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	background: var(--wp--preset--color--teal-tint);
	border-radius: var(--wp--custom--radius--card);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

.mv-home__providers p {
	margin: 0;
}

/* --- Neighborhood page (B6) ----------------------------------------
 * Poured by medvacay/neighborhood-landing:
 *   article.mv-neighborhood
 *     header.__header > h1, __lede
 *     div.__content (post content)
 *     section.mv-results.__providers (disclosure, count, .mv-card-grid
 *       of B1 cards, __no-providers, __directory-link)
 *     section.__guides > h2, __guide-list */

/* DS8: editorial sand hero — the "vacay" register for logistics content. */
.mv-neighborhood__header {
	background: var(--wp--preset--color--sand);
	border: 1px solid var(--wp--preset--color--sand-border);
	border-radius: var(--wp--custom--radius--hero);
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--40);
}

.mv-neighborhood__header h1 {
	margin: 0 0 var(--wp--preset--spacing--10);
}

.mv-neighborhood__lede {
	margin: 0;
	color: var(--wp--preset--color--body);
	max-width: 46rem;
}

.mv-neighborhood__content {
	margin-bottom: var(--wp--preset--spacing--40);
	max-width: 65ch;
}

.mv-neighborhood__providers,
.mv-neighborhood__guides {
	margin-top: var(--wp--preset--spacing--40);
}

.mv-neighborhood__providers h2,
.mv-neighborhood__guides h2 {
	font-size: var(--wp--preset--font-size--medium);
}

.mv-neighborhood__guide-list li + li {
	margin-top: var(--wp--preset--spacing--10);
}

/* --- Guide page (B6) -----------------------------------------------
 * Poured by medvacay/guide-article:
 *   article.mv-guide
 *     header.__header > h1, __meta (updated date)
 *     div.__content (post content)
 *     nav.__related > h2 + __related-list per group */

.mv-guide__header {
	background: var(--wp--preset--color--sand);
	border: 1px solid var(--wp--preset--color--sand-border);
	border-radius: var(--wp--custom--radius--hero);
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--40);
}

.mv-guide__header h1 {
	margin: 0 0 var(--wp--preset--spacing--10);
}

.mv-guide__meta {
	margin: 0;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.mv-guide__content {
	max-width: 65ch;
}

.mv-guide__related {
	margin-top: var(--wp--preset--spacing--40);
}

.mv-guide__related h2 {
	font-size: var(--wp--preset--font-size--medium);
}

.mv-guide__related-list li + li {
	margin-top: var(--wp--preset--spacing--10);
}

/* Guides covering a procedure (B6 backlink section on the B3 overview). */
.mv-procedure__guides {
	margin-top: var(--wp--preset--spacing--40);
}

.mv-procedure__guides h2 {
	font-size: var(--wp--preset--font-size--medium);
}

.mv-procedure__guide-list li + li {
	margin-top: var(--wp--preset--spacing--10);
}

/* --- Global nav (B8) -----------------------------------------------
 * Poured by medvacay/global-nav into parts/header.html:
 *   div.mv-nav
 *     nav.__primary > ul.mv-nav__list
 *     form.__search (label sr-only, input[type=search], button)
 *     nav.__specialties > ul.mv-nav__list--specialties */

.mv-nav {
	align-items: center;
	display: flex;
	flex: 1 1 auto;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	justify-content: flex-end;
}

.mv-nav ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--10) var(--wp--preset--spacing--30);
	list-style: none;
	margin: 0;
	padding: 0;
}

.mv-nav a {
	text-decoration: none;
}

.mv-nav a:hover {
	text-decoration: underline;
}

.mv-nav__search {
	align-items: center;
	display: flex;
	gap: var(--wp--preset--spacing--10);
}

.mv-nav__search input[type="search"] {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 4px;
	font: inherit;
	max-width: 14rem;
	padding: 0.35rem 0.6rem;
}

.mv-nav__specialties {
	flex-basis: 100%;
}

.mv-nav__list--specialties {
	font-size: var(--wp--preset--font-size--small);
	justify-content: flex-end;
}

.mv-nav__lang-note {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

/* --- Footer nav (B8) -----------------------------------------------
 * Poured by medvacay/footer-nav into parts/footer.html:
 *   nav.mv-footer-nav > div.__group (h2.__title + ul.__list) per group */

.mv-footer-nav {
	display: grid;
	gap: var(--wp--preset--spacing--40);
	grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
	margin-bottom: var(--wp--preset--spacing--50);
}

.mv-footer-nav__title {
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.04em;
	margin: 0 0 var(--wp--preset--spacing--20);
	text-transform: uppercase;
}

.mv-footer-nav__list {
	font-size: var(--wp--preset--font-size--small);
	list-style: none;
	margin: 0;
	padding: 0;
}

.mv-footer-nav__list li + li {
	margin-top: var(--wp--preset--spacing--10);
}

.mv-footer-nav__list a {
	text-decoration: none;
}

.mv-footer-nav__list a:hover {
	text-decoration: underline;
}

/* --- Search results (B8) -------------------------------------------
 * Poured by medvacay/search-results into templates/search.html. Provider
 * results reuse the whole B1 card; the rest render as:
 *   article.mv-card.mv-search-result
 *     header.__header > p.__type + h2.__title
 *     p.__excerpt */

.mv-search-result__type {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.04em;
	margin: 0 0 var(--wp--preset--spacing--10);
	text-transform: uppercase;
}

.mv-search-result__title {
	font-size: var(--wp--preset--font-size--medium);
	margin: 0;
}

.mv-search-result__title a {
	text-decoration: none;
}

.mv-search-result__title a:hover {
	text-decoration: underline;
}

.mv-search-result__excerpt {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	margin: var(--wp--preset--spacing--20) 0 0;
}

/* --- Procedures index (DS15) ---------------------------------------
 * Poured by medvacay/procedure-index into templates/archive-procedure.html:
 *   div.mv-index
 *     header.__header > h1, p.__lede
 *     section.__section per §3.3 specialty parent > h2, ul.__grid
 *       li.mv-card.__tile (covered term: name → overview, count, cost link)
 *       li.__tile.__tile--bare (postless term: name → filtered directory)
 *     section.mv-hero.__cta (the DS4 CTA band pattern) */

.mv-index > section {
	margin-block: var(--wp--preset--spacing--50);
}

.mv-index__header {
	max-width: 46rem;
}

.mv-index__lede {
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--body);
}

.mv-index__grid {
	list-style: none;
	margin: var(--wp--preset--spacing--30) 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--wp--preset--spacing--30);
}

@media (min-width: 40em) {
	.mv-index__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 64em) {
	.mv-index__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.mv-index__tile {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--10);
}

.mv-index__tile--bare {
	border: 1px dashed var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--card);
	padding: var(--wp--preset--spacing--30);
}

.mv-index__tile-name {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	color: var(--wp--preset--color--deep);
	text-decoration: none;
}

.mv-index__tile-name:hover {
	text-decoration: underline;
}

.mv-index__tile--bare .mv-index__tile-name {
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--ink);
}

.mv-index__tile-count {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

.mv-index__cost-link {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

.mv-index__cta {
	text-align: center;
}
