/* ==========================================================================
   MediConnect — component styles
   Tokens live in theme.json. This file carries the component detail the
   design specifies that block supports alone cannot express.
   ========================================================================== */

:root {
	--mc-primary: #D6135A;
	--mc-primary-dark: #B00E4A;
	--mc-primary-tint: #FDE9F1;
	--mc-primary-edge: #F7C9DC;
	--mc-accent: #17709F;
	--mc-accent-tint: #E8F4FB;
	--mc-accent-soft: #F1F8FC;
	--mc-accent-edge: #CFE7F5;
	--mc-ink: #1F2937;
	--mc-body: #374151;
	--mc-muted: #6B7280;
	--mc-faint: #9CA3AF;
	--mc-border: #D1D5DB;
	--mc-border-light: #E5E7EB;
	--mc-chip: #F1F3F5;
	--mc-base: #F8F9FA;
	--mc-surface: #FFFFFF;
	--mc-radius-sm: 6px;
	--mc-radius: 8px;
	--mc-radius-lg: 10px;
	--mc-shadow-card: 0 4px 14px rgba(31, 41, 55, 0.10);
	--mc-shadow-lift: 0 6px 18px rgba(31, 41, 55, 0.12);
	--mc-ease: 220ms;
}

* { box-sizing: border-box; }

body { -webkit-font-smoothing: antialiased; text-wrap: pretty; }

h1, h2, h3, h4 { text-wrap: balance; }

:focus-visible {
	outline: 2px solid var(--mc-primary);
	outline-offset: 2px;
}

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

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

.mc-skip-link:focus {
	position: fixed !important;
	top: 12px; left: 12px;
	z-index: 999;
	width: auto; height: auto;
	clip-path: none;
	padding: 12px 18px;
	background: var(--mc-primary);
	color: #fff;
	border-radius: var(--mc-radius-sm);
	font-weight: 600;
	text-decoration: none;
}

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

.mc-topbar {
	background: var(--mc-ink);
	color: #D1D5DB;
	font-size: 13px;
}
.mc-topbar a { color: #D1D5DB; text-decoration: none; }
.mc-topbar a:hover { color: #fff; text-decoration: underline; }

.mc-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--mc-surface);
	border-bottom: 1px solid var(--mc-border);
}
.mc-header .wp-block-group { min-height: 74px; }

.mc-logo-mark {
	width: 34px; height: 34px;
	border-radius: var(--mc-radius);
	background: var(--mc-primary);
	color: #fff;
	display: flex; align-items: center; justify-content: center;
	font: 700 20px/1 'Instrument Sans', system-ui, sans-serif;
	flex: none;
}
.mc-logo-text {
	font: 600 18px/1 'Instrument Sans', system-ui, sans-serif;
	letter-spacing: -0.03em;
	color: var(--mc-ink);
	text-decoration: none;
}
.mc-logo-text .mc-logo-accent { color: var(--mc-primary); }

.mc-nav .wp-block-navigation-item__content {
	font-size: 15px;
	font-weight: 500;
	color: var(--mc-body);
	padding: 6px 0;
	border-bottom: 2px solid transparent;
	text-decoration: none;
	white-space: nowrap;
}
.mc-nav .wp-block-navigation-item__content:hover,
.mc-nav .current-menu-item > .wp-block-navigation-item__content {
	color: var(--mc-primary);
	text-decoration: none;
}
.mc-nav .current-menu-item > .wp-block-navigation-item__content {
	border-bottom-color: var(--mc-primary);
}

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

.wp-block-button__link { transition: background var(--mc-ease), color var(--mc-ease); }

.wp-block-button.is-style-mc-outline .wp-block-button__link {
	background: transparent;
	color: var(--mc-primary);
	border: 1.5px solid var(--mc-primary);
}
.wp-block-button.is-style-mc-outline .wp-block-button__link:hover {
	background: var(--mc-primary-tint);
	color: var(--mc-primary-dark);
}

.wp-block-button.is-style-mc-on-dark .wp-block-button__link {
	background: transparent;
	color: #fff;
	border: 1.5px solid rgba(255, 255, 255, 0.7);
}
.wp-block-button.is-style-mc-on-dark .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
}

.mc-btn-invert .wp-block-button__link {
	background: #fff;
	color: var(--mc-primary);
}
.mc-btn-invert .wp-block-button__link:hover {
	background: var(--mc-base);
	color: var(--mc-primary-dark);
}

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

.mc-card,
.is-style-mc-card {
	background: var(--mc-surface);
	border: 1px solid var(--mc-border);
	border-radius: var(--mc-radius);
	transition: box-shadow var(--mc-ease), border-color var(--mc-ease), transform var(--mc-ease);
}
.mc-card--hover:hover,
.mc-card-link:hover .mc-card {
	box-shadow: var(--mc-shadow-card);
	border-color: var(--mc-primary);
	transform: translateY(-2px);
}
.mc-card--media { overflow: hidden; padding: 0; }
.mc-card--media:hover { box-shadow: var(--mc-shadow-lift); transform: translateY(-3px); }

.mc-card-link { text-decoration: none; color: inherit; display: block; }
.mc-card-link:hover { text-decoration: none; }

/* Query-loop cards */
.mc-grid .wp-block-post {
	background: var(--mc-surface);
	border: 1px solid var(--mc-border);
	border-radius: var(--mc-radius);
	overflow: hidden;
	transition: box-shadow var(--mc-ease), border-color var(--mc-ease), transform var(--mc-ease);
	display: flex;
	flex-direction: column;
}
.mc-grid .wp-block-post:hover {
	box-shadow: var(--mc-shadow-card);
	border-color: var(--mc-primary);
	transform: translateY(-2px);
}
.mc-grid .wp-block-post > *:not(.wp-block-post-featured-image) {
	padding-left: 22px;
	padding-right: 22px;
}
.mc-grid .wp-block-post > *:first-child:not(.wp-block-post-featured-image) { padding-top: 22px; }
.mc-grid .wp-block-post > *:last-child { padding-bottom: 22px; margin-top: auto; }
.mc-grid .wp-block-post-featured-image { margin-bottom: 18px; }
.mc-grid .wp-block-post-featured-image img {
	width: 100%;
	height: 172px;
	object-fit: cover;
	display: block;
}
.mc-grid .wp-block-post-title { font-size: 1.1875rem; font-weight: 600; line-height: 1.35; }
.mc-grid .wp-block-post-title a { color: var(--mc-ink); text-decoration: none; }
.mc-grid .wp-block-post-title a:hover { color: var(--mc-primary); text-decoration: none; }
.mc-grid .wp-block-post-excerpt__excerpt { font-size: 0.9375rem; line-height: 1.55; color: var(--mc-muted); }
.mc-grid .wp-block-post-excerpt__more-link { display: none; }

.mc-grid--flat .wp-block-post { border-radius: var(--mc-radius); }
.mc-grid--flat .wp-block-post-featured-image img { height: 150px; }

/* Placeholder media, used where the design shows a greyed image slot */
.mc-media-placeholder {
	background: var(--mc-border-light);
	color: var(--mc-faint);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	border-radius: var(--mc-radius-lg);
	min-height: 172px;
	text-align: center;
	padding: 16px;
}

.mc-icon-tile {
	width: 38px; height: 38px;
	border-radius: var(--mc-radius);
	background: var(--mc-accent-soft);
	border: 1px solid var(--mc-accent-edge);
	flex: none;
}

/* The hero carries a photograph behind the gradient scrim, so the grey
   fallback must not show through at the edges of the cover fit. */
.mc-hero { background-color: #2A3644; background-size: cover; background-position: 50% 45%; }

/* Pills, chips and badges ------------------------------------------------ */

.mc-pill {
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	padding: 4px 9px;
	border-radius: 99px;
	background: var(--mc-primary-tint);
	color: var(--mc-primary);
}
.mc-pill--accent { background: var(--mc-accent-tint); color: var(--mc-accent); }
.mc-pill--solid { background: var(--mc-accent); color: #fff; }

.mc-chip {
	display: inline-block;
	font-size: 12.5px;
	color: var(--mc-body);
	background: var(--mc-chip);
	border: 1px solid var(--mc-border-light);
	padding: 4px 10px;
	border-radius: 99px;
}

/*
 * core/post-terms puts its className on the wrapper, not on each term, so a
 * multi-term list renders as one long pill. Reset the wrapper and style the
 * individual term links instead.
 */
.wp-block-post-terms.mc-chip,
.wp-block-post-terms.mc-pill,
.wp-block-post-terms.mc-pill--accent {
	background: none;
	border: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}
.wp-block-post-terms__separator { display: none; }

.wp-block-post-terms.mc-chip a {
	font-size: 12.5px;
	color: var(--mc-body);
	background: var(--mc-chip);
	border: 1px solid var(--mc-border-light);
	padding: 4px 10px;
	border-radius: 99px;
	text-decoration: none;
}
.wp-block-post-terms.mc-chip a:hover {
	border-color: var(--mc-primary);
	color: var(--mc-primary);
	text-decoration: none;
}

.wp-block-post-terms.mc-pill a {
	font-size: 12px;
	font-weight: 600;
	padding: 4px 9px;
	border-radius: 99px;
	background: var(--mc-primary-tint);
	color: var(--mc-primary);
	text-decoration: none;
}
.wp-block-post-terms.mc-pill.mc-pill--accent a {
	background: var(--mc-accent-tint);
	color: var(--mc-accent);
}
.wp-block-post-terms.mc-pill a:hover { text-decoration: none; opacity: .85; }

.mc-filter {
	display: inline-block;
	font-size: 14px;
	font-weight: 600;
	padding: 10px 16px;
	border-radius: 99px;
	border: 1px solid var(--mc-border);
	background: var(--mc-surface);
	color: var(--mc-body);
	text-decoration: none;
	cursor: pointer;
	transition: background var(--mc-ease), border-color var(--mc-ease), color var(--mc-ease);
}
.mc-filter:hover { border-color: var(--mc-primary); color: var(--mc-primary); text-decoration: none; }
.mc-filter.is-active,
.mc-filter[aria-current="page"] {
	background: var(--mc-primary);
	border-color: var(--mc-primary);
	color: #fff;
}

.mc-eyebrow {
	font-size: 12.5px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--mc-muted);
	font-weight: 600;
}

.mc-hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.3);
	padding: 6px 12px;
	border-radius: 99px;
	font-size: 13px;
	font-weight: 600;
	color: #fff;
}

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

/*
 * Must stay in normal block flow — do not add display:flex or display:grid here.
 *
 * WordPress's constrained layout puts `margin-left:auto; margin-right:auto !important`
 * on every layout child. In block flow that is harmless (an auto-width block fills
 * its parent). In flex or grid those auto margins make the item shrink-wrap to its
 * content and centre, which collapsed the 1200px .alignwide wrapper to the 620px of
 * the text column and pushed the whole hero into the middle of the screen.
 *
 * Vertical alignment uses `align-content`, which applies to block containers in
 * modern browsers (Chrome 123+, Safari 17.5+, Firefox 125+) without turning children
 * into flex/grid items. Older browsers simply top-align, which is a fine fallback.
 */
.mc-hero {
	position: relative;
	background: var(--mc-border-light);
	min-height: 520px;
	align-content: center;
}
.mc-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	/* Strengthened over the design's values: the production photograph has a bright
	   sky where the design mock had flat grey, and white display text over it fell
	   below the WCAG AA 4.5:1 threshold. */
	background: linear-gradient(90deg, rgba(15,32,50,0.90) 0%, rgba(15,32,50,0.74) 55%, rgba(15,32,50,0.48) 100%);
	pointer-events: none;
}
.mc-hero > * { position: relative; z-index: 1; }
.mc-hero, .mc-hero :is(h1, h2, p, li) { color: #fff; }
.mc-hero .mc-hero-sub { color: var(--mc-border-light); }

.mc-hero--dest { min-height: 380px; align-content: end; }
.mc-hero--dest::after {
	background: linear-gradient(0deg, rgba(15,32,50,0.92) 0%, rgba(15,32,50,0.55) 70%, rgba(15,32,50,0.30) 100%);
}

/* Stat bar --------------------------------------------------------------- */

.mc-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.mc-stat { text-align: center; padding: 8px 12px; border-right: 1px solid var(--mc-border-light); }
.mc-stat:last-child { border-right: 0; }
.mc-stat-value {
	font: 700 34px/1 'Instrument Sans', system-ui, sans-serif;
	color: var(--mc-primary);
	margin-bottom: 8px;
}
.mc-stat-label { font-size: 15px; color: var(--mc-muted); }

/* Numbered step tiles ---------------------------------------------------- */

.mc-step-num {
	width: 42px; height: 42px;
	border-radius: var(--mc-radius-lg);
	background: var(--mc-primary-tint);
	color: var(--mc-primary);
	display: flex; align-items: center; justify-content: center;
	font: 700 17px/1 'Instrument Sans', system-ui, sans-serif;
	margin-bottom: 18px;
}

/* Vertical journey timeline ---------------------------------------------- */

.mc-journey { display: flex; flex-direction: column; }
.mc-journey-item { display: grid; grid-template-columns: 64px 1fr; gap: 28px; align-items: start; }
.mc-journey-rail { display: flex; flex-direction: column; align-items: center; align-self: stretch; }
.mc-journey-dot {
	width: 52px; height: 52px;
	border-radius: 99px;
	background: var(--mc-primary);
	color: #fff;
	display: flex; align-items: center; justify-content: center;
	font: 700 20px/1 'Instrument Sans', system-ui, sans-serif;
	flex: none;
}
.mc-journey-line { width: 2px; flex: 1; background: var(--mc-border); min-height: 36px; }
.mc-journey-item:last-child .mc-journey-line { display: none; }
.mc-journey-body { padding-bottom: 40px; }
.mc-journey-body ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.mc-journey-body li { display: flex; gap: 11px; align-items: flex-start; font-size: 16px; line-height: 1.55; color: var(--mc-body); }
.mc-journey-body li::before {
	content: "";
	width: 6px; height: 6px;
	border-radius: 99px;
	background: var(--mc-accent);
	flex: none;
	margin-top: 9px;
}

/* Ticked trust list ------------------------------------------------------ */

.mc-ticks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.mc-ticks li { display: flex; gap: 14px; align-items: flex-start; }
.mc-ticks li::before {
	content: "✓";
	width: 24px; height: 24px;
	border-radius: 99px;
	background: var(--mc-accent-tint);
	color: var(--mc-accent);
	display: flex; align-items: center; justify-content: center;
	font-size: 13px; font-weight: 700;
	flex: none; margin-top: 2px;
}
.mc-ticks strong { display: block; font-size: 16.5px; font-weight: 600; margin-bottom: 3px; }
.mc-ticks span { font-size: 15px; line-height: 1.55; color: var(--mc-muted); }

/* Data tables ------------------------------------------------------------ */

.mc-table-wrap {
	border: 1px solid var(--mc-border);
	border-radius: var(--mc-radius);
	overflow-x: auto;
	background: var(--mc-surface);
}
.mc-table-wrap table,
.wp-block-table.mc-table table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15.5px;
	min-width: 520px;
}
.wp-block-table.mc-table { overflow-x: auto; border: 1px solid var(--mc-border); border-radius: var(--mc-radius); background: var(--mc-surface); }
.wp-block-table.mc-table thead { border-bottom: 1px solid var(--mc-border); background: var(--mc-base); }
.wp-block-table.mc-table th {
	padding: 14px 18px;
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--mc-muted);
	text-align: left;
	border: 0;
}
.wp-block-table.mc-table td {
	padding: 15px 18px;
	border: 0;
	border-bottom: 1px solid var(--mc-border-light);
}
.wp-block-table.mc-table tbody tr:last-child td { border-bottom: 0; }
.wp-block-table.mc-table tbody tr:hover { background: var(--mc-base); }
.wp-block-table.mc-table td:first-child { font-weight: 600; }
.wp-block-table.mc-table .mc-saving,
.wp-block-table.mc-table td:last-child { color: var(--mc-muted); }
.wp-block-table.mc-table td strong { color: var(--mc-accent); font-weight: 600; }
.wp-block-table.mc-table figcaption { padding: 12px 18px; font-size: 13.5px; color: var(--mc-muted); }

/* Sidebar / rail --------------------------------------------------------- */

.mc-rail { position: sticky; top: 100px; }
.mc-panel {
	background: var(--mc-surface);
	border: 1px solid var(--mc-border);
	border-radius: var(--mc-radius-lg);
	padding: 22px;
}
.mc-panel--muted { background: var(--mc-base); }
.mc-panel--accent { background: var(--mc-accent-soft); border-color: var(--mc-accent-edge); }

.mc-factlist { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; list-style: none; }
.mc-factlist li {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--mc-border-light);
	font-size: 14.5px;
}
.mc-factlist li:last-child { border-bottom: 0; padding-bottom: 0; }
.mc-factlist .mc-fact-k { color: var(--mc-muted); }
.mc-factlist .mc-fact-v { font-weight: 600; text-align: right; }

/* Table of contents ------------------------------------------------------ */

.mc-toc { position: sticky; top: 100px; }
.mc-toc ul {
	list-style: none;
	margin: 0; padding: 0 0 0 16px;
	border-left: 2px solid var(--mc-border-light);
	display: flex; flex-direction: column; gap: 10px;
}
.mc-toc a { font-size: 14.5px; color: var(--mc-muted); text-decoration: none; }
.mc-toc a:hover { color: var(--mc-primary); text-decoration: none; }

/* Callout ---------------------------------------------------------------- */

.mc-callout {
	background: var(--mc-primary-tint);
	border-left: 3px solid var(--mc-primary);
	padding: 20px 22px;
	border-radius: 0 var(--mc-radius) var(--mc-radius) 0;
}
.mc-callout p { font-size: 16px; line-height: 1.6; color: var(--mc-ink); margin: 0; }

.mc-callout--warn {
	background: #FEF6E7;
	border-left-color: #B45309;
}

/* FAQ accordion (core/details) ------------------------------------------- */

.mc-faq .wp-block-details {
	border: 1px solid var(--mc-border);
	border-radius: var(--mc-radius);
	background: var(--mc-surface);
	padding: 0;
	margin: 0;
}
.mc-faq .wp-block-details summary {
	padding: 18px 20px;
	font-size: 17px;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
}
.mc-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.mc-faq .wp-block-details summary::after {
	content: "+";
	font-size: 20px;
	font-weight: 400;
	color: var(--mc-primary);
	flex: none;
}
.mc-faq .wp-block-details[open] summary::after { content: "−"; }
.mc-faq .wp-block-details summary:hover { background: var(--mc-base); }
.mc-faq .wp-block-details > *:not(summary) {
	padding: 0 20px 20px;
	font-size: 16.5px;
	line-height: 1.65;
	color: var(--mc-body);
	margin: 0;
}

/* CTA band --------------------------------------------------------------- */

.mc-cta-band {
	background: var(--mc-primary);
	border-radius: var(--mc-radius-lg);
	padding: 36px;
	color: #fff;
}
.mc-cta-band :is(h2, h3) { color: #fff; }
.mc-cta-band p { color: #FBDCE8; }

/* Hospital / clinic rows ------------------------------------------------- */

.mc-hospital {
	border: 1px solid var(--mc-border);
	border-radius: var(--mc-radius);
	padding: 22px;
	background: var(--mc-surface);
	display: flex;
	gap: 20px;
	align-items: center;
	transition: box-shadow var(--mc-ease), border-color var(--mc-ease);
	text-decoration: none;
	color: inherit;
}
.mc-hospital:hover { box-shadow: var(--mc-shadow-card); border-color: var(--mc-primary); text-decoration: none; }
.mc-hospital-logo { width: 64px; height: 64px; border-radius: var(--mc-radius); background: var(--mc-border-light); flex: none; }
.mc-hospital-body { flex: 1; }
.mc-hospital-body h3 { font-size: 19px; font-weight: 600; margin: 0 0 6px; }
.mc-hospital-meta { font-size: 14.5px; color: var(--mc-muted); margin: 0; }
.mc-hospital-cta { font-size: 14.5px; font-weight: 600; color: var(--mc-primary); white-space: nowrap; }

.mc-accred-row { display: flex; gap: 14px; }
.mc-accred {
	flex: 1;
	height: 76px;
	border: 1px solid var(--mc-border);
	border-radius: var(--mc-radius);
	background: var(--mc-surface);
	display: flex; align-items: center; justify-content: center;
	font-size: 13px; font-weight: 600; color: var(--mc-muted);
}

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

.mc-form label { display: block; font-size: 14px; font-weight: 600; color: var(--mc-body); margin-bottom: 7px; }
.mc-form input[type="text"],
.mc-form input[type="email"],
.mc-form input[type="tel"],
.mc-form select,
.mc-form textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--mc-border);
	border-radius: var(--mc-radius-sm);
	font-size: 15px;
	font-family: inherit;
	background: var(--mc-surface);
	color: var(--mc-ink);
}
.mc-form textarea { resize: vertical; }
.mc-form .mc-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 18px; }
.mc-form .mc-field { margin-bottom: 18px; }
.mc-form .mc-consent { display: flex; gap: 11px; align-items: flex-start; margin-bottom: 22px; cursor: pointer; font-weight: 400; }
.mc-form .mc-consent input { margin-top: 3px; width: 17px; height: 17px; accent-color: var(--mc-primary); }
.mc-form .mc-consent span { font-size: 14.5px; line-height: 1.55; color: var(--mc-muted); }
.mc-form button[type="submit"] {
	width: 100%;
	background: var(--mc-primary);
	color: #fff;
	border: 0;
	font-size: 16px;
	font-weight: 600;
	padding: 14px;
	border-radius: var(--mc-radius-sm);
	cursor: pointer;
	font-family: inherit;
}
.mc-form button[type="submit"]:hover { background: var(--mc-primary-dark); }
.mc-form-note { font-size: 13.5px; color: var(--mc-muted); margin-top: 14px; text-align: center; }
.mc-optional { font-weight: 400; color: var(--mc-muted); }

/* Newsletter band -------------------------------------------------------- */

.mc-newsletter { background: var(--mc-primary-tint); border-top: 1px solid var(--mc-primary-edge); }
.mc-newsletter-form { display: flex; gap: 10px; flex: 1; min-width: 320px; max-width: 460px; }
.mc-newsletter-form input {
	flex: 1;
	padding: 14px 16px;
	border: 1px solid var(--mc-primary-edge);
	border-radius: var(--mc-radius-sm);
	font-size: 15.5px;
	font-family: inherit;
	background: #fff;
}
.mc-newsletter-form button {
	background: var(--mc-primary);
	color: #fff;
	border: 0;
	font-size: 15.5px;
	font-weight: 600;
	padding: 14px 24px;
	border-radius: var(--mc-radius-sm);
	cursor: pointer;
	white-space: nowrap;
	font-family: inherit;
}
.mc-newsletter-form button:hover { background: var(--mc-primary-dark); }

/* Editorial stages ------------------------------------------------------- */

.mc-stage { border-top: 3px solid var(--mc-primary); padding-top: 18px; padding-right: 24px; }
.mc-stage-n { font: 600 13px/1 'Instrument Sans', system-ui, sans-serif; color: var(--mc-primary); margin-bottom: 10px; }

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

.mc-footer { background: var(--mc-ink); color: #D1D5DB; }
.mc-footer :is(h2, h3, .mc-footer-title) { color: #fff; }
.mc-footer a { color: #9CA3AF; text-decoration: none; font-size: 15px; }
.mc-footer a:hover { color: #fff; text-decoration: none; }
.mc-footer p { color: #9CA3AF; }
.mc-footer-title {
	font-size: 12.5px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
	margin-bottom: 16px;
}
.mc-footer-links { display: flex; flex-direction: column; gap: 11px; list-style: none; margin: 0; padding: 0; }
.mc-footer-legal { border-top: 1px solid #374151; padding-top: 24px; }
.mc-footer-legal p { font-size: 13.5px; line-height: 1.6; }

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

.mc-breadcrumb { font-size: 13.5px; color: var(--mc-muted); }
.mc-breadcrumb a { color: var(--mc-primary); text-decoration: none; }
.mc-breadcrumb a:hover { text-decoration: underline; }
.mc-breadcrumb .sep { color: var(--mc-border); }
.mc-breadcrumb .current { font-weight: 600; color: var(--mc-ink); }
.mc-hero .mc-breadcrumb, .mc-hero .mc-breadcrumb a { color: #D1D5DB; }
.mc-hero .mc-breadcrumb .sep { color: rgba(255,255,255,0.5); }

/* Reviewer / meta line --------------------------------------------------- */

.mc-postmeta { display: flex; gap: 20px; align-items: center; font-size: 14px; color: var(--mc-muted); flex-wrap: wrap; }
.mc-postmeta .sep { color: var(--mc-border); }
.mc-reviewed { display: inline-flex; align-items: center; gap: 7px; color: var(--mc-accent); font-weight: 600; }

/* Story cards ------------------------------------------------------------ */

.mc-quote-mark { font: 700 34px/1 'Instrument Sans', system-ui, sans-serif; color: var(--mc-border); }
.mc-avatar {
	width: 40px; height: 40px;
	border-radius: 99px;
	background: var(--mc-primary-tint);
	color: var(--mc-primary);
	display: flex; align-items: center; justify-content: center;
	font: 600 14px/1 'Instrument Sans', system-ui, sans-serif;
	flex: none;
}
.mc-story-foot { display: flex; align-items: center; gap: 12px; padding-top: 16px; border-top: 1px solid var(--mc-border-light); }

/* Layout helpers --------------------------------------------------------- */

.mc-section { padding-top: 84px; padding-bottom: 84px; }
.mc-section--tight { padding-top: 52px; padding-bottom: 52px; }
.mc-hairline-top { border-top: 1px solid var(--mc-border-light); }
.mc-hairline-bottom { border-bottom: 1px solid var(--mc-border-light); }

.mc-sidebar-layout { display: grid; grid-template-columns: 1fr 320px; gap: 56px; align-items: start; }
.mc-toc-layout { display: grid; grid-template-columns: 220px 1fr; gap: 56px; align-items: start; }

/* Responsive ------------------------------------------------------------- */

@media (max-width: 1023px) {
	.mc-sidebar-layout,
	.mc-toc-layout { grid-template-columns: 1fr; gap: 40px; }
	.mc-toc, .mc-rail { position: static; }
	.mc-toc-layout .mc-toc { order: -1; }
	.mc-stats { grid-template-columns: repeat(2, 1fr); }
	.mc-stat:nth-child(2n) { border-right: 0; }
}

@media (max-width: 781px) {
	.mc-section { padding-top: 48px; padding-bottom: 48px; }
	.mc-hero { min-height: 420px; }
	.mc-form .mc-form-row { grid-template-columns: 1fr; }
	.mc-journey-item { grid-template-columns: 44px 1fr; gap: 18px; }
	.mc-journey-dot { width: 44px; height: 44px; font-size: 17px; }
	.mc-accred-row { flex-wrap: wrap; }
	.mc-hospital { flex-wrap: wrap; }
	.mc-newsletter-form { flex-direction: column; min-width: 0; }
}

@media (max-width: 479px) {
	.mc-stats { grid-template-columns: 1fr; }
	.mc-stat { border-right: 0; border-bottom: 1px solid var(--mc-border-light); padding-bottom: 18px; }
	.mc-stat:last-child { border-bottom: 0; }
}

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

/* Print ------------------------------------------------------------------ */

@media print {
	.mc-header, .mc-topbar, .mc-footer, .mc-newsletter, .mc-cta-band, .mc-rail { display: none !important; }
	body { background: #fff; }
	.mc-toc-layout, .mc-sidebar-layout { display: block; }
}

/* Sticky mobile CTA ------------------------------------------------------ */

.mc-sticky-cta {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 60;
	display: none;
	gap: 10px;
	padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
	background: rgba(255, 255, 255, 0.97);
	backdrop-filter: blur(8px);
	border-top: 1px solid var(--mc-border);
	transform: translateY(110%);
	transition: transform 240ms ease;
}
.mc-sticky-cta.is-visible { transform: translateY(0); }
.mc-sticky-cta a {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	border-radius: var(--mc-radius-sm);
	font-size: 15.5px;
	font-weight: 600;
	text-decoration: none;
}
.mc-sticky-cta .mc-cta-primary { background: var(--mc-primary); color: #fff; }
.mc-sticky-cta .mc-cta-primary:hover { background: var(--mc-primary-dark); color: #fff; text-decoration: none; }
.mc-sticky-cta .mc-cta-secondary {
	background: var(--mc-accent-soft);
	color: #17709F;
	border: 1px solid var(--mc-accent-edge);
}
.mc-sticky-cta .mc-cta-secondary:hover { text-decoration: none; }

@media (max-width: 781px) {
	.mc-sticky-cta { display: flex; }
	body.mc-has-sticky-cta { padding-bottom: 72px; }
}

@media (prefers-reduced-motion: reduce) {
	.mc-sticky-cta { transition: none; }
}

/* Partner hospitals + affiliate transparency ----------------------------- */

.mc-hospital-card {
	background: var(--mc-surface);
	border: 1px solid var(--mc-border);
	border-radius: var(--mc-radius);
	padding: 24px;
	margin-bottom: 14px;
	transition: box-shadow var(--mc-ease), border-color var(--mc-ease), transform var(--mc-ease);
}
.mc-hospital-card:hover {
	box-shadow: var(--mc-shadow-card);
	border-color: var(--mc-primary);
	transform: translateY(-2px);
}
.mc-hospital-card .wp-block-post-title { margin: 0; }
.mc-hospital-card .wp-block-post-title a { color: var(--mc-ink); text-decoration: none; }
.mc-hospital-card .wp-block-post-title a:hover { color: var(--mc-primary); }
.mc-hospital-card .wp-block-post-excerpt__excerpt { color: var(--mc-muted); margin: 8px 0 0; }
.mc-hospital-card .wp-block-post-excerpt__more-link { display: none; }

.mc-accred-strip {
	margin-top: 36px;
	padding-top: 28px;
	border-top: 1px solid var(--mc-border-light);
	display: flex;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
}
.mc-accred-logos { display: flex; gap: 12px; flex-wrap: wrap; }
.mc-accred-logos span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 92px;
	height: 46px;
	padding: 0 16px;
	border: 1px solid var(--mc-border);
	border-radius: var(--mc-radius);
	background: var(--mc-surface);
	font-size: 13px;
	font-weight: 600;
	color: var(--mc-muted);
	letter-spacing: 0.04em;
	transition: border-color var(--mc-ease), color var(--mc-ease);
}
.mc-accred-logos span:hover { border-color: var(--mc-primary); color: var(--mc-primary); }

.mc-affiliate-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: 22px;
	margin-bottom: 28px;
}
.mc-affiliate-step {
	background: var(--mc-surface);
	border: 1px solid var(--mc-border);
	border-radius: var(--mc-radius);
	padding: 26px 22px;
}
.mc-affiliate-step h3 { font-size: 17.5px; font-weight: 600; margin: 0 0 8px; }
.mc-affiliate-step p { font-size: 15px; line-height: 1.6; color: var(--mc-muted); margin: 0; }

.mc-affiliate-note {
	background: var(--mc-accent-soft);
	border: 1px solid var(--mc-accent-edge);
	border-radius: var(--mc-radius-lg);
	padding: 24px 26px;
}
.mc-affiliate-note p { font-size: 16px; line-height: 1.65; color: var(--mc-body); margin: 0 0 10px; }
.mc-affiliate-note p:last-child { margin-bottom: 0; }

/* Scroll reveal ---------------------------------------------------------- */

@media (prefers-reduced-motion: no-preference) {
	.mc-reveal-item {
		opacity: 0;
		transform: translateY(14px);
		transition: opacity 520ms cubic-bezier(.22,.61,.36,1), transform 520ms cubic-bezier(.22,.61,.36,1);
		will-change: opacity, transform;
	}
	.mc-reveal-item.is-in { opacity: 1; transform: none; }

	/* Stagger children of a revealed group without needing per-item markup. */
	.mc-reveal-item:nth-child(2) { transition-delay: 70ms; }
	.mc-reveal-item:nth-child(3) { transition-delay: 140ms; }
	.mc-reveal-item:nth-child(4) { transition-delay: 210ms; }
}

/* Elegance polish -------------------------------------------------------- */

.mc-stat-value { transition: transform var(--mc-ease); }
.mc-stat:hover .mc-stat-value { transform: translateY(-2px); }

.mc-grid .wp-block-post-featured-image img { transition: transform 600ms cubic-bezier(.22,.61,.36,1); }
.mc-grid .wp-block-post:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.mc-grid .wp-block-post-featured-image { overflow: hidden; }

.wp-block-button__link { transition: background var(--mc-ease), color var(--mc-ease), transform var(--mc-ease), box-shadow var(--mc-ease); }
.wp-block-button__link:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0, 102, 204, 0.22); }
.wp-block-button.is-style-mc-outline .wp-block-button__link:hover,
.wp-block-button.is-style-mc-on-dark .wp-block-button__link:hover { box-shadow: none; }

.mc-hero h1, .mc-hero .mc-hero-sub, .mc-hero .mc-hero-badge, .mc-hero .wp-block-buttons { position: relative; }

@media (prefers-reduced-motion: no-preference) {
	.mc-hero-badge { animation: mc-fade-up 600ms cubic-bezier(.22,.61,.36,1) both; }
	.mc-hero h1 { animation: mc-fade-up 700ms cubic-bezier(.22,.61,.36,1) 80ms both; }
	.mc-hero .mc-hero-sub { animation: mc-fade-up 700ms cubic-bezier(.22,.61,.36,1) 160ms both; }
	.mc-hero .wp-block-buttons { animation: mc-fade-up 700ms cubic-bezier(.22,.61,.36,1) 240ms both; }
}

@keyframes mc-fade-up {
	from { opacity: 0; transform: translateY(16px); }
	to   { opacity: 1; transform: none; }
}

@media (max-width: 781px) {
	.mc-accred-strip { flex-direction: column; align-items: flex-start; gap: 16px; }
}

/* Brand logo -------------------------------------------------------------- */

.mc-logo-link { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; flex: none; }
.mc-logo-link:hover { text-decoration: none; }

.mc-logo-img {
	display: block;
	width: auto;
	height: 44px;                 /* the wordmark sets the header height, not the file */
	max-width: 260px;
	object-fit: contain;
}
.mc-logo-img--footer { height: 40px; max-width: 230px; }

/*
 * The supplied logo is dark-on-white. Until a reversed (white) version exists,
 * lift it out of the dark footer on its own light plate rather than washing it
 * out with a filter — inverting a two-colour brand mark destroys the palette.
 */
.mc-footer .mc-logo-link {
	background: #fff;
	padding: 10px 14px;
	border-radius: var(--mc-radius);
	margin-bottom: 14px;
}

@media (max-width: 781px) {
	.mc-logo-img { height: 36px; max-width: 200px; }
}

/* Honest status labels ---------------------------------------------------- */

.mc-unverified {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: #8A5A00;
	font-weight: 600;
}
.mc-unverified::before {
	content: "";
	width: 7px; height: 7px;
	border-radius: 99px;
	background: #B45309;
	flex: none;
}

/* Statutory identity line — present, quiet, never shouty. */
.mc-legal-line {
	font-size: 12.5px;
	line-height: 1.6;
	color: #9CA3AF;
	margin: 0 0 4px;
}
.mc-legal-line a { color: #9CA3AF; text-decoration: underline; }
.mc-legal-line a:hover { color: #fff; }

/* ==========================================================================
   Motion & surface treatment
   Restrained on purpose: sheen and depth, not spectacle. Every effect below
   is suppressed under prefers-reduced-motion.
   ========================================================================== */

/* --- Form feedback ------------------------------------------------------- */

.mc-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.mc-form-notice {
	padding: 16px 18px;
	border-radius: var(--mc-radius);
	font-size: 15.5px;
	line-height: 1.6;
	margin-bottom: 22px;
	border: 1px solid;
	animation: mc-notice-in 420ms cubic-bezier(.22,.61,.36,1) both;
}
.mc-form-notice--ok  { background: #EAF6EF; border-color: #BFE3CE; color: #14603C; }
.mc-form-notice--err { background: #FDF0E7; border-color: #F3D2B8; color: #8A3D07; }
.mc-consent--inline { margin: 0; font-size: 13px; }
.mc-consent--inline span { font-size: 13px; }

@keyframes mc-notice-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* --- Glass header -------------------------------------------------------- */

/*
 * The blur lives on a pseudo-element, NOT on .mc-header itself.
 *
 * backdrop-filter makes an element a containing block for its position:fixed
 * descendants. With it on .mc-header, the mobile navigation overlay — which core
 * positions with `position:fixed; inset:0` — resolved against the 100px-tall
 * header instead of the viewport. The menu opened as a 99px strip showing one
 * link, and the other five were clipped. Mobile navigation was effectively dead.
 *
 * Do not move backdrop-filter (or transform/filter/perspective) back onto
 * .mc-header. Same applies to any sticky ancestor of a fixed element.
 */
.mc-header {
	background: rgba(255, 255, 255, 0.82);
	transition: box-shadow 320ms ease, background 320ms ease;
}
.mc-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	backdrop-filter: saturate(180%) blur(14px);
	-webkit-backdrop-filter: saturate(180%) blur(14px);
	pointer-events: none;
}
body.mc-scrolled .mc-header {
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 1px 0 rgba(15, 27, 33, 0.06), 0 8px 28px rgba(15, 27, 33, 0.07);
}
@supports not (backdrop-filter: blur(1px)) {
	.mc-header { background: #fff; }
	.mc-header::before { display: none; }
}

/* --- Hero: aurora glow + slow drift on the photograph -------------------- */

.mc-hero { overflow: hidden; isolation: isolate; }

.mc-hero::before {
	content: "";
	position: absolute;
	inset: -20%;
	z-index: 0;
	background:
		radial-gradient(42% 55% at 18% 30%, rgba(214, 19, 90, 0.42), transparent 62%),
		radial-gradient(38% 50% at 78% 68%, rgba(23, 112, 159, 0.38), transparent 64%);
	filter: blur(28px);
	opacity: 0.9;
	pointer-events: none;
}

@media (prefers-reduced-motion: no-preference) {
	.mc-hero::before { animation: mc-aurora 18s ease-in-out infinite alternate; }
	.mc-hero { background-size: 108% auto; animation: mc-drift 32s ease-in-out infinite alternate; }
}

@keyframes mc-aurora {
	0%   { transform: translate3d(-2%, -1%, 0) scale(1);    opacity: .78; }
	50%  { transform: translate3d(2%, 2%, 0)   scale(1.06); opacity: .95; }
	100% { transform: translate3d(1%, -2%, 0)  scale(1.02); opacity: .82; }
}
@keyframes mc-drift {
	from { background-position: 48% 45%; }
	to   { background-position: 54% 52%; }
}

/* Hero content sits above both the scrim and the glow */
.mc-hero > * { position: relative; z-index: 2; }
.mc-hero::after { z-index: 1; }

/* A thin luminous edge where the hero meets the next section */
.mc-hero { border-bottom: 1px solid rgba(255, 255, 255, 0.10); }

/* --- Buttons: gloss + shine sweep ---------------------------------------- */

.wp-block-button__link,
.mc-form button[type="submit"],
.mc-newsletter-form button {
	position: relative;
	overflow: hidden;
	background-image: linear-gradient(180deg, rgba(255,255,255,0.16), rgba(255,255,255,0) 58%);
	box-shadow: 0 1px 0 rgba(255,255,255,0.22) inset, 0 1px 2px rgba(15,27,33,0.10);
}

@media (prefers-reduced-motion: no-preference) {
	.wp-block-button__link::after,
	.mc-form button[type="submit"]::after {
		content: "";
		position: absolute;
		top: 0; bottom: 0; left: -60%;
		width: 45%;
		background: linear-gradient(100deg, transparent, rgba(255,255,255,0.42), transparent);
		transform: skewX(-18deg);
		pointer-events: none;
		opacity: 0;
	}
	.wp-block-button__link:hover::after,
	.mc-form button[type="submit"]:hover::after {
		animation: mc-shine 780ms cubic-bezier(.22,.61,.36,1);
	}
}
@keyframes mc-shine {
	0%   { left: -60%; opacity: 0; }
	18%  { opacity: 1; }
	100% { left: 120%; opacity: 0; }
}

.is-style-mc-outline .wp-block-button__link,
.is-style-mc-on-dark .wp-block-button__link { background-image: none; box-shadow: none; }

/* --- Cards: sheen and a lit edge on hover -------------------------------- */

.mc-card, .mc-panel, .mc-grid .wp-block-post,
.mc-affiliate-step, .mc-hospital-card {
	position: relative;
	background-image: linear-gradient(180deg, rgba(255,255,255,0.9), rgba(255,255,255,0) 46%);
}

.mc-grid .wp-block-post::after,
.mc-affiliate-step::after,
.mc-hospital-card::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	pointer-events: none;
	opacity: 0;
	transition: opacity var(--mc-ease);
	background: radial-gradient(120% 80% at 50% 0%, rgba(214, 19, 90, 0.07), transparent 60%);
}
.mc-grid .wp-block-post:hover::after,
.mc-affiliate-step:hover::after,
.mc-hospital-card:hover::after { opacity: 1; }

.mc-affiliate-step, .mc-hospital-card {
	transition: box-shadow var(--mc-ease), border-color var(--mc-ease), transform var(--mc-ease);
}
.mc-affiliate-step:hover {
	box-shadow: var(--mc-shadow-card);
	border-color: var(--mc-primary-edge);
	transform: translateY(-2px);
}

/* --- Stat counters ------------------------------------------------------- */

.mc-stat-value { font-variant-numeric: tabular-nums; }

/* --- CTA band: soft inner light ------------------------------------------ */

.mc-cta-band {
	position: relative;
	overflow: hidden;
	background-image:
		radial-gradient(90% 140% at 12% 0%, rgba(255,255,255,0.20), transparent 58%),
		linear-gradient(135deg, var(--mc-primary) 0%, #B00E4A 100%);
}

/* --- Section rhythm ------------------------------------------------------ */

html { scroll-behavior: smooth; scroll-padding-top: 96px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* --- Blanket motion suppression ------------------------------------------ */

@media (prefers-reduced-motion: reduce) {
	.mc-hero::before, .mc-hero { animation: none !important; }
	.wp-block-button__link::after { display: none; }
	.mc-form-notice { animation: none; }
}

/* Multi-market cost tables — six columns, so they need to breathe and scroll. */
.mc-table--markets table { min-width: 680px; font-size: 15px; }
.mc-table--markets th:first-child,
.mc-table--markets td:first-child { min-width: 190px; }
.mc-table--markets td:nth-child(2) { color: var(--mc-primary); }
.mc-table--markets td:last-child { color: var(--mc-accent); font-weight: 600; }
@media (max-width: 781px) {
	.mc-table--markets table { font-size: 14px; }
	.mc-table--markets th, .mc-table--markets td { padding: 12px 14px; }
}

/* --- Mobile corrections --------------------------------------------------
 *
 * Findings from a 375×812 audit of the live site. Each rule below fixes a
 * measured defect, not a hypothetical one.
 */

/* The nav overlay must fill the screen. Core sizes it from the viewport, but
 * belt-and-braces here so a future containing-block regression degrades to a
 * scrollable sheet rather than a clipped strip. */
.wp-block-navigation__responsive-container.is-menu-open {
	min-height: 100vh;
	min-height: 100dvh;
	overflow-y: auto;
}
.wp-block-navigation__responsive-container.is-menu-open
.wp-block-navigation__responsive-container-content {
	justify-content: flex-start;
	padding-top: 8px;
}

@media (max-width: 781px) {
	/* Tap targets. The hamburger measured 24×24; WCAG 2.5.5 wants 44×44. */
	.wp-block-navigation__responsive-container-open,
	.wp-block-navigation__responsive-container-close {
		min-width: 44px;
		min-height: 44px;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	/* Menu links measured 27px tall and sat too close together to hit reliably.
	 *
	 * The .wp-block-navigation__container in the middle of this selector is load
	 * bearing. Core zeroes the padding with a (0,4,0) selector; without that class
	 * ours is (0,3,0) and loses regardless of source order, which is exactly what
	 * happened on the first deploy — the font size applied and the padding did not.
	 * min-height then guarantees the 44px target even if core's selector changes. */
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__container .wp-block-navigation-item__content {
		display: flex;
		align-items: center;
		min-height: 44px;
		padding: 10px 0;
		font-size: 19px;
		width: 100%;
	}
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__responsive-container-content,
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation__container { gap: 0; width: 100%; }
	.wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation-item {
		width: 100%;
		border-bottom: 1px solid var(--mc-border-light);
	}

	/* iOS Safari zooms the page whenever a focused field is under 16px, and does
	 * not zoom back out. 16 fields on the enquiry form triggered it. */
	input, select, textarea {
		font-size: 16px !important;
	}

	/* Body copy measured 14.25px. Too small generally, and this audience skews
	 * older — hip and knee patients are largely 60+. */
	.mc-prose p,
	.mc-prose li,
	main p, main li {
		font-size: 16.5px;
		line-height: 1.65;
	}

	/* The topbar consumed 102px above the fold restating the tagline that the
	 * H1 says better. Its "Contact us" link is duplicated in the nav and footer. */
	.mc-topbar { display: none; }

	/* "Get a free quote" wrapped onto 4 lines in a 93px-wide button. */
	.mc-header .wp-block-button__link {
		font-size: 14px;
		padding: 12px 14px;
		white-space: nowrap;
	}

	/* Scrollable tables give no hint that they scroll. Fade the right edge. */
	.mc-table {
		-webkit-overflow-scrolling: touch;
		background:
			linear-gradient(to right, #fff 30%, rgba(255,255,255,0)) left / 24px 100% no-repeat,
			linear-gradient(to left,  #fff 30%, rgba(255,255,255,0)) right / 24px 100% no-repeat,
			radial-gradient(farthest-side at 0 50%, rgba(15,27,33,.14), transparent) left / 12px 100% no-repeat,
			radial-gradient(farthest-side at 100% 50%, rgba(15,27,33,.14), transparent) right / 12px 100% no-repeat;
		background-attachment: local, local, scroll, scroll;
	}
}

/* --- Price provenance ----------------------------------------------------
 * Citation markers on figures taken from a published price list, and the
 * source list beneath the table. A reader should be able to tell at a glance
 * which numbers they can go and verify.
 */

.mc-cite {
	font-size: 11px;
	font-weight: 600;
	vertical-align: super;
	text-decoration: none;
	color: var(--mc-accent);
	padding: 0 1px;
}
.mc-cite:hover { text-decoration: underline; }

.mc-sources {
	margin: -8px 0 28px;
	padding-left: 20px;
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--mc-muted);
}
.mc-sources li { margin-bottom: 4px; }
.mc-sources a { color: var(--mc-muted); text-decoration: underline; }
.mc-sources a:hover { color: var(--mc-accent); }

/* --- Consent banner: equal prominence ------------------------------------
 *
 * Complianz ships "Accept" as a filled primary and "Deny" as a muted secondary.
 * Regulators treat that asymmetry as a dark pattern — the EDPB cookie-banner
 * taskforce and CNIL enforcement both hold that refusing must be as easy, and as
 * visually obvious, as accepting. Several fines have turned on exactly this.
 *
 * COLOURS ARE NOT SET HERE. Complianz renders its own stylesheet from the plugin
 * settings (wp-content/uploads/complianz/css/banner-*.css) and resolves colours
 * through --cmplz_* custom properties inside it. Overriding those from the theme
 * is fragile — the cascade there is easy to lose and the file is regenerated on
 * every settings save. Set them in Complianz → Appearance instead; the values are
 * documented in the project notes.
 *
 * What is left here is geometry only: equal width, equal height, equal weight —
 * the part Complianz has no setting for, and the part that carries the legal
 * argument about equal prominence.
 */

.cmplz-cookiebanner .cmplz-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.cmplz-cookiebanner .cmplz-btn.cmplz-accept,
.cmplz-cookiebanner .cmplz-btn.cmplz-deny {
	flex: 1 1 0;
	min-width: 140px;
	min-height: 46px;
	font-weight: 600;
}

/* Preferences is genuinely secondary — quieter, but still a real target. */
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences {
	min-height: 46px;
	font-weight: 500;
}

@media (max-width: 781px) {
	.cmplz-cookiebanner .cmplz-btn.cmplz-accept,
	.cmplz-cookiebanner .cmplz-btn.cmplz-deny { flex: 1 1 100%; }
}

/* --- Converted-currency annotation ---------------------------------------
 * Appended client-side by currency.js for Gulf, US and eurozone visitors.
 * Quiet by design: the published GBP figure stays the primary number.
 */
.mc-fx {
	color: var(--mc-muted);
	font-size: 0.86em;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
	direction: ltr;
	unicode-bidi: isolate;
}

/* --- Footer language switcher --------------------------------------------
 * Injected into the footer's logo column by mediconnect-core/ar-strings.php.
 * Sits with the brand rather than in a strip of its own — language is part of
 * "who is this site", not fine print.
 */
.mc-lang-footer {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid rgba(255, 255, 255, .14);
	max-width: 280px;
}
.mc-lang-footer .mc-lang-switch { gap: 14px; }
.mc-lang-footer .mc-lang {
	color: #D1D5DB;
	font-size: 14px;
	line-height: 1.4;
}
.mc-lang-footer .mc-lang:hover,
.mc-lang-footer .mc-lang--on { color: #fff; }

/* The Arabic label needs its own face — the Latin stack has no Arabic glyphs. */
.mc-lang[lang="ar"] { font-family: 'IBM Plex Sans Arabic', 'Segoe UI', Tahoma, sans-serif; }

@media (max-width: 781px) {
	.mc-lang-footer { max-width: none; }
}
